SlideShare a Scribd company logo
1 of 6
Download to read offline
38
INTRODUCTION
The fundamental goal of a verification engineer is to ensure
that the Device Under Test (DUT) behaves correctly in
its verification environment. As chip designs grow larger
and more complex with thousands of possible states and
transitions, a comprehensive verification environment must
be created that minimizes development effort. To minimize
effort, functional coverage is used as a guide for directing
verification resources by identifying tested and untested
portions of the design. The approach should give any
verification engineer confidence in DUT functionality.
Functional coverage is a user-defined coverage which maps
each functionality defined in the test plan to be tested to a
cover point. Whenever the functionality to be tested is hit in
the simulation, the functional coverage point is automatically
updated. A functional coverage report can be generated
which summarizes how many coverage points were hit.
Functional coverage metrics can be used to measure the
progress of a verification effort.
The key aspects of functional coverage are as follows:
• It is user-specified and not automatically inferred from
the design.
• It is based on the design specification and is thus
independent of the actual design code or its structure.
This article represents some of the important features of a
functional coverage model that will be useful for verification
engineers to develop a functional coverage model with
high quality. The scenarios discussed subsequently cover
some of the finer aspects of using these constructs more
productively.
USE OF DEFAULT SEQUENCE
FOR TRANSITION COVERAGE
Similar to ‘Default Construct’ which is useful for catching
unplanned or invalid values, ‘Default Sequence’ is used to
catch all transitions (or sequences) that do not lie within any
of the defined transition bins.
When any non-default sequence transition is incremented
or any previously specified bin transition is not in pending
state, then ‘bin allother’ of that cover point will be
incremented.
In the following example, the transition from value 1 to 0 is
specified by bins flag_trans. So if any transition occurs from
1 to 0, then it will be captured by flag_trans bins.
Here, by using default sequence (shown on the next page)
you can capture other transitions that are not specified
exclusively.
Figure 1: Functional Coverage Flow Diagram
Functional Coverage Development Tips: Do’s and Don’ts
by Samrat Patel & Vipul Patel, eInfochips
39
While using default sequence, avoid the following
scenarios:
Scenario-1: The default sequence specification does not
accept multiple transition bins (the [] notation). It will give
an error. Therefore, avoid using a default sequence with
multiple transition bins.
Scenario-2: The default sequence specification cannot
be explicitly ignored. It will be an error for bins designated
as ignore_bins to specify a default sequence. Therefore,
avoid using a default sequence with ignore_bins.
EXCLUSION OF CROSS COVERAGE
AUTO GENERATED BINS
Problem: Suppose the requirement is to do cross
coverage between two cover points and capture only
specific user-defined bins as follows:
In the above example, the coverage report will capture
user-defined bins along with auto-generated bins.
However, the requirement is to capture only specific user
bins.
The limitation of cross coverage is that even on specifying
only user bins, it will also generate cross coverage bins
automatically.
Solution: To disable auto generated cross bins, you
should use ignore_bins as shown below:
Another way is that instead of specifying user-defined bins,
simply use ignore_bins. This will ignore other bins except
required user-defined bins so we can get the expected result.
AVOID USING MULTIPLE BIN CONSTRUCT (THE []
NOTATION) WITH NON-CONSECUTIVE REPETITION
The non-consecutive repetition is specified using
trans_item [= repeat_range]. The required number of
occurrences of a particular value is specified by the
repeat_range.
Problem: Using non-consecutive repetition with multiple
bins construct (the [] notation) gives a fatal run time error
as follows:
cp_flag: coverpoint data [24] {
bins flag_trans = (1 => 0);
bins allother = default sequence;
}
cr_thr_addr: cross cp_thr, cp_reg_addr {
bins thr_add = binsof(cp_reg_addr) intersect
{12’h01C};
ignore_bins thr_add_ig = !binsof(cp_reg_addr) intersect
{12’h01C};
}
cr_thr_addr: cross cp_thr, cp_reg_addr {
ignore_bins thr_add = binsof(cp_reg_addr) intersect
{12’h020};
}
cp_flag: coverpoint data [24] {
bins flag_trans[] = (1 => 0[=3]);
}
Simulation Error:
# ** Fatal: (vsim-8568) Unbounded or undetermined
cp_flag: coverpoint data [24] {
bins flag_trans = (1 => 0);
bins allother [] = default sequence;
}
cp_flag: coverpoint data[24] {
bins flag_trans = (1 => 0);
ignore_bins allother = default sequence;
}
cp_thr: coverpoint data [11:8] {
bins thr_val_0 = {0};
bins thr_val_1 = {1};
}
cp_reg_addr: coverpoint addr {
bins reg_addr_1 = {12’h01C};
bins reg_addr_2 = {12’h020};
}
cr_thr_addr: cross cp_thr, cp_reg_addr {
bins thr_add = binsof(cp_reg_addr) intersect {12’h01C};
}
40
Solution: During non-consecutive repetition, any number
of sample points can occur before the first occurrence of
the specified value and between each occurrence of the
specified value. The transition following the non-consecutive
repetition may occur after any number of sample points, as
long as the repetition value does not occur again.
As length varies for non-consecutive repetition, you cannot
determine it. So you should avoid using the multiple bin
construct (the [] notation) with non-consecutive repetition.	
Here, in flag_trans bins 0[=3] is the same as … 0 => …=>
0…=> 0 means any number of sample points can occur
before the occurrence and between each occurrence of the
specified value. But as you have specified bins flag_trans as
static bin, it will avoid returning a fatal error.
AVOID USE OF DEFAULT
As per LRM, the default specification defines a bin that is
associated with none of the defined value bins. It catches
the coverage point values that do not lie within any of the
defined bins.
Problem-1: If you use multiple bin construct (the [] notation)
then it will create a separate bin for each value.
In following example, the first bin construct associates bin
rsvd_bit with the value of zero. Every value that does not
match bins rsvd_bit is added to its own distinct bin.
But as mentioned above, if the coverage point has a large
number of values and you run simulation for it, then the
simulator crashes and it gives the following fatal error:
Here the question is: Do you really need 2147483647 values?
Solution:
Use default without multiple bin construct (the []
notation): If you use default without multiple bin construct
for large values, then it will a create single bin for all values,
thus avoiding fatal errors.
Use ignore_bins: If you use ignore_bins construct for large
values then it will ignore unnecessary large values, similarly
avoiding fatal errors.
Problem-2: Coverage calculation for a cover point shall not
take into account the coverage captured by the default bin,
which is also excluded from cross coverage.
In following example, for data cover point, bins thr_val is
specified as default. So values 0 to 15 are added into its
own distinct bin. Also data cover point is used in cross
coverage with addr cover point.
varying length sequences formed using Repetitive/
Consecutive operators are not allowed in unsized Array
Transition bins. A transition item in bin ‘err_flag’ of Coverpoint
‘cp_err_flag’ in Covergroup instance ‘/tx_env_pkg::tx_
coverage::cg_err_ctrl_status_reg ‘ has an operator of kind ‘[=
]’. Please fix it
cp_flag: coverpoint data[24] {
bins flag_trans = (1 => 0[=3]);
}
cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) {
bins rsvd_bit = {0};
bins others = default;
}
cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) {
bins rsvd_bit = {0};
ignore_bins ig_rsvd_bit = {[1:$]};
# ** Fatal: The number of singleton values exceeded the
system limit of 2147483647 for unconstrained array bin ‘other’
in Coverpoint
‘data’ of Covergroup instance ‘/covunit/cg_err_reg’.
cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) {
bins rsvd_bit = {0};
bins others[] = default;
}
cp_thr: coverpoint data[11:8] {
bins thr_val_ 0 = 0;
bins thr_val[15] = default;
}
cp_reg_addr: coverpoint addr {
bins reg_addr_1 = {12’h01C};
bins reg_addr_2 = {12’h020};
}
cr_thr_addr : cross cp_thr, cp_reg_addr;
41
Here, data cover point has no coverage because bins are
specified using “default;” also there is no cross coverage
because we don’t have coverage for data cover point.
Solution:
Use wildcard bins: This captures combinations
of all possible values.
Use min/max ($) operators: It specifies minimum
or maximum values range.
AVOID USE OF ILLEGAL_BINS
If you specify any bin as illegal_bins, this will remove
unused or illegal values from the overall coverage
calculation.
Problem: In the following example, during the read
operation the reserved bit value should be zero;
any other value will return an error.
In this scenario, certain questions arise:
Question-1: Is it reasonable to rely on a passive
component to capture an active error? If you want to
capture active errors using illegal_bins and do not use
a passive coverage component (i.e. if you turn it off and
use only an active component), you will not capture any
active errors.
Solution-1:
Use assertion and checkers to capture active errors:
If you want to capture active errors then you can do so
using assertion and checkers. This will throw errors; the
problem of relying on a passive component to capture
active errors will be resolved.
Note:
1. If you have defined checkers and assertions and
still want to cross check for any run time error through
passive component, you can also use illegal_bins.
2. If you are sure of any scenario that should not occur
in any condition, then you can use illegal_bins.
Question-2: How to avoid such condition without using
illegal_bins?
Solution-2:
Use ignore_bins: This ignores other values and does
not throw any type of active errors. Also, it excludes
those values from overall coverage.
We hope these suggestions are useful in your verification
efforts!
cp_thr: coverpoint data[11:8] {
bins thr_val_ 0 = 0;
wildcard bins thr_val_wc = {[4’b???1]};
}
cp_thr: coverpoint data[11:8] {
bins thr_val_ 0 = 0;
bins thr_val_op = {[1:$]};;
}
cp_rsvd_bit: coverpoint data[31:25] iff (trans ==
pkg::READ) {
bins rsvd_bit = {0};
ignore_bins ig_rsvd_bit = {[1:$]};
}
cp_rsvd_bit: coverpoint data[31:25] iff (trans ==
pkg::READ) {
bins rsvd_bit = {0};
illegal_bins il_rsvd_bit = {[1:$]};
}
VERIFICATION
ACADEMYThe Most Comprehensive Resource for Verification Training
21 Video Courses Available Covering
• Intelligent Testbench Automation
• Metrics in SoC Verification
• Verification Planning
• Introductory, Basic, and Advanced UVM
• Assertion-Based Verification
• FPGA Verification
• Testbench Acceleration
• PowerAware Verification
• Analog Mixed-Signal Verification
UVM and Coverage Online Methodology Cookbooks
Discussion Forum with more than 5000 topics
UVM Connect and UVM Express Kits
www. verificationacademy.com
21 Video Courses Available Covering
• Intelligent Testbench Automation
• Metrics in SoC Verification
• Verification Planning
• Introductory, Basic, and Advanced UVM
• Assertion-Based Verification
• FPGA Verification
• Testbench Acceleration
• PowerAware Verification
• Analog Mixed-Signal Verification
UVM and Coverage Online Methodology Cookbooks
Discussion Forum with more than 5000 topics
UVM Connect and UVM Express Kits
www. verificationacademy.com
Editor: Tom Fitzpatrick
Program Manager: Rebecca Granquist
Wilsonville Worldwide Headquarters
8005 SW Boeckman Rd.
Wilsonville, OR 97070-7777
Phone: 503-685-7000
To subscribe visit:
www.mentor.com/horizons
To view our blog visit:
VERIFICATIONHORIZONSBLOG.COM

More Related Content

What's hot

Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesNirav Desai
 
Verification of amba axi bus protocol implementing incr and wrap burst using ...
Verification of amba axi bus protocol implementing incr and wrap burst using ...Verification of amba axi bus protocol implementing incr and wrap burst using ...
Verification of amba axi bus protocol implementing incr and wrap burst using ...eSAT Journals
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coveragerraimi
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
Amba axi 29 3_2015
Amba axi 29 3_2015Amba axi 29 3_2015
Amba axi 29 3_2015kiemnhatminh
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingDVClub
 
APB protocol v1.0
APB protocol v1.0APB protocol v1.0
APB protocol v1.0Azad Mishra
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverageNirav Desai
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?Sameh El-Ashry
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_featuresNirav Desai
 

What's hot (20)

CPU Verification
CPU VerificationCPU Verification
CPU Verification
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
 
Axi
AxiAxi
Axi
 
Verification of amba axi bus protocol implementing incr and wrap burst using ...
Verification of amba axi bus protocol implementing incr and wrap burst using ...Verification of amba axi bus protocol implementing incr and wrap burst using ...
Verification of amba axi bus protocol implementing incr and wrap burst using ...
 
axi protocol
axi protocolaxi protocol
axi protocol
 
Pcie basic
Pcie basicPcie basic
Pcie basic
 
