blob: e62e490c2731cadffbeff68d1dc49bcbf63ae14d [file] [log] [blame]
module universal_switch_box
#(
parameter W = 8
)
(
inout [W-1:0] north, east, south, west,
input [W*6-1:0] c
);
genvar i;
generate
for(i = 0; i < W / 2; i = i + 1) begin : switch_box_element_two
switch_box_element_two elem
(
.north(north[i*2+1:i*2]),
.east(east[i*2+1:i*2]),
.south(south[i*2+1:i*2]),
.west(west[i*2+1:i*2]),
.c(c[12*(i+1)-1:12*i])
);
end
if(W%2 == 1) begin : switch_box_element_one
switch_box_element_one elem
(
.north(north[W-1]),
.east(east[W-1]),
.south(south[W-1]),
.west(west[W-1]),
.c(c[W*6-1:(W-1)*6])
);
end
endgenerate
endmodule