2016-10-13 3 views
-2

이것은 바보 같은 질문 일 수 있습니다.하지만이를 이동하기 전에 16 비트 벡터에 8 비트 벡터를 삽입하고 싶습니다.8 비트 벡터를 16 비트 벡터에 배치

나는 현재이 있습니다 완벽하게 작동,하지만 데이터가 (동적으로 미래에 어쩌면 나) 제네릭으로 배치되는 장소를 선택할 수 있도록하려면

data  <= "000" & DATA_IN & "00000"; 

.

data  <= ((15 - (start_from_output-1)) DOWNTO (15 - (start_from_output-1) - (channels_in_use-1)) => DATA_IN , OTHERS => '0'); 

을하지만,이 오류 제공합니다 :

나는 시도 저도 같은 오류가 발생

data  <= (7 DOWNTO 0 => DATA_IN, others => '0'); 

로 단순화 경우

ERROR:HDLCompiler:1728 - "E:/Projects/VHDL/PHASED_ARRAY_0-4/switch.vhd" Line 69: Type error near data_in ; current type std_logic_vector; expected type std_ulogic 

합니다.

이 문제를 해결하는 방법에 대한 제안이 있습니까?

답변

0

당신은 같은 할당 할 수있다 : 나는 같은 일을 할 것입니다 제대로 이해하면

data <= (OTHERS => '0'); 
data((15 - (val-1)) DOWNTO (15 - (val-1) - (val2-1)) <= data_in; 

을하지만, 그것은 단지 프로세스 내에서 작동합니다. 프로세스 외부에서는 여러 드라이버 오류가 발생합니다.

+0

그게 효과가 있습니다! 고맙습니다! – Xinq

관련 문제