该模块实现的逻辑功能是:当N3=1时,
如果:IN25=1(第一次出现)
那么:I9=0,I7=1;
如果:IN25=1(第二次出现)
那么:I9=1,I7=0;
如果:IN25=1(第三次出现)
那么:I9=1,I7=0;
之后如此循环,第四次出现等同第一次,第五次出现等同第二次,第六次出现等同第三次,、、、、、
当N3=0时,
I9=0,I7=0,并且模块中的变量temp13=0;
以下是我编写的Verilog语言:有错误,即使通过调试没有错误但是逻辑功能实现不了,求解决!
module Logic_Trans_v(IN25,N3,I9,I7);
input IN25,N3;
output I9,I7;
reg[3:0] temp13,temp23;
reg I9,I7;
initial
begin
temp13=0;
temp23=0;
I9=0;
I7=0;
end
always @(negedge N3)
begin
temp13=0;
I9=0;
I7=0;
end
always @(posedge IN25)
begin
if(IN25)
begin
temp13=temp13+1;
temp23=temp13%3;
end
case(temp23)
0: begin
I9=1;
I7=0;
end
1: begin
I9=0;
I7=1;
end
2: begin
I9=1;
I7=0;
end
default:
begin
I9=0;
I7=0;
end
endcase
if(temp13>=3)
temp13=0;
end
endmodule
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
temp23=temp13%3;
看到没有?这里,
这里用的=而不是<=
两个区别你知道了吧?不知道网上搜,
这个地方这样用肯定找不到你想要的结果
这样用没有错啊
一周热门 更多>