问题描述
如何使用随机函数但只有50%的位切换来生成Verilog测试向量
例如:Address [7:0]的值在0到255之间变化->要生成的地址,例如01010101、00001111、11110000、10101010等
解决方法
您可以通过计算将随机值与其前一个值进行异或时设置的位数来限制更改的位数
class req;
rand bit[7:0] Address;
constraint toggle_bits {$countones(Address ^ const'(Address)) == 4; }
endclass
完整示例,您可以尝试here。