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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: xushuai_hit53

[求助] FPGA如何在一个制定范围产生一个随机数

[复制链接]
发表于 2015-1-25 00:17:21 | 显示全部楼层
always @(posedge sys_clk or negedge rst_n)
begin
    if(rst_n == 1'b0)
        prbs_out <= #U_DLY 7'b1110_101;
    else
        prbs_out <= #U_DLY {prbs_out[5:0],prbs_out[6]^prbs_out[5]};

end

恭喜,你已经有一个周期为127的7bit伪随机序列了,它的本原多项式为 x^7 + x^6 + 1,每个时钟周期产生一个,如果要加范围,你可以再逻辑限定,多于某个值后者少于某个值,就给它处理了。
产生PRBS码要用的是LFSR,说白了就是N个移位寄存器,然后把某些寄存器的输出拿来异或,每个时钟周期每个寄存器输出的结果可以组合成1个数,做得烂,这个数就不变,做得好,可以产生2^N -1个大小顺序不同的数,而怎么找抽头,需要去看近世代数知识,寻找本元多项式~~~
发表于 2015-6-11 11:45:52 | 显示全部楼层
回复 1# xushuai_hit53


    我和楼主有着同样的需求,但是想来想去只能用除法器求余的办法来实现,太费资源,,不知楼主现在有没有更好的方法
 楼主| 发表于 2015-7-1 11:10:13 | 显示全部楼层
回复 22# huangxjmail


    也没有更好的方法,用逻辑生成太费劲了,我这个有上位机,最后在上位机做随机数,把这个数传到FPGA中。
发表于 2015-7-1 22:45:56 | 显示全部楼层
回复 23# xushuai_hit53


    上位机做速度不够,,目前我只能想到用除法器求余
发表于 2015-7-2 10:35:47 | 显示全部楼层
x+random
发表于 2015-10-13 10:49:47 | 显示全部楼层
下来看看啊
发表于 2016-5-31 09:57:44 | 显示全部楼层
使用多项式的方法好些,取位异或等。
发表于 2016-5-31 10:08:20 | 显示全部楼层
这个问题比较实在,有时候用的多,学习了
发表于 2016-7-27 11:35:38 | 显示全部楼层
$random %范围 不可以吗啊?
发表于 2016-7-27 16:23:59 | 显示全部楼层
就是利用线性移位寄存器,求异或,多项式根据PN码的就可以。前段时间我刚用过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-11 03:03 , Processed in 0.027128 second(s), 6 queries , Gzip On, Redis On.

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