Altera可重配置PLL使用手册

2018-12-03 19:29

1 应用需求

在实际应用中,FPGA的工作时钟频率可能在几个时间段内变动,对于与之相关的锁相环(PLL),若PLL的输入时钟在初始设定的时钟频率的基础上变化不太大时,PLL一般可以自己调整过来,并重新锁定时钟,获得正确的时钟输出;但是,若PLL的输入时钟频率较之原来设定的时钟频率变化较大时(比如,PLL输入时钟频率由50MHz变为200MHz),PLL将无法重新锁定时钟,其输出时钟频率将变为不确定的值。

对于后面这种情况,一般的可有两种处理方法:

方法一,是针对不同的输入时钟使用不同的PLL分别进行配置,当输入时钟变化时,内部逻辑根据不同PLL的锁定情况,选择合适的时钟作为工作时钟;

方法二,是利用FPGA开发厂商提供的PLL可重新配置宏(比如Altera的ALTPLL_RECONFIG宏模块),通过对其参数进行重新设定,然后,实时地重新配置PLL,使其在新的输入时钟下可以正常锁定和工作。

方法一的实现较为直观,但需要更多的PLL资源;方法二则通过对原来的PLL资源进行参数的重新配置,使其适应新的工作时钟,其实现较为复杂,但不需要额外的PLL资源。

FPGA内的PLL能否实时地实现重新配置,与该FPGA是否提供相关的可重新配置机制有关,具体请参考相应厂商的FPGA的使用手册。

本文档主要是以Altera公司的Stratix II系列的FPGA器件为例,介绍了其内嵌的增强型可重配置PLL在不同的输入时钟频率之间的动态适应,其目的是通过提供PLL的重配置功能,使得不需要对FPGA进行重新编程就可以通过软件手段完成PLL的重新配置,以重新锁定和正常工作。

Altera可重配置PLL使用手册

PLL原理与可重配置PLL

2.1 PLL结构与原理

锁相环(PLL,Phase Lock Loop)主要作用就是把内部/外部时钟的相位和频率同步于输入参考时钟。PLL一般由模拟电路所实现,其结构如图2-1所示。

输入时钟反馈时钟相位频率检测器(PDF)电荷泵和环路滤波器(CP&LF)压控振荡器输出时钟(VCO)

图2-1锁相环(PLL)结构

PLL工作的原理:PLL采用一个相位频率检测器(PFD)把参考输入时钟的上升沿和反馈时钟对齐。当PFD检测到输入时钟和反馈时钟边沿对其时,锁相环就锁定了。压控振荡器(VCO)通过自振输出一个时钟,同时反馈给输入端的频率相位检测器(PFD),PFD根据比较输入时钟和反馈时钟的相位来判断VCO输出的快慢,同时输出上升(Pump-up)或下降(Pump-down)信号,决定VCO是否需要以更高或更低的频率工作。PFD的输出施加在电荷泵(CP)和环路滤波器(LF),产生控制电压设置VCO的频率。如果PFD产生上升信号,然后VCO就会增加。反之,下降信号会降低VCO的频率。

PFD输出这些上升和下降信号给电荷泵(CP)。如果电荷泵收到上升信号,电流注入环路滤波器(ICP增大)。反之,如果收到下降信号,电流就会流出环路滤波器(ICP减小)。

环路滤波器把这些上升和下降信号转换为电压,作为VCO的偏置电压。环路滤波器还消除了电荷泵的干扰,防止电压过冲,这样就会最小化VCO的抖动。环滤波器的电压决定了VCO操作的速度。

2.2 可重配置PLL

Altera公司的Stratix II等系列的FPGA提供了可重配置的PLL,从而可以实时地对PLL进行重新配置,使其适应新的工作要求。通过Altera的Quartus II软件可以生成一个可重配置的PLL,如图2-2右边altpll模块所示;另外,生成一个重配置模块,如图2-2左边所示的altpll_reconfig模块,来对此PLL的具体参数进行实时配置。这两个用Quartus II工具生成的模块按照图2-2所示的方式进行连接,然后,图2-2左边所列的输入端口就可以提供给软件编程人员,由软件来实时地对进行重配置。比如,这组端口中时钟采用PCI接口的时钟,其他端口可以让FPGA以寄存器的方式通过PCI接口提供给上层软件编程,从而可以

第 2 页 共 52 页

Altera可重配置PLL使用手册

图2-2 错误!未找到引用源。Stratix II可重配置的PLL

让软件能实时地对PLL进行重配置,以适应不同的PLL应用环境。具体地,被设置成可写寄存器的端口有reconfig、read_param、write_param、data_in[8:0]、counter_type[3:0]、counter_param[2:0]和reset;设置成只读寄存器的端口有:busy和data_out[8:0]。

PLL的可配置信息被组织在一个称为扫描链(scan chain)的结构中,按特定顺序排列。

2.2.1 PLL的扫描链(Scanchain)

Stratix II系列FPGA内的增强型锁相环(EPLL,Enhanced PLLs)和快速锁相环(FPLL,Fast PLLs)提供了若干可用于锁相环实时配置的计数器,包括:

?

预缩放计数器(n)(Pre-scale counter(n))

反馈计数器(m)(Feedback counter(m))和相应的VCO相位间隙选择(VCO phase tap select(Фm))

?

?

后缩放计数器(C0-C5)(Post-scale counter(C0-C5))和相应的VCO相位间隙选择(VCO phase tap select, Фc0-c5)

?

快速地可动态调整电荷泵电流(Icp)和环路滤波器组件(包括环路滤波器电阻R和电容C),以满足PLL频带宽度(通带宽度,bandwidth)的要求。

这些可用于配置的计数器按照特定顺序组织在PLL的扫描链中。增强型锁相环(EPLL,Enhanced PLL)和快速锁相环(FPLL,Fast PLL)的扫描链长度是不同的。对于EPLL,其可配置的计数器总计有174位(bit0-bit173),其扫描链与具体的可配置计数器的关系如表2-1所示。FPLL的扫描链只有75位,因为FPLL的使用与EPLL类似,本文着重针对EPLL

第 3 页 共 52 页

Altera可重配置PLL使用手册

的使用进行介绍,有关FPLL的使用请参照附录。

表2-1 EPLL配置扫描链位图

EPLL扫描链位图 PLL组件 LSB MSB 0 1 2 3 电荷泵设置[3:0] 4 5 6 7 8 9 10 11 环路滤波器设置[11:4] 12 13 M相位移位设置 26 35 44 53 62 71 80 89 98 27 36 45 54 63 72 81 90 99 28 37 46 55 64 73 82 91 29 38 47 56 65 74 83 92 30 39 48 57 66 75 84 93 31 40 49 58 67 76 85 94 14 16 18 20 22 24 32 41 50 59 68 77 86 95 15 17 19 21 23 25 33 34 42 43 51 52 60 61 69 70 78 79 87 88 96 97 106 115 124 133 143 153 163 173 长度(bits) 4 8 2 2 2 2 2 2 2 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 9 1 9 1 9 1 9 1 174 100 101 102 103 104 105 112 113 114 107 108 109 110 111 116 117 118 119 120 121 122 123 125 126 127 128 129 130 131 132 134 135 136 137 138 139 140 141 142 144 145 146 147 148 149 150 151 152 154 155 156 157 158 159 160 161 162 164 165 166 167 168 169 170 171 172 C0计数器相位移位设置 C1计数器相位移位设置 C2计数器相位移位设置 C3计数器相位移位设置 C4计数器相位移位设置 C5计数器相位移位设置 C5计数器高脉冲计数 C5计数器旁路位 C5计数器低脉冲计数 C5计数器奇数划分位 C4计数器高脉冲计数 C4计数器旁路位 C4计数器低脉冲计数 C4计数器奇数划分位 C3计数器高脉冲计数 C3计数器旁路位 C3计数器低脉冲计数 C3计数器奇数划分位 C2计数器高脉冲计数 C2计数器旁路位 C2计数器低脉冲计数 C2计数器奇数划分位 C1计数器高脉冲计数 C1计数器旁路位 C1计数器低脉冲计数 C1计数器奇数划分位 C0计数器高脉冲计数 C0计数器旁路位 C0计数器低脉冲计数 C0计数器奇数划分位 M计数器nominal count M计数器旁路位 M计数器spread count M spread counter旁路位 N计数器nominal count N计数器旁路位 N计数器spread count N spread counter旁路位 扫描链长度 第 4 页 共 52 页

Altera可重配置PLL使用手册

一开始所提到的若干可用于锁相环实时配置的计数器与扫描链中的计数器的具体对应关系如下(用于增强型PLL的):

?

预缩放计数器(n)(Pre-scale counter(n))具体包括表2-1中提到的:n计数器nominal count、n计数器旁路位(n counter odd bit)、n计数器spread count和n spread counter旁路位。

?

反馈计数器(m)(Feedback counter(m))包括表2-1中提到的:m相位移位设置、m计数器nominal count、m计数器旁路位、m计数器spread count和m spread counter旁路位。

?

后缩放计数器(C0-C5)(Post-scale counter(C0-C5))包括表2-1中提到的:C0-C5计数器相位移位设置、C0-C5计数器高脉冲计数、C0-C5计数器旁路位、C0-C5计数器低脉冲计数和C0-C5计数器奇数划分位。即对应每个PLL的时钟输出端(C0-C5)都有一组可用于调整的计数器。

?

电荷泵和环路滤波器的用于调整的计数器包括表2-1中提到的:电荷泵设置[3:0]和环路滤波器设置[11:4]。环路滤波器中有6位([9:4])是用于环路滤波器的电阻(Rlf)设置,剩下的2位([11:10])用于环路滤波器的电容(Clf)设置。

通常所说的M、N计数器指的是M计数器nominal count和N计数器nominal count,或直接指整个反馈计数器(m)和预缩放计数器(n)。.

各个计数器的具体用处,将在下文中结合具体的例子进行详细的说明。

在用Quartus II工具的Tools选项下的“MegaWizard Plug-In Manager”生成可重配置的PLL时,会自动生成一个后缀为.mif文件(或.hex文件)(如图2-3所示的pll54.mif),此文件是一个扫描链的位图文件,包含了当前PLL配置的扫描链信息。可以根据这些信息,调整PLL的扫描链中相应的计数器,来达到调整PLL的目的。

图2-3 在用MegaWizard生成PLL时选择生成.mif文件

第 5 页 共 52 页


Altera可重配置PLL使用手册.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017—2018学年度第一学期幼儿园教育教学工作总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: