【CQUT】从零开始龙芯杯-初章

初章——

龙芯杯主要做些什么:

龙芯杯的主要内容在于设计cpu并按照功能和性能进行评分

龙芯杯的赛道类型:

目前(2024年第八届)龙芯杯主要分为个人赛(mips)和团队赛(la)

时间安排及参赛流程:

以团队赛为例:

3-4月报名

期间官方会发布团队发布包及培训视频等资源

7月末进行初赛(测试得分/展示)

八月初进行决赛(测试得分/展示/现场答辩/现场答题【添加指令】)

推荐工具:

第八届龙芯杯团队赛规定使用vivado2023.2进行综合

一般使用verilog语言进行硬件描述

评分标准:

在初赛的评分标准中

功能性测试和性能测试按比例算分后按总得分取前十几名团队

在决赛的评分测试中

包含更多性能测试程序以及对于是否运行bootloader、内核等评分

               

 解析第八届龙芯杯团体赛技术方案:

  第八届“龙芯杯”全国大学生计算机系统能力培养大赛

团体赛技术方案

一、 评价方式的基本说明 

第 1 条 除本技术方案特别要求、规定和禁止事项外,各参赛队自行决定

CPU 微架构、演示方案等。

第 2 条 大赛鼓励各参赛队综合运用各种知识(如流水线、超标量、预测、

Cache 等)并充分利用实验板硬件资源以尽可能提高 CPU 运行性

能。

第 3 条 大赛鼓励各参赛队综合运用多种知识去构思并实现一个综合性

的软硬件系统,以展示构造系统的想象力与能力。

第 4 条 为展示参赛队伍的设计水平、增加竞赛的对抗性以及体现“自主

可控”的设计理念,进入决赛的参赛队还需要再实现若干由大赛

组委会定义的指令。

二、 初赛评分标准

第 5 条 比赛内容。开发支持 LoongArch 基准指令集的微系统。

1. 初赛阶段的 LoongArch 微系统使用 FPGA 片内存储器(指使用ip核即可,不与ddr或nand交互)即可。

2. 指令存储器应不小于 8KB,数据存储器应不小于 8KB。

3. FPGA 内部集成 1 个系统计数器(用于性能测试)。

4. FPGA 支持 7 段数码管显示(用于性能测试)。

5. CPU 核能通过接口与各 I/O 设备互联通信。

第 6 条 功能测试。以正确通过的指令功能测试项数为评价依据。功能测 试分值越大越好。计算方法如下:

功能测试得分 =

正确通过的指令功能测试项分值之和/所有 LoongArch 基准指令功能测试项分值之和 × 100%

第 7 条 性能测试。以 FPGA 运行基准测试程序所需时间为评价依据。性

能测试分值越大越好。基本计算方法如下:

1. 各参赛队中程序执行时间最小者的性能测试分值被定义为 100 分,

最大者的性能测试分值被定义为 0 分;其余各队成绩被映射至

[0,100]区间。

2. 程序执行时间的计算方法如下:

程序执行时间 = 系统计数器周期数 × 系统计数器所用时钟周期时间

3. 系统计数器周期数。该值是指利用系统计数器记录基准测试程序运

行的时钟周期数。计算方法如下:

系统计数器周期数 = 程序执行后系统计数器值 − 程序执行前系统计数器值

第 8 条 各参赛队总成绩计算方法如下:

总成绩 = 功能测试得分 + 性能测试得分

三、 决赛评分标准

第 9 条 决赛阶段的 LoongArch 微系统内部设计可以与初赛阶段的设计

不同,但必须满足下列设计约束:

1. CPU 应支持核内计数器(用于性能测试)。

2. FPGA 支持 7 段数码管显示(用于性能测试)。 

第 10 条 

比赛内容如下:

1. 性能测试。运行基准测试程序测量 CPU 的性能。

2. 系统展示。运行操作系统(可以是大赛提供的操作系统,也可以自

行选择操作系统)或应用程序的实际效果。3. 实现自定义指令。在进行系 统展示的 LoongArch 微系统基础上,在

规定时间内再实现由大赛组委会定义的指令。大赛仅测试自定义功

能是否正确实现。

4. 答辩。汇报设计思路回答专家问题。 

第 11 条 

决赛总成绩 100 分,各分项成绩权重如下:

1. 基准测试程序运行成绩:40%

2. 系统测试运行成绩:20%

3. 自定义指令实现的成绩:10%

