在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13620|回复: 12

[求助] 用Verilog生成指定范围的随机数的可综合逻辑

[复制链接]
发表于 2015-6-2 15:05:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
要实现生成(0,a)范围的伪随机序列,并且要可综合,求大神解答
发表于 2015-6-2 15:33:01 | 显示全部楼层
reg [a:0] rm;
wire [a:0] shifter={rm[a-1:0],(rm[4]^~rm[2])};
always @( ....... or  .......)
.........
rm<=0;
........
rm<=shifter;
发表于 2015-6-2 15:34:50 | 显示全部楼层
参考下!
 楼主| 发表于 2015-6-2 15:53:18 | 显示全部楼层
回复 2# licaijunzhuce


    我表述的不清晰,我是想让生成的伪随机数列在某一个范围内边动,类似于{$random}%60这样子的一个0到59的伪随机数列
发表于 2015-6-2 16:53:36 | 显示全部楼层
回复 4# huangxjmail

再加一个变量对shifter的值进判断和处理,将其限定在你要到范围内就可以了。然后把这个变量赋值给rm。
wire [a:0] sdf=(shifter>=XXX)?{}:shifter;
...
..
..
rm<=sdf;
我这个伪随机数的数目不是太多,你可以参考网上的例子。
 楼主| 发表于 2015-6-2 17:21:45 | 显示全部楼层
回复 5# licaijunzhuce


    这样的话得不到一个在时间上连续的序列,又不能在设计中用除法器求余,我的目的是要用伪随机序列实现一个概率,即当序列等于某一值时输出一个脉冲。。。
发表于 2015-6-2 18:38:19 | 显示全部楼层
谢谢
发表于 2016-1-6 20:09:43 | 显示全部楼层
你好,请问你这个问题回来解决了吗
发表于 2016-1-7 08:54:41 | 显示全部楼层
M序列算不算呢?
发表于 2016-1-7 10:57:47 | 显示全部楼层
用 ring 振荡器 产生每个位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 17:04 , Processed in 0.025993 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表