CPLD编写自己需要的逻辑功能出现错误,求解决?

2019-03-25 07:50发布

该模块实现的逻辑功能是:当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

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
fxyc87
1楼-- · 2019-03-25 16:16
< / temp13=temp13+1;
                                temp23=temp13%3;


看到没有?这里,

这里用的=而不是<=
两个区别你知道了吧?不知道网上搜,
这个地方这样用肯定找不到你想要的结果
麟凤龟龙
2楼-- · 2019-03-25 19:05
fxyc87 发表于 2015-4-29 13:16
temp13=temp13+1;
                                temp23=temp13%3;


看到没有?这里,

这里用的=而不是

这样用没有错啊
chenzhufly
3楼-- · 2019-03-25 23:07
阻塞和非阻塞  可以搜搜

一周热门 更多>