Je suis en train de développer une petite chose en VHDL et je suis assez nouveau dans ce domaine. J'ai du mal à comprendre comment couper un plus grand std_logic_vector en un plus petit.
Par exemple, j'ai 3 signaux:
signal allparts: std_logic_vector(15 downto 0);
signal firstpart: std_logic_vector(7 downto 0);
signal secondpart: std_logic_vector(7 downto 0);
Fondamentalement, ce que je veux, c'est affecter les bits 15 à 8 à secondpart
et les bits 7 à 0 à firstpart
. Comment pourrais-je "découper" un vecteur comme celui-ci sans affecter de bits individuels
Vous pouvez directement les affecter:
firstpart <= allparts(15 downto 8);
secondpart <= allparts(7 downto 0);
... ou si firstpart et secondpart sont simplement des manières alternatives de se référer à une partie du signal allparts, vous pouvez utiliser un alias:
alias firstpart is allparts(15 downto 8);
alias secondpart is allparts(7 downto 0);