Intel 或 Xilinx 的 FPGA 芯片,基于使用 SRAM 结构搜索表,而 SRAM掉电数据会丢失的一大特点。
当使用 JTAG 将 SRAM 配置文件(.sof)配置到 FPGA 这些数据直接存储在芯片中 SRAM 在结构搜索表中,因此,一旦芯片断电, SRAM 数据将丢失,再次上电后, SRAM 中将不再有效地使用数据 JTAG 下载 SOF 固件到 FPGA 中后,板子重新上电,则之前下载的固件又不在了的原因。
普通的 MCU 片上程序存储器内部集成 ROM,都是FLASH存储器,FLASH存储器可以断电以保持数据,因此程序可以在断电后保存。
系统设计完成并验证后, 希望 FPGA 电路固件可以永久保持,即让路 FPGA 有效数据写在上电后的搜索表中。但是,系统每次上电都不能总是使用 JTAG 下载程序固件。 FPGA 支持另一种配置方式:
所谓主动串行配置,就是在 FPGA 在芯片外部放置一个可以在不丢失电源数据的情况下丢失的存储器,如最常见的存储器 EPCS、 QFLASH、并口 FLASH,存储设计好的电路固件。
而 FPGA 在芯片内部,设计了一个特殊的硬件电路,主动读取存储器中的固件,并配置到芯片上 FPGA 每个芯片 SRAM 中去。
通过这种方式,我们可以不改变 FPGA 芯片 SRAM 在工艺搜索表结构的前提下, 每次上电后,芯片都能获得有效的配置数据。外部存储电路配置信息的芯片称为配置芯片。
早前, 原 Altera 公司只能使用自己销售的公司规定 EPCS 芯片作为外部配置设备 EPCS 芯片的本质是一个 SPI 接口的串行 FLASH 芯片, 只是路过Altera 的严格测试,性能优异。近年来,随着芯片生产技术的不断发展,许多其他制造商生产 SPI 接口的 FLASH 芯片也能达到 EPCS 因此,技术标准Altera 放开限制,指出可以由其他芯片制造商生产 SPI 接口的 FLASH芯片代替 EPCS。在芯路恒的 AC620 使用华邦公司生产的一块 16Mbit 的串行 FLASH 芯片 W25Q16 作为配置芯片。该芯片性能优异,性价比较高,完全能够达到 EPCS 性能标准。
有两种方法可以将设计好的配置固件固化到设备中。
第一种方式,也就是传统的方式,是使用专用 AS 接口(与 JTAG 10 针接口独立)直接烧写配置芯片,需要在电路板上设置独立的芯片 AS 接口,占用 PCB 板材面积大,使用不方便。
第二种方法也是现在流行的方法 JTAG 接口,经 FPGA 芯片间接烧写配置芯片。附第二种配置方法
JIC文件烧录步骤:
1.打开需要固化的FPGA设计工程;
2.点击File->convert programming Files… 3. 在弹出窗口中, Programming file type 选择 JTAG Indirect Configuration File(.jic), Mode 选择 Active Serial, Configuration device 选择 EPCS16, File name 默认是 output_file.jic, 在这里,要养成良好的习惯,把它改成与顶层文件相同的名称。 4. 在 input files to convert 一栏中, 点击 Flash Loader 单击右侧 Add Device选项。 5. 点击 Add Device 在弹出选项卡中选择正确的选项后, 然后点击 OK, 如下图所示: 6. 点击 OK 回到之前的配置页面,然后再次单击鼠标 SOF Data, 点击右侧 Add File, 7. 在弹出窗口中, 在 output files 找到文件夹下的文件夹.sof” 文件,点击 open,可添加, 8. 点击 open 回到配置页面后,单击 Generate 按钮, 如下图所示 9. 点击 Generate 按钮后, 软件开始转换文件,成功转换后弹出成功提示窗口, 10. 点击 OK 即可, 然后 close 窗口。
11.打开 Quartus下载工具 programmer,将原有的 sof 移出文件,重新添加.jic 文件进来,勾选 programming/configuration, 如下图所示: 12.设置完成后,单击 Start( 前提是下载器已与开发板正确连接), 软件开始烧录固件, 整个烧录时间大约需要花费 20 秒钟左右。 烧录完成后, 此时固件已保存在配置芯片中,但此时此刻 FPGA 该固件不能运行, 因为当前的固件是存在配置芯片中的,并没有被配置到FPGA 因此,需要让步 FPGA 执行从芯片配置中主动配置固件的过程, 方法很简单,断电后可以重新上电。断电再上电,固件仍保持, 完成整个设计固化工作。
标签: 182jic集成电路