微报告模板
SCALAR_DISPATCH 测试点
功能描述
本测试点验证标量Store指令(如sb、sh、sw、sd)从发射队列派发到StoreUnit时,是否正确分配一个StoreQueue(SQ)条目。测试确保指令派发机制正常工作,包括SQ索引分配、状态标记和信号交互。这是StoreUnit最基本的功能,涉及指令派发流水线的初始阶段。
输入参数
- 虚拟地址(vaddr):0x1000
- 存储数据(data):0x12345678
- 存储大小(size):1、2、4、8字节
- 首次派发标志(is_first_issue):true或false
- 指令类型:通过fuOpType设置
输出验证
- 派发成功信号:io_stin_ready和io_stin_valid同时为高,表示指令被接收。
- SQ条目分配:io_lsq_valid为高,且io_lsq_bits_updateAddrValid为高,表示SQ地址更新有效。
- SQ索引范围:io_lsq_bits_uop_sqIdx_value在0到SQ_SIZE-1之间(如0-63)。
- 状态标记:SQ条目中的valid位被设置为1,robIdx正确记录。
- 后续准备:io_stin_ready保持为高,表示可接收新指令。
边界条件分析
- 不同存储大小:测试了1字节(sb)、2字节(sh)、4字节(sw)和8字节(sd)指令,确保所有大小都能正确分配SQ条目。
- 地址对齐:测试对齐地址(如0x1000)和不对齐地址(如0x1001),验证地址计算不影响派发。
- 首次派发与重发:设置is_first_issue为true和false,模拟首次派发和重发场景,确保重发机制不干扰SQ分配。
- SQ容量边界:通过多次派发指令,测试SQ接近满时的行为,确保索引不溢出。
- 信号时序:验证在时钟上升沿信号稳定,避免时序问题导致派发失败。
结果总结
测试通过,所有验证点均符合预期。标量Store指令派发功能正常,SQ条目分配正确,边界条件处理稳健。覆盖了标量存储的所有大小类型和常见地址场景,为后续流水线阶段提供了可靠基础。无异常或错误发生,测试完整性高。