前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数字IC笔试题(10)——System Verilog的class类相关问题

数字IC笔试题(10)——System Verilog的class类相关问题

作者头像
FPGA探索者
发布2021-10-25 16:24:46
1.1K0
发布2021-10-25 16:24:46
举报
文章被收录于专栏:FPGA探索者FPGA探索者

class类的运行结果、类成员属性、父类子类

1. System Verilog 的 class

以下 SV 程序的运行结果为()

代码语言:javascript
复制
class Test;
    bit[31:0] addr;
    functionnew(logic [31:0] addr = 32'hFFFF_FFFF);
        addr= addr;
   endfunction

    functionvoid display_addr;
       $display("%0h", addr);
   endfunction
endclass

initial begin
    Test t1;
    t1 =new(32'h1);
   t1.display_addr();
end

A. 00000000

B. 32’hFFFFFFFF

C. 00000001

D. X

答案:A

解析:

new 函数中并没有把传入的 addr 值赋值给对象,所以不管 new 传入多少,都是打印的 bit [31:0] addr 的默认值,此处没有赋值,打印 0;

做如下修改:

(1)

代码语言:javascript
复制
functionnew(logic [31:0] addr = 32'hFFFF_FFFF);
       this.addr = addr;
endfunction

操作后,addr 成功赋值给当前对象(this),打印 1;

(2)

代码语言:javascript
复制
function new(logic [31:0] addr =32'hFFFF_FFFF);
      addr= addr;
       $display("%0h", addr);
endfunction

其他位置不变,则打印 1,然后打印 0。

(3)

代码语言:javascript
复制
bit[31:0] addr = 32'h00220000;

打印 220000;

(4)

代码语言:javascript
复制
t1.addr= 3;
$display("t1.addr= %0h", t1.addr);
t1.display_addr();

打印:

t1.addr= 3

3

2. System Verilog类成员

System Verilog 中类默认的成员属性是()

A. private

B. local

C. automatic

D. public

答案:D

解析:

类中的成员属性:const,local,protected,static等;

公有和私有:

public:公有的,默认为 public,子类和类外都可以访问;

local:仅对该类的对象可见,子类和类外不可见;

protcted:进队该类和子类可见,类外不可见;

静态和动态:

static:静态,被该类的所有实例共享;

dynamic,动态,默认;

SystemVerilog 中不允许静态方法读取静态变量

3. 父类子类

类中通过()关键字访问父类的成员

A. super

B. virtual

C. parent

D. this

答案:A

解析:

由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法,该方法会调用父类相应的构造方法来完成子类对象的初始化工作。

A:super,子类访问父类的成员,调用父类的构造方法;

B:virtual,虚函数;

C:parent,指向父类的指针,使用 parent 调用父类的构造函数进行父类的初始化;

D:this,自己用;

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA探索者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • class类的运行结果、类成员属性、父类子类
  • 1. System Verilog 的 class
  • 2. System Verilog类成员
  • 3. 父类子类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档