Avoiding Late Stage Design Bugs using Session Types to Specify Abstract Component Interfaces
Speaker: Lenny Truong, PhD Student, Stanford University
Date: April 1, 2021
Many features such as testing (BIST), power domains, and redundancy are added late in the design process. Bugs can result from unexpected interactions between these features. Since these features are inserted at the gate level, finding bugs requires running expensive gate level simulations. In this talk, we will explore early-stage research into how the concept of abstract actions captured using session types can prevent these bugs from arising late in the design process. Our methodology aims to surface the interactions required to use a component (e.g., test, configuration, and power interfaces) early in the design process, without requiring the designer to know which specific IP block they will end up using (abstraction). Session types are used to ensure that the designer provides the necessary resources to interface with a component, as well as ensuring that IP blocks implement a state machine that lowers abstract actions into concrete implementations.