锁相环(PLL),以及Zynq上的PS,PL交互
PLL,全称Phase lock loop,锁相环。我主要就介绍一下它是什么以及它是如何工作的。
为什么用
常见的时钟电路是晶振,时钟芯片,电阻电容等器件构成,但芯片的时钟也可以由内部振荡器产生,他的输出信号频率可以到很快的速度,相对的,时钟周期就显得不太稳定了。晶振为核心的时钟电路输出的信号频率相对稳定,但频率只能是在兆赫兹的量级。PLL利用外部晶振作为参考时钟,输出一个周期稳定的高频率的时钟(做后端的一定对PLL不陌生)
最基本的PLL构成如下:它有一个最主要的元件——压控振荡器VCO,VCO的振荡频率是随着输入电压变化的,它的输出就是整个PLL的输出,也就是我们最终拿到的时钟。而VCO的输出也会由一个反馈电路接回PLL,经过除频电路(净化信号用的)得到一个与外部晶振频率差不多的时钟信号,比较相位,如果晶振快便降低VCO电压,反之升高,根据输入晶振反馈调整VCO的输出,从而得到稳定的高频时钟信号。除此之外,需要有一个电荷泵调整VCO的输入,而VCO的输入也需要滤掉谐波,如果不过滤的话反映到最终时钟上就是时钟抖动了(图3中的鉴频鉴相器将+IN端的FREF输入与和-IN端的反馈信号进行比较。它使用两个D型触发器和一个延迟元件。一路Q输出使能正电流源,另一路Q输出使能负电流源。这些电流源就是所谓电荷泵。使用这种架构,下面+IN端的输入频率高于-IN端(图4),电荷泵输出会推高电流,其在PLL低通滤波器中积分后,会使VCO调谐电压上升。这样,-IN频率将随着VCO频率的提高而提高,两个PFD输入最终会收敛或锁定到相同频率(图5)。如果-IN频率高于+IN频率,则发生相反的情况。)
举个应用方面的例子,xilinx家的zynq。Zynq SoC 令人兴奋的方面是创建一个使用 Zynq 可编程逻辑 (PL) 的应用程序。使用 PL 将任务从 PS 加载到 PL 端,为其他任务回收处理器带宽从而加速任务。此外,PS 端可以控制 PL 端在经典的片上系统应用中执行的操作。使用 Zynq SoC 的 PL 端可以提高系统性能、降低功耗并为实时事件提供可预测的延迟。
如何体现PS对PL的控制呢,欸嘿
时钟电路,将时钟输入到PS(Processing system)(如图),经过PS内部的锁相环净化,调整,输入到PL(Programming logic)。
----------------------------------PLL的原理图---------------------------------------
(图一二是PLL基本配置,图三鉴频鉴相器)
#FPGA##模拟电路#