|
module matrix_vector_mult(y,clk,en,reset,z);
input [5:0] y;
input clk,en,reset;
output z;
reg [4:0] z;
wire [2:0] endrow,data;
reg[4:0] index;
reg ytemp,ytemp1;
reg i;
matrixromcontrol matrix5x6(.clk(clk),
.en(en),
.reset(reset),
.endrow(endrow),
.data(data)
);
always@(posedge clk)
begin
if(reset)
begin
ytemp<=1'b0;
z<=5'b0;
ytemp1<=1'b0;
end
else
begin
if(en)
begin
if(endrow==0)
begin
ytemp<=y[data];
ytemp1<=ytemp1^ytemp;
end
else
begin
ytemp<=y[data];
z[index]<=ytemp1^ytemp;
end
end
end
end
always@(posedge clk)
begin
if(reset)
begin
index<=0;
end
else
begin
if(index==4)
begin
index<=0;
end
else
begin
index<=index+1;
end
end
end
endmodule
其中matrixcontrol在每个始终上升沿输出endrow和data。。。
index是在时钟上升沿加1。
130endrow is x, data is x,index is 0
140endrow is x, data is x,index is 1
140endrow is 0, data is 3,index is 1
180endrow is 0, data is 3,index is 2
180endrow is 1, data is 5,index is 2
220endrow is 1, data is 5,index is 3
220endrow is 1, data is 1,index is 3
260endrow is 1, data is 1,index is 4
仿真结果却是这样。。。
怎么办,求高手帮忙。。。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|