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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4974|回复: 8

[求助] 跨时钟域的时序约束!!!

[复制链接]
发表于 2014-8-21 15:21:51 | 显示全部楼层 |阅读模式

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

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

x
在XILINX的FPGA中,使用ISE自带综合工具。
设计中需要跨时钟域处理,网上虽有很多关于跨时钟域做时序约束的例子,但还是有很多不懂。
clk1是Input进来的时钟,
clk2是由clk1和clk1_270(把clk1通过一个DCM,相移270度)通过BUGMUX选择后产生的一个时钟,
跨时钟域处的设计是:在clk2的时钟下把clk1处理过的数据用两级FF寄存,同步。

问题:针对我的设计,应如何对跨时钟域部分进行时序约束?
(1)ISE能自动添加这两者之间的约束吗?
(2)需要设计TIG将这种跨时钟域处不作处理吗?
(3)我尝试TIG掉这部分,但是ChipScope的时候认为会采错数据。
不知道该如何处理这部分。
发表于 2014-8-21 15:33:49 | 显示全部楼层
跨时钟域处的设计是:在clk2的时钟下把clk1处理过的数据用两级FF寄存,同步。

这里有个前提就是数据是1bit才可以这么做,如果是多bit的最好用FIFO同步。
 楼主| 发表于 2014-8-21 15:49:08 | 显示全部楼层
回复 2# UNice


   用两级FF同步跨时钟域数据,我好像有印象只适用于1比特数据,我这里是对8比特数据和1比特控制数据都分别用了这种方法同步了。请问这样做是不是不行呢?为什么?我理解的是这样做可能会有更多不稳定因素存在,导致同步过来的数据出错概率很大,不知道是否可以这么理解。
发表于 2014-8-22 12:47:00 | 显示全部楼层
多bit数据不能用两级FF的方法,因为这种方法中每bit是通过不同的同步器(每两级1bit DFF就是一个同步器)……有相关性的数据,要通过同一个同步器进行同步,所以推荐采用FIFO~
发表于 2014-8-22 14:59:24 | 显示全部楼层
回复 3# fanny_haiyun


   这里要看具体情况了,如果数据量不是很大,就是偶尔才会有有数据的那种,发送端先给数据,再给1bit的数据有效控制信号置位,接收端确认了1bit的数据有效后才去读数据也是可以的,

如果数据是连续出来的,建议用FIFO。
 楼主| 发表于 2014-8-25 15:58:29 | 显示全部楼层
回复 4# yucaoxilin


谢谢!
 楼主| 发表于 2014-8-25 15:59:09 | 显示全部楼层
回复 5# UNice


   非常感谢!
发表于 2014-8-28 12:56:05 | 显示全部楼层
回复 3# fanny_haiyun


    1bit要不就是零要不就是1有这两种可能,那如果是多bit数据变化的时候会有多个位在跳变,那有可能多个位跳变到达的时间不一致导致采到了非预期的值。你可以参考看下异步fifo,异步fifo在传读写指针的时候用格雷码只有1bit跳变,所以在接收端要不就是采到加1,要不就是没有加1,没有其他的情况。
发表于 2016-3-14 10:28:38 | 显示全部楼层
我觉得你们讨论的偏离的主题,楼主问的是,怎么做跨时钟的约束,而不是怎么处理跨时钟域的数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-19 18:46 , Processed in 0.021849 second(s), 9 queries , Gzip On, Redis On.

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