我需要在Spartan-3E FPGA上为我的遗传算法生成伪随机数,并且我想在verilog中实现它:您能否给我任何指示?Spartan-3E上的随机数生成
11
A
回答
2
通常你会使用IEEE.math_real统一的功能
use IEEE.math_real.all;
procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real);
但做一点点的伪随机数生成器(PRNG)的一个研究,你会发现许多变种是简单LFSR的 - 这看起来非常类似于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代码生成器:
16
当然Adam的随机生成器是不可综合的!您必须明确创建LFSR。
以下示例可能有所帮助。这是一个8位的最大LFSR
module lfsr(input clk, reset, en, output reg [7:0] q);
always @(posedge clk or posedge reset) begin
if (reset)
q <= 8'd1; // can be anything except zero
else if (en)
q <= {q[6:0], q[7]^q[5]^q[4]^q[3]}; // polynomial for maximal LFSR
end
endmodule;
2
指针上面OpenCores的有Verilog的文件夹,文件名为:rng.v
我已经在的Spartan-3AN用它和它的伟大工程。我的代码使用随机数发生器在编程器件后选择一个随机PWM,它覆盖了所有可选择的PWM。
2
有一个在线工具可以为伪随机数生成器生成Verilog或VHDL代码。它在OutputLogic.com
2
9
你已经有了一些很好的答案,但我只想指出的规范指导在FPGA中的LFSR是在这里:
http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
这是在地方有点赛灵思特定的(这是确定为您的FPGA :)但原则可转让给其他人。
相关问题
- 1. 生成随机数
- 2. 随机数生成
- 3. 生成随机数
- 4. 随机数生成 - ARM7上的C
- 5. 随机数生成机制
- 6. 随机数的生成
- 7. Cuda的随机数生成
- 8. 生成随机数据
- 9. Visual Basic生成随机数
- 10. 生成一组随机数
- 11. 正确生成随机数
- 12. 有关生成随机数
- 13. 随机数生成问题
- 14. MATLAB生成随机数
- 15. 生成很多随机数
- 16. 随机生成数字?
- 17. 随机数生成在PySpark
- 18. 大随机数生成
- 19. qrand不生成随机数
- 20. 生成随机小数
- 21. C++生成随机数-1
- 22. 问题随机数生成
- 23. C#生成随机数
- 24. 随机ID /数生成PHP
- 25. 生成10次随机数
- 26. 生成多个随机数
- 27. 随机数生成公式?
- 28. SQL生成随机数
- 29. ArrayList随机生成
- 30. Javascript随机生成
该OP想要verilog - 但你看看LFSRs的建议是健全的。 为了我自己的利益,UNIFORM程序是否可综合?它综合了什么? – Marty 2009-04-16 22:13:29