Get email delivery of the Cadence blog featured here
Are you looking for new approaches to improve your verification productivity by 40 - 60%? Look no further... read the technical application note by Corey Goss on how to Improve Verification Productivity through Adopting Dynamic Load and Reseed Methodology. Attached is a link to the application note that provides the technical details and the benefits of using this new advanced functionality. Specman Advanced Option Appnote Download Preview of the Appnote:
Simulation-based functional verification involves a multitude of tests that, together, constitute a regression suite for a given Design Under Test (DUT). Each single simulation test run often involves a DUT start-up phase responsible for performing functions such as reset procedure, link training, register configuration or bringing the DUT into a state from which specific operations can be executed (e.g. traffic can be sent).
In large system level simulations involving multiple DUTs, several DUTs may need to be brought to a particular state prior to sending anything meaningful. Even though the initialization process is often applicable to large subsets of the regression suite, existing verification practices do not take advantage of this commonality between runs. The same start-up phases are executed over and over for every test. This consumes valuable time and resources while contributing little, if anything, towards coverage. Moreover, when a test fails during a regression, the debug session must go through the same start-up process yet again, with significant impact on debug cycle efficiency. Debug is especially lengthy if a failure occurs very late in the simulation run (e.g. hours or days in). Since identifying and isolating a bug correctly can take several iterations, this can lead to many wasted simulation cycles. If the point of failure can be reached significantly faster, bypassing uninteresting functionality along the way, a significant productivity boost can be achieved.
Simulation engines support session persistency in the sense that the entire simulation state can be saved to disk and later resumed from the same point in a different process, possibly multiple times. This means that you could run a simulation up to a certain point, save its state and later resume it in multiple processes later on. One approach to take advantage of this is to enable the random seed to be changed after a simulation state is restored. The new seed would cause the test scenarios to change from the restore point forward, due to different results of random generation.
This approach is called Reseeding, and can be applied to all verification environments that use random generation for creating test scenarios. Another approach would be to load additional files after the simulation has been restored. The loaded code could contain constraints and additional functionality that could change the behavior of the resulting test scenario from the load point onwards. This approach is called Dynamic Load.
When Dynamic Load and Reseed approaches are used together, new methodologies can be employed to dramatically improve verification productivity.
What is Dynamic Load and Reseed Technology?
Simulation engines support session persistency and this functionality has existed within Specman Elite for many years. Dynamic Load and Reseed technology builds upon the existing save/restore functionality in that, upon restoring the simulation, you can now run a different scenario by:
If you're interested in finding out more details on this functionality, download the Specman Advanced Option Application Note.