在芯片验证中,我们随机发送数据激励,同时使用scoreboard进行数据完整性检查。
scoreboard使用的关键在于如何启动检查以及检查的内容。我们可以选择一个用例结束后采用后处理检查,也可以在线地检查,即每次收到一个回数就启动检查。
因为不会存在太多的数据,所以在线检查会比后处理检查内存效率更高,检查完之后就可以将相应的预期值删除掉。
用例结束后可以检查预期值队列是否是空的,即所有的预期都得到了正确的响应。
上图中transfer function就是一个参考模型(reference model),就是验证工程师或者模型工程师开发的和RTL完成一样工作的模型,用于和RTL比对。不同模型检查的精细程度会不同,能够比对的东西也不同,最精细的就是和RTL类似的时钟精确模型。
上图中的data structure存储预期值(一般是一个queue),可以很复杂,也可以很简单。scoreboard中的checker会将RTL输出和参考模型输出进行比对,比对的时刻就是在RTL回数的时刻,比对通过后就可以将预期值从data structure中删除。
上面提到的都是scoreboard的一些基本的概念,实际项目中scoreboard的使用有很多形式,可以是级联的scoreboard比对一个feature,也可以是一个scoreboard比对多个feature。
通常参考模型是验证最困难的地方,因为需要和RTL一样处理很多边界场景,而且要保证可以使用scoreboard比对上。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !