第1章 验证导论
“有些人相信,我们缺乏能够描述这个完美世界的编程语言……”
——《黑客帝国》,1999
设想一下,你被委任去为别人建一幢房子。你该从哪里开始呢?是不是一开始就考虑如何选择门窗、涂料和地毯的颜色,或者浴室的用料?当然不是!首先你必须考虑房的主人将如何使用房子内部的空间,这样才能确定应该建造什么类型的房子。你应该考虑的问题是他们是喜欢烹饪并且需要一个高端的厨房,还是喜欢在家里边看电影边吃外卖比萨?他们是需要一间书房或者额外的卧室,还是受预算所限要求更简朴一些?
在开始学习有关SystemVerilog语言的细节之前,你需要理解如何制订计划来验证你的设计,以及这个验证计划对测试平台结构的影响。如同所有房子都有厨房、卧室和浴室一样,所有测试平台也都需要共享一些用于产生激励和检验激励响应的结构。本章将就测试平台的构建和设计给出一些引导性的建议和编码风格方面的参考,以满足个性化的需要。这些技术使用了Bergeron等人2006年所著《SystemVerilog验证方法学》书中的一些概念,但不包括基本类。
作为一个验证工程师,你能学到的最重要的原则是“程序漏洞利大于弊”。不要因为害羞而不敢去找下一个漏洞,每次找到漏洞都应该果断报警并记录下来。整个项目的验证团队假定设计中存在漏洞,所以在流片之前每发现一个漏洞就意味着最终到客户手里少一个漏洞。你应该尽可能细致深入地去检验设计,并提取出所有可能的漏洞,尽管这些漏洞可能很容易修复。不要让设计者拿走了所有的荣誉——没有你的耐心细致、花样翻新的验证,设计有可能无法正常工作!
展开