Come generare un numero pseudo casuale in FPGA?Come generare un numero pseudo casuale in FPGA?
5
A
risposta
6
Questo è stato coperto (mi piacerebbe andare per un LFSR): Random number generation on Spartan-3E
3
Se non è per la crittografia o altre applicazioni con un avversario intelligente (per esempio il gioco d'azzardo) userei un approccio linear feedback shift register.
Utilizza solo esclusivi o shift, quindi è molto semplice da implementare nell'hardware.
4
C'è una nota eccellente sull'applicazione Xilinx sulla generazione di sequenze di numeri pseudo-casuali in modo efficiente in un FPGA. È XAPP052.
0
Come altri hanno già detto, gli LFSR possono essere utilizzati per numeri pseudo casuali in un FPGA. Ecco un'implementazione VHDL di un LFSR a 32 bit di lunghezza massima.
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;
Per quelli che fanno ricerche per numeri casuali in FPGA, essi saranno in grado di gran lunga trovare più facilmente a questa domanda. Pertanto, non voterò per chiudere come duplicato. – AlbertoPL
Forse chi è alla ricerca di FPGA in stackoverflow vorrebbe sapere di un sito specifico: [Proposta di progettazione logica] (http://area51.stackexchange.com/proposals/20632/logic-design?referrer=YVw0qLaS2iiFAaI1gMp5oQ2) – woliveirajr
oh, bene che è stato chiesto qui e non in questo sito Area 51. E 'stato cancellato;) –