../
Meeting with Kevin
New directions from Cadence meeting
-
Convergence
-
Bug hunting
-
Bug localization
-
End-to-End verification is called as convergence
-
Complex assertions cannot be mined
-
But LLM can generate them from specs
- Matt directly contradicted this
- But that was in relation to software
-
Periscope’s helper assertions can help constrain the formal environment thereby solving all of the above problems
-
If we could somehow write SVA on hardware latches then that would be helpful
- These are the same complex assertions the cadence folks were talking about
- Hardware latches are written to store some state and then we write assertions on that state
- Certain things cannot be captured using SVA over signals
- The simplest example is counting
- This is the main job of FV engineers at IBM
- These checkers are simulated, emulated but removed before fabrication
-
We could better position Periscope as convergence solving
- Remove the restriction to just signals
- Extract from checkers
- Figure out better templates
- Expressions instead of signals
Bug hunting
- Shallow bugs are often erroneous. The power of FV is finding deep bugs
- But it is really hard to go that deep
- We need good constrains to force the FV engine to look deep
- The main goals is to find bugs rather than proving stuff
RV-consistent rules are helpful because they can be converted to assumptions
Bug localization
- Sometimes the specification and the implementation are not congruent
- This results in bugs
- Can we localize the location of these bugs?
Prevalence of specs
- Formal specs are largely absent in academia
- Even in big companies specifications are largely resident in the tribal knowledge of the engineers
- There are exceptions to this such as IEEE-754 in which you exactly know what you are implementing
- In the cases where no spec is available, engineer do the following
- Guess intent by looking at the code
- Guess intent by the general category of the design. For example, there are many properties that are immediately apparent for an arbiter, regardless of its type.