Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoMarta Salvatori Modificato 10 anni fa
1
Una macchina sequenziale asincrona ha due ingressi x1, x2 e un'uscita z. Gli ingressi non cambiano mai di valore contemporaneamente. L'uscita assume il valore 1 in corrispondenza di un fronte di salita di x1 ed il valore 0 in corrispondenza di un fronte di salita di x2. 1
2
Considerazioni Come si può notare dal diagramma degli stati il comportamento della rete è molto simile a quello di un FF SR (stati rosa). L'unica differenza è che l'ingresso 11 è consentito quindi il comportamento, anche per quella configurazione di ingresso, è noto. 2
3
Studio delle compatibilità
00 01 11 10 A A,0 E,0 -,- B,- B H,1 C,- B,1 C C,0 D,0 D E F,- F G,1 F,1 G H E,1 B X C BD D -- E FC F G H EG A [A,E], [H,B], [C,D], [G,F]
4
Risolviamo le corse [G,F] => 00 [H,B] => 01 [C,D] => 11
[A,E] => 10 00 01 11 10 01,1 00,1 10,- 11,- 10,0 11,0 00,- 01,- 00 01 11 10 01,1 00,1 11,- 10,0 11,0 00,- y1 = y1y2 + y1!x1 + y2x2 y2 = !x2!y1 + !y1y2 + x1y2 Z = !y1
5
Codice VHDL Per la realizzazione della rete creiamo due segnali per lo stato (y1 e y2). Sfruttiamo le formule ricavate dalla sintesi per modificare lo stato della rete e quindi l'uscita Z. Di seguito il codice: entity esercizio_9 is Port ( RN : in STD_LOGIC; x1 : in STD_LOGIC; x2 : in STD_LOGIC; Z : out STD_LOGIC); end esercizio_9; architecture Behavioral of esercizio_9 is signal y1 : std_logic := '0'; signal y2 : std_logic := '0'; begin -- il segnale di reset (negato) porta lo stato a 10 e l'uscita Z va a 0 y1 <= ((y1 and y2) or (y1 and (not x1)) or (y2 and x2)) or (not RN); y2 <= (((not x2) and (not y1)) or ((not y1) and y2) or (x1 and y2)) and RN; z <= not y1; end Behavioral; 5
6
Simulazione con testbench
behavioural Ai fronti si salita di x1 z va a 1, anche se x2 è a 1. Ai fronti si salita di x2 z va a 0, anche se x1 è a 1. post-route 6
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.