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 :

Quel est le problème ?


Sujet :

VHDL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Quel est le problème ?
    bonsoir,
    svp je suis débutant en vhdl , quand j'éssaie de synthétiser ce prog , ca m'affiche un erreur ...

    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
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
     
     
    entity detection_R is
     
     Port ( 
               adr : in  STD_LOGIC_VECTOR (15 downto 0);
    			  clk_25 : in  STD_LOGIC ;
    			  LED : out	STD_LOGIC );
     
    end detection_R;
     
    architecture Behavioral of detection_R is
     
     
    begin
    for adr in "000000000000000" to "0001100111101000" loop   --  6633-1/6632
    	if(memory(adr)) then
    	LED <= '1';
    	end if; 
    end loop ;
    end Behavioral;

  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
    Bonsoir,

    Voici quelques conseils :
    • remplacez std_logic_arith et std_logic_unsigned par numeric_std
    • changez le nom de la variable 'adr' (ligne 20) car il est identique à un signal d'entrée
    • la syntaxe d'une boucle for est "for <variable> in a <to|downto> b loop" où a et b sont des nombres entiers
    • même en corrigeant votre boucle, je vois très mal comment plus de 6000 comparateurs (le nombre d'itérations de la boucle for) peuvent être implémentés de la sorte.


    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut demande d'aide s v p
    meme en appliquant ce que vous avez dis, il y un erreur au niveau de la boucle FOR .
    pour expliquer le but : je voulais a travers ce prog lire le contenu d'une memoire que j'ai créer par l'outil CORE GENERATOR que j'ai nommé memory . je fais une boucle qui incremente de 0---->6632 la variable sera adr pour pointer et ainsi accéder au contenu de la memory(svp vérifier moi que c'est correcte la syntaxe),. apres vient une comparaison , si le contenu est = 100 donc allumer une LED ... svp aidez moi je suis encore débutant ..

  4. #4
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 431
    Points
    1 431
    Par défaut
    Bonjour,


    D'un point de vu syntaxe c'est comme ca les boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i in 0 to 6232 loop
     ....
    end loop;
    D'un point de vu fonctionnel fonctionnel les boucles sont TOUJOURS déroulées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if(mem(0))then LED <= '1'; end if;
     if(mem(1))then LED <= '1'; end if;
    ...
    ...
     if(mem(6232))then LED <= '1'; end if;
    Tu ne peux pas parcourir le contenu d'une mémoire de façon combinatoire.
    Il te faut un registre/pointeur/compteur, qu'il faut incrémenter à chaque cycle d'horloge.

Discussions similaires

  1. [XL-2007] une formule dans une macro ne fonctionne pas je ne sais pas quel est le problème
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2010, 12h59
  2. requête fausse : quel est le problème ?
    Par laurentSc dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/06/2009, 14h26
  3. Quel est le problème avec ce programmateur ?
    Par mohfa2001 dans le forum Langage
    Réponses: 0
    Dernier message: 01/12/2008, 02h01
  4. [AJAX] Quel est ce problème
    Par xcelent88 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/07/2007, 16h09
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

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