IP核学习之PLL锁相环
IP核是什么
IP核就是知识产权核或知识产权模块的意思,在EDA技术开发中具有十分重要的地位。美国著名的Dataquest咨询公司将半导体产业的IP定义为“用于ASIC或FPGA中的预先设计好的电路功能模块”。所以,IP核(Intellectual Property core)可以说是是一段具有特定电路功能的硬件描述语言程序。分为软核、固核和硬核。分别代表行为级的描述、结构级的描述和硬件级的描述。以下的PLL应该是结构级的,可独立综合的。
Xilinx7 系列 "clocking resource "
Artix-7芯片是xcqa35t,包含5个CMT。而每个CMT都包含一个PLL和一个MMCM。PLL和MMCM类似,唯一区别就是MMCM是可动态调整相位的,需要用到数字电路,而PLL是模拟的。
那么,PLL是什么呢?
PLL:利用外部输入的参考信号来控制环路内部震荡信号的频率和相位。
如图所示,PLL由 以下几部分组成:前置分频计数器( D计数器 、 相位 频率 检测器 PFD Phase Frequency Detector电路 、 电荷 泵( Charge Pump 、环路滤波器( Loop Filter) 、 压控振荡器( VCO Voltage Controlled Oscillator)、反馈乘法器计数器 (M计数器) 和 后置分频计数器(O1-O6计数器) 。
在工作时, PFD检测其参考频率( FREF)和反馈信号( Feedback 之间的相位差和频率差,控制电荷泵和环路滤波器将相位差转换为控制 电压;VCO根据不同 的控制电压产生不同的震荡频率, 从而影响 Feedback信号的相位和频率。 在 FREF和 Feedback信号 具有相同的相位和频率之后 就认为 PLL处于 锁相的状态。在反馈路径中插入 M计数器会使 VCO的 震荡频率FREF信号频率 的 M倍 , FREF信号等于输入时钟( FIN除以预缩放计数器 D)。参考频率用以下方程描述 FREF= FIN * M/D , VCO输出频率为 FVCO= FIN*M/D, PLL的 输出频率为( FIN * M) / (N * O)。
Xilinx提供了用于实现时钟功能的 IP核 Clocking Wizard,该 IP核能够根据用户的时钟需求自动配置器件内部的 CMT,以实现用户的时钟需求。接下来主要讲解的是如何使用该 IP核。
本次实验的参考时钟输入来自CC,即具有时钟输入能力的IO输入,从而驱动全局时钟。想要了解更多关于时钟资源的知识可以参考Xilinx的官方参考文档。
IP核实验
- 实验任务:
实验任务是 使用达芬奇开发板 输出 4个不同时钟频率或相位的时钟, 并在 Vivado中进行仿真以验证结果,最后生成比特流文件并将下载到开发板上,使用示波器来测量时钟的频率。 - IP核的配置
新建一个Vivado工程,命名为ip_clk_wiz_try,芯片型号选择Artix-7,封装fgg484,速度-2,逻辑资源3.5w。具体流程如下思维导图。
注:在robei能实现顶层模块设计,但实现不了ip核的仿真。
robei上实现ip核的约束和端口定义。(顶层模块设计)