Altera的PLL包括其他的核用的时候并没有深究细节设置,有点像傻瓜配置一样,拿来即用。新近一个关于用FPGA实现TDC的项目不得不让我去深究ALTERA的PLL,慢慢地扒吧,希望扒完后能对PLL有不同的理解,前面有篇从ALTERA官方网站扒来关于PLL的basic介绍的E文,基本解释了什么PLL的问题。
1. Determine the PLL Lock Range
PLL的user guide上有这么一节,意思是PLL的输入有个锁定范围。应该是当你对PLL的参数设定以后QuartusII软件编译完之后会给出这样的配置PLL的输入范围,具体数值可以从编译报告里查到(图1).也就是说如果不更改配置的情况下,改变PLL的输入频率有可能导致PLL失锁的。
2. Expand thePLL Lock Range
扩展PLL的锁定频率范围。我在想什么样的应用需要不断的更改输入时钟频率且又不能更改PLL的设置后重新编译工程呢?:)。比如图1是我在设置输入频率为100Mhz时得到PLL的锁定范围,也就是说当输入时钟小于95MHz或者大于168Mhz的时候会有问题。user guide上介绍了一个扩展此范围的方法,比较繁杂这里不详细介绍,查user guide可以找到(主要是俺觉得没什么必要吧,除非编译完了以后你发现你的输入频率非常接近某个临近值,这时候确实需要扩展,因为时钟比较存在jitter和drift的)。
3. Phase Shift
PLL的输出相位可以指定,最小相移是八分之一个VCO周期。
4. Advance Features
PLL有些高级属性只在高端的片子里才有,注意阅读器件手册,这里只列出有哪些高级属性:gated lock, clock switchover, spread spectrum clocking, and post-scale counter cascading.
5. Programmable Bandwidth
我单独列出这个高级属性,是因为user guide里关于PLL的bandwidth的定义,即“The PLL bandwidth is defined as the ability of the PLL to track the input clock and jitter.” 我一直在查找ALTERA的PLL的输出(我指的PLL的core output)的jitter,手册给出的似乎只是PLL的输出到FPGA外部的jitter,如图2所示。
其实这些参数都是相互作用而产生的配置,比如带宽如果用户不指定,那么编译器当然会自动生成一个合适带宽,如果客户体制一个合适的带宽,那么编译器肯定会通过调整其他参数以期能正确配置这个带宽值。图3显示如何指定PLL的带宽,更高级的设置还有在图3右边的4项。
图3中,默认设置应该是Auto,编译完后的编译报告里有详细的带宽、Preset以及右边四项参数的报告值。Preset有“高”,“中”和“低”的选择。注意一下描述对jitter的影响:
Low - PLL with a low bandwidth has better jitter rejection but a slower lock time.
High - PLL with a high bandwidth has a faster lock time but tracks more jitter.
Medium - A medium bandwith offers a balance between lock time and jitter rejection.
6. Dynamic Phase Configuration
前面有提到普通PLL的输出相移最小步进是1/8 VCO周期,一般VCO的范围是500MHz到1600Mhz。所以当VCO为500MHz的时候,相移的最小步进为250ps,当需要步进更小的相移怎么办呢?ALTERA从40nm以后的器件PLL支持一直动态相位配置的高级属性,似乎能提供几个ps的相移。
文章评论(0条评论)
登录后参与讨论