Home > Community > Blogs > Functional Verification > specman advanced option application note
 
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the Functional Verification blog (individual posts).
 

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Specman Application Note: Improving Verification Productivity With Dynamic Load and Reseeding

Comments(0)Filed under: Functional Verification, metric driven verification (MDV), Incisive Enterprise Simulator (IES), Specman, Aspect Oriented Programming, AOP, IntelliGen, EDA, IES-XL, specman elite, team specman, Incisive, SimVision, vPlan, testbench, e language

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:

  • 1. Continuing the same simulation with a new seed value
    • All subsequent generation actions will be affected by the new random seed
    • Random stability is preserved for save/restore simulations run with the same seed
  • 2. Loading new e files and continuing the simulation with the same seed
    • Loaded files are called Dynamically Loadable Files (DLFs)
    • Newly loaded files can influence generation actions and add functionality (See "Dynamic Loading of Test Files" for details)
  • 3. Dynamically loading new e files and continuing the simulation with a new seed value

If you're interested in finding out more details on this functionality, download the Specman Advanced Option Application Note.

Team Specman

Comments(0)

Leave a Comment


Name
E-mail (will not be published)
Comment
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.