我在EDA上看到的,觉得不错,拿来和大家分享!
xilinx的诸多型号的芯片中都有专门的时钟管理单元dcm,用来对外部输入时钟进行分频、倍频和移相以产生片内设计所需要的时钟。最近刚刚接触它,有些体会写出来与大家共享,有理解不对的地方还请大侠门及时更正啊 1、在分配管脚时clkin直接接到芯片的时钟管脚gclk,在综合的时候会自动产生ibufg、bufg,不必在设计中另外加。不过一个时钟输入管脚只能接到一个dcm上, 曾经想将一个时钟输入脚分接到两个dcm上,结果综合时候会报驱动有错,这点有幸得到yaoguaiws大侠的解释,是bufg驱动不足的问题。 2、分频倍频,用coregenerate产生的dcm可以看到分频倍频输出,选中后可以按照自己的要求设定分倍频系数,非常方便。但 yaoguaiws 大侠提到在用倍频时候只有1倍和2倍频时有锁相功能,在更高倍频时没有这个功能,产生的时钟会差些。大家可以参考。(我还没在实际中用到过,呵呵,见笑了) 3、 固定移相,dcm有clk0,clk90,clk180和clk270的输出,选中的话可以得到与输入clkin相应相差的时钟,clkfb是反馈,大概是通过他来锁定clk0等与clkin的相位保持恒定的关系吧,这里有个内部反馈和外部反馈,clkfb在内部反馈时是不用接的,不知外部反馈是个什么用法,关于这里的反馈我理解不深,还请哪位大侠能指教一二。 4、可变移相,如果选择可变移相模式,会增加些psen,psclk之类的脚,psen是移相使能,为高的话,输出clk0开始移相,每经过几个psclk,clk0会移动一个相位(相对于clkin的相位,移动的值为T/256,T是clkin的周期),同时psdone会产生一个脉冲表示一次移相完成。移相的范围为-128~128,所以理论上可以得到与clkin任意相差的时钟信号,在产生信号延时方面可能会有用,有些具体的操作和要求可以参考用户手册。 上面是我个人的一些理解,是很浅显的,还请大家多多指正!
|