3 ALTERA PLL介绍
Cyclone™ FPGA具有锁相环(PLL)和全局时钟网络,提供完整的时钟管理方案。Cyclone PLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。Altera® Quartus® II软件无需任何外部器件,就可以启用Cyclone PLL和相关功能。本文将介绍如何设计和使用Cyclone PLL功能。
PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TCO)和建立(TSU)时间
表2.Cyclone PLL功能 | |
功能 | 说明 |
时钟倍频和分频 | M/(N×后scale计数器)(1) |
相位偏移 | 小至156皮秒(ps)的增量幅度(2),(3) |
可编程占空比 |
|
内部时钟输出数量 | 每个PLL两个输出 |
外部时钟输出数量(4) | 每个PLL一个输出 |
锁定端口可以输入逻辑阵列 |
|
PLL时钟输出可以输入逻辑阵列 |
|
可编程占空比
可编程占空比功能允许你设置PLL时钟输出的占空比。占空比是时钟输出高/低时间和整个时钟周期时间的比率,表示为处于高的时间的比例。Quartus II软件使用输入频率和目的倍频/分频比率来选择后scale计数器。占空周期精度由PLL时钟输出选用的后scale计数器值决定,定义为50%除以后scale计数器值。例如,如果后scale计数器的值为3,允许的占空比为50%除以3等于16.67%。因为altpll宏功能不接受非整数值的占空比值,允许的占空比为17%、33%、50%和67%。
由于硬件的限制,你不能实现84%的占空比,因为对于给定的计数器值你不能实现最接近100%的值。然而,你可以选择17%的占空比,反转PLL时钟输出,从而实现84%的占空比。例如,如果G0计数器为10,占空比增量是5%,范围从5%到90%。
时钟反馈模式
Cyclone PLL支持三种反馈模式:标准、零延迟缓冲和无补偿。和其它Altera器件系列不同,Cyclone PLL不支持外部反馈模式。所有支持的三种时钟反馈模式允许倍频/分频、相位偏移和可编程占空比。下面是每种模式的简要说明。
● 图4到图6所示的相位关系是内定值相位偏移设置-0°。改变相位偏移设置会改变相位关系。
标准模式
在标准模式下,PLL把参考时钟和逻辑阵列或IOE的端口缓存器处的时钟信号相位对齐,补偿内部全局时钟网络延迟。在altpll MegaWizard外挂插件管理器中,你可以定义PLL的哪个内部时钟输出(c0或c1)应该补偿。
如果在该模式中使用外部时钟输出(PLL[2..1]_OUT),相对于时钟输入管脚有相位偏移。相同的,如果你用内部PLL时钟输出驱动通用I/O管脚,相对应的时钟输入管脚也有相位偏移。
图4是标准模式下PLL时钟相位关系的范例波形。
图4注释:
(1) 外部时钟输出可能领先或落后于PLL时钟信号
零延迟缓冲模式
PLL外部时钟输出管脚(PLL[2..1]_OUT)的时钟信号和PLL输入时钟是相位对齐的,没有延迟。如果你用c[1..0]端口驱动内部时钟管脚,那么相对于输入时钟管脚有相位偏移。图5是零延迟缓冲模式下PLL时钟相位关系的范例波形。
无补偿
在该模式下,PLL不补偿任何时钟网络。这样会有更佳的抖动性能,因为反馈到PFD的时钟不经过某些电路。相对PLL时钟输入,PLL内部和外部时钟输出都有相位偏移。图6是无补偿模式下的PLL时钟相位关系范例波形。
4 Altera PLL使用情况
1)1个PLL情况
不像XILINX DCM,此时只要满足PLL的驱动是专用的时钟输入端口即可。即例化不会出现XILINX报错的情况。
2)2个PLL情况
Wire out_clk1,out_clk2;
pll_1 pll_2(
.areset(!rst),
.inclk0(clk),
.c0(out_clk1));
pll_1 pll_3(.areset(!rst),
.inclk0(clk),
.c0(out_clk2));
上面两个PLL例化是正确的,并联操作。
但是如下组成PLL链是错误的。
Wire out_clk1,out_clk2;
pll_1 pll_2(
.areset(!rst),
.inclk0(clk),
.c0(out_clk1));
pll_1 pll_3(.areset(!rst),
.inclk0(out_clk1),
.c0(out_clk2));
报错: Error: Can't fit fan-out of node <>|altpll:altpll_component|_clk0 into a single clock region
这样违背了PLL的驱动是专用的时钟输入端口。