PCIe DL_layer_3.0.1 (1)
PCIe DL_layer_3.0.1 (1)PCIe DL_layer_3.0.1 (1)
PCIe DL_layer_3.0.1 (1)
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coverage
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
Pc ie tl_layer (3)
Pc ie tl_layer (3)Pc ie tl_layer (3)
Pc ie tl_layer (3)
 
Ral by pushpa
Ral by pushpa Ral by pushpa
Ral by pushpa
 
Amba axi 29 3_2015
Amba axi 29 3_2015Amba axi 29 3_2015
Amba axi 29 3_2015
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference Modeling
 
Axi protocol
Axi protocolAxi protocol
Axi protocol
 
APB protocol v1.0
APB protocol v1.0APB protocol v1.0
APB protocol v1.0
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverage
 
AXI Protocol.pptx
AXI Protocol.pptxAXI Protocol.pptx
AXI Protocol.pptx
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
dual-port RAM (DPRAM)
dual-port RAM (DPRAM)dual-port RAM (DPRAM)
dual-port RAM (DPRAM)
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 

Viewers also liked

Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Rapita Systems Ltd
 
Unit Testing Done Right
Unit Testing Done RightUnit Testing Done Right
Unit Testing Done RightBrian Fenton
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Pavneet Singh Kochhar
 
