Verilog asignando cable al iterar sobre la matriz

2

¿Cómo asignar un cable con una operación AND de un conjunto de cables?

    parameter row = 4;
    parameter col = 8;
    wire ready [row-1:0][col-1:0];
    output wire allready;

lógicamente quiero hacer

allready = AND ready [i] [j] para todos los i, j

    
pregunta Ofek Ron

1 respuesta

2

Para un cable mutlibit se puede usar el operador de reducción & :

wire [row-1:0] ready;
wire allready = &ready;

Sin embargo, esto no funcionará con matrices desempaquetadas (dimensiones múltiples).

Una solución es crear un bucle para indexar las dimensiones y los valores con el resultado hasta el momento. Esto podría lograrse con algo como:

output reg allready; 

always @* begin
  allready=1'b1;
  for (int i =0; i<col; i++) begin
    allready = allready & (&ready[i]) ;
  end 
end
    
respondido por el pre_randomize

Lea otras preguntas en las etiquetas