IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Addition


Sujet :

VHDL

  1. #1
    Candidat au Club
    Femme Profil pro
    etudiante
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiante
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Addition
    Bonjour à tous,
    Je voudrais effectuer une addition avec VHDL mais lors de la simulation le résultat de incr reste inchangé. svp quelqu'un pourrait m'aider et merci d'avance, voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all; 
    use ieee.std_logic_unsigned.all;
    entity Timer is
      port (	  
        clk: IN std_logic;
        E: OUT INTEGER  
    	);
    end entity Timer;
     
    architecture archTimer of Timer is
      signal incr : INTEGER ;
    begin 
     
      P1:process(clk)
      begin
        if(clk'event and clk='1') then
            incr <= incr + 1;
     
        end if;
      end process P1;
      E <= incr;
    end archTimer;

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    Le signal 'incr' est de type 'integer', pas vraiment recommandé en synthèse. En effet, un integer sera représenté physiquement par un std_logic_vector de 32 bits, donc autant utiliser tout de suite le type std_logic_vector et avec la bonne taille (par exemple std_logic_vector(7 downto 0)).

    De plus, le signal 'incr' n'est pas initialisé (par exemple par un reset).

    Enfin, je vous déconseille les bibliothèques std_logic_arith et std_logic_unsigned. Utilisez plutôt la numeric_std.

    Cordialement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    library ieee;
    use     ieee.std_logic_1164.all;
    use     ieee.numeric_std.all;
     
    entity Timer is port 
    	( clk : in  std_logic
    	; rst : in  std_logic
    	; e   : out std_logic_vector(7 downto 0)
    	);
    end entity Timer;
     
    architecture rtl of Timer is
    	signal incr : std_logic_vector(7 downto 0);
    begin
     
    P1:process(rst,clk)
    begin
    if rst='1' then
    	incr <= (others=>'0');
    elsif rising_edge(clk) then
    	incr <= std_logic_vector(unsigned(incr) + 1);
    end if;
    end process P1;
     
    E <= incr;
     
    end architecture rtl;

Discussions similaires

  1. addition de champs
    Par k_boy dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/06/2004, 08h56
  2. Addition de dates
    Par shingo dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/01/2004, 14h53
  3. Addition et multiplications
    Par Yayel dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 04/04/2003, 23h15
  4. [VB6] Problème d'addition de dates et de nombres
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/11/2002, 21h12
  5. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo