Как определить параметризованный мультиплексор с помощью SystemVerilog

Я пытаюсь создать модуль, который переключает х входных пакетов данных в один выходной пакет в соответствии с одним горячим входом.

Если бы х было фиксированным значением 4, я бы просто создал оператор case,

case (onehot)
  4'b0001  : o_data = i_data[0];
  4'b0010  : o_data = i_data[1];
  4'b0100  : o_data = i_data[2];
  4'b1000  : o_data = i_data[3];
  default  : o_data = 'z;
endcase

Но с переменной x, как мне определить все случаи?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос