FPGA 简介
1. FPGA 中文名:现场可编程门阵列
其中'现场'指其可重复写入,'门阵列'指其根据查找表输出,可编程则是 FPGA 与 CPU 之间最主要的区别,能够改变逻辑门单元之间的硬件逻辑。
2. FPGA 内部结构
FPGA 由许多'可配置逻辑模块'(Configurable Logic Block,CLB)、输入/输出单元(I/O Block,IOB)和分布式的可编程互联矩阵(Programmable Interconnection Matrix,PIM)组成。

3. CPU、DSP 和 FPGA 的区别
CPU 具有比较强的事务管理功能,可以用来跑 UI 以及应用程序,CPU 优点主要在于擅长控制。DSP 主要是来做计算,例如加解密算法,调制解调等,其优势是强大的数据处理能力和较高的运行速度。FPGA 主要使用 Verilog 进行编程,灵活性强,并行处理度高,可编程,可以做到很高的带宽处理。
FPGA 开发流程
本文将以点亮 LED 灯为例,梳理 FPGA 的开发流程
标准的 FPGA 开发流程如下图所示:

0. FPGA 工程管理

- doc:用来存放辅助文档,如波形图,系统框图等
- prj:用来新建工程及产生的文件
- rtl:开发过程中使用的 .v 格式的 RTL 文件
- sim:仿真工程与仿真文件,内部通常还有一个 tb 文件夹
1. 需求分析

点亮 LED 灯是使用开发板上的按键 key0 来控制 led0 灯的亮灭。
当按键按下,LED 灯被点亮,按键松开,LED 灯熄灭。




































