Estoy haciendo mi proyecto de término, en el que tengo una memoria, que puede ser cambiada por el usuario. La especificación es que siempre que se active el restablecimiento, los datos en este registro deben restablecerse a todos los ceros.
Primero declaré la memoria que consta de 128 direcciones * 16 palabras de la siguiente manera
reg [15:0] memory [127:0];
Aquí está el código que trato de usar para restablecer el propósito
always @(posedge clk)
begin
if (reset)
begin
for (i=0; i<256; i = i+1)
begin
memory[i] <= 16'b0000000000000000;
end
end
Este es mi intento de solución. He intentado el enfoque de reinicio del sincronismo.
Ahora, lo más importante que quiero preguntar es, ¿puedo usar for loop adentro siempre? He investigado un poco y descubrí que para loop no es sintetizable para los FPGA, que se requieren durante la demostración de proyectos. Sin usar para bucle, ¿cómo puedo hacer que los 16 bits en todas las 128 direcciones sean todos cero? Me parece imposible? Soy bastante nuevo en Verilog, por lo que puede ser una pregunta noob.
Cualquier ayuda es apreciada. Gracias.