FPGA时钟IP核

Vivado MMCM和PLL的区别 新人不想看,老人用不到系列. 全局时钟和区域时钟的区别! 全局时钟(BUFG)和区域时钟(BUFR)的区别 : 全居可以对所有IO口提供驱动时钟,区域只能对一片区域提共时钟. PLL和MMCM区别 :最大的区别MMCM可以实现动态调整,PLL没有办法实现动态雕整. 在杂程序设计时候将时钟进入PLL或MMCM,多少Mhz进多少Mhz出,这样可以让时钟更加稳定. 文章目录 全局时钟和区域时钟的区别! 原理图介绍 IP核设置 总结 这个是一张赛灵思7系列FPGA的时钟分布图 : BUFG ... 阅读详情
时钟IP核

对输入的时钟进行时钟分频、倍频、相位偏移

MMCM( 混合模式时钟管理 )和PLL(锁相环)内部的时钟资源

  • PLL 的全称是Phase Locked Loop , 锁相环,反馈控制电路

    PLL对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比的功能。

  • 时钟资源包含时钟管理单元CMT, 每个CMT由一个MMCM和一个PLL组成

MMCM mixed-mode clock manager 混合模式时钟管理

PLL( phase locked loop ) 锁相环

时钟资源简介

7系列的FPGA使用了专用的全局和区域时钟资源来管理和设计不同的时钟需求

  • 全局时钟:专用的互联网络,降低时钟的偏斜,占空比的失真和功耗 --> 资源有限

    专用的时钟缓冲、驱动结构,延时低

  • 区域时钟:只能驱动区域内部的逻辑资源和IO口

Clock Management Tiles (CMT) 提供了时钟合成(Clock frequency synthesis ),倾斜矫正(deskew), 过滤抖动(jitter filtering) 功能

一个CMT包 1个MMCM 1个PLL

整体时钟资源视图

在这里插入图片描述

  • Clock Region 区域时钟

  • Clock Backbone 全局时钟线主干道

    将FPGA分成左右两个部分,所有的全局时钟布线都要从Clock Backbone经过

  • BUFG 全局时钟缓存

  • HROW: 水平时钟线

    水平方向贯穿每个时钟区域的中心部分

  • CMT Backbone CMT主干道

  • I/O Column 时钟的输入引脚

  • GT Column 串行时钟收发器

划分成几个不同的时钟区域,每个区域可以单独工作,也可以通过时钟主干道统一工作

单个时钟域视图

在这里插入图片描述

  • BUFG: 全局时钟缓冲器, BUFG的时钟输出可以经过Clock Backbone 到达任何一个区域,而且可以通过HROW到达每个区域内部的逻辑单元

  • BUFH : 水平时钟缓冲器,功能受限的BUFG,仅能在左右相邻的时钟区域

  • BUFIO: IO时钟缓冲器

  • BUFR: 区域时钟缓冲器,输出的时钟,仅能作用于本时钟区域

  • BUFMR: 多区域时钟缓冲器

  • CC 时钟专用引脚

  • MMCM: 混合模式时钟管理器

  • PLL: 锁相环

时钟引脚:SRCC, MRCC 专用时钟引脚

  • SRCC : 仅作用于本时钟区域

  • MRCC : 作用于本时钟区域和相邻时钟区域

_P、_N 差分信号

MMCM / PLL IP核
PLL

锁相环是一种反馈控制电路,利用外部输入的参考信号控制环路内部震荡信号的频率和相位。

锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路

锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。

PLL主要用于为内存接口生成所需的时钟信号,也具有与器件逻辑的连接
在这里插入图片描述

PLL由以下几个部分组成

  • 前置分频计数器(D计数器)
  • 相位-频率检测器(PFD, Phase-Frequency Detector)电路
  • 电荷泵(Charge Pump)
  • 环路滤波器( Loop Filter )
  • 压控振荡器( VCO,Voltage Controlled Oscillator )
  • 反馈乘法器计数器( M计数器 )
  • 后置分频计数器( O1-O6计数器 )

