Cyclone器件中PLL的使用

更新时间:2024-03-16 17:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Cyclone器件中的PLL使用介绍

摘要:Cyclone? FPGA具有锁相环(PLL)和全局时钟网络,提供完整的时钟管理方案。Cyclone PLL

具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。Altera? Quartus? II软件无需任何外部器件,就可以启用Cyclone PLL和相关功能。本文将介绍如何设计和使用Cyclone PLL功能。PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TCO)和建立(TSU)时间。

关键字:Cyclone? FPGA 锁相环 PLL

1. 硬件结构

每个Cyclone FPGA包括具有多达两个PLL。表1为几种型号Cyclone FPGA内可用的PLL数量。

表1注释:

(1) 位于器件的左侧中部 (2) 位于器件的右侧中部

表2:Cyclone PLL功能 功能 时钟倍频和分频 相位偏移 可编程占空比 内部时钟输出数量 外部时钟输出数量(4) 锁定端口可以输入逻辑阵列 PLL时钟输出可以输入逻辑阵列 说明 M/(N×后scale计数器)(1) 小至156皮秒(ps)的增量幅度(2),(3) 每个PLL两个输出 每个PLL一个输出 表2注释: (1)M,N和后scale计数器的值从1至32;

(2)最小的相位偏移量为压控振荡器(VCO)周期除以8;

(3)对于角度调整,Cyclone FPGA的偏移输出频率的增量至少为45o。更小的角度增量可能取决于PLL时钟输出的倍频/分频系数; (4) 100脚的扁平四方封装(TQFP)的EP1C3器件不支持PLL LVDS输出或外部时钟输出,144脚TQFP封装的EP1C6 PLL2不支持

外部时钟输出。

Cyclone PLL区块

PLL主要作用就是把内部/外部时钟的相位和频率同步于输入参考时钟。PLL由许多部分组成,共同完成相位调整。Cyclone PLL采用一个相位频率检测器(PFD)把参考输入时钟的上升沿和反馈时钟对齐。根据占空比规定确定下降沿。PFD产生一个上升或下降信号,决定VCO是否需要以更高或更低的频率工作。PFD输出施加在电荷泵和环路滤波器,产生控制电压设置VCO的频率。如果PFD产生上升信号,然后VCO就会增加。反之,下降信号会降低VCO的频率。PFD输出这些上升和下降信号给电荷泵。如果电荷泵收到上升信号,电流注入环路滤波器。反之,如果收到下降信号,电流

就会流出环路滤波器。环路滤波器把这些上升和下降信号转换为电压,作为VCO的偏置电压。环路滤波器还消除了电荷泵的干扰,防止电压过冲,这样就会最小化VCO的抖动。环路滤波器的电压决定了VCO操作的速度。VCO是用四级差分环路滤波器实现的。反馈环路中的分频计数器增加输入参考频率以上的VCO频率,使得VCO频率(fVCO)等于输入参考时钟(fREF)的M倍。PFD的输入参考时钟(fREF)等于输入时钟(fIN)除以欲scale计数器(N)。因此,PFD某个输入的反馈时钟(fFB)锁定于PFD的另一个输入的参考时钟(fREF)。VCO的输出输入三个后scale计数器(G0、G1和E)。这些后scale计数器可以在PLL中产生许多谐振频率。另外,PLL有内部延迟单元补偿全局时钟网络的走线和外部时钟输出管脚的I/O缓冲器延迟。这些内部延迟是固定的,用户无法控制。

2.软件简述

Quartus II软件中用altpll宏功能调用Cyclone PLL。图2是Cyclone PLL的端口(用Quartus II altpll宏功能内的名称)以及来源和目的。要注意altpll的c[1..0]和e0时钟输出端口是由后scale计数器G0、G1和E驱动的。G0和G1计数器驱动c0和c1 PLL输出的内部全局时钟网络,E计数器驱动到e0 PLL输出连接的PLL外部时钟输出管脚。

图2 Cyclone PLL的端口

图2的注释:

(1) 你可以把这些信号分配给单端I/O标准或LVDS; (2) Inclk0必须由专用时钟输入管脚驱动; (3) e0驱动两用PLL[2..1]_OUT管脚。

表3:PLL输入信号 端口 说明 inclk0 PLL的时钟输入 来源 目的 专用时钟输/n计数器 入管脚(1) pllena(2) pllena是高有效信号,是PLL的启动和复位信号。逻辑阵列(3) PLL控制信号 它可以启动一个或两个PLL。当该信号为低时,PLL时钟输出端口输出为GND,PLL失锁。一旦该信号再次变高,锁定过程开始,PLL重新和输入参考时钟同步。可以由内部逻辑或任意的通用I/O管脚驱动pllena。 areset areset是高有效信号,复位所有的PLL计数器为初逻辑阵列(3) PFD 始值。当该信号为高时,PLL复位该计数器,失锁。一旦该信号再次变低时,锁定过程开始,PLL重新和输入参考时钟同步。可以由内部逻辑或任意通用I/O管脚驱动areset。 pfdena pfdena是高有效信号,启动PFD的升降输出信号。逻辑阵列(3) PFD 当pdfena为低时,PFD无效,而VCO继续工作。PLL不管输入时钟是否有效,时钟输出继续触发,但是会有一些长期偏移。因为输出时钟频率一段时间内不会改变,在输入时钟无效时,pfdena端口可以作为关机或清除信号。可以由内部逻辑或任意通用I/O管脚驱动pfdena端口。 表3注释: (1)PLL的inclk0端口必须由专用时钟管脚驱动。

(2) 所有的PLL没有专门的pllena管脚,这样你可以为两个PLL选用其中一个pllena或每个PLL都有各自的pllena管脚。

(3)逻辑阵列来源意味着你可以从内部逻辑或任意通用I/O管脚驱动这个端口。

表4:PLL输出信号 端口 说明 c[1..0] PLL时钟输出驱动内部全局时钟网络 e0(2) PLL时钟输出驱动单端或LVDS外部时钟输出管脚。 locked PLL锁定状态。当PLL锁定时,该端口为高。当PLL失锁时,该端口为低。在PLL锁定过程中,锁定端口输出为脉冲高和低。 来源 PLL后scale计数器G0或G1 PLL后scale计数器E PLL锁定检测 目的 全局时钟网络(1) PLL[2..1]_OUT管脚(3) 逻辑阵列(4) 表4注释: (1) C[1..0]可以通过全局时钟网络驱动任何通用I/O管脚;

(2) 100脚TQFP封装的EP1C3器件和144脚TQFP封装的EP1C6 PLL2不支持外部时钟输出PLL[2..1]_OUT; (3) PLL[2..1]_OUT管脚是两用管脚。如果不需要这些管脚,它们可以作为通用I/O管脚; (4) 逻辑阵列目的意味着你可以把该端口输出到内部逻辑或任意通用I/O管脚。

在Quartus II软件中,你定义哪些从PLL(c0或c1)输出的内部时钟应该补偿。这些PLL时钟输出参照PLL输入时钟进行相位校正。例如,如果c0指定为正常模式下的补偿时钟,那么根据c0在全局时钟网络上的走线来补偿。

3.管脚和时钟网络连接

必须用专用时钟输入管脚CLK[3..0]驱动Cyclone PLL。反转时钟和内部产生时钟无法驱动PLL。表5说明哪些专用时钟管脚驱动哪些PLL输入时钟端口。单个时钟输入管脚不能驱动所有的PLL,但是单个时钟输入管脚可以输入逻辑阵列的两个缓存器以及PLL inclk端口。 表5:PLL输入时钟来源 时钟输入管脚(1) PLL1 PLL2(2) CLK0 √ CLK1 √ CLK2 √ CLK3 √ 表5注释: (1) 如果你使用LVDS标准,那么两个驱动PLL的管脚的CLK都要使用; (2) EP1C3只支持PLL1。

Altpll的c[1..0]和e0时钟输出管脚由PLL后scale计数器G0、G1和E驱动(和顺序无关)。G0和G1计数器馈入c0和c1 PLL输出的内部全局时钟网络上。E计数器馈入e0 PLL输出的PLL外部时钟输出管脚上。表6说明PLL后scale计数器输出能够驱动哪些全局时钟网络。 表6:PLL输出时钟对应的全局时钟网络 PLL 计数器输出 GCLK0 GCLK1 GCLK2 GCLK3 GCLK4 GCLK5 GCLK6 GCLK7 PLL1 G0 √ √ G1 √ √ PLL2 G0 √ √ G1 √ √ 图3为PLL输入和输出时钟连接关系,归纳了表5和表6的内容。

图3.Cyclone PLL时钟连接

图3注释:

(1) PLL1通过CLK0和CLK1管脚支持一个单端或LVDS输入。 (2) PLL2通过CLK2和CLK3管脚支持一个单端或LVDS输入。

(3) PLL1_OUT和PLL2_OUT支持单端或LVDS输出。如果不使用外部时钟输出,这些管脚可以作为通用I/O管脚。

4.硬件功能

可以在逻辑阵列区块(LAB)和输入/输出单元(IOE)级反转PLL的时钟输出。Cyclone PLL有许多高级功能,包括时钟倍频和分频、相位偏移、可编程占空比、外部时钟输出和控制信号。

时钟倍频和分频

Cyclone PLL采用M/(N×后scale)scale系数为PLL输出端口提供时钟合成输出。每个PLL有一个预scale系数(N)和一个乘法系数(M),范围从1到32。输入时钟(fIN)经由预scale计数器(N)分频后产生PFD的输入参考时钟(fREF)。然后fREF乘以M反馈系数。控制环路驱动VCO频率匹配fIN×(M/N)。见下面等式。

fREF=fIN/N

fVCO=fREF×M=fIN×(M/N)

每个输出端口有一个唯一的后scale计数器降低高频VCO。有三个后scale计数器(G0、G1和E),范围从1至32。见下面等式:

fC0=fVCO/G0=fIN×(M/(N×G0)) fC1=fVCO/G0=fIN×(M/(N×G1)) fC0=fVCO/E=fIN×(M/(N×E))

c0和c1可以使用两个后scale计数器之一,G0或G1。

对应有不同频率的多个PLL输出,VCO可以设置为满足VCO频率规定输出频率的最小倍数。然后,后scale计数器降低每个PLL时钟输出端口的输出频率。例如,如果时钟输出频率需要从33到66MHz,VCO可以设置为330MHz(VCO范围内的最小倍数)。

相位偏移

Cyclone PLL有高级的时钟偏移能力,提供可编程的相位偏移。你可以在altpll MegaWizard?外挂插件管理器中设置所需的相位偏移,Quartus II软件会自动设置和显示最近的有效相位偏移。你可以为每个PLL时钟输出端口输入角度、单位时间的相位偏移。所有三个PLL后scale计数器G0、G1和E以及所有的时钟反馈模式都支持这种功能。

相位偏移是根据补偿的PLL时钟输出进行的。例如,你需要100MHz输出时钟,在c0上具有a×1倍频和+90°相位偏移,在c1上具有a×1倍频和+45°相位偏移。如果你选择补偿c0时钟输出,PLL使用零相位偏移c0时钟作为参考点在c0上生成+90°的相位偏移。既然c0是补偿时钟,那么它相对输入时钟的相位偏移 +90°。c1时钟也使用零相位偏移c0参考在c1上生成+45°的相位偏移。

对于精细的相位调整,每个PLL时钟输出计数器可以从多达8个相位移位中选择不同的VCO相位,进行精细的相位调整。另外,每个时钟输出计数器使用唯一的初始化计数设置独立实现相位粗调,步长为一个VCO周期。Quartus II软件可以使用时钟输出计数器和后scale计数器的初始化设置,实现整个输出时钟周期的相位偏移。你可以把PLL时钟输出的相位偏移到±180°。Quartus II软件会根据相位偏移需求自动设置相位移位和计数器设置。

相位细调精度取决于输入频率和倍频/分频系数(也就是VCO周期的函数),最精细的步长等于VCO周期的八分之一。最小的相位偏移是1/(8×fVCO)或N/(8×M×fIN)。在Cyclone FPGA中,VCO范围从300到800MHz。因此,相位偏移可以按照1/(8×800MHz)到1/(8×300MHz)范围的精度进行调整,时间单位是156到417ps。

因为有八个VCO相位位移,最大步长为45°。更小的步长取决于输出时钟端口所需的倍频和分频比率。决定相位偏移度数的精度是45°除以后scale计数器值。例如,如果输入时钟为×1的125MHz,那么后scale计数器G0是3。因此,最小的相位步长是(45°/3=15°),可能的相位偏移值是15°的倍数。

因为这类的相位偏移对制程、电压和温度变化很不敏感,因此具有最大精度。

可编程占空比

可编程占空比功能允许你设置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%。

外部时钟输出

每个PLL支持通用外部时钟或来源同步发送器一个单端或LVDS外部时钟输出。E计数器输出驱动PLL外部时钟输出(e0),它只能馈入PLL[2..1]_OUT管脚而不是内部逻辑。所有三种时钟反馈模式都可以使用PLL[2..1]_OUT。

100脚封装的EP1C3器件和144脚的EP1C6 PLL2封装不支持外部时钟输出。

PLL[2..1]_OUT管脚是两用管脚,如果PLL不使用该管脚,那么它们可以作为I/O管脚。PLL[2..1]_OUT管脚支持的I/O标准见表7。 表7:Cyclone PLL管脚支持的I/O标准 I/O标准 inclk PLL[2..1]_OUT(1) LVTTL √ √ LVCMOS √ √ 2.5-V √ √ 1.8-V √ √ 1.5-V √ √ 3.3-V PCI √ √ LVDS(2) √ √ SSTL-2 Class I √ √ SSTL-2 Class II √ √ SSTL-3 Class I √ √ SSTL-3 Class II √ √ 表7注释: (1) 100脚TQFP封装的EP1C3和144脚TQFP封装的EP1C6 PLL2不支持外部时钟输出; (2) 100脚TQFP封装的EP1C3不支持LVDS输出。

既然pllena和locked信号可以由通用I/O管脚驱动或驱动通用I/O管脚,那么它们也支持所有的Cyclone I/O标准。

Cyclone外部时钟输出管脚(PLL[2..1]_OUT)没有独立于器件的VCC和GND组。PLL[2..1]_OUT管脚和相邻的I/O管脚共享VCCIO组。只有同一组内的I/O管脚会影响PLL[2..1]_OUT管脚。因此,为了让PLL[2..1]_OUT管脚的抖动最小,和它们直接相邻的I/O管脚要么作为输入要么不使用。有关板子设计的详细信息,参见“抖动注意事项”。

控制信号

Cyclone PLL有四个控制信号pllena、areset、prdena和locked,进行PLL管理。 Pllena

PLL启动信号pllena启动PLL。当pllena为低时,PLL时钟输出端口为低,PLL失锁。当pllena再次变高,PLL和重新锁定和重新同步输入时钟。因此,pllena是高有效信号。因为在Cyclone FPGA中没有专用的pllena管脚,内部逻辑或任意通用I/O管脚都可以驱动pllena端口。因为每个PLL都有自己的pllena控制电路或共享通用的pllena电路,这样就很灵活。pllena信号是可选的,如果软件中没有启动它,端口内部就连接到VCC。

Areset PLL areset信号是每个PLL的复位或重新同步输入。但驱动为高时,PLL计数器重定,清除PLL输出,造成PLL失锁。VCO复位后回到初始设置。当areset再次变低,PLL重新开始锁定,PLL重新和输入时钟同步。如果目标VCO的频率低于标准频率,在锁定过程中PLL时钟输出起始频率值比所需值要高。areset是高有效信号。Cyclone FPGA可以从内部逻辑或任意通用I/O管脚驱动这个PLL输入信号。areset信号是可选的,如果在软件中没有使用它,该端口内部连接到GND。

Pfdena

pfdena信号用可编程闸控制着PLL中PFD输出。如果你把areset置低禁止PFD,那么VCO将以最后设置的控制电压和频率值工作,长时间会漂移到更低的频率。即使每个输入时钟PLL时钟输出也会继续触发,但是PLL可能会失锁。当PLL失锁或输入时钟禁止时,系统会继续运行。因为在一段时间内最后锁定输出频率不会改变,所以你可以用pfdena端口作为关机或清除功能。为了维持这一频率,系统在关机之前有时间储存当前的设置。如果pfdena信号再次变高,PLL重新锁定和输入时钟重新同步。因此pfdena管脚是高有效信号。你可以用任意通用I/O管脚或内部逻辑驱动pfdena输入信号。该信号是可选的,如果在软件没有使用它,该端口内部连接到VCC。

Locked

当locked输出是逻辑高电平,该电平说明稳定的PLL时钟输出,和PLL参考输入时钟同相。当PLL开始跟踪参考时钟时,locked端口可能会触发,无需额外电路。PLL的locked端口可以馈入任意通用I/O管脚和/或内部逻辑。这个locked信号是可选的,在监视PLL锁定过程中是非常有用的。

时钟反馈模式

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.标准模式下PLL时钟之间的相位关系

图4注释:

(1) 外部时钟输出可能领先或落后于PLL时钟信号。

零延迟缓冲模式

PLL外部时钟输出管脚(PLL[2..1]_OUT)的时钟信号和PLL输入时钟是相位对齐的,没有延迟。如果你用c[1..0]端口驱动内部时钟管脚,那么相对于输入时钟管脚有相位偏移。图5是零延迟缓冲模式下PLL时钟相位关系的范例波形。

图5.零延迟缓冲模式下PLL时钟之间的相位关系

无补偿

在该模式下,PLL不补偿任何时钟网络。这样会有更佳的抖动性能,因为反馈到PFD的时钟不经过某些电路。相对PLL时钟输入,PLL内部和外部时钟输出都有相位偏移。图6是无补偿模式下的PLL时钟相位关系范例波形。

图6.无补偿模式下PLL时钟之间的相位关系

图6注释:

(1) PLL输出的内部时钟之间相位是对齐的。

5.管脚

表8:Cyclone PLL管脚 管脚名 说明 CLK0 单端或LVDS p管脚,可以驱动PLL1的inclk0端口 CLK1(1) 单端或LVDS n管脚,可以驱动PLL1的inclk0端口 CLK2 单端或LVDS p管脚,可以驱动PLL2的inclk0端口 CLK3(1) 单端或LVDS n管脚,可以驱动PLL2的inclk0端口 PLL1_OUTp(2) 单端或LVDS管脚,由PLL1的e0端口驱动。如果PLL不使用,可以PLL1_OUTn(2) PLL2_OUTp(2) PLL2_OUTn(2) VCCA_PLL1(3) GNDA_PLL1(4) VCCA_PLL2(3) GNDA_PLL2(4) GNDG_PLL1(5) GNDG_PLL2(5) 作为通用I/O管脚。 单端或LVDS管脚,由PLL2的e0端口驱动。如果PLL不使用,可以作为通用I/O管脚。 PLL1的模拟电源。即使PLL不使用,也必须连接到1.5V。 PLL1的模块接地。你可以把该管脚连接到板子的GND层。 PLL2的模拟电源。即使PLL不使用,也必须连接到1.5V。 PLL2的模拟接地。你可以把该管脚连接到板子的GND层。 PLL1的保护环路接地。你可以把该管脚连接到板子的GND层。 PLL2的保护环路接地。你可以把该管脚连接到板子的GND层。 表8注释: (1) 100脚TQFP封装的EP1C3器件没有专用时钟管脚CLK1和CLK3;

(2) 100脚TQFP封装的EP1C3和144脚TQFP封装的EP1C6 PLL2不支持外部时钟输出; (3) 参考16页的“板子布局”进行滤波和其它推荐设计;

(4) 100脚TQFP封装的EP1C3器件和144脚TQFP封装的EP1C6 PLL2没有分开的GNDA_PLL管脚。它们内部连接到GND; (5) 保护环路电源(VCCG_PLL)内部连接到VCCINT。

6.板子布局

Cyclone PLL包含内嵌在数字器件中的模拟部分。这些模拟部分有分立的电源和接地管脚,抵抗数字部分产生的噪声。这些分立的VCC和GND管脚用来分离电路,改善噪声的影响。

VCCA和GNDA

每个PLL有分立的模拟电路VCC和GND对。每个PLL模拟电路电源和接地管脚叫作VCCA_PLL#和GNDA_PLL#(#代表PLL号)。即使PLL不使用,VCCA电源必须连接到1.5-V电源上。连接到VCCA的电源必须和其余Cyclone FPGA的电源或板子上其它任何数字器件分开。下面说明三种分离VCCA的方式。

VCCA电源层分离

混合信号系统设计者会把系统划分为模拟和数字部分,在板子上它们有各自的电源层。这种情况下,你可以把VCCA连接到模拟1.5-V电源层。

在VCCINT层中划分出VCCA岛

绝大部分采用Altera器件的的系统都是全数字,所以板子上根本就没有独立的模拟电源层。在板子上增加新层是很不划算的。因此,你可以为VCCA_PLL创建一个岛。岛的绝缘边界大约为25mil宽。图7是在VCCINT层中划分VCCA的范例。

图7.VCCINT层划分VCCA岛

宽VCCA走线

由于板子的限制,可能无法划分VCCA岛。从而,用宽的电源走线给每个VCCA管脚。走线至少为20mil宽。

每个VCCA管脚必须经过图8所示的去耦电路。你必须在电源进入板子的地方放置一个铁氧体磁珠和一个并联的10-μF钽电容。铁氧体磁珠对50MHz及以上的频率有很高的阻抗。每个VCCA管脚必须用一个0.1-μF和一个0.001-μF并联的陶瓷电容和串联的1Ω电阻去耦,要近可能靠近Cyclone FPGA。你可以把GNDA管脚直接连接到器件的数字接地层。

有关板子设计的详细资料,请参阅AN75:高速电路板设计。

图8 去耦电路

抖动注意事项

如果输入时钟有任何的低频抖动(低于PLL的频宽),PLL会试图跟踪它,这样就会增加PLL时钟输出的抖动。为了把这种影响减到最小,避免在同一个给PLL时钟输入缓冲供电的VCCIO组中连接有噪声的信号。这只有当PLL输入时钟指定为3.3或2.5 LVTTL或LVCMOS I/O标准时非常重要。在这些I/O标准下,VCCIO对输入时钟缓冲供电。因此,VCCIO供电上的任何噪声都可能影响抖动性能。对于所有其它I/O标准,输入缓冲是由VCCINT供电。

因为Cyclone外部时钟输出管脚(PLL[2..1]_OUT)没有独立的VCC和GND组,所以你应该避免把噪声输出信号直接在和这些管脚相邻。因此,Altera推荐和PLL[2..1]_OUT相邻的I/O管脚要么作为输入管脚要么根本就不用。如果噪声输出临近PLL[2..1]_OUT管脚,它们会通过接地弹起或VCC下陷和管脚互感应引入噪声,这样会导致PLL[2..1]_OUT管脚更糟糕的抖动性能。

