自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 FPGA中的嵌入式块存储器RAM:从原理到实现的完整指南

本文深入探讨FPGA中RAM的原理与应用,重点介绍嵌入式块存储器的分类、特性及配置方法。文章对比了RAM与ROM的核心差异,分析SRAM与DRAM的存储特性差异,详细讲解Vivado中RAM IP核的三种类型(单端口、简单双端口、真双端口)及其适用场景。通过数据缓冲器和图像帧缓冲两个典型应用案例,展示RAM在FPGA系统中的实际使用方法。最后,文章提供了一个基于RAM的图像显示系统实战案例,包括系统架构设计和关键实现代码,帮助读者掌握RAM在FPGA项目中的具体应用技巧。

2026-01-31 22:04:23 558

原创 FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例

本文系统介绍了FPGA中ROM的实现与应用。首先阐述了IP核的概念及其价值,然后分析了ROM在FPGA设计中的必要性。重点对比了分布式ROM(基于LUT)和块存储ROM(基于BRAM)两种实现方式的特性、容量及应用场景。详细讲解了在Vivado中配置ROM IP核的步骤,包括参数设置和COE格式初始化文件的创建方法。最后通过DDS信号发生器的实战案例,展示了ROM在波形生成中的具体应用,包括系统架构设计和MATLAB数据生成方法。全文为FPGA开发者提供了ROM模块从理论到实践的完整指导。

2026-01-31 21:04:10 598

原创 FPGA实战:VGA成像原理、时序详解与Verilog控制器设计与验证

本文系统介绍了VGA显示接口的原理与实现方法,详细解析了VGA的成像原理、同步信号和时序参数。以800×480分辨率为例,给出了完整的Verilog控制器设计,包括核心信号定义、时序参数计算和代码实现。通过仿真验证了HSync、VSync信号和数据输出的正确性,证明了设计的有效性。VGA驱动作为FPGA图像处理的基础模块,其设计方法可为后续视频处理应用提供参考。

2026-01-30 15:58:26 567

原创 FPGA 显示系统学习路线:从 VGA 到 RGB TFT

在 FPGA 学习过程中,显示系统几乎是所有人都会遇到、却又最容易“学乱”的一块内容。很多人会有这样的经历:VGA 看着不难,照着例程能跑;RGB TFT 一上手就花屏、抖动、黑屏;HDMI 更是“什么都没显示,不知道错在哪”。问题并不在于你代码能力不够,而在于学习顺序和认知层级错了。本文不是教你写代码,而是从工程角度给出一条清晰、可落地的 FPGA 显示系统学习路线,解释为什么:VGA 必须先学,RGB TFT 是关键分水岭,而 HDMI 反而不适合过早碰。

2026-01-27 22:24:41 463

原创 【显示系统真正扫盲】 VGA、HDMI、TFT、RGB TFT、LED 与显示器到底是什么关系?

本文系统梳理了嵌入式/FPGA开发中的显示技术体系。首先区分了"驱动显示器"与"驱动屏幕"的本质差异,指出显示器是已完成信号处理、时序控制等复杂功能的成品系统。其次解析了接口技术(VGA/HDMI)、显示技术(TFT/RGB TFT)和背光技术(LED背光)三个关键层级的技术定位与相互关系。特别澄清了常见误区,如"LED显示器"实为LED背光液晶显示器,以及接口类型不直接决定显示质量等核心认知。最后勾勒出从CRT到OLED/MicroLED的技术演

2026-01-27 22:13:49 917

原创 FPGA实战:基于Verilog的数码管动态扫描驱动设计与仿真验证

本文详细介绍了基于Verilog的数码管动态扫描驱动设计。通过分时复用原理,利用1ms定时循环切换位选信号,配合八选一多路选择器和段码查找表,实现多位数码管稳定显示。设计包含分频计数器、位选择计数器、三八译码器等模块,并提供了完整的Verilog代码实现和仿真验证方法。该方案充分利用人眼视觉暂留效应,在FPGA上实现了高效的多位数码管动态显示功能,适合嵌入式系统开发者和数字逻辑设计初学者参考。

