本文和设计代码由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。
FPGA中有若干个锁相环PLL,这些锁相环能够对外部输入的时钟信号进行分频倍频,以得到比输入参考时钟信号更高或更低、相位相关的一些新的时钟信号。在上一文中讨论了使PLL时钟通过专用的IO输出的一些问题。这里再来总结一下PLL的输入时钟的问题。
还是以Cyclone IV E这个最典型的系列进行说明。
Cyclone IV E系列的器件有2个或4个片上PLL,EP4CE6和EP4CE10有2个PLL,其他型号均有4个PLL。
做过基于Cyclone IV E系列器件应用的应该都知道,PLL的参考时钟只能由专用的时钟输入脚输入,一般在原理图上标记为:CLKx,DIFFCLK_xn/p如下图所示。这些脚如果不用做时钟输入,要么接地,要么可以当做输入IO来用(不能用作输出)。但是,具体哪个CLK脚对应接到哪个PLL上呢?还是说任意一个CLK脚都能接到任意一个PLL上呢。
可能不做硬件板卡设计的人,很难会考虑这些问题,即使设计硬件板卡的人,也不一定会去考虑这个问题,反正对着一些常见的开发板的原理图一抄就OK了。
事实上,每个PLL都对应了一组“嫡系”的CLK引脚,所谓“嫡系”就是说这些脚就是专门设计了可以作为这个PLL的参考时钟输入脚。而另外一些CLK脚,有一部分虽然也能作为该PLL的参考时钟输入脚,但是其能提供的时钟的质量却不如该PLL“嫡系”的CLK脚,再还有一些CLK脚就是无法驱动该PLL了。具体怎么对应呢?下面一张图可以说诠释的很完美了。点击图片可以查看高清大图
CLK[3..1]嫡系连接PLL1,也可作为PLL3的参考时钟,不过不像嫡系CLK那样有很完善的补偿措施
CLK[7..4]嫡系连接PLL2,也可作为PLL4的参考时钟,不过不像嫡系CLK那样有很完善的补偿措施
CLK[11..8]嫡系连接PLL3,也可作为PLL2的参考时钟,不过不像嫡系CLK那样有很完善的补偿措施
CLK[15..12]嫡系连接PLL4,也可作为PLL1的参考时钟,不过不像嫡系CLK那样有很完善的补偿措施
能作为PLL参考时钟的只有标位CLK脚的信号,其他信号如普通IO、PLL的输出时钟等都无法连接到PLL的参考时钟输入端。
通过上述分析可以知道,如果要想最高性能的使用片上的4个PLL,需要4个外部时钟源,分别接在CLK[3..1]、CLK[7..4]、CLK[11..8]、CLK[15..12]这4组中的任意一个信号上。