Altera FPGA程序固化

对MCU进行烧写程序,程序固件被写入MCU的片上存储器ROM中,现代大部分MCU的片上存储器ROM为FLASH存储器,可以实现掉电保持数据,所以可以掉电程序不丢失。
而对于Altera和Xilinx两家的FPGA芯片而言,FPGA芯片是基于SRAM的查找表(LUT),所以当将.sof下载到FPGA芯片忠厚,这些数据直接存储在SRAM的查找表中,一旦掉电即会丢失数据。解决方案是在FPGA芯片外部放置一片能够掉电不丢失数据的存储器,如常见的EPCS、QFLASH等,在FPGA内部设计一个专用的硬件电路,在芯片刚上电时就主动去读取该存储器中的固件,并配置到FPGA芯片中。
实验环境
Altera DE0-Nano开发板, FPGA型号:EP4CE22F17C6N
不同实验环境只需要更改对应芯片型号即可。
1. 纯硬件(Verilog)固化
(1)打开要固化的工程,编译得到.sof文件。
(2)在Quartus软件中点击File->Convert Programming Files。
(3)在弹出的窗口中,进行下列设置:Programming file type选择JTAG Indirect Configuration File(.jic),Mode选择Active Serial,Configuration device选择EPCS64,File name改为工程的名字或者保持默认。
(4)在Input files to convert一栏中,点击Flash Loader一项,在右侧点击Add Device选项。依次选择Cyclone IV E EP4CE22,点击OK。
(5)点击SOF Data一项,在右侧点击Add File,找到本工程目录下编译生成的.sof文件,点击Open。
(6)选中添加的.sof文件,点击Properties,选中Compression,点击OK。
(7)点击Generate,转换成功后会弹出下图所示窗口:

(9)打开Programmer,下载刚生成的.jic文件。
2.硬件(Verilog)+软件(Nios II软核)固化
(1)打开要固化的工程,编译的到.sof文件,打开相应的Nios II软件工程,编译生成.elf文件。为操作方便,将.sof文件复制到Nios II工程目录下。
(2)在Eclipse中,右键点击Nios II工程,选中Nios II->Nios II Commend Shell进入命令系统。当前命令所在文件夹为Nios II工程文件夹下。
(3)将编译得到的.sof文件转换为.flash文件,用到的命令为:
sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose
用编译得到的.sof文件名代替 <hwinage>.sof
输出.flash文件的文件名即为 hwimage.flash
成功转换显示如下图所示:

(4)将编译得到的.elf文件转换为.flash文件,用到的命令为:
elf2flash --input=<elf file>.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose
用编译得到的.elf文件名代替 <elf file>.elf
输出.flash文件的文件名即为 swimage.flash
成功转换显示如下图所示:

(5) 将两个.flash文件分别转换为.hex文件,用到的命令为:
nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex
nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex
输出.hex文件名分别为: hwimage.hexswimage.hex
(6)在Quartus软件中点击File->Convert Programming Files。
(7)在弹出的窗口中,进行下列设置:Programming file type选择JTAG Indirect Configuration File(.jic),Mode选择Active Serial,Configuration device选择EPCS64,File name改为工程的名字或者保持默认。
(8)在Input files to convert一栏中,点击Flash Loader一项,在右侧点击Add Device。依次选择Cyclone IV E EP4CE22,点击OK。
(9)点击SOF Data一项,在右侧点击Remove。
(10)在右侧点击Add Hex Data,选择Relative addressing,依次添加 hwimage.hexswimage.hex
(11)点击Generate,转换成功后会弹出下图所示窗口:

(12)检查生成的 .map 文件有hwimage.hex在起始地址0x0,swimage.hex文件在hwimage.hex结束地址后的起始地址+1
(13)打开Programmer,下载刚生成的.jic文件。

Altera FPGA程序固化(软件+硬件)相关推荐

  1. Altera FPGA程序固化

    转载自CSDN博客: https://blog.csdn.net/yuan_hust/article/details/75269111 Altera FPGA程序固化 对MCU进行烧写程序,程序固件被 ...

  2. FPGA程序固化流程

      一般程序直接下载后存放在芯片上的SRAM中,调电后数据会丢失,若要上电后能够运行,则需将程序存储到外部的flash中,在上电后自动加载.程序固化的流程如下: 1,工程编译完成后,点击file-&g ...

  3. 通过MCU实现Altera FPGA在线升级

    一.问题背景  在实际工程应用中,我们时常会遇到为解决某个老产品的BUG,需要在工程现场更新设备的FPGA代码,或者参加电信测试时需要现场升级设备FPGA程序以便于调试.公司现阶段所用的Altera ...

  4. vivado下microblaze程序固化下载

    vivado版本:2016.4 FPGA:XC7A100T-fgg484 FLASH:N25Q128-3.3V-SPI-X1_X2_X4 FPGA程序固化下载流程: 1.vivado中生成XXX.bi ...

  5. FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程

    FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程 很多做过单片机的朋友都知 道,我们在对MCU烧写完程序固件后,那么该程序固件就存储在了该MCU内部.即使MCU断电了再重新上电,程序 ...

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

    今天给大侠带来今天带来FPGA 之 SOPC 系列第八篇,程序固化,希望对各位大侠的学习有参考价值,话不多说,上货. 本篇主要讲解在完成软件与硬件开发之后,如果利用flash烧写工具对工程的固化,达到 ...

  7. 高云FPGA(三):程序固化和下载

    一.纯逻辑不带软核的固化 1,参考<SUG502-1.3_Gowin_Programmer用户指南>2,sram下载程序(掉电丢失) 3,FPGA片内flash固化 二.逻辑+软核固化 1 ...

  8. 12、FPGA程序的固化和下载

    使用仿真器下载BIT文件到FPGA时,板子断电后程序就 没有了,因此需要将程序固化到板卡的FLASH或SD卡中,下次启动板卡时就从FLASH或SD卡加载程序,不用再次使用仿真器下载程序了. SD固化: ...

  9. 软件与计算机硬件加密,51单片机程序进行软件加密和硬件解密的方法

    由于固化在片外EPROM 里的单片机程序容易复制,所以,如不在技术上采取保护措施,则程序中所采用的处理方法易被他人分析仿制.对单片机程序进行加密是一种有效的保护措施,也是一项实用的技术.虽然本身带有E ...

最新文章

  1. PyTorch代码调试利器: 自动print每行代码的Tensor信息
  2. 3D人脸识别准确率提升,成未来发展趋势
  3. java 音乐api接口_关于网易云音乐爬虫的api接口?
  4. 微信朋友圈:应对春节千亿访问量背后的故事
  5. php gtk中文介绍,PHP-GTK介绍及其应用_PHP教程
  6. linux uname 命令 打印系统信息
  7. GetLastError()返回值及含义
  8. css --- 使用媒体查询当屏幕宽度小于某个值时,隐藏掉某个类
  9. python for net_转:.NET 4.0 下使用 Python for .NET
  10. Random Forest随机森林概述
  11. mysql重装_连我mysql读你文件
  12. php7 参数类型限定,PHP 7.2新特性:参数类型声明(附代码)
  13. Starling Feathers:Starling专属UI框架
  14. 【服务器】Cloudreve绑定七牛云免费对象存储
  15. npm-scripts 在 windows 下的兼容问题
  16. 23种设计模式(四)组件协作之观察者模式
  17. C和指针---读书笔记16
  18. python 桌面数据库_python数据库操作笔记
  19. 软件实习项目4——校园一卡通管理系统(代码实现)
  20. 计算机文化基础—计算机软件

热门文章

  1. 「数据密集型系统搭建」开卷篇|什么是数据密集型系统
  2. 多通道LMMSE图像超分辨复原方法研究-附Matlab代码
  3. CSS - 制作网页技巧
  4. 百度webgis-api-加载卫星影像图
  5. leaflet加载百度地图(路网矢量图和卫星影像图)示例代码032
  6. 楚列斯基分解法、求矩阵范数的C++实现
  7. 超星尔雅大学生创业导论期末考试/章节测试答案
  8. 【密码学/信息安全】#3 古典密码(含代码)
  9. 在C#控制台输出的爱心图案
  10. RVB2601开发板试用2——PWM的使用,既三色小灯驱动