XST和synplify综合出的结果完全不一致

2020-02-03 10:13发布

用的是xillinx的XC2C32A,很老的CPLD。就是一个流水灯小程序。XST能实现流水灯显示。但是在synplify综合后,4个LED一直常亮。到底是哪里的问题呢?
代码如下:
module Main(
   iCLK,
        oLED
         );

input iCLK;
output [3:0]oLED;

reg [24:0]sr_counter = 25'b0;
reg [3:0]sr_led = 4'b1110;

assign oLED = sr_led;

always@(posedge iCLK)
        if(sr_counter >= 25'd25000000)
                sr_counter <= 1'b0;
        else
                sr_counter <= sr_counter + 1'b1;

always@(posedge iCLK)
        if(sr_counter >= 25'd25000000)
                sr_led <= {sr_led[2:0],sr_led[3]};
        else
                sr_led <= sr_led;

endmodule
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
zhangxptt
1楼-- · 2020-02-03 11:45
有大神来指教一下么
玄德
2楼-- · 2020-02-03 12:21

1、没有复位逻辑,所有寄存器和位变量都没有初值,所以都不可预期。

2、25'd25000000,六个0,我没看错吧?

玄德
3楼-- · 2020-02-03 16:10

奇怪,遇到n多人不管复位逻辑。


zhangxptt
4楼-- · 2020-02-03 21:10
谢谢高手的指教,我小白,再问一下,什么是复位逻辑
Dick Hou
5楼-- · 2020-02-04 00:38
 精彩回答 2  元偷偷看……
泽曦儿
6楼-- · 2020-02-04 01:37
Dick Hou 发表于 2016-11-16 15:17
加个复位脚,将寄存器复位。

楼主在e.e.t.o.p也发了贴吧,回复过你了,是不是忘记去看了? ...

寄存器不复位可能带来想不到的后果

一周热门 更多>