What can you do if you need to return two or more variables from a function?
SystemVerilog functions can have inputs and outputs. Using outputs is useful in case you want to return a queue from a function (or some other complex type), or in case you want to return two or more different variables from the function.
How to use code refactoring in DVT?
This document shows how to use the Refactoring option in DVT in order to rename variables/classes/interfaces, and how to simply extract part of the code to a function.
Array and queue randomization: foreach and unique constraint
Let’s say that you need to generate a random queue of data.
How quickly does it take to check if an element is part of an array?
How quickly it takes to check if an element is part of an array.
How to pass command line arguments in SystemVerilog?
In SystemVerilog you can pass arguments through the command line in order to avoid recompilation.
How to find out whether a substring is part of a string?
If you need to find out whether a substring is contained within a certain string, you can use the function below. The function will return 1 if the substring is a part of the string.
How to overwrite the severity of a message and turn off specific check?
If you give a specific name to your error message, you can turn it off later on. This may be useful in a case where you want to see simulation behavior with only this checker turned off or if you want to run a test that ignores a certain error.
Vector bit-select and part-select addressing in SV using +: and -:
When you are just starting to learn, you are usually not aware of the little hacks that can make your life easier.
Randomizing Fields of Register with Constraints
Today we will get into the sticky subject of bothersome fluctuation in field in registers.
Read here about a fairly simple method to attack this problem and make clean reusable code!