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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3028|回复: 5

[求助] Vivado中握手信号被综合成gated clock

[复制链接]
发表于 2020-6-2 09:28:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Fantom_Ya 于 2020-6-2 09:31 编辑

前提:不是专门的FPGA设计,是一个ASIC设计但是想使用fpga简单验证一下功能。
遇到一个问题,vivado设置完基本时钟后,发现许多其他信号(包括但不限于握手信号)被综合成了门控时钟,还特别多。很难一一处理。

代码是这样:




  1. always@(posedge adeoc, posedge rst_adiftmp) begin
  2. if(rst_adiftmp) adiftmp <= 1'b0;
  3. else                adiftmp <= 1'b1;
  4. end


复制代码
综合后结果是这样:
image.png
综合器把adeoc信号当成门控时钟了。本身ad时钟和系统时钟是异步的。

有太多这种“Q”时钟了……
image.png
有人对这种情况有了解吗?如何解决?

谢谢各位大佬!
image.png
发表于 2020-6-2 13:33:12 | 显示全部楼层
这不就是寄存器的时钟复位吗,adeoc就是时钟啊,asic难道就不是时钟了吗?
发表于 2020-6-2 13:44:43 | 显示全部楼层
另外我觉得功能应该是对的,只要PR能过,应该没有问题,也不需要加约束,本身就是异步的
 楼主| 发表于 2020-6-4 10:31:01 | 显示全部楼层
这样写用很久了,流片也很多次了。以前在ISE上面一直没出过时序违例问题,所以没管过。但是现在换成vivado之后,综合结果总是不理想。然后看了许多ug文档和百度文章,现在怀疑到这些未约束时钟上了。
这里面的一些“Q”,有的是上面说的握手信号,有的是cpu取指寄存器,应该是被cpu时钟驱动的,但是在vivado综合后,把这些寄存器的“Q”端识别成时钟了,而不是这些寄存器的CK端。
发表于 2020-6-10 01:07:05 | 显示全部楼层
不是这段代码的问题,而且adiftmp是在别的地方怎么用的。他的14个load都是在哪里。
 楼主| 发表于 2020-6-15 11:33:44 | 显示全部楼层
本帖最后由 Fantom_Ya 于 2020-6-15 11:37 编辑


tigerjade 发表于 2020-6-10 01:07
不是这段代码的问题,而且adiftmp是在别的地方怎么用的。他的14个load都是在哪里。 ...


总线时钟上升沿驱动,如果adiftmp为真,则置位adif,把adeoc信号产生的中断临时信号同步到总线时钟上,还有置位eoc_flag,同步到总线时钟上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-6 09:56 , Processed in 0.020603 second(s), 7 queries , Gzip On, Redis On.

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