FPGA 上到底有哪些硬件资源?这次一次性整理清楚
很多人刚学 FPGA 的时候容易把注意力全放在 Verilog 语法上。写always、写状态机、写计数器这些当然重要但如果一直停留在“代码层”后面就会越来越容易卡住。因为 FPGA 和单片机、Linux 软件不一样它不是在执行程序而是在把代码映射成真实的硬件资源。所以从某个阶段开始必须建立一个意识你写的 RTL最后到底落在了 FPGA 的哪些资源上这篇文章就做一件事把 FPGA 上常见的硬件资源整理成一张比较完整的地图。尽量把“资源是什么、拿来干什么、平时会怎么用”讲清楚。为什么这件事值得搞明白很多初学者会遇到这些问题为什么同样是加法器有时候时序能过有时候不过为什么有的存储适合用 BRAM有的更适合 LUT为什么时钟不能随手在逻辑里翻转出来就拿去用为什么串口、LCD、ADC、DDR 这些接口最后都会落到不同的资源上为什么综合报告里总在讲 LUT、FF、BRAM、DSP、IO、BUFG这些问题的本质其实都和 FPGA 的底层资源类型有关。说得直接一点不会看资源代码就只是“能写”会看资源设计才开始变成“能做”。先建立一个总图如果把 FPGA 看成一座城市那它内部大概可以这么理解LUT FF是最基础的居民楼数量最多Carry Chain是快速高架专门帮你做加法和计数BRAM是仓库负责大块存储DSP是工厂负责高效做乘法、乘加IO / Bank是城门负责和外部芯片打交道PLL / MMCM / BUFG是时钟系统负责全城同步SERDES / GT是高速铁路负责高速串行传输ILA / XADC是监控系统负责调试和状态观测Hard CPU / PCIe / DDR 控制器则更像是片上的特殊基础设施下面就按这个思路往下拆。一、逻辑资源你写的大部分 RTL最后都会先落到这里这一类资源最常见也最值得最先理解。1. LUTLUT 是查找表本质上可以理解成一个小型真值表存储器。你平时写的很多组合逻辑比如if/elsecase比较器译码器多路选择器最后大概率都会映射到 LUT。所以 LUT 不只是“门电路”的替代它其实是 FPGA 实现组合逻辑的核心单位。2. FF / RegisterFF 就是触发器也就是寄存器资源。它的作用非常明确打拍保存状态形成流水线存计数器值存状态机当前状态如果说 LUT 负责“算”那 FF 就负责“记”。3. Carry Chain这个资源非常容易被忽略但实际非常重要。Carry Chain 是 FPGA 里的专用进位链主要用来做加法器减法器计数器比较器为什么它重要因为如果完全用 LUT 去拼加法速度和时序通常都不如专用进位链。很多时候你看到“这个计数器很轻松就过时序”背后就有 Carry Chain 的功劳。4. MUX 和逻辑块MUX 多路选择器本身不算“独立大类资源”但在设计里经常出现。状态切换、数据通路选择、时序控制里几乎到处都有它。至于 CLB、Slice、LAB、LE 这些名字可以先简单理解成它们是厂商对一组基础逻辑资源打包后的物理单元命名。Xilinx 常见CLB/SliceIntel/Altera 常见LAB/LE。二、存储资源别什么都用寄存器硬堆很多人刚开始写模块时最容易犯的一个问题就是明明应该用专用存储资源结果全堆在寄存器或者 LUT 上。1. BRAMBRAM 是块 RAM片上专用存储资源。典型用途行缓存图像缓存查表FIFO双口 RAM参数缓存它的特点是容量大、速度快、结构稳定很适合中大容量数据。2. Distributed RAM这个资源其实是用 LUT 组织出来的小 RAM。适合小容量表小缓存小 ROM一些分散的存储结构它的好处是灵活但会占逻辑资源。3. ROMROM 很常用于正弦查表字模表系数表状态表在 FPGA 里ROM 可以由 BRAM 实现也可以由 LUT 实现具体取决于容量和写法。4. FIFOFIFO 是开发里特别常用的一类缓冲结构。典型用途串口接收缓存视频流缓存数据搬运解耦跨时钟域传输尤其是异步 FIFO几乎是 CDC 入门里必须掌握的结构。5. 移位寄存器 / SRL这类资源常用于固定延迟滑动窗口FIR 延迟链串并转换有些 FPGA 能直接把 LUT 配成移位寄存器这在图像和 DSP 场景里会很常见。三、时钟资源很多问题不是逻辑错了而是时钟没处理好FPGA 设计里时钟从来都不是普通信号。1. PLL / MMCM这类资源最常见的作用是倍频分频相移占空比调整时钟整形像 LCD、VGA、DDR 这种项目几乎都会碰到。2. BUFG / BUFH / BUFR这些是时钟缓冲资源用来把时钟送到专用时钟网络上。很多初学者会直接写逻辑分频然后把分频结果当新时钟到处跑。短期可能能亮灯但工程上通常不推荐。因为偏斜不可控约束更难时序分析更麻烦所以更规范的做法一般是用 PLL/MMCM 生成时钟或者尽量用clock enable时钟分发走专用缓冲资源3. 全局时钟网络这个资源虽然你平时不会手动去“画线”但它的存在很关键。因为时钟必须优先走专用低偏斜网络而不是像普通数据那样随便布线。四、I/O 与 Bank代码写对了不代表外设就一定能接对这部分是很多软件背景同学容易忽略的。1. IOBIOB 是输入输出单元是 FPGA 连接外部世界的入口。平时接这些都会经过它LCDADCDACUART按键LEDSPI Flash2. BankBank 可以理解成一组 IO 的分区管理单元。它最重要的意义是同一组 IO 往往共享电压条件某些标准只能在特定 Bank 里用高速接口、差分接口常和 Bank 规划强相关所以 Bank 不是“封装图里一个无关紧要的区域”它直接影响你的接口能不能放得下、能不能跑得稳。3. IO Standard这个就是电平标准比如LVCMOSLVTTLLVDSSSTLHSTL你要和外部芯片通信就必须匹配它的电气标准。这个在 XDC 约束里经常会配。4. 其他 IO 细节还有一些经常会用到但一开始不太显眼的配置驱动强度上升下降沿速度上拉/下拉差分对这些东西在低速实验里不一定敏感但到了高速、长线、抗干扰要求高的系统里会越来越重要。五、串并转换与高速接口资源如果项目开始接摄像头、LVDS、DDR 或一些源同步接口这一块就绕不过去。1. ISERDES / OSERDES它们主要做的是串行转并行并行转串行适用于摄像头数据接收高速显示输出LVDS 类接口2. IDDR / ODDR这类资源主要在双边沿采样、双边沿输出时出现。像 DDR 风格接口或者一些需要更高吞吐但时钟不想继续翻高的场景常会用到。六、DSP 资源不是所有乘法都该用 LUT 硬拼DSP Slice 是 FPGA 很重要的一类资源尤其对以后往 AI、图像处理、滤波方向走的人来说越早认识越好。它最适合做乘法乘加累加加减法链路典型场景FIRFFT矩阵乘法图像卷积定点运算一句话概括DSP 资源就是片上专门干“高效算术”的地方。七、互连资源时序很多时候输在“路太远”这一类资源平时不容易直接感知但它其实时时都在发挥作用。FPGA 里有全局布线长线短线局部布线各类专用互连这些东西决定了逻辑之间怎么连接距离远不远延迟大不大时序能不能过所以很多时候设计时序不过不是算法错了而是逻辑级数太深扇出太大布线太长结构不适合实现八、硬核资源不是所有功能都靠 LUT 和 FF 堆出来很多现代 FPGA 里会有一些硬核资源比如ARM CPUDDR 控制器PCIe 控制器以太网 MAC高速收发器 GT这类资源的特点是功能复杂性能高资源利用率更好比自己用 RTL 从头搭省很多事如果以后你做的是Linux FPGASoC FPGA高速采集卡网络或视频平台这些硬核资源会越来越常见。九、调试和配置资源真正上板以后你会非常感谢它们存在很多文章在讲 FPGA 资源时容易忽略这块但从实际开发角度说它们很重要。1. JTAG 和配置资源这部分决定bitstream 怎么下载板子怎么启动配置是从 JTAG 来还是从 Flash 来2. ILA / VIO这是 FPGA 开发里非常实用的调试资源。它们能帮你在线抓波形看状态机看 FIFO 状态看接口握手人工改某些调试信号很多“仿真看着没问题上板就不对”的问题最后都得靠它们查。3. XADC / 系统监测这个资源更偏系统健康监控比如温度电压某些模拟量观测在一些产品化和高可靠性系统里很有用。十、如果从开发动作反推资源该怎么理解这个角度通常最适合初学者。比如写状态机本质上在消耗LUT FF写计数器本质上在消耗FF Carry Chain写缓存本质上在考虑BRAM还是Distributed RAM写乘法滤波本质上会尽量用DSP做跨时钟域本质上要用同步器或者FIFO做 LCD、摄像头、高速接口就开始大量碰到IO 时钟资源 约束也就是说代码只是入口资源才是落地。十一、初学者最适合怎么学这些资源如果一开始就按“器件白皮书”顺序硬啃很容易乱。更自然的顺序是LUT FFCarry ChainBRAM / FIFO / ROMIO / Bank / 电平标准PLL / MMCM / BUFGDSPSERDES / DDR IOHard IP / SoC / GT这个顺序和大多数人的成长路线更一致先会写基础 RTL再接触缓存和接口再碰时钟和时序最后再进入高速和系统级资源总结如果把这篇文章压缩成一句话那就是FPGA 设计不是“写 Verilog”这么简单而是把功能映射到合适的片上资源并通过时钟、布线和约束把它稳定跑起来。当你开始有意识地区分这段逻辑更像消耗 LUT 还是 DSP这块缓存该放 BRAM 还是 LUT RAM这个接口主要依赖 IO 还是 SERDES这个时钟该用逻辑分频还是 PLL/MMCM你就已经从“会写代码”往“会做 FPGA 系统”走了。如果后面继续往 Linux FPGA、图像处理、AI 加速、车载接口这些方向走这张资源地图基本都会反复用到。如果把这篇内容作为后续学习入口我自己的建议是先把LUT、FF、BRAM、DSP、PLL、IO Bank这几块吃透后面再去看 GT、SERDES、硬核接口会顺很多。

相关新闻

Xilinx Zynq-7000 7个关键引脚详解:POR_OVERRIDE到PS_INIT_B的硬件设计指南

Xilinx Zynq-7000 7个关键引脚详解:POR_OVERRIDE到PS_INIT_B的硬件设计指南

Xilinx Zynq-7000关键引脚硬件设计实战指南 1. 核心引脚功能解析与电路设计要点 Zynq-7000系列作为Xilinx推出的PSPL架构SoC器件,其专用控制引脚的设计直接影响系统稳定性和调试效率。我们将深入分析7个关键引脚的设计考量: 引脚名称 电平特性 典型连…

2026/7/8 1:06:21阅读更多 →
23个测试全绿,一个Token没花——LLM应用的单元测试该怎么写?

23个测试全绿,一个Token没花——LLM应用的单元测试该怎么写?

你写了个AI应用,功能跑通了,效果不错。然后你想加个单元测试——assertEquals("Java是编程语言", model.chat("Java是什么"))——跑了一次,过了。再跑一次,挂了。再跑一次,又过了。 这不是玄学&am…

2026/7/8 1:06:21阅读更多 →
火山引擎 Supabase 正式融入 Agent Plan,CLI + Skills 保姆级上手教程来了

火山引擎 Supabase 正式融入 Agent Plan,CLI + Skills 保姆级上手教程来了

火山引擎 Supabase 及方舟 Agent Plan 概述 火山引擎 Supabase 是以 AI 原生数据库管理平台(AI Native Database Platform,简称 AIDAP)推出的面向企业应用及 Agent 研发的 AI-Native BaaS 产品。它基于火山引擎 Serverless PostgreSQL&#…

2026/7/8 1:01:21阅读更多 →
基于RC6与位平面分解的图像加密系统设计与Matlab实现

基于RC6与位平面分解的图像加密系统设计与Matlab实现

1. 项目概述:当图像安全遇上现代密码学最近在整理一些关于多媒体安全的老项目,发现一个挺有意思的组合:用RC6这种现代分组密码,结合图像处理里经典的位平面分解技术,来构建一个图像加密解密系统。这听起来像是个课程设…

2026/7/8 2:06:25阅读更多 →
2026项目管理系统横向盘点:从工具到平台的进化之路

2026项目管理系统横向盘点:从工具到平台的进化之路

项目管理系统经历了从"Excel微信群"到专业工具,再到企业级平台的演变。如今的项目管理系统,已经不仅仅是管进度、管任务,而是要与财务、人事、客户、协同深度整合,成为企业运营的核心枢纽。 ‌一、致远互联:协同型项目管理的开创者‌ 在国内协同型项目管理领域,致远…

2026/7/8 2:06:25阅读更多 →
人生躺平的最小单位是什么?

人生躺平的最小单位是什么?

"躺平"并不是一个统一的心理状态。 有的人说"躺平",是主动降低欲望,过简单生活;有的人说"躺平",实际上是因为长期压力、反复受挫或精力耗尽,已经很难再行动。这两种情况的心理机制并不一…

2026/7/8 2:06:25阅读更多 →
变量查看与修改

变量查看与修改

在使用 GDB 调试程序时,除了控制程序的运行流程以外,最常见的操作就是查看变量的值、查看参数的值,以及在调试过程中临时修改某些变量的值。通过这些命令,可以观察程序运行时的数据变化,从而判断程序逻辑是否符合预期。…

2026/7/8 2:06:25阅读更多 →
LeetCode 984.不含AAA或BBB的字符串

LeetCode 984.不含AAA或BBB的字符串

给定两个整数 a 和 b ,返回 任意 字符串 s ,要求满足: s 的长度为 a b,且正好包含 a 个 ‘a’ 字母与 b 个 ‘b’ 字母; 子串 ‘aaa’ 没有出现在 s 中; 子串 ‘bbb’ 没有出现在 s 中。 示例 1&#xff1…

2026/7/8 2:06:25阅读更多 →
测试转大模型:上线前最该检查的几件事

测试转大模型:上线前最该检查的几件事

这篇我按“先跑起来、再讲取舍”的方式写《测试转大模型:上线前最该检查的几件事》。概念会讲,但重点放在代码怎么组织、哪里容易踩坑。 摘要 先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做,以及…

2026/7/8 2:01:24阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
作为一个给团队打绩效的人,我想说几句

作为一个给团队打绩效的人,我想说几句

我每半年都会给团队成员打绩效,也会参与和 CTO 的绩效校准,所以从管理者的视角,说说这件事 首先,我先把结论告诉你:接受结果,但一定要把原因问清楚。 因为当绩效公布到你这里的时候,结果基本已…

2026/7/8 0:01:17阅读更多 →
A股股指期货:全维度解析(多表格结构化完整版)

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货,是中国金融期货交易所(中金所)上市的标准化金融期货合约,交易标的为 A 股大盘指数,约定未来特定时间按约定价格现金交割指数涨跌差价,不交割一篮子股票…

2026/7/8 0:01:17阅读更多 →
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

2026/7/8 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →