分解测试点后,跟设计要芯片IDLE状态需要关注那些信息,列个表(仿真结束检查)?包括状态机,计数器,fifo等
是否考量反压测试,长反压(内部buffer满或者调度压满)、短反压、长短交替反压。
clock gating,分为两类,1.关闭部分时钟,不影响业务正常执行,我们验证下发关闭时钟的激励,验证环境无感,无其他特殊处理,仍正常产生期望数据包进行比对;2.关闭部分时钟,部分功能关闭,通常此时仍能下发配置,配置时钟保持常开,要做相关检查。
时钟:是否产生正确频率的时钟;是否覆盖初始时刻0-》1开始翻转,从1-》0开始翻转。
复位:是否可以在任意时刻进入复位,同步撤离;复位翻转是否覆盖0-》1,1–》0-》1.;复位过后芯片是否可以正常执行,不挂死;拥有多复位时,是否做过复位粘连性测试,明确复位信号的独立性以及复位范围的正确性。确认哪些ram复位哪些ram不复位(一些ram是用寄存器搭的);复位检查寄存器复位值,是否存在不被复位影响的寄存器,这些寄存器值是否保持。
对所有输出信号进行X态检测,部分无复位端的reg型变量,可能会将X态传播给下游模块,验证环境需要检测
排查是否有未驱动的信号
随机约束是否合理,随机是否充分,可以覆盖所有场景
排查接的固定值信号
考虑驱动无效数据覆盖全0,全1,随机值,保持值,x态
valid/ready握手机制,valid拉高不能依赖ready,环境构造ready时,依赖valid产生,如果DUT设计有问题,会死锁,环境会报超时错误。
排查双向接口0,1,z是否都覆盖。
存在的边界场景是否都覆盖。
所有输出都要有checker或者sva检查
fifo覆盖fifo空和满的场景;覆盖空-》满-》空;覆盖同时读写;验证fifo空后读;验证fifo满后写
vcs+initreg+0/1/random回归
双口ram是否覆盖同时读写。
reserved空间读写访问是否验证,不能挂死
易错点:正常地址和异常地址交替访问,第二次异常访问返回值容易和上一次正确访问返回值保持一致。
dfx是否验证充分。
计数器要验计满场景,确认计满是什么状态,然后清楚,再看能否重新计数
是否覆盖清理和计数器+1脉冲同时到达的场景。
中断正确上报,且能清除,清除后能再次上报
检查中断上报的伴随信息
覆盖中断触发和清除同时到达的场景