微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 将标准时钟CLK1分频后得到CLK2,怎么让CLK2与CLK1对齐?

将标准时钟CLK1分频后得到CLK2,怎么让CLK2与CLK1对齐?

时间:10-02 整理:3721RD 点击:
将标准时钟CLK1分频后得到CLK2,怎么让CLK2与CLK1对齐,并且CLK2无偏差地传递给每一个寄存器?
功能仿真的时候,仿真器总是认为我的CLK2上升沿比CLK1晚到

这个是当然的了,经过分频后的时钟,在时间轴上,总是晚于原时钟
怎么能拿未来的,用在现在呢

这是正常的,不需要对齐

在FPGA中使用ip核分频,应该默认就是对齐的吧。不但是对齐的,而且分频后的时钟与原始时钟的相位关系是可以自己设置的(采用缺省值的情况下就是对齐的)。
如果分频后的时钟clk2是全局时钟,则可以无偏差地传递给每一个寄存器


     恩,我原来是自己写的分频器,估计是对不齐的。     现在我想用Xilinx(sparten6)自己的时钟资源来分频,是不是用PLL就可以了,还是用CDM啊?
    我现在对时钟的需求是这样的:
   


有什么其他好的办法,达到我的目的啊,谢谢

DCM和PLL都行吧,里边可以设置占空比,相移等,输出的时钟默认接BUFG,进入全局时钟网络,这样分频后的时钟到每个触发器的skew可以忽略不计,可以认为同时到达

DCM和PLL都行?那这两者区别是什么的,什么情况下用哪个?

对齐干什么,你这里对齐了到寄存器上又不一定还对齐。不过你功能仿真可以这么做,也完全可以用自己语言定义的时钟。


我让所有时钟从DCM出来,然后都通过全局时钟网络送到各个寄存器,是不是这样就可以实现: 各个时钟送到各个寄存器时还是对齐的。?


你说的是对的,不过从dcm中出来默认就是全局时钟吧。pll和dcm分别是altera和xilinx各自主要采用的时钟管理方法,前者主要在模拟域实现时钟管理,后者主要在数字域实现时钟管理,二者各有优缺点。对一般的应用来说二者实现的效果是一样的。

功能仿真的话里面不会出现延迟,所以对不对齐是没意义的,不过如果你两个时钟之间存在相互采样,会影响你的仿真。所以你要规定一个先后,然后到时候用sdc来保证确实两个时钟关系跟你功能仿真的时候一样。


我现在看xilinx的时钟资源的文档,你知道BUFIO2是什么时钟资源吗,好像是用来驱动IO逻辑什么的,没想明白。

如果要求对齐的话,用PLL;

用理想状况下去写就好
毕竟线路上一定会有延迟
不过这延迟基本上不超过5ns 所以不影响结果
我习惯用PLL 看个人吧

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

网站地图

Top