FII-PRX100-D开发板FPGA的烧录和RISC-V 软件代码下载
1. 生成*.bit文件之前先RESET结果
首先,打开Vivado FII_RISCV_V2.01工程(这里以V2.01版本为例),如图1所示。

图1 FII_RISCV_V2.01工程
要生成相应的*.bit文件需要先synthesis和implementation。推荐在进行synthesis之前,先reset前一次的结果。Reset操作如图2-图4所示。

图2 选中上次的synthesis

图3 选中reset

图4 在弹出窗口中确定reset
2.生成*.bit文件
点击 Generate Bitstream生成*.bit文件,如图5所示。

图5 生成*.bit文件
成功生成*.bit文件会出现图6所示的窗口,选择Open Hardware Manager进行FPGA的烧录。

图6 成功生成*.bit文件
3. 烧录*.bit文件
在Hardware Manager界面下,有1,2两种方法open target,如图7所示。

图7 open target
点击Open Target,出现图8所示窗口,点击Auto Connect。

图8 Auto Connect
Auto Connect后,Hardware Manager窗口会出现PRX100-D芯片,xc7a100t,如图9所示。

图9 连接到PRX100-D芯片
如图10所示,点击xc7a100t,再点击Program Device。

图10 Program Device
如图11所示,在弹出的窗口里选择正确的*.bit文件。点击绿色框内,即可在图12所示界面下选择*.bit文件。选择完*.bit文件后,点击Program。

图11 选择正确的*.bit文件

图12 选择正确的*.bit文件
4. 生成*.mcs文件
在Vivado菜单上点击Tools > Generate Memory Configuration File,如图13所示。

图13 Tools > Generate Memory Configuration File
弹出如图14所示窗口后,根据以下步骤进行配置:
- 选择格式为MCS
- 选择Memory Part,mt25ql128(在绿色框内进行选择相应的FLASH)
- 对要生成的*.mcs文件进行命名
- 根据*.xdc文件的配置,选择SPIx1,SPIx2或SPIx4,这里将接口选为SPIx4,如果*.xdc文件中没有配置SPI,默认情况下选择SPIx1
- 选择Load bitstream files
- 在绿色框内选择生成的*.bit文件
- 选择Overwrite
- 点击OK

图14 生成*.mcs文件
成功生成*.mcs文件后,即会弹出图15的窗口,在绿色框内点击OK。

图15 成功生成*.mcs文件
5. 烧录*.mcs文件
*.mcs文件全称为Intel MCS-86 Hexadecimal Object,格式中具有 9 个字符(4 个字段)的前缀,用于定义记录的开始、字节数、加载地址和记录类型,以及一个 2 个字符的校验和后缀。
下图所示为JTAG通过FPGA间接烧录FLASH。当烧录完成后,FPGA在上电后再从FLASH中加载程序。

在烧录*.mcs文件之前,需要先添加FLASH,如图16所示。在Hardware Manager中点击xc7a100t,并点击Add Configuration Memory Device。

图16 添加配置内存器件
在图17中所示的弹出窗口中,输入mt25ql128.

图17 选择内存器件
在选择完内存器件后,会出现图18所示的弹出窗口,点击OK。或者可以在图19所示的Hardware Manager里,点击mt25ql128,点击Program Configuration Memory Device

图18 弹出窗口

图19 点击配置内存
在图20所示的弹出窗口中,可以通过以下的步骤烧录*.mcs文件:
- 选中之前生成的*.mcs文件,点中绿色框可以进行选择配置
- 必选Program,其他的选项都是可选的
- 点击OK

图20 选择*.mcs文件
至此,*.mcs文件烧录到FLASH的过程已经完成。PRX100-D开发板会空闲的状态(即FPGA 不工作状态),可以通过按FPGA板上的reset按键来激活FPGA(或者重新断电,再上电操作来启动FLASH中的FPGA程序)。
6. 软件编译环境和下板实验
之前有文章描述相关的步骤,见以下文章:
7. 硬件连接
7.1 两根USB-b公头连接线 + FII-PRX100-D开发板
如果有两根USB-b公头连接线,如图21所示,正常烧录的过程中可以烧录*.bit文件或是*.mcs文件。

图21
7.2 一根USB-b公头连接线 + FII-PRX100-D开发板
如果只有一根USB-b公头连接线,应该先将线连接CPU_JTAG,如图22所示,并烧录*.mcs文件。

图22
之后再将线连接到USB TO UART,如图23所示,完成软件下板实验。

