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文件。
但是基本的流程走通了。时间有限试用期已经结束了。期待下一次还会有继续!


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

    关注

    20

    文章

    142

    浏览量

    51654
  • RISC-V
    +关注

    关注

    48

    文章

    2792

    浏览量

    51854
  • E203
    +关注

    关注

    0

    文章

    8

    浏览量

    445
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    蜂鸟E203的内核移植fpga之后该怎么进行二次开发呢?

    你们好!请问一下我将蜂鸟E203的内核移植fpga之后该怎么进行二次开发呢?比如我想点亮板子上的led?驱动摄像头进行图像识别?这些该如何
    发表于 11-10 07:09

    如何把蜂鸟E203的核移植N4DDR平台上

    请问一下我想把蜂鸟E203的核移植N4DDR平台上,但是他们的约束文件及硬件电路区别很大,具体我该怎么修改呢?比如
    发表于 11-10 06:46

    开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)

    1.简述 首先感谢芯来开源了蜂鸟E203 risc-v处理器,提供了比较完整的工程环境、配套的软硬件。但是配套的FPGA板卡实在太贵,对
    发表于 10-31 08:46

    蜂鸟E203黑金XC7A200T型FPGA上的移植工作

    一、队伍介绍 本篇介绍的内容是蜂鸟E203黑金XC7A200T型FPGA上的移植工作。 二、前言 由于我们队的设计需要用到DDR,比赛
    发表于 10-31 07:54

    RISC-V 蜂鸟E203中PC指针起始地址设置搭建

    具体方法 这篇分享中RISC-V 蜂鸟E203平台Arty A7 100T上进行的搭建,ddr 200t的板子上是有2块qspi fl
    发表于 10-28 07:47

    基于FPGA平台蜂鸟E203 JTAG debug出错问题的解决思路

    大概花了三天时间完成了蜂鸟E203 SOCzynq7100 FPGA移植工作,并完成了hello world程序的在线debug调试。
    发表于 10-28 07:38

    RISC-V 蜂鸟E203Arty A7 100T上的烧录与测试

    烧录的介绍哦。但是ddr200t的板子有专用的JTAG烧写risc-v,Arty并没有。所以我们需要把FPGA比特流文件和C语言编译文件一起通过vivado的平台烧录至FPGA中。这就
    发表于 10-28 06:26

    基于E203 RISC-V的音频信号处理系统 -协处理器的乘累加过程

    指令蜂鸟E203借鉴了开源RISC-V处理器Rocket Core的协处理器接口RoCC,为了与原始接口进行区分,命名为EAI(Extens
    发表于 10-28 06:18

    RISC-V 蜂鸟E203平台搭建

    ,一步到位哟。overview就是对E203的整个平台做了整体介绍,有什么样的外设,如何烧录等等。最主要看第四节的交叉编译环境的安装,安装RISC-V GNU toolchain、Nuclei
    发表于 10-28 06:16

    Ubuntu 虚拟机中使用verilator对蜂鸟E203内核进行仿真

    Ubuntu 虚拟机中使用verilator对蜂鸟E203内核进行仿真 蜂鸟E203是一款基于RISC
    发表于 10-27 08:22

    如何对蜂鸟e203内核乘除法器进行优化

    蜂鸟E203是一款基于RISC-V指令集的多核处理器,内置了乘法和除法运算单元,这些运算单元的性能直接影响到整个处理器的性能表现。因此,优化
    发表于 10-24 06:47

    基于E203 NICE协处理器扩展指令

    扩展到某些特定领域可以非常明显地提高能效比。NICE协处理器(Nuclei Instruction Co-unitExtension,蜂鸟内核指令协处理器扩展机制)是一个独立于蜂鸟
    发表于 10-21 14:35

    基于E203 NICE协处理器扩展指令2.0

    非常明显地提高能效比。NICE协处理器(Nuclei Instruction Co-unit Extension,蜂鸟内核指令协处理器扩展机制)是一个独立于蜂鸟
    发表于 10-21 10:39

    高云GW5AT-LV60 开发套件试用体验】一、硬件篇

    高云GW5AT-LV60 开发套件试用体验】一、硬件篇 高云的Arora Ⅴ系列的GW5AT-LV60 FPGA ,是
    发表于 05-19 09:51

    高云GW5AT-LV60 开发套件试用体验】开箱报告

    今天收到高云GW5AT-LV60 FPGA图像开发套件,拆开看看 很大一个箱子 里面是礼盒包装,相当豪华。 附包装清单: ① DK_VIDEO_GW5ATLV60UG225_V1.
    发表于 04-30 14:39