验证工程师的任务是发现所有的设计bug。为此验证工程师必须要理解设计,并且和设计进行密切地合作。
验证工程师对于设计的理解分为两次层次,规格级别( specification level )和RTL实现级别(implementation level )
规格级别规定了设计的整体功能。它包括体系结构、输入和输出以及性能要求。体系结构是设计的主要规格,例如处理器的指令集、I/O的协议、性能要求和内部存储的大小等。规格一般有很好的文档记录。
实现级别就是设计的微架构,例如控制流、数据流、时钟门控以及状态机等。实施级别的文档一般会比较缺失,这些信息主要来自RTL的设计者。如有必要,验证工程师可以通过设计深刻地理解设计的实现,这有利于验证工程师针对内部设计进行更高效的压力测试(这也是验证人员需要看RTL的原因,端到端的黑盒功能验证往往是不充分的)。
考虑到验证人员在仿真时发现问题,某些验证工程师可能会说,“你的代码有bug,请马上修复。”这可能会激怒设计人员,并影响下次配合。而且大多数时候可能并不是RTL设计的问题,而是验证环境的checker误报,或者输入非法场景激励导致的。
所以当发现仿真报错时,我们应该这样和设计沟通:“我发现一个很有意思的场景,balabala,你能帮忙看一下么 ?”
作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/9Q0SV5m5Xkkd-6SAkmL41A
微信公众号:
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。