What's with All This Talk About Coverage?
What's with All This Talk About Coverage?What's with All This Talk About Coverage?
What's with All This Talk About Coverage?DVClub
 
Comparing model coverage and code coverage in Model Driven testing: an explor...
Comparing model coverage and code coverage in Model Driven testing: an explor...Comparing model coverage and code coverage in Model Driven testing: an explor...
Comparing model coverage and code coverage in Model Driven testing: an explor...REvERSE University of Naples Federico II
 
Tools and techniques of code coverage testing
Tools and techniques of code coverage testingTools and techniques of code coverage testing
Tools and techniques of code coverage testingIAEME Publication
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective Engineering Software Lab
 
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자Taeyeop Kim
 
Code coverage analysis in testing
Code coverage analysis in testingCode coverage analysis in testing
Code coverage analysis in testingNi
 

Viewers also liked (15)

Doulos coverage-tips-tricks
Doulos coverage-tips-tricksDoulos coverage-tips-tricks
Doulos coverage-tips-tricks
 
Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage"
 
Unit Testing Done Right
Unit Testing Done RightUnit Testing Done Right
Unit Testing Done Right
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
 
What's with All This Talk About Coverage?
What's with All This Talk About Coverage?What's with All This Talk About Coverage?
What's with All This Talk About Coverage?
 
Comparing model coverage and code coverage in Model Driven testing: an explor...
Comparing model coverage and code coverage in Model Driven testing: an explor...Comparing model coverage and code coverage in Model Driven testing: an explor...
Comparing model coverage and code coverage in Model Driven testing: an explor...
 
Tools and techniques of code coverage testing
Tools and techniques of code coverage testingTools and techniques of code coverage testing
Tools and techniques of code coverage testing
 
Pragmatic Code Coverage
Pragmatic Code CoveragePragmatic Code Coverage
Pragmatic Code Coverage
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective
 
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자
IoT 개발자를 위한 Embedded C에서 Test Coverage를 추출해보자
 
Code coverage analysis in testing
Code coverage analysis in testingCode coverage analysis in testing
Code coverage analysis in testing
 
Code coverage
Code coverageCode coverage
Code coverage
 
Code Coverage
Code CoverageCode Coverage
Code Coverage
 
Code coverage
Code coverageCode coverage
Code coverage
 
Test Strategy
Test StrategyTest Strategy
Test Strategy
 

Similar to Functional Coverage Development Tips

Exploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExampleExploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExamplePVS-Studio
 
Advanced Computer Programming..pptx
Advanced Computer Programming..pptxAdvanced Computer Programming..pptx
Advanced Computer Programming..pptxKrishanthaRanaweera1
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioPVS-Studio
 
Checking the code of Valgrind dynamic analyzer by a static analyzer
Checking the code of Valgrind dynamic analyzer by a static analyzerChecking the code of Valgrind dynamic analyzer by a static analyzer
Checking the code of Valgrind dynamic analyzer by a static analyzerPVS-Studio
 
The Uniform Access Principle
The Uniform Access PrincipleThe Uniform Access Principle
The Uniform Access PrinciplePhilip Schwarz
 
PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio
 
Mid term sem 2 1415 sol
Mid term sem 2 1415 solMid term sem 2 1415 sol
Mid term sem 2 1415 solIIUM
 
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindAccord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindPVS-Studio
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docxssuser1c8ca21
 
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptxWINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptxssusercd11c4
 
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COM
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COMDATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COM
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COMalbert0063
 
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...Massimo Cenci
 
Ssis partitioning and best practices
Ssis partitioning and best practicesSsis partitioning and best practices
Ssis partitioning and best practicesVinod Kumar
 

Similar to Functional Coverage Development Tips (20)

Exploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExampleExploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an Example
 
Bound and Checked
Bound and CheckedBound and Checked
Bound and Checked
 
Advanced Computer Programming..pptx
Advanced Computer Programming..pptxAdvanced Computer Programming..pptx
Advanced Computer Programming..pptx
 
Analyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-StudioAnalyzing the Blender project with PVS-Studio
Analyzing the Blender project with PVS-Studio
 
VB Script Overview
VB Script OverviewVB Script Overview
VB Script Overview
 
Checking the code of Valgrind dynamic analyzer by a static analyzer
Checking the code of Valgrind dynamic analyzer by a static analyzerChecking the code of Valgrind dynamic analyzer by a static analyzer
Checking the code of Valgrind dynamic analyzer by a static analyzer
 
The Uniform Access Principle
The Uniform Access PrincipleThe Uniform Access Principle
The Uniform Access Principle
 
PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...PVS-Studio team is about to produce a technical breakthrough, but for now let...
PVS-Studio team is about to produce a technical breakthrough, but for now let...
 
Instant DBMS Homework Help
Instant DBMS Homework HelpInstant DBMS Homework Help
Instant DBMS Homework Help
 
Mid term sem 2 1415 sol
Mid term sem 2 1415 solMid term sem 2 1415 sol
Mid term sem 2 1415 sol
 
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindAccord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docx
 
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptxWINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
 
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COM
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COMDATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COM
DATABASE AND FILE MANAGEMENT SYSTEMS / TUTORIALOUTLET DOT COM
 
C# features
C# featuresC# features
C# features
 
Visual binning
Visual binningVisual binning
Visual binning
 
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...
Recipe 5 of Data Warehouse and Business Intelligence - The null values manage...
 
Matopt
MatoptMatopt
Matopt
 
Flag Waiving
Flag WaivingFlag Waiving
Flag Waiving
 
Ssis partitioning and best practices
Ssis partitioning and best practicesSsis partitioning and best practices
Ssis partitioning and best practices
 

More from eInfochips (An Arrow Company)

ASIC Design Solution & Challenges for Shorter TTM [Infographic]
ASIC Design Solution & Challenges for Shorter TTM [Infographic]ASIC Design Solution & Challenges for Shorter TTM [Infographic]
ASIC Design Solution & Challenges for Shorter TTM [Infographic]eInfochips (An Arrow Company)
 
Bringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipsBringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipseInfochips (An Arrow Company)
 
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...eInfochips (An Arrow Company)
 
Whitepaper - Transforming the Energy & Utilities Industry with Smart Analytics
Whitepaper - Transforming the Energy & Utilities Industry with Smart AnalyticsWhitepaper - Transforming the Energy & Utilities Industry with Smart Analytics
Whitepaper - Transforming the Energy & Utilities Industry with Smart AnalyticseInfochips (An Arrow Company)
 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlockseInfochips (An Arrow Company)
 
Infographics 8 factors to evaluate while considering open source
Infographics   8 factors to evaluate while considering open sourceInfographics   8 factors to evaluate while considering open source
Infographics 8 factors to evaluate while considering open sourceeInfochips (An Arrow Company)
 
Webinar - How To Drive Promotions To Your Magento eCommerce Store
Webinar - How To Drive Promotions To Your Magento eCommerce StoreWebinar - How To Drive Promotions To Your Magento eCommerce Store
Webinar - How To Drive Promotions To Your Magento eCommerce StoreeInfochips (An Arrow Company)
 
9 Promotional Modules Your e-commerce Portal Should Have
9 Promotional Modules Your e-commerce Portal Should Have9 Promotional Modules Your e-commerce Portal Should Have
9 Promotional Modules Your e-commerce Portal Should HaveeInfochips (An Arrow Company)
 

More from eInfochips (An Arrow Company) (20)

ASIC Design Solution & Challenges for Shorter TTM [Infographic]
ASIC Design Solution & Challenges for Shorter TTM [Infographic]ASIC Design Solution & Challenges for Shorter TTM [Infographic]
ASIC Design Solution & Challenges for Shorter TTM [Infographic]
 
Bringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipsBringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochips
 
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...
World's 1st successful porting of Android 4.4.4 on a PowerPC architecture - f...
 
Whitepaper - Transforming the Energy & Utilities Industry with Smart Analytics
Whitepaper - Transforming the Energy & Utilities Industry with Smart AnalyticsWhitepaper - Transforming the Energy & Utilities Industry with Smart Analytics
Whitepaper - Transforming the Energy & Utilities Industry with Smart Analytics
 
eInfochips Semicon - Trust the Experts
eInfochips Semicon - Trust the ExpertseInfochips Semicon - Trust the Experts
eInfochips Semicon - Trust the Experts
 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
 
Top 10 Design Innovations for 2015 from eInfochips
Top 10 Design Innovations for 2015 from eInfochipsTop 10 Design Innovations for 2015 from eInfochips
Top 10 Design Innovations for 2015 from eInfochips
 
Infographic: Technology Stack - Internet of Things
Infographic: Technology Stack - Internet of ThingsInfographic: Technology Stack - Internet of Things
Infographic: Technology Stack - Internet of Things
 
Connected Worlds - Internet of Things and Big Data
Connected Worlds - Internet of Things and Big DataConnected Worlds - Internet of Things and Big Data
Connected Worlds - Internet of Things and Big Data
 
Infographics 8 factors to evaluate while considering open source
Infographics   8 factors to evaluate while considering open sourceInfographics   8 factors to evaluate while considering open source
Infographics 8 factors to evaluate while considering open source
 
Physical Design Services
Physical Design ServicesPhysical Design Services
Physical Design Services
 
Webinar - How To Drive Promotions To Your Magento eCommerce Store
Webinar - How To Drive Promotions To Your Magento eCommerce StoreWebinar - How To Drive Promotions To Your Magento eCommerce Store
Webinar - How To Drive Promotions To Your Magento eCommerce Store
 
Board Design and System Software
Board Design and System SoftwareBoard Design and System Software
Board Design and System Software
 
9 Promotional Modules Your e-commerce Portal Should Have
9 Promotional Modules Your e-commerce Portal Should Have9 Promotional Modules Your e-commerce Portal Should Have
9 Promotional Modules Your e-commerce Portal Should Have
 
Retail Site Intelligence
Retail Site IntelligenceRetail Site Intelligence
Retail Site Intelligence
 
Designer Pulse: Medical Device Developers Survey
Designer Pulse: Medical Device Developers SurveyDesigner Pulse: Medical Device Developers Survey
Designer Pulse: Medical Device Developers Survey
 
eInfochips Semiconductor Services
eInfochips Semiconductor ServiceseInfochips Semiconductor Services
eInfochips Semiconductor Services
 
eInfochips IoT Infograph
eInfochips IoT InfographeInfochips IoT Infograph
eInfochips IoT Infograph
 
Seizing the day in wearable devices
Seizing the day in wearable devicesSeizing the day in wearable devices
Seizing the day in wearable devices
 
