为Multiply矩阵编写高效的verilog代码

时间:2014-11-17 19:48:30

标签: loops matrix verilog

我写了一些verilog代码,它将两个矩阵相乘,但现在我想分别乘以这些矩阵的组件。

第一个矩阵是离线计算的,因此它的组件被定义,第二个矩阵将通过乘法自身的结果更新为第一个矩阵(我们有一个循环)。

我的问题在于编写代码和错误 我希望你能帮助我

             `timescale 1ns / 1ps
 //////////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
module scircuit(
input control,
input clk,
input reset,
output reg [15:0] v1,v2
);

parameter r=1, Gs=1;
parameter R=10;
parameter vdc=100;

parameter G11=0.9167;
parameter G12=0.8333;
parameter G21=0.8333;
parameter G22=1.6667;


reg signed [15:0]  j1=0;
reg signed [15:0]  j2=0;
reg signed [15:0]  jt=0;
reg signed [15:0]  i1=0;
always @(posedge clk)
   if (reset == 1)
    v1 <= 0 & v2 <= 0;
   else
       begin
        j1  <=(vdc/r)+jt;
        j2  <= -jt;
       v1 <= (G11*j1) + (G12*j2) ;
        v2 <= (G21*j2) + (G22*j2) ;
    end // end of begin  
    always @(negedge clk)
 begin       
     i1  = (vdc-v1)/r ;  
         case(control)
         1'b1:
              jt <=-i1;
           1'b0:
          jt <= Gs*(v1-v2);
      endcase  // end of detect switch state
  end // end of begin   
 endmodule

0 个答案:

没有答案