news 2026/5/5 14:12:12

基于FPGA的数字示波器设计和硬件调试,将正弦波形通过HDMI接口在屏幕上动态显示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于FPGA的数字示波器设计和硬件调试,将正弦波形通过HDMI接口在屏幕上动态显示

目录

1.课题概述

2.系统测试效果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

基于FPGA的数字示波器,通过DDS-IP核生成标准正弦波形,再将波形数据转换为HDMI显示格式,最终在显示器上呈现波形形态。该系统既具备数字示波器的信号发生基础功能,也通过HDMI接口完成可视化输出,其整体架构包含DDS信号生成模块、波形缓存模块、HDMI视频驱动模块、时钟管理模块,正弦信号频率控制模块。

2.系统测试效果

在显示器上,显示不同频率的正弦波形:

fpga硬件测试不同开发板之间的移植,可以参考如下的文章:

https://blog.csdn.net/hardware_player/article/details/147004201?sharetype=blogdetail&sharerId=147004201&sharerefer=PC&sharesource=hardware_player&spm=1011.2480.3001.8118

修改频率,显示器显示效果如下:

3.核心程序与模型

版本:vivado2022.2

..................................................... // һ DDS //the module of sin signal wire[7:0]signal_sin1; wire [15 : 0] m_axis_data_tdata; dds_compiler_0 dds_compiler_0u ( .aclk (divclk), // input wire aclk .aresetn (rst_n), // input wire aresetn .s_axis_config_tvalid(1'b1), // input wire s_axis_config_tvalid .s_axis_config_tdata(32'd2000000), // input wire [31 : 0] s_axis_config_tdata .m_axis_data_tvalid(), // output wire m_axis_data_tvalid .m_axis_data_tdata(m_axis_data_tdata), // output wire [15 : 0] m_axis_data_tdata .m_axis_phase_tvalid(), // output wire m_axis_phase_tvalid .m_axis_phase_tdata() // output wire [31 : 0] m_axis_phase_tdata ); assign signal_sin1={m_axis_data_tdata[15],m_axis_data_tdata[15:9]}; wire[7:0]signal_sin2; wire [15 : 0] m_axis_data_tdata2; dds_compiler_0 dds_compiler_1u ( .aclk (divclk), // input wire aclk .aresetn (rst_n), // input wire aresetn .s_axis_config_tvalid(1'b1), // input wire s_axis_config_tvalid .s_axis_config_tdata(K), // input wire [31 : 0] s_axis_config_tdata .m_axis_data_tvalid(), // output wire m_axis_data_tvalid .m_axis_data_tdata(m_axis_data_tdata2), // output wire [15 : 0] m_axis_data_tdata .m_axis_phase_tvalid(), // output wire m_axis_phase_tvalid .m_axis_phase_tdata() // output wire [31 : 0] m_axis_phase_tdata ); assign signal_sin2={m_axis_data_tdata2[15],m_axis_data_tdata2[15:9]}; wire signed[7:0]test1 = signal_sin1; wire signed[7:0]test2 = signal_sin2; wire video_clk; wire video_clk_5x; wire video_hs; wire video_vs; wire video_de; wire[7:0] video_r; wire[7:0] video_g; wire[7:0] video_b; color_bar hdmi_color_bar( .clk0(divclk), .clk(video_clk), .rst(1'b0), .i_start(1'b1), .test1(test1), .test2(test2), .hs(video_hs), .vs(video_vs), .de(video_de), .rgb_r(video_r), .rgb_g(video_g), .rgb_b(video_b) ); endmodule 00X6_010m

4.系统原理简介

FPGA作为整个系统的控制核心,承担着模块调度、数据处理、时序同步的功能:

1.时钟管理模块通过PLL IP核生成各模块所需时钟(DDS 工作时钟、HDMI 像素时钟、系统同步时钟),保证各模块时序一致。

2.DDS IP核在时钟驱动下生成正弦波数字序列,输出至波形缓存模块(FIFO/BRAM)进行临时存储,解决DDS输出速率与HDMI显示速率的匹配问题。

3.HDMI视频驱动模块生成标准视频时序,在有效像素区域内,根据当前 X 轴像素坐标读取缓存中的正弦波幅值数据,将其转换为Y轴像素坐标对应的灰度数据(如黑白波形显示)或RGB数据(如彩色波形显示)。

4.TMDS编码模块将RGB数据、同步信号封装为HDMI差分信号,通过FPGA的HDMI输出引脚传输至显示器,最终呈现稳定的正弦波形。

正弦波形与显示像素之间的映射

1.X轴(时间-行像素)映射公式

设DDS的采样频率为fs(等于DDS工作时钟频率fclk),显示器有效行像素数为Xres(如720P为1280,1080P为1920),波形显示的时间窗口为Tw,则每个行像素对应的时间间隔Δt为:

2.Y轴(幅值-列像素)映射公式

设显示器有效列像素数为Yres(如720P为720,1080P为1080),DDS输出的正弦波幅值范围为[Amin,A max],列像素坐标y(从上到下为0到Yres−1)与幅值A(n)的映射关系为:

5.完整工程文件

v v

关注后,GZH回复关键词:a18

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:06:10

VMD-Transformer-GRU组合模型锂电池剩余寿命预测(NASA电池数据集容量特征提取+RUL电池剩余寿命预测)MATLAB代码

代码功能 1. rongliangtiqu.m - 电池容量数据提取 主要功能: 从NASA电池数据集中提取放电容量数据并进行可视化分析 算法步骤: 导入四个电池数据集(B0005, B0006, B0007, B0018)遍历每个电池的循环数据,筛选放电循环提取放电容量数据并存…

作者头像 李华
网站建设 2026/5/1 15:53:52

wl_arm在过程控制中的典型架构:图解说明

从传感器到云端:一文讲透 wl_arm 在现代过程控制中的实战架构你有没有遇到过这样的场景?产线上的传统 PLC 看似稳定,但一旦要接入云平台、跑个预测性维护算法,或者扩展几十路模拟量输入时,立刻变得力不从心——通信慢、…

作者头像 李华
网站建设 2026/5/1 10:35:40

9 个降AI率工具,本科生高效降重指南

9 个降AI率工具,本科生高效降重指南 AI降重工具:高效降低AIGC率的得力助手 在当前学术写作中,越来越多的本科生开始使用AI工具辅助论文撰写。然而,随着各大高校对AI生成内容(AIGC)检测的重视,如…

作者头像 李华
网站建设 2026/5/1 8:55:47

制造业知识传承难题破解:工人培训AI助手上线

制造业知识传承难题破解:工人培训AI助手上线 在一家中型机械制造厂的装配车间里,一位刚入职三个月的新员工正面对一台从未接触过的数控机床。他记得师傅提过某个参数设置的关键点,但翻遍了厚厚的操作手册和班组微信群记录,依然找不…

作者头像 李华
网站建设 2026/5/1 15:21:39

SBC运行Linux RT系统的实时性优化指南

SBC运行Linux RT系统的实时性优化实战指南你有没有遇到过这样的场景:在一台树莓派上跑着控制电机的程序,明明代码逻辑清晰、周期设定精准,可实际执行时却总出现几毫秒甚至十几毫秒的抖动?机器人动作不连贯、传感器采样失步、Ether…

作者头像 李华
网站建设 2026/5/1 10:57:50

anything-llm实战案例:某科技公司内部知识问答系统落地

Anything LLM实战案例:某科技公司内部知识问答系统落地 在一家快速发展的科技公司里,工程师每天要面对成百上千的技术文档、会议纪要和项目记录。每当有人问“订单服务的重试机制是怎么设计的?”——这个问题的答案可能藏在三年前某次架构评审…

作者头像 李华