FPGA原理与结构——时钟IP核的使用与测试
一、前言
本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考:
FPGA原理与结构——时钟IP核原理学习
https://blog.csdn.net/apple_53311083/article/details/132497850
二、时钟 IP核定制
1、 Clocking Wizard IP核
step1 打开vivado工程,点击左侧栏中的IP Catalog

step2 在搜索栏搜索clock,找到Clocking Wizard IP核

2、 IP核定制
step3 Clocking Options 界面定制

① Component Name” :用于设置该IP 核的名称
② “Clock Monitor” :用来监控时钟是否停止、故障和频率变化。一般不用;
③ “Primitive” :用于选择是使用MMCM 还是PLL 来完成时钟需求,一般来说,MMCM 和PLL 都可以完成,这里保持默认选择MMCM。
④ “Clocking Features” :
- Frequency Synthesis : 表示频率综合,只有勾上才能修改想要的时钟频率。
- Phase Alignment : 相位对齐,勾选后输出时钟与输入时钟的相位是一致的
- Dynamic Reconfig : 可以通过AXI接口对时钟IP核进行动态配置,这里不适用
- Safe Clock Startup : 安全启动,在时钟稳定之前不会有输出
- Minimize Power :最小化功率,缺点是可能会影响性能
- Spread Specturm : 频谱扩展
- Dynamic Phase Shift : 动态可调相位
"Jitter Optimization " :
- Balanced : 平衡模式(默认选项),性能和功耗处于平衡状态
- Minimize Output Jitter : 输出时钟抖动最小化模式,功耗会增大,相位可能恶化
- Maximize Input Jitter filtering : 最大化输入时钟过滤,适用于输入时钟的抖动较大的情况,但是可能会导致输出时钟的抖动过大
⑤ “Input Clock Information”:选项中,把“Primary”时钟的输入频率修改为开发板的核心板上的晶振频率,source根据时钟源类型选择,单端时钟或者差分时钟,这里我们进行的是仿真测试,设置的输入时钟频率为100MHZ 。
step4 Output Clocks 界面定制

① : 这里我们就可以设置我们所需要的输出时钟频率和相位了,这里我们设置了4个输出时钟,clk_out1_100m:100MHZ时钟,clk_out2_100m_180:100MHZ时钟,与clk_out1_100m不同的是,其有着180°的相位差,clk_out3_50m:50MHZ时钟,clk_out3_25m:25MHZ时钟。
② : 勾选不同信号的输出顺序,使用的前提是要在之前的界面勾选上Safe Clock Startup,这里就不适用
③ :Clocking Feedback :时钟反馈,只有在之前的界面勾选了Phase Alignment才可以使用
④ : 一些额外的引脚可选项,这里着重介绍一下locked :置位时表示PLL输出信号有效,平常使用PLL一定要等该信号有效
step5 Port Renaming 界面定制

输出端口信号重命名,一般不用修改。
step6 MMCM Settings 界面定制

“MMCM Setting”选项卡展示了对整个MMCM/PLL 的最终配置参数,这些参数都是根据之前用户输入的时钟需求由Vivado 来自动配置的,Vivado 已经对参数进行了最优的配置,在绝大多数情况下都不需要用户对它们进行更改,也不建议更改,所以这一步保持默认即可,如下图所示。
step7 Summary

