FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种灵活的可编程逻辑器件,它允许用户根据需要进行编程和配置,实现不同的功能。FPGA烧写原理的核心是将设计好的逻辑电路转化为可执行的二进制文件,然后通过编程器将这些二进制文件写入FPGA芯片中1。 烧写过程主要包括以下几个步骤:
- 设计师使用硬件描述语言(HDL),如VHDL或Verilog,来描述所需的逻辑电路。
- 使用综合工具将HDL代码转化为逻辑门级的网表文件,这个网表文件描述了逻辑电路中各个逻辑门之间的连接关系。
- 使用布局工具将逻辑门级的网表文件转化为物理布局文件,这个物理布局文件描述了逻辑电路在FPGA芯片上的实际位置和布局。
- 最后,通过编程器将物理布局文件或二进制文件写入FPGA芯片中,完成烧写过程1。
FPGA的工作原理基于查找表(Look-Up-Table,简称LUT),LUT本质上是一个RAM。FPGA通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现不同的逻辑功能5。主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。 FPGA的配置模式有多种,包括并行模式、主从模式、串行模式和外设模式。目前,大多数FPGA芯片都使用基于SRAM的查找表,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失5。 FPGA的烧写方式主要有主动配置方式(AS)和被动配置方式(PS),以及常用的JTAG方式。主动配置方式是下载.pof文件到FLASH中,掉电保存;而JTAG方式则是下载.sof文件到FPGA的SRAM中,掉电不保存6。在实际应用中,可以选择适合的配置方式来实现FPGA的烧写。 |