【发布时间】:2013-06-22 02:53:03
【问题描述】:
我在构建模块链时遇到了麻烦。我可以手动连接模型列出所有模块,但需要更简洁的表示。以下代码已尝试但不起作用?如何更正代码?
module network(
input signed [31:0] xi,
output signed [31:0] yo,
input clk,
input reset
);
wire signed [31:0] x0, x1, x2, y0, y1, y2, xo;
wire [3:1] t;
//working code for chain of pe
// pe u0(xi, x0, 0, y0, clk, reset);
// pe u1(x0, x1, y0, y1, clk, reset);
// pe u2(x1, x2, y1, y2, clk, reset);
// pe u3(x2, xo, y2, yo, clk, reset);
//chain of array not working! how!
pe p[1:4] ((xi,t), (t, x), (0, t), (t,yo),clk,reset); <- want to improve
endmodule
这里,pe(输入、输出、输入、输出、clk、reset)。
【问题讨论】:
-
如果您使用 Verilog-2001 或更高版本,您可以使用“生成”语句来实现此目的。您可能必须对 xk 和 yk 信号进行矢量化(k=0,1,2)。只需查找生成语句。
-
我发现可以修改代码以适应连接网络。 “电线 [32*3:1] t,s;”和“pe p[1:3' ((t,xi), ((xo,t), (s,yi), (yo,s), clk, reset);”。无论如何感谢 cmets。连接列表起初很难理解,但似乎相当合乎逻辑。