2009-04-16 16 views

Respuesta

2

lo general tendrá que utilizar la función IEEE.math_real uniforme

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

Pero hacer un poquito de una investigación sobre los pseudo generadores de números aleatorios (PRNG) y encontrará muchas variantes que son simples LFSR 's - lo cual parece notablemente similar a los generadores CRC.

Aquí hay varios recursos si desea rodar su propia partida, PRNG de trabajo existentes:

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

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

Aquí es un generador de código CRC VHDL:

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

+1

El OP quería verilog, pero su sugerencia de mirar los LFSR es sólida. Solo por mi propio interés, ¿ese procedimiento UNIFORMO se puede sintetizar? ¿A qué se sintetiza? – Marty

16

¡Por supuesto, el generador aleatorio de Adam no se puede sintetizar! Tienes que crear explícitamente un LFSR.

El siguiente ejemplo podría ayudar. Es un LFSR máxima de 8 bits

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; 
2

El puntero por encima de OpenCores tiene un archivo en la carpeta llamada Verilog: rng.v

lo he utilizado en un Spartan-3AN y funciona muy bien. Mi código utilizó el generador de números aleatorios para seleccionar un PWM aleatorio después de que programé la pieza y cubría todos los PWM seleccionables.

2

Hay una herramienta en línea que puede generar código Verilog o VHDL para un generador de números pseudoaleatorio. Está en OutputLogic.com

2

Estoy de acuerdo con el LFSR. He hecho uno antes y se usa para el cifrado.

+2

Creo que es importante señalar aquí que los LFSR son útiles para la generación de números pseudoaleatorios, pero no son apropiados para el uso en esquemas de cifrado reales. – wjl

Cuestiones relacionadas