13.07.2015 Views

Spec-based verification: A new method for functional ... - Cadence

Spec-based verification: A new method for functional ... - Cadence

Spec-based verification: A new method for functional ... - Cadence

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

COVERAGE METRICSMeasuring progress is one of the most important tasks in <strong>verification</strong> and is the critical element thatenables the designer to decide when to end the <strong>verification</strong> ef<strong>for</strong>t. Several <strong>method</strong>s are commonly used:• Toggle testing: verifies over a series of tests that all nodes toggled at least once from 1 to 0 and back• Code coverage: demonstrates over a series of tests that all the source lines were exercised; in manycases, there is also an indication as to whether branches in conditional code were executed; sometimesan indication of state-machine transitions is also available• Tracking how many bugs are found each week: possibly the most common metric used to measureprogress; after a period of a few weeks with very few or zero bugs found, the designer assumes that the<strong>verification</strong> process has reached a point of diminishing returnsUn<strong>for</strong>tunately, none of these metrics has any direct relation to the <strong>functional</strong>ity of the device, nor is thereany correlation to common user applications. For example, neither toggle testing nor code coverage canindicate if all the types of cells in a communications chip (with and without CRC errors) have entered onall ports. Neither can these metrics determine if all possible sequences of three instructions in a row weretested in a processor.As a result, coverage is still measured mainly by the gut feeling of the <strong>verification</strong> manager, and eventuallythe decision to tape out is made by management without the support of concrete qualitative data.Not knowing the real state of the <strong>verification</strong> progress causes engineers to per<strong>for</strong>m many moresimulations than necessary, trading off CPU cycles <strong>for</strong> "confidence." This usually results in redundant teststhat provide no additional coverage or assurance that <strong>verification</strong> is complete. The real risk is that thedesign will be sent to production with bugs in it, resulting in another round of silicon. The cost of respinningsilicon includes non-recoverable engineering (NRE) costs to per<strong>for</strong>m the additional productionprocess, the cost of extending the team’s work on the project, and the major cost of missing a time-tomarketwindow. For most designs, this amounts to many millions of dollars.SPEC-BASED VERIFICATION<strong>Spec</strong>-<strong>based</strong> <strong>verification</strong> is a proven <strong>method</strong>ology <strong>for</strong> <strong>functional</strong> <strong>verification</strong> that solves many of theproblems design and <strong>verification</strong> engineers encounter with today’s <strong>method</strong>ologies. <strong>Spec</strong>-<strong>based</strong> <strong>verification</strong>captures the rules embodied in the specifications (design/interface/<strong>functional</strong> test plan) in an executable<strong>for</strong>m. An effective application of this <strong>method</strong>ology provides four essential capabilities to help breakthrough the <strong>verification</strong> bottleneck:• Automates the <strong>verification</strong> process, reducing a significant amount of manual work needed to developthe <strong>verification</strong> environment and tests• Increases product quality by focusing the <strong>verification</strong> ef<strong>for</strong>t on areas of <strong>new</strong> <strong>functional</strong> coverage andby discovering bugs not anticipated by the <strong>functional</strong> test plan• Provides <strong>functional</strong> coverage analysis capabilities to help measure the progress and completeness ofthe <strong>verification</strong> ef<strong>for</strong>t• Raises the level of abstraction used to describe the environment and tests from the RTL level to thespecification level, capturing the rules defined in the specs in a declarative <strong>for</strong>m and automaticallyensuring con<strong>for</strong>mance to these rules5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!