1.2 学了UVM之后能做什么
1.2.1 验证工程师
验证工程师能够从本书学会如下内容:
如何用UVM搭建验证平台,包括如何使用sequence机制、factory机制、callback机制、寄存器模型(register model)等。
一些验证的基本常识,将会散落在各个章节之间。
UVM的一些高级功能,如何灵活地使用sequence机制、factory机制等。
如何编写代码才能保证可重用性。可重用性是目前IC界提及最多的几个词汇之一,它包含很多层次。对于个人来说,如何保证自己在这个项目写的代码在下一个项目中依然可以使用,如何保证自己写出来的东西别人能够重用,如何保证子系统级的代码在系统级别依然可以使用;对于同一公司来说,如何保证下一代的产品在验证过程中能最大程度使用前一代产品的代码。
同样的一件事情有多种实现方式,这多种方式之间分别都有哪些优点和缺点,在权衡利弊之下哪种是最合理的。
一些OVM用法的遗留问题。
可以说,本书特别适合欲使用UVM作为平台的广大验证工程师阅读。当前众多IC公司在招聘验证人员时,最基本的一条是懂得UVM,学完本书并熟练使用其中的例子后,读者可以满足绝大多数公司对UVM的要求。
1.2.2 设计工程师
在IC设计领域,有一句很有名的话是“验证与设计不分家”。甚至目前在一些IC公司里,依然存在着同一个人兼任设计人员与验证人员的情况。验证与设计只是从不同的角度来做同一件事情而已。验证工程师应该更多地学习些设计的知识,从项目的早期就参与进去,而不要抱着“只搭平台只建测试用例,调试都交给设计人员”的想法。同样,设计工程师也有必要学习一点验证的知识。一个一点不懂验证的设计工程师不是一个好的设计工程师。考虑到设计人员可能没有任何的SystemVerilog基础,本书在附录A中专门讲述SystemVerilog的使用。设计人员可以在读本书之前学习一下附录A,以更好地理解本书。另外,本书与其他书最大的不同在于,本书开始就提供了一个完整的、用UVM搭建的例子,设计人员只要学习完第2章的例子,再把它和自己公司的验证环境结合一下,就可以搭建简单的测试用例了。而其他书,则通常需要看完整本书才能达到同样的目的。