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 :

[newbie] Explication du choix d'un STD_LOGIC_VECTOR (0 Downto 0).


Sujet :

VHDL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 8
    Points
    8
    Par défaut [newbie] Explication du choix d'un STD_LOGIC_VECTOR (0 Downto 0).
    Bonjour,
    Je prépare une séance d'initiation au FPGA dans un club d'electro. Je n'ai pas une grande expérience mais j'aime bien, et j'aime surtout comprendre ce que je fait.
    J'ai trouvé une source sur le net d'un petit projet sympa qui pourrait servir de base à ma séance.
    Par contre, certain choix d’écriture me laisse perplexe.

    Dans l'extrait :

    1) Pourquoi utiliser un STD_LOGIC_VECTOR (0 downto 0) en lieu et place d'un STD_LOGIC ? (surtout qu'a la fin, il est obligé de "caster" pour revenir en STD_LOGIC).

    2) L'utilisation du signal "cpt est bizarre pour moi. (cpt +1) donc j'en déduit qu'il additionne 1 sur un seul bit, et comme il n'y a pas de retenue possible, on passe alors de 0 à 1 à 0 etc..
    Pourquoi ne pas avoir fait un NOT ? C'est a cause de cette addition qu'il utilise un Vector ?

    Merci pour votre aide,
    amicalement.
    DTR

    voici l'extrait en question :


    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
     
     
    ENTITY OneClock IS
    	PORT (clock_f : IN STD_LOGIC;
    	clock_f_out : OUT STD_LOGIC);
    END OneClock;
     
    ARCHITECTURE Archi OF OneClock IS
    SIGNAL cpt : STD_LOGIC_VECTOR(0 DOWNTO 0);
    BEGIN
    	PROCESS (clock_f)
    		BEGIN
    		IF clock_f = '0' AND clock_f'event
    			THEN cpt <= cpt + 1;
    		END IF;
    	END PROCESS;
    	clock_f_out <= cpt(0);
    END Archi;

  2. #2
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Points : 263
    Points
    263
    Par défaut
    Salut,

    C'est bizarre effectivement sauf si il souhaite vous initier aux vecteurs pour arriver à un diviseur de clock par la suite.

    cpt(n) --> on peut diviser ainsi la clock

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Merci @cedd70 !

    Je pense que c'est une réutilisation d'un bout de code existant/générique.
    Mais je ne comprenais pas l'utilité de la structure de base.

    Le coup de la division d'horloge par vecteur est géniale. je n'y aurais pas pensé.
    C'est dans ces cas la que l'on se dit que le chemin est encore long.... ;-)

    Merci Encore !

    PS: Sinon, le 70 de ton pseudo c'est pour la Haute-Saône ?

  4. #4
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Points : 263
    Points
    263
    Par défaut
    C'est moche par contre d'utiliser un event sur une clock
    il est préférable d'utiliser (risingedge(clock) ou fallingedge(clock)).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    IF risingedge(clock)
        THEN ..
    Oui c'est bien ça, de Besançon même .

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/06/2015, 15h38
  2. [XL-2003] Remplir des Textbox fonction du choix d'une Combobox dans un USF - Newbie
    Par Vrancky dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/06/2014, 08h30
  3. explication des critères de choix d'un GED
    Par abdou.ham dans le forum GED
    Réponses: 2
    Dernier message: 07/08/2009, 16h42
  4. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  5. Choix d'un ORB
    Par Anonymous dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h15

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