gpt4 book ai didi

system-verilog - SystemVerilog 将函数作为参数传递

转载 作者:行者123 更新时间:2023-12-04 04:31:18 26 4
gpt4 key购买 nike

是否可以在 SystemVerilog 中将函数作为参数传递?

这段代码虽然不起作用,但希望能演示。有什么帮助吗?谢谢。

    module funcparam;
int result;

function int xxx(int x, ref fun);
return fun(x);
endfunction

function int yyy(int y);
return y * (y + y);
endfunction

initial begin
result = xxx(5, yyy);
$display("result: %d", result);
end
endmodule

最佳答案

您可以通过引用传递的内容受到限制:

  • a variable,
  • a class property,
  • a member of an unpacked structure, or
  • an element of an unpacked array.


您也许可以传入基类的句柄,但我怀疑这是否可行。
class base;
function yyy(int x);
endfunction
endclass

class class1 extends base;
function yyy(int x);
endfunction
endclass

class class2 extends base;
function yyy(int x);
endfunction
endclass


module funcparam;
result;

function int xxx(int x,input base fun);
return fun.yyy(x);
endfunction

class1 cls = new;
//class2 cls = new;


initial begin
result = xxx(5, cls);
$display("result: %d", result);
end
endmodule

关于system-verilog - SystemVerilog 将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com