永发信息网

FPGA中怎么产生一个随机数?

答案:5  悬赏:50  手机版
解决时间 2021-01-23 23:00
FPGA中怎么产生一个随机数?
最佳答案
个人认为FPGA内部电路是不能产生的随机数的,应该说是伪随机数,从产生的周期来看,长时间还是有规律的。过去做过模拟的噪声发生器,是利用热噪声来产生的,但是也是有规律的高斯噪声,随机数的道理也是一样的
全部回答
系统任务 $random
这个系统函数提供了一个产生随机数的手段。当函数被调用时返回一个32bit的随机数。它是一个带
符号的整形数。
$random一般的用法是:$ramdom % b ,其中 b>0.它给出了一个范围在(-b+1):(b-1)中的随机数。
下面给出一个产生随机数的例子:
reg[23:0] rand;
rand = $random % 60;
上面的例子给出了一个范围在-59到59之间的随机数,下面的例子通过位并接操作产生一个值在0到
59之间的数。
reg[23:0] rand;
rand = {$random} % 60;
利用这个系统函数可以产生随机脉冲序列或宽度随机的脉冲序列,以用于电路的测试。下面例子中的
Verilog HDL模块可以产生宽度随机的随机脉冲序列的测试信号源,在电路模块的设计仿真时非常有
用。同学们可以根据测试的需要,模仿下例,灵活使用$random系统函数编制出与实际情况类似的随
机脉冲序列。
[例] `timescale 1ns/1ns
module random_pulse( dout );
output [9:0] dout;
reg dout;
integer delay1,delay2,k;
initial
begin
#10 dout=0;
for (k=0; k< 100; k=k+1)
begin
delay1 = 20 * ( {$random} % 6);
// delay1 在0到100ns间变化
delay2 = 20 * ( 1 + {$random} % 3);
// delay2 在20到60ns间变化
#delay1 dout = 1 << ({$random} %10);
//dout的0--9位中随机出现1,并出现的时间在0-100ns间变化
#delay2 dout = 0;
//脉冲的宽度在在20到60ns间变化
end
end
endmodule
最简单的方法是用移位反馈寄存器,产生一个PN序列。当然是伪随机数。
好像是通过循环队列产生的额,也是
伪随机数,具体忘了
采用伪随机数,至于生成式,可以自己试试。
一般产生随机数是以2的N次幂,
如verilog语法
reg [7:0] a;
always @(posedge clk or negedge rst_n)
begin
if(~rst_n)
a <= 8'haa;
else
a <= #1 {a[0]^a[1]^a[3]^a[4]^a[7],a[7:1]};
end
至于初始值和生成式,可以自己调整,使其更符合伪随机数。
为了产生更大范围的伪随机数,还可以在前一个伪随机数下在做一次。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
华荣村地址好找么,我有些事要过去
恬梦美妆(子长店)怎么去啊,我要去那办事
搭溪村地址在什么地方,想过去办事
魅力100怎么去啊,我要去那办事
QQ刷赞软件名称是什么
苹果手机怎么样性能好吗
单选题Shewaitedin________forhermother's
四川省到安徽坐火车有几条路线可以走
高艺杰和高梓杰哪个名字好
长岭上村地址好找么,我有些事要过去
炎帝生物养生会所地址好找么,我有些事要过去
凤形村地址好找么,我有些事要过去
杭州社保问题
天涯明月刀现在邦定点卷怎么不能买会员了
来峰村地址好找么,我有些事要过去
推荐资讯
大鲸教育怎么去啊,我要去那办事
It is almost five years we saw each other
朗世达眼镜地址在什么地方,我要处理点事
凝固的音乐,流动的建筑阅读答案
小沈阳演的,他是一个刚坐牢出来的厨师,就知
我160cm和180cm的男生站在一起配么?
王者荣耀5v5时,一个人被包围,怎么样能逃的
孕妇最后两个月体重增长快吗
---CanIhelpyou?---Yes,I'mlookingforapa
用配方法把函数y=-3x2-6x+10化成y=a(x-h)2+
墨江哈尼族自治县烟草专卖局专卖服务中心地址
石林彝族自治县政务服务中心烟草专卖局分中心
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?