大家好,每个人都可以告诉我如何使用Verilog进行矩阵乘法,我通过对输入进行硬编码得到了输出,但是我想做一般化的输出..
我的目标是乘以(1X3)*(3xY)y可能在64到16384之间变化,所有值都是十进制的..所以任何人都可以帮助我..
这是1x3和3x10的代码,输出为1x10,所以我已将每个元素分配为每个变量
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]));
z3=((w0[3:0]*h1[11:8])+(w1[3:0]*h2[11:8])+(w2[3:0]*h3[11:8]));
z4=((w0[3:0]*h1[15:12])+(w1[3:0]*h2[15:12])+(w2[3:0]*h3[15:12]));
z5=((w0[3:0]*h1[19:16])+(w1[3:0]*h2[19:16])+(w2[3:0]*h3[19:16]));
z6=((w0[3:0]*h1[23:20])+(w1[3:0]*h2[23:20])+(w2[3:0]*h3[23:20]));
z7=((w0[3:0]*h1[27:24])+(w1[3:0]*h2[27:24])+(w2[3:0]*h3[27:24]));
z8=((w0[3:0]*h1[31:28])+(w1[3:0]*h2[31:28])+(w2[3:0]*h3[31:28]));
z9=((w0[3:0]*h1[35:32])+(w1[3:0]*h2[35:32])+(w2[3:0]*h3[35:32]));
z10=((w0[3:0]*h1[39:36])+(w1[3:0]*h2[39:36])+(w2[3:0]*h3[39:36]));
end