FPGA烧录软件的本质,是充当设计代码与硬件之间的翻译官与信使。它负责将用户设计的逻辑电路(HDL代码)转换并载入FPGA芯片,使其具备特定功能。其核心工作流程可概括为下图。

1、比特流生成:从代码到配置
综合与实现:软件首先将硬件描述语言(HDL) 代码(如Verilog或VHDL)通过综合、映射、布局布线等步骤,转换成FPGA内部逻辑资源(如LUT、触发器、布线资源)的精确配置信息。
生成比特流:最后,软件将这些布局布线后的数据打包生成一个比特流文件(如Xilinx的.bit文件或Intel的.sof文件)。这个文件本质上是一个庞大的二进制数组,定义了FPGA内部每一个可配置点的状态(0或1),从而塑造出用户所需的数字电路。
2、烧录模式
比特流文件生成后,需要通过烧录软件和下载电缆将其注入FPGA。根据目标存储器的不同,主要有两种模式:

3、JIC文件烧录
对于固化模式(以Altera/Intel的JIC文件为例),烧录过程并非直接写入,而是让FPGA"客串"了一次Flash烧录器,其精髓在于两步走:
加载临时工(Flash Loader):烧录软件首先通过JTAG,将一个特殊的Flash Loader固件(一段预设计的逻辑)下载到FPGA中。此时,FPGA变成一个专用的Flash烧写控制器。
执行核心任务(写入Flash):这个"临时工"(Flash Loader)随后接收来自JTAG接口的、包含用户设计的真正配置文件,并按照SPI协议的时序,将数据写入到连接在FPGA上的外部Flash芯片中。
4、高级特性
为了提升系统可靠性,尤其是在产品发布后需要远程升级的场景,FPGA烧录方案引入了更复杂的机制,例如Xilinx的远程更新双镜像策略。
双镜像备份:在外部Flash中存储两个比特流镜像——一个称为Gold Image,作为稳定可靠的备份;另一个是Update Image,用于日常启动和更新。
安全更新流程:远程更新时,采用一种谨慎的步骤,先擦除Update Image的大部分并写入新数据,进行CRC校验,确认完整无误后,才最后写入关键的同步头。这确保了即使在更新过程中断电,系统仍能回退到Gold Image启动,变砖风险极低。
本文凡亿教育原创文章,转载请注明来源!
暂无评论