特定位的UVM约束

时间:2014-01-13 16:12:48

标签: verification system-verilog uvm

我目前正在尝试在UVM中随机化约束32位地址。 有没有办法限制地址的特定位?

rand bit [31:0] addr;

// last two bits should always be zero

req.randomize() with { addr[1:0] == 2'b00; };

1 个答案:

答案 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

*/