sof_pof_jic_elf程序下载方法

时间:2024-04-12 14:21:45

目录

1. FPGA下载文件简介

2. FPGA下载文件特点比较

3. 下载文件的烧写方法

(1)sof

(2)pof

(3)jic

(4)elf

4. 参考


1. FPGA下载文件简介

        FPGA常见的下载文件格式有sof、pof、jic和elf,通常称.sof 文件和.pof 文件为FPGA“硬件”或“固件”文件。

        sof为FPGA内部SRAM配置数据,通过JTAG下载,下载后实现FPGA的硬件功能,掉电后即挥发。

        pof为配置器件Flash数据,通过AS模式下载到配置器件内,掉电后重新上电时FPGA会自动从配置器件内读出配置数据,然后配置FPGA内部的SRAM,实现FPGA的硬件功能。如果设计中包含NIOS,pof中仅仅包含NIOS的硬件,上电后配置后NIOS存在于FPGA内,NIOS会根据设定在预设的Memory空间取指运行。另外,pof文件可以转换成jic文件,通过JTAG方式下载到EPCS内,因此硬件设计可以省掉AS配置接口。

         jic文件为JTAG间接配置文件(JTAG Indirect Configuration File),使用QuartusII File菜单下Convert Programming File命令将.sof文件转换生成,然后使用QuartusII的Tools菜单下Programmer命令下载到FLASH中(注意:jic文件下载到FLASH后必须关机重新加电!)

        elf 为NIOS软件,在Nios II IDE中设计编译产生,源文件为C语言。可以通过JTAG加载到NIOS的RAM中运行,也可以通过epcs_controller(通过NIOS的Flash Programmer)加载到配置器件内(位于pof配置数据之后),如果NIOS的复位向量指向epcs_controller,NIOS上电后会从配置器件内取第一条指令执行。如果指定NIOS的复位向量到SDRAM而SDRAM是空的,NIOS会跑飞掉。

2. FPGA下载文件特点比较

下载文件

生成工具

下载方式

下载存储器

是否掉电丢失

.sof

Quartus II编译生成

JTAG

FPGA(SRAM)

丢失

.pof

Quartus II编译生成

AS (Active Slave)

FLASH(EPCS16)

不会丢失

.jic

Quartus II “File / Convert Programming File”

JTAG

FLASH(EPCS16)

不会丢失

.elf

Nios II IDE

JTAG(调试模式)

FPGA(SRAM)

丢失

.elf

Nios II IDE

JTAG(烧写模式)

FLASH(EPCS16)

不会丢失

3. 下载文件的烧写方法

(1)sof

    使用Programmer在JTAG接口下进行烧写,烧写时需要勾选Program/Configure。

sof_pof_jic_elf程序下载方法

 

(2)pof

    使用Programmer在AS接口下进行烧写,烧写时需要勾选Program/Configure和Verify。

sof_pof_jic_elf程序下载方法

 

(3)jic

    使用Programmer在JTAG接口下进行烧写,烧写时需要勾选Program/Configure和Verify。

sof_pof_jic_elf程序下载方法

 

(4)elf

详情请看:

Nios II 程序固化(如何下载elf文件) - 瓜儿不甜的博客 - CSDN博客

https://blog.csdn.net/snaking616/article/details/83064887

4. 参考

[1] NIOS 中的sof、pof和elf关系 - DanielLee_ustb的专栏 - CSDN博客

https://blog.csdn.net/daniellee_ustb/article/details/8539249

[2] Altera FPGA带NiosII内核程序的JTAG下载方法总结 - 百度文库

https://wenku.baidu.com/view/5fd49863f18583d048645950.html

[3] FPGA开发中sof和elf文件的合并与格式转换 - 瓜儿不甜的博客 - CSDN博客

https://blog.csdn.net/snaking616/article/details/83049985

[4] 使用Nios II 10.0sp1 Command Shell [gcc3]合并sof和elf文件——调试记录 - 瓜儿不甜的博客 - CSDN博客

https://blog.csdn.net/snaking616/article/details/83022956

[5] Nios II 程序固化(如何下载elf文件) - 瓜儿不甜的博客 - CSDN博客

https://blog.csdn.net/snaking616/article/details/83064887