有没有可综合化的方法将接口传递给函数或任务?我的用例如下:我有一个包含几个函数的包(虽然如果有帮助,我可以将它们转换为任务 :)),所有这些函数都可能在模块中使用,并且可能需要访问模块的端口。通常,我会将所有端口分组到一个
我错过了什么吗?必须有一种类似于VHDL的
以下是一些示例代码:
理想情况下,
interface
中,将其添加到模块中,并将其作为virtual
传递给函数。但是,我的综合工具手册提到不支持virtual
。我错过了什么吗?必须有一种类似于VHDL的
signal
参数的方法来为综合提供任务的端口。以下是一些示例代码:
module mymod (
input logic clk,
input logic rst,
input uint16_t adr,
input bit cyc,
input uint32_t dat_m,
input bit stb,
input bit we,
output bit ack,
output uint32_t dat_s
);
always_comb begin
mypack::do_something(a, b, c, adr, cyc, dat_m, stb, we, ack, dat_s);
endmodule
理想情况下,
mypack::do_something
任务应该能够像端口一样使用它们,即等待其上的变化、向其写入值等;基本上,这与在VHDL中将它们作为signal
参数传递(而不是variable
或constant
参数)所实现的相同。