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

跨时钟域问题

时间:10-02 整理:3721RD 点击:
有个跨时钟域问题:
   2个时钟,一个低速时钟clk,和一个高速时钟clk35, clk35频率是clk的3.5倍,2个时钟的相位差为0.  如何把高速时钟域的数据同步到低速时钟域里面?
  如果用2个寄存器进行2次同步,那样势必在第一个寄存器会出现时序违例,还是会出现编译器的时序分析通不过。
  现在的问题是,是继续使用2次同步法,忽视编译器的报警,还是有其他办法进行这个跨时钟域的数据传递?

使用FIFO。

把高速时钟域的信号展宽,在低速时钟域打拍采沿,不用关心第一个寄存器的时序问题。

楼上的意思是把N bit宽的数据编程4N bit宽的数据,再在低时钟域进行打拍采集嘛

高速时钟域信号展宽,再用低速时钟打两拍

4# ineedpower
ineedpower
回复:ineedpower 是你说的这个意思。有问题可以站内消息~~

2个寄存器进行同步适合单根信号,对数据会造成数据错误,所以数据同步还是用FIFO为好

单bit数据直接展宽后打两拍传递。
多bit数据先锁存住(锁存的拍数要足够),同时产生一个单bit握手信号,握手信号展宽后,低频时钟域打两拍采到握手信号,再直接去采多bit数据。
如果嫌麻烦就用异步fifo/ram吧。

多谢各位老大的帮助。

支持020403

没人回复

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

网站地图

Top