"芯航线FPGA学习套件配置文件(JIC文件)固化教程"
本文主要讨论的是FPGA(Field-Programmable Gate Array)的配置文件固化过程,特别针对芯航线的FPGA学习套件,使用JIC(JTAG Image Configuration)文件进行固化的教程。在了解FPGA的固化之前,我们先来看看单片机(MCU)的程序存储原理。在MCU中,程序固件被烧写到片上程序存储器ROM,通常是FLASH存储器,使得程序能在断电后仍然保持,重新上电后继续运行。
FPGA与MCU不同,它采用基于SRAM(Static Random-Access Memory)的查找表进行逻辑配置。这种结构的优点在于能快速重构逻辑,但缺点是SRAM的数据在断电后会丢失。因此,当我们使用JTAG(Joint Test Action Group)接口将.SOF(System Object File)配置文件下载到FPGA中,一旦电源断开,配置数据就会消失,导致FPGA在下次上电时无法运行之前下载的固件。
为了实现FPGA的固态配置,即上电后自动加载有效的配置数据,采用了一种叫做主动串行配置的方法。这种方法需要在FPGA外部添加一个非易失性存储器,如EPCS(Enhanced Parallel Configuration System)、QFLASH或并口FLASH,来保存设计的电路固件。FPGA内部有专门的硬件电路,在启动时自动从这个外部存储器读取固件,配置到每个SRAM单元中。这种配置方式使得FPGA在不改变其查找表结构的前提下,能确保每次上电都有正确的配置数据。
传统的Altera FPGA通常推荐使用其专有的EPCS芯片作为配置器件,这是一种SPI(Serial Peripheral Interface)接口的串行FLASH,经过了Altera的严格验证。然而,随着技术的进步,其他厂商生产的SPI接口FLASH芯片也能满足EPCS的技术标准,因此Altera放宽了限制,允许使用第三方芯片替代EPCS。芯航线的starterboard就采用了这样的非EPCS SPI接口的FLASH芯片来实现FPGA的配置。
JIC文件是用于JTAG配置的一种格式,它包含了完整的配置数据,可用于通过JTAG链路将配置数据加载到FPGA的外部配置芯片中。固化JIC文件的过程涉及到将JIC文件编程到SPI FLASH中,然后在FPGA上电时,通过SPI接口读取这些数据,完成配置。这一过程对于批量生产及部署FPGA系统至关重要,因为它确保了设备在无须额外编程设备的情况下就能正常工作。
FPGA的配置文件固化是通过外部非易失性存储器,如SPI FLASH,配合主动串行配置机制来实现的。JIC文件则扮演了将设计逻辑保存并加载到FPGA的角色。芯航线的FPGA学习套件提供的教程,旨在帮助用户理解和掌握这一关键的FPGA配置技术。