des nombres décimaux en VHDL

M

maia31

Guest
Lorsque vous utilisez std_logic_vectors (xx à yy bas) je peux utiliser soit des nombres binaires sous la forme "11010101" ou nombres hexadécimaux sous la forme x "00". Comment puis-je utiliser des nombres décimaux?
 
Je suppose que vous pouvez utiliser datatype réel. SIGNAL A: real: = 0.0; - double
 
Je suppose que vous pouvez utiliser datatype réel. SIGNAL A: real: = 0.0; - double
tnx mais je ne veux utiliser le type réel ou entier je utiliser wana std_logic_vector
 
Parfois, vous pouvez utiliser comme --***************************** décimaux entité est port (clk: en std_logic; res: dans std_logic ; CNT: hors std_logic_vector (0 à 5)); décimaux fin; l'architecture comportementale du décimal est le signal cnt_s: std_logic_vector (0 à 5); commencent SM: processus (CLK) commencer if (Clk'event et CLK = '1 ') alors si (Res = '1 ') puis cnt_s
 
bien définir des constant8 constante: std_logic_vector (15 downto 0): = 20000; l'VHDL prendre d'erreur:. tristes: Que dois-je faire????
 
Vous devez vous rappeler qu'un std_logic_vector n'est pas un nombre, ou un entier, ou signés, ou réel ou tout autre type de numéro. C'est juste une collection de bits. Donc en fait vous n'êtes pas en l'assignant à un nombre binaire, ou hexadécimal, elle est une chaîne ("00101001", x "FFAA», o «1745», etc.). Si vous souhaitez attribuer des nombres entiers, vous avez besoin de convertir un entier de type integer à une std_logic_vector. mais il ya un principal problème avec le traitement d'un std_logic_vector comme un entier: Est-il signé ou non signé? Pour contourner cela, il ya le package appelé numeric_std (une norme IEEE) qui définit un type signés et non signés qui sont très similaires à std_logic_vector mais il ya des fonctions pour les traiter comme des nombres entiers. Avant de commencer - je vraiment vraiment vraiment vous recommandons d'arrêter l'aide std_logic_unsigned, std_logic_signed ou std_logic_arith. Ils sont non-standard des bibliothèques. Numeric_std est la norme réelle, et si vous commencez à utiliser les bibliothèques les plus avancées (comme les bibliothèques de point fixe), ils sont incompatibles. Alors bâton avec numeric_std. parce conv_std_logic_vector fait partie de cette bibliothèque non standard, vous ne devriez pas utiliser. Parce numeric_std définit des types signés et non signés, il n'est pas nécessaire d'utiliser un std_logic_vector si ce que vous voulez est un unsigned. Il n'y a rien de mal à utiliser un nombre entier. Si vous voulez un entier, utilisez un nombre entier. signaler un: plage des entiers de 0 à 1023 - la limite à 10 bits une
 
signaler un: plage des entiers de 0 à 1023 - la limite à 10 bits du signal une: gamme entière de 1024 à 2047 - dans certaines situations de limite à 10 bits je déteste Entier
 
signaler un: plage des entiers de 0 à 1023 - la limite à 10 bits du signal une: gamme entière de 1024 à 2047 - dans certaines situations de limite à 10 bits je déteste Integer
Avec la pratique du design correct, vous n'avez pas besoin de limiter la portée. Si vous connectez l'entier à un type de vecteur de haut niveau, le synthesisor va couper les bits inutilisés.
 
Je n'utilise pas Entier si vous voulez, puis le convertir en un signal binaire, et travailler avec les bits individuels.
 
yah à la fin je décide d'utiliser le formulaire binaire de mon numéro, mais il est inhabituel que VHDL n'avez pas s.th pour décimal C # a ------------------- tnx et tous pour leur aide
 
Je pense que vous obtenez très confus. Comme je l'ai dit, un entier n'est pas un type bit. VHDL est fortement typé a donc quelques règles fortes, donc pourquoi vous ne pouvez pas affecter un entier directement à un std_logic_vector. Aussi comparant VHDL pour C # n'est pas valide, comme VHDL n'est pas un langage de programmation.
 

Welcome to EDABoard.com

Sponsor

Back
Top