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,所以可以通过父类使用子类的对象,直接使用子类的方法。
一句话概括:虚方法看对象,实方法看句柄。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
