atom100 发表于 2015-4-22 23:47:19

跨时钟域 如何处理?

请教,
内部是 156.25mhz的时钟,外面是180mhz的时钟,如何做跨时钟区域的处理好呢?
如歌 是156.25mhz向180mhz传递数据,可以用180mhz 去采样156.25mhz的信号,而反过来呢?180mhz时钟域的数据如何传递到 156.25mhz的时钟域内 ?

AutumnKing 发表于 2015-4-23 00:53:25

我的想法是:较低速时钟域数据可以用较高速时钟去采,但高速时钟要至少是低速时钟的2倍,否则还是有较大的风险的。而高速时钟域的数据到较低速时钟域,保险些的话还是用异步FIFO来做,要是数据更新周期足够长,也可以先用180mhz时钟展宽,然后再用156.25mhz去采。

AutumnKing 发表于 2015-4-23 00:53:59

我的想法是:较低速时钟域数据可以用较高速时钟去采,但高速时钟要至少是低速时钟的2倍,否则还是有较大的风险的。而高速时钟域的数据到较低速时钟域,保险些的话还是用异步FIFO来做,要是数据更新周期足够长,也可以先用180mhz时钟展宽,然后再用156.25mhz去采。

cddyy 发表于 2015-4-23 00:58:05

这两个频率比较接近,应该用FIFO处理,打拍只能适用于高低时钟域。

NJ8888 发表于 2015-4-23 08:30:15

统一使用156.25最简单

charlesg 发表于 2015-4-23 08:30:29

FIFO吧,补字数

FPGA_WALKER 发表于 2015-4-24 05:39:04

数据量大就用异步FIFO,数据量少就用握手机制,也叫结绳法

辰星和月 发表于 2015-4-24 09:01:57

没人想说说一部fifo么?

atom100 发表于 2015-4-24 21:11:33

是不是 还是fifo乒乓操作 比较可靠 ?

蓝色风暴@FPGA 发表于 2015-4-24 21:27:31

取决于180MHZ数据的带宽多高
不高的话就用FIFO,高的话看有多高,一般高就用两个RAM做乒乓,很高的话就用两个外部DDR做乒乓,如果是实时的话就会丢数据了

honeybear 发表于 2015-4-29 17:26:30

频率太接近,为了数据的传输的可靠,建议还是用FIFO或RAM缓冲
页: [1]
查看完整版本: 跨时钟域 如何处理?