FPGA-时钟管理单元

时钟管理单元(Clock Management Tile, CMT) :

即时钟管理片,是FPGA器件中一个十分重要的时钟资源。能够对内部和外部的时钟去偏斜、去抖动,同时还支持频率合成、分倍频等功能。

举例,下面这个例子数据从FIFO输出时钟频率为125MHZ,这个时钟频率可以通过50M晶振产生的频率倍频得到,但是时钟质量却很差。

所以,使用CMT生成125MHZ的频率。

那么为什么CMT生成的时钟质量比倍频生成的时钟质量要好呢?

看下图,下图是赛灵思官方手册中给出的CMT的框图

、

锁相环(PLL,Phase-Locked Loop),是一种反馈控制电路,常常用于利用 外部输入的参考信号控制环路内部振荡信号的频率和相位。锁相环在工作时, 当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的 相位差值,即输出电压与输入电压的相位被锁住,因此得名锁相环。

PLL 就是所说的锁相环,它能通过纯模拟电路,产生一定 范围内频率、相位、占空比等可控的时钟。而 MMCM(Mixed-Mode Clock Manager,混合模式时钟管理器)则是在此之上,通过数字电路设计增加了动态 调相的功能,因此被称为混合模式时钟管理器。

用以下例子来实验:

、

打开vivado 创建工程

根据例子中的要求配置输出频率

点击ok 配置完成

然后编写测试文件

代码如下

复制代码
`timescale 1ns / 1ps
module pll_tb;
    wire clk100m;     // output clk_out1
    wire clk100m_phase;     // output clk_out2
    wire clk100m_duty;    // output clk_out3
    wire clk200m;     // output clk_out4
    // Status and control signals
    reg resetn;  // input resetn
    wire locked;       // output locked
   // Clock in ports
    reg clk_in1;
  pll instance_name
   (
    // Clock out ports
    .clk_out1(clk100m),     // output clk_out1
    .clk_out2(clk100m_phase),     // output clk_out2
    .clk_out3(clk100m_duty),     // output clk_out3
    .clk_out4(clk200m),     // output clk_out4
    // Status and control signals
    .resetn(resetn), // input resetn
    .locked(locked),       // output locked
   // Clock in ports
    .clk_in1(clk_in1)); 
    
    initial clk_in1 = 1;
    always #10  clk_in1 = ~clk_in1;
     initial begin
        resetn = 1'b0;
        #201;
        resetn = 1'b1;
        #20000;
        $stop;
     end
endmodule

仿真波形:

可以观察到输出波形与例子中的要求一致。

相关推荐
FPGA小迷弟14 小时前
FPGA 与卫星:从星载硬件到在轨智能的完整技术解析
fpga开发·架构·fpga·1024程序员节·无线电
NamoAmitabha12814 小时前
CPU 内部结构是什么?---deepseek
fpga开发
abc light15 小时前
ARM 裸机开发(6)——时钟树与定时器
arm开发·单片机·fpga开发
156082072191 天前
JFMZQ28DR、JFMZQ68DR、RFsoc XCZU47DR、XCZU48DR 信号处理板
fpga开发·信号处理
XMAIPC_Robot1 天前
-40~85℃宽温实测:RK3588 机器人控制器硬件底座,长时间 SLAM 定位稳定性验证
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
樱木花道長1 天前
AMD Ross 深度系列 8:FAQ 七问七答(文末附网盘链接)
人工智能·fpga开发
FPGA小迷弟1 天前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
低慢小uav1 天前
(已解决)Zynq芯片lwip协议栈,使用tcp作为服务器Service,接收大量数据时,长度接收正常,接收对数据校验,校验和异常分析
网络协议·tcp/ip·fpga开发
szxinmai主板定制专家2 天前
ARM+FPGA 数控机床控制器:选 CODESYS SoftMotion CNC,还是基于 LinuxCNC 自研搭建?架构、授权、实时性、量产风险深度对比
arm开发·fpga开发·codesys·数据采集卡·linuxcnc·rk3576
女神下凡2 天前
芯参谋(79):嵌入式学习进阶_(硬件与软件)深入实践指南
arm开发·单片机·嵌入式硬件·学习·fpga开发·设计规范