工作过程

  1. PFD 检测其参考频率(FREF)和反馈信号(Feedback)之间的相位差和频率差,控制电荷泵和环路滤波器将相位差转换为控制电压

  2. VCO 根据不同的控制电压产生不同的震荡频率,从而影响 Feedback 信号的相位和频率

  3. 在 FREF和 Feedback 信号具有相同的相位和频率之后,就认为 PLL 处于锁相的状态。

  4. 在反馈路径中插入M计数器会使VCO的震荡频率是FREF信号频率的M倍

    FREF信号等于输入时钟(FIN) 除以预缩放计数器(D)

    参考频率用以下方程描述:FREF= FIN/D

    VCO 输出频率为 FVCO= FIN*M/D

    PLL 的输出频率为 FOUT=(FIN*M)/(D*O)

MMCM

MMCM 的功能是PLL的超集,具有比PLL更强大的相移功能。

MMCM主要用于驱动器件逻辑(CLB, DSP, RAM 等 )的时钟

CMT

包含一个PLL 和一个MMCM
在这里插入图片描述

输入:

  • IBUFG(CC) 具有时钟能力的IO输入 CCIO --> Clock Capable Input
  • 区域时钟BUFR
  • 全局时钟BUFG
  • GT收发器输出时钟
  • 行时钟BUFH
  • 本地布线(不推荐使用本地布线来驱动时钟资源)

输出:

  • 驱动全局时钟的BUFG
  • 驱动全局时钟的BUFH

BUFG能够驱动整个器件内部的PL侧通用逻辑的所有时序单元的时钟端口。

Clocking Wizard配置

使用时钟向导(Clocking Wizard)配置时钟IP核

IP核框图:

在这里插入图片描述

  • clk_in 输入时钟,可以从专用时钟引脚输入

  • locked信号,从 0 变为1 ,表示输出的时钟达到稳定

配置过程

