|
Class Constraints in system verilog
|
Class Constraints in system verilog :
Constraints can be declared as class properties.
- No end-of-line semi-colon
Constraints can enforce dependencies for randomization.
- Size of dynamic array must equal len property
Dynamic array is now rand. Both size and contents are randomized, but... ...size is randomized first post_randomize and data_rand methods are no longer required.
class randframe;
local logic [3:0] addr;
rand local logic [3:0] len;
rand logic [7:0] data_arr [];
function new(input logic[3:0] pa);
addr = pa;
endfunction
constraint framelength {
data_arr.size() == len;
}
endclass
randframe one = new(.pa(5));
initial begin
assert(one.randomize() with {len>0; len<=7;});
...
|
|
This Articles is written/submitted by puneet (Puneet Aggarwal). You can also contribute to Asicguru.com. Click here to start
|
Prev << In Line Constraints
|
Next >> Virtual Classes
|