目录

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。

(2)pof

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

(3)jic

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

(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

sof_pof_jic_elf程序下载方法相关推荐

  1. 【模块】ESP32CAM arduino程序下载方法及注意事项避坑笔记

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 目录: 前言&概述 下载方法:     nodemcu v1下载方法      ...

  2. GD32程序下载方法

    使用usb转ttl工具下载方法,步骤如下: 步骤: 1.连接PCB板的串口0,TX,RX,GND三根线.TX,RX交叉连接. 2.boot0接地. 3.设备上电. 4.打开软件GigaDevice M ...

  3. STC89C52RC最小系统程序下载方法

    1.给最小系统装好芯片,如下图所示.注意事项:芯片的朝向,有个缺口的地方朝蓝白色开关这边. 2.正确连接电脑.CH340G模块和51单片机最小系统之间的连线 1)接5V电源:用DC005电源线给最小系 ...

  4. smart700iev3 程序下载设置_西门子PLC基础:S7-200 SMART PLC程序下载

    今天主要给大伙讲解西门子S7-200 SMART PLC程序下载方法,从如何打开项目程序.下载项目程序IP地址.下载项目程序这几个方面来入手. 步骤一:打开项目程序 1.找到项目文件,打开项目程序,如 ...

  5. macOS完整安装程序下载

            众所周知,macOS由Apple公司打造,因追求高端,当然没有Windows那样大众化.由于Windows的市场太复杂,所以有很多Ghost衍生版本,通常都提供一键装机功能(不推荐,有 ...

  6. ST芯片量产方案--程序下载

    1 引言 1.1 背景 物联网时代,自然少不了各类MCU处理器芯片的支持,其中stm32芯片广泛应用于各种场景,那么在大批量的产品中是如何进行程序下载的呢? 2 程序下载方法 2.1 常规方法 日常生 ...

  7. 11 lego spike 官方教程 07 —— spike 程序下载 电脑 ipad 华为pad

    忽然发现之前学习的内容,是后面的内容,又回到前面的学习内容. 1.电脑版 lego spike程序下载方法 网址 https://legoeducation.cn/zh-cn/downloads/sp ...

  8. JLINK通过SW模式下载程序的方法

    JLINK通过SW模式下载程序的方法 1)概述:JLINK有2种调试模式:JTAG和SWD(串行模式).JTAG是常用模式,大家都熟悉:下载文件如图3: 2)使用SW模式,需要(只需要)4根连线,连接 ...

  9. Axure谷歌浏览器Chrome扩展程序下载及安装方法

    Axure谷歌浏览器Chrome扩展程序下载及安装方法 1.下载Chrome扩展程序 下载地址:http://oss.liuzhuo.xin/xcx/image/kjnn3840_7htct7mp82 ...

  10. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]

    消除重复:如何将程序逻辑与数据分开? ----俄罗斯方块(Tetris)@兼谈程序优化方法 背景提示: 1,数据,是程序设计的根本.因为任何程序都可以看作是一组数据,和作用于其上的一组操作,这也是面向 ...

最新文章

  1. 字节一实习生误删公司所有lite模型,几百人为其善后,有员工处理事故到凌晨三点!...
  2. mysql安装源是什么_mysql官方源安装的一些问题
  3. 【集合论】有序对 ( 有序对 | 有序三元组 | 有序 n 元祖 )
  4. python函数太多_numpy Loadtxt函数似乎消耗了太多内存
  5. Linux 文件属性和权限详解
  6. 用啥Selenium?! .NET程序员就用自家的Playwright for .NET
  7. java8 入门脚本之家_Java 8中的Lambda表达式
  8. 解决SerMyAdmin无法登陆的问题
  9. fiddler工具条、状态栏、请求信息栏各按钮的作用
  10. jvm类加载机制是怎么样的
  11. 命令行运行python找不到sqlite_ubuntu python3.6 找不到_sqlite3
  12. C++第二次上机5-5
  13. kettle创建mysql资源库时报错_kettle 创建数据库资源库
  14. sliverappbar高度,SliverAppBar的最小高度(颤振)?
  15. 项目太大 传不到服务器,上传大文件的解决方案
  16. DialogBox不显示对话框的原因分析
  17. 摩拜显示服务器忙,摩拜崩了?用户扫了5辆都失败 摩拜称APP出现短时故障
  18. LeetCode:606.根据二叉树创建字符串
  19. git 用idea打tag
  20. relate to与associate with的区别

热门文章

  1. 怎么用按键精灵快速开发计算距离自己最近的怪物/包裹/金矿坐标的脚本
  2. uva 1589 - Xiangqi(象棋)
  3. UCT树用于四子棋对抗实验
  4. tf.shape用法
  5. 35岁的程序员:第18章,私欲
  6. PTA每日一题-Python-人民币与美元汇率兑换程序
  7. 如何让你得声音洪亮结实有磁性
  8. Easy Unpack
  9. Python学习教程公开课:好玩的Python
  10. 《卫报》评全球最具影响力博客50强 徐静蕾入选