我目前正在尝试在UVM中随机化约束32位地址。 有没有办法限制地址的特定位?
rand bit [31:0] addr;
// last two bits should always be zero
req.randomize() with { addr[1:0] == 2'b00; };
答案 0 :(得分:2)
是的,有办法限制地址的特定位。
一种方法是使用randomize with
。
另一种方法是在constraint
内创建class
块。例如:
class foo;
rand bit [31:0] addr;
constraint c1 { addr[1:0] == 2'b00; }
endclass
module tb;
foo req = new();
initial begin
repeat (5) begin
req.randomize();
$display(req.addr, " ", req.addr[1:0]);
end
end
endmodule
/*
Output:
3053944240 0
2417184000 0
629780252 0
469272576 0
1715295476 0
*/