240 likes | 362 Views
Cross-Product Functional Coverage Measurement with Temporal Properties-based Assertions. Author: A. Ziv Speaker: Johnny Lee. Outline. Introduction Background Using Assertions for Coverage Measurement Auxiliary Variables Experimental Results Conclusions. Introduction.
E N D
Cross-Product Functional Coverage Measurement with Temporal Properties-based Assertions Author: A. Ziv Speaker: Johnny Lee
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
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
Coverage • Coverage is a recognized technique for checking and showing that the testing has been thorough • Assertions are commonly used to detect coverage events
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
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
Functional Coverage • Focus on the functionality of the design • Cross-product functional coverage model • Semantic description • Attributes • Possible values • Restrictions
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 • …
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
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
Example • F(Cmd && F[1,5](Res&&ResType==NACK)) • C(Cmd && F(Res))
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
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)) • …
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
Example • F(Cmd{$CT=CmdType} && F(Res{$RT=ResType})) • Cmd becomes true then CmdType assigned to $CT
Example (cont’d) • F(Cmd{$CT=CmdType} && F(Res{$RT=ResType})) • Checking tool waits for the second part to become true
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>
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
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
Outline • Introduction • Background • Using Assertions for Coverage Measurement • Auxiliary Variables • Experimental Results • Conclusions
Conclusions • Assertions that are base on temporal language can be used as monitors • Auxiliary variables can reduce the number of assertions and simulation time