文章目录
1 为什么 SystemVerilog 需要面向对象编程?
Verilog 语言没有结构(struct),只有位和数组,而且数组是静态的,需要修改数组大小需要修改源代码并重新编译。
面向对象(OOP)编程:
- 能够创建复杂的数据类型,并将它们和程序紧密结合。
- 能够在更高层次建立测试平台和系统级建模,更加高效。
- 测试平台与设计细节分开,更加可靠易于维护,可重用。
传统的测试平台强调要做的操作,类似C语言,执行一个操作流,比如创建事务、发送、接收、检查结果、产生报告。
OOP中,考虑测试平台的结构和功能,每一个部分作为一类,或者说若干块(block)。如发生器(generator)、驱动器(driver)、监视器(monitor)、记分板(scoreboard)。他们各自实现自己的功能,即OOP中的方法。
2 OOP术语以及与 Verilog-2001 大致对应关系?
- 类(class):包含变量和子程序的基本构建块。Verilog 对应模块。
- 对象(object):类的一个实例。Verilog 中模块的实例。
- 句柄(handle):指向对象的指针。Verilog 中实例名引用信号与方法。
- 属性(property):存储数据的变量。Verilog 寄存器 或 线网。
- 方法(method):任务或函数中操作变量的程序性代码。Verilog 除 initial 和 always 块之外,还有task 和 function。
- 原型(prototype):程序的头包含程序名、返回类型和参数列表。程序体则包含执行代码。

最低0.47元/天 解锁文章
1274

被折叠的 条评论
为什么被折叠?



