Cyclone 解复用的问题
时间:10-02
整理:3721RD
点击:
这几天一直在思考Cyclone 解复用的问题。我用的是Cyclone EP1C3T144-8器件。并行输入4bit数据线和时钟线,速率为200Mhz,数据线和时钟线都是lvds接口。在内部要对数据进行处理,显然如果直接用200Mhz的时钟,器件肯定达不到200Mhz。所以对数据进行解复用,变成16bit 50Mhz的数据,这样就可以进行处理。本来想用Alt_DDR接口,但发现不行,因为我的时钟只是在上升沿锁数据,不是象真正的ddr sdram,是在时钟正脉冲和负脉冲有数据。又想用其他办法,譬如先用200Mhz时钟产生100Mhz时钟和8bit数据,再用100Mhz时钟产生50Mhz时钟和16bit数据,但发现时序分析出了问题,因为100Mhz时钟和50Mhz是行波时钟,存在很大的clock skew。
最后想用fifo,即这边用200Mhz时钟分别写入4个4bit的fifo,在另外一边用50Mhz的时钟一次读取16bits的数据,但又发现问题,50Mhz的时钟必须由200Mhz产生,这又是一个行波时钟,因为如果50Mhz的时钟不由200Mhz时钟产生,两个时钟完全独立的话,50Mhz的时钟不一定是200Mhz时钟的1/4,时钟有频偏,造成fifo溢出或者空。在这里请教各位大侠,有没有很好的解决方法?
最后想用fifo,即这边用200Mhz时钟分别写入4个4bit的fifo,在另外一边用50Mhz的时钟一次读取16bits的数据,但又发现问题,50Mhz的时钟必须由200Mhz产生,这又是一个行波时钟,因为如果50Mhz的时钟不由200Mhz时钟产生,两个时钟完全独立的话,50Mhz的时钟不一定是200Mhz时钟的1/4,时钟有频偏,造成fifo溢出或者空。在这里请教各位大侠,有没有很好的解决方法?
仔细想想,会有办法的
呵呵
如果将50MHz的时钟设为和200MHz的时钟是关联的,时钟skew问题还很大吗?
我用过6系列的-8不过只敢用到150M,
LZ思想没有太大的问题,是否可以考虑在输入时采用PLL,将时钟严格锁相,数据经过一个缓冲,
另外,时钟在先采一下数据后,再进行后续时钟的工作,按理说LVDS的抖动是相当小的,矛盾应该是集中在线间延迟上,综合之后,能否把时序分析结果给我看看!