本期验证任务将会进一步了解IFUtop模块的设计思路,在验证实战中体会香山取指模块的设计思路,加深对RISCV指令集架构的理解。欢迎各位报名参加(报名填写这里,qq群:600480230。)!

IFU(Instuction Fetch Unit)即取指单元,负责接收FTQ的请求并从ICache或Instr Uncache获取指令缓存行作为输入,以完成取指、预译码、RVC指令扩展为RVI指令、BPU预测错误预检等多项功能,最终向IBuffer输出初步译码信息和指令码,向FTQ写回检查结果。

本次分配的任务是对IFUtop模块的验证,所有的任务都将通过万众一芯之香山处理器的issue分配。

参与

本次验证任务请基于UnityChipForXiangShan提供的验证框架完成验证工作并向该仓库提交PR。

成果提交

请fork上述UnityChipForXiangShan仓库之后完成验证代码和文档的编写,成果齐备后,请发起PR以提交。

bug报告

请直接在UnityChipForXiangShan的仓库下使用bug report模板提issue,或者快捷点击这里

提交bug时,请先在label中选择bug need to confirm标签。然后从label提供的四种bug分级(minor、normal、serious、critical)中选择您认为最符合的一种标签。最后,请选择您发现bug的模块,本次验证的是前端的ifu模块,可以统一打上ut_frontend.ifu标签。

成果需求

每个子任务需要提交以下成果:

  1. 验证环境+API:验证环境和API是代码成果,是针对待验证对象(DUT)的数据职责(引脚)和行为职责(逻辑)的封装,需要提供特定的可复用的接口、 测试套件、测试覆盖率等的定义。其中,搭建验证环境可以参考验证环境搭建教程,测试覆盖率相关的文档可以参考这两篇:行覆盖率功能覆盖率
  2. 测试用例:测试用例是代码成果,定义了用于测试的输入组合,以及预期的输出组合。构建测试用例可以参考测试用例添加教程
  3. 验证报告:验证报告是文字成果,包括对环境、测试点和测试用例的介绍,复现代码所需的环境和指令,以及对测试覆盖率等衡量指标的报告。 验证报告的书写可以参考这篇教程:验证报告教程
  4. 其他说明:如果运行您的项目需要其他的依赖,可在测试报告或PR中说明

本期任务在UnityChipForXiangShan验证框架中已经提供了初步的环境,各位也可以自行搭建验证环境和提炼API。

任务难度

任务难度是根据理解难度、工作量等因素综合得出的,一般来说难度1~3的任务是简单的任务,4~7的任务难度一般,或许工作量较大,或许需要花费一定时间理解任务隐藏信息,8~10的任务较为困难,一般同时具有较大的工作量和较高的理解难度。

奖励信息

最终,根据任务的难度和各位的完成情况,各位将能获得数额不等的奖金。此外,如果为IFU top模块找出bug并反馈确认后,有机会得到更多奖金。

任务详情

由于本期验证的是IFU的top模块,因此不会再划分为多个子模块,而是需要验证完整的IFU top模块。我们将通过测试完整度(覆盖率等)进行分级,在验证过程中,您将需要按自选的功能点自行划分测试点进行测试,功能点详细描述请参考 IFU top 文档。所有功能点及对应难度如下:

功能标识符功能点描述难度
IFU_RCV_REQIFU接收FTQ取指令请求接收来自FTQ的取指请求,设置ready1/10
IFU_INFOSIFU分析请求和获取初始指令码IFU初步分析获取的FTQ取指请求,从ICache2/10
IFU_PREDECODE预译码对获取的指令进行预译码,拼接指令并分析其是否为RVC指令、跳转指令类型等4/10
IFU_RVC_EXPAND扩展RVC指令对拼接后的每条指令,若其为RVC指令,校验合法性并扩展为RVI指令5/10
IFU_PREDCHECK预检查提前检查某些简单的预测错误4/10
IFU_REDIRECT预测错误重定向根据预检查的结果,对IFU内部流水线进行冲刷3/10
IFU_CROSS_BLOCK跨预测块指令处理对于跨越预测块的RVI指令进行分析处理6/10
IFU_IBUFFER向IBuffer写指令码和前端信息输出最终的指令码和预译码信息等3/10
IFU_OVERRIDE_FLUSH分支预测overriding冲刷流水线根据其他模块的输入决定是否冲刷流水线3/10
IFU_WB_FTQ写回FTQ将预译码信息和预检查结果写回FTQ3/10
IFU_MMIOMMIO空间请求处理IFU对于来自MMIO空间的请求,有另一套处理逻辑8/10
IFU_FRONTEND_TRIGGERIFU前端断点在IFU中设置前端断点并对相应PC进行检查3/10

报名方式

请填写报名问卷参与本期任务,也欢迎加入活动官方qq群:600480230

如有疑问可在qq群中联系群主,或联系万众一芯官方邮箱:anxu@bosc.ac.cn。