Цитата(Digi @ Nov 2 2007, 12:10)

Проект делаю в BlockEditor. Нужно данные с 2х регистров (четные\нечетные биты) , запихнуть подряд в один регистр. Выходы у регистров even_d[63..0] и odd_d[63..0]. Уложить нужно так even_d63, odd_d63, even_d62, odd_d62 и.т.д., и так все 128 бит. Ручками тоскливо прописывать, но можно. Как более красиво описать шину ?
Только с помощью языкового описания. (Если в составе пакета нет такой мегафункции).
Создать из проекта на верилоге 2001 символ и втянуть его в графический редактор.
Параметр можно в графике менять.
module in_out_wire
#( parameter width = 64)
(
input [width-1:0] even_d,
input [width-1:0] odd_d,
output [2*width-1:0] even_d_odd_d
);
genvar i;
generate for (i = 0; i < width; i = i + 1)
begin : block
assign even_d_odd_d[2*i] = odd_d[i];
assign even_d_odd_d[2*i+1] = even_d[i];
end
endgenerate
endmodule