步骤1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wbP9p5Ue-1669353664855)(https://gitee.com/wangchaosun/picgo/raw/master/image-20221125115305548.png)]

步骤2

在这里插入图片描述

  • Clock Monitor 时钟监控: 一般不勾选
  • MMCM、PLL MMCM的功能比PLL强大,根据需求选择
  • Clocking Features
    • Frequency Synthesis 频率合成 --> 输出不同频率时钟
    • Phase Aligment 相位矫正
    • Minimize Power 低功耗,时钟精度会降低
  • Jitter Optimization 抖动设置
    • 默认平衡模式

步骤3

在这里插入图片描述

  • 输入时钟设置

步骤4

在这里插入图片描述

  • 输出时钟设置

步骤5

在这里插入图片描述

  • 输入输出引脚设置

步骤6
在这里插入图片描述

  • 端口重命名

步骤7

在这里插入图片描述

  • 默认

步骤8

在这里插入图片描述

使用IP核
verilog
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Engineer: wkk
// Create Date: 2022/11/25 12:53:36
// Module Name: clock_ip
//////////////////////////////////////////////////////////////////////////////////
module clock_ip(
    input       sys_clk,
    input       sys_rst_n,
    output      clk_50m,
    output      clk_25m,
    output      clk_ip_locked
);

clk_clock_ip u_clk_clock_ip(
    .clk_out1   (clk_50m),
    .clk_out2   (clk_25m),            
    .reset      (~sys_rst_n), 
    .locked     (clk_ip_locked),
    .clk_in1    (sys_clk)
);
endmodule
testbench
`timescale 1ns / 1ns
//////////////////////////////////////////////////////////////////////////////////
// Engineer:  wkk
// Module Name: clock_ip_tb
//////////////////////////////////////////////////////////////////////////////////

module clock_ip_tb();
reg     sys_clk         ;
reg     sys_rst_n       ;
wire    clk_50m         ;
wire    clk_25m         ;
wire    clk_ip_locked   ;
    
clock_ip u_clock_ip(  
    .sys_clk        (sys_clk      ),       
    .sys_rst_n      (sys_rst_n    ),     
    .clk_50m        (clk_50m      ),       
    .clk_25m        (clk_25m      ),       
    .clk_ip_locked  (clk_ip_locked)
); 

initial begin
    sys_clk = 0;
    sys_rst_n = 0;
end

always #5 sys_clk = ~sys_clk;

initial begin
    #10
    sys_rst_n = 1;
    #200
    $stop;
end
endmodule

在这里插入图片描述

参考

正点原子《启明星 ZYNQ 之 FPGA 开发指南 V2.0》

xc7vx690tffg1927调试DDR3遇到MMCM的LOCKED信号不稳定 xc7vx690tffg1927调试DDR3遇到MMCM的LOCKED信号不稳定 连续搞了一周发现DDR3初始化不成功,忽高忽低,又由于前期有同事说,板子和程序没有任何问题,一直很稳定,所以不会怀疑硬件问题,调试的PL侧扩展的DDR, 整体工程描述: 直接使用DDR控制器的IP核,对应着使用的DDR进行配置,IP的时钟来之外部参考差分时种,经过MMCM IP提供给DDR。 初始化init_ca... 阅读详情

相关推荐

基于FPGA的时钟IP核介绍

时钟IP核介绍 一、时钟IP核(MMCM PLL)简介。 一般简单的代码只能用于时钟的分频,而对于倍频却无法实现。本次小编主要介绍一下时钟IP核(PLL和MMCM)的简单使用,实现频率的倍频、分频、相位动态调整等。 在Xilinx的FPGA中,CMT包含PLL和MMCM。 PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 MMCM(混合模式时钟管理):是基于PLL的新型混合模式时钟管理器,实现了最

Blanb的博客 2301

MMCM与PLL的区别

锁相环是一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。 锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。 Xilinx 7 系列器件中具有时钟管理单元 CMT 时钟资源,xc7z020 芯片内部有4个 CMT,xc7z010 芯片内部有2个 CMT。时钟管理单元 CMT 的总体

FPGA_张文奎的博客 3289

FPGA中级项目3——IP核之时钟管理单元

详细讲解IP核之时钟管理单元CMU,包括CMT,锁相环PPL和MMCM等。同时在vivado中如何根据项目来配置该IP核

m0_67400176的博客 1842

MMCM和PLL

总之,PLL主要用于基本的时钟生成和同步任务,而MMCM则提供了更高级的时钟管理功能,适用于需要精确时序控制和复杂时钟调整的应用场景,特别是在FPGA设计中常见。

hyl999的专栏 2341

ise的时钟ip核_Xilinx FPGA器件中时钟资源的说明以及使用

xilinx 时钟资源分为两种:全局时钟和第二全局时钟。一、全局时钟资源Xilinx 全局时钟采用全铜工艺实现,并设计了专用时钟缓冲与驱动结构,可以到达芯片内部任何一个逻辑单元,包括CLB、I/O引脚、内嵌RAM、硬核乘法器等,而且时延和抖动都很小。对FPGA设计而言,全局时钟是最简单最可预测的时钟,最好的时钟方案是:由专用的全局时钟输入引脚驱动单个全局时钟,并用后者去控制设计中的每个触发器。全局...

weixin_39768444的博客 1452

征战FPGA之使用IP核dds_compiler获取任意频率时钟和正余弦波形

一、前言 上一篇博客中介绍了使用IP核clk_wiz生成任意频率的时钟,但涉及到低频率时钟时采用分频方法有点麻烦,现采用IP核dds_compiler来获取任意频率的时钟而不需要进行分频。DDS(Direct Digital Synthesis,直接数字频率合成)一般用于产生各种频率的波形,包括正弦波、余弦波和三角波等,也可以产生任意频率的时钟,而且频率误差在10Hz以内,本篇文章讲解产生115200的时钟频率(实测频率为115207,误差为7Hz)和9600的时钟频率(实测频率为9600Hz,误差为0)。

weixin_42621475的博客 6139

MMCM IP核的使用:FPGA时钟管理利器

在FPGA设计中,时钟管理是一个至关重要的部分。随着设计的复杂度增加,如何高效且稳定地管理多个时钟域,成为了每个FPGA工程师需要面对的挑战。Xilinx FPGA提供了多个时钟管理组件,其中 MMCM(Mixed-Mode Clock Manager) IP核是最常用的一种,旨在为FPGA设计提供灵活且高效的时钟生成、分频、倍频等功能。本文将详细介绍如何使用MMCM IP核,包含MMCM的功能、配置、应用场景及其具体使用方法,帮助你在FPGA设计中实现高效的时钟管理。

qq_42739117的博客 2487

FPGA时钟管理利器:深入解析PLL锁相环的IP核设计

本文深入解析FPGA中PLL锁相环IP核的设计与应用,探讨时钟信号管理的核心挑战与解决方案。通过实际案例展示PLL在倍频、分频和相位调整中的高级技巧,帮助开发者优化FPGA时钟设计,提升系统稳定性和性能。

weixin_29207533的博客 373

征战FPGA之使用clk_wiz的IP核获取任意频率时钟

一、前言 clk时钟在FPGA开发中具有举足轻重的作用,不管是串口UART,HDMI还是对各种视频编码芯片的驱动等都用到了clk。最近也在学习FPGA的跨时钟域,因此想着先学习一下FPGA的时钟生成。采用IP核clk_wiz可以直接生成的时钟频率范围最大可到4.687MHz-800MHz,而无法直接生成低频率的时钟,为了解决这个问题,可采用时钟分频的方法间接生成。例如,串口用的最多的一个频率是115200,此时可将该频率倍频至clk_wiz可生成的时钟频率范围内,这里取11.52MHz,然后再对该频率进行一

weixin_42621475的博客 1万+

FPGA中的PLL与MMCM有何区别?

FPGA中的PLL与MMCM有何区别?FPGA(Field-Programmable Gate Array)是一种灵活可编程的数字电路板,可以被重新配置成不同的电路。为了满足不同的应用需求,在FPGA中经常需要使用时钟,而时钟的稳定性和准确性非常重要。PLL(Phase-Locked Loop)和MMCM(Mixed-Mode Clock Manager)是两种常见的时钟管理器,它们能够为FPGA提供高质量、低抖动的时钟信号。

持续更新 1359

Vivado 时钟IP核主时钟约束技巧 FPGA

Vivado是Xilinx公司提供的一款强大的FPGA设计工具,其中包含了丰富的时钟IP核,可以方便地生成和管理时钟资源。使用Vivado时钟分析工具:Vivado提供了强大的时钟分析工具,可以帮助我们分析和验证时钟的性能。总结起来,Vivado提供了丰富的时钟IP核和约束工具,可以方便地实现主时钟约束。在这个例子中,我们首先创建了一个名为clk_i的输入时钟,并指定了其时钟周期为10个时钟周期。通过上述技巧,我们可以有效地约束FPGA设计中的主时钟,并确保设计的稳定性和性能。

DevSavantX的博客 721

FPGA-时钟IP核

FPGA-时钟IP核的使用

2301_78985220的博客 169

利用FPGA中的PLL IP核产生用户时钟

当然,在实际设计中还需要注意保持良好的时钟布线和工程实践,以确保产生的用户时钟能够正常驱动目标逻辑元件。为了满足这一需求,FPGA芯片中通常集成了PLL(锁相环)模块,该模块可以根据输入参考时钟产生稳定且频率可调的输出用户时钟。以下是一个简单的示例,说明了如何使用Xilinx Vivado设计工具中的PLL IP核来产生用户时钟。在FPGA(现场可编程门阵列)设计中,时钟是同步所有逻辑元件操作的基准信号,因此准确、稳定的时钟信号对于保证系统的正确功能非常重要。利用FPGA中的PLL IP核产生用户时钟。

与其临渊羡鱼,不如退而结网 556

ZYNQ学习记录FPGA(四)时钟IP核 MMCM/PLL Clocking wizard

本文介绍了 ZYNQ7 FPGA 时钟资源的配置与管理,为 FPGA 时钟设计提供了实用的参考。介绍了 ZYNQ7 系列 FPGA 的时钟资源管理。全局时钟(Global Clock)用于驱动整个 FPGA 的高速逻辑,区域时钟(Regional Clock)则用于局部区域,具有更灵活的资源分配。文中详细说明了不同的时钟缓冲器(如 BUFG、BUFH、BUFR)及其用途,展示了时钟信号的分发路径。介绍了时钟管理模块 CMT,包括 MMCM 和 PLL,用于时钟倍频和抖动过滤。

2404_89853580的博客 1243

FPGA原理与结构(15)——时钟IP核原理学习

在本文中我们对于xilinx系列的FPGA所提供的时钟IP核:Clocking Wizard v6.0 IP核进行了简单的介绍,然后对于FPGA中时钟的CMT结构进行了解读,介绍了MMCM和PLL的作用与区别,最后介绍了一些MMCM和PLL的使用示例

apple_53311083的博客 4562

FPGA原理与结构(16)——时钟IP核的使用与测试

本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程,主要介绍各个界面参数的不同含义和配置方法

apple_53311083的博客 7976

【FPGA 开发分享】如何在 Vivado 中使用 PLL IP 核生成多路时钟

点击 Generate Bitstream,生成 Bitstream 文件,然后点击 Program Device,选择刚才生成的 Bitstream 文件,点击 Program,现在 FPGA 已经烧录完成,PLL IP 核也在 FPGA 上运行了。因此,一个 FPGA SoC 中 PLL 的数量,往往可以作为衡量其能力的一个重要指标。此外,从框图还能看到,如果要使用 PLL 的输出引脚,必须接入 Buffer G(全局时钟缓冲器) 或 Buffer H(水平时钟缓冲器),否则时钟信号无法被正确分发。

ALINX技术博客 1517

Mac电脑用Latex论文排版3天速成5天实战de笔记

我后悔了,这五天竞赛搞得我视力都下降了...一个冲动的决定后成为数模竞赛论文写手,3天速成+5天时间=点亮攻克latex写论文技能💡关于Overleaf我是Mac,曾经按照大部分推荐的方式用TEXshop+vs code,但是把模板导入就开始报错。跟着少之又少的适配mac的教程(此时我已知道大概是走错路了)改了配置也无效。海鲜市场找佬改了半天,佬问我:一定要用VC吗?我说,那倒也不是。于是佬推荐我overleaf,三下五除二帮我挑配了环境,美汁汁收了我30块钱。

luwanjoyce的博客 2247

FPGA自学笔记--时钟IP核使用(Verilog&VHDL版本)

时钟ip核是一个比较常用的IP核,主要用于对输入的时钟信号进行进行倍频、分频、调整相位。这些功能其实自己去实现也是相对来说比较简单的,但是既然vivado提供了这种封装好的IP核,我们就可以充分的去利用,减少开发者的工作量,而且时钟ip核也有一些比较高级的功能,比如,输出时钟频率和相位的动态调整等等。本篇文章主要记录时钟ip核的基本使用,并附带verilog和vhdl代码及对应的testbench文件,以供同学们相互交流学习。 一、时钟ip简介 在介绍时钟管理IP之前,可...

lgk1996的博客 8446

3D Slicer中Auto3DSeg和TotalSegmentator等自动分割插件总是安装失败,怎么办?教你两招

TotalSegmentator, MONAI auto3Dseg,这些工具因分割器官多,准确性高,备受关注。同时,这些自动分割工具被集成在了3D slicer平台,非常方便临床医生做手术规划。详细了解这些工具看之前的教程👇-------- 简单概述 --------其中,MONAIAuto3DSeg扩展附带数十种针对特定临床用例的预训练分割模型,这些模型旨在快速运行,几分钟内即可在任何普通计算机上运行,无需 GPU,甚至在笔记本电脑上。

zzjlhlcd的博客 1696

嵌入式统一消息机制:模块解耦与零拷贝通信设计

在嵌入式系统开发中,模块间通信(IMC)是影响可维护性与实时性的关键环节。传统IPC方式如全局变量、信号量或Socket易导致高耦合、调试困难及跨平台适配成本高。统一消息机制通过逻辑地址抽象、标签/实体分离、路由表驱动等原理,实现控制流与数据流解耦,在裸机、RTOS及Linux用户态保持一致接口。其技术价值在于降低模块依赖复杂度、支持动态增删与分布式迁移,并通过零拷贝优化显著减少CPU与内存开销。典型应用场景涵盖工业网关、城域交换机、多核ARM边缘设备等资源受限环境,尤其适用于需长期稳定运行、快速迭代与混合

weixin_35257663的博客 253
上一篇: Rust 函数
下一篇: HTML5基础
暴风雨中的白杨
博客等级 码龄6年 1070粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值