同相时钟
时间:10-02
整理:3721RD
点击:
现在在项目中,遇到了同相时钟的问题,比如时钟A是时钟B分频出来的,那我在时钟A频率下直接采样以时钟B运行的数据(或者在时钟B频率下直接采样以时钟A运行的数据),会不会产生亚稳态?听后端人员说应该没问题,我不敢确定.谁用过,谢谢
有可能有问题,尽量使用异步处理。
用异步时钟,可以采用fifo
如果你是用快的去采慢的,那数据可以采到没问题,但要注意会不会造成数据多采,重复地采。
用慢的采快的则要注意数据的宽度,比如快时钟域的一个数据脉冲,你用慢的上升沿去采,那脉冲就不在上升沿上,自然就采不到了,这时要注意把数据拓宽到可以采的宽度上。
因为你的时钟A是由时钟B分频产生的,可以考虑把时钟A作为使能信号使用,整个代码里面只使用时钟B,这样整个设计里面就可以只使用一个时钟了。
那你的意思是先不管数据宽度)跨A和B两时钟,直接采样这个动作是没问题的?不会产生亚稳态吧?
因为有特殊的时序要求,所以不能采用异步处理.以前我们的方法也是当成异步来处理,现在这里时序要求太精确,所以不能按老办法了
这种办法是可以的。
A不作为时钟,只做使能,宽度=1个时钟B的宽度。
不会产生亚稳态,由另一时钟派生过来的,STA时会当成同一时钟域分析时序的, 最好派生时钟是由PLL或DLL产生的,如果时钟很慢,低于10M的话,可考虑直接用计数器分频
按我的理解是不会产生亚稳态,最近也在研究这个问题,但是慢时钟去采快时钟,你要考虑带宽,如果是数据的话。控制信号,你要看实际情况了!
绝对没问题,直接采即可。注意在SDC中用create_generated_clock定义分频后的时钟,并将其与源时钟归为同一个clock group。
