2002年中期,我们的经理给我们发了一个电子邮件,问道:“谁愿意去支持OVA?”我们从脑子中迸出的第一个想法就是“究竟什么是OVA?”和其他几个工程师交谈后,我们知道了它是OPEN VERA语言的一个子集。OVA是指“OPEN VERA断言(Open VERA Assersions,简写OVA)”,它是一种描述性的语言,能描述时序上的条件。就如同过去一样,为了满足对技术的渴求,我们同意做OVA的支持。在两个月内,我们学习了这种语言,并开始培训客户,在六个月内培训了200个左右的客户。客户洪水般涌进教室,给我们留下深刻的印象。我们确信这是验证领域下一件最好的事情。当客户们匆忙接受完培训,他们并没有开发任何OVA的代码。这是因为验证技巧和这种语言都是新的。一些工具刚开始支持这些语言结构。没有多少IP(Intellectual Property)可以使用。很自然,客户并没有我们想像的那么满意。 同时,Synopsys公司把OPEN VERA语言捐献给Accellera委员会,使其成为SystemVerilog语言的一部分,其他几个公司为SystemVerilog语言的形成作了一些贡献。在DAC 2004,Accellera委员会把SystemVerilog 3.1定为一个标准。断言语言被纳入SystemVerilog语言并成为了标准的一部分。这就是通常所说的“SystemVerilog Assertion(SVA)”。我们继续培训客户基于断言的验证,不过现在仅仅教SVA。我们能清楚地看到客户更习惯于使用预开发的断言库,而不乐意编写定制的断言代码。是什么阻碍了他们?是工具吗?不,工具是现成的。是语言吗?或许,但它如今已是一个标准,所以不应该是它。 经过一番深入的讨论,我们认识到,缺乏例子来演示SVA的结构可能是阻碍客户使用这项新技术的原因。比较典型的是缺乏专家指导导致了如此低的采纳率。这时我想到出版一本关于SVA的“烹饪书”可能有用—— 即一本充满例子的书,这本书可以作为指导书,用来教授这种语言。这个项目就是这样启动的。我们努力把过去两年中在教授这门科目时所学的东西写出来。但是在这个领域还有很多东西需要去学,这本书只是把我们所学到的跟大家分享。 如何阅读这本书 这本书的写作方式可以使工程师快速掌握SystemVerilog断言。 第0、1和2章,可以使您充分了解基础语法和一些通用的模拟技巧。阅读完这三章,读者应该能在他们的设计/验证环境中写断言。 第3、4、5和6章是不同类型的设计的“烹饪书”。读者如果在他们自己的环境里遇到类似的设计可以参考这些章节,以这些章节作为起点开始写断言。这些章节也可以作为指导。 如果您是基于断言验证的新手,则需要阅读完第0章~第2章,才能开始其他章节。如果您熟悉SVA语言,就可以根据需要参考这些章节。 第0章—— 这是关于基于断言的验证(ABV)方法论的白皮书。这一章介绍了ABV的方法学和功能覆盖的重要性。 第1章—— 用简单的例子讨论了SVA的语法和详细分析了在动态模拟中执行SVA结构的过程。包括了模拟波形和事件表以供读者参考。要了解每个SVA结构的细节,用户可以参考SystemVerilog 3.1 a 语言参考手册(LRM)的第17章。 第2章—— 用一个实例系统说明SVA模拟的方法。主题囊括了协议解析、模拟控制和功能覆盖。 第3章—— 用两个不同的有限状态机(FSM)模型作为例子,举例说明如何用SVA验证FSM。 第4章—— 举例说明用SVA验证一个数据通道。用JPEG设计的一部分来演示如何用SVA验证控制信号和数据。 第5章—— 举例用SVA验证一个存储控制器。这个控制器支持不同类型的存储如:SDRAM、SRAM、FLASH等。 第6章—— 举例用SVA验证一个基于PCI局部总线的系统。使用了一个PCI系统配置的例子,用SVA验证不同的PCI协议。 第7章—— 用一个测试平台(testbench)的例子验证断言,也讨论了在验证断言的精度背后的理论。 随书附一张光盘。本书中的所有例子都可以用VCS 2005.06发行版运行,也包括运行这些例子的脚本范例。VCS是Synopsys公司的注册商标。 致谢 下面的人由于他们对完成本书所做出的巨大贡献,在这里作者对他们表示真诚的谢意: Anupama Srinivasa,DSP解决方案架构师,AccelChip公司; Jim Kjellsen,Staff应用顾问,Synopsys公司; Juliet Runhaar,资深应用顾问,Synopsys公司; 我们同样感谢下面的人,他们参与审阅本书并提供了很多建设性的建议: Ira Chayut,Bohran Roohipour,Irwan Sie,Ravindra Viswanath,Parag Bhatt,Derrick Lin,Anders Berglund,Steve Smith,Martin Michael,Jayne Scheckla,Rakesh Cheerla,Satish Iyengar 有用的链接 —— 我们维护的网页,提供关于SystemVerilog语言的技巧、例子和讨论。 —— Accellera委员会的官方网站。可以从这里下载SystemVerilog LRM。这里还有一些有用的论文和有关最新标准的介绍。