Если у меня есть массив из 9 проводов, есть ли простой способ сделать новый провод с высоким уровнем, если только один из 9 имеет высокий уровень? я знаю, что могу сделать
wire[8:0] data;
wire exactlyOneActive;
assign exactlyOneActive = (data[0] & !data[1] & !data[2] ...) |
(!data[0] & data[1] & !data[2] ...) |
(!data[0] & !data[1] & data[2] ...) |
...etc
но, фу, верно? Тем более, что девять проводов, вероятно, когда-нибудь станут 25. Есть ли лучший способ сделать это, возможно, используя generate
? Он также должен быть синтезируемым.