systemverilog中静态变量、local和protected的区别、多态virtual的理解及代码演示

作者:小白蒋
~

1、静态变量static的含义

关键词static,代码static int count=0;就是把count变成实参,可以全局调用;跟形参不一样,不会用完就释放掉;

2、local和protected的区别

(1)local就是本地变量,代码local int DONE,比如在父类中定义DONE,那么在子类中就不能调用DONE
(2)protected就是保护变量,在父类中定义protected nt DONE,这样定义,子类中就可以调用DONE,但是外部代码仍然不能操作该变量

3、多态、virtual的理解及代码演示

多态的特性: 通过父类的变量可以使用子类的对象,通过基类的变量直接引用子类的方法。
关键字: virtual
代码演示:
vitual_method.sv

program class_t;
class A;
	virtual task disp();
		$display("this is class A");
	endtask
endclass

class EA extends A;
	task disp();
		$display("this is Extend class A");
	endtask
endclass

program main;
	EA my_ea;
	A my_a;
	initial begin
		my_a = new();
		my_a.disp();

		my_ea = new();
		my_a = my_ea;
		my_a.disp();
	end
endprogram

运行代码vcs -R -sverilog virtual_method.sv
结果:
在这里插入图片描述
代码的理解:因为定义了virtual task,所以可以通过父类使用子类的对象,直接使用子类的方法。
一句话概括:虚方法看对象,实方法看句柄。

  • 12
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白蒋博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值