对于验证,各设计语言的特点分别如下:
(1) Verilog:主要针对设计,在验证方面最大的问题是功能模块化和激励随机化。
(2) SystemC:主要针对算法开发,SystemC本质上是一个C++库,缺点是管理内存,避免内存泄露。
(3) SystemVerilog: 具有面向对象的特性:封装、继承和多态。对于验证,SystemVerilog语言提供了功能覆盖率、约束等特点,与Verilog兼容。
在基于SystemVerilog的验证方法学主要包括三种:VMM、OVM和UVM。UVM应用最广,得到了三大EDA厂商Sysnopsys、Mentor和Cadence的支持。
UVM(Universal Verification Methodology)通用验证方法论,主要优势如下:
(1) 提高了代码的复用性,即移植性强,验证人员可快速移植代码搭建验证平台,而将主要精力放在编写测试用例上。
(2) UVM封装了多种方法,验证人员不必过多关注底层实现,减少了调试时间。