news 2026/6/9 17:27:57

硬核干货|FPGA 基础知识笔记汇总,你想查的这里都有

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
硬核干货|FPGA 基础知识笔记汇总,你想查的这里都有

在 FPGA 学习和实际开发过程中,很多人都会遇到一个问题:
资料看了不少,但知识点零散、概念混乱,用的时候还是要重新查。

这篇文章不讲“成功学”,也不走速成路线,而是从工程与学习实践角度,对 FPGA 常见的基础知识点做一次系统整理,方便随时查阅、反复回看,适合作为长期笔记型文章收藏


一、FPGA 是什么?一句话版本

FPGA(Field Programmable Gate Array,现场可编程门阵列)是一种可重复配置的数字逻辑器件,用户通过硬件描述语言对其内部逻辑资源进行配置,从而实现特定的数字功能。

它的核心特点不是“快”,而是:

  • 硬件并行

  • 结构可定制

  • 靠时序和资源说话


二、FPGA 的基本结构组成

从硬件结构上看,大多数 FPGA 主要由以下几部分构成:

1. 可编程逻辑单元(CLB / Logic Cell)

  • LUT(查找表)+ 触发器(FF)组成

  • LUT 本质是一个小型存储器,用来实现组合逻辑

  • FF 用于时序逻辑与状态保存

👉 FPGA 的“逻辑能力”,主要就体现在这里。


2. 可编程互连资源

  • 用于连接不同逻辑单元

  • 决定了信号如何在芯片内部流动

  • 时序收敛、布线延迟密切相关


3. IO 资源

  • 支持多种 IO 标准(LVCMOS、LVDS 等)

  • 需要通过约束文件指定电平、驱动能力、管脚位置


4. 专用硬件资源

不同厂商略有差异,常见包括:

  • Block RAM(片上存储)

  • DSP Slice(乘加、滤波等)

  • PLL / MMCM(时钟管理)


三、FPGA 常用开发语言

1. Verilog / SystemVerilog

  • 工程中使用最广

  • 语法相对简洁,贴近硬件

  • 适合模块化、工程化开发

2. VHDL

  • 语法严谨、强类型

  • 在部分行业和项目中仍有使用

⚠️ 注意:
HDL 不是“高级编程语言”,而是硬件结构描述语言,写的不是“执行流程”,而是“电路连接关系”。


四、组合逻辑与时序逻辑(核心基础)

1. 组合逻辑

  • 输出只与当前输入有关

  • 不依赖时钟

  • 常见:加法器、译码器、逻辑判断

2. 时序逻辑

  • 输出与历史状态有关

  • 依赖时钟和触发器

  • 常见:寄存器、状态机、计数器

📌 工程实践中:

所有复杂系统,最终都是“组合逻辑 + 时序逻辑”的组合。


五、时钟与复位(最容易踩坑的地方)

1. 时钟设计基本原则

  • 一个时钟域,尽量只干一件事

  • 跨时钟域必须处理(FIFO / 打拍 / CDC)

  • 不随意使用门控时钟

2. 复位设计建议

  • 统一复位策略(同步 / 异步)

  • 避免复位信号乱飞

  • 复位不是“万能清零键”,而是设计的一部分


六、状态机(FSM)基础

状态机是 FPGA 设计中的高频结构,常见写法包括:

  • 一段式

  • 两段式

  • 三段式(工程中更清晰)

基本要素:

  • 状态定义

  • 状态跳转条件

  • 状态输出逻辑

👉 本质是:“用寄存器保存状态,用组合逻辑控制跳转”


七、约束文件的重要性(不是“可选项”)

很多新手容易忽略约束,实际工程中:

  • 管脚不约束 → 板子不一定能跑

  • 时钟不约束 → 时序分析毫无意义

  • IO 标准不约束 → 有风险甚至损坏硬件

📌 约束 ≠ 编译通过
📌 约束 = 工程是否可靠


八、仿真与调试的基本认知

1. 仿真不是“可有可无”

  • 行为仿真:验证逻辑正确性

  • 时序仿真:关注延迟与边界

2. 板级调试常见手段

  • LED / GPIO 验证

  • ILA / SignalTap 抓信号

  • 分模块逐步定位问题


九、新手常见误区汇总

  • 把 FPGA 当 MCU 用

  • 不看时序,只看波形

  • 代码能综合 ≠ 设计合理

  • 迷信“高频”“高性能”,忽略稳定性


十、写在最后

FPGA 学习并不存在“一步到位”,
基础知识 + 工程理解 + 反复实践,才是最稳的成长路径。

这篇文章更像是一份长期可用的基础笔记索引,后续无论是做项目、看代码,还是回头查概念,都可以作为参考。

如果你正在系统学习 FPGA,建议把这类基础知识文章当成“工具”而不是“速成教程”

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

3.7 BinaryReader和BinaryWriter

1.BinaryReader和BinaryWriter简介 2.BinaryReader和BinaryWriter示例1.BinaryReader和BinaryWriter简介 a.BinaryWriter: 将.NET 基本类型(int、float、string、byte [] 等)写入流(FileStream、MemoryStream等),按二进制格式存储(而非文本), 体积更小、读写更快b.BinaryReader…

作者头像 李华
网站建设 2026/6/7 11:01:27

什么是粗排和精排

在 RAG、推荐系统、搜索引擎等场景中,粗排(Coarse-grained Ranking) 和 精排(Fine-grained Ranking) 是一套 **“先海选、再精选”** 的两级检索排序策略,核心目的是在保证检索效率的前提下,大幅…

作者头像 李华
网站建设 2026/6/7 12:32:54

soular实践教程 - 如何使用soular统一管理TikLab帐号

soular是DevOps工具套件的帐号与门户中心,包含账号管理、认证管理、工作台管理等功能,产品简洁易用、开源免费。本文主要介绍soular的账号管理1、用户管理1.1 创建用户登录系统->系统设置->用户与权限->用户->添加用户添加用户属性说明属性是…

作者头像 李华
网站建设 2026/6/7 11:14:47

sward实践教程 - Markdown的创建与管理

Sward是一款国产开源知识管理工具,提供知识库管理、文档管理、Markdown编辑、内容分享等核心功能,整体设计轻量、简洁且易用。其内置的Markdown功能尤其适用于技术文档编写、博客创作与日常笔记整理等多种场景。本文将重点介绍如何在Sward中添加和管理Ma…

作者头像 李华
网站建设 2026/6/8 15:41:35

靠谱的厌氧池清淤哪有

厌氧池清淤哪家好:专业深度测评开篇:定下基调厌氧池在污水处理中扮演着重要角色,但随着时间的推移,池内会积累大量污泥,影响处理效果。因此,定期清淤成为必不可少的工作。本文将对市面上主要的厌氧池清淤服…

作者头像 李华
网站建设 2026/6/8 15:24:10

【拯救HMI】HMI容错设计:如何减少操作失误并快速纠错?

在复杂、高压的工业环境中,操作失误难以完全避免。容错设计的哲学不是追求“零错误”,而是承认“人会犯错”,并通过系统设计来 “预防错误发生、减轻错误后果、提供快速恢复路径” ,将人为失误对生产系统的影响降至最低。一、 预防…

作者头像 李华