asignar valores a todas las columnas en una matriz 2D en una declaración

1

Me gustaría asignar valor a una matriz. La matriz es bidimensional, tiene 16 filas y 16 col. Cada elemento es de 2 bits de ancho.

Me gustaría inicializar cada fila de una matriz de la siguiente manera:

Inicialice la cuarta fila de la matriz, luego cada valor debe almacenarse en la columna respectiva, por lo que 0 estará en la 15ª columna, 2 estará en la 12ª columna, etc. No quiero almacenar los valores columna por columna. He intentado implementarlo a continuación, pero mi código tiene errores.

module test2;

    reg [1:0] mem [15:0][15:0];

    wire [1:0] icon;

    assign icon = mem[4][4];

    mem[4][15:0] = 16'h0002000000000000;

    $strobe("%b", icon);

endmodule;
    
pregunta user3551094

1 respuesta

1

mem[4][15:0] = 16'h0002000000000000; y $strobe("%b", icon); deben estar en una declaración assign , en el bloque initial o en el bloque always .

mem también se elimina incorrectamente si desea asignar como mem[4][15:0] . se debe declarar como matrices multidimensionales desempaquetadas y empaquetadas dobles: reg [15:0][1:0] mem [15:0];

Lo siguiente compila y ejecuta sin errores:

module test2;
    reg  [15:0][1:0] mem [15:0];
    wire [1:0] icon;
    assign icon = mem[4][4];

    initial begin
        mem[4][15:0] = 16'h0002000000000000;
        $strobe("%b", icon);
    end
endmodule;
    
respondido por el Greg

Lea otras preguntas en las etiquetas