forked from XS-MLVP/UnityChipForXiangShan
* test * f3predecoder * predecode * predecode * update * 优化细节 * fix * fix * delete some files * update * final * update * Simplify and remove duplicate code * Revert: 撤回在 |
||
|---|---|---|
| .. | ||
| agent | ||
| bundle | ||
| env | ||
| test | ||
| README.md | ||
| __init__.py | ||
README.md
F3Predecoder 单元验证
测试目标
F3Predecoder的功能是从PreDecode中时序优化出来的。该模块接收16 x 4B的指令码输入,负责判定该指令的CFI类型和是否为ret或call指令。
测试基本流程为:
TBD
测试环境 Env
本测试基于toffee封装测试环境。
其中,对DUT的数据职责封装由bundle完成,可参见当前目录下的bundle目录。
对DUT的行为抽象由本目录下的agent目录完成,提供一个接口f3predecode,该接口接受16 x 4B的指令码,返回16条指令的CFI类型和是否为ret或call指令。
功能点和测试点
所有的测试点如下:
| 序号 | 名称 | 描述 |
|---|---|---|
| 1.1 | 非CFI判定 | 对传入的非CFI指令(包括RVC.EBREAK),应该判定为类型0 |
| 1.2 | BR判定 | 对传入的BR指令,应该判定为类型1 |
| 1.3 | JAL判定 | 对传入的JAL指令,应该判定为类型2 |
| 1.4 | JALR判定 | 对传入的JALR指令,应该判定为类型3 |
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
测试用例
参考模型
文档:测试流程