硬件验证基础知识转载.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

硬件验证基础知识转载

在硬件验证方面,我也是个初学者,但是看过了国内某论坛对于硬件验证

的讨论,觉得现在国内实在对硬件验证理解得太单纯。

什么是硬件验证?

硬件验证(或者说芯片验证,真正的英文是Pre-siliconVerification,

就是流片前验证。硬件验证实际上是对设计模型(RTL)的功能性验证,同时尽量

发现潜在的隐患。也就是说,硬件验证的首要任务是保证设计模型能完成所有

预先设计的功能,其次才是发现设计漏洞(bug)。所以,硬件验证并不是单纯的

调试(debug)。

为什么要硬件验证?

硬件和软件不一样。如果软件出现漏洞(bug),进行相应的升级(update)或

者修补(patch)就可以了。但是硬件就不同了。如果硬件出现故障

(malfunction),唯一的解决方法就是替换(replacement),这将耗费大量的人

力和财力。同时,芯片厂同批产品全部需要销毁,这对于芯片制造企业来讲,

也是一个很大的损失。所以,现在的芯片制造企业大多都成立了专门的硬件验

证部门,其目的就是防患于未然。

硬件验证是硬件生产中非常关键的一步,以至于现在的硬件厂商用二倍于

设计的时间来进行验证。[1]通过验证,不仅可以找出缺失的功能和错误的响应,

也可以测试硬件的性能和发现隐藏的问题。在硬件验证过后,虽然不能保证硬

件100%稳定运行,但是可以确认在绝大多数情况下硬件能正常工作。

怎样进行硬件验证?

最早的硬件验证使用确定性验证法(DeterministicVerification,我觉得

翻译成针对性验证法更恰当些),也就是手工生成激励输入(stimulus),然后

人工比对输出响应(response),如果响应与设计相吻合,则内部电路正确。这

种方法的好处就是针对性非常强,我们可以针对某一个信号或者某一个引脚的

动作(behaviour)进行测试。但是这种方法的弊端也很明显,如果对每一个引脚

都做确定性验证,那将消耗大量的时间和精力。尤其是现在的芯片规模越来越

大,功能越来越复杂,如果做完整的确定性验证,花费的时间可能达到数百年。

现在比较通用的方法是随机验证法(Randomization),就是由程序随机生成

输入激励,然后将输出响应和预测值进行比对,从而判断设计是否工作正常。

这里就需要引入一个参考模型的概念。

由于输入是随机的,不确定的,那么如何得出相对应的输出就是一个很棘

手的问题。如果用人工计算的方法,那就和前面提到的确定性验证法一样了。

为了避免大量的人力劳动,预测的过程将由程序来替代。而这个通过输入预测

输出的模型就叫做参考模型。在实际操作中,参考模型和设计模型由不同的人

员编写,以保证对设计理解的一致性。换句话说,就是避免同一个人犯同样的

错误。

事实上,现在的硬件验证已经将针对性和随意性两种验证方法相结合,发

挥两者的优势,达到验证开销的最小化。整体随机验证法是硬件验证的终极方

案,即所有的输入激励均由程序随机产生。这种方法的好处就是保证了输入的

多样性,同时能检测出只有在特定状态下才会引发的错误(CornerCases)。但

是这种方法对于参考模型的要求非常高,一般到验证后期、待参考模型完善才

会使用。

既然自动验证需要程序预测,那么相应的编程语言也就由此而生。通常,

在设计上,工程师们使用硬件设计语言(HDL,HardwareDesignLanguage或者

HardwareDescriptionLanguage),但是,在验证方面,硬件设计语言无法胜

任大部分要求(比如说,遇错报警,随机产生激励等等)。这时候,硬件验证语

言(HVL,HardwareVerificationLanguage)出现了。目前用得比较广泛的硬件

验证语言是Synopsys的Vera和Cadence的e语言。有人说Sy

文档评论(0)

精品文档 + 关注
实名认证
文档贡献者

有多年的一线教育工作经验 欢迎下载

1亿VIP精品文档

相关文档