1 / 6

A smart generation of Design Attributes for Verification Closure Using Specman

A smart generation of Design Attributes for Verification Closure Using Specman . Meirav Nitzan Xilinx Inc. meiravn@xilinx.com. Efrat Gavish Cadence Design Systems Inc efratg@cadence.com. Yael Kinderman Cadence Design Systems Inc yaelk@cadence.com. The problem:

dorcas
Télécharger la présentation

A smart generation of Design Attributes for Verification Closure Using Specman

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. A smart generation of Design Attributes for Verification Closure Using Specman Meirav Nitzan Xilinx Inc. meiravn@xilinx.com Efrat Gavish Cadence Design Systems Inc efratg@cadence.com Yael Kinderman Cadence Design Systems Inc yaelk@cadence.com • The problem: • Design attributes (parameters) affect the way the design behaves • It is necessary to test the design with all relevant parameter values • Need to make sure various combinations of parameters are checked, sometimes exhaustively

  2. Why not test all combinations? • Not scalable. • E.g: • a design with 20-30 parameters • each parameter may have 2 to 10 values • the exhaustive permutation set could reach hundreds of thousands in size, or even more. • A huge amount of simulation time • Covering all permutations for a bit more complex designs may not be feasible • Efficiency - turnaround time for running a regression is too long • If a bug fix takes a week to fully verify ->a lot of idle time for designers. • Functionally, there is no functional justification to cross all values of all parameters with each other.

  3. Solution requirement • Automated random generation of parameters sets, considering the following: • All parameters legal values and constraints • Dependencies between parameters • Avoiding repetitions of parameters sets • Each parameter set => re-run of the regression test suite • Flexibility to define either full parameters sets generation, as well as smaller parameters sets • Can be useful for defining nightly regressions, specific feature testing etc. • Proper coverage of the parameters space needs to be verified Requirement 4 is solved by creating a config class in an OVM/UVM environment, with proper coverage model, accessible to all components

  4. Parameters Generation - Outline Parameters definition & constraints Pre Simulation Step Specific parameters constraints for a full/sub regression suite Parameters Sets Generator Parameters vectors for regression runs Simulation and coverage collection Simulator DUT Verification Testbench Simulation results

  5. Case study– a parameterized Dual Port Ram design PortB rd width? wr width? PortA rd width? wr width? Sub-Regression definitions: BRAM_MODE is TDP READ_WIDTH_A is 18 or 36 READ_WIDTH_B is 18 or 36 WRITE_WIDTH_A is 18 or 36 WRITE_WIDTH_B is 18 or 36 Exercise ALL combinations of: READ_WIDTH_A x READ_WIDTH_B WRITE_WIDTH_A x WRITE_WIDTH_B Randomize all other parameters PortB output mode? PortA output mode? True Dual Port, Simple Dual Port?

  6. Comparing simple system-verilog randomization to specman based solution • Running SystemVerilog randomization until 100% coverage of the sub-regression requirements were reached, yielded a significantly varied number of parameter sets – from 7 to 26 • Running the Specman Based solution with the same coverage requirements yielded 4 to 6 parameter sets • Why the difference? • The Specman based solution first exhaustively generates the first cross, while randomizing other parameters. The in only needs to generate values for the second cross not generated already • SV randomization cannot specially consider the combinations we care about, hence reaching them may take a varying number of cycles

More Related