我需要在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. 生成随机数:计算随机生成的x次数
- 2. 随机数生成
- 3. 生成随机数
- 4. 生成随机数
- 5. 生成随机数
- 6. 生成随机数
- 7. 随机数生成
- 8. 随机数生成 - ARM7上的C
- 9. 随机数生成机制
- 10. 随机数生成器帮助不生成随机数 - C
- 11. 生成随机数的Array
- 12. Cuda的随机数生成
- 13. 随机数的生成
- 14. 随机()不生成随机数
- 15. 从随机长生成随机数
- 16. 在随机生成50个随机数中使用随机数#
- 17. 伪随机数生成
- 18. 无法生成随机数
- 19. 生成随机小数
- 20. Haskell Grokking随机数生成
- 21. SQL生成随机数
- 22. 随机数生成查询
- 23. C - 生成随机数
- 24. 大随机数生成
- 25. 生成随机数2^30
- 26. 随机数生成问题
- 27. Lua随机数生成
- 28. 用jinja2生成随机数
- 29. 生成多个随机数
- 30. 库随机数生成
该OP想要verilog - 但你看看LFSRs的建议是健全的。 为了我自己的利益,UNIFORM程序是否可综合?它综合了什么? – Marty 2009-04-16 22:13:29