【SystemVerilog 之 面向对象】~ 类和对象、类的成员、类的继承、句柄、包

1. 类和对象

1.1 概述

在这里插入图片描述
在这里插入图片描述

1.2 验证环境为什么要面向对象编程呢?

在这里插入图片描述
我们之前提到测试平台,不同的组件要完成的使命是不一样的,每个组件都有它自己的特性,那么,这不就是OOP思想的体现嘛?

1.3 OOP概念的要素

在这里插入图片描述

1.4 对比Verilog的例化 和 SV class例化 的差别

在这里插入图片描述

1.5 创建对象时,要明确 声明 和 创建(例化)

在这里插入图片描述
在这里插入图片描述

1.6 句柄

1.6.1 句柄的传递

在这里插入图片描述

1.6.2 句柄的使用

在这里插入图片描述

1.7 对象的销毁

在这里插入图片描述

1.8 静态变量

在这里插入图片描述

1.9 静态方法

在这里插入图片描述
在这里插入图片描述

1.10 练习

在这里插入图片描述
答案:BCD
解析:B错误,一个类可以有很多对象,比如水果是一个类,那么苹果、香蕉等等等都是对象;C错误,句柄相当于指针一样,可以有多个;类属于软件域中的,不可以出现wire或reg。

在这里插入图片描述
此时tr.addr的值是什么?
答案:10
解析:调用之后,,a的值为10,之后又把a赋给addr,覆盖掉之前的十六进制的10,所以最后是10.

在这里插入图片描述
在这里插入图片描述
答案:B,
解析:注意的是,只有 有句柄指向的对象 才不会自动回收,所以,该题句柄wd最后指向new(4),所以开辟空间大小为4B。

在这里插入图片描述
在这里插入图片描述
答案:D
解析:区分与上一个题的区别,initial中默认的都是静态的,该题加上automatic之后,变成动态的,那执行完initial1之后,initial1中的所有变量都消失,所以句柄也会消失,从而指向的对象也都消失,因此,开辟的空间为0B。

2. 类的成员

2.1 概述

在这里插入图片描述
在这里插入图片描述

2.2 类 与 结构体 比较

在这里插入图片描述

2.3 类 与 模块 比较

在这里插入图片描述

2.4 类的常见问题

在这里插入图片描述

2.5 练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
答案:D
解析:因为nclock是local型的变量,外部是不可以访问的,可以通过成员变量访问内部变量,所以会报错。

在这里插入图片描述
答案:A
解析:B错误,对象可以在编译时例化,换句话说,对象可以在没有仿真的时候就有静态句柄存在了;
C错误,根据类的封装特性,可以保护无法被外部访问的变量,但模块不行;
D错误,继承属于类的三大特性之一。

3. 类的继承

3.1 概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 成员覆盖

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析:D,子类访问某个变量和方法优先在自己的类中找,找不到去自己的父类中找,一直往上找;如果子类赋值给父类句柄,那么此时父类也只能访问到父类自己的那些成员变量和方法。
在这里插入图片描述

练习

在这里插入图片描述
在这里插入图片描述
答案:D
解析:D正确,没有该属性 ,所以无从得知;A错误,不可以修改,portectd只有该类或者子类可以访问,外部不可以;B错误,is_good是local属性,不可以外部访问;C错误,没有get方法,不可以得知。

4. 句柄的传递

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析:C,注意,function的端口默认都是input,是没有返回值的,在调用create方法之前,句柄t是悬空的,即t为null,此时调用create方法传进去的是null,所以执行这步的时候报错。

在这里插入图片描述
在这里插入图片描述
解析:C,注意的是,句柄t总是指向同一个对象,而我们推进去的是句柄,而不是对象本身,所以,三个句柄总是指向同一个对象,那么addr最后的值是8。

5. 包

5.1 包的意义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 包 与 库 的区别

在这里插入图片描述

5.3 包的命名规则

在这里插入图片描述
在这里插入图片描述

5.4 包的使用

在这里插入图片描述
在这里插入图片描述
答案:ABCD

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值