AMIQ is pleased to announce version 3.2 of the SVAUnit framework!
Highlights of SVAUnit 3.2 are:
- Added an SVAUnit User Guide with complete examples
- Added setup_test() task
- Updated checks API
- Fixed check evaluation timing to be more accurate
- Fixed printed messages
- Support for HTML regression report
- Fixed assertion registration issue
Let’s go through the details of each improvement.
We added an User Guide which provides simple, step-by-step, usage examples.
We added setup_test() task which can be used for signal initialization and test setup because it is called just before test() task.
class test extends svaunit_test; . . . // Interface containing the corresponding signals local virtual my_interface my_if; . . . virtual task setup_test(); my_if.read <= 1'b0; my_if.reset <= 1'b0; @(posedge my_if.clock); endtask virtual task test(); . . . // test scenario endtask endclass
We revamp, based on users’ requests, the checks API in order to be more suggestive. We removed some of the check API which implied negative logic, e.g. fail_if_sva_succeeded.
Due to an inconsistency between simulators regarding how SVA are evaluated, two checks API are removed: pass/fail_if_sva_started_but_not_finished and pass/fail_if_sva_not_started. Check the release notes for more details.
Fixed check evaluation timing
We fixed the behavior regarding the moment when the information about SVA state is received by the framework. In the previous versions, the information about the SVA state was received when a check was performed, but in SVAUnit 3.2 this information is received when the SVA triggers.
We fixed sequences printing in the test suite reports and renamed the categories to be more relevant. We also updated the messages verbosity to ease their filtering:
|UVM_NONE||prints the checks for each SVA statistics and the list of failed SVAs|
|UVM_LOW||prints the status statistics, the checks status summary and the above ones|
|UVM_MEDIUM (default)||prints the test suite hierarchy, the exercised SVAs and the above ones|
|UVM_DEBUG||prints debug messages and the above ones|
Support for HTML regression report
Starting with SVAUnit 3.2, a new API is available for generating HTML regression reports. The report contains the following information
- the date, the author and the test used to create the report
- total number of SVAs
- total number of exercised SVAs
- total number of executed SVAUnit checks
- total number of failed SVAUnit checks
- total number of passed SVAUnit checks
- visualization matrix to quickly identify checks executed for each SVA
Fixed assertion registration issue
Users observed that SVAs defined under a generate block were not identified and registered correctly. The issue was traced to a packaging inconsistency across different simulators.