微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 问大家一个关于跨时钟时序的基本问题

问大家一个关于跨时钟时序的基本问题

时间:12-12 整理:3721RD 点击:
两个同源时钟,一个100m一个200m
200m时钟域产生的单bit信号,持续两个时钟周期
在100m时钟域直接用两个dff做同步
是否一定能保证该信号被采集且亚稳态清除?

貌似可以认为这是同步逻辑啊,因为你的两个clock是同源的
一般后端需要把这条path timing做好就可以了

慢时钟采快时钟,就算同步,也不一定保证不少采,不多采。要不用个异步fifo隔离一
下?

同源的两倍时钟持续两个周期,也会出问题?

该怎么约束?

感觉上,也许,可能。这种问题,仿真根本防不出来。
从鲁棒性来看,还是多加道保护吧。也就十来个dff搭个异步fifo,没啥难度的。

同源的时钟,就算相位有差别,也是同步的啊,不用dff做同步,STA本来就可以保证的。
至于能不能被采到,这是功能问题了我觉得,如果是只持续一个快时钟周期,你用两个dff同步也不一定行。
欢迎指正。

你必须说清楚持续两个周期是如何做到的,这里面可能有问题

敢问楼主是学生还是有工作经验的?你的快时钟采样后,输出速度慢了一半,感觉有点混乱

如果视为同步,第一个FF采样的地方是个Multicycle 你约束了时序就没问题,
如果视为异步,200M 2拍用100M采样是有风险的,也许在某个corner就会暴露出来

不可以,100M时钟采100M data,考虑到jitter和setup+holdtime的窗口时间,有相当概率的采不中情况,后面加多少DFF都没用

如果有固定相位关系,那后端修一修 满足慢钟的setup/hold即可,不需要做跨钟处理吧 //我也不太懂
要靠谱的话可以用专门的pulse sync电路,使用握手机制

两个周期改成三个周期应该不会丢了,再大的动作也不侧漏

赞护翼

不行,可能踩到1个也可能踩到2个,
如果再检查上升沿做个pulse就没问题了。

那你不多采了吗?

不要把这种功能性的东西给后端。要前端设计保证。

200M时钟分频出的100M,采200M时钟的两拍数据,带两个DFF,也有问题啊
我就是不大确定这个

第一个DFF采错了第二个不也把错的传递下去了么。
你可以试试用相位相差180度的两个时钟采,以跳变次数多的作为正确结果。

慢速时钟不能检测上升沿啊~

如果sta不做同步分析,那么是可能出错的,原因是两个时钟的沿都是有抖动的,
虽然是同源时钟,但是由于路径的不同,二者的抖动就会不同,这会造成时钟的瞬时脉宽
不一样,那么踩不到就是有可能的
如果sta做同步分析,那么可以保证功能正确,原因是sta会分析两个时钟的路径上的delay以及最终的trans,保证数据的沿一定在时钟的沿的后面

达成共识了?

同源同步的话,不用加DFF做同步,直接sdc中set_multi_cycle -setup 2/-hold 1 -from [200M产生信号的寄存器/CLK] -to [100M时钟域capture寄存器/D]
同源不同步的话,不知道你的功能是要在100M时钟域采集200m时钟域的信号产生一个单周期的脉冲?
那建议加一个toggle的握手信号

采集双周期信号

不能,起码三个时钟周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top