forked from XS-MLVP/UnityChipForXiangShan
60 lines
2.1 KiB
Markdown
60 lines
2.1 KiB
Markdown
# 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
|
||
|
||
测试用例
|
||
|
||
参考模型
|
||
|
||
文档:测试流程 |