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