EE大二学生
聊聊实际项目吧,比如一个USB设备控制器模块的验证。我们不是一上来就写covergroup。先是把USB协议标准里关于设备控制器的章节(比如设备枚举、各种传输类型、错误状态)拆解成几十个主要功能特性(Feature)。每个特性再展开成多个具体场景(Scenario)。比如‘控制传输’这个特性,场景就包括:标准设备请求、厂商自定义请求、请求错误处理等。每个场景对应一个或一组covergroup。coverpoint则针对场景里的关键变量,比如设备请求的`bRequest`类型、`wValue`值域。还会cross地址和数据有效位。判断完备?我们有一个检查清单(Checklist),基于协议标准和架构设计文档生成,覆盖点必须能映射到清单的每一项。每次代码或规格更新,清单和覆盖点都要同步更新。这个过程很繁琐,但对保证质量至关重要。
