SVAUnit 3.2 Release is Available

AMIQ is pleased to announce version 3.2 of the SVAUnit framework!

Highlights of SVAUnit 3.2 are:

Let’s go through the details of each improvement.

User guide

We added an User Guide which provides simple, step-by-step, usage examples.

setup_test() task

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();  <= 1'b0;
      my_if.reset <= 1'b0;
      @(posedge my_if.clock);

   virtual task test();
      . . .
      // test scenario

Updated API

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.

Report messages

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.

Where can I get the latest SVAUnit version?

You can download the latest version of the SVAUnit package from AMIQ’s GITHub repository.

About SVAUnit

SVAunit is a framework that targets SVA (SystemVerilog Assertions) verification in an isolated, simplified and standardized manner.
Previous releases are SVAUnit 2.0 and SVAUnit 1.0.


Leave a Comment:

Your comment will be visible after approval.

(will not be published)

This site uses Akismet to reduce spam. Learn how your comment data is processed.