另外,你应该考虑在同一个VCCIO组中像PLL[2..1]_OUT这样同时开关的输出数量。Altera推荐在同这些VCCIO组中同一个方向上同时尽可能少地开关输出。而且,如果你在同一个VCCIO组中有像PLL[2..1]_OUT管脚这样的开关输出。Altera推荐你在这些输出管脚上使用低电流强度和/或低偏移率选项,这样有助于改善抖动性能。

规范

表9:Cyclone FPGA PLL规范 代号 参数 最小 最大 单位 fIN 输入频率 15.00 156.00 MHz fIN DUTY 输入时钟占空比 40.00 60.00 % tIN JITTER 输入时钟抖动 200.00 ps (峰到峰) fOUT PLL输出频率 9.38 312.00 MHz tOUT DUTY 外部输出时钟的45.00 55.00 % 占空比(当设置为50%) tJITTER(2) PLL外部时钟输出抖动(峰到峰) tLOCK 从器件配置结束到锁定所需的时间 fVCO PLL内部VCO工作范围 M、N、G0、G1、E 计数器值 10.00 TBD 100.00 ps us 300.00 1.00 800.00 32.00 MHz 整数 表9注释: (1)这些数据仅供参考,是当前的硅芯片特性。

(2)PLL[2..1]_OUT管脚的tJITTER规范取决于VCCIO组的I/O管脚,多少个开关输出,它们切换情况,它们是否使用可编程电流强度

或低偏移率。

7.软件支持

Quartus II软件中用altpll宏功能支持Cyclone PLL。下面阐述altpll宏功能如何设置不同的Cyclone PLL功能和选项。本节包括宏功能符号、输入和输出端口,MegaWizard外挂插件管理器选项说明和MegaWizard范例。

Quartus II altpll宏功能

图9是Quartus II软件中的altpll宏功能符号。

图9.Cyclone FPGA的altpll宏功能符号

参考Quartus II帮助中的altpll宏功能AHDL功能原型(用于Verilog HDL),VHDL声明和参数说明。

Altpll输入端口

表10:altpll宏功能的输入端口以及功能说明 端口名 必需 说明 inclk0(1) 是 输入时钟端口驱动PLL。 pllena(2) 否 pllena是高有效信号,作为PLL的组合启动和复位信号。你可以用它作为一个或两个PLL的启动端。当该信号为低时,PLL时钟输出端输出为GND,PLL失锁。一旦信号再次变高,锁定过程启动,PLL重新和输入参考时钟同步。pllena端口可以由内部逻辑或任意通用I/O管脚驱动。 areset(2) 否 areset是高有效信号,复位所有的PLL计数器为初始值。当该信号为高时,PLL复位它的计数器,清除PLL输出,失锁。一旦该信号再次变低,锁定过程启动,PLL重新和输入参考时钟同步。areset端口可以由内部逻辑或任意通用I/O管脚

pfdena(2) 否 驱动。 pfdena是高有效信号,它启动升降PFD的输出信号。当pfdena为低是,PFD禁用,而VCO继续工作。无论输入时钟是否存在,PLL时钟输出继续翻转,但是会有长期偏移。因为在一段时间内输出时钟频率不会改变,当可靠的输入不再有效,pfdena端口作为关机或清除功能。可以由内部逻辑或任意通用I/O管脚驱动pfdena端口。 表10注释: (1) PLL的inclk0端口必须由专用时钟输入端口; (2) 详细情况请参考“控制信号”。

Altpll输出端口

表11:Altpll宏功能的输出端口和功能说明 端口名 必需 说明 c[1..0](1) 否 PLL的时钟输出驱动内部全局时钟网络。 e0(1) 否 时钟输出馈入外部时钟输出管脚,PLL[2..1]_OUT。 locked(2) 否 给出PLL锁定状态。当PLL锁定时,该端口输出逻辑高。当PLL失锁时,该端口输出逻辑低。在PLL锁定过程中锁定端口可能是脉冲高和低。 表11注释: (1) 必需选择PLL的内部或外部时钟输出; (2) 详细情况请参见“控制信号”。

MegaWizard定制功能

可以使用MegaWizard外挂插件管理器为你设计中的每个PLL例化设置altpll宏功能选项。如果不使用MegaWizard外挂插件管理器例化altpll宏功能,查看Quartus II辅助说明中的“altpll”有关altpll的参数。

在MegaWizard外挂插件管理器中,从Available Megafunctions对话方框(见图10)中的I/O目录选择altpll宏功能。Quartus II软件中还有altclklock宏功能,向前兼容,但是对于Cyclone FPGA,必须例化新的altpll宏功能。

Altpll的MegaWizard外挂插件管理器有单独的Cyclone PLL页面。MegaWizard中灰色的选项在Cyclone PLL中是无效的。在编译过程中,Quartus II编译器验证altpll参数,任何PLL或输入时钟位置分配。

在altpll MegaWizard外挂插件管理器每页的右上角,有一个jump to page下拉列表(见图11)。下拉列表允许你跳到任何指定的altpll MegaWizard页面,设置那些选项。

图10.在MegaWizard外挂插件管理器的altpll宏功能部分

图11.altpll MegaWizard外挂插件中的Jump to Page下拉列表

MegaWizard 页面说明

这部分说明altpll MegaWizard页面的有效选项。每个MegaWizard页面都会显示。表12到表14说明该页面中Cyclone PLL的功能或设置。使用这些表以及PLL的硬件功能的描述,决定PLL例化的合适设置。

你可以使用altpll MegaWizard外挂插件管理器中General/Modes(第一页)选择目标器件系列、时钟输入频率、通用控制信号和时钟反馈操作模式(见图12)。

图12:altpll MegaWizard外挂插件管理器(第一页)

