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

2018年7月2日星期一

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

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

配置方式

MSEL0~4

MSEL5

描述

AS

10010

未使用

FPGA从EPCS配置

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:

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

2、使用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的功能了。

SoC FPGA开发板的FPGA配置数据下载和固化的更多相关文章

  1. 关于DE2-115 FPGA开发板无法烧写程序的解决方法

    友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序.利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只 ...

  2. FPGA 开发板入手途径有哪些呢?

    买到一块 FPGA 开发板,你如何入手呢? 根据博主的经验,你可以通过如下途径来学习: 1.如果你是淘宝上买的,那么可以在淘宝上搜索你的开发板(一般 FPGA 开发板生厂商在淘宝上卖都会附带教程,如米 ...

  3. FPGA开发板

    kingst.cnblogs.com 各种应用需要的接口不同: 做数字信号处理的,需要有AD/DA, 做图像处理,需要有图像接口.如果是通信的,需要有通信的接口,例如PCI/LVDS等.... 然后根 ...

  4. 至芯FPGA培训中心-1天FPGA设计集训(赠送FPGA开发板)

    至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述 ...

  5. 使用FPGA开发板驱动VGA显示器

    1. 本次使用的是cyclone4开发板,先看下原理图,因为右边的RGB应该是模拟信号量,但是本次例程只接了3根线,那就是说颜色只有8种. 2. 代码,输出信号有R,G,B三色,就是上图右边的,行同步 ...

  6. easycwmp在开发板上的配置

    原创作品,转载请注明出处 copyright:weishusheng   2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...

  7. 迅为iTOP-4418开发板串口虚拟控制台配置为普通串口

    如何将 iTOP-4418 的串口控制台配置为普通串口.在最终的产品中,如果需要额外的串口,可以将调试用的控制台串口作为普通串口使用,因为交付给最终用户手中的产品,一般不需要调试串口.屏蔽串口控制台需 ...

  8. 开发板上如何配置apahe2+mysql+php7

    1,安装apache2 sudo apt-get install apache2 修改webroot vim /etc/apache2/apache2.conf #在其中复制最后一个 <Dire ...

  9. VIP 视频开发板 上位机 测试软件 下载地址,玩转各自分辨率(V201抢先版)

    本上位机最高测试帧率 133fps 目前支持分辨率:更多分辨率支持,敬请期待或给我留言VGA:640*4801.3M:1280*10242M:1600*1200786p:1024*768 格式兼容:1 ...

随机推荐

  1. jQuery中的几个模块总结

    Query插件,以备并希望在前端方面有所长进.请批评指正. 一,类型判断全解 JQuery判断类型扩展方法:$.type() /*type: function( obj ) { if ( obj == ...

  2. SMO算法(转)

    作者:[已重置]链接:https://www.zhihu.com/question/40546280/answer/88539689来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  3. Centos7 vnc

    这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC ...

  4. linux的文件类型和权限

    Linux下使用ll或ls -l查看文件的信息 (ll和ls-l的区别:ll会显示出当前目录下的隐藏文件,而ls -l不会)   文件信息分为:文件类型.权限.链接数.所属用户.所属用户组.文件大小. ...

  5. angluarjs ng-repeat 行号

    参考 https://zhidao.baidu.com/question/1882914672116911828.html $index

  6. openresty + luajit

    https://moonbingbing.gitbooks.io/openresty-best-practices/content/lua/brief.html ftp://ftp.csx.cam.a ...

  7. Codeforces Beta Round #14 (Div. 2)

    Codeforces Beta Round #14 (Div. 2) http://codeforces.com/contest/14 A 找最大最小的行列值即可 #include<bits/s ...

  8. springboot的yaml基础语法与取值,配置类,配置文件加载优先级

    1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...

  9. datagridview 如何禁止行被选中

    如题,如何规定特定的行,光标不能定位,也不能被选中,就好想Button中的Enable属性那样,变灰,而且点击也没有反应那种,这样的效果,如何实现. datagridview [解决办法]dataGr ...

  10. Adplus 抓取Crash Dump

    本实例在win8.1 安装window kits https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit 1 ...