Salta al contenuto
Note per Studenti Reti sequenziali e automi a stati finiti

Reti sequenziali e automi a stati finiti

In questa pagina 4
In questa pagina 3

Modello

Una rete sequenziale sincrona è fatta di:

A ogni fronte del clock lo stato diventa S′S'. Il comportamento si descrive con un automa a stati finiti (diagramma degli stati: un nodo per stato, un arco per ogni transizione etichettato con l'ingresso).

Tipo Uscita Conseguenza
Moore dipende solo dallo stato: Z=λ(S)Z = \lambda(S) uscita stabile per tutto il ciclo, cambia solo dopo il fronte
Mealy dipende da stato e ingressi: Z=λ(S,X)Z = \lambda(S, X) di solito servono meno stati, ma l'uscita risente subito degli ingressi

L'Unità di controlloCompiti dell'unità di controllo e micro-operazioni; segnali di controllo del datapath con tabella per le classi di istruzioni; controllo cablato (combinatorio o a stati finiti) e controllo microprogrammato (memoria di controllo, microistruzioni orizzontali e verticali); confronto.Unità di controllo → cablata di un processore è un automa di questo tipo: lo stato è la fase dell'istruzione, le uscite sono i segnali di controllo.

Sintesi: procedimento

  1. Diagramma degli stati dalla specifica.
  2. Tabella degli stati (stato attuale, ingresso → stato prossimo, uscita).
  3. Codifica degli stati in binario (k=⌈log⁡2N⌉k = \lceil \log_2 N \rceil flip-flop per NN stati).
  4. Tabella di verità delle funzioni di stato prossimo e di uscita, semplificazione con le mappe di KarnaughRete combinatoria (uscite funzione dei soli ingressi attuali); mintermini e maxtermini, forme canoniche SOP e POS; mappe di Karnaugh a 3 e 4 variabili con esempi svolti; condizioni di indifferenza; costo e ritardo di una rete a due livelli.Reti combinatorie e mappe di Karnaugh →.
  5. Disegno: flip-flop + reti combinatorie.

Esempio: riconoscere due 1 consecutivi

Ingresso seriale XX (un bit per ciclo), uscita Z=1Z = 1 quando gli ultimi due bit ricevuti sono entrambi 1. Automa di Moore:

Stato Significato ZZ X=0X = 0 X=1X = 1
S0S_0 ultimo bit 0 (o inizio) 0 S0S_0 S1S_1
S1S_1 ultimo bit 1, il precedente no 0 S0S_0 S2S_2
S2S_2 ultimi due bit 1 1 S0S_0 S2S_2

Codifica con due flip-flop Q1Q0Q_1Q_0: S0=00S_0 = 00, S1=01S_1 = 01, S2=10S_2 = 10 (11 non usato, indifferenza).

Q1Q_1 Q0Q_0 XX Q1′Q_1' Q0′Q_0'
0 0 0 0 0
0 0 1 0 1
0 1 0 0 0
0 1 1 1 0
1 0 0 0 0
1 0 1 1 0

Semplificando (le righe con Q1Q0=11Q_1Q_0 = 11 sono indifferenze):

Q1′=X(Q1+Q0)Q0′=X Q1‾ Q0‾Z=Q1Q_1' = X(Q_1 + Q_0) \qquad Q_0' = X\,\overline{Q_1}\,\overline{Q_0} \qquad Z = Q_1

Prova con l'ingresso 0 1 1 1 0: stati S0→S0→S1→S2→S2→S0S_0 \to S_0 \to S_1 \to S_2 \to S_2 \to S_0, uscite (lette nello stato raggiunto) 0, 0, 1, 1, 0: l'uscita vale 1 dopo il secondo e il terzo 1 consecutivo ✓.

Errori tipici

  • In un automa di Moore, mettere l'uscita sugli archi invece che negli stati (è un automa di Mealy).
  • Dimenticare di specificare la transizione per ogni valore dell'ingresso in ogni stato.

Versione ripasso

Modello

Registro di stato di kk flip-flop D (Latch e flip-flopReti sequenziali e retroazione; latch SR con porte NOR e stato proibito; latch SR e D abilitati dal clock; flip-flop D master-slave sensibile al fronte; flip-flop JK e T; tempi di setup e hold; clock e periodo minimo.Latch e flip-flop →) più rete di stato prossimo S′=δ(S,X)S' = \delta(S, X) e rete di uscita; lo stato cambia a ogni fronte del clock.

Sintesi

Diagramma degli stati, tabella degli stati, codifica con k=⌈log⁡2N⌉k = \lceil \log_2 N \rceil flip-flop, tabelle di verità e semplificazione (mappe di KarnaughRete combinatoria (uscite funzione dei soli ingressi attuali); mintermini e maxtermini, forme canoniche SOP e POS; mappe di Karnaugh a 3 e 4 variabili con esempi svolti; condizioni di indifferenza; costo e ritardo di una rete a due livelli.Reti combinatorie e mappe di Karnaugh →), circuito.

Esempio: due 1 consecutivi (Moore)

S0S_0 (ultimo bit 0) Z=0Z = 0, S1S_1 (un 1) Z=0Z = 0, S2S_2 (due 1) Z=1Z = 1; con X=0X = 0 si va in S0S_0, con X=1X = 1: S0→S1→S2→S2S_0 \to S_1 \to S_2 \to S_2. Codifica S0=00S_0 = 00, S1=01S_1 = 01, S2=10S_2 = 10 (11 indifferenza): Q1′=X(Q1+Q0)Q0′=X Q1‾ Q0‾Z=Q1Q_1' = X(Q_1 + Q_0) \qquad Q_0' = X\,\overline{Q_1}\,\overline{Q_0} \qquad Z = Q_1 Ingresso 0 1 1 1 0: stati S0→S0→S1→S2→S2→S0S_0 \to S_0 \to S_1 \to S_2 \to S_2 \to S_0, uscite 0, 0, 1, 1, 0.

Errori tipici: in Moore l'uscita è negli stati, non sugli archi; specificare la transizione per ogni ingresso in ogni stato.

Esercizi su questo argomento

Teoria collegata