芯来RISC-V杯
一、杯赛题目:蜂鸟E203 RISC-V内核的优化、扩展及应用
二、参赛组别:A组、B组
三、赛题任务:
基于蜂鸟E203 RISC-V内核的现有实现进行一定性能优化,以及扩展运算算子进行算力的提升。在此基础上完成系统级应用的实现,要求所实现的应用系统具有创新性、实用性以及市场应用前景。
具体要求如下:
1. 对蜂鸟E203 RISC-V内核的微架构实现进行一定优化,并通过Benchmark基准测试(Dhrystone、CoreMark、Whetstone)来进行系统性能测试,要求在同等软件环境下与原本蜂鸟SoC测试分数相比有一定提升,对蜂鸟内核微架构所进行的具体优化方式须在报告中详细说明。
说明:蜂鸟E203(hbirdv2 SoC),在Nuclei Studio(202204版)中直接运行HBird SDK(0.1.3)中集成相关BenchMark测试分数(工程默认编译选项,程序运行在ILM模式)如下。
Ø Dhrystone:1.28 DMIPS/MHz
Ø CoreMark: 2.12 CoreMark/MHz
Ø Whetstone:0.04 MWIPS/MHz
2. 对蜂鸟E203 RISC-V内核进行运算算子(譬如加解密算法、浮点运算、矢量运算等)的扩展,可通过NICE协处理器接口进行添加,也可直接实现RISC-V指令子集(譬如P扩展、F/D扩展、V扩展、B扩展、K扩展等)。
Ø 对于采用NICE协处理器接口进行的扩展实现,需要在蜂鸟软件开发平台HBird SDK中进行相关软件驱动的添加;
Ø 对于RISC-V扩展指令(P、V)的实现,可结合开源NMSIS库(DSP、NN)进行使用,同时也可对NMSIS库相关软件实现进行优化;
Ø 对于RISC-V扩展指令(K)的实现,可参考开源mbedTLS库中相关API进行函数库的实现及使用。
3. 对蜂鸟E203内核的调试模块进行扩展,目前蜂鸟E203内核的调试模块仅支持软件断点,可增加硬件断点功能的支持(选做)。
4. 对蜂鸟E203内核的中断管理模块进行优化,目前蜂鸟E203内核的中断硬件实现不支持向量化中断及中断嵌套,可增加向量化中断及中断嵌套的实现(选做)。
5. 基于上述的优化及扩展,完成一定系统级应用,系统级应用方向不限,需要体现出所添加内核扩展运算算子的使用及带来的性能提升。
6. 对于项目开发中,参考或使用到的其他开源IP需在报告中注明出处。
四、技术资源及参考资料
1. 蜂鸟E203 SoC源码(https://github.com/riscv-mcu/e203_hbirdv2)
2. 蜂鸟HBird SDK源码(https://github.com/riscv-mcu/hbird-sdk)
3. Nuclei Studio IDE(https://www.rvmcu.com/nucleistudio.html)
4. NMSIS库源码(https://github.com/Nuclei-Software/NMSIS)
5. 蜂鸟线上文档(https://doc.nucleisys.com/hbirdv2/)
6. 蜂鸟书籍(《手把手教你RISC-V CPU》上下册)
7. 蜂鸟架构讲解视频(https://www.rvmcu.com/campus-courseware.html)
8. RISC-V指令集架构文档(https://riscv.org/technical/specifications/)
9. 往届集创赛芯来RISC-V杯优秀作品分享(https://www.rvmcu.com/column-show-id-6.html)
五、提交内容:
1. 设计报告:
(1) 作品展板与PPT,包括但不限于团队介绍、项目研发情况、技术创新点、项目心得体会、后续工作。
(2) 设计报告,内容建议包括但不限于以下内容:蜂鸟E203内核微架构所做的优化工作及效果、扩展运算算子的具体实现及相关底层软件库的实现、功能仿真验证、系统整体应用及运行效果、项目总结及展望。
(3) 系统展示图片、视频
2. 设计数据:
(1) 硬件开发板原理图
(2) 软硬件设计源代码
(3) 仿真和测试结果
六、评分标准:
内容 | 功能实现 | 分值 | 评分标准 |
基础功能 | 在蜂鸟E203 SoC平台成功运行Benchmark测试程序(Dhrystone、CoreMark、Whetstone)。 对蜂鸟E203 RISC-V内核微架构进行了一定优化,Benchmark基准测试分数有所提升 | 30 | Benchmark测试分数越高分值则越高;当分值接近的情况下,硬件资源消耗越小得分越高。 |
实现运算算子扩展,并能配合相应软件库进行使用,相较纯软件算法实现有性能提升 | 20 | 运算算子的通用性、复杂度及配合软件库使用的性能; 是否有对NMSIS库相关的使用和优化 |
完成一定系统级应用,能体现扩展运算算子的使用及带来的性能提升 | 20 | 系统级应用的创新性、应用前景、复杂度,有对运算算子使用带来性能提升的分析 |
扩展功能 | 调试模块添加了硬件断点的功能 | 5 | 完成功能实现,可在flash运行模式进行断点调试,即可得分 |
中断管理部分实现了中断向量化及中断嵌套 | 5 | 完成功能实现,对中断处理性能进行一定测试分析,即可得分 |
项目报告与现场答辩演示 | 技术报告内容丰富详实,思路清晰,可读性高 PPT、展板内容完整、制作精美 展示视频描述清晰、有趣 答辩和问答表现,现场演示效果 | 20 | 据提交材料及现场表现来定 |
|
技术分享(附加分) | 在RVMCU社区集创赛论坛发布项目相关技术分享文章 | 10 | 每篇可获得1~2分,依内容质量而定。上限10分 |
备注:技术分享项(附加分)仅在初赛评审阶段列入总分 |
七、参赛资源说明:
1. 参赛所选用的FPGA开发平台限定于Xilinx FPGA,不得采用内含硬核处理器的FPGA芯片(包括不限于ZYNQ等),具体型号和开发板厂家不限。
2. 芯来科技将为参赛队提供免费的开发板租借服务(需要押金,参赛队伍赛后归还即可,如人为损坏或遗失将影响开发板押金的退还),在报名结束后开通借用通道。因为开发板数量有限(预计Nuclei DDR200T开发板 25块,Nuclei MCU200T开发板25块),申请者需在报名时提交一份开发板申请表(申请表下载),简述项目背景和以往成果,择优发放。借用板卡为Nuclei DDR200T开发板和Nuclei MCU200T开发板,板卡详情请访问芯来科技官网开发板页面(https://www.nucleisys.com/developboard.php)进行查看。
3. Nuclei开发板申请方式:完成报名后,填写申请表,提交至canhu@nucleisys.com,邮件主题为“报名编号(CICCXXXX)+第七届集创赛芯来科技开发板申请”,待企业通过审核后,将会在RVMCU社区公布名单,同时给出淘宝地址下单。
4. 实现完整应用所需硬件扩展模块由参赛队伍自行采购。
八、注意事项:
1. 参加企业命题杯赛的作品,需进行开源分享(包括设计源码)
2. 大赛组委会和杯赛企业对参赛作品的提交材料拥有使用权和展示权
3. 参赛项目可以参考现有公开发表的文献和论文内容,但应当在技术论文和答辩PPT中注明来源,且不能将参考的内容作为自己作品的创新部分。
(请参赛团队务必添加报名杯赛的答疑钉钉群中,以便及时获取杯赛最新通知及进展,群号码及入群方式:点击查看)