Common 分解
| 1-时钟 | 1 | 1) 确定DUT中时钟的数量,频率范围; 2) 测试用例须覆盖各时钟各种标称频率的组合,对于多时钟,须检查各时钟之间频率差最大/最小时DUT的工作状况。 |
|---|---|---|
| 2 | 若DUT有多个时钟,验证环境要支持各时钟的任意相位关系。 | |
| 3 | 无论单时钟还是多时钟,验证环境均要支持时钟不确定性。 | |
| 4 | 如果DUT支持门控时钟,需要对门控时钟进行功能验证,包括clock gating和ungating的切换 | |
| 2-复位 | 1 | 确定DUT中复位信号的数量,并同设计,软件确定复位顺序。 |
| 2 | 复位后需要检查寄存器默认值。 | |
| 3 | 复位后(包括二次复位)需要检查接口输出信号复位值,推荐使用断言检查。 | |
| 5 | 二次复位后打流进行逻辑功能检查 | |
| 3-寄存器 | 1 | 用CSR工具执行基础读写复位检查 |
| 2 | 用寄存器模型工具执行寄存器读写以及复位检查 | |
| 3 | 在使用HBUS、RGR等总线对寄存器进行读写访问时,覆盖如下 种场景: SCN-1:valid信号无效时,总线上其他信号驱动成X态 SCN-2:valid信号无效时,总线上其他信号驱动成0 SCN-3:valid信号无效时,总线上其他信号取反 | |
| 4 | 读reserved地址不应引起总线长时间挂住 | |
| 5 | 写reserved地址不应引起总线长时间挂住 | |
| 6 | 写RO寄存器不应引起总线长时间挂住,寄存器不应该被改写 | |
| 7 | 写清寄存器,读清寄存器等特殊操作寄存器验证 | |
| 8 | 读WO寄存器不应引起总线长时间挂住,是否返回不期望的值 | |
| 4-存储单元 | 1 | 总线上data除使用随机激励产生外,还需要使用下列特殊pattern PAT-1:{N{8’b0101_0101}} (ie. 0x5555…5555) PAT-2:{N{8’b1010_1010}} (ie. 0xaaaa…aaaa) PAT-3:{N{8’b0000_0000}} (ie. 0x0000…0000) PAT-4:{N{8’bffff_ffff}} (ie. 0xffff…ffff) PAT-5:每两个pattern之间执行bit翻转 |
| 2 | 相同地址写-回读,使用所有特殊pattern,每两次写之间pattern翻转,检查存储单元相邻bit是否互相影响 | |
| 3 | 写下一个地址,读上一个地址并比较上个地址写-读的数据是否相同,用来检查地址译码器是否正确。 | |
| 4 | 片地址写-回读顺序操作,比较写-读的数据是否相同,用来检查地址译码器是否正确。 | |
| 5 | 地址非对齐访问,写入数据不影响同一条地址线中其他字节 | |
| 6 | 访问地址跨越bank边界,检查地址译码器是否正确。 | |
| 5-ECC单元 | 1 | Single Error纠错 |
| 2 | Double Error检错 | |
| 3 | 检查Syndrom功能 | |
| 4 | Error上报/不上报 | |
| 6-寄存器逻辑功能 | 1 | 中断相关寄存器,检查是否可以屏蔽中断,是否能够正确反映中断状态,是否可以清除,参考 |
| 2 | 通道/业务开关类寄存器检查打开时对应的通道/业务被触发,关闭时对应的通道/业务被关闭,如果存在多个独立通道/业务,则参考 - 19 | |
| 3 | 在post_main_phase通过前门动态读取状态寄存器,并检查内容正确 | |
| 4 | 阈值相关寄存器,覆盖阈值极大值,极小值,对于full dynamic和limited dynamic配置,覆盖从极大值到极小值的变化 | |
| 5 | 检查关联的配置寄存器是否全部有效组合都被覆盖。 | |
| 7-边界信号 | 1 | 检查上电复位后端口输出信号默认值检查,不应有X态,不应有中断或异常报出,推荐用SVA检查 |
| 2 | 检查二次复位后端口输出信号默认值检查,不应有X态,不应有中断或异常报出,推荐用SVA检查 | |
| 3 | 人为制造输入信号相位偏移,检查是不应对逻辑功能造成影响(不用的输入tie0或tie1) | |
| 8-接口总线 | 1 | 如果接口总线承载的是协议,则验证owner需要熟悉协议中每一个位域的功能和bit位置,并同设计以及上下游关联模块设计、验证owner确认每个位域理解相同,有测试用例覆盖 |
| 9-中断 | 1 | 优先级检查 |
| 2 | 中断输出信号为高电平指示,非脉冲指示 | |
| 3 | 如果存在中断使能开关,验证开关功能正确 | |
| 4 | 检查中断屏蔽寄存器的功能,以及同中断源的bitmap | |
| 5 | 检查中断状态寄存器的功能,以及同中断源的bitmap | |
| 6 | 检查清中断功能 | |
| 7 | 检查中断可以频繁触发和清除 | |
| 10-异常、错误处理 | 1 | 检查时序异常,数据异常时DUT的工作状态(包括DUT是否能对错误进行处理,丢弃,恢复) |
| 11-robust | 1 | 接口处于IDLE状态时,将开关/使能类指示信号外的其他信号驱动成不同状态,然后使能接口,检查功能正确: SCN-1:X态 SCN-2:Z态 SCN-3:各bit为0 SCN-4:各bit为1 SCN-5:同最后一次有效传输取反 SCN-6:保持最后一次有效传输的值 |
| 2 | 复位状态下输入各种类型的信号状态,检查逻辑不受影响 | |
| 3 | 对于解耦的逻辑,某逻辑异常状态不影响其他逻辑 | |
| 12-性能 | 1 | 明确SPEC中各性能指标,每一张性能图表(带宽,流量)要和DE核对,确认是否可测,如果不可测要注明 |
| 13-反压 | 1 | TBD |
| 14-FeedThrough | 1 | 使用SVA和静态验证方式对RTL的FT进行连通性验证 |
| 2 | 通过功能验证检查FT对功能的影响符合预期 | |
| 15-Cascade Arbiter | 1 | Fixed Priority(FP) |
| 2 | Fair Round Robin(FRR) | |
| 3 | Weight Round Robin(WRR) | |
| 16-FIFO | 1 | 使用断言检查full/empty的逻辑关系,full和push信号不能同时有效,empty和pop信号不能同时有效,full和empty信号不能同时有效 |
| 2 | 使用断言检查push/pop的时序,覆盖连续push,连续pop以及push pop同时出现 | |
| 3 | 覆盖empty撤销的同时触发pop场景,检查empty被拉起 | |
| 4 | 覆盖full撤销的同时触发push场景,检查full被拉起 | |
| 17-数据通路串扰 | 1 | 检查数据通道相互独立,处理业务时互不影响 |
| 2 | 如果通道可以单独复位,检查复位一个通道不影响其他通道业务 | |
| 18-链表 | 1 | 链表长度检查:检查链表能申请的最大地址;如果设计中有长度记录寄存器,仿真结束后前门读取该寄存器检查链表长度 |
| 2 | 检查链表内部发生错误时,是否触发中断/异常上报 | |
| 3 | 检查链表内部申请、释放指针是否重复 | |
| 4 | 检查上、下链的性能 | |
| 5 | 背靠背重复上下链 | |
| 99-其他 | 1 | gen_frr_arb复位信号连接检查 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 sqlmap's Blog!
评论