Systemverilog疑问
时间:10-02
整理:3721RD
点击:
大侠们:在Systemverilog验证测试平台编写指南一书中有:
上面的copy函数是怎样实现的呢?copy明明是一个函数,为什么可以copy=new()呢?不是只用类才能new()吗?谢谢啦.
- class Transacton;
- bit [31:0] addr ...... data[8];
- function Transacton copy;
- copy=new();
- copy.addr=addr;
- ....
- endfunction
- endcalss
- //使用copy函数
- Transacton src,dst;
- initial begin
- src=new();
- dst = src.copy;
- end
上面的copy函数是怎样实现的呢?copy明明是一个函数,为什么可以copy=new()呢?不是只用类才能new()吗?谢谢啦.
function Transacton copy
function name就是一个变量
function name不是一个函数名吗?没什么是一个变量呢?
function的名字和类型也就是它的返回值的名字和类型
面向对象的语言的编程方法,一个对象可以有自己的成员函数,其中的new和copy都是这个类的成员函数。
Copy是一个对象,类型为transaction
也是就是在Systemverilog中,函数名就可以是一个函数,也可以是一个变量的意思吗?