SoC FPGA开发板的FPGA配置数据下载和固化

 

小梅哥编写,未经许可,严禁用于任何商业用途编程

2018年7月2日星期一测试

 soc fpga的烧写和固化方式与传统的纯fpga固化方式即存在形式上的相同,也存在细节上的差别,特整理此文。

AC501-SoC开发板在上电时可以根据启动设置开关的设置,选择从EPCS或者HPS中启动。具体是经过EPCS仍是HPS启动,由一个6位拨码开关经过设置不一样的值来决定。spa

 

 

配置方式设计

MSEL0~4调试

MSEL5blog

描述接口

ASci

10010

未使用开发

FPGA从EPCS配置it

FPPx32/

Compression

Enabled /Fast POR

01010

未使用

FPGA从HPS软件配置,在U-Boot阶段读取存储在SD卡上的rbf文件,而后配置FPGA

FPPx16/

Compression

Disable /Fast POR

00000

未使用

FPGA从HPS软件配置,在U-Boot阶段读取存储在SD卡上的rbf文件,而后配置FPGA

 

AC501-SoC开发板支持两种方式来配置FPGA:

一、使用JTAG编程:此种方式下,FPGA的配置bit流文件直接被下载入Cyclone V SoC FPGA中,下载以后FPGA就会按照该配置文件的信息运行。可是一旦FPGA的供电被关闭了,配置信息也就丢失了。

二、使用AS方式:AS方式全称为主动串行配置(Active Serial configuration),此种方式下FPGA的配置bit流文件会被下载进串行配置器件(EPCS)中,EPCS是一种SPI接口的Nor Flash存储器,即便掉电以后,数据依然存在不会丢失。当开发板下次上电时,若是MSEL设置了从EPCS中启动,则Cyclone V SoC FPGA会自动从EPCS中加载配置数据。

 

AC501-SoC开发板上设计了标准的IDC3-10的USB Blaster接口,使用USB Blaster,实现PC链接FPGA和HPS,并完成配置bit流的传输以及运行调试。和传统的单芯片纯FPGA方式不一样,Cyclone V SoC FPGA上的JTAG链同时链接了FPGA和HPS。所以在使用JTAG配置FPGA时过程也有必定的差异。接下来以一个具体的例子分别讲解配置sof到FPGA中和烧写jic格式的配置文件到EPCS中。

       打开一个FPGA工程,如本例以FPGA的LED测试工程“led”为例,在菜单栏中依次点击Tools > Programmer或直接点击Programer图标以打开下载界面。打开以后,软件可能会默认搜索到工程下的led.sof文件并添加进来了,以下图所示。若是没有添加也没有关系,由于添加的内容咱们后面操做时也会手动将其删除的。

 

若是Hardware Setup一栏没有自动找到USB Blaster,则可能须要检查USB Blaster是否正常链接且已经安装好了驱动。若是USB Blaster就绪了,此刻咱们直接点击Start来下载添加的sof文件是会失败的,这是由于JTAG链上链接了FPGA和HPS两个设备,下载器不知道须要将文件下载到哪一个设备中。

首先点击左侧的Auto Detect按钮,以使用JTAG链检测其链接的设备型号。会提示同一个JTAG ID对应的多个设备,根据咱们使用的器件型号为5CSEBA2,所以选择第一个而后OK。

 

此时软件会提示自动检测到的设备和Programer中已经添加的设备不匹配,询问是否更新,点击YES更新便可,以下图所示。

 

更新完成后能够看到,Programer窗口的下方展现了JTAG链上的设备关系,以下图所示。主要是TDI这个信号线,首先进入SOCVHPS中,而后从SOCVHPS的TDO端口流出,进入FPGA(5CSEBA2)的TDI端口,再从FPGA的TDO端口流出,回到JTAG接口的TDO信号上。选中Device一栏中的5CSEBA2项,右键单击,在弹出的对话框中选择Change File,而后找到sof文件并添加。

 

点击sof文件对应的Program/Configure复选框以选中,而后点击Start按钮,就能够开始配置sof文件到FPGA中了。配置完成后,能够看到开发板上的两个FPGA_LED灯分别闪烁,其中FPGA_LED0的闪烁频率是FPGA_LED1的两倍。

经过以上方式,完成了sof文件下载到FPGA中的功能。可是此时下载的数据是保存在FPGA的SRAM中的,掉电以后数据就丢失了,为了可以实现FPGA上电自动配置的功能,能够将配置数据bit文件转化为jic文件,烧写到EPCS存储器中,并设置FPGA从EPCS中启动,这样FPGA下次上电时就可以自动从EPCS中加载配置数据了,无需再用JTAG下载。接下来说解AC501-SoC开发板上所用Cyclone V SoC FPGA器件的jic文件生成以及烧写方式。

 

一样仍是打开一个设计好的FPGA工程,如led,而后在菜单栏中依次点击File > Convert Programming Files,以下图所示。

 

在打开的窗口中,选择Programming file type为JTAG Indirect Configuration File(jic)、Configuration device为EPCS16,注意,是EPCS128,不是EPCQ128,File name设置一个有辨识度的名字,例如led.jic,以下图所示:

 

选中下方的Flash Loader,而后点击右侧的Add Device,以下图所示:

在弹出的对话框中选择AC501-SoC开发板上使用的FPGA器件5CSEBA2,而后点击OK。

 

选中SOF Data选项,而后点击右侧的Add File,添加led.sof并确认。

 

添加好以后,点击右下角的Generate按钮,就能生成jic文件了。

 

烧写时,依然是先经过Auto Detect检测器件,而后选中FPGA器件右击以Change File,只是添加File的时候,选择刚刚generate好的led.jic文件。勾选Program/Configure选项,而后点击Start,就可以完成烧写到EPCS的功能了。

 

相关文章
相关标签/搜索