《systemverilog验证》阅读笔记 -- 面向对象编程基础
来源:互联网 发布:建筑方案动画软件 编辑:程序博客网 时间:2024/06/02 00:35
- 类可以定义在任意地方
- OPP术语
- 类的声明和实例化
- 对象的解除分配
- 使用对象
- 静态变量和动态变量
- this关键词
- typedef class的用法
面向对象编程OPP,使用户能够创建复杂的数据类型,并且将数据和使用方法紧密结合在一起。
用户可以在更加抽象的层次下,建立测试平台和系统级模型,通过调用函数来执行一个动作(抽象出的模型更容易阅读),而不是改变信号的电平(太细节)。
这样做的好处:
1. 测试平台和设计细节分开;
2. 可靠而且易于维护;
3. 方便以后项目的重用。
类可以定义在任意地方
每个类最好保存在独立文件里。
类如果数目太大,可以采用package把类和类型定义捆绑在一起。
OPP术语
- 类class。包含变量和子程序的块。
- 对象object。类的一个实例。
- 句柄handle。指向对象的指针。
- 属性property。存储数据的变量。systemverilog对应的是变量(variable)
- 方法method。task或者function。
- 原型prototype。程序的头,包括程序名、返回类型和参数列表。内容,称为程序体。
类的声明和实例化
类的声明和实例化,推荐是分成两行。
Transaction Tr;//声明句柄,是一个指针变量。(形象举例,向政府申请一个门牌地址)Tr = new();//为Transaction对象,分配地址。(形象举例,构造一个真实的房子;对应上一行的门牌地址。以后,门牌地址就对应这一个房子。)
new,是类的实例化,主要是对类的成员变量进行初始化,比如二态变量,默认值为0;四态变量,默认值为X。所以,在new构造函数里,可以改变类的成员变量默认值。如下所示:
对象的解除分配
句柄没用之后,可以删除对象,来释放内存空间,保证仿真速度。
Tr=null;
- 不能回收一个被句柄引用的对象;
- 对象里的子程序,其线程未结束;就不能回收相应的对象;
使用对象
只要声明并构造了一个类变量。那么就有了这一类的真实对象,可以用Tr.functionA、Tr.taskB、Tr.variableC,使用这个房子里的每一样物品了(默认都是public公共,如果local变量的话,只能类内部访问)。
静态变量和动态变量
静态变量,定义是用static关键词。访问是用::
注意,要保证在创建第一个对象前,对静态变量进行初始化;
另外,注意,在类的构造函数new()代码段,不能对静态变量初始化。
所以,相同类,多次new之后,静态变量是可以作为这个类的全局变量使用的。
同理,非静态变量,即动态变量,每次new之后,都会有其统一的默认初始值。相同类,多次new之后,动态变量是可以作为这个类的局部变量使用的。
如下例:因为静态变量,是直接存储在内存里;所以访问类的静态变量,是不需要构造函数的,甚至不需要类的声明。如下例:
静态方法,function和task,也是类似的道理。可以作为相同类的全局方法使用。
this关键词
如下例,this的作用,是指明变量是该层次类里的变量。而非function内部的内部变量。
typedef class的用法
默认,类的描述,是按照顺序去编译的。
然而,利用typedef class,可以预先定义类,而类的描述可以推后描述。比如下例:
- 《systemverilog验证》阅读笔记 -- 面向对象编程基础
- 《systemverilog验证》阅读笔记 -- 数据类型
- 《systemverilog验证》阅读笔记 -- 过程语句和子程序
- 《systemverilog验证》阅读笔记 -- 连接设计和测试平台
- C++笔记:面向对象编程基础
- 面向对象编程基础学习笔记
- python基础学习笔记<面向对象编程>
- Python面向对象编程基础学习笔记
- C++笔记:面向对象编程基础
- scala学习笔记:面向对象编程基础
- 把书读薄之《面向对象葵花宝典》阅读笔记-面向对象基础
- 面向对象编程基础
- 面向对象编程基础
- 面向对象基础笔记
- Java学习笔记(三、面向对象编程基础)
- javascript面向对象编程-基础(笔记2)
- BC404学习笔记-ABAP面向对象编程(一)-基础
- Python进阶笔记(4)_ 面向对象编程基础
- iOS把图片缓存到本地的几种方法
- handler机制的原理
- 图像的Fourier变换
- 汇编从0开始(6)
- 强制隐藏输入法
- 《systemverilog验证》阅读笔记 -- 面向对象编程基础
- 防止用户输入日期格式错误,添加日历组件
- jsp标签使用技巧整理
- 设计模式-单例模式
- ROS Smach-----状态创建和添加
- 自动化测试工具
- 巧妙的构建你的数据科学作品集!
- 一个 2 年 Android 开发者的 18 条忠告
- 女巫终于变黑猫了