我正在尝试创建一个模块,根据一个热输入将x个输入数据包切换到一个输出包。
如果x的固定值为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,我如何定义所有情况?
谢谢。
parameter X = 4;
input [X-1:0] onehot;
input i_data [X];
output reg o_data;
always_comb
begin
o_data = 'z;
for(int i = 0; i < X; i++) begin
if (onehot == (1 << i))
o_data = i_data[i];
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句