FPGA 之 SOPC 系列(八)程序固化

FPGA 之 SOPC 系列(八)程序固化

今天给大侠带来今天带来FPGA 之 SOPC 系列第八篇,程序固化,希望对各位大侠的学习有参考价值,话不多说,上货。

本篇主要讲解在完成软件与硬件开发之后,如果利用flash烧写工具对工程的固化,达到产品级自动配置。

以下为本篇的目录简介:

  • 8.1 IDE Flash Programmer介绍

  • 8.2 用户程序引导

  • 8.3 使用IDE Flash Programmer 编程

 

8.1 IDE Flash Programmer介绍

Nios II IDE 提供了Flash Programer工具来对目标板上遵守CFI(common flash interface)规范的Flash进行编程。IDE的Flash Programer通过使用Altera的下载电缆能够方便的对目标板上连接在FPGA上的Flash进行编程。

IDE的Flash Programer除了能对连接在FPGA上的Flash进行编程外,还能对连接在FPGA上的串行配置器件EPCS进行编程。

IDE Flash Programmer编程工作过程

IDE Flash Programmer通过2个过程将数据写入Flash。

第一步:使用Flash编程设计对FPGA进行配置

第二步:传送编程内容到Flash器件

Flash编程设计

Flash编程设计实际就是一个由SOPC Builder系统生成的最小FPGA设计。Flash编程设计是IDE Flash Programmer的关键组成部分。除此之外,还必须包括:

1、与主机(PC机)通讯的JTAG接口;

2、由主机提供的写入Flash的编程数据。

不同的电路板(目标板)往往使用不同的Flash器件,并且Flash与FPGA的管脚连接及FPGA型号也不相同。因此,每个Flash编程设计都与具体的目标板相联系,不能用于其它的目标板。

目标板Flash编程设计

一个目标板Flash编程设计是一组SOPC Builder文件,这些文件包含了用户使用电路板的一些特有信息,其中必须指明FPGA与Flash的连接关系。包含下列信息:

1、每一个连接到电路板FPGA上的Flash的参考元件标号,如U7;

2、Flash器件在Flash编程设计中的基地址;

3、主机上用于配置电路板上FPGA的Flash编程设计的SOF文件。

参考元件标号用于区分设计中不同的Flash器件。电路板上的Flash器件在设计时的命名和基地址可能不同。

Flash编程内容的类型

1、用户软件;

2、FPGA的配置数据;

3、任意内容。

Flash文件

所有要通过IDE Programmer写入Flash中的数据文件都要转换为能被Flash Programmer读取的.flash文件。Flash文件通过其后缀.flash来识别,尽管它们与工业标准SREC文件相同。

IDE Flash Programmer在后台提供了elf2flash、sof2flash、bin2flash三个命令来分别将这三种文件转换为flash文件,这三个命令在IDE Flash Programmer后台自动调用执行而不需用户干预,当然用户也可以在Nios II SDK shell中通过命令行来执行文件转换。

 

8.2 用户程序引导

用户程序可以存放在Flash中,也可以存放在EPCS,因此用户程序可以从Flash引导,也可以从EPCS中引导。

从CFI Flash引导

FPGA上电或复位配置成功后,如果配置中包含的Nios II处理器复位地址指向Flash的地址空间,那么程序将从Flash引导。

从串行配置器件EPCS引导

如果使用串行配置器件EPCS,且配置数据的容量小于EPCS的容量,那么剩余的存储空间可用来存放用户程序。

IDE的Flash Programmer能将配置数据文件(.sof)和用户程序(.elf)写入到EPCS中。

当用户程序存放在EPCS中时,如果想从EPCS中引导程序,在SOPC Builder中必须添加EPCS控制器,且必须在SOPC Builder中指定NiosII处理器的复位地址指向EPCS控制器(epcs_controller)。

引导复制程序

Alter提供了引导复制程序,它能根据用户在IDE中设置的用户程序文件(.elf)连接地址来重新装载程序,然后跳过.elf文件的连接地址执行程序。

引导复制程序是IDE Flash Programmer在后台执行elf2flash命令时判断并自动加入完成的。

用户程序ELF文件连接设置

在Nios II IDE中工程的属性页控制了工程中的程序与硬件系统的相互影响关系以及IDE怎样编译连接该应用工程。

用户程序引导小结

通过SOPC Builder和IDE用户工程库属性页中的不同设置,可实现用户程序的不同引导和在不同存储空间运行,现总结于下表。

 

8.3 使用IDE Flash Programmer 编程

选择目标板Flash编程设计:

操作实验

  • 采用IDE Flash Programmer 配置软件

  • 采用AS配置硬件

FPGA 之 SOPC 系列第八篇就到这里结束,下一篇将带来第九篇,也是最后一篇,SOPC 补充altera与xilinx对比相关内容。

 

【QQ交流群】

群号:173560979,进群暗语:FPGA技术江湖粉丝。

多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。

 

【微信交流群】

现微信交流群已建立08群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

已标记关键词 清除标记
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值