Escolar Documentos
Profissional Documentos
Cultura Documentos
Graser - Rolls
<1>
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
<2>
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
<3>
IUS Coverage
<4>
IUS
- Industry leading, multi-language simulator with ABV - Event-driven native compiled code in a single kernel architecture for highest-performance - Code ,functional coverage and static analysis included
+
SimVision
- GUI for unified debug and analysis - Multi-language debug with schematic tracing
<5>
VHDL VHDL SystemC PSL/ OVL System Verilog Verilog AMS VHDL AMS
Compile
Compile
Compile
Compile
Compile
Compile
Compile
Compile
Key benefits
- Native compile for high performance - Optimized for small memory footprint - Integrated coverage analysis - One debugging environment across all design disciplines: architecture, HW, SW, mixed language/signal - Open standard interfaces assures design portability
Dynamic Engines Static Engines
Verification Results
Assertion Analysis
Comprehensive Coverage
<6>
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
<7>
Multi-Language Details
Aspect Oriented Prog.
System-level
Transactions
e
System Verilog
TA
SystemC 2.1
Signal-level RTL
OVL/PSL
OVL/PSL
RTL
Gate-level
IEEE p1647
VHDL
<9>
VHDL
Update Verilog
Verilog
< 10 >
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
< 11 >
File Browser
Library Browser
Console
< 12 >
Multi-Language Debugging
Coverage Information
Assertion Browser
< 13 >
Schematic Tracing
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
< 14 >
Am I done now?
Do the functional and code coverage meet your requirements?
< 15 >
< 16 >
Coverage types
Comprehensive coverage include: 1. Code Coverage Analyze HDL code structure which blocks of design code execute. Determine how fully code structure is exercised. 2. Functional coverage Analyze design functionality which functions such as Add and Queue executed. Determine how fully design behavior is exercised.
< 17 >
< 18 >
< 19 >
< 20 >
< 21 >
Verilog
begin <block> end if (a==b) <block> else <block> case (x) 0 : <block> default : <block> endcase while (a==b) <block> # 10 ; <block>
< 22 >
< 23 >
< 24 >
< 25 >
< 26 >
< 27 >
< 28 >
< 29 >
< 30 >
Insert coverage configuration by giving options Elaborate the Design ncelab top_level_unit [coverage options] [other_options] Coverage Option
-coverage <coverage_types>
ICC does block, expression, FSM, toggle, and functional coverage
Description
Coverage types {b e f t u a}
To select all coverage use b:e:f:t:u or all.
< 31 >
Coverage Option
-covworkdir directory -covdesign directory -covtest directory -covoverwrite -covnomodeldump -input tcl_script
Description
Specify coverage work directory Specify coverage design directory Specify coverage test directory Overwite existing test directory Suppress dumping coverage model Input Tcl command script
Default
cov_work/ Design/ Test/
< 32 >
Analyzer Command
list_coverage_files list_coverage [-instance |-module |-entity] <list> merge [-code] [-toggle] [-fsm] [-functional] {<test_specs> | -testfile <filename>} output <test> [message] (de)select_coverage [-betsa] [-instance |-module |-entity] <list> mark {-ignore | -covered} {-instance |-module |-entity} {-b [-recursive] <name> | <indices> -e <name> <indices> <indices>}
Indices ::= { n[,] | n1-n2[,] | * }
report_summary [-instance |-module |-entity] [-hidezero] [-nocgopt] [-betsafd] <list> report_detail [-instance | -module |-entity ] [-covered | -uncoverd | -both | marked ] [ -nocgopt ] [-nosource] [-nocompact] [-betdafd ] <list> report_html [-instance | -module |entity] [-output <rptname>] [-covered |uncovered | -both | -marked] [-nocgopt ] [-nocgopt ] [-nosource ] [nocompact ] [betsafd] <list>
< 33 >
Pros
Cons
Conclusion
< 34 >
Testbench
DUT
Testbench
DUT
Code Coverage Stimulus generation Protocol checking Data checking Protocol coverage Test plan coverage
Code Coverage
SVA,PSL
Stimulus generation Protocol coverage Protocol checking Test plan coverage Data checking
< 35 >
< 36 >
Control-oriented functional coverage slightly overlaps but greatly extends code coverage capabilities, with:
Arbitrarily complex sequences Temporal logic
< 37 >
Data-oriented functional coverage somewhat overlaps (but also extends) code coverage capabilities, with:
Conditional scoring Cross-products
< 38 >
Insert coverage configuration by giving options Elaborate the Design ncelab top_level_unit [coverage options] [other_options] Coverage Option
-coverage <coverage_types>
ICC does block, expression, FSM, toggle, and functional coverage
Description
Coverage types {b e f t u a}
To select all coverage use b:e:f:t:u or all.
< 39 >
Coverage Option
-covworkdir directory -covdesign directory -covtest directory -covoverwrite -covnomodeldump -input tcl_script
Description
Specify coverage work directory Specify coverage design directory Specify coverage test directory Overwite existing test directory Suppress dumping coverage model Input Tcl command script
Default
cov_work/ Design/ Test/
< 40 >
< 41 >
< 42 >
< 43 >
Agenda
Overview Multi-Language Simulation Debugging Environment Coverage Analysis New Update Information
< 44 >
Configuration command : deselect_coverage [-betf] [[-module] list | instance list | -file list]
< 45 >
With deselect coverage command it could ignore certain files as the blackbox to increase the total coverage rate
< 46 >
Statement Coverage
In a design, an unverified block with MORE statements is likely to have MORE ERRORS than the one with a single statement. A block coverage report, by default, does not include information on the number of statements within a block
set_statement_score
Command:
With this command, scoring of statements is enabled, and the statement coverage information is also included in the block coverage report.
< 47 >
Statement Coverage
The following report is generated from the code after enabling branch and statement coverage.
In the above report, column #Stmts shows the number of statements in the corresponding block.
< 48 >
< 49 >