SystemVerilog验证 测试平台编写指南 第五章 面向对象编程基础

1、OOP术语a.类(class):包含变量和子程序(函数或者任务)的基本构建块。Verilog中与之对应的是模块(module)。b.对象(object):类的一个实例。在Verilog中,你需要实例化一个模块才能使用它。c.句柄(handle):指向对象的指针。在Verilog中,你通过实例名在模块外部引用信号和方法。一个OOP句柄就像一个对象的地址,但是它保存在一个只能指向单一数...
摘要由CSDN通过智能技术生成

1、OOP术语

a.类(class):包含变量和子程序(函数或者任务)的基本构建块。
Verilog中与之对应的是模块(module)。
b.对象(object):类的一个实例。
在Verilog中,你需要实例化一个模块才能使用它。
c.句柄(handle):指向对象的指针。
在Verilog中,你通过实例名在模块外部引用信号和方法。一个OOP句柄就像一个对象的地址,但是它保存在一个只能指向单一数据类型的指针中。
d.属性(property):存储数据变量。
在Verilog中,就是寄存器(reg)或线网(wire)类型的信号。
e.方法(method):任务或者函数中操作变量的程序性代码。
Verilog模块除了initial和always块以外,还含有任务和函数。
f.原型(prototype):程序的头,包括程序名、返回类型和参数列表。程序体则包含了执行代码。
类是对象的一个模板,其内部定义了数据和方法。对象是类的一个例化和实现。
注:《SystemVerilog验证 测试平台编写指南》中使用 变量(variable)和程序(routine),而没有使用OOP中的属性(property)和方法(method)。

2、用户使用对象的三个步骤

a.定义类:

class packet;
...
endclass:packet
    
class long_packet;
 ...
endclass:long_packet

b.在module、class、function、task等地方声明对象:

packet my_packet;	//声明一个句柄
packet packet_array[32];
long_packet my_l_packet;

对象标识符(my_packet/packet_array/my_l_packet)是例化该对象的句柄(指向对象的指针)。当该对象被创建的时候,该句柄有效,默认情况下句柄将为空(null)。

c.通过构造函数new创建对象的例化

通过new这个构造函数给对象分配内存空间,并且把入口地址赋给对象的句柄:

my_packet=new(168);		//为一个packet对象分配空间

my_l_packet=new(); 

例5.1 简单的Transaction类

c
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值