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

[复制链接]
 楼主| zhangxptt 发表于 2016-11-10 15:41 | 显示全部楼层 |阅读模式
用的是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
 楼主| zhangxptt 发表于 2016-11-11 10:10 | 显示全部楼层
有大神来指教一下么
玄德 发表于 2016-11-11 10:34 | 显示全部楼层

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

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

玄德 发表于 2016-11-11 10:34 | 显示全部楼层

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


 楼主| zhangxptt 发表于 2016-11-16 11:16 | 显示全部楼层
谢谢高手的指教,我小白,再问一下,什么是复位逻辑
Dick Hou 发表于 2016-11-16 15:17 | 显示全部楼层
zhangxptt 发表于 2016-11-16 11:16
谢谢高手的指教,我小白,再问一下,什么是复位逻辑

加个复位脚,将寄存器复位。

楼主在e.e.t.o.p也发了贴吧,回复过你了,是不是忘记去看了?
泽曦儿 发表于 2016-11-16 22:32 | 显示全部楼层
Dick Hou 发表于 2016-11-16 15:17
加个复位脚,将寄存器复位。

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

寄存器不复位可能带来想不到的后果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部