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

作者:小白蒋
~

本文内容

    • 1、静态变量static的含义
    • 2、local和protected的区别
    • 3、多态、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
endclassclass EA extends A;task disp();$display("this is Extend class A");endtask
endclassprogram main;EA my_ea;A my_a;initial beginmy_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,所以可以通过父类使用子类的对象,直接使用子类的方法。
一句话概括:虚方法看对象,实方法看句柄。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部