Spartan-3E 上的随机数生成
我需要在 Spartan-3E FPGA 上为我的遗传算法生成伪随机数,并且我想在 verilog 中实现它:您能给我任何关于此的指示吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我需要在 Spartan-3E FPGA 上为我的遗传算法生成伪随机数,并且我想在 verilog 中实现它:您能给我任何关于此的指示吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
当然,Adam 的随机生成器是不可合成的! 您必须显式创建 LFSR。
以下示例可能会有所帮助。 它是一个 8 位最大 LFSR
Of course the random generator by Adam is not synthesizable! You have to explicitly create an LFSR.
Following example might help. It is an 8-bit maximal LFSR
您已经得到了一些很好的答案,但我只想指出 FPGA 中 LFSR 的规范指南位于:
http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
它在某些地方有点 Xilinx 特定(这对您的 FPGA 来说没问题:),但原理可以转让给其他人。
You've already got some good answers, but I'll just point out the canonical guide to LFSRs in FPGAs is here:
http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
It's a bit Xilinx specific in places (which is OK for your FPGA :) but the principles are transferable to others.
通常,您会使用 IEEE.math_real 统一函数
但是做一个对伪随机数生成器 (PRNG) 进行一点研究,您会发现许多简单的变体 LFSR< /a> 的 - 看起来与 CRC 生成器非常相似。
如果您想从现有的、工作的 PRNG 开始推出自己的资源,这里有一些资源:
http ://www.opencores.org/?do=project&who=systemc_rng
http://verificationguild.com/modules.php?name=Downloads&d_op=viewdownload&cid=3
这是一个 CRC VHDL 代码生成器:
http://www.easics.be/webtools/crctool
Typically you'd use the IEEE.math_real uniform function
But do a tiny bit a research on pseudo random number generators (PRNGs) and you'll find many variants that are simple LFSR's - which look remarkably similar to CRC generators.
Here are several resources if you want to roll your own starting from existing, working PRNGs:
http://www.opencores.org/?do=project&who=systemc_rng
http://verificationguild.com/modules.php?name=Downloads&d_op=viewdownload&cid=3
Here's a CRC VHDL code generator:
http://www.easics.be/webtools/crctool
有一个在线工具可以为伪随机数生成器生成 Verilog 或 VHDL 代码。 它位于 OutputLogic.com
There is an online tool that can generate Verilog or VHDL code for a pseudo-random number generator. It's on OutputLogic.com
上面指向 OpenCores 的指针在 verilog 文件夹中有一个文件,名为: rng.v
我已在Spartan-3AN,效果很好。 在我对部件进行编程后,我的代码使用随机数生成器来选择随机 PWM,并且它涵盖了所有可选的 PWM。
The pointer above to OpenCores has a file in the verilog folder called: rng.v
I have used it in a Spartan-3AN and it works great. My code used the random number generator to select a random PWM after I programmed the part and it covered all the selectable PWMs.
我同意 LFSR 的观点。 我之前做过一个,是用来加密的。
I agree with the LFSR. I have made one before and it is used for encryption.