有这样一个场景。
我们下发一个访问包,当发送的访问包校验正确时,DUT会回复一个正常的响应包,当发送的访问包校验错误时,DUT会回复一个空响应包。
如果我们只发送一个错误访问包,DUT返回了一个空响应包,我们环境同样产生了一个空返回包,这样两个包比对成功,设计行为是符合预期的,看起来没有问题,但是很有可能泄露bug。
我们下发一个错误访问包,DUT内部校验失败后,对应标志信号拉高,然后根据其上升沿产生一个脉冲,送给其他模块去产生空回包。当我们再下发一个错误访问包时,由于标志信号已经为高,就不会再产生脉冲,导致无错误响应。其本质问题就是DUT在识别到错误信息后,只做了对应的后续处理逻辑,未将原始错误源复位,导致后续错误激励无响应。