在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3258|回复: 10

[原创] XST和synplify综合出的结果完全不一致

[复制链接]
发表于 2016-11-10 15:38:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
用的是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
发表于 2016-11-10 16:36:00 | 显示全部楼层
看到3个问题:
1. 寄存器声明时不能初始化!
2. 寄存器没有初始化!
3. sr_counter <= 1'b0; 这句话只把sr_counter[0] 清零,其他位没变!
发表于 2016-11-10 18:34:35 | 显示全部楼层


看到3个问题:
1. 寄存器声明时不能初始化!
2. 寄存器没有初始化!
3. sr_counter <= 1'b0; 这句话只把sr_counter[0] 清零,其他位没变!
jxk304 发表于 2016-11-10 16:36




   虽然很抱歉,但你这三句话都是错的......
发表于 2016-11-11 08:42:17 | 显示全部楼层
为什么我觉得2楼三句都是对的?
 楼主| 发表于 2016-11-11 10:03:25 | 显示全部楼层
回复 2# jxk304
谢谢您的指教,那为什么XST综合和synplify相差那么大呢
 楼主| 发表于 2016-11-11 10:06:12 | 显示全部楼层
回复 3# Timme


   请指教
发表于 2016-11-11 12:23:03 | 显示全部楼层
可能SYNPLIFY对语法和代码规范要求更高,不管用什么综合工具,代码规范很重要
发表于 2016-11-11 16:25:02 | 显示全部楼层


看到3个问题:
1. 寄存器声明时不能初始化!
2. 寄存器没有初始化!
3. sr_counter
jxk304 发表于 2016-11-10 16:36




   1 仿真时是没问题的,可以这样写   2 寄存器没有加上复位信号,所以理论上sr_led在综合的时候,是没有初值的,但FPGA上电时可能初始成0,这样,不管怎么移位,4位的sr_led因为是全0,移来移去还是0,当然看不到灯闪(楼主应该是0灯亮,所以4个灯常亮)
   3 完全错误,即使写成1'b0,也会把sr_counter所有的位置成全0,而不是只有一位。

synplify的结果是完全正确的,电路结果就是灯全亮。楼主用xst的结果才是错的,可能原因是xst不规范,综合的时候将初始值设成了寄存器的初始状态。(实际上不能这样综合,但恰好是楼主想要的结果)
发表于 2016-11-11 16:25:46 | 显示全部楼层


回复  Timme


   请指教
zhangxptt 发表于 2016-11-11 10:06



参考我的回复。
发表于 2016-11-12 01:33:25 | 显示全部楼层


参考我的回复。
sme-ic 发表于 2016-11-11 16:25




    synplify.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 20:44 , Processed in 0.032543 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表