我需要在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