vivado中的FPGA时钟管理单元PLL学习记录

news2025/1/11 14:05:23

vivado中的FPGA时钟管理单元PLL学习记录

  • CMT简介
    • 一、PLL IP的使用
      • 1、ip调用
    • 2、生成的频率限制
    • 二、PLL实现原理
  • 三、使用过程中的问题
    • 程序注意事项

CMT简介

FPGA中时钟管理模块(CMT)包括PLL和MMCM,用于将时钟倍频(比如输入时钟25M,我们要产生50M时钟)、分频(在不影响系统功能的前提下,较低的工作时钟,能够降低系统功耗)、改变相位偏移或占空比等。
当需要上板时,由于板上晶振时钟固定,所以其他频率的时钟产生就要用到PLL或者MMCM。两者类似,MMCM可以完成PLL的所有功能外加一些高级功能。

其中具体的一些时钟域,BUFG等时钟资源介绍,以及FPGA中的PLL和MMCM介绍可参考时钟IP核(MMCM PLL)、RAM 和 FIFO 实验-哔哩哔哩(待学)

这里只介绍PLL锁相环。

一、PLL IP的使用

1、ip调用

如果只是调用ip的话,知道怎样使用即可
vivado中的调用及上板测试可以参考:
FPGA实战(五)时钟IP核(MMCM PLL)

基本就是调用ip,然后设置一个输入时钟一个输出时钟;注意其中有一个locked信号,当locked信号拉高的时候代表锁相环输出信号已经稳定
locked信号常被用于复位信号

2、生成的频率限制

另外,时钟管理IP核并不能产生任意频率的时钟信号。 产生的时钟信号与输入之间仅能是M/N的关系,其中M、N必须是整数(在原理部分会介绍)。

二、PLL实现原理

PLL组成:
在这里插入图片描述

锁相环是一种以消除频率误差为目的的反馈控制电路。原理是利用相位误差消除频率误差,所以当电路平衡时,会有剩余相位误差,但频率误差为0
具体推导:
在这里插入图片描述
也可以参考一文弄懂锁相环(PLL)的工作原理及应用
终止最终达到的效果就是输入输出有相位差(VCO需要一定的电压驱动它到正确的频率,所以一定有相差)但是频率相等,就如下图所示。
在这里插入图片描述

那对于分频是怎样实现的呢?
如下图,插入分频模块即可,这样就可以实现输出/输出=N/M, N M为整数。
在这里插入图片描述
图片来自锁相环的工作原理

三、使用过程中的问题

我只使用锁相环对板子就行了简单的分频,基于PYNQ-Z2板子,从125M到50M,写了一个灯亮灭的程序,等locked信号稳定后才计数。
程序如下:

