Changes between Version 12 and Version 13 of ToolsTp1


Ignore:
Timestamp:
Dec 10, 2009, 11:08:21 AM (15 years ago)
Author:
cobell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsTp1

    v12 v13  
    6767{{{
    6868entity circuit is
    69 port (
    70       ck, i, reset, vdd, vss : in bit ;
    71       o : out bit
    72       ) ;
    73 end circuit ;
     69  port ( ck, i, reset, vdd, vss : in bit;
     70         o : out bit
     71       );
     72end circuit;
    7473
    7574architecture MOORE of circuit is
    7675
    77   type ETAT_TYPE is (E0, E1, E2, E3) ;
     76  type ETAT_TYPE is (E0, E1, E2, E3);
    7877  signal EF, EP : ETAT_TYPE;
     78
    7979  -- pragma CURRENT_STATE EP
    8080  -- pragma NEXT_STATE EF
     
    8383begin
    8484
    85   process (EP, i, reset)
     85  process ( EP, i, reset )
    8686  begin
    8787
    88     if (reset=’1’) then
     88    if ( reset = ’1’ ) then
    8989      EF <= E0;
    9090    else
    9191      case EP is
    9292        when E0 =>
    93           if (i=’1’) then
     93          if ( i = ’1’ ) then
    9494            EF <= E1;
    9595          else
     
    9898
    9999        when E1 =>
    100           if (i=’1’) then
     100          if ( i = ’1’ ) then
    101101            EF <= E2;
    102102          else
     
    104104          end if;
    105105        when E2 =>
    106           if (i=’1’) then
     106          if ( i = ’1’ ) then
    107107            EF <= E3;
    108108          else
     
    110110          end if;
    111111        when E3 =>
    112           if (i=’1’) then
     112          if ( i = ’1’ ) then
    113113            EF <= E3;
    114114          else
    115115            EF <= E0;
    116116          end if;
     117
    117118        when others => assert (’1’)
    118119          report "etat illegal";
     
    129130      when E3 =>
    130131        o <= ’1’;
     132
    131133      when others => assert (’1’)
    132134        report "etat illegal";
    133135    end case;
     136
    134137  end process;
    135138
    136   process(ck)
     139  process( ck )
    137140  begin
    138141    if (ck=’1’ and not ck’stable) then
     
    199202
    200203{{{
    201 Les chiffres de 0 à 9 sont codés en binaire naturel sur 4 bits. A et B sont codés comme suit : A = 1010, B = 1011.
     204Les chiffres de 0 à 9 sont codés en binaire naturel sur 4 bits.
     205A et B sont codés comme suit : A = 1010, B = 1011.
    202206
    203207Le digicode fonctionne en deux modes :
    204 
    205208 * Mode Jour : La porte s'ouvre en appuyant sur "O"
    206209 * Mode Nuit : La porte ne s'ouvre que si le code est correct
    207210
    208 Pour distinguer les deux cas un "timer" externe calcule le signal jour qui vaut ’1’ entre 8h00 et 20h00 et ’0’ sinon.
     211Pour distinguer les deux cas un "timer" externe calcule le signal jour.
     212Ce signal vaut ’1’ entre 8h00 et 20h00 et ’0’ sinon.
    209213
    210214 * Le digicode commande une alarme dès qu'un des chiffres entrés n'est pas le bon
    211  * L'automate revient dans son état d'attente si rien n'est entré au clavier au bout de 5 secondes ou si l'alarme a sonné pendant 2mn,
    212    pour cela il reçoit un signal reset du timer externe
     215 * L'automate revient dans son état d'attente :
     216   * si rien n'est entré au clavier au bout de 5 secondes,
     217   * si l'alarme a sonné pendant 2mn.
     218   Pour cela il reçoit un signal reset du timer externe
    213219 * La puce fonctionne à une fréquence de 10MHz
    214  * Toute pression d'une touche du clavier est accompagnée du signal press_kbd, celui-ci signale à la puce que les données en sortie du
    215    clavier sont valides, ce signal est à 1 durant un cycle d’horloge
     220 * Toute pression d'une touche du clavier est accompagnée du signal press_kbd.
     221   Celui-ci signale à la puce que les données en sortie du clavier sont valides.
     222   Ce signal est à 1 durant un cycle d’horloge
    216223
    217224Le code est 53A17.