У меня 32-битный входной порт pins и 32-битная входная активация pin_en , и я хочу сгенерировать 16-битный выход, выбранный с помощью enable. Я написал Verilog, как это, но, похоже, есть некоторые ошибки. Как я могу это исправить или каким-либо другим способом добиться? Спасибо!
ps: не более 16 контактов, выбранных en, но, возможно, меньше.
input [31:0] pins;
input [31:0] pin_en;
output [15:0] actual_pins;
generate
genvar i;
localparam cnt = 0;
for(i = 0; (i < 'd32) & (cnt < 'd16); i = i + 'd1) begin : b1
if(pin_en[i]) begin
assign actual_pins[i] = pins[cnt];
cnt = cnt + 'd1;
end
end
if(cnt < 16)
assign actual_pins[16 : cnt] = 'b0;
endgenerate