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)在弹出的窗口中,进行下列设置:
(注:此选项取决于开发板上的Flash类型,阿群测试发现手上的开发板可选EPCS16或4,而不能选64)
- Programming file type选择JTAG Indirect Configuration File(.jic);
- Mode选择Active Serial;
- Configuration device选择EPCS16(或EPCS4经测试也能用。对于DE0-Nano开发板,则应选EPCS64),File name改为工程的名字或者保持默认output_files/output_file.jic。
(4)在Input files to convert一栏中,点击Flash Loader一项,在右侧点击Add Device选项。选择Cyclone IV E和EP4CE22
(注:这里我选的是EP4CE10系列FPGA如图
),点击OK。
(5)点击SOF Data一项,在右侧点击Add File,找到本工程目录下编译生成的.sof文件,点击Open。
(6)选中添加的.sof文件,点击Properties,选中Compression,点击OK。
,
打上对勾,对FPGA程序文件启用压缩存储
(7)点击Generate,
转换成功后会弹出下图所示窗口:
转换成功
(8)在下载之前先到Tools->options下勾选Iniate Confinguration after programming
否则下载完需要掉电才能应用新配置。
(9)打开Programmer,下载刚生成的.jic文件。
(注:
此步骤从Programmer烧写工具窗口的File菜单选择New File,新建一个选项
|