首页 > 解决方案 > 带切换的 Verilog 随机函数

问题描述

如何使用随机函数生成 verilog 测试向量,但只有 50% 位切换 例如:地址 [7:0] 值从 0 到 255 变化 --> 要生成的地址类似于 01010101、00001111、11110000、10101010 等

标签: verilogsystem-verilog

解决方案


您可以通过计算在将随机值与其先前值异或时设置的位数来限制更改的位数

 class req;
     rand bit[7:0] Address;
     constraint toggle_bits {$countones(Address ^ const'(Address)) == 4; }
 endclass

完整的例子你可以在这里试试。


推荐阅读