数字芯片和FPGA的验证。主要是其中的功能仿真和时序仿真。
验证中通常要搭建一个完整的测试平台和写所需要测试用例。而verilog这种硬件描述语言是出于可综合成电路的目的设计出来的,所以它在书写测试平台和测试用例是不够方便的 (测试平台和用例不需要综合成电路)。而SV正是由于它不需要满足可综合性,所以它变得非常灵活,它 引入了面向对象语言的概念。在验证方面, 如果说verilog是C语言的话,那SV就是C++,他不光有verilog的所有特性,还有自身面向对象的特性。如果你了解一点面向对象的概念的话,应该能够更好地理解其中的差异。
但说到底SV实际上 只是一种语言,它撑不起现在芯片庞大的验证规模。就像英语,你光知道词汇和语法是不够的。 你需要一种模版,来让行文变得容易、流畅和优美,来应付各种复杂的场景。SV这种语言之上的就是UVM、OVM等方法学。
说是叫方法学, 其实UVM更像是一种库。你调用这种库的时候,就可以使用库中各种写好的函数。更棒的是,你可以使用它 预设好的成熟的框架体系。这样大量的测试平台所需要的代码都可以复用,作为验证工程师,你只需要集中注意力去设计你所需的测试用例,考虑会发生故障的情形就可以了。
链接:https://www.zhihu.com/questio
验证中通常要搭建一个完整的测试平台和写所需要测试用例。而verilog这种硬件描述语言是出于可综合成电路的目的设计出来的,所以它在书写测试平台和测试用例是不够方便的 (测试平台和用例不需要综合成电路)。而SV正是由于它不需要满足可综合性,所以它变得非常灵活,它 引入了面向对象语言的概念。在验证方面, 如果说verilog是C语言的话,那SV就是C++,他不光有verilog的所有特性,还有自身面向对象的特性。如果你了解一点面向对象的概念的话,应该能够更好地理解其中的差异。
但说到底SV实际上 只是一种语言,它撑不起现在芯片庞大的验证规模。就像英语,你光知道词汇和语法是不够的。 你需要一种模版,来让行文变得容易、流畅和优美,来应付各种复杂的场景。SV这种语言之上的就是UVM、OVM等方法学。
说是叫方法学, 其实UVM更像是一种库。你调用这种库的时候,就可以使用库中各种写好的函数。更棒的是,你可以使用它 预设好的成熟的框架体系。这样大量的测试平台所需要的代码都可以复用,作为验证工程师,你只需要集中注意力去设计你所需的测试用例,考虑会发生故障的情形就可以了。