最后的“Summary”选项卡是对前面所有配置的一个总结,在这里直接点击“OK”按钮即可。
3、IP核测试
首先编写顶层文件,完成对于IP核的例化
module clk_top(input sys_clk,input rst,output clk_100m,output clk_100m_180,output clk_50m,output clk_25m,output locked);clk_gen clk_gen_u1(// Clock out ports.clk_out1_100m(clk_100m), // output clk_out1_100m.clk_out2_100m_180(clk_100m_180), // output clk_out2_100m_180.clk_out3_50m(clk_50m), // output clk_out3_50m.clk_out4_25m(clk_25m), // output clk_out4_25m// Status and control signals.reset(rst), // input reset.locked(locked), // output locked// Clock in ports.clk_in1(sys_clk)); // input clk_in1endmodule
接下来进行测试文件编写:
`timescale 1ns / 1ps
module tb_clk_top();reg sys_clk;reg rst;wire locked;wire clk_100m,clk_100m_180,clk_50m,clk_25m;always #5 sys_clk = ~sys_clk;initial beginsys_clk <= 1'b0;rst = 0;#15 rst = 1;#10 rst = 0;endclk_top clk_top_u1(.sys_clk (sys_clk),.rst (rst),.clk_100m(clk_100m),.clk_100m_180(clk_100m_180),.clk_50m(clk_50m),.clk_25m(clk_25m),.locked(locked));endmodule
4、测试结果

可以看到,经过一段时间后,时钟输出趋于稳定,实现稳定的分频时钟输出,与我们预期的结果是一致的。
三、总结
时钟IP核在我们的FPGA设计过程中是非常常用的,一般也是我们推荐使用的一种设计方式,它可以给我们提供不同频率,不同相位的时钟输出。
相关文章:
FPGA原理与结构——时钟IP核的使用与测试
一、前言 本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考: FPGA原理与结构——时钟IP核原理学习https://blog.c…...
手搓消息队列【RabbitMQ版】
什么是消息队列? 阻塞队列(Blocking Queue)-> 生产者消费者模型 (是在一个进程内)所谓的消息队列,就是把阻塞队列这样的数据结构,单独提取成了一个程序,进行独立部署~ --------&…...
Oracle VM VirtualBox 安装 Ubuntu Linux
Virtual Box VirtualBox是一个强大的、面向个人用户或者企业用户的虚拟机产品,其支持x86以及AMD64/Intel64的计算架构,功能特性丰富、性能强劲,支持GPL开源协议,其官方网址是www.virtualbox.org,由Oracle开源…...
3D WEB轻量化引擎HOOPS Commuicator技术概览(一):数据导入与加载
HOOPS Communicator是一款功能强大的SDK,适用于基于Web的高级工程应用程序,代表HOOPS Web平台的Web开发组件。使用HOOPS Communicator,您可以构建一个在 Web浏览器中提供3D模型的Web应用程序。 HOOPS Communicator可以本地加载多种模型格式。…...
.net 7 隐藏swagger的api
1.写一个隐藏接口特性表示 using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen;using System.Web.Http.Description;namespace JiaTongInterface.Filter {public class SwaggerApi : Swashbuckle.AspNet…...
Maven插件的作用
插件-maven-compiler-plugin <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <sourc…...
C++(三)——运算符重载
运算符重载 重定义或重载大部分 C 内置的运算符就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。不能为了重载而重…...
【Springcloud】elk分布式日志
【Springcloud】elk分布式日志 【一】基本介绍【二】Elasticsearch【1】简介【2】下载【3】安装【4】启动 【三】Logstash【1】简介【2】下载【3】安装【4】启动 【四】Kibana【1】简介【2】下载【3】安装【4】启动 【五】切换中文【六】日志收集 【一】基本介绍 (…...
面试半个月后的一些想法
源于半个月面试经历后的一些想法,刚开始想的是随便写写,没想到居然写了这么多。 找不到目标找不到意义亦或是烦躁的时候,就写写文章吧,把那些困扰你很久的问题铺开来 花时间仔细想想,其实真正让我们生气懊恼࿰…...
基于FPGA的图像二值化处理,包括tb测试文件和MATLAB辅助验证
1.算法运行效果图预览 将FPGA的数据导入到matlab进行显示 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps ............................................................................. module test_image;reg i_clk; reg i_rst; r…...
文件操作(个人学习笔记黑马学习)
C中对文件操作需要包含头文件<fstream > 文件类型分为两种: 1.文本文件:文件以文本的ASCII码形式存储在计算机中 2.二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们 操作文件的三大类: 1.ofstream: 写操作 …...
Android Studio新版本New UI及相关设置丨遥遥领先版
1、前言 俗话说工欲善其事必先利其器嘛,工具用不好怎么行呢,借着Android Studio的更新,介绍一下新版本中的更新内容,以及日常开发中那些好用的设置。 2、关于新版本 2.1、最新正式版本 Android Studio Giraffe | 2022.3.1 Pat…...
新型人工智能技术让机器人的识别能力大幅提升
原创 | 文 BFT机器人 在德克萨斯大学达拉斯分校的智能机器人和视觉实验室里,一个机器人在桌子上移动一包黄油玩具。通过达拉斯分校计算机科学家团队开发的新系统,机器人每推动一次,就能学会识别物体。 新系统允许机器人多次推动物体…...
聚观早报|蚂蚁集团发布“蚁天鉴”;vivo X100系列即将亮相
【聚观365】9月12日消息 蚂蚁集团发布“蚁天鉴” vivo X100系列即将亮相 台积电8月份营收59亿美元 8月公共充电桩环比增加6.1万台 吴泳铭接替张勇出任阿里云代理董事长与CEO 蚂蚁集团发布“蚁天鉴” 蚂蚁集团发布大模型安全一体化解决方案“蚁天鉴”。该方案包含了大模型…...
读高性能MySQL(第4版)笔记05_优化服务器设置
1. 除非遇到异常情况,否则不需要调整配置 1.1. 不要“调优”服务器,不要使用比率、公式或“调优脚本”作为设置配置变量的基础 1.1.1. 在互联网上搜索配置建议并不总是一个好主意,你会在博客、论坛等找到很多糟糕的建议 1.1.2. 很难判断谁…...
Spring Boot跨域问题简介
什么是跨域问题? 在Web开发中,跨域指的是在浏览器中访问一个不同于当前域名的资源。浏览器出于安全考虑,限制了这种跨域资源的访问。具体来说,当浏览器使用XMLHttpRequest或Fetch API发送跨域请求时,目标服务器必须在…...
【Java】过滤器和拦截器区别
文章目录 前言1、过滤器 (Filter)2、拦截器 (Interceptor)3、我们不一样3.1、实现原理不同3.2、使用范围不同3.3、触发时机不同 4、拦截的请求范围不同5、注入Bean情况不同6、控制执行顺序不同总结 前言 准备环境 我们在项目中同时配置 拦截器 和 过滤器。 1、过滤器 (Filter…...
es滚动查询分析和使用步骤
ES在进行普通的查询时,默认只会查询出来10条数据。我们通过设置es中的size可以将最终的查询结果从10增加到10000。如果需要查询数据量大于es的翻页限制或者需要将es的数据进行导出又当如何? Elasticsearch提供了一种称为"滚动查询"(…...
飞书公式总结
文本处理函数 飞书中的表格,需要实现 内容内容1条件1内容2条件2内容3条件3今天是周一;可以出去玩今天是周一能今天天气不错不能可以出去玩能 条件1,2,3为能时,把对应的内容1,内容2,内容3复制到内容 TEX…...
079、多轴运动控制:插补器设计(圆弧插补)
079 多轴运动控制:插补器设计(圆弧插补) 从一次现场调试说起 去年在深圳某激光切割设备厂,客户反馈切割圆孔时总在四个象限点出现“鼓包”。我带着示波器去现场,抓出XY轴的位置误差曲线,发现每次经过0、90、180、270这些特殊角度时,速度曲线都会出现一个明显的尖峰。当…...
实在Agent实测:解决采购合同审核流程冗长与原材料交付周期拉长的架构之道
大家好,我是企业架构师老王。站在2026年5月这个时间节点回看,全球供应链的复杂程度已远超三年前的预判。近期我在为几家制造型企业做数字化诊断时发现,一个幽灵般的困境正在吞噬企业的利润:采购合同审核流程冗长,直接导…...
【限时开放】ChatGPT-Sora 2联合推理链搭建教程:含Prompt模板库、错误码速查表与延迟压测数据(仅存96小时)
更多请点击: https://intelliparadigm.com 第一章:ChatGPT-Sora 2联合推理链的核心架构与演进逻辑 ChatGPT-Sora 2联合推理链代表了多模态大模型协同推理范式的重大跃迁——它并非简单地将语言模型与视频生成模型并联调用,而是构建了语义对齐…...
【Twitter算法适配型Prompt库】:2024Q2官方推荐权重结构解析+ChatGPT生成内容通过率提升67%的12个黄金句式
更多请点击: https://intelliparadigm.com 第一章:Twitter算法适配型Prompt库的演进逻辑与2024Q2权重变革本质 算法信号层重构驱动Prompt范式迁移 2024年第二季度,X(原Twitter)平台正式将Engagement Velocity Ratio&…...
多Agent协作是趋势,但谁来管这些Agent
如果你最近参加过AI相关的技术沙龙或者行业峰会,大概率会听到一个词:多Agent协作。简单说就是,不是一个AI帮你干完所有事,而是多个AI各司其职、互相配合。比如一个Agent负责理解需求,一个Agent负责写代码,一…...
混合信号示波器(MSO)在嵌入式调试中的核心应用与选型指南
1. 混合信号示波器:嵌入式调试的“瑞士军刀”如果你在2015年那个春天走进波士顿的嵌入式系统大会(ESC Boston),会发现一个明显的趋势:工程师们调试板子的工具,正从传统的逻辑分析仪,悄然转向一种…...
JiT源码深度剖析:从Denoiser到Transformer的完整实现
JiT源码深度剖析:从Denoiser到Transformer的完整实现 【免费下载链接】JiT PyTorch implementation of JiT https://arxiv.org/abs/2511.13720 项目地址: https://gitcode.com/gh_mirrors/jit8/JiT JiT(Just image Transformer)是一个…...
AndroidOfferKiller深度解析:JVM运行时数据区域面试重点
AndroidOfferKiller深度解析:JVM运行时数据区域面试重点 【免费下载链接】AndroidOfferKiller :muscle: Help you get a better offer. 项目地址: https://gitcode.com/gh_mirrors/an/AndroidOfferKiller 想要在Android面试中脱颖而出吗?掌握JVM运…...
RevokeMsgPatcher:微信/QQ/TIM防撤回补丁工具完全指南
RevokeMsgPatcher:微信/QQ/TIM防撤回补丁工具完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.co…...
多模态大模型评测框架VLMEvalKit:从原理到实践,实现高效公平的模型评估
1. 项目概述:一个开箱即用的多模态大模型评测工具箱 如果你最近在折腾多模态大模型,不管是想复现论文里的SOTA结果,还是想给自己训的模型做个“体检”,又或者只是想快速对比一下ChatGPT-4V、Gemini Pro Vision这些闭源巨头的实力…...
