Vhdl when others
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Vhdl when others



  1. #1
    invitef1539ac2

    Question Vhdl when others


    ------

    Bonjour,
    Je suis en train d'écrire un programme de codage/decodage de type M-of-N. Mon problème est pour le décodage: en entrée(i) un vecteur de 5 bits, et en sortie un vecteur de 3 bits. Ici c'est un codage de 2-of-5, c'est à dire qu'on à tout le temps 2 bits à un dans le vector de 5 bits.
    Je voudrais savoir si il est possible d'écrire une condition "when others" avec une structure de type "WITH ..SELECT..."? J'aimerais que pour les autres cas de l'entrée (5 bits), la sortie soit indéterminé. Remarque: je travaille en asynchrone.

    Merci


    -- VHDL decoder description
    ENTITY decode_2_5 IS
    PORT( i : IN BIT_VECTOR(4 DOWNTO 0);
    o : OUT BIT_VECTOR(2 DOWNTO 0);
    vdd : IN BIT;
    vss : IN BIT );
    END decode_2_5;


    ARCHITECTURE VBE OF decode_2_5 IS

    BEGIN

    WITH i(4 DOWNTO 0) SELECT
    o(2 DOWNTO 0) <= B"000" WHEN B"00011",
    B"001" WHEN B"00101",
    B"010" WHEN B"01001",
    B"011" WHEN B"10001",
    B"100" WHEN B"00110",
    B"101" WHEN B"01010",
    B"110" WHEN B"10010",
    B"111" WHEN B"01100",
    NULL WHEN OTHERS ;

    ASSERT (vss = '0')
    REPORT "Power supply is missing on vss"
    SEVERITY ERROR;
    ASSERT (vdd = '1')
    REPORT "Power supply is missing on vdd"
    SEVERITY ERROR;

    END VBE;

    -----

  2. #2
    jiherve

    Re : Vhdl when others

    Bonsoir,
    où est le problème en VHDL une variable STD_LOGIC possède 9 valeurs possible '0','1', 'H',... ,'X','Z'.
    donc tu écris :
    (others => 'X') WHEN OTHERS ;
    ou bien
    (others => 'U') WHEN OTHERS ;
    ou encore
    (others => 'Z') WHEN OTHERS ;
    dans tous les cas attention il y a un hiatus entre simulation et synthése,
    dans la réalité vraie il n'y a que '0','1', 'Z'.
    la bonne solution c'est:
    (others => '0') WHEN OTHERS ;
    Avec 4 bits il y a 9^4 états possibles dont beaucoup n'ont pas vraiment (trop long à expliquer) de réalité physique c'est le rôle du WHEN OTHERS que de les intercepter de façon fiable, générer des sorties indéterminées est sans doute satisfaisante pour l'esprit, cela permet d'évaluer la robustesse(en simulation), mais conduit à une catastrophe industrielle.
    JR
    Dernière modification par jiherve ; 13/05/2009 à 20h50.
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Point flottant en VHDL et vhdl-200x
    Par invite6eee6b27 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 19h47
  2. vhdl
    Par invite165c4689 dans le forum Électronique
    Réponses: 4
    Dernier message: 16/05/2008, 15h04
  3. vhdl
    Par invite6fc91cc2 dans le forum Électronique
    Réponses: 1
    Dernier message: 03/01/2008, 23h52
  4. vhdl
    Par invitef1b6c776 dans le forum Électronique
    Réponses: 117
    Dernier message: 29/03/2007, 23h29
  5. vhdl
    Par invitedcb8d9bb dans le forum Électronique
    Réponses: 5
    Dernier message: 29/03/2007, 19h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...