当前位置: 首页 > news >正文

频率计数计 FPGA 设计 Verilog Vivado ISE/Vivado

名称:频率计数计 FPGA 设计 Verilog Vivado ISE/Vivado

软件:ISE/Vivado

语言:Verilog

功能介绍

本设计实现基于 FPGA 的频率计数计功能,采用测频法对输入或板内分频产生的测试信号进行计数测量,并将测量结果送至数码管显示。设计目标是完成可综合、可仿真、可上板调试的频率测量工程,适合用于 FPGA 数字系统课程设计、实验项目和频率测量类 Verilog 工程参考。 系统围绕频率测量、计数控制、数据锁存和显示输出展开。计数模块负责在规定测量窗口内统计待测信号脉冲数,控制模块负责协调测量周期、清零、锁存等工作,显示模块将结果转换为数码管可显示的数据形式。由于显示部分面向 8 位数码管,工程适合展示多位频率结果,便于观察测量过程和输出状态。 工程同时包含仿真工程和板级工程,可用于先在 Vivado 中进行行为仿真,再结合约束文件完成综合、实现和比特流生成。对于需要理解测频法、数码管动态显示以及 FPGA 工程完整流程的用户,该设计具有较好的学习和二次开发价值。

运行环境

开发语言:Verilog 开发软件:Vivado / ISE 相关工程文件 工程类型:FPGA 频率计数计设计,包含仿真工程、板级工程、约束文件和实现结果文件。

设计思路

设计采用典型测频法思路:在固定的闸门时间或控制周期内,对待测信号的上升沿或有效脉冲进行累计计数,测量窗口结束后将计数结果锁存,再进入下一轮清零和重新计数。这样可以把输入信号频率转换为单位时间内的脉冲个数,便于在 FPGA 内部用计数器和寄存器完成实现。 系统结构上将频率测量流程拆分为多个功能模块。控制模块产生测量节拍和状态控制信号,计数模块完成待测信号计数,数据存储模块在测量结束时保存稳定结果,显示模块负责将结果送往数码管显示。模块化写法便于单独调试各部分逻辑,也方便根据实际需求调整测量窗口、显示位数或输入信号来源。 测试信号可通过板内分频方式产生,用于完成基本测量验证。该方式不依赖外部信号源即可观察频率计的计数与显示效果,适合实验室和课程设计场景。工程还包含 Vivado 仿真相关文件,可通过测试平台观察计数、锁存和显示数据变化,帮助确认测频流程是否符合预期。

模块结构

主要模块包括: Freq_test:频率计数计顶层相关模块,连接计数、控制、存储和显示逻辑。 counter:计数模块,用于在测量周期内统计待测信号脉冲数量。 Frq_Ctrl:频率测量控制模块,用于产生测量、清零、锁存等控制节拍。 data_store:数据存储模块,用于保存测量结果,避免显示过程中数据抖动。 LED_DISP:数码管显示模块,用于将测量结果输出到数码管显示端。 div_clk:分频模块,可用于产生内部测试或控制所需时钟。 Freq_34_cui_vlg_tst:仿真测试平台,用于对频率计逻辑进行行为仿真。

开发板验证

工程包含开发板管脚约束文件,可用于完成 FPGA 引脚分配、综合实现和板级调试流程。约束内容覆盖时钟、复位、数码管显示及相关外设信号,配合已生成的实现与 bit 文件,可作为上板验证和二次移植时的重要参考。 板级验证重点可放在数码管显示结果是否随待测分频信号变化、复位后系统是否能重新开始测量、计数结果锁存是否稳定等方面。用户可根据实际开发板接口继续调整约束文件中的管脚分配。

演示视频

包含仿真视频,可用于观察频率计数计在仿真环境下的运行过程和波形变化,重点参考测量控制、计数结果更新以及显示数据变化。

演示视频请关注公众号后获取对应资料查看。

仿真图/仿真说明/设计文档图片

包含 Vivado 仿真工程、测试平台文件和仿真运行结果文件,可用于查看行为仿真流程。仿真部分适合验证计数窗口、清零锁存时序、结果更新以及数码管显示数据输出是否符合设计逻辑。 设计文档要求包含仿真波形、综合后原理图和开发板调试内容,因此工程可作为从代码编写、仿真验证到综合实现的完整流程参考。

部分代码

以下展示顶层模块at7的部分代码,完整代码可关注下方公众号卡片获取。

module at7( input sys_clk_i, //外部输入100MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 input chnl_sw , // UART接收数据信号 output rtc_iic_sck, //RTC芯片的IIC时钟信号 inout rtc_iic_sda, //RTC芯片的IIC数据信号 output [7:0] rtc_rdsecd //RTC芯片的IIC时钟信号 ); wire clk_12m5; //PLL输出12.5MHz时钟 wire clk_25m; //PLL输出25MHz时钟 wire clk_50m; //PLL输出50MHz时钟 wire clk_100m; //PLL输出100MHz时钟 wire sys_rst_n; //PLL输出的locked信号,作为FPGA内部的复位信号,低电平复位,高电平正常工作 //PLL例化 clk_wiz_0 u1_clk_wiz_0 ( // Clock in ports .clk_in1(sys_clk_i), // input clk_in1 // Clock out ports .clk_out1(clk_25m), // output clk_out1 // Status and control signals .reset(!ext_rst_n), // input reset .locked(sys_rst_n)); // output locked reg [7:0] clk_cnt; always @(posedge clk_25m or negedge sys_rst_n) if(!sys_rst_n) begin clk_cnt <= 8'd0; end else begin clk_cnt <= clk_cnt+ 1'b1; end // pcf8563 pcf8563( .mclk (clk_cnt[5]), .reset (sys_rst_n), .scl (rtc_iic_sck), .sda (rtc_iic_sda), .s_reg (rtc_rdsecd ), .led (), .seg (), .com ()); endmodule

代码获取:点击下方公众号卡片

http://www.rkmt.cn/news/1533309.html

相关文章:

  • RTX 3090多卡AI训练为何失效?硬件架构与CUDA通信瓶颈深度解析
  • 机器学习模型堆叠实战:从原理到代码实现
  • 如何免费解锁Wand专业版功能:完整指南与远程控制体验
  • 【课程设计/毕业设计】SpringBoot 赋能的校园心理关怀疗愈平台研发 一站式心理疗愈互助交流服务系统【附源码、数据库、万字文档】
  • 3D模型转换革命:用stltostp将STL无缝转换为STEP格式
  • Python趣味编程:从零绘制帕恰狗,掌握图形库与交互开发
  • 石墨烯润滑油选购指南,沃尔斯智碳科技是良策 - 工业品牌热点
  • 盘点靠谱的碎纸机厂家,看质量还是看价格? - 工业品牌热点
  • 2026年卧式自吸泵品牌怎么选?基于材质、工况与工程案例的多维行业分析 - 优质品牌商家
  • 基于机器学习的设备故障预测分析方法
  • 机器学习模型生产化实战:从Notebook到稳定服务的完整路径
  • Python魔法方法底层原理与序列协议实战
  • 网络热词传播机制解析:从“弹简特”看社群文化构建与内容创作策略
  • 计算机毕业设计之jspKTV管理系统
  • Gemini 3零样本规划能力:从需求到可交付代码的七层分解
  • 杭州软装摆件搭配专业团队哪家强?MAISONT美颂家居口碑出色 - myqiye
  • 2026年物联网互联系统选型指南:技术架构、服务生态与落地案例深度解析 - 优质品牌商家
  • 计算机毕业设计之选课系统的设计与实现
  • LLM实战认知地图:从幻觉、上下文窗口到推理成本的工程真相
  • Claude Code:AI智能编码代理的安装、配置与核心实战指南
  • 5分钟掌握WaveTools鸣潮工具箱:终极画质优化与游戏管理指南
  • 如何将单机游戏变多人分屏:Nucleus Co-Op 终极教程
  • 2026年成都贵金属与奢侈品回收市场观察:金条金币与名牌包回收哪家更靠谱? - 优质品牌商家
  • 嵌入式系统硬件保护机制:SIM模块配置与看门狗、总线监控实战
  • MAMP环境下MySQL本地开发全攻略:从配置优化到故障排查
  • 3分钟掌握UV Squares:Blender UV编辑的终极网格转换解决方案
  • OpenAI Apps SDK UI性能优化技巧:提升ChatGPT应用加载速度
  • 国资领航下的战略新篇与全球布局 - 品牌2026
  • 开源安卓第三方YouTube客户端,不上传不偷窥
  • 数据库存储过程实战:从原理到应用,提升后端开发效率