Menu Close

FII-PRA006/010 固化/烧录程序到FLASH

1.FPGA固化/烧录程序到FLASH原理

在使用JTAG将程序下载到FII-PRA006/010开发板后,如果需要FPGA开发板在关闭电源,再次上电时仍然能跑原先的工程,就需要FPGA固化/烧录程序到FLASH。FII-PRA006/010开发板上有一颗板载FLASH芯片,参考文章PRA006/010 原理图如图1所示:

%title插图%num

图1-1 FII-PRA006/010 FLASH芯片

%title插图%num

图1-2 FPGA配置

 

N25Q128A是一颗提供SPI接口(关于SPI协议,参见文章 SPI 通讯协议(1)SPI定义与应用 )的,容量为128 Mbit的芯片。FLASH芯片的作用是将程序固化/烧录保存下来,在断电之后程序不消失,开发板在下次通电后,可以再从FLASH中加载程序,在实际生活中很实用。图1中所示的SPI_CLK时钟驱动FPGA通过SPI_ASDO将程序烧录到FPGA中保存起来,在重新上电后,FPGA会通过SPI_XDATA将程序重新读取到FPGA中。FPGA通过JTAG烧录FLASH 芯片的示意图如图2所示。

%title插图%num

图2 FPGA通过JTAG烧录FLASH

 

2. 固化/烧录步骤

以工程数码管动态扫描显示Verilog实现–秒表为例,在已经编译过工程,管脚锁定,重新编译生成*.sof文件后,打开Programmer,可以看到实际上JTAG是将*.sof文件下载到FPGA上(示意说明JTAG直接连接到FPGA芯片,不需要将*.sof文件下载到FPGA板上),如图3所示。

%title插图%num

图3

 

在完成*.sof文件生成后,遵循以下步骤,生成*.jic文件,并通过JTAG,将其固化/烧录到FLASH:

  • 点击主菜单上的File > Convert Programming Files… ,如图4所示:

%title插图%num

图4

 

  • 在如下图所示弹出窗口中Programming file type选择JTAG Indirect Configuration File(.jic)

%title插图%num

图5

 

  • Configuration device中选择EPCQ128A(兼容FII-PRA006开发板上的N25Q128A FLASH芯片)

%title插图%num

图6

 

  • Mode中选择Active Serial, 如图7所示:

%title插图%num

图7

 

  • 点击Advanced按键,在弹出窗口中按照图8进行设置,注意在勾选方框中,%title插图%num选择方式不可以,一定要点击到方框中出现“勾选符号”:%title插图%num

%title插图%num

图8

 

  • 添加需要转换的*.sof文件:在Input files to convert中点击SOF Data,然后再点击Add File..  。

%title插图%num

图9

 

  • 在弹出窗口中,点击路径..\scan_8seg\output_files,点击scan_8seg.sof,然后点击Open

%title插图%num

图10

 

  • 图11中可以看到在上一步骤中添加的*.sof文件成功,接下来需要添加设备,在Input files to convert中点击Flash Loader ,然后再点击Add Device..  。

%title插图%num

图11

 

  • 在弹出的Select Devices窗口中选择FII-PRA006对应的FPGA器件: Cyclone 10 LP > 10CL006Y,点击OK

%title插图%num

图12

 

  • 在图13中可以看到上个步骤添加的FPGA器件,保持其它上面步骤没有提及的选项默认,对比图13中的设置,如果相同,点击Generate,即可生成*.jic文件,如图14所示。

%title插图%num

图13

 

%title插图%num

图14

  • 在成功生成*.jic文件后,再次打开Programmer,点击*.sof文件,Delete。

%title插图%num

图15

 

  • 再点击Add File… ,在弹出窗口中打开..\scan_8seg\output_files目录,选择scan_8seg.jic,并点击Open。之后如图17所示,可以看出在固化/烧录 FLASH时,JTAG,FPGA,FLASH芯片的连接方式正如上文图2所示,JTAG通过FPGA间接烧录FLASH。

%title插图%num

图16

 

%title插图%num

图17

  • 勾选*.jic文件之后的Program, 点击Start,如图18所示。烧录完成后,如图19所示,注意此时FPGA可能没有任何实验现象可以通过reset按键或是重新断电,上电启动程序,之后就可以看到存储在FLASH中的程序被boot到了FPGA上。

%title插图%num

图18

 

%title插图%num

图19

至此,FPGA固化/烧录FLASH的步骤已经全部完成。本实验相关的工程下载

 

3.扩展

对于FII-PRX100-D FPGA开发板上FLASH的固化/烧录,参见文章FII-PRX100-D开发板FPGA的烧录和RISC-V 软件代码下载

 

对应视频:

Posted in FPGA, FPGA 教材教案, FPGA开发板, Quartus II, Quartus II, Verilog, Verilog, 开发工具, 开发工具, 开发板, 开发语言, 教材与教案, 文章, 编程语言

1 Comment

  1. 郭佳飞

    老师,我使用18.1版本的quartus软件固化附件中的jic文件后,可以正常的运行工程。
    我固化一个简单的fadd1工程的jic文件,程序不能运行。
    我再把附件的scan_8seg.zip工程重新生成jic文件后,也是不能运行程序,PRA006板上亮蓝灯。为什么呢?

发表回复

相关链接