2009-07-14 7 views
5

Wie Pseudozufallszahl in FPGA generieren?Wie Pseudozufallszahl in FPGA generieren?

+1

Für diejenigen, die in FPGA nach Zufallszahlen suchen, werden sie in der Lage sein, diese Frage viel leichter zu finden. Daher werde ich nicht dafür stimmen, als Duplikat zu schließen. – AlbertoPL

+0

Vielleicht möchten diejenigen, die für FPGA in Stackoverflow suchen, über eine bestimmte Website wissen: [Logic Design-Vorschlag] (http://area51.stackexchange.com/proposals/20632/logic-design?refrer=YVw0qLaS2iiFAaI1gMp5oQ2) – woliveirajr

+0

oh, gut, dass es hier gefragt wurde und nicht in dieser Area 51 Site. Es wurde gelöscht;) –

Antwort

3

Wenn es nicht für Kryptographie oder andere Anwendungen mit einem intelligenten Gegner (zum Beispiel Glücksspiel) ist würde ich einen linear feedback shift register Ansatz.

Es verwendet nur exklusive oder und Verschiebung, so dass es sehr einfach ist, in Hardware zu implementieren.

4

Es gibt eine ausgezeichnete Xilinx Application Note zum effizienten Erzeugen von Pseudozufallszahlenfolgen in einem FPGA. Es ist XAPP052.

0

Wie andere bereits gesagt haben, können LFSRs für Pseudozufallszahlen in einem FPGA verwendet werden. Hier ist eine VHDL-Implementierung eines 32-Bit-LFSR mit maximaler Länge.

process(clk) 

    -- maximal length 32-bit xnor LFSR based on xilinx app note XAPP210 
    function lfsr32(x : std_logic_vector(31 downto 0)) return std_logic_vector is 
    begin 
    return x(30 downto 0) & (x(0) xnor x(1) xnor x(21) xnor x(31)); 
    end function; 

begin 
    if rising_edge(clk) then 
    if rst='1' then 
     pseudo_rand <= (others => '0'); 
    else 
     pseudo_rand <= lfsr32(psuedo_rand); 
    end if; 
    end if; 
end process; 
Verwandte Themen