UnityChipForXiangShan/ut_frontend/ifu/predecode
miceforrat 8fcdd79da7
adapt to the new rtl and keep up with the pred checker changings (#86)
2025-03-06 09:59:17 +08:00
..
agent adapt to the new rtl and keep up with the pred checker changings (#86) 2025-03-06 09:59:17 +08:00
bundle adapt to the new rtl and keep up with the pred checker changings (#86) 2025-03-06 09:59:17 +08:00
env add framework for predecode, f3predecoder, frontend_trigger; framwork includes: bundle, agent, env, test fixture 2024-12-23 17:00:44 +08:00
test adapt to the new rtl and keep up with the pred checker changings (#86) 2025-03-06 09:59:17 +08:00
README.md add framework for predecode, f3predecoder, frontend_trigger; framwork includes: bundle, agent, env, test fixture 2024-12-23 17:00:44 +08:00
__init__.py add framework for predecode, f3predecoder, frontend_trigger; framwork includes: bundle, agent, env, test fixture 2024-12-23 17:00:44 +08:00
predecode_internal.yaml adapt to the new rtl and keep up with the pred checker changings (#86) 2025-03-06 09:59:17 +08:00

README.md

PreDecode 单元验证

测试目标

PreDecode的功能是从IFU接收17 x 2B的指令缓存块拼接出16 x 4B的指令序列同时对每条指令提取预译码信息并计算两种有效指令开始向量一种假定上一预测块的末尾是一条RVI指令的开始另一种假定上一预测块的末尾是一条RVC指令或者是一条RVI指令的末尾。

测试基本流程为:

TBD

测试环境 Env

本测试基于toffee封装测试环境。

其中对DUT的数据职责封装由bundle完成可参见当前目录下的bundle目录。

对DUT的行为抽象由本目录下的agent目录完成提供一个接口predecode该接口接受17 x 2B的指令码返回16 x 4B的指令码和指令跳转偏移、有效指令开始向量、RVC类型判断信息。

功能点和测试点

所有的测试点如下:

序号 功能 名称 描述
1 拼接指令码 拼接测试 随机生成17 x 2字节的初始指令码检验PreDecoder拼接结果
2.1.1 RVC判定 RVC判定 传入RVC指令应该判断为RVC
2.1.2 RVC判定 RVI判定 传入RVI指令不应判断为RVC
2.2.1 跳转目标计算 RVC.J计算 对传入RVC扩展的J指令检查计算的偏移
2.2.2 跳转目标计算 RVI.J计算 对传入RVI扩展的J指令检查计算的偏移
2.2.3 跳转目标计算 RVC.BR计算 对传入RVC扩展的BR指令检查计算的偏移
2.2.4 跳转目标计算 RVI.BR计算 对传入RVI扩展的BR指令检查计算的偏移

Env提供的验证接口(API)

为了让测试用例更通用具有继承性本Env提供的接口对外屏蔽了电路引脚和时序,且接口保持稳定

用例说明

TBD

检查列表

  • 本文档符合指定模板要求
  • Env提供的API不包含任何DUT引脚和时序信息
  • Env的API保持稳定共有[ X ]个)
  • Env中对所支持的RTL版本支持版本[ X ])进行了检查
  • 功能点(共有[ X ]个)与设计文档一致
  • 检查点(共有[ X ]个)覆盖所有功能点
  • 检查点的输入不依赖任何DUT引脚仅依赖Env的标准API
  • 所有测试用例(共有[ X ]个)都对功能检查点进行了反标
  • 所有测试用例都是通过 assert 进行的结果判断
  • 所有DUT或对应wrapper都是通过fixture创建
  • 在上述fixture中对RTL版本进行了检查
  • 创建DUT或对应wrapper的fixture进行了功能和代码行覆盖率统计
  • 设置代码行覆盖率时对过滤需求进行了检查

TODO

测试用例

参考模型

文档:测试流程