1.subip验证:

    作为最基础的模块级别验证,侧重于模块功能本身完备性验证。除了常规的功能验证还需要关注输入和输出对前后级的影响,在系统层面把模块接口时许梳理下丰富你接口时许的变化。

      对于模块本身除了控制寄存器组合功能验证,需要覆盖到边界的情况。对于边界的覆盖除了本身配置信息min/max覆盖,还有rtl内部逻辑计算需要到达的边界特别是存在clip的情况,有些clip需要多种组合才能触发,你随机的相关组合未必能覆盖,有可能会遗漏计算溢出的bug。这种情况下需要你对模块这段逻辑相对清晰,另外可以借助于FW工具覆盖。

     当前模块接口时许出现异常情况或者配置异常情况下,看数据能否在下笔操作下恢复正常数据对比真确,下一笔操作是否能clear前一笔fifo残留数据以及恢复机制处理是否正确,状态机是否存在卡死现象,是否有异常中断上报并有清除中断机制。

     在进行多笔数据传输过程中是否存在fifo空满情况居多导致读写操作过程中存在密集的反压,影响模块运行效率,特别是有axi接口是否存在反压总站过长行为。

     如果模块带有axi总线,我们需要关注axi的相关行为。例如outstanding/latency/response delay/out of order/接口异常行为(ready异常拉低在拉高,ready反压到下一笔开头,中间,结尾等)。

      如果发生了reset我们还需要关注发生在数据的结尾,中间看是否reset所对应的逻辑是否正确复位,数据是否恢复到初始他状态,fifo是否清空。异常fifo是否两边同时复位完成。

     如果接口存在多个时钟和复位组合,我们还需要考虑异步跨时钟的逻辑,可以配置极限的时钟频率比进行覆盖率,一个配置最大一个配置最小。

    还有很多feature点但今天先写到了这里,困了

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