跨时钟域 如何处理?
请教,内部是 156.25mhz的时钟,外面是180mhz的时钟,如何做跨时钟区域的处理好呢?
如歌 是156.25mhz向180mhz传递数据,可以用180mhz 去采样156.25mhz的信号,而反过来呢?180mhz时钟域的数据如何传递到 156.25mhz的时钟域内 ? 我的想法是:较低速时钟域数据可以用较高速时钟去采,但高速时钟要至少是低速时钟的2倍,否则还是有较大的风险的。而高速时钟域的数据到较低速时钟域,保险些的话还是用异步FIFO来做,要是数据更新周期足够长,也可以先用180mhz时钟展宽,然后再用156.25mhz去采。 我的想法是:较低速时钟域数据可以用较高速时钟去采,但高速时钟要至少是低速时钟的2倍,否则还是有较大的风险的。而高速时钟域的数据到较低速时钟域,保险些的话还是用异步FIFO来做,要是数据更新周期足够长,也可以先用180mhz时钟展宽,然后再用156.25mhz去采。 这两个频率比较接近,应该用FIFO处理,打拍只能适用于高低时钟域。 统一使用156.25最简单 FIFO吧,补字数 数据量大就用异步FIFO,数据量少就用握手机制,也叫结绳法 没人想说说一部fifo么? 是不是 还是fifo乒乓操作 比较可靠 ? 取决于180MHZ数据的带宽多高
不高的话就用FIFO,高的话看有多高,一般高就用两个RAM做乒乓,很高的话就用两个外部DDR做乒乓,如果是实时的话就会丢数据了 频率太接近,为了数据的传输的可靠,建议还是用FIFO或RAM缓冲
页:
[1]