module led(
(* MARK_DEBUG="true" *)input sys_clk,
input clk_restn,
output reg[3:0] led
    );
    reg[31:0] timer_cnt;
    (* MARK_DEBUG="true" *)wire clk;
    (* MARK_DEBUG="true" *)wire locked_out;
  /*  
    initial begin
       led<=0;
       timer_cnt<=0;
    end
    */
   clk_wiz_0 clk_wiz
   (
    // Clock out ports
    .clk_out1(clk),     // output clk_out1
    // Status and control signals
    .reset(clk_restn), // input resetn
   // Clock in ports
    .clk_in1(sys_clk),      // input clk_in1
    .locked(locked_out));       // output locked

      always@(posedge clk) begin
        if((locked_out==1) && (timer_cnt>=32'd49999999))begin
        //if(timer_cnt>=32'd4999)begin
            led<=~led;
            timer_cnt<=0;
        end
        else if(locked_out==1)begin
            led<=led;
            timer_cnt<=timer_cnt+1;
        end
        else begin
            led<=led;
            timer_cnt<=0;
        end
    end
endmodule

我设置的是1s亮1s灭,但是实际上板出现的问题是1s亮2s灭或者2s灭1s亮,肉眼可见的有问题。
上板抓信号发现locked信号拉高之后还会拉低,不是一直拉高,这就导致拉低时计数清零,拉高又重新计数,时长就变长了。
最后发现问题是板子有问题,换了板子就正确了。应该是原来板子晶振有问题,会周期性不稳定,导致PLL的locked信号周期性拉低拉高。

程序注意事项

上述程序也有一些问题,这里记录一下:
1、initial块不要写在要综合的代码中,因为它不可综合,用复位来设置初值
2、clk是分频出来的,最好后面模块也给复位,不然如果PLL出错后面clk控制的就都没办法控制了
3、locked_out==1这样写是没问题的,如果板子时钟没问题就是拉高之后不会拉低了。也确实要等始终稳定locked_out=1再进行操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三方实验室云LIS系统

本套云LIS系统基于B/S架构的实验室管理系统&#xff0c;整个系统的运行基于WEB层面&#xff0c;只需要在对应的工作台安装一个浏览器软件有外网即可访问。SaaS服务&#xff0c;无需部署&#xff0c;开通账号接口快速入门使用&#xff0c;集齐前处理、检验、报告、质控、统计分析…

测试自动化_Katalon

测试自动化_Katalon 1.概述 ​ Katalon界面的自动化测试工具&#xff0c;简称KS&#xff0c;于2015年推出。是开源的&#xff0c;提供的版本有免费的版本&#xff0c;还有企业版是收费的。如下图。其中的服务台功能应该是持续继承的支持。可试用一个月。 ​ 最初是支持Web UI…

Baumer工业相机堡盟工业相机通过BGAPISDK使用图像回调函数全帧率保存图像 (C#)

Baumer工业相机堡盟工业相机通过BGAPISDK使用图像回调函数全帧率保存图像 &#xff08;C#&#xff09; Baumer工业相机Baumer工业相机全帧率保存的技术背景Baumer工业相机通过BGAPISDK使用相机图像回调函数1.引用合适的类文件2.通过BGAPISDK在相机图像回调函数全帧率保存 Baume…

2023年湖北建筑电工报名需要什么资料 ?报考条件是什么?启程别

2023年湖北建筑电工报名需要什么资料 &#xff1f;报考条件是什么&#xff1f;启程别 建筑电工证&#xff0c;适合在建筑工地上、建筑公司里面使用&#xff0c;和应急管理局的电工证是不同的&#xff01;建筑电工证也称之为建筑特操&#xff0c;统称建筑施工特种作业操作资格证…

如何成为ITSMS、ISMS审核员

一、管理体系审核员的注册领域 管理体系审核员包括质量管理体系&#xff08;QMS&#xff09;、环境管理体系&#xff08;EMS&#xff09;、职业健康安全管理体系&#xff08;OHSMS&#xff09;、食品安全管理体系&#xff08;FSMS&#xff09;、危害分析与关键控制点&#xff0…

Scala学习(六)---apply方法和单例对象

文章目录 1.Apply方法2.单例模式 1.Apply方法 Scala中实例化一个类&#xff0c;可以不用new &#xff0c; 其原因 其实就是 apply 方法 apply方法的调用约定&#xff1a; 用括号传递给类实例或者单例对象名一个或者多个对象的时候 scala会在对应的类或者对象中查找apply方法 且…

TortoiseSvn和TortoiseGit的安装(超详细带汉化)

前言 TortoiseSvn和TortoiseGit都是针对代码进行版本管理的工具&#xff0c;又俗称小乌龟&#xff0c;简洁而可视化的操作界面&#xff0c;免去繁琐的命令行输入。只需要记住常用的几个操作步骤就能快速上手。工欲善其事必先利其器&#xff0c;我一向奉行的就是复杂的问题简单化…

Promise面试题

Promise面试题&#xff0c;带你搞懂同步异步执行顺序 前置知识面试题面试题一面试题二面试题三面试题四 分析面试题一分析面试题二分析面试题三分析面试题四分析 前置知识 Promise中的then方法 then&#xff1a;指定用于得到成功value的成功回调和用于得到失败reason的失败回调…

openldap2.4版本管理员文档中文翻译版

OpenLDAP2.4管理员指南 文章目录 1.OpenLDAP介绍2.快速开始指南1.获得软件2.解压压缩包3.阅读文档4.运行configure5.编译软件6.测试编译结果7.安装软件8.编辑配置文件9.导入数据库配置10.启动slapd11.添加初始条目到目录中12.检测添加结果 3.大图片-配置选择1.本地目录服务2.带…

抓取微信小程序源码教程,扒微信小程序文件等

前言&#xff1a; 想成为一名微信小程序的开发者&#xff0c;前端思路的学习和安全意识是非常有必要的&#xff0c;故务必掌握小程序反编译技能。这里用到了2个工具《包解密》与《反编译》&#xff08;非原创&#xff0c;均来自网上的大佬&#xff09;&#xff0c;特别适合新手…

5.23黄金是否会继续下跌?多单被套怎么办?

近期有哪些消息面影响黄金走势&#xff1f;今日黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周二&#xff08;5月23日&#xff09;亚市盘中&#xff0c;现货黄金小幅走弱&#xff0c;一度刷新两日低点至1960美元/盎司&#xff0c;美国明尼亚波利斯联储主席卡…

redis的主从复制、哨兵、集群

主从复制&#xff1a; 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。 原理&#xff1a; 主从关系确定…

【VLAN如何划分?6个方法帮你解决!好用又简单!】

如何选择交换机&#xff1f;如何根据项目确定网络结构&#xff1f;交换机做为大家工作中最常用的设备之一&#xff0c;关于它的选择&#xff0c;不得不知。 在做项目时都有这样的疑问&#xff0c;因为参数决定了项目预算&#xff0c;常用的园区组网技术也是多种多样。 我们来…

物联网调试管理平台

1. 项目介绍 1.1 项目简介 MQTT调试管理平台是一款基于Spring Spring MVC Mybatis开发的一款物联网设备调试管理平台。 其功能主要是对客户MQTT调试页面进行集中管理&#xff08;连接信息、发送信息&#xff09;&#xff0c;系统管理员可在后台添加客户和调试页面&#xf…

OpenHarmony支持HDMI接口声卡适配说明

高清多媒体接口&#xff08;High Definition Multimedia Interface&#xff0c;HDMI &#xff09;是一种全数字化视频和声音发送接口&#xff0c;可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设…

chatgpt赋能Python-python_js解密

Python与JavaScript解密之道 在现代Web应用程序中&#xff0c;JavaScript和Python是两种最强大和流行的编程语言。Python具有强大的基于文本的处理和数据结构&#xff0c;而JavaScript则具有处理DOM&#xff0c;Ajax和动态效果的能力。然而&#xff0c;有时我们需要使用这两种…

Spring Cloud Eureka 是什么?如何使用它来实现服务注册与发现?

Spring Cloud Eureka 是什么&#xff1f;如何使用它来实现服务注册与发现&#xff1f; 在微服务架构中&#xff0c;服务注册与发现是一个非常重要的概念。它可以帮助我们实现服务的自动发现和负载均衡&#xff0c;从而提高系统的可用性和可扩展性。Spring Cloud Eureka 是一个…

无需公网IP,在家SSH远程连接公司内网服务器「cpolar内网穿透」

文章目录 视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程 转载自cpolar内网穿透的文章&#xff1a;无公网IP&#xff0c;SSH远程连接Linux CentOS【内网穿透】 本次教程我们来实现如何在外公网环境下&am…

探索Java面向对象编程的奇妙世界(二)

⭐ 对象和类的详解⭐ 构造方法(构造器 constructor)⭐ 构造方法的重载⭐ 面向对象的内存分析 ⭐ 对象和类的详解 类可以看做是一个模版&#xff0c;或者图纸&#xff0c;系统根据类的定义来造出对象。我们要造一个汽车&#xff0c;怎么样造&#xff1f;类就是这个图纸&#xff…

以太网、工业以太网和Profinet三者有何关联?

总的来说&#xff0c;以太网是一种局域网规范&#xff0c;工业以太网是应用于工业控制领域的以太网技术&#xff0c;Profinet是一种在工业以太网上运行的实时技术规范。 下面&#xff0c;我们来详细说说这三者的区别。 1.以太网 以太网是当今现有局域网采用的最通用的通信协议…