微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 跨时钟域,建立时间的问题

跨时钟域,建立时间的问题

时间:10-02 整理:3721RD 点击:
我从时钟域A输出一信号a_clk1,用时钟clk2打两拍后输入到时钟域B。在FPGA上综合,从后仿真波形来看,刚好这个a_clk1的跳变发生在clk2上升沿附近,出现了setup timing问题,导致X状态的出现。
我的疑问是:这种setup timing的问题难道不是在综合的时候就自动适应了要求吗?该如何解决啊

跨时钟域的是要自己控制的。



    感谢回答
能说具体点吗。
前一个时钟域出来的的信号发生跳变,自己怎么控制第二个时钟采集它时,符合建立时间的要求呢?

跨时钟域处仿真时要设成不check timing。
综合时跨时钟域处要设成false_path。dc不会也不可能自动适应。

综合的时候要设置false_path,后仿真的时候移除建立保持时间检查即可。



    我是用FPGA的ISE综合的,不是DC。没有做时序约束
很水的问一句:ISE我直接综合了,请问怎么设置啊



    我是用FPGA的ISE综合的,不是DC。没有做时序约束
很水的问一句:ISE我直接综合了,请问怎么设置啊

fpga也要设置的啊,难道你不设置能用

不是综合的问题,是仿真设置的问题
如果仿真要检查建立时间,肯定会产生x信号,这是正常的
你打两拍时,第一拍实际上是B时钟域的时钟去采A时钟域的数据,此时如果数据沿河时钟沿很近,仿真器会给出x值,但在实际电路中它要么是1要么是0,只有在第二拍的时候数据基本正确。你如果要仿真看到结果的话,就按5楼所说的,移除仿真器的时序检查

跨时钟域的setup/hold时间是需要由设计保证的



    不能移除仿真器的STA检查,否则会因小失大。
   应该在SDF里面去掉对应的timing检查



   怎么移除SDF的timing检查?

    正解!打两拍是业界公认单比特信号跨时钟域策略,可以认为不会出现问题;

仿真设置的问题
打两拍就是为了解决在时钟边沿跳变的问题,第一拍可能会采错,第二拍就会对了



    我知道这种问题一般都是打两拍来解决的,顺便问下,具体的原理是什么呢?一直没有搞懂



    我知道这种问题一般都是打两拍来解决的,顺便问下,具体的原理是什么呢?一直没有搞懂



    comment off


前辈总结验证出来的结果,一般认为亚稳态可以在两拍后消失;



   请这位大强回答下我关于buffer的问题



    帖子在哪里?



    这个为正解,赞同!



    两拍后亚稳态的概率大大降低,《数字设计原理与实践》第四版上有亚稳态发生时间的计算,可以参阅



    那请问用低速时钟采高速时钟和高速时钟采低速时钟时会有不同吗?假设高速时钟驱动的信号是多周期不变的。



    GOOGLE MTBF

跟频率高低没关系,只与是不是异步时钟有关系。

对亚稳态,我的理解是,打两拍只是降低了亚稳态传递下去的概率,毕竟亚稳态的出现是器件上的问题,而且在电路上,一个微小的抖动就会让亚稳态跌回正常状态,打两拍只是让这个概率增加到可以忽略亚稳态的情况。

有一篇简洁的文章Crossing the abyss asynchronous signals in a synchronous world

The signal across the different clock domain that is the designer guarantee the signal can be sampled correctly.

请教一下,FPGA怎么做后仿?有布局布线后的网表吗

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

网站地图

Top