0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【高云半导体Combat开发套件试用体验】RISC-V处理器蜂鸟E203在高云FPGA平台上的移植实践

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-10 14:41 次阅读

本文来源电子发烧友社区,作者:yuzhiwen1986, 帖子地址:https://bbs.elecfans.com/jishu_2295853_1_1.html

高云FPGA 平台介绍

Combat开发套件是以高云半导体 GW2A 系列 FPGA 产品为核心,是高云半导体晨熙®家族第一代产品,内部资源丰富,具有高性能的 DSP资源,高速LVDS 接口以及丰富的 BSRAM 存储器资源,这些内嵌的资源搭配精简的FPGA 架构以及 55nm 工艺使 GW2A 系列 FPGA 产品适用于高速低成本的应用场合。
image.png

外设接口管脚说明

本次项目中用到的I/O口如表下描述

信号 FPGA管脚序号 BANK 描述 I/O电平
SYS_CLK M19 2 50Mhz有源晶振 3.3V
FPGA_RST AB3 5 复位,低电平有效 3.3V
LED1 U17 3 LED指示灯1 1.5V
LED2 U19 3 LED指示灯2 1.5V
LED3 U18 3 LED指示灯3 1.5V
LED4 T17 3 LED指示灯4 1.5V
QSPI_DQ[0]
QSPI_DQ[0]
QSPI_DQ[0]
QSPI_DQ[0]
QSPI_CS
QSPI_SCK
MCU_TCK C22 2
MCU_TDI F22 2
MCU_TMS J22 2
MCU_RST V14 4
MCU_WAKE_UP R18 3 按键3唤醒MCU 1.5V
PMU_PADRST T19 3 按键2复位PMU 1.5V
PMU_PADRST

时钟复位电路

开发板为 FPGA 提供了一个 50MHz 有源晶振,连接到了全局时钟引脚。
image.png

LED指示灯

开发板中有 4 个绿色 LED 灯,用户可通过 LED 灯显示所需状态。可通过以下方式对 LED 灯进行测试: 当 FPGA 对应管脚输出信号为逻辑高电平时,LED 被点亮;当输出信号为低电平时,LED 熄灭
image.png

MCU 唤醒电路

开发板有4个按键开关,用户可以通过手动控制对应FPGA管脚输入低电平,触发MCU唤醒。本项目中使用KEY2/3/4作为复位和唤醒电路,电路图如下
image.png

复用J17作为MCU的JTAG调试接口
LCD_PWM ->C22 -> MCU_TCK

LCD_SDA ->F22 ->MCU_TDI

LCD_VSYNC->G22 -> MCU_TDO

LCD_DE -> J22 ->MCU_TMS

LCD_B7 ->V14 -> MCU_RST
image.png

FPGA 原型平台和MCU调试仿真器

FPGA 原型主要分为两部分:FPGA 开发板,和调试器。接下来章节分别予以介绍。完整的 FPGA 开发板原型(包括 FPGA 开发板和MCU调试器)如下图所示:
image.png

蜂鸟E203开源SoC

对于一个处理器核,还需要配套的 SoC 才能具备完整的功能。蜂鸟 E203 内核不仅仅完全开源了 Core的实现,还搭配完整的开源 SoC 平台,请参见《蜂鸟 E203 开源 SoC 简介》了解更多 SoC 的介绍与信息。蜂鸟 E203 开源 SoC 的Subsys 模块的款图如下:
image.png

Linux平台环境搭建

这里以Ubuntu系统为例进行说明。

代码下载和基本环境配置

  1. 下载E203源码
git clone https://github.com/SI-RISCV/e200_opensource.git
  1. 下载iverilog源码
`git clone https://github.com/steveicarus/iverilog.git
  1. 切换到v11分支(必须用V11或以上的版本)
git checkout v11-branch
  1. 安装依赖
sudo apt-get install autoconf gperf flex bison build-essential
  1. 编译、安装iverilog和vvpsh autoconf.sh
./configure
make
make install
  1. 创建python软链接

查看一下python的版本,我的还是Python2,新更新一下:
image.png

查看一下/usr/bin目录下面有哪些版本,如果有python3版本就创建一个新的软连接
image.png
sudo ln -s /usr/bin/python3.8 /usr/bin/python
其中/usr/bin/python3.8对应你实际安装的python版本。7. 安装gtkwave

sudo apt-get install gtkwave

HBird-E-SDK 下载和配置1. 将 HBird-E-SDK 项目下载到本机 Linux 环境中,使用如下命令:

git clone [https://github.com/SI-RISCV/hbird-e-sdk](https://github.com/SI-RISCV/hbird-e-sdk)
  1. 由于编译软件程序需要使用到GNU 工具链,假设使用完整的 riscv-tools 来自己编译 GNU 工具链则费

时费力,因此本文档推荐使用预先已经编译好的 GCC 工具链。我们已经将工具链上传至网盘,网盘具体地址记载于

hbird-e-sdk 项目(https://github.com/SI-RISCV/hbird-e-sdk)的 prebuilt_tools 目录下的 README

中,用户可以在网盘中的“RISC-V SoftwareTools/RISC-V_GCC_201801_Linux”目录下载压缩包gnu-mcu-eclipse-riscv-none-gcc-7.2.0-2-20180111-2230-centos64.tgz和gnu-mcu-eclipse-openocd-0.10.0-6-20180112-1448-centos64.tgz,然后按照如下步骤解压使用(注意:上述链接网盘上的工具链可能会不断更新,用户请注意自行判断使用最新日期的版本,下列步骤仅为特定版本的示例)。

cp gnu-mcu-eclipse-riscv-none-gcc-7.2.0-2-20180111-2230-centos64.tgz ~/
cp gnu-mcu-eclipse-openocd-0.10.0-6-20180112-1448-centos64.tgz ~/

//将两个压缩包均拷贝到用户的根目录下

cd ~/

tar -xzvf gnu-mcu-eclipse-riscv-none-gcc-7.2.0-2-20180111-2230-centos64.tgz

tar –xzvf gnu-mcu-eclipse-openocd-0.10.0-6-20180112-1448-centos64.tgz

// 进入根目录并解压上述两个压缩包,解压后可以看到一个生成的 gnu-mcu-eclipse 文件夹

cd ~/hbird-e-sdk    // 进入 hbird-e-sdk 目录文件夹
mkdir ~p work/build/openocd/prefix
// 在 hbird-e-sdk 目录下创建上述这个 prefix 目录 cd work/build/openocd/prefix // 进入到 prefix 该目录
ln –s ~/gnu-mcu-eclipse/openocd/0.10.0-6-20180112-1448/bin bin

// 将用户根目录下解压的

OpenOCD 目录下的 bin 目录作为软链接链接到该

prefix 目录下

cd ~/hbird-e-sdk    // 进入 hbird-e-sdk 目录文件夹
mkdir -p work/build/riscv-gnu-toolchain/riscv32-unknown-elf/prefix/

// 在 hbird-e-sdk 目录下创建上述这个 prefix 目录

cd work/build/riscv-gnu-toolchain/riscv32-unknown-elf/prefix

// 进入到 prefix 该目录

ln -s ~/gnu-mcu-eclipse/riscv-none-gcc/7.2.0-2-20180111-2230/bin bin

// 将用户根目录下解压的 GNU

Toolchain 目录下的 bin 目录作为软链接链接到

// 该 prefix 目录下 注意:此步骤完成工具链的安装之后,后续开发程序示例无需重复执行此步骤。

Verilog 仿真测试

使用E203 源代码运行基于 Verilog 的仿真测试程序,可以使用如下步骤进行。

**步骤一:**准备好自己的电脑环境,可以在公司的服务器环境中运行,如果是个人用户,推荐如下配置:

(1)本项目使用 Ubuntu 18操作系统

(2)由于 Linux 操作系统的版本众多,推荐使用 Ubuntu 18.04 版本的 Linux 操作系统有关如何安装 Ubuntu 操作系统本文不做介绍,有关 Linux 的基本使用本文也不做介绍,请用户自行查阅资料学习。

**步骤二:**将 e200_opensource 项目下载到本机 Linux 环境中,使用如下命令:

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

**步骤三:**编译 RTL 代码,使用如下命令:

cd /vsim

// 进入到 e200_opensource 目录文件夹下面的 vsim 目录。

make install CORE=e203

// 运行该命令指明需要为 e203 进行编译,该命令会在 vsim 目录下生成一个 install

// 子文件夹,在其中放置所需的脚本,且将脚本中的关键字设置为 e203。

make compile

// 编译 Core 和 SoC 的 RTL 代码

// 注意:在此步骤之中,编译 Verilog 代码需要使用到仿真器工具,在 github 上的 Makefile

// 中使用的是免费的 iverilog 工具,如果需要使用商业 EDA 的用户需要自行修改 Makefile 中的

// 对于免费的 iverilog 工具如何安装请用户在互联网上自行搜索。

步骤四:运行默认的一个 testcase(测试用例),使用如下命令:

make  run_test

注意:在此步骤中,运行仿真需要使用仿真器工具,在 github 上的 Makefile 中此部分空缺,实际运行的是”echo PASS”命令打印一个虚假的 PASS 到 log 文件中。用户需要使用真正的仿真器运行仿真得到真实的运行结果。

注意:make run_test 将执行 e200_opensource/riscv-tools/

riscv-tests/isa/generated 目录中的一个默认 testcase,如果希望运行所有的

回归测试,请参见步骤五。
image.png

当用make去编译Makefile文件的时候,如果有出现/bin/sh:Syntax error: 的错误时候,一般是当前默认的shell不正确的原因首先可以用命令ls -l /bin/sh 看看当前默认的是什么shell,Ubuntu一般默认为bash再用要修改默认的shell,可以采用命令sudo dpkg-reconfigure dash。会出现如下窗口,然后选择否。

步骤五:运行回归(regression)测试集,使用如下命令:

make regress_run

注意:这使用 e200_opensource/ riscv-tools/riscv-tests/isa/generated 目录中 testcases,逐个的运行 testcase。

步骤六:查看回归测试结果: make

regress_collect // 该命令将收集步骤五中运行的测试集的结果,将打印若干行的结果,每一行对应一个测 // 试用例,如果那个测试用例运行通过,那一行则打印的 PASS,如果运行失败,那一行则 // 打印的 FAIL。如图 所示
image.png

代码编译下载

工程导入

在Opensource

目录下FPGA文件夹创建一个新的文件夹gowin,

将相关的rtl文件拷入,并对top文件进行的对应修改,文件目录如下图:
image.png

打开gowin软件,创建工程,选择好对应的器件并导入文件。导入具体软件操作说明参见SUG100-1.7_Gowin云源软件用户指南,本项目中导入之后界面如下:
image.png

程序编译和下载

修改完程序之后保存点击Process 点击Place&Route编译,编译通过之后前面会出现绿
image.png

.编译通过后双击Program Device弹出下载窗口,点击开始下载
image.png

运行和调试软件

HBird-E-SDK介绍

HBird-E-SDK 并不是一个软件,它本质上是由一些 Makefile、板级支持包(Board Support Package,

BSP)、脚本和软件示例组成的一套开发环境。HBird-E-SDK 基于 Linux 平台,使用标准的 RISC-V GNU

工具链对程序进行编译,使用 OpenOCD+GDB 将程序下载到硬件平台中并进行调试。

HBird-E-SDK 代码结构
image.png

编译 demo_gpio 示例程序,使用如下命令: cd // 进入 hbird-e-sdk 目录文件夹 make dasm PROGRAM=demo_gpio NANO_PFLOAT=0 //注意:由于 Demo_GPIO 程序的 printf 函数不需要输出浮点数,上述选项 NANO_PFLOAT=0 指明 newlib-nano 的 printf 函数无需支持浮点数,请参见《RISC-V 架构与嵌入式开发快速入门》第 11 章了解相关信 息。

将编译好的

demo_gpio 程序下载至 FPGA 原型开发板中,使用如下命令:
image.png
很遗憾,我这里因为使用的下载器有问题,最终还是没有成功下载MCU bin文件。
但是基本的流程走通了。时间有限试用期已经结束了。期待下一次还会有继续!


                        
                
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 高云半导体
    +关注

    关注

    18

    文章

    110

    浏览量

    50098
  • RISC-V
    +关注

    关注

    41

    文章

    1906

    浏览量

    45056
  • E203
    +关注

    关注

    0

    文章

    8

    浏览量

    66
收藏 人收藏

    评论

    相关推荐

    高云FPGA简介

    高云是一家专业从事现场可编程逻辑器件(FPGA)研发与设计的国产FPGA高科技公司,致力于向客户提供从芯片、EDA开发软件、IP、开发板到整
    发表于 01-28 17:35

    读《玄铁RISC-V处理器入门与实战》

    是由美国伯克利大学的 Krest 教授及其研究团队提出的,当时提出的初衷是为了计算机/电子类方向的学生做课程实践服务的。由于这是伯克利大学研究并流片的第五代RISC架构处理器,因此就命名为RI
    发表于 09-28 11:58

    晶心科技A25内核及AE350外设子系统成功集成到高云半导体的GW5AST-138FPGA

    的 GW5AST-138 FPGA 中。这是首次完整的 RISC-V处理器集成到 FPGA 中,这种集成方式为开发者提供 A25 内核需
    的头像 发表于 08-30 11:08 1678次阅读

    求助,如何解决J-Link调试蜂鸟E203失败的问题?

    首先讲一下我的操作过程吧。 首先,我下载了开源的蜂鸟E203处理器,新建了一个自己的vivado工程,并将rtl目录里的所有.v文件和fpga
    发表于 08-16 08:23

    开发移植蜂鸟E203二代,用IDE测试hello world程序报错是为什么?

    自己的开发移植蜂鸟E203二代,用IDE测试hello world程序,报了下面错误,有大佬能帮忙看看嘛,或者遇到过相关的救救孩子,太
    发表于 08-16 07:44

    蜂鸟E203自制模块如何挂载?

    合作开发的时候,本人负责SD卡的读写模块,然而在完成RTL级编程之后,得到的.v后缀的文件,不知道怎么挂上蜂鸟e203的soc上。求求指点
    发表于 08-16 06:44

    如何验证蜂鸟E203是否移植成功?

    小白一个,刚刚接触蜂鸟E203,自己按照网上的教程移植到自己的开发板了,开发板用的黑金的AX7035,型号为XC7A35T-2FGG484,
    发表于 08-16 06:38

    请问蜂鸟E203支持硬件断点吗?

    请问 蜂鸟E203 支持硬件断点吗?
    发表于 08-16 06:38

    开源的蜂鸟E203可以直接用来流片吗?

    开源的蜂鸟E203可以直接用来流片吗
    发表于 08-12 08:11

    Nexys Video上移植开源蜂鸟E203 Soc.,请问移植时是否兼容呢?

    如题,我们尝试Nexys Video上移植开源蜂鸟E203 Soc.但是开发板上flash的型号与官方板不同,Nexys Video上的f
    发表于 08-12 07:41

    蜂鸟e203处理器开源代码中恶的Makefile编译脚本和测试脚本怎么修改?

    求助蜂鸟e203处理器开源代码中恶的Makefile编译脚本和测试脚本怎么修改?有没有大佬指点一下,万分感谢
    发表于 08-12 06:52

    蜂鸟E203移植ZYNQ7000开发板跑nice例程联合仿真出错怎么解决?

    蜂鸟E203移植到ZYNQ的zedboard开发板,helloworld例程成功。 但是用nice接口例程 生成的.verilog文件联合仿真时,vivado报以下错误。 这些错
    发表于 08-12 06:45

    蜂鸟E203 V2的FPGA实现之后,上板测试想用ila抓取内部信号没有波形是为什么?

    RISC-V 蜂鸟E203平台黑金的AX7050上移植搭建,想查看IFU模块的内部信号,于是调
    发表于 08-12 06:25

    蜂鸟E203移植其他型号FPGA后,调试可以不用官方的调试吗?

    蜂鸟E203移植其他型号FPGA后,调试可以不用官方的调试吗?? 改用本身自带串口调试吗?
    发表于 08-11 12:47

    关于E203的Flash读写问题

    E203的SOC的模块图中的这个模块是FLASH的控制吗? 如果我想完成FLASH的读写控制的话,SOC的代码层面(.v文件)该如何实现波形仿真呢?
    发表于 08-11 12:38