我起个头,感觉可以从这几个方面来考虑状态机的验证完备性,
如果这个状态机的代码是全新开发的,第一步我觉得应该是对照spec文档和RTL代码,检查设计写的状态机与他的设计文档是否做到了一致
激励:这个应该没什么疑问,肯定是随机激励+定向测试,定向测试主要是覆盖异常情况,比如动态复位导致状态机异常跳转
检查:(1)用断言给状态机建模,或者简单点写一个monitor实时监控状态机的跳转
(2)仿真结束之前检查状态机是否回到IDLE状态
覆盖率:代码覆盖率,必要时可以针对状态机里面的状态转移条件开发一部分功能覆盖率
其他:时间比较充裕的情况下,验证人员可以考虑串讲状态机的RTL代码,即验证工程师对着状态机RTL代码给设计人员讲各个状态之间具体是怎么转移的
暂时能想到就这么多,欢饮补充。。。
|