4. 系统展示及答辩成绩:30%

第 12 条

基准测试程序运行成绩将以 FPGA 上运行基准测试程序时处

理器主频和程序执行周期数为评价依据。基本计算方法如下:

1. 基准测试程序运行成绩为处理器主频得分和程序执行周期数得分两

部分得分之和,两部分各自占比 50%。

2. 计算处理器主频得分时,各参赛队中处理器主频最高者的得分被定

义为 20 分,处理器主频最低者的得分被定义为 0 分;其余各队得分

被映射至[0,20]区间。

3. 计算程序执行周期数得分时,各参赛队中程序执行周期数最少者的

得分被定义为 20 分,程序执行周期数最多者的得分被定义为 0 分;

其余各队得分被映射至[0,20]区间。

4. 程序执行周期数。计算方法如下:

程序执行周期数 = 程序执行后核内计数器数值 − 程序执行前核内计数器数值

第 13 条

系统测试成绩将以 FPGA 上启动系统运行结果作为评价依据:

1. 按照指定方式成功启动典型 bootloader(如 U-Boot、PMON)并完

成指定功能操作,系统测试运行成绩得分为 5 分;

2. 按照指定方式成功启动典型教学操作系统(如 ucore)并完成指定功能操作,系统测试运行成绩得分为 10 分;

3. 按照指定方式成功启动 Linux 操作系统,系统测试运行成绩得分为

15 分;

4. 按照指定方式成功启动 Linux 操作系统并完成指定功能操作,系统

测试运行成绩得分为 20 分。;

四、 参赛作品提交

第 14 条 

各参赛队初赛阶段需要在大赛网站提交完整的设计内容:

1. LoongArch 微系统硬件设计的完整工程文件(必须包含全部源代码、

FPGA 管脚分配文件、FPGA 二进制下载文件提交后会被验证,请勿造假

2. LoongArch 微系统设计报告。

第 15 条

如果决赛阶段的硬件设计与初赛阶段的硬件设计有任何不

同,均需要再次提交完整的设计内容。

第 16 条

如果需要使用第三方 IP 或者借鉴他人的部分源码,必须在

设计报告中予以明确说明。

第 17 条

参赛队必须严守学术诚信。一经发现代码抄袭或技术抄袭等

学术不端行为,取消参赛队的参赛资格

五、 测试程序

第 18 条

大赛提供的基准测试程序包括功能测试程序和性能测试程

序,分别用于测试 LoongArch 微系统能否执行正确的基准指令集

及其性能。

第 19 条

自定义指令测试程序为汇编程序,仅用于测试自定义指令实

现的正确性。自定义指令测试程序与性能测试无关。 

六、 软硬件系统规范

第 20 条

LoongArch 基准指令集是龙架构 32 位精简版指令集的子集,只包括基础 整数指令、例外与中断等特权指令功能,不含基础浮

点指令及 TLB MMU 相关特权指令功能

第 21 条

自定义指令由大赛组委会在决赛阶段发布。

1. 自定义指令为基础整数指令。

2. 自定义指令包括:计算、分支与访存三大类。

3. 自定义指令符合 LoongArch 指令架构基本设计理念。 

第 22 条

大赛提供一个小型操作系统供各参赛队在决赛阶段选用。各

参赛队也可自行选择操作系统,以充分展示 LoongArch 微系统的

全系统功能和应用水平。

第 23 条

为确保大赛提供的测试程序可以正确运行,LoongArch 微系

统必须在下列方面符合第27条中的“龙芯架构32位精简版参考

手册”

1. 存储器地址空间。

2. I/O 设备地址空间。

第 24 条

大赛指定的 FPGA 实验设备主要参数如下:

1. FPGA 型号:XILINX 公司 Artix-7 FPGA。

2. DDR3 SDRAM:16 位,128MB。

3. SPI FLASH:4MB。

4. RS-232 UART 接口:1 个。

5. 7 段数码管:8 个。

6. 拨动开关:8 位。

第 25 条 

EDA 及软件开发环境如下:

1. 大赛指定龙芯体系结构教学实验平台作为 LoongArch 运行环境。

2. 大赛指定龙芯 LoongArch32 精简版交叉编译工具链为编译工具。

3. 大赛指定 Vivado2023.2 为 FPGA 综合工具。

4. 除编译工具和 FPGA 综合工具为大赛指定外,各参赛队可使用其他各

种开发工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值