用Verilog生成指定范围的随机数的可综合逻辑
时间:10-02
整理:3721RD
点击:
要实现生成(0,a)范围的伪随机序列,并且要可综合,求大神解答
reg [a:0] rm;
wire [a:0] shifter={rm[a-1:0],(rm[4]^~rm[2])};
always @( ....... or .......)
.........
rm<=0;
........
rm<=shifter;
参考下!
我表述的不清晰,我是想让生成的伪随机数列在某一个范围内边动,类似于{$random}%60这样子的一个0到59的伪随机数列
再加一个变量对shifter的值进判断和处理,将其限定在你要到范围内就可以了。然后把这个变量赋值给rm。
wire [a:0] sdf=(shifter>=XXX)?{}:shifter;
...
..
..
rm<=sdf;
我这个伪随机数的数目不是太多,你可以参考网上的例子。
这样的话得不到一个在时间上连续的序列,又不能在设计中用除法器求余,我的目的是要用伪随机序列实现一个概率,即当序列等于某一值时输出一个脉冲。
谢谢
你好,请问你这个问题回来解决了吗
M序列算不算呢?
用 ring 振荡器 产生每个位。
