System Verilog视频学习笔记(6)- OOP-Encapsulation

来源:互联网 发布:网上订餐系统源码下载 编辑:程序博客网 时间:2024/06/08 00:58

OOP-Encapsulation(面向对象-封装)

内容来自启芯-System Verilog视频

============================================================== 

目录结构:

1、代码的抽象和可复用性

2、SV中的OOP程序结构

3、OOP封装

4、OOP对象产生

5、操作对象成员

6、初始化对象

7、数据保护

8、类对象赋值

9、Best practices

10、总结

 ==============================================================

本章目标:

1、OOP封装

2、保护属性

3、初始化,new函数

 

OOP:Object OrientedProgramming,面向对象

1、代码的抽象和可复用性

图1、OOP复用

类可将一类事物抽象,可由同一个类定义不同的功能,所以又可增加代码的可复用性。

2SV中的OOP程序结构

图2、Verilog RTL结构与SV的OOP结构对比

3OOP封装

(1)Variable变量

(2)methods操作数据

(3)variable和methods是类成员

例子:

图3、类例子,classdriver

上类封装了一些变量和task方法,SV中的class对于有C++基础认识的人应该很好理解。

 

4OOP对象产生

图4、类对象产生

driver类产生drvr1drvr2句柄,后用new产生,给对象分配内存。

 

5、操作对象成员

drvr = new();

drvr.sa = 3;       //drvr内的sa变量赋值为3

drvr.da = 7;   //drvr内的da变量赋值为7

drvr.send();      //调用方法

6、初始化对象

通过new实现

new无返回值

new执行后对象分配内存

new不能通过“.”访问。

图5、例子

上图this表示当前实例的对象,与C++相同。

7、数据保护

publiclocal

默认对象成员为public

local成员不能被直接访问

图6、例子

保护成员在类内操作

 

8、类对象赋值

图7、类对象赋值

pkt1=pkt2,则pkt1对象的内存清零

 

垃圾回收:如对象句柄pkt1=null,赋值为空

静态属性:类内声明static属性的变量,则用该类例化对象时,所有对象共用该变量的值。

数组操作:在类内定义数组。

 

9Best practices

图8、类外部具体书写task函数内容,“::”作用域

图9、调试函数,display显示,compare比较,copy复制

图10、类内的Virtualinterface

驱动和采样信号通过Virtual interface,类似C++的虚函数

注意在类的定义中,构造对象中传的是对象的地址还是对象。

技巧:通过仿真学习分析调试testbench。

 

10总结

本节视频介绍了类对象、类成员、类初始化、类属性、及封装。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 有人套我车牌怎么办 在本地怎么办外地车牌 二手车卖了车牌怎么办 科目四预约失败怎么办 车子过户了车牌怎么办 检车没有保险怎么办 异地超速12分怎么办 驾驶证考试过期了怎么办 买了库存车怎么办 车龄长了油耗高怎么办 新车发现补过漆怎么办 魅蓝note3内存不足怎么办 汽车安全检测证怎么办 a证被扣12分怎么办 突发事作后事故单位怎么办 如果遇到突发事故怎么办? 班级遇到突发事故怎么办 高速上出车祸怎么办? 安卓车载中控大屏卡怎么办 车辆交通信息卡怎么办 成都焊工压力容器证怎么办 天车钢丝绳绞住怎么办 受伤了怎么办安全教案 复读后学籍档案怎么办 开车就是开不好怎么办 货车提不了档案怎么办 二手车档案丢了怎么办 车辆档案丢了怎么办 手续跟车都丢了怎么办 二手车无法核档怎么办 高尔夫6天窗漏水怎么办 司机违章辞职了怎么办 年检可以推迟了怎么办? 汽车年审推迟了怎么办 机动车2年年检怎么办 教育局不给退学怎么办 没上火车票丢失怎么办 劳动局被收买了怎么办 醉驾单车事故怎么办 长沙市怎么办未孕证明 违章扣分不够扣怎么办