【发布时间】:2017-07-01 01:20:13
【问题描述】:
考虑具有两个 IP 内核 ip1.v 和 ip2.v 的设计,每个内核声明一个(不同的)具有相同名称的模块。
例如ip1.v的内容:
module ip1 (input A, B, C, output X);
wire T;
mygate gate_0 (.I0(A), .I1(B), .O(T));
mygate gate_1 (.I0(T), .I1(C), .O(X));
endmodule
module mygate (input I0, I1, output O);
assign O = I0 & I1;
endmodule
还有ip2.v的内容:
module ip2 (input A, B, C, output X);
wire T;
mygate gate_0 (.I0(A), .I1(B), .O(T));
mygate gate_1 (.I0(T), .I1(C), .O(X));
endmodule
module mygate (input I0, I1, output O);
assign O = I0 | I1;
endmodule
然后是使用两个 IP 核的顶级模块 (top.v):
module top (input A, B, C, output X, Y);
ip1 ip1_inst (.A(A), .B(B), .C(C), .X(X));
ip2 ip2_inst (.A(A), .B(B), .C(C), .X(Y));
endmodule
我如何处理这样的设计,以便每个 IP 内核都能看到自己的 mygate 版本?
【问题讨论】:
标签: yosys