【发布时间】:2015-02-01 20:54:08
【问题描述】:
我正在考虑将接口引入当前未使用接口的代码库中。
为此,我需要使用适配器将接口再次转换为单独的信号。
我想这样做:
interface foo();
logic a;
logic b;
logic c;
modport source(input a, c,
output b);
modport sink(input b, c,
output a);
endinterface // foo
module foo_source_to_ports
(
foo f,
input logic a,
input logic c,
output logic b);
assign f.a = a;
assign f.c = c;
assign b = f.b;
endmodule
module foo_ports_to_source
(
foo f,
output logic a,
output logic c,
input logic b);
assign a = f.a;
assign c = f.c;
assign f.b = b;
endmodule
module foo_sink_to_ports
(
foo f,
input logic b,
input logic c,
output logic a);
assign f.b = b;
assign f.c = c;
assign a = f.a;
endmodule
module foo_ports_to_sink
(
foo f,
output logic b,
output logic c,
input logic a);
assign b = f.b;
assign c = f.c;
assign f.a = a;
endmodule
我想知道是否有人知道这样做的更好方法。我想我不是唯一一个有这个问题的人。
【问题讨论】:
-
这是可合成的代码吗?在您走得太远之前,您可能需要仔细检查您的工具对接口的支持程度。 Altera 不支持 modport 和 Xilinx implementation is also limited。
标签: fpga system-verilog hdl