蜂鸟E203系列——FPGA硬件环境

摘要:
对于原文,请将蜂鸟E203的FPGA代码编译成位流文件,并将其刻录到FPGA中,以便在FPGA硬件上运行。本文介绍了编译和烧录的两种方法:一种是make指令,另一种是将文件添加到传统的FPGA GUI界面进行编译。闪存成功烧录后,可通过按下开发板上的“FPGA_PROG”按钮触发硬件电路,使用闪存内容再次烧录FPGA。

欲观原文,请君移步

为了将蜂鸟E203的FPGA代码能够真正运行在 FPGA 硬件上,需要将其编译成为 bitstream 文件然后烧录到 FPGA 中去,本文介绍了两种方法进行编译和烧录:一种是make指令,另外一种就是传统的FPGA GUI界面加入文件进行编译。

目录
make执行

参考文档:https://github.com/SI-RISCV/e200_opensource/blob/master/doc/蜂鸟E203快速上手介绍.pdf

按照参考文档,进行操作如下:

  1. 将 e200_opensource 项目下载到本机 Linux 环境中,使用如下命令

git clone https://github.com/SI-RISCV/e200_opensource.git

  1. 进入到 e200_opensource 目录文件夹下面的 fpga 目录。

cd <your_e200_dir>/fpga

  1. 设置需要编译的 Core 的具体型号

一定要指定FPGA_NAME,否则器件类型不一样,导致编译出错

make install CORE=e203 FPGA_NAME=nucleikit

  1. 生成 bitstream 文件

make bit FPGA_NAME=nucleikit

  1. 生成 mcs 文件

make mcs FPGA_NAME=nucleikit

蜂鸟E203系列——FPGA硬件环境第1张

  1. 烧录flash

这一步对于 FPGA 工程师应该轻车熟路了,老鸟可以略过。

  • 打开 Vivado 软件。

  • 打开 Hardware Manager, 会自动连接 FPGA 开发板(如果前提步骤 1 操作正确)。

  • 右键 FPGA Device,选择“Add Configuration Memory Device”。

  • 选择如下参数的 Flash。

Part n25q128-3.3v
Manufacturer Micron
Family n25q
Type spi
Density 128
Width x1 x2 x4

  • 弹出“Do you want to program the configuration memory device now?”,选择 OK

  • 在弹出的窗口中的对话框中选择添加<your_e200_dir>/fpga/nucleikit/system.mcs,然后选择 OK,则开始烧写 Flash,可能会花费几十秒的时间等待。

  • 一旦烧写 Flash 成功,则可以通过按开发板上的“FPGA_PROG”按键触发硬件电路使用 Flash 中的内容对 FPGA 重新进行烧录。

注意: FPGA 烧写成功之后,则可以无需再连接“FPGA JTAG 接口”的 USB 连接线。

GUI 加载编译

加入源文件

  1. 加入verilog文件

蜂鸟E203系列——FPGA硬件环境第2张

  1. nucleikit里面的src路径

蜂鸟E203系列——FPGA硬件环境第3张

  1. 加入IP

蜂鸟E203系列——FPGA硬件环境第4张

升级IP

蜂鸟E203系列——FPGA硬件环境第5张

  1. 加入约束文件xdc

蜂鸟E203系列——FPGA硬件环境第6张

综合出错

没有e203_define.v文件

蜂鸟E203系列——FPGA硬件环境第7张

选择verilog header

蜂鸟E203系列——FPGA硬件环境第8张

实现出错

实现时候报错,需要在xdc中加入

蜂鸟E203系列——FPGA硬件环境第9张

生成bitstream出错

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]


![](https://static01.imgkr.com/temp/14cf6ad49a7b47c4b26236f5b9e0f2b3.png)

加入bitstream.tcl

![](https://static01.imgkr.com/temp/828b6f57c50a464582737fed7d467fd1.png)

成功生成bit

![](https://static01.imgkr.com/temp/13f0e34ce9ab4e6a8570446f707b35f2.png)




## 烧录 flash

>这一步与上面烧写 flash 一模一样。


- 打开 Vivado 软件。

- 打开 Hardware Manager, 会自动连接 FPGA 开发板(如果前提步骤 1 操作正确)。 

- 右键 FPGA Device,选择“Add Configuration Memory Device”。

- 选择如下参数的 Flash。

>Part n25q128-3.3v
Manufacturer Micron
Family n25q
Type spi
Density 128
Width x1 x2 x4

- 弹出“Do you want to program the configuration memory device now?”,选择 OK

- 在弹出的窗口中的<Configuration file>对话框中选择添加<your_e200_dir>/fpga/nucleikit/system.mcs,然后选择 OK,则开始烧写 Flash,可能会花费几十秒的时间等待。

- 一旦烧写 Flash 成功,则可以通过按开发板上的“FPGA_PROG”按键触发硬件电路使用 Flash 中的内容对 FPGA 重新进行烧录。

注意: FPGA 烧写成功之后,则可以无需再连接“FPGA JTAG 接口”的 USB 连接线。

免责声明:文章转载自《蜂鸟E203系列——FPGA硬件环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一 pandas读取excle数据django学习-29.表单提交方式之一:post请求(注册/登录/改密)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基于FPGA的XPT2046触摸控制器设计

基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发送邮件获取。 XPT2046是一款设计用于移动电话、个人数字助理、便携式一起、付款中断设备、触摸屏显示器等设备的4线制电阻触摸屏控制器。该芯片实质为一个多通道...

【FPGA篇章八】FPGA硬件加速:详述FPGA的硬件加速器设计思想

欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 硬件加速是指利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。 硬件加速实质上是通过增加运算并行性达到加速的目的的。 常常采用流水线和硬件复制的方法。 1 流水线 1.1 适合流水线的场景 如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单向流”的,前一个步骤的输出是下一个步骤的...

浅谈FPGA资源评估

在使用FPGA过程中,通常需要对资源做出评估,下面简单谈谈如何评估FPGA的资源。 FF和LUT的数目: 这个在写出具体代码之前,初学者通常没法估算,但资深FPGA工程师会估算出一个数量级。通常的做法是系统架构划分好后可以复用的模块根据以前设计中的资源消耗数来估,新的模块写完代码后估。 RAM: 这块在实现架构定好后,基本能准确地估出来,各个模块需要用...

FPGA基础知识关键点摘要

FPGA基础知识关键点摘要 一.组合逻辑和时序逻辑的区别:组合逻辑与输入直接实时相关,时序逻辑还必须在时钟上升沿出发后输出新值,有没有时钟输入是他们最大的区别!组合时序容易出现竞争冒险现象出现亚稳态,时序逻辑不会出现,且更容易达到时序收敛所以必须很好的掌握时序逻辑 设置不使用的 IO 为 为 in-tri 状态 RTL,Register Transfer...

xilinx FPGA课程学习总结

    一时冲动,跑步进入了FPGA的大门,尤老师是教练,我之前一直做嵌入式软件,数字电路也是十年前大学课堂学过,早已经还给老师了。FPGA对于我来说完全是小白,所以。老师的课程,对于我来说至关重要!因为见过太多从入门到放弃的案例了! 什么样的教程和视频,可以不至于让小白从入门到放弃呢?我总结了几点:1.由浅入深,循序渐进,不急躁,不跃进,符合人的认知规律...

风扇转速通过FPGA采样

1、风扇最大转速16000RPM,那么每一转需要时间60S/16000=0.00375S=375*10^4ns=T=T1+T2+T3+T4; 2、采样0.6S内的风扇detect信号的上升沿个数:0.6s/(375*10^4ns)=0.6*10^9ns/(375*10^4ns)=160 由于转数取最大值,所以T是最小的,那么160是最大计数个数,实际风扇规...