Changes between Version 12 and Version 13 of ToolsTp1
- Timestamp:
- Dec 10, 2009, 11:08:21 AM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsTp1
v12 v13 67 67 {{{ 68 68 entity 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 ); 72 end circuit; 74 73 75 74 architecture MOORE of circuit is 76 75 77 type ETAT_TYPE is (E0, E1, E2, E3) 76 type ETAT_TYPE is (E0, E1, E2, E3); 78 77 signal EF, EP : ETAT_TYPE; 78 79 79 -- pragma CURRENT_STATE EP 80 80 -- pragma NEXT_STATE EF … … 83 83 begin 84 84 85 process ( EP, i, reset)85 process ( EP, i, reset ) 86 86 begin 87 87 88 if ( reset=’1’) then88 if ( reset = ’1’ ) then 89 89 EF <= E0; 90 90 else 91 91 case EP is 92 92 when E0 => 93 if ( i=’1’) then93 if ( i = ’1’ ) then 94 94 EF <= E1; 95 95 else … … 98 98 99 99 when E1 => 100 if ( i=’1’) then100 if ( i = ’1’ ) then 101 101 EF <= E2; 102 102 else … … 104 104 end if; 105 105 when E2 => 106 if ( i=’1’) then106 if ( i = ’1’ ) then 107 107 EF <= E3; 108 108 else … … 110 110 end if; 111 111 when E3 => 112 if ( i=’1’) then112 if ( i = ’1’ ) then 113 113 EF <= E3; 114 114 else 115 115 EF <= E0; 116 116 end if; 117 117 118 when others => assert (’1’) 118 119 report "etat illegal"; … … 129 130 when E3 => 130 131 o <= ’1’; 132 131 133 when others => assert (’1’) 132 134 report "etat illegal"; 133 135 end case; 136 134 137 end process; 135 138 136 process( ck)139 process( ck ) 137 140 begin 138 141 if (ck=’1’ and not ck’stable) then … … 199 202 200 203 {{{ 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. 204 Les chiffres de 0 à 9 sont codés en binaire naturel sur 4 bits. 205 A et B sont codés comme suit : A = 1010, B = 1011. 202 206 203 207 Le digicode fonctionne en deux modes : 204 205 208 * Mode Jour : La porte s'ouvre en appuyant sur "O" 206 209 * Mode Nuit : La porte ne s'ouvre que si le code est correct 207 210 208 Pour distinguer les deux cas un "timer" externe calcule le signal jour qui vaut ’1’ entre 8h00 et 20h00 et ’0’ sinon. 211 Pour distinguer les deux cas un "timer" externe calcule le signal jour. 212 Ce signal vaut ’1’ entre 8h00 et 20h00 et ’0’ sinon. 209 213 210 214 * 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 213 219 * 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 216 223 217 224 Le code est 53A17.