私の遺伝的アルゴリズムの疑似乱数をSpartan-3E FPGAで生成する必要があります。これをVerilogで実装したいと思います。Spartan-3Eの乱数生成
答えて
通常は、
use IEEE.math_real.all;
procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real);
IEEE.math_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コードジェネレータです:
もちろん、アダムによるランダムジェネレータは合成できません! 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;
OpenCoresのに上記のポインタと呼ばれるのverilogフォルダ内のファイルがあります:私はのSpartan-3ANにそれを使用している、それは素晴らしい作品rng.v
を。私のコードは、パートをプログラムした後に乱数ジェネレータを使用してランダムPWMを選択し、選択可能なPWMをすべてカバーしていました。
擬似乱数ジェネレータ用のVerilogまたはVHDLコードを生成できるオンラインツールがあります。それは上にありますOutputLogic.com
私はLFSRに同意します。私はこれを前に作ったし、それは暗号化のために使われる。
LFSRは擬似乱数生成には便利だが、実際の暗号化方式では不適切であることに注意することが重要だと思う。 – wjl
あなたはすでにいくつかの良い答えを持っているが、私はただのFPGA内のLFSRに正規のガイドを指摘するだろうが、ここにある:
http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
それはOKである場所でビットザイリンクス特定の(ですあなたのFPGAの:)しかし、原則は他の人に転送することができます。
- 1. 乱数生成
- 2. 乱数の生成
- 3. スパーク - 乱数生成
- 4. 乱数生成器
- 5. Javascript - 乱数生成
- 6. ATMega乱数生成
- 7. 乱数生成器 - 毎回乱数を生成しない
- 8. 幾何乱数の生成
- 9. Excelでの乱数生成
- 10. Cauchyから乱数生成
- 11. 再帰乱数生成器
- 12. Omnet ++一様乱数生成
- 13. 乱数生成とアレイ
- 14. MersenneTwister乱数生成器
- 15. Cisco IOS乱数生成器
- 16. Python Battleship乱数生成器
- 17. 堅牢な乱数生成
- 18. MySQLプロシージャ乱数生成
- 19. 乱数生成器は、
- 20. Javascript乱数生成器
- 21. arc4random乱数生成器
- 22. Ruby。乱数生成器
- 23. 複数のオブジェクトの乱数生成
- 24. 擬似乱数乱数生成器で乱数列を生成する正しい方法
- 25. 乱数の同じシーケンスの生成
- 26. 重複のない乱数の生成
- 27. 乱数生成器関連の質問
- 28. iOSとAndroidの乱数生成器
- 29. C++乱数生成とPythonの違い
- 30. 多くの乱数を生成
OPが欲しいですが、LFSRを見るあなたの提案は妥当です。 私の興味のために、ユニファイア・プロシージャは合成可能ですか?それは何に合成されますか? – Marty