¡El bloque inicial es tangible!

3

Encontré muchas publicaciones que dicen que el bloqueo inicial no se puede sintetizar en Verilog HDL . Incluso seguí la referencia estándar ( enlace ).

Personalmente uso restablecer para inicializar cualquier contenido en bloques de memoria. Pero mis amigos están realizando un proyecto de juego en el que establecen las posiciones iniciales (valores) de los bloques mediante la palabra clave inicial (estamos usando DDR NEXYS 4 ). Funcionó. Realmente no sé qué decir porque pensé que no era posible. ¿Puedes por favor explicarme esto? (Estoy usando Xilinx Vivado)

    
pregunta Sandeep I

1 respuesta

0

Xilinx Vivado puede sintetizar initial bloques en algunos casos. Por ejemplo, Guía de síntesis de Vivado (página 145) muestra cómo inicializar Contenidos de la memoria RAM.

reg [DATA_WIDTH-1:0] ram [DEPTH-1:0];
integer i;
initial for (i=0; i<DEPTH; i=i+1) ram[i] = 0;
end

Según la página 147, $readmemb también se puede utilizar para inicializar una RAM.

reg [31:0] ram [0:63];

initial begin
    $readmemb(“rams_20c.data”, ram, 0, 63);
end

Si hablamos de ASIC, el Compilador de diseño no sintetiza * estos bloques.

    
respondido por el ahmedus

Lea otras preguntas en las etiquetas