Medical devices capabilities
Medical devices capabilitiesMedical devices capabilities
Medical devices capabilities
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Functional Coverage Development Tips

  • 1. 38 INTRODUCTION The fundamental goal of a verification engineer is to ensure that the Device Under Test (DUT) behaves correctly in its verification environment. As chip designs grow larger and more complex with thousands of possible states and transitions, a comprehensive verification environment must be created that minimizes development effort. To minimize effort, functional coverage is used as a guide for directing verification resources by identifying tested and untested portions of the design. The approach should give any verification engineer confidence in DUT functionality. Functional coverage is a user-defined coverage which maps each functionality defined in the test plan to be tested to a cover point. Whenever the functionality to be tested is hit in the simulation, the functional coverage point is automatically updated. A functional coverage report can be generated which summarizes how many coverage points were hit. Functional coverage metrics can be used to measure the progress of a verification effort. The key aspects of functional coverage are as follows: • It is user-specified and not automatically inferred from the design. • It is based on the design specification and is thus independent of the actual design code or its structure. This article represents some of the important features of a functional coverage model that will be useful for verification engineers to develop a functional coverage model with high quality. The scenarios discussed subsequently cover some of the finer aspects of using these constructs more productively. USE OF DEFAULT SEQUENCE FOR TRANSITION COVERAGE Similar to ‘Default Construct’ which is useful for catching unplanned or invalid values, ‘Default Sequence’ is used to catch all transitions (or sequences) that do not lie within any of the defined transition bins. When any non-default sequence transition is incremented or any previously specified bin transition is not in pending state, then ‘bin allother’ of that cover point will be incremented. In the following example, the transition from value 1 to 0 is specified by bins flag_trans. So if any transition occurs from 1 to 0, then it will be captured by flag_trans bins. Here, by using default sequence (shown on the next page) you can capture other transitions that are not specified exclusively. Figure 1: Functional Coverage Flow Diagram Functional Coverage Development Tips: Do’s and Don’ts by Samrat Patel & Vipul Patel, eInfochips
  • 2. 39 While using default sequence, avoid the following scenarios: Scenario-1: The default sequence specification does not accept multiple transition bins (the [] notation). It will give an error. Therefore, avoid using a default sequence with multiple transition bins. Scenario-2: The default sequence specification cannot be explicitly ignored. It will be an error for bins designated as ignore_bins to specify a default sequence. Therefore, avoid using a default sequence with ignore_bins. EXCLUSION OF CROSS COVERAGE AUTO GENERATED BINS Problem: Suppose the requirement is to do cross coverage between two cover points and capture only specific user-defined bins as follows: In the above example, the coverage report will capture user-defined bins along with auto-generated bins. However, the requirement is to capture only specific user bins. The limitation of cross coverage is that even on specifying only user bins, it will also generate cross coverage bins automatically. Solution: To disable auto generated cross bins, you should use ignore_bins as shown below: Another way is that instead of specifying user-defined bins, simply use ignore_bins. This will ignore other bins except required user-defined bins so we can get the expected result. AVOID USING MULTIPLE BIN CONSTRUCT (THE [] NOTATION) WITH NON-CONSECUTIVE REPETITION The non-consecutive repetition is specified using trans_item [= repeat_range]. The required number of occurrences of a particular value is specified by the repeat_range. Problem: Using non-consecutive repetition with multiple bins construct (the [] notation) gives a fatal run time error as follows: cp_flag: coverpoint data [24] { bins flag_trans = (1 => 0); bins allother = default sequence; } cr_thr_addr: cross cp_thr, cp_reg_addr { bins thr_add = binsof(cp_reg_addr) intersect {12’h01C}; ignore_bins thr_add_ig = !binsof(cp_reg_addr) intersect {12’h01C}; } cr_thr_addr: cross cp_thr, cp_reg_addr { ignore_bins thr_add = binsof(cp_reg_addr) intersect {12’h020}; } cp_flag: coverpoint data [24] { bins flag_trans[] = (1 => 0[=3]); } Simulation Error: # ** Fatal: (vsim-8568) Unbounded or undetermined cp_flag: coverpoint data [24] { bins flag_trans = (1 => 0); bins allother [] = default sequence; } cp_flag: coverpoint data[24] { bins flag_trans = (1 => 0); ignore_bins allother = default sequence; } cp_thr: coverpoint data [11:8] { bins thr_val_0 = {0}; bins thr_val_1 = {1}; } cp_reg_addr: coverpoint addr { bins reg_addr_1 = {12’h01C}; bins reg_addr_2 = {12’h020}; } cr_thr_addr: cross cp_thr, cp_reg_addr { bins thr_add = binsof(cp_reg_addr) intersect {12’h01C}; }
  • 3. 40 Solution: During non-consecutive repetition, any number of sample points can occur before the first occurrence of the specified value and between each occurrence of the specified value. The transition following the non-consecutive repetition may occur after any number of sample points, as long as the repetition value does not occur again. As length varies for non-consecutive repetition, you cannot determine it. So you should avoid using the multiple bin construct (the [] notation) with non-consecutive repetition. Here, in flag_trans bins 0[=3] is the same as … 0 => …=> 0…=> 0 means any number of sample points can occur before the occurrence and between each occurrence of the specified value. But as you have specified bins flag_trans as static bin, it will avoid returning a fatal error. AVOID USE OF DEFAULT As per LRM, the default specification defines a bin that is associated with none of the defined value bins. It catches the coverage point values that do not lie within any of the defined bins. Problem-1: If you use multiple bin construct (the [] notation) then it will create a separate bin for each value. In following example, the first bin construct associates bin rsvd_bit with the value of zero. Every value that does not match bins rsvd_bit is added to its own distinct bin. But as mentioned above, if the coverage point has a large number of values and you run simulation for it, then the simulator crashes and it gives the following fatal error: Here the question is: Do you really need 2147483647 values? Solution: Use default without multiple bin construct (the [] notation): If you use default without multiple bin construct for large values, then it will a create single bin for all values, thus avoiding fatal errors. Use ignore_bins: If you use ignore_bins construct for large values then it will ignore unnecessary large values, similarly avoiding fatal errors. Problem-2: Coverage calculation for a cover point shall not take into account the coverage captured by the default bin, which is also excluded from cross coverage. In following example, for data cover point, bins thr_val is specified as default. So values 0 to 15 are added into its own distinct bin. Also data cover point is used in cross coverage with addr cover point. varying length sequences formed using Repetitive/ Consecutive operators are not allowed in unsized Array Transition bins. A transition item in bin ‘err_flag’ of Coverpoint ‘cp_err_flag’ in Covergroup instance ‘/tx_env_pkg::tx_ coverage::cg_err_ctrl_status_reg ‘ has an operator of kind ‘[= ]’. Please fix it cp_flag: coverpoint data[24] { bins flag_trans = (1 => 0[=3]); } cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) { bins rsvd_bit = {0}; bins others = default; } cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) { bins rsvd_bit = {0}; ignore_bins ig_rsvd_bit = {[1:$]}; # ** Fatal: The number of singleton values exceeded the system limit of 2147483647 for unconstrained array bin ‘other’ in Coverpoint ‘data’ of Covergroup instance ‘/covunit/cg_err_reg’. cp_rsvd_bit: coverpoint data[31:13] iff (trans == pkg::READ) { bins rsvd_bit = {0}; bins others[] = default; } cp_thr: coverpoint data[11:8] { bins thr_val_ 0 = 0; bins thr_val[15] = default; } cp_reg_addr: coverpoint addr { bins reg_addr_1 = {12’h01C}; bins reg_addr_2 = {12’h020}; } cr_thr_addr : cross cp_thr, cp_reg_addr;
  • 4. 41 Here, data cover point has no coverage because bins are specified using “default;” also there is no cross coverage because we don’t have coverage for data cover point. Solution: Use wildcard bins: This captures combinations of all possible values. Use min/max ($) operators: It specifies minimum or maximum values range. AVOID USE OF ILLEGAL_BINS If you specify any bin as illegal_bins, this will remove unused or illegal values from the overall coverage calculation. Problem: In the following example, during the read operation the reserved bit value should be zero; any other value will return an error. In this scenario, certain questions arise: Question-1: Is it reasonable to rely on a passive component to capture an active error? If you want to capture active errors using illegal_bins and do not use a passive coverage component (i.e. if you turn it off and use only an active component), you will not capture any active errors. Solution-1: Use assertion and checkers to capture active errors: If you want to capture active errors then you can do so using assertion and checkers. This will throw errors; the problem of relying on a passive component to capture active errors will be resolved. Note: 1. If you have defined checkers and assertions and still want to cross check for any run time error through passive component, you can also use illegal_bins. 2. If you are sure of any scenario that should not occur in any condition, then you can use illegal_bins. Question-2: How to avoid such condition without using illegal_bins? Solution-2: Use ignore_bins: This ignores other values and does not throw any type of active errors. Also, it excludes those values from overall coverage. We hope these suggestions are useful in your verification efforts! cp_thr: coverpoint data[11:8] { bins thr_val_ 0 = 0; wildcard bins thr_val_wc = {[4’b???1]}; } cp_thr: coverpoint data[11:8] { bins thr_val_ 0 = 0; bins thr_val_op = {[1:$]};; } cp_rsvd_bit: coverpoint data[31:25] iff (trans == pkg::READ) { bins rsvd_bit = {0}; ignore_bins ig_rsvd_bit = {[1:$]}; } cp_rsvd_bit: coverpoint data[31:25] iff (trans == pkg::READ) { bins rsvd_bit = {0}; illegal_bins il_rsvd_bit = {[1:$]}; }
  • 5. VERIFICATION ACADEMYThe Most Comprehensive Resource for Verification Training 21 Video Courses Available Covering • Intelligent Testbench Automation • Metrics in SoC Verification • Verification Planning • Introductory, Basic, and Advanced UVM • Assertion-Based Verification • FPGA Verification • Testbench Acceleration • PowerAware Verification • Analog Mixed-Signal Verification UVM and Coverage Online Methodology Cookbooks Discussion Forum with more than 5000 topics UVM Connect and UVM Express Kits www. verificationacademy.com 21 Video Courses Available Covering • Intelligent Testbench Automation • Metrics in SoC Verification • Verification Planning • Introductory, Basic, and Advanced UVM • Assertion-Based Verification • FPGA Verification • Testbench Acceleration • PowerAware Verification • Analog Mixed-Signal Verification UVM and Coverage Online Methodology Cookbooks Discussion Forum with more than 5000 topics UVM Connect and UVM Express Kits www. verificationacademy.com
  • 6. Editor: Tom Fitzpatrick Program Manager: Rebecca Granquist Wilsonville Worldwide Headquarters 8005 SW Boeckman Rd. Wilsonville, OR 97070-7777 Phone: 503-685-7000 To subscribe visit: www.mentor.com/horizons To view our blog visit: VERIFICATIONHORIZONSBLOG.COM