第六课 IP核PLL/MMCM

本文介绍了锁相环(PLL)和MMCM在XilinxFPGA中的作用,特别是如何利用ClockingWizardIP核生成不同频率和相位的时钟。实验任务涉及在Zynq开发板上实现多频率时钟并进行Vivado仿真。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 原理:锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相 位。在 最多的情况下,MMCM/PLL 的参考时钟输入都是来自 IBUFG(CC)即具有时钟能力的 IO 输入。MMCM/PLL 的输出可以驱动全局时钟 BUFG 和行时钟 BUFH 等等。BUFG 能够驱动整个器件内部的PL 侧通用逻辑的所有时序单元的时钟端口。

在本实验中,读者可以简单地理解为:外部时钟连接到具有时钟能力的输入引脚 CCIO(Clock-Capable Input),进入 MMCM/PLL,产生不同频率和不同相位的时钟信号,然后驱动全局时钟资源 BUFG。(有关 Xilinx 时钟资源和 CMT 的更详细信息, 读者后期可以花一些时间和精力去学习一下 Xilinx 官方的手册文档“UG472,7 Series FPGAs Clocking Resources User Guide”里的介绍。 )

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 检测其参考频率(FREF)和反馈信号(Feedback)之间的相位差和频率差,控制电荷泵 和环路滤波器将相位差转换为控制电压;VCO 根据不同的控制电压产生不同的震荡频率,从而影响 Feedback信号的相位和频率。在 FREF 和 Feedback 信号具有相同的相位和频率之后,就认为 PLL 处于锁相的状态。在反馈路径中插入M计数器会使VCO的震荡频率是FREF信号频率的M倍,FREF信号等于输入时钟(FIN) 除以预缩放计数器(D)。参考频率用以下方程描述:FREF= FIN/D,VCO 输出频率为 FVCO= FIN*M/D,PLL的输出频率为 FOUT=(FIN*M)/(N*O)。 Xilinx 提供了用于实现时钟功能的 IP 核 Clocking Wizard,该 IP 核能够根据用户的时钟需求自动配置器 件内部的 CMT 及时钟资源,以实现用户的时钟需求。在这里我们主要讲解的是如何使用该 IP 核,有关该IP 核的更详细介绍,读者可以参阅 Xilinx 官方的手册文档“PG065,Clocking Wizard v6.0 LogiCORE IP Product Guide”。

实验任务:本节实验任务是使用 Zynq 开发板输出 4 个不同时钟频率或相位的时钟,并在 Vivado 中进行仿真以验 证结果,最后生成比特流文件并将下载到开发板上,使用示波器来测量时钟的频率。

二 程序设计

创建IP核,

例化sys_rst_n低电平有效,模板中为高电平有效,所以取反。输入时钟为sys_clk.

注意:用modlesim进行仿真会出现错误,模板中没有定义ip_clk_wiz。原因是modelsim不能识别xlinx原语。解决办法:使用vivado仿真或者 modelsim和vivado联合仿真。

三 联合仿真

<think>好的,我现在要帮助用户了解如何正确配置Vivado中的MIPI CSI-2 IP。首先,我需要回顾一下用户提供的引用内容,确保回答准确。 根据引用[3],Vivado中配置MIPI CSI-2 Rx Subsystem IP时,主要需要注意时钟配置的选择。第二个选项卡涉及IP时钟资源的来源,有两个选项:内部生成或使用其他MIPI RX IP提供的时钟。Master模式会内部生成时钟并消耗PLL/MMCM资源,而Slave模式则使用外部时钟,节省资源。此外,用户可能需要配置通道数量、数据速率和物理层参数,这些信息在引用[2]中提到的系统架构和物理层设计有关。引用[1]提到CSI-2支持4通道和单线1Gb/s的速度,这也可能影响配置时的参数设置。 接下来,我需要将配置步骤结构化。首先,添加IP到工程中,然后依次配置各个选项卡。物理层设置包括通道数和数据速率,协议层设置检查数据格式,时钟配置选择Master或Slave模式,最后生成输出产品和约束文件。同时,要提醒用户注意通道数匹配、时钟模式选择以及约束文件的正确性,如引用[3]中提到的时钟资源共享问题。 用户可能需要的问题包括时钟模式选择的影响,如何确定通道数量,以及约束文件的具体要求。这些问题需要结合引用内容中的信息来回答,比如通道数由传感器决定,约束文件需参考文档等。确保每个步骤都引用正确的来源,例如引用[2]中的系统架构和引用[3]中的时钟配置说明。 最后,检查是否有遗漏的配置要点,例如物理层D-PHY的配置是否还有其他参数,或者是否有常见错误需要避免。确保回答清晰,步骤明确,并且引用了提供的资料来增强可信度。</think>### Vivado中MIPI CSI-2 IP配置方法教程 #### 1. **IP添加与基本设置** - **步骤1**:在Vivado Block Design中,通过IP Catalog搜索并添加`MIPI CSI-2 RX Subsystem` IP[^2]。 - **步骤2**:在**Basic Configuration**选项卡中设置: - **Lane Count**:根据传感器输出通道数选择(如1/2/4通道)[^1]。 - **Data Type**:选择传感器输出的像素格式(如RAW10/YUV422等)。 - **Enable CRC Check**:建议启用以校验数据完整性。 #### 2. **物理层(D-PHY)配置** - **步骤3**:进入**D-PHY Configuration**选项卡: - **Line Rate**:设置与传感器匹配的传输速率(如1.5 Gb/s),需满足MIPI CSI-2规范[^1]。 - **Settling Time**:根据传感器手册调整D-PHY初始化时间。 - **High Speed Term Enable**:通常保持默认(启用高速终端电阻)。 #### 3. **时钟模式选择** - **步骤4**:在**Clock Configuration**选项卡中选择时钟来源: - **Master Mode**:IP内部生成时钟(消耗PLL/MMCM资源),适用于单IP场景[^3]。 - **Slave Mode**:使用其他MIPI IP提供的时钟,节省资源但需同步多个IP[^3]。 - **参考时钟频率**:需与传感器输出时钟一致(例如200 MHz)。 #### 4. **协议层与接口设置** - **步骤5**:在**Protocol Configuration**选项卡中: - **Virtual Channel**:配置虚拟通道数量(默认0-3)。 - **AXI4-Stream Data Width**:通常设置为32位以优化吞吐量[^2]。 - **TUSER Width**:根据视频时序参数调整(如1位帧起始标记)。 #### 5. **生成输出与约束文件** - **步骤6**:生成IP后,自动生成XDC约束文件,需手动检查: - 差分时钟引脚对(如`mipi_phy_clk_p/n`)的LVDS电平类型。 - 数据通道的引脚分配与PCB设计一致(如`mipi_phy_data_p/n[0..3]`)。 - **示例约束片段**: ```tcl set_property DIFF_TERM_ADV TERM_100 [get_ports mipi_phy_clk_p] set_property PACKAGE_PIN K12 [get_ports mipi_phy_data_p0] ``` #### 6. **验证与调试** - **ILA集成**:建议插入ILA监控AXI Stream信号(如`tvalid`、`tdata`)。 - **Sensor同步测试**:通过寄存器配置验证传感器与IP的时钟同步状态。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值