2016-10-13 9 views
-2

これは愚かな質問かもしれませんが、シフトする前に16ビットのベクトルに8ビットのベクトルを挿入したいと思います。16ビットのベクトルに8ビットのベクトルを配置する

私は現在、これを持っている:完璧に動作しますが、私は、データが(動的将来的に多分または)ジェネリックに配置された場所を選択することができるようにしたい

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

関連する問題