1.1概述

PLL 的英文全称是 Phase Locked Loop,即锁相环,是一种反馈控制电路。PLL 对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比的功能。Xilinx 7 系列器件中的时钟资源包含了时钟管理单元 CMT,每个 CMT 由一个 MMCM 和一个 PLL 组成。对于一个简单的设计来说,FPGA 整个系统使用一个时钟或者通过编写代码的方式对时钟进行分频是可以完成的,但是对于稍微复杂一点的系统来说,系统中往往需要使用多个时钟和时钟相位的偏移,且通过编写代码输出的时钟无法实现时钟的倍频,因此学习 Xilinx MMCM/PLL IP 核的使用方法是我们学习 FPGA 的一个重要内容。本章我们将通过一个简单的例程来向大家介绍一下 MMCM/PLL IP 核的使用方法。

1.2MMCM/PLL IP 核 简介

锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。
锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。
Xilinx 7 系列器件中具有时钟管理单元 CMT 时钟资源,xc7z020 芯片内部有 4 个 CMT,xc7z010 芯片内部有 2 个 CMT,为设备提供强大的系统时钟管理以及高速 I/O 通信的能力。时钟管理单元 CMT 的总体框图如下图所示。
MMCM/PLL
MMCM/PLL 的参考时钟输入可以是 IBUFG(CC)即具有时钟能力的 IO 输入、区域时钟 BUFR、全局时钟 BUFG、GT 收发器输出时钟、行时钟 BUFH 以及本地布线(不推荐使用本地布线来驱动时钟资源)。在最多的情况下,MMCM/PLL 的参考时钟输入都是来自 IBUFG(CC)即具有时钟能力的 IO 输入,本实验也是如此。MMCM/PLL 的输出可以驱动全局时钟 BUFG 和行时钟 BUFH 等等。BUFG 能够驱动整个器件内部的PL 侧通用逻辑的所有时序单元的时钟端口。BUFG/BUFH/CMT 在一个时钟区域内的连接框图如下图所示。
MMCM/PLL
MMCM/PLL
MMCM/PLL
其中 MMCM 的功能是 PLL 的超集,其具有比 PLL 更强大的相移功能。MMCM 主要用于驱动器件逻辑(CLB、DSP、RAM 等)的时钟。PLL 主要用于为内存接口生成所需的时钟信号,但也具有与器件逻辑的连接,因此如果需要额外的功能,它们可以用作额外的时钟资源。
PLL 由以下几部分组成:前置分频计数器(D 计数器)、相位-频率检测器(PFD,Phase-Frequency Detector)电路,电荷泵(Charge Pump)、环路滤波器(Loop Filter)、压控振荡器(VCO,Voltage Controlled Oscillator)、
反馈乘法器计数器(M 计数器)和后置分频计数器(O1-O6 计数器)。
在工作时,PFD 检测其参考频率(F REF )和反馈信号(Feedback)之间的相位差和频率差,控制电荷泵和环路滤波器将相位差转换为控制电压;VCO 根据不同的控制电压产生不同的震荡频率,从而影响 Feedback信号的相位和频率。在 F REF 和 Feedback 信号具有相同的相位和频率之后,就认为 PLL 处于锁相的状态。
在反馈路径中插入M计数器会使VCO的震荡频率是F REF 信号频率的M倍,F REF 信号等于输入时钟(FIN )除以预缩放计数器(D)。参考频率用以下方程描述:FREF = F IN /D,VCO 输出频率为 F VCO = F IN *M/D,PLL的输出频率为 F OUT =(F IN M)/(NO)。
Xilinx 提供了用于实现时钟功能的 IP 核 Clocking Wizard,该 IP 核能够根据用户的时钟需求自动配置器件内部的 CMT 及时钟资源,以实现用户的时钟需求。在这里我们主要讲解的是如何使用该 IP 核,有关该IP 核的更详细介绍,读者可以参阅 Xilinx 官方的手册文档“PG065,Clocking Wizard v6.0 LogiCORE IP Product Guide”。

IP核使用

MMCM/PLL
MMCM/PLL
MMCM/PLL
MMCM/PLL
MMCM/PLL
MMCM/PLL
MMCM/PLL

相关文章: