我写了一些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