O código abaixo produz -
Erro (10327): erro VHDL em XXXX.vhd(1581): não é possível determinar a definição do operador ""&"" -- encontradas 47 definições possíveis Erro (10647): erro de inferência de tipo VHDL em XXXX.vhd(1581): o tipo de expressão é ambíguo - "std_logic_vector" ou "slvn_array" são duas correspondências possíveis Erro (10411): erro de conversão de tipo VHDL em XXXX.vhd(1581): não é possível determinar o tipo de objeto ou expressão próximo ao texto ou símbolo "UNSIGNED"
----CODE
usb_hid_phy_offload_address <= std_logic_vector(unsigned(ENDPOINT0_CTRL_REG) + unsigned((("00000") & (cfg_hid_ep(v_selp)(5 downto 0)) & ("00"))));
---END CODE
Tentei todas as combinações que me vêm à mente. Sugestões são bem-vindas.
constant g_num_usbs : integer range 1 to 8 := 2 ;
type slvn_array is array (natural range <>) of std_logic_vector ;
signal usb_hid_phy_offload_address : std_logic_vector(12 downto 0) ;
constant ENDPOINT0_CTRL_REG : std_logic_vector(12 downto 0) := '0' & x"040" ;
signal cfg_hid_ep : slvn_array(g_num_usbs-1 downto 0)( 7 downto 0) ;