BCD vers 7 segments Décodeur

Je viens de commencer le codage VHDL, et maintenant avoir de code BCD vers 7 segments décodeur. Je fais un comportement de la conception(c'est obligatoire), mais pour l'instant j'ai de la difficulté sur la façon de coder l'affichage.

Je sais comment le code de ce décodeur avec juste une entrée et une sortie, cependant, nous avons une deuxième sortie appelé DIGEN_L qui est utilisé comme notre écran. Elle est active basse bus de sortie qui permet à chaque chiffre de l'affichage à 7 segments sur notre conseil d'administration.

Il nous a dit de nous programmer à '01110 de sorte que le quatrième chiffre est toujours en marche et les trois autres sont éteints.

Je ne sais pas comment code DIGEN_L dans mon code, et ne savent pas ce que la déclaration ci-dessus, signifie en fait (code sage). Quelqu'un peut-il aider?
Si des éclaircissements sont nécessaires sur cette question, commentaire et je vais modifier.

Voici mon code:

library IEEE;
ise IEEE.std_logic_1164.all;
library unisim;
use unisim.vcomponents.all;

entity decoder is
    port( BCD: in STD_LOGIC_VECTOR (3 downto 0);
        ( SEGS_L: out STD_LOGIC_VECTOR(5 downto 0);
        ( DIGEN_L: out STD_LOGIC_VECTOR(3 downto 0));
end decoder;

architecture decoder_arc of decoder is
    begin
       process(BCD)
          begin
         DIGEN_L <= "0111";
         case BCD is
            when "0000"=> SEGS_L <="1111110";  -- '0'
            when "0001"=> SEGS_L <="0110000";  -- '1'
            when "0010"=> SEGS_L <="1101101";  -- '2'
                when "0011"=> SEGS_L <="1111001";  -- '3'
                when "0100"=> SEGS_L <="0110011";  -- '4' 
            when "0101"=> SEGS_L <="1011011";  -- '5'
            when "0110"=> SEGS_L <="1011111";  -- '6'
            when "0111"=> SEGS_L <="1110000";  -- '7'
            when "1000"=> SEGS_L <="1111111";  -- '8'
            when "1001"=> SEGS_L <="1111011";  -- '9'
            when others=> SEGS_L <="-";
             end case;
       end process;
end decoder_arc;
  • Veuillez noter que lorsque les autres=> SEGS_L <="-"; n'est pas synthesizable. Soit faire une réelle affectation (par exemple, tous les feux sur, toutes les lampes off) à l'intérieur de l'instruction de cas, ou de faire une affectation par défaut en haut de la procédure: decode_bcd_proc: processus (BCD) commencer SEGS_L <= (autres => '0'); cas BCD est ... la fin du processus de decode_bcd_proc;
InformationsquelleAutor AOE | 2014-02-02