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

    文章

    123

    浏览量

    50465
  • RISC-V
    +关注

    关注

    44

    文章

    2227

    浏览量

    46000
  • E203
    +关注

    关注

    0

    文章

    8

    浏览量

    110
收藏 人收藏

    评论

    相关推荐

    精彩回顾 : 向新而行 云启未来——2024高云FPGA线上技术研讨会

    、CTO王添平、资深AE经理郑传琳、资深运营总监李士明、分别从公司发展、Arora-V高性能产品及特色、IP应用及参考设计、高云产品质量体系等方面,分享了高云半导体
    发表于 11-18 18:24 113次阅读
    精彩回顾 : 向新而行 云启未来——2024<b class='flag-5'>高云</b><b class='flag-5'>FPGA</b>线上技术研讨会

    2024高云FPGA线上技术研讨会成功举办

    本次研讨会上,高云半导体市场总监赵生勤、CTO王添平、资深AE经理郑传琳、资深运营总监李士明、分别从公司发展、Arora-V高性能产品及特色、IP应用及参考设计、高云产品质量体系等方面
    的头像 发表于 11-12 17:15 439次阅读

    JH-7110 RISC-V开发套件正式开源

    近日,赛昉科技RVspace生态社区正式开源昉·惊鸿-7110(JH-7110)DevKit开发套件,同时提供其原理图和PCB参考设计源文件,旨在为客户提供全面的RISC-V芯片平台
    的头像 发表于 06-15 08:19 418次阅读
    JH-7110 <b class='flag-5'>RISC-V</b><b class='flag-5'>开发套件</b>正式开源

    国内首家!德国莱茵TÜV高云半导体颁发产品认证证书

    近日,国际独立第三方检测、检验和认证机构德国莱茵TÜV集团(以下简称“TÜV莱茵”)为广东高云半导体科技股份有限公司(以下简称“高云
    的头像 发表于 05-15 10:22 612次阅读
    国内首家!德国莱茵TÜ<b class='flag-5'>V</b>为<b class='flag-5'>高云</b><b class='flag-5'>半导体</b>颁发产品认证证书

    高云半导体与香港理工大学共探FPGA技术智能电网领域的应用

    2024年5月3日,广东高云半导体科技股份有限公司(下称“高云半导体”)与香港理工大学电气电子信息学院港达成框架的合作意向,旨在深化双方
    的头像 发表于 05-06 15:00 850次阅读

    回顾:高云半导体成功举办22nm产品及方案研讨会

    近日,高云半导体分别在杭州和成都成功举办了盛大的22nm产品及方案研讨会,研讨会吸引了众多FPGA行业专家的关注。此次研讨会不仅展示了高云半导体
    发表于 04-25 15:11 318次阅读
    回顾:<b class='flag-5'>高云</b><b class='flag-5'>半导体</b>成功举办22nm产品及方案研讨会

    Achronix FPGA增加对Bluespec提供的基于Linux的RISC-V处理器的支持,以实现可扩展数据处理

    Achronix半导体公司,以及RISC-V工具和IP领域的行业领导者Bluespec有限公司,日前联合宣布推出一系列支持Linux的RISC-V处理器,这些
    的头像 发表于 04-19 18:08 676次阅读

    Achronix与Bluespec联合宣布推出一款支持Linux的RISC-V处理器

    高性能FPGA芯片和嵌入式FPGA(eFPGA)硅知识产权(IP)领域的领先企业Achronix半导体公司,以及RISC-V工具和IP领域的
    的头像 发表于 04-15 16:23 550次阅读

    品读《基于FPGARISC-V的嵌入式系统设计》

    FPGA 1.3 RISC-V 1.4 小脚丫 FPGA 开发平台 1.5 C/C++,Make 与工具链 1.6 嵌入式操作系统 1.7
    发表于 03-29 00:06

    fpgarisc-v处理器的区别

    FPGA(现场可编程门阵列)和RISC-V处理器多个方面存在显著的区别。
    的头像 发表于 03-27 14:21 1036次阅读

    高云FPGA简介

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

    怎么设置蜂鸟E203 soc外设的可配置寄存读写属性?

    想请问怎么设置蜂鸟E203 soc外设的可配置寄存读写属性?可读可写、只写、只读三种模式具体怎么设置呢?目前是默认情况,新添加的外设寄存写不进去数据,读返回为0
    发表于 01-15 08:08

    RISC-V处理器对应什么开发环境?

    RISC-V处理器是开源的,那开发环境需要厂商自己开发还是沿用传统的开发环境呢?比如keil
    发表于 01-13 19:18

    E203不显示pass与fail是怎么回事,.log里什么都没有还没报错?

    蜂鸟E203自测试用例失败,不显示pass与fail怎么回事,.log里什么都没有,还没报错
    发表于 01-10 07:56

    怎么设置蜂鸟E203 soc外设的可配置寄存读写属性?

    想请问怎么设置蜂鸟E203 soc外设的可配置寄存读写属性?可读可写、只写、只读三种模式具体怎么设置呢?目前是默认情况,新添加的外设寄存写不进去数据,读返回为0
    发表于 01-10 06:24