1 / 24

Enhancing Functional Coverage Measurement with Temporal Assertions in Hardware Verification

This presentation covers the innovative use of temporal properties-based assertions in cross-product functional coverage measurement for hardware verification. It discusses the critical role of functional assertions in verifying design compliance and ensuring thorough testing during simulation. The methodology emphasizes the use of auxiliary variables to streamline coverage monitoring, thereby enhancing simulation efficiency. Experimental results illustrate the effectiveness of this approach, highlighting the balance between coverage depth and simulation performance. Key takeaways include the benefits of temporal properties in monitoring and improving verification processes.

lilah
Télécharger la présentation

Enhancing Functional Coverage Measurement with Temporal Assertions in Hardware Verification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cross-Product Functional Coverage Measurement with Temporal Properties-based Assertions Author: A. Ziv Speaker: Johnny Lee

  2. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  3. Introduction • Functional verification • Bottleneck of the hardware design cycle • Simulation is the main vehicle • Two main issues of verification • Check the design behaves according to its specification • Make sure the testing has been thorough

  4. Coverage • Coverage is a recognized technique for checking and showing that the testing has been thorough • Assertions are commonly used to detect coverage events

  5. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  6. Assertions Based on Temporal Properties • Assertions monitor the simulation on a cycle-by-cycle basis and report when a property is violated • 4 basic temporal operators • X: in the following cycle • F: in the future • G: in all cycles • U: until

  7. Functional Coverage • Focus on the functionality of the design • Cross-product functional coverage model • Semantic description • Attributes • Possible values • Restrictions

  8. Example

  9. Example (cont’d) • Command-Response model • (Attribute: values) • Command: IF, DF, DS, RMW, ILL • Response: ACK, NACK, ERROR • Restrictions: • Legal command cannot have an ERROR response • …

  10. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  11. Using Assertions for Coverage Measurement • Coverage monitors detect coverage tasks that occur during the simulation • We use F(e) to specify a coverage task e as an assertion • C(e) detects the occurrences of the event e

  12. Example • F(Cmd && F[1,5](Res&&ResType==NACK)) • C(Cmd && F(Res))

  13. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  14. Auxiliary Variables • Using a separate assertion for each coverage task slow down the simulation • F(CmdType==IF && F(ResType==ACK)) • F(CmdType==IF && F(ResType==NACK)) • F(CmdType==DF && F(ResType==ACK)) • F(CmdType==DF && F(ResType==NACK)) • …

  15. Auxiliary Variables (cont’d) • Use a single assertion to detect the basic event and collect the parameters (auxiliary variables) • F(Cmd{$CT=CmdType} && F(Res{$RT=ResType})) • $CT and $RT are auxiliary variables

  16. Example • F(Cmd{$CT=CmdType} && F(Res{$RT=ResType})) • Cmd becomes true then CmdType assigned to $CT

  17. Example (cont’d) • F(Cmd{$CT=CmdType} && F(Res{$RT=ResType})) • Checking tool waits for the second part to become true

  18. Example (cont’d) • When the coverage expression becomes true, checking tool reports the value of $CT and $RT (DF and ACK) to a coverage collection tool • <DF, ACK>

  19. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  20. Experimental Results

  21. Experimental Results (cont’d) • Commands • Read(IF, DF), Write(DS, RMW), ILL, NOP • 44=256 tasks • Command-Response • 4x4x5x3=240 tasks • Out-of-Order • 4x42x32=576 tasks

  22. Experimental Results (cont’d)

  23. Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions

  24. Conclusions • Assertions that are base on temporal language can be used as monitors • Auxiliary variables can reduce the number of assertions and simulation time

More Related