VHDL / Comment initialiser mon signal?
Je suis un débutant en VHDL et j'ai une question de base.
Prenons l'exemple de saisie suivantes :
A : in std_logic_vector(22 downto 0);
Et ce signal :
signal dummyA : std_logic_vector(47 downto 0);
Je veux initialiser dummyA avec ce que j'ai fait est:
dummyA <= A;
Est-ce correct ? Je veux dire, est-il équivalent à :
dummyA <= "0000000000000000000000000" & A;
? Ou devrais-je ajouter le 0 explicitement comme ça.
OriginalL'auteur user2336315 | 2013-05-16
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser
dummyA <= A;
parce qu'il y est une incompatibilité de type et de toute bonne compilateur VHDL de la rejeter.Vous pouvez utiliser quelque chose comme
ou (dans un contexte séquentiel uniquement)
ou
Dans un tel contexte, vous pouvez utiliser
Tous les ci-dessus garantit que
dummyA(i)
est chargé avecA(i)
. Mais"00000" & A
pourrait provoquer des mis-pairing, si ils les plages ne sont pas d'accord sur le bas.dummyA <= (A'RANGE => A, OTHERS => '0');
équivalent àdummyA <= "0000000000000000000000000" & A;
?Il devrait être, mais vous n'avez pas à garder une trace de la façon dont beaucoup de zéros supplémentaires.
Si la gamme de A est supérieur de de la plage de dummyA, il va tronquer les données d'Une ?
Non, ce sera un échec. Quelque chose comme la
FOR
etIF
combinaison devrait être utile si vous ne savez pas quel vecteur est plus grande.Vous pouvez également utiliser la
dummyA <= ext(dummy,dummyA'length);
effectivement zéro plaquettes de l'Esm alors quedummyA <= sxt(dummy,dummyA'length);
effectue l'extension du signe rembourrage de l'Esm avec le bit le plus significatif de la tétine.OriginalL'auteur Ben Voigt
À l'aide d'une fonction standard de
ieee.numeric_std
vous pouvez effectuer les opérations suivantes à zéro tampon de l'Esm:Bien que vous ne demandez pas pour cela, on peut aussi signer étendre comme ceci:
Bien que je dirais que dans ce cas l'utilisateur doit être signé à l'aide d'un type de données à la fois Un et dummyA si ils sont en leur donnant de l'arithmétique interprétations
OriginalL'auteur Martin Thompson