这可能是一个愚蠢的问题,但我想在移出它之前将一个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');
但这会产生错误:
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
如果我将其简化为
data <= (7 DOWNTO 0 => DATA_IN, others => '0');
发生同样的错误。
有人有任何建议如何解决这个问题吗?
答案 0 :(得分:0)
您可以执行以下任务:
data <= (OTHERS => '0');
data((15 - (val-1)) DOWNTO (15 - (val-1) - (val2-1)) <= data_in;
如果我理解正确,它将完成相同的工作,但它只能在一个过程中工作。在此过程之外,您将遇到多个驱动程序错误。