Я всегда думал, что обозначения шины аннотируются так:
input bus[MSB:LSB]
где СЗБ >= МЗБ.
Но недавно мне сказали, что даже это возможно:
wire LSB >= MSB.
Это правда?
Если да, то как инструменты синтезатора получают размер шины и все такое? Считают ли они, что какой бы индекс ни был большим, это MSB?





Нумерация битов не имеет значения, пока вы не выберете один бит или часть шины. Пока вы знаете, как объявляется сигнал, любой инструмент может определить разрядность и порядок старших битов.
Да, в объявлениях можно использовать оба направления нумерации битов. Однако такой же порядок должен использоваться при выборе битов. Например
wire [0:15] bus;
reg [15:0] data;
assign bus [3:6] = data[3:0];
В большинстве случаев в промышленности используется второе обозначение (старший бит> младший бит), и это рекомендуется из соображений согласованности. Однако в некоторых ситуациях удобно сделать наоборот.
это является правильно. Поскольку bus был объявлен как [0:15], выбор бита должен быть [3:6], а не наоборот.
Извините моя ошибка
Это неправильно. Возможно, это была опечатка. Вам нужно выбрать
bus[6:3]