Altera FPGA——NiOS ii的自启动设置

Altera FPGA——NiOS ii的自启动设置

1.为什么FPGA中有自启动功能?

因为FPGA是基于SRAM的设备,FPGA将配置存放于SRAM中,掉电丢失。为了避免每次上电都要下载程序到FPGA,不利于系统的封装,所以我们通常将程序下载到非易失性(non-volatile)设备,如Flash中存储,上电程序不丢失,启动断电前程序。

2.从EPCQ Flash中自启动Nios ii程序的两种方式

  • 在EPCQ Flash中执行Nios ii程序
  • 在EPCQ Flash中启动Nios ii程序,并复制到RAM中执行

如下图所示:

Altera FPGA——NiOS ii的自启动设置

3.自启动设置

我们采用上面所述的第二种自启动方式:

3.1 Nios ii processor的设置

Altera FPGA——NiOS ii的自启动设置

如上图所示:我们将复位向量内存(Reset vector memory)指向EPCQ flash,将复位向量内存(Reset vector offset)指向出厂映像中nios ii启动的地址,本实验中即为0x00600000。其它设置保持默认状态。

这样的用意是FPGA复位或上电时是在EPCQ Flash中启动“未丢失”程序。

3.2 软件应用设置

  • 启动eclipse,找到程序文件,如下图所示:

Altera FPGA——NiOS ii的自启动设置

  • 右击工程,选择Make Targets > Build,如下图所示:

Altera FPGA——NiOS ii的自启动设置

  • 选择mem-init-generate,点击build,如下图所示:

Altera FPGA——NiOS ii的自启动设置

3.3 编程文件转换(.jic的生成)

Altera FPGA——NiOS ii的自启动设置

  • 编程文件类型选择.jic文件;配置芯片选择EPCQ128A。
  • Flash Loader的选择:选中Flash oader,点击Add Device,如下图所示:

Altera FPGA——NiOS ii的自启动设置

  • .sof文件的选择:点击Add Sof Page(取决与工程的数量),选中SOF Data,点击Add File;如下图所示:

Altera FPGA——NiOS ii的自启动设置

  • .sof文件的地址设置:选中SOF Data,点击Properties,设置地址;选中.sof文件,点击Properties,勾选compression;点击如下图所示:

Altera FPGA——NiOS ii的自启动设置
Altera FPGA——NiOS ii的自启动设置

  • .hex文件的选择:点击Add Hex Page;它的地址根据nios ii processor的设置自动分配,如下图所示:

Altera FPGA——NiOS ii的自启动设置

  • 点击generate,成功生成.jic文件。

3.4 烧写.jic文件,实现自启动功能

Altera FPGA——NiOS ii的自启动设置

4.参考文档

1.AN 736_ Nios II Processor Booting From Altera Serial Flash (EPCQ)

2.Generic Serial Flash Interface Intel FPGA IP Core User Guide

3.Embedded Peripherals IP User Guide