题目
地址:HDLBits-Mux256to1v
介绍:vect [msb_expr:lsb_expr]的向量选择不支持变量,需要通过别的方式进行位选。
代码
// 方式1:用拼接操作符,适用于输出位宽小的情况
module top_module(
input [1023:0] in,
input [7:0] sel,
output [3:0] out );
assign out = {in[sel*4+3],in[sel*4+2],in[sel*4+1],in[sel*4]};
endmodule
// 方式2:big_vect[lsb_base_expr +: width_expr]支持变量,输出位宽大时更方便
module top_module(
input [1023:0] in,
input [7:0] sel,
output [3:0] out );
assign out = in[sel*4+:4];
endmodule