数据稳定性
数据稳定性
大家有什么经验请谈一谈吧
数据稳定性
因为数字电路中的两个基本概念就是‘延时’和‘建立/保持时间’,所以我想考虑数据稳定性也要从这两个方面入手。
数据稳定性
还应该考虑消除多时钟域或异步采集时造成的亚稳定性
数据稳定性
还有clock skew。
数据稳定性
那末clock skew怎么解决呢?只能增加设计的时间余量吗?
数据稳定性
clock skew对于ASIC来说,就是要在做时钟树时来尽量解决了,也就是通过EDA的P&R软件来重复优化。使得clock skew尽可能小吧。当然,对于前端设计来说,尽量做到自己的设计时间冗余大些吧。
数据稳定性
在做fpga时经常遇到clock skew,但不知如何解决?咨询过Altera的代理骏龙公司,他们给我的方案,我没怎没看懂,大家讨论讨论。
数据稳定性还有亚稳态,即不同的时钟域之间的数据传输,我也没想到一个好的解决方法!
数据稳定性
yu,关于不同时钟域之间的数据传输,在本版下面的贴子里有过讨论,有几篇比较经典的上传文章,你可以找找。
Altara的方案是怎样的?
数据稳定性
没错,数据的稳定性一般体现在接口和异步逻辑之间;
异步逻辑一般使用synchronizer(带握手和不带握手),也就是消除metastable;
对于同步逻辑,一定要满足clock skew,一般的同步设计走global buffer(当然fanout不是太大)应该不会有太大的问题吧,不然FPGA有点烂了;一般的clock skew应该存在于不能走global资源的clock,哪就走LOWSKEWLINE(Xilinx)和Fast global Signals(Altera), 另外,在UCF中一定加MAXSKEW的constraint;
接口之间的数据稳定性可以通过
1.减少延时(PCB delay固定,IOB/IOE使用register);
2.异步转内部同步(这个地方一定要多下功夫),
3.有时候输出使用latch也可以解决部分问题,
如果有具体设计可以拿出来大家讨论讨论!
PLL 输出的clock, clock skew 很大, 是不是fanout太大造成的?应该怎么办呢?
先查一查时钟有没有走global资源。