表12:altpll MegaWizard外挂插件第一页的选项 功能 说明 你可以使用哪本应用指南解释所有Cyclone器件系列的altpll选项。 些器件系列 inclock0输入PLL输入时钟的频率,inclock0。 的频率是多少 创建pllena输为这个PLL例化创建pllena端口。pllena端口的说明见表10。 入来选择启动PLL 创建areset输为这个PLL例化创建areset端口。areset端口的说明见表10。 入来异步复位PLL 创建pfdean输为这个PLL例化创建pfdena端口。pfdean端口的说明见表10。 入来选择启动

PFD 使用PLL内的反馈路径 哪些输出时钟会补偿? 可以选择Scan/Lock选择锁定的输出端口(见图13)。该选项设置OPERATION_MODE参数为标准,零延迟缓冲或无补偿模式。 标准模式下,PLL反馈路径是全局时钟网络,这样会最小化到特定PLL时钟输出缓存器的时钟延迟。你可以用COMPENSATE_CLOCK参数指定补偿哪个PLL输出。 零延迟缓冲模式下,PLL反馈路径是专用PLL外部输入管脚。从PLL_OUT管脚输出芯片的时钟信号和PLL时钟输入相位是对齐的,使得时钟输入和外部时钟输出之间的延迟是最小的。如果PLL也用于驱动内部时钟网络,那么时钟网络就会有相应的相位偏移。 无补偿模式下,PLL反馈路径是PLL环路,不是全局时钟网络或外部来源。没有时钟网络补偿,但是这种模式下时钟的抖动最小。这种模式可能导致IOE缓存器需要正的保持时间,你可以用手动相位偏移来补偿正保持时间。 详细情况,请参阅“时钟反馈模式”。 指示PLL的哪个输出端口被补偿。对于标准模式,你可以选择c0或c1。

图13.altpll MegaWizard外挂插件管理器(第二页)

表13:altpll MegaWizard外挂插件第二页的选项 功能 说明 创建“锁定”输出 创建锁定输出端口指示PLL锁定状态。将表11中的锁定端口描述。 MegaWizard外挂插件管理下两页中的选项(第三页到第四页,标题为Bandwidth/SS和Clock Switchover)在Cyclone FPGA中不支持。

MegaWizard外挂插件管理的最后三页(第五页到第七页)允许你为每个PLL输出端口设置倍频/分频系数,相位偏移和占空比(见图14)。每页表示一个PLL时钟输出端口的设置。表14说明了第五页到第七页的选项。

图14.altpll MegaWizard外挂插件管理器第五页到第七页

表14:altpll MegaWizard外挂插件第五页到第七页的选项 功能 说明 时钟倍频指定PLL输出的时钟倍频量。倍频系数不能大于32。 系数(比率) 时钟分频指定PLL输出的时钟分频量。 系数(比率) 时钟相位根据要补偿的PLL时钟输出,为时钟输出设置可编程的相位偏移。等式决定了相位偏移偏移(Ph) 角度的精度(45°除以或scale缓存器的值)。因此,最大的步长是45°,步长可能更小,这取决于时钟输出端口上所需的分频/分频比率。例如,如果你的输入时钟是125MHz×1,或scale计数器G0是3。那么最小的相位偏移步长是15°,相位偏移是以15°递增。 上升/下降按钮根据内定值M和后scale分频器决定的可能相位偏移设置来调整,MegaWizard外挂插件管理器选用它们作为你的目标频率和倍频/分频比率。如果你在相位偏移域中手动输入一个数字,可能得到其它的相位偏移精度。例如,你以覆盖MegaWizard选择的值,自己定义为7.5°。MegaWizard外挂插件管理器尝试着用M=6和G0=6。MegaWizard外挂插件管理器尝试着事项最近的可能的相位偏移。例如,如果你输入10°,MegaWizard外挂插件管理器验证M=5和G0=5是可以实现的,确定相位偏移为9°。 详细情况,请参见“相位偏移”。 时钟占空指定PLL时钟输出的时钟占空比。 比(DC) 等式决定占空比的精度是(50%除以后scale计数器的值)。例如,如果后scale计数器G0是3,那么容许的占空比是50%除以3,等于16.67%。因为altpll宏功能不接受非整数值的占空比,那么实际允许的占空比是17、33、50和67%。由于硬件的限制,84%的占空比是无法实现的,因为最接近100%的值是无法在给定计数器值内实现。然而,你可以选择17%的占空比,然后反转PLL时钟输出。使用上升/下降按钮选择所有可能的设置。 详细情况,请参见“可编程占空比”。

可以在任何时候点选MegaWizard外挂插件管理器中的Finish来更新文件。

图15.altpll MegaWizard外挂插件管理器第八页

编译报告

在编译过程中,会显示一些信息说明所需的倍频/分频系数,和/或相位偏移,和/或占空比是否实现。如果你输入无效的倍频/分频比率,编译失败,Quartus II软件显示错误信息。如果你输入无效的相位偏移或占空比值,编译会继续处理,Quartus II软件会选择最佳的替代值。

编译报告的Resource Section提供两个PLL的报告:PLL Summary和PLL Usage报告。PLL Summary提供每个PLL参数的信息(见表16)。PLL Summary是分栏显示,每栏代表不同的PLL例化。表15列出并说明PLL Summary报告中显示的参数。表15中没有列出的PLL属性不用影响Cyclone PLL。

图16. PLL总结报告

表15:编译报告文件中的PLL总结 PLL属性 说明 PLL模式 时钟反馈模式 补偿时钟 指示补偿哪个PLL时钟输出(clock0、clock1或extclock0)

输入频率0 inclk0的时钟输入频率 标称VCO频率 显示VCO频率:fVCO=fIN×M/N 最小锁定频率 显示当前M/N保证有效VCO锁定情况下的最小PLL输入时钟频率 最大锁定频率 显示当前M/N保证有效VCO锁定情况下的最大PLL输入时钟频率 M值 M计数器的值 N值 N计数器的值 PLL Usage报告显示每个PLL时钟输出的明细(见图17)。该报告是按照PLL时钟输出端口分类的,每行表示设计中使用的不同PLL时钟输出。表16按行格式罗列和说明PLL Usage报告中的参数。表16中没有列出的PLL参数不会影响Cyclone PLL。

图17.PLL使用情况报告

表16.编译报告文件中的PLL使用情况 PLL参数 说明 Name 指示PLL例化的名称和报告的时钟输出 Output Clock 指示该行参数作用的PLL时钟输出(clock0、clock1或extclock0)这是由MegaWizard外挂插件管理器(c0、c1、e0)指定的时钟端口。 Mult 整个倍频率。 Div 整个分频率。 Output 该输出时钟的输出频率。 Frequency Phase Shift 实现相位偏移的角度和时间单位(可能和用户输入的值不同)。 Duty Cycle 该时钟输出的占空比。 Counter 该时钟输出的后scale计数器,哪个计数器(G0、G1、E0)馈入时钟输出。 Counter Value 后scale计数器的值。 High/Low 计数器值中的高和低时间数目。高和低数目的比率就直接反映为占空比。 Intial 后scale计数器的初始值(相位偏移的粗调)。 VCO Tap VCO移位范围从0到7(以VCO周期的1/8单位对相位偏移进行细调)。 时序分析

每个驱动逻辑阵列的PLL时钟输出的缓存器到缓存器时序用冗余量表示。报告文件的时序分析部分为每个PLL时钟输出提供冗余量信息。

可以从冗余量报告中获得fMAX值。在冗余量报告窗口中的Actual Maximum P2P时序中按照List Path指令给出微参数tCO,tSU和路径延迟。你可以把它们相加,转换为该路径的fMAX。见下面等式:

fMAX=1/(-++)

在对采用PLL的Cyclone设计进行时序分析过程中,项目的时钟设置会覆盖PLL输入时钟频率和占空比设置。所以下面的情况非常重要。

1) 在编译报告中会警告项目时钟设置覆盖了PLL时钟设置

2) 对于时序驱动编译,项目时钟设置覆盖PLL时钟设置。当用时序驱动编译设计时,可以更

严格地限制设计这样可以给你一个更佳的fMAX能。 例如,如果PLL设置输出为150MHz时钟,你可以将项目时钟设置为170MHz,这样装配器会尽量时序170MHz的性能。

3) 编译器检查PLL锁定频率的范围。如果项目时钟设置指定的频率在可锁定的频率范围之外,

PLL时钟设置就不会被覆盖。

4) 覆盖PLL时钟设置只会改变时序需求,不会改变PLL每个时钟输出的整个倍频/分频和相位

延迟。MegaWizard外挂插件管理器不使用项目时钟设置决定altpll参数。

5) 在没有重新编译你的设计情况下进行时序分析不会改变编程文件。你必须重新编译你的设

计更新编程文件。

6) 内定所需的fMAX设置不会覆盖PLL时钟设置。只有独立的时钟设置会覆盖PLL时钟设置。

当你配置Cyclone器件,想看看当你输入PLL一个和指定PLL参数不同的输入时钟时序要求是否满足,这种能力是非常有用的。因此,该功能允许你覆盖PLL输入时钟频率设置进行时序分析,意味着你不必重新合成或重新适配你的设计。以下过程允许你覆盖PLL输入频率设置,重新产生时序分析。

1. 选择Timing Settings(Project Menu)。 2. 点选Clock Setting标签。 3. 在Specify circuit frequency as下,选择Settings for individual clock signals。 4. 点选New。

5. 在New Clock Settings对话方框中,在Clock settings对话方框中为新的时钟设置

输入一个名字。

6. 如果你想为一个绝对时钟指定一个时序要求。按下面的步骤操作。

a. 在Relationship to other clock settings下,选择Independent of other clock

settings。 b. 在Required fMAX框中,输入时钟信号所需的频率(fMAX),从列表中选择一个时

间单位。

c. 在Duty Cycle列表中,指定时钟所需的占空比(Cyclone PLL接受40-60%之间的

占空比)。

d. 如果你想在计算fMAX时包括器件管脚进出的外部延迟,选择Include external

delays to and from device pins in fMAX calculations。 e. 点选OK。

7. 点选OK关闭时序设置窗口。

8. 打开Assignment Organizer对话方框(Tools菜单)。 9. 点选By Node标签。

10. 在Mode下,选择Edit Specific entity & node settings for。 11. 如果需要的话,用Node Finder对话框中复制指定的PLL输入时钟管脚名字到Name框

中。

12. 在Assignment Categories下,点选Timing旁边的+按钮。 13. 点选Click here to add a new assignment。

14. 在Assignment下,选择Name列表下的Clock Settings,选择第五步中你创建的时钟

设置的名字。

15. 在Stored in assignments for下,选择This instance only, This instance in all

occurrences of it parent entity, or Other。 16. 点选Add。

17. 点选OK或Apply。

18. 选择Start Timing Analysis(Processing菜单)

仿真

Altpll宏功能支持Quartus II软件和其它第三方仿真工具中进行行为和时序仿真。你可以仿真PLL所有数字方面的特性,无法仿真模拟特性。仿真支持所有的控制信号和时钟输出。 表17:Cyclone FPGA 支持altpll仿真 特性 仿真支持 pllena pllena信号是可仿真的。当该信号为低时,PLL失锁,PLL时钟输出为逻辑低。 areset areset信号是可仿真的。当该信号为高时,PLL失锁,PLL时钟输出为逻辑低。PLL时钟输出的频率过冲是无法仿真的。 pfdena pfdena控制信号是可仿真的。当该信号为低时,PLL的锁定输出无定义,PLL时钟输出继续以最后设置的频率翻转。VCO有限的频率长期偏移是无法仿真的。 locked locked信号只在大频宽情况下是可以仿真的。在仿真过程中PLL在2到10个周期内锁定或重新锁定,不必反映真实的锁定时间。 频率输入变化 如果PLL的输入频率在仿真中发生变化,模型会检查fIN×(M/N)是否在VCO频率范围之内,如果在VCO操作范围之外就会失锁。 抖动 抖动在仿真中无法仿真。 可以使用altpll行为级模型来仿真Cyclone PLL。Cyclone行为模型例化必须遵循和设计一样的规则和限制。altpll行为和时间模型不能仿真抖动、锁定时间或VCO偏移。

Altpll的行为模型存放在\\quartus\\eda\\sim_lib目录下。ALTERA_MF.VHD包括了VHDL行为模型,可用于例化altpll的Cyclone设计。ALTERA_MF.v包括了Verilog HDL行为模型。行为模型不会进行参数差错检查,你必须指定有效的值。必须把仿真器的精度设置到皮秒级(ps),才能正确地仿真这个模型。更大的精度会在计算中舍去,造成不正确的结果。

8.全局时钟网络

Cyclone FPGA有八个全局时钟网络。四个专用时钟输入管脚(CLK[3..0]),八个两用时钟管脚(DPCLK[7..0]),PLL时钟输出可以驱动全局时钟网络。另外,内部产生全局时钟和异步清除的内部逻辑,时钟启动或其它具有大扇出的控制信号都可以驱动全局时钟网络。

组成全局时钟网络的八个全局时钟线驱动整个器件。你可以用全局时钟网络作为所有器件资源的时钟来源,包括IOE、逻辑单元(LE)和内存区块。你也可以用全局时钟来源作为控制信号,如时钟启动和外部管脚送入的同步或异步清除。

图18是全局时钟网络资源。

图18.全局时钟的产生

图18注释:

(1) EP1C3器件只包括PLL1。

(2) 100脚TQFP封装的EP1C3器件没有专用时钟管脚CLK1和CLK3。

(3) 100脚TQFP封装的EP1C3器件和七个DPCLK管脚。详细情况,请参阅“两用时钟I/O管脚”。

专用时钟输入管脚

Cyclone FPGA有多达四个专用时钟输入管脚(CLK[3..0]),左右两边各两个。你可以用CLK[3..0]管脚驱动PLL,或直接驱动全局时钟网络。表18说明哪个时钟管脚驱动哪个全局时钟网络。 表18:专用时钟输入管脚和全局时钟网络的连接 时钟输GCLK0 GCLK1 GCLK2 GCLK3 GCLK4 GCLK5 GCLK6 GCLK7 入管脚 CLK0 √ √ CLK1 √ √ (1) CLK2 √ √ CLK3(1) 表18注释: (1) (2)

√ √ 100脚TQFP封装的EP1C3器件没有专用的时钟管脚CLK1和CLK3。 两用时钟I/O管脚

Cyclone FPGA可以有多达八个两用时钟管脚。DPCLK[7..0](每边两个)。这些两用管脚可连接的全局时钟网络。你可以用DPCLK[7..0]管脚作为高扇出控制信号,如异步清除、预置,时钟启动或协议控制信号(例如PCI的TRDY和IRDY,或外部内存接口的DQS信号)。这些管脚也可以作为通用I/O管脚,意味着它们可能是输入、输出或双向管脚。表19说明哪些两用时钟管脚驱动Cyclone FPGA中的哪些全局时钟网络。

表19.两用时钟I/O和全局时钟网络的连接 时钟输GCLK0 GCLK1 GCLK2 GCLK3 GCLK4 GCLK5 GCLK6 GCLK7 入管脚 DPCLK0 √ DPCLK1 √ (1) DPCLK2 √ DPCLK3 √ DPCLK4 √ DPCLK5 √ DPCLK6 √ DPCLK7 √ 表19注释: (1)EP1C3器件没有DPCLK1。

组合来源

表20:全局时钟来源 来源 GCLK0 PLLPLL1 计数G0 器输PLL1 √ 出 G1 PLL2 G0(1) PLL2 G1(1) 专用CLK0 √ 时钟CLK1 输入(2) 管脚 CLK2 CLK3 (2) 两用DPCLK0 时钟DPCLK1 管脚 (3) DPCLK2 √ DPCLK3 DPCLK4 DPCLK5 GCLK1 √ √ GCLK2 √ √ √ GCLK3 √ √ √ GCLK4 √ √ √ GCLK5 √ √ GCLK6 √ √ √ GCLK7 √ √ √ DPCLK6 DPCLK7 √ √ 表20注释: (1) EP1C3器件只有PLL1。

(2) 100脚的TQFP封装的EP1C3器件没有专用时钟管脚CLK1和CLK3。 (3) EP1C3器件没有DPCLK1。

在Cyclone FPGA中,有八个独立的专用全局时钟网络。这些时钟通过复用器形成6位总线驱动LAB行时钟,列IOE时钟或行IOE时钟(见图19)。另一个复用器用于LAB级选择六个行时钟其中两个输入LAB中的LE缓存器。

IOE时钟有水平(行)和垂直(列)块区域,它们由从八个全局时钟来源中选择的六个I/O时钟信号驱动。图20是I/O时钟区域。

图19.全局时钟网络复用器

图20.I/O时钟区

9.结论

Cyclone PLL具有重要的功能,为成本敏感的时钟合成应用提供了如M/(N×后scale系数)倍频/分频、相位偏移和可编程占空比等特性。器件内时钟延迟的减小和时钟偏移的消除改善了设计的速度。Cyclone PLL特性使得器件的内部逻辑运行速度比输入时钟频率更快,简化了板子设计。

本文来源:https://www.bwwdw.com/article/jqi8.html

Top