Frage

ich brauche Pseudozufallszahlen für meinen genetischen Algorithmus auf einem Spartan-3E FPGA zu erzeugen, und ich will es in Verilog implementieren: könnten Sie mir irgendwelche Hinweise auf diese

War es hilfreich?

Lösung

Normalerweise würden Sie die IEEE.math_real einheitliche Funktion

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

Aber tun ein kleines bisschen eine Forschung auf Pseudozufallszahlengeneratoren (PRNGs) und Sie werden viele Varianten finden, die einfach LFSR 's -., die bemerkenswert ähnlich aussehen CRC Generatoren

Hier sind einige Ressourcen, wenn Sie Ihre eigene Start rollen von bestehenden Arbeits PRNGs:

http://www.opencores.org/?do=project&who=systemc_rng

http://verificationguild.com/modules.php?name=Downloads&d_op = viewdownload & cid = 3

Hier ist ein CRC VHDL-Code-Generator:

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

Andere Tipps

Natürlich ist der Zufallsgenerator von Adam ist nicht synthetisierbaren! Sie müssen explizit eine LFSR .

Das folgende Beispiel könnte helfen. Es ist ein 8-Bit maximal 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;

Sie haben schon ein paar gute Antworten, aber ich werde in FPGAs nur darauf hinweisen die kanonischen Leitfaden für LFSRs ist hier:

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

Es ist ein bisschen Xilinx spezifisch an Orten (die FPGA-OK ist :) aber die Prinzipien sind übertragbar auf andere.

Es ist ein Online-Tool, das Verilog oder VHDL-Code für einen Pseudo-Zufallszahlengenerator erzeugen kann. Es ist auf OutputLogic.com

Ich bin mit der LFSR. Ich habe eine, die vor und es wird für die Verschlüsselung verwendet.

Der Zeiger oben auf Opencores hat eine Datei im Verilog-Ordner mit dem Namen: rng.v

Ich habe es in einem Spartan-3AN verwendet und es funktioniert super. Mein Code verwendet, um den Zufallszahlengenerator eine zufällige PWM auszuwählen, nachdem ich das Teil programmiert und es bedeckt alle wählbaren PWMs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top