私はVHDLでちょっとしたことを開発していて、それは非常に新しいです。大きなstd_logic_vectorを小さなベクターにスライスする方法を理解するのに苦労しています。
たとえば、3つの信号があります。
signal allparts: std_logic_vector(15 downto 0);
signal firstpart: std_logic_vector(7 downto 0);
signal secondpart: std_logic_vector(7 downto 0);
基本的には、ビット15〜8をsecondpart
に割り当て、ビット7〜0をfirstpart
に割り当てることが必要です。個々のビットを割り当てずに、このようなベクトルをどのように正確に「スライス」しますか
それらを直接割り当てることができます。
firstpart <= allparts(15 downto 8);
secondpart <= allparts(7 downto 0);
...または、firstpartとsecondpartが単にallparts信号の一部を参照する別の方法である場合は、エイリアスを使用できます。
alias firstpart is allparts(15 downto 8);
alias secondpart is allparts(7 downto 0);