Non Standard Checks in the DVT Eclipse IDE
Description
DVT warns about language constructs accepted by various simulators although not described by the IEEE LRM.
DVT understands non-LRM compliant constructs and flags them as NON_STANDARD warnings. This video walks through a handful of examples and shows how you can disable or promote them to errors using compile waivers. Keeping your codebase standard-compliant is good practice and will save a lot of time in case you ever need to add another SystemVerilog tool to your flows or switch to a different vendor.
This video was shot using DVT 21.1.6
Explore the design and verification tools: https://www.dvteclipse.com
Or request a license: https://www.dvteclipse.com/request-license
Transcript
Introduction
Over time, various language constructs, which are either not described or not allowed by the reference manual, have come to be used in SystemVerilog code.
DVT understands such constructs which are accepted by various simulators, although not described by the IEEE LRM, and flags them as non-standard warnings.
Keeping your codebase standard compliant is good practice and will save a lot of time in case you ever need to add another SystemVerilog tool to your flows or switch to a different vendor.
Examples of Non-Standard Constructs
Let's look at a few examples.
Assignments to Array Variables
In these assignments to array variables, you should use an assignment pattern, according to the LRM. DVT flags the use of the concatenation with a non-standard warning.
Comparing Enum Values
When comparing enum
values, the standard enforces their types to be the same. However, each enum
name has an associated numeric value, and some compilers accept comparing enum
s of different types based on their numeric value.
Array Select After Method Call
Here, DVT marks that using an array select after a method call is not allowed by the LRM.
Incorrect Usage of the Begin-End Block
While here, it marks an incorrect usage of the begin
-end
block.
There are many more examples, all of which can be found in the user guide under the Non Standard Checks section.
Customizing Severity and Visibility
As with all other compilation problems, DVT allows you to fully customize their severity and visibility in your project. For example, by using the Wave Problem context menu option, you can promote this particular class of non-standard warnings to errors. Similarly, you can easily hide specific problems.