adi*_*dir -1 constraints system-verilog
我正在使用system-verilog并且我想随机化一个大小为100的位向量.
但是我想只有10个单元格将获得值1.我试图在约束中使用countones()但它不可能.
所以我没有想法.
谢谢你的帮助!
我尝试了这个代码,它在Incisve中运行:
package some_package;
class some_class;
rand bit[99:0] vec;
constraint just_10_ones {
$countones(vec) == 10;
}
endclass
endpackage
module top;
import some_package::*;
initial begin
static some_class obj = new();
obj.randomize();
$display("vec = %b", obj.vec);
end
endmodule
Run Code Online (Sandbox Code Playgroud)
根据我的记忆,一些供应商过去不支持这样的约束,其中随机变量被用作方法的输入.如果他们支持的话,变量在开始的时间值randomize()被用于输入,但这种限制并不影响其最终值.