2026-01-13 21:23:56 427

原创 Verilog中reg与wire的区别:从语法到实战

本文深入解析Verilog中reg和wire两种关键数据类型的区别与使用场景。reg表示数据存储单元,可在always块和initial块中赋值;wire代表物理连线,用于assign语句和模块连接。核心区别在于:reg可存储值,wire仅传输信号。文章通过代码示例展示了合法赋值方式及常见错误,从综合工具视角分析reg的实际硬件实现,并提供命名规范、初始化等实用技巧。最后强调类型选择由赋值方式决定,建议遵循"assign用wire,always用reg"的原则。掌握这两种类型的正确使用是

2026-01-13 19:38:34 523

原创 基于状态机的按键消抖设计与Verilog实现:原理、状态转移与仿真验证

本文提出一种基于摩尔型状态机的按键消抖硬件设计方案。针对机械按键抖动问题,采用四状态(空闲态、按下消抖态、等待释放态、释放消抖态)的状态机模型,通过20ms稳定时间判定实现可靠消抖。方案包含同步处理、边沿检测、状态转移等核心模块,并给出完整的Verilog实现代码。相比传统延时采样法,该设计具有输出稳定、抗干扰性强等优势,可有效解决按键抖动导致的误触发问题,适用于各类嵌入式系统和FPGA开发场景。

2026-01-03 10:20:58 910

原创 FPGA 学习必备:有限状态机(FSM)原理、编码方式与一段式 / 二段式 / 三段式详解

本文系统介绍了有限状态机(FSM)在FPGA设计中的应用。主要内容包括:Moore型和Mealy型状态机的区别,二进制编码、独热码和格雷码三种状态编码方式的特点,以及一段式、二段式和三段式状态机的实现方法。重点推荐三段式状态机写法,并提供了标准Verilog模板。文章还通过对比表展示了FPGA在并行运算、低延迟和可重构性方面的核心优势。最后总结了FSM设计中的注意事项,强调理解思想比死记写法更重要,规范结构是高质量代码的基础。

2026-01-02 20:20:58 965

原创 一文吃透通用 FPGA 开发流程(新手不再“能综合却跑不动”)

很多刚接触 FPGA 的同学都会有一个疑问:“我明明写了 Verilog,也能综合,为什么一下载到板子就不对?”其实问题往往不在代码本身,而是在 对 FPGA 完整开发流程理解不清。本文将结合课堂笔记与工程实践,系统梳理一遍通用 FPGA 开发流程,帮你建立从“写代码”到“芯片稳定运行”的完整认知。

2026-01-02 13:16:57 994

原创 UART串口发送逻辑优化详解:从定时发送到事件触发

本文总结了UART发送模块从固定定时发送改为事件触发发送的优化设计。通过引入Send_Go输入端口实现外部触发发送,新增数据锁存机制保证稳定性,设计tx_done完成标志避免数据冲突,并采用参数化波特率配置提升灵活性。优化后的模块解决了原有设计无法响应随机事件、资源浪费等问题,实现了更高效的异步串行通信控制。关键改进包括去除定时器逻辑、优化状态机设计等,使模块更适合实际应用场景需求。

2025-11-17 12:36:32 590

原创 FPGA实现UART串口自动发送模块设计——从理论基础到工程实践

摘要:本项目基于FPGA平台设计实现了UART串口自动发送系统,具备每秒自动采集8位拨码开关状态并通过9600波特率UART协议发送至PC端的功能。系统采用8位数据位+1位停止位的标准格式,无校验位和流控功能,发送完成后通过LED指示灯提供视觉反馈。硬件设计包含CH340E桥接芯片和电平转换电路,软件部分实现了精确的波特率计数器和1秒延时控制。通过模块化设计实现了数据采集、协议封装、串行发送的全流程,经测试系统运行稳定,误差小于0.01%,验证了设计的可靠性。

2025-11-07 16:22:56 1192

原创 【一文全解】五大经典串行通信协议:UART、SPI、I²C、RS-232与RS-485,从原理到应用,新手必看!

本文系统介绍了嵌入式系统中五大经典串行通信协议。首先解释了通信基础概念,包括串行/并行通信、同步/异步方式以及单工/双工模式。然后详细剖析了UART(通用异步传输)、SPI(高速全双工)、I²C(多设备总线)三种芯片级协议,以及RS-232和RS-485两种工业级物理层标准,分析了各协议的工作原理、连接方式、优缺点和典型应用场景。最后提供了选型指南:SPI适合高速外设,I²C适合多设备连接,UART用于简单调试,RS-485专为工业环境设计。通过生动比喻帮助读者理解不同协议的特点和应用场景。

2025-11-01 22:18:58 1193

原创 ESP32分布式烘干房控制系统重构:硬件成本零增加,架构全面升级!

本文通过一个烘干房控制系统改造案例,展示了如何在硬件成本基本不变的情况下实现架构升级。原集中式系统(基于Arduino Mega2560)存在通信不稳定、维护困难等问题。改造采用ESP32+RS485的分布式架构,硬件成本仅降1.2%,但系统可靠性从95%提升至99.5%,故障排查时间减少75%,3年运营成本节省超万元。同时实现了代码模块化重构,通信协议优化,并保留了未来云端监控、手机APP控制等扩展空间。案例证明:好的系统架构设计能让相同硬件发挥更大价值,真正的成本优化应着眼于总体拥有成本(TCO)而非单

2025-10-29 14:54:22 1219

原创 从Arduino到ESP32:智能杀青机I2C长距离通信困局与突围实战

本文分享了智能杀茶机项目中从Arduino Mega2560迁移到ESP32的实战经验。项目原使用I2C总线连接多路温湿度传感器,但在工业现场遇到3-5米长距离通信不稳定的问题。通过分析I2C协议缺陷,对比了三种解决方案:优化I2C系统、改用RS485通信和迁移到ESP32分布式架构。最终选择ESP32方案,利用其双核处理、WiFi/蓝牙和多硬件I2C接口等优势重构系统。采用主从分布式架构和面向对象编程重构代码后,系统性能显著提升:通信稳定性达99.9%,响应时间缩短80%,并支持远程监控。这一升级不仅解决

2025-10-25 22:08:13 1286

原创 【无标题】Verilog线性序列机原理与应用

本文介绍了Verilog线性序列机的原理与应用,通过两个LED控制任务展示了具体实现方法。任务1实现LED每500ms翻转一次,采用26位计数器完成精确计时,并提供了完整的Verilog代码、电路实现及仿真测试结果。任务2扩展了控制逻辑,使LED按更复杂的时间序列工作,展示了参数化设计方法。两个案例均包含代码实现、电路结构、仿真测试及波形分析,完整呈现了线性序列机在FPGA开发中的设计流程和应用要点。通过计数器与状态机结合的方式,实现了精确的时序控制功能。

2025-10-24 22:20:39 1119

原创 Verilog语言初步(一)

本文全面介绍了硬件描述语言Verilog的核心内容。主要包括:Verilog模块的基本结构(模块声明、端口定义、信号类型和逻辑功能);组合与时序逻辑设计方法;语言要素(常量、数据类型、参数、向量);各类运算符使用;以及阻塞/非阻塞赋值等关键技术细节。文章还解释了RTL、综合、仿真等专业术语,并总结了Verilog在数字电路设计中的特点和应用场景。通过学习Verilog的基础语法到高级应用,可以掌握数字系统设计的核心工具,为ASIC和FPGA开发奠定基础。

2025-10-15 21:18:15 863

原创 Verilog项目实战

本文展示了两个基于Verilog的LED控制实验。第一个实验设计了一个计数器,使学习板上的LED每500ms翻转一次状态,实际测试显示LED0实现了预期效果。第二个实验利用移位寄存器和38译码器原理实现了LED流水灯效果,在扩展板上观察到LED灯依次亮起的动态效果。两个实验均通过Vivado平台完成Verilog代码编写和功能验证,达到了预期目标。

2025-10-14 08:36:58 272

原创 Verilog 快速入门:从语法基础到实战设计

Verilog硬件描述语言入门指南 本文系统介绍了Verilog HDL的基础知识与设计方法。主要内容包括:1) Verilog模块的基本结构,包含端口定义和功能描述;2) 三种常用语句:assign连续赋值、always过程块和模块调用;3) 数据类型与赋值方式的区别;4) 运算符与控制语句的使用要点;5) 不同描述风格的对比;6) 通过四选一数据选择器实例演示实际应用。文章还解释了关键概念如RTL设计、逻辑综合等,并提供了时序分析的基本参数说明。作为数字电路设计的核心工具,Verilog的掌握对FPGA

2025-10-13 17:14:33 1280

原创 【AD课程笔记】零基础入门Altium Designer:第一周原理图&PCB绘制实录

快捷键是王道:P, T(布线),P, V(过孔),P, N(网络标签)…多用几次就记住了,效率飞起。布局定成败:好的布局是成功布线的70%。宁愿多花20分钟优化布局,也别在布线上痛苦1小时。封装是灵魂:原理图决定了电路对不对,封装决定了板子能不能用。工程思维第一:永远先建工程,再在工程里添加文件。善用网络和标签:让原理图清晰易读,是优秀工程师的素养。

2025-09-30 14:39:37 492

原创 FPGA时序逻辑电路设计实战:计数器原理与Vivado实现

时序逻辑电路与组合逻辑电路的根本区别在于:时序逻辑电路的输出不仅取决于当前输入,还与电路的前一状态相关。这种"记忆"功能使得时序逻辑能够实现计数器、状态机等复杂功能。

2025-09-30 00:45:10 1946

原创 Vivado仿真BUG解决“concurrent assignment to a non-net“错误分析与修复

当我们在模块层次(不在任何过程块内)对reg类型变量使用assign语句或直接赋值时,就会触发这个错误。2、变量类型(Variable Type):reg, integer, real 等。// 从DUT输出的信号定义为wire。1、线网类型(Net Type):wire, tri, wand 等。// 如果需要驱动,保持为reg。// 定义为reg类型。// 错误定义:将测试信号定义为reg却使用并发赋值。// 正确定义:输入信号用reg,输出信号用wire。方案二:在过程块内赋值reg类型。

2025-09-29 23:17:52 614

原创 ZYNQ SOC FPGA 之三八译码器

是一种多输入多输出的组合逻辑电路,负责将二进制代 码翻译为特定的对象(如逻辑电平等),功能与编码器相反。应用中,如果需要保证一定的速度情况下实现此功能,一般选取外挂一片 74HC38。可自行分析其他状态,最终得出逻辑代码符合既定的设计要求,至此功能仿真结束。的工 程,只需按名称筛选该芯片型号即可。提供了一个完整的想象以及实现空间,仅靠其自身即可实现设计要求。图标打开 VIVADO 开发环境,按如下操作步骤进行。译码器的初始状态,即 led 最低位点亮。种输出状态,其真值表如下表所示,其中 A。

2025-09-27 21:10:06 716

原创 小梅哥FPGA实战:二选一多路器

小梅哥的FPGA教程以实战性强、逻辑清晰著称,尤其适合初学者。可以提到课程中具体的亮点,比如Verilog语法讲解细致、开发板配套资料完善,或案例分析(如状态机设计)的实用价值。

2025-09-16 22:07:11 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除