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

关于跨时钟域同步的问题

时间:10-02 整理:3721RD 点击:
假设有2个时钟,1个是快时钟A,1个是慢时钟B
     请问 当他们产生1个各自时钟周期长脉冲时,互相怎么同步的,是一样的不
      当产生的脉冲的比较长时 ,又是怎么 同步的
     希望能指导下 ,感谢大家

脉冲同步可以采用结绳法,我以前发过一篇论文,既可以将慢时钟域的一个脉冲转换为快时钟域的一个脉冲,也可以将快时钟域的一个脉冲转化为慢时钟域的一个脉冲
对于持续多个时钟周期的脉冲,可以采用边沿检测的方法进行同步

如果是傳送的control訊號且發生頻率小於 sink clock frequency 1/3 的話,可以用 toggle 的訊號傳送發式,在 sink 端已兩級FF當synchronizer 後再與 delay 1T 訊號作 xor 就可以了。
如果是傳送 multi-bit data 請用 asynchronous FIFO,這個在網路上很容易找到。



    你好,请教一个问题,假如快时钟域信号只有一个快时钟宽度,并且慢时钟的上升沿也不会采到这个信号,那怎么办?



    好像可以把信号展宽,但是如果在不知道快慢时钟频率的前提下,怎样保证我展宽之后的信号,一定可以被慢时钟采到呢?
假如采用握手信号,慢时钟域的ack信号如果时间太长,在ack信号期间,快时钟域又来了信号,怎么办?谢谢解答!

以toggle(level change)的方式就可以傳送過去。

脉冲拉长,确保打两到三拍



   
    前辈可以具体说一下什么样式的叫toogle(level change),是将脉冲信号转换成电平信号吗?本人愚钝,望见谅~


谢谢回答,但是脉冲拉长之后,也不一定可以保证就一定可以采到吧,如果两个时钟域频率相差太大的话,我不知道到底要延长多少可以确保让慢时钟采到

可以參考下面這篇
http://zh.scribd.com/doc/57891677/Clock-Crossing
fast clock domain的訊號發生的頻率當然還是會受限於快慢兩個clock的頻差,
基本上 through put 是要一樣的, fast clock domain signal 產生的頻率上限 = F-slow / F-fast ( unit is fast clock cycle)。

边沿检测(跳变),异步FIFO,握手的方式



    首先谢谢您的回答,但是您给的那个网址打不开啊



    可以给我发邮箱吗,多谢啦!lvming584351124@126.com


那個網址是我用google search的,是類似豆丁的網站,無法下載的,你可以自己用 asychronous  toggle 之類 keyword search 看看。



    Thank you very much !

异步fifo

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

网站地图

Top