質問

私は、Spartan-3E FPGA上で私の遺伝的アルゴリズムのための擬似乱数を生成する必要があると私はVerilogでそれを実装する:あなたは私にこの上の任意のポインタを与えることができる。

役に立ちましたか?

解決

通常は、 IEEE.math_real の均一な機能を使用したいです

use IEEE.math_real.all;
procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real);

しかし、ほんの少しに擬似乱数生成器(PRNGに)の研究を行うと、あなたは簡単です多くの亜種<のhref =「http://en.wikipedia.org/wiki/Linear_feedback_shift_register」のrel =」を見つけることができますnoreferrer nofollowを "> 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コードジェネレータです。

http://www.easics.be/webtools/crctoolする

他のヒント

もちろんアダムによるランダムジェネレータが合成可能ではありません!あなたは明示的に 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;

あなたはすでにいくつかの良い答えを持っているが、私はただのFPGA内のLFSRに正規のガイドを指摘するだろうが、ここにあります:

http://www.xilinx.com/support/documentation/application_notes /xapp052.pdfする

これはあなたのFPGAのためにOKです場所でビットザイリンクスの特定は、(だ:)しかし、原則は他の人に譲渡されます。

擬似乱数生成器のためのVerilogまたはVHDLコードを生成することができるオンラインツールがあります。これは OutputLogic.comする

上にあります

私はLFSRに同意します。私は前に1を作ったし、それが暗号化に使用されます。

rng.v OpenCoresのに上記のポインタと呼ばれるのverilogフォルダ内のファイルを持っていますP>

私は、Spartan-3ANにそれを使用しているし、それは素晴らしい作品。私のコードは、私がパートをプログラムし、それはすべての選択のPWMをカバーした後、ランダムPWMを選択するために、乱数ジェネレータを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top