-1

1x3 * 3X64ここでは、マトリックスの各値は10進数であるため、各値について一度に各行のビットにアクセスする合計ビットであるビットを取得しまし4た。4x644

一般化してみました。

行列の形式は1x3 [2,4,3]&

3*64(64 decimal value in each row)

行 1[1111111111111111111111111111(64)]

行 2[11111111(8)22222222(8).....88888888(8)]

行 3[1234567812345678.................12345678]

試したコード

always@(h1,h2,h3)
        begin
z1 =((w0[3:0]*h1[3:0])+(w1[3:0]*h2[3:0])+(w2[3:0]*h3[3:0]));
z2=((w0[3:0]*h1[7:4])+(w1[3:0]*h2[7:4])+(w2[3:0]*h3[7:4]));

.
.
.
.
.   
z64=((w0[3:0]*h1[255:252])+(w1[3:0]*h2[255:252])+(w2[3:0]*h3[255:252]));


    end

        endmodule 

これの一般化された形式が必要です..

私が持っているエラー:

エラー:HDLCompilers:110 - "mat.v" 行 36 ベクトル ワイヤ 'h1' の部分選択の最下位ビット オペランドが不正です

for(i=3;i<255;i=i+4)
        begin
            for(j=0;j<255;j=j+4)

            begin
                z[i:j]=((w0[3:0]*(h1[i:j]))+(w1[3:0]*h2[i:j])+(w2[0]*h3[i:j]));

            end 
4

1 に答える 1