虽然SV本身不直接支持参数化类型(如C++中的模板),但可以通过使用泛型类(generic class)来实现类似的功能。
class my_generic_class #(type T = int);
T value;
endclass
function void my_generic_function(my_generic_class #(int) obj);
$display("Value = %0d", obj.value);
endfunction
module top;
my_generic_class #(int) obj = new();
obj.value = 42;
my_generic_function(obj);
endmodule
这个方法提供了在SV中实现灵活函数接口的方式,可以创建能够处理不同类型或数量参数的函数。