是否有任何可综合的方式将接口传递给函数或任务?我的用例如下:我有一个包含多个功能的包(尽管我可以将它们转换为任务,如果有帮助的话:)),所有这些都可能在模块中使用并且可能需要访问模块的端口。现在,通常我只是将所有端口分组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
将能够将端口用作端口,即等待它们的更改、向它们写入值等;signal
基本上,通过将它们作为参数传递(与variable
或参数相反)在 VHDL 中实现的效果相同constant
。