微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何调整clk的相移呢

如何调整clk的相移呢

时间:10-02 整理:3721RD 点击:
我的fpga clk 和data没有对齐输出需要进行调整,怎么样调整clk的相移使其正好对齐数据呢。
DCM只能90 的整数倍移动,不能更精确的移动相位是吗?

1、gate level simulation or rtl level simulation?
2、一般情况下,都是data和clk的边沿对齐。这也就是为什么说,输出信号最好由寄存器直接驱动输出,当然可以包含增强驱动的buffer
3、实际情况下,边沿也不可能完全对齐,stdcell、interconnect等都是有延时的



    1.是rtl的仿真。
2.你的意思是说,出来的值放在寄存器中,然后上升沿送出吗?那如果我的DA要求clk对应数据的中心处一遍能够正确采到,这个怎么做呢?

一个边沿发送数据,另一个边沿接收数据,当然要求clk的duty cycle是50%

做好不要通过buffer延迟,或者布线来调整时钟相位,通过对数据的处理来实现比较靠谱
要靠延迟单元或者不限延时来调整相位可能容易受环境或者其他因素的影响

学习了~



    谢谢你的回答,但是一般都有什么可以精确的移动相位呢

使用DDIO试试

学习了.........



    1. Using one DCM to double the base clock to a new clock.
    2. Using this new clock to output your data and you can have 45 degrees phase shift precision in respect to the base clock.

xilinx有的器件里面有一个iodelay的东西可以很精确的调整输入和输出延时,我记得好像是以72ps为步进进行调整,很有用

DCM就有相位偏移啊



   我比较同意10楼的观点,看看倍频以后怎么样?要不就下沿采数据,类似于倍频了

我通常把输出时钟以90度间隔做一个4选1输出,一般足够了,当然还可以用可实时配置相位的PLL等等,关键是你的输出数据bus要balance,否则怎么弄都是白搭。



    谢谢你的回答,我知道了就是拿DCM做0 90 180 270的相移是吧,但是你说的输出总线要BALANCE是什么意思呢?是说数据总线一定要同时间到达端口是嘛?


是的,设置一个output delay可能会有用,假如bus不balance,采样的窗口会很小.



    我们一般采取什么方式来进行总线数据之间相对延时不要太大,我知道约束中有个OFFSET OUT。比如我的数据都是从FPGAROM出来的,然后送到端口,但是由于中间布局布线肯定不能同时到得,这样怎么处理呢



  谢谢你,我知道了,太感谢了



    DDIO是什么东东呢?

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

网站地图

Top