Да, это возможно.Но не так, как вы это делаете.read_sensor
- это целое число, а fpga_avr32_data
- это STD_LOGIC_VECTOR
, поэтому вы должны сначала преобразовать целое число в вектор:
library ieee;
use ieee.numeric_std.all;
...
signal rsv: std_logic_vector(31 downto 0);
...
rsv <= std_logic_vector(to_signed(read_sensor, 32));
, а затем извлечь 4 младших бита:
fpga_avr32_data <= rsv(3 DOWNTO 0) & meas_reg(read_sensor)(read_channel);