2588|1

92

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【中科亿海微EQ6HL45开发平台测评体验】+09.RSIC-V测试(zmj) [复制链接]

 

【中科亿海微EQ6HL45开发平台测评体验】+09.RSIC-V测试(zmj)

 

先说结论:EQ6HL45开发板的资源数量足够没问题,eLINX软件对预处理代码的支持有问题,代码改动工作量比较大,最终没运行RSIC-V。

(后续会分享使用其他FPGA实现RISC-V流程)

RISC-V作为一款优秀的开源处理器架构,受到越来越多的关注。RISC,即精简指令集处理器,是相对于X86这种CISC(复杂指令集处理器)来说的。RISC-V中的V是罗马数字,也即阿拉伯数字中的5,就是指第5代RISC。

1. 参考

1.1 资源参考

RISC-V的参考资源非常多,下方列举仅供参考。

芯来参考手册包含十分详细的RTL和SDK操作流程,以及Git资源。其他资源基本都是以芯来参考手册为蓝本。

//------☆芯来参考:
//---Hummingbirdv2-E203-Core-and-SoC手册
https://doc.nucleisys.com/hbirdv2/
//---Git资源参考:riscv-mcu/e203_hbirdv2
https://github.com/riscv-mcu/e203_hbirdv2
​
//------其他Gitee资源参考(包含源码和基本流程说明):Gitee开源项目 > 其他开源 > RISC-V开发
//---e203蜂鸟: RISCV-MCU/e203_hbirdv2(推荐)
https://gitee.com/riscv-mcu/e203_hbirdv2?_from=gitee_search
//---tinyRV: liangkangnan/tinyriscv
https://gitee.com/liangkangnan/tinyriscv?_from=gitee_search
//---xiaowuzxc/小麻雀处理器(集成了tinyrv和e203)
https://gitee.com/xiaowuzxc/SparrowRV
​
//------视频参考(Xilinx方案):
a.蜂鸟E203移植到其他Xilinx FPGA器件
https://www.bilibili.com/video/BV1HM4y1A7X6/?spm_id_from=333.788.recommend_more_video.3&vd_source=29c4c65318d9617647948d0328dda1e3
b.EGO1移植 RISC-V E203
https://www.bilibili.com/video/BV1yS4y1j7ka/?spm_id_from=333.788.recommend_more_video.-1&vd_source=29c4c65318d9617647948d0328dda1e3
c.【RISC-V】手把手教你使用蜂鸟E203-v2
https://www.bilibili.com/video/BV1ia411U76P/?is_story_h5=false&p=1&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=46F37C64-B4B8-456E-8EF8-BA64F1454FEF&share_source=QQ&share_tag=s_i&timestamp=1668151893&unique_k=MK8GmSQ&vd_source=29c4c65318d9617647948d0328dda1e3
​
//------tinyrsicv文档:从零开始写RISC-V处理器
https://liangkangnan.gitee.io/2020/04/29/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99RISC-V%E5%A4%84%E7%90%86%E5%99%A8/

 

1.2 可行性分析(资源评估)

中科亿海微EQ6HL45开发平台的资源经过评估可以配置RSIC-V,资源评估如下:

//------tinyrsicv@xc7a35tftg256-1

 

//------蜂鸟e203@xc7z010clg400-2

 

//------中科亿海微EQ6HL45开发板

LUT/FF/Memory/DSP均能满足蜂鸟e203或者tinyrsicv的资源需求。

实际操作的时候发现eLINX软件对于预处理命令“·define”的支持不太友好,主要体现在端口声明部分,例如:

//------预处理命令涉及的部分代码
`define E203_ADDR_SIZE   32
`define E203_PC_SIZE     32
`define E203_XLEN        32
//------端口声明
output                         sysper_icb_cmd_valid,
input                          sysper_icb_cmd_ready,
output [`E203_ADDR_SIZE-1:0]   sysper_icb_cmd_addr, 
output                         sysper_icb_cmd_read, 
output [`E203_XLEN-1:0]        sysper_icb_cmd_wdata,
output [`E203_XLEN/8-1:0]      sysper_icb_cmd_wmask,

 

在上述代码中,端口定义使用了预处理的内容,eLINX软件直接报错或者解析错误。Quartus-II和Xilinx软件并无该问题。

 

2. 完整流程(整理)

依据“资源参考”的内容,整理的RSIC-V完整流程如下:

//------准备
a.RTL软件:eLINX软件
b.SDK软件:Nucleistudio-IDE(v2020.9)
    |---https://www.nucleisys.com/download.php
c.代码:蜂鸟e203代码
    |---https://gitee.com/riscv-mcu/e203_hbirdv2?_from=gitee_search
//------RTL工程步骤
a.创建工程
b.导入e203的RTL代码
    |---e203_hbirdv2/rtl/e203
    |---导入system.v文件,并设置为top(set_as_top)
    |---导入分频代码clkdivider.v(生成时钟32768Hz)
c.添加IP
    |---reset
    |---clock:50MHz->16MHz
d.分频代码:clkdivider.v,最终输出32768Hz(可以100MHz计数得到32.768kHz)
e.设置头文件与宏定义:
    |---e203_defines.v
    |---`define FPGA_SOURCE
f.约束:时钟、复位、JTAG(TDI/TDO/TCK/TMS)
h.完成上述步骤后,综合+布局布线(Synthesis + IMPL)
//------SDK工程步骤
a.芯来网站下载软件Nucleistudio-IDE。
b.打开eclipse创建工程。
c.c++_Prj或者c_Prj:E203、baremetal_HW、Build工程、修改openocd_hbird.cfg(删除Flash)

 

2.1 RTL工程

RTL工程即FPGA侧的工程,通过eLINX软件完成。主要内容就是导入rsicv代码、修改IP、添加约束等。

实际操作的时候发现eLINX软件对于预处理命令“·define”的支持不太友好,主要体现在端口声明部分解析错误直接报错,删删改改一个下午还是各种报错。

相反,在Xilinx两块不同板卡分别实现蜂鸟e203和tinyrsicv的工程,流程上基本毫无阻力……

//------eLINX@蜂鸟e203报错

 

//------Xilinx的Vivado跑蜂鸟e203和tinyrsicv毫无压力

 

 

2.2 SDK工程

SDK工程即开发RSIC-V的软件工程。它的开发需要下载SDK软件:Nucleistudio-IDE(v2020.9)。

//------Nuclei-Studio-IDE (Windows x86-64 2020.09版)
https://www.nucleisys.com/download.php   

 

测试代码通过串口实现。代码如下所示:

//------SDK
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "hbird_sdk_soc.h"
​
int main(void)
{
    printf("******************************\r\n",i);
    printf("It's EQ6HL45-EVL-v1.0\r\n",i);
    for (int i = 0; i < 10; i ++) {
        printf("%d: Hello World From My risc-v\r\n",i);
​
    }
    printf("******************************\r\n",i);
    return 0;
}

 

3. 关于RISC-V调试器

RSIC-V核的调试器使用矽速科技的RISC-V调试器(Sipeed USB-JTAG/TTL RISC-V调试器 STLINK V2 STM8/STM32模拟器)。

//------END

 

 

 

最新回复

我看到调试器,这个挺好的,价格贵不贵呀?  详情 回复 发表于 2022-12-3 06:39
点赞 关注
 
 

回复
举报

7046

帖子

11

TA的资源

版主

沙发
 
我看到调试器,这个挺好的,价格贵不贵呀?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表