图23
FII-PRX100-D开发板FPGA的烧录和RISC-V 软件代码下载的更多相关文章
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言 由于最近ARM公司要求员工"停止所有与华为及其子公司正在生效的合约.支持及未决约定",即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精 ...
- 基于Neptune开发板的键盘蓝牙模块DIY指南
目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...
- 合宙Air32F103CBT6开发板上手报告
2022年6月初合宙新上市了 Air32F103 系列 MCU, 市面上 STM32F103 的克隆军队又增加了新的一员. 这次不知道是哪家的贴牌, 分 Air32F103CBT6 和 Air32F1 ...
- 学习嵌入式Linux-选择iTOP-4412开发板
部分视频观看地址: [视频教程]iTOP-4412开发板之学习方法--致初学者 http://v.youku.com/v_show/id_XNzQ5MDA4NzM2.html [视频教程]三星Exyn ...
- [嵌入式学习资料]ARM开发学习详解iTOP-4412开发板使用手册
拿到的最新4412开发板学习使用手册,完全免费,分享一下 下载地址:http://pan.baidu.com/s/1ntrJA8h
- MinnowBoard MAX 硬件开发板
Minnowboard MAX MinnowBoard MAX是一款紧凑型,经济实惠,而且功能强大的开发板为专业人士和制造商.开放式的硬件设计使无尽的定制和集成的潜力.它采用64位英特尔®凌动™E38 ...
- 【基于mini2440开发板的交叉编译环境及内核树配置.
在学习linux驱动开发过程中,交叉编译环境的配置及内核树的生成无疑是对linux不是十分了解的新人面前的一堵墙.高高大大的墙...笔者在初探这一方向时,就在这2个问题上苦恼了很久.查阅无数资料,大多 ...
- 织女星开发板使用RISC-V核驱动GPIO
前言 织女星开发板是OPEN-ISA社区为中国大陆地区定制的一款体积小.功耗超低和功能丰富的 RISC-V评估开发板,基于NXP半导体四核异构RV32M1主控芯片. 两个RISC-V核:RI5CY + ...
- NXP恩智浦VEGA织女星开发板免费申请!
前言 大概两周前申请了一块NXP恩智浦的开发板,今天终于收到了!在这里推荐给大家,官方网站刚上线一个月左右,目前申请的人还不算多,感兴趣的朋友可以申请一个,体验一下这个四核性能怪兽.大厂就是大气,包装 ...
- 一个linuxk开发板的开发笔记
arm-fsl-linux-gnueabi开发笔记 //开发主机系统信息 $ lsb_release -a No LSB modules are available. Distributor ID:U ...
随机推荐
- 移动端wifi测试点总结
1.WiFi功能测试: 验证WiFi模块设置(如:添加AP.静态IP及动态IP的设置等)的相应功能是否正常: 2.WiFi特性专项测试: 1)WiFi打开速度或搜索速度的测试:验证WiFi,WiFi打 ...
- 为什么手游选择lua热更新方案。
https://www.zhihu.com/question/29603593 主要因为iOS系统的原因. 在这个知乎问题里,有两条回答,能解释我的疑惑.如下两个图. 我个人总结为,编译型语言(C#) ...
- debug 获取mybatis dao 连接的数据库
MapperProxy.invoke MapperMethod.execute 查看sqlSession .
- JS中有关闭包的相关内容及介绍
1 var obj = (function (arg) { 2 // 这里就是一个简单的闭包,将局部变量 test和函数fn1 return出去 3 // 这样obj就可以拿到函数内部定义的变量在函数 ...
- Github快速访问
Github快速访问 1. 国内访问github慢 github是国外网站,用国内的网络很难访问到,也就无法使用github,作为程序猿的我们,无法使用github可太难受了,那么我们有什么办 ...
- Cupboard and Balloons CodeForces - 342C
Cupboard and Balloons CodeForces - 342C 找到不变的点 抓住不确定的点进行讨论 #include<iostream> #include<cmat ...
- 谈谈 Redis 的过期策略
在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞.要搞清楚这些,就要了 ...
- js任务执行顺序
JS 线程简述 js是单线程的,一次只能执行一个任务,执行完毕后才能继续下一个. js执行任务的方式也叫作同步执行,同步和异步与我们平时理解的不太一样,平时的同步我们会认为是多个事情一起做,但是在js ...
- 061_Apex 异常捕捉
Trigger 中的错误处理 在 Trigger 中,我们可以为进行操作的数据进行验证,类似于验证规则.如果遇到不符合条件的数据,可以通过 addError() 函数来将错误显示给用户,并记录日志. ...
- DDR内存256M16、512M8含义
256M16,后面的16是代表数据位数,也可以认为是16个bit.一般一个Byte是8个bit.例如256M4的容量为256*16 bit = 4096Mb = 512MB所以 256M16和 512 ...