Escribí un módulo en System Verilog, necesito 32 módulos, así que estoy usando generar declaración para crear instancias.
El problema es que en cada flanco ascendente del reloj necesito instanciar nuevos valores a los módulos y luego debo elegir uno de ellos (en el mismo posedge clock
, dependiendo de las salidas de los módulos, en mi caso el min entre todas las salidas del módulo).
¿Cómo puedo hacer eso?
Esta es mi versión actual del código:
genvar j;
generate
for (int j=0; j<32; j++)
begin: module_instant_loop
always @(posedge Clock)
begin
MyUnit unit[j] (.A(TEST1[j],.B(TEST2[j]),.OUT(MYOUT[j]);
end
end
end
endgenerate
Y este es el código que quiero agregar:
for (int i=0; i<32; i++)
begin
if (MYOUT[i] < MINIMUM) MINIMUM=MYOUT[i];
if (MYOUT[i] > MAXIMUM) MAXIMUM=MYOUT[i];
end
¿Cómo puedo agregar el bucle a mi código?