L 2 – 1 Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI Corso di Architetture Digitali Lezione 2 Sintesi di circuiti sequenziali Federico Pedersini Laboratorio di Architetture Digitali Dipartimento di Informatica Università degli Studi di Milano Riferimenti bibliografici: F. Fummi, M. Sami, C. Silvano, Progettazione Digitale, McGraw-Hill, capp. 6,7 L 2 – 2 Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI Circuiti sequenziali ! Circuiti combinatori = circuiti senza memoria " Gli output al tempo t dipendono unicamente dagli input al tempo t Uscita = f ( Ingresso ) ! Per consentire ad un dispositivo di mantenere le informazioni, sono necessari circuiti con memoria " Esempio: distributore automatico ! Deve ricordare quante e quali monete sono state inserite ! Deve comportarsi tenendo conto non solo delle monete inserite attualmente (ingresso) ma anche di quelle inserite in precedenza (storia passata) ! Circuiti sequenziali = circuiti con memoria (stato) " La memoria contiene lo stato del sistema Uscita = f ( Ingresso , Stato )
26
Embed
Lezione 2 Sintesi di circuiti sequenziali - homes.di.unimi.ithomes.di.unimi.it/~pedersini/AD/AD_Lez2.pdf · Corso di Architetture Digital i Lezione 2 Sintesi di circuiti sequenziali
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
! Elemento necessario di ogni macchina sequenziale è la retroazione " Uscita riportata in ingresso " Bistabile: (macchina sequenziale elem.): 2 porte NOR +retroazione
S
R
Q
Q
Macchina sequenziale sincrona Impiega bistabili sincroni Es: Flip-Flop tipo DT
! Elemento base della memoria è il bistabile " dispositivo in grado di mantenere indefinitamente il valore di input " Il suo valore di uscita coincide con lo stato " Memoria: insieme di bistabili (bistabili ! registri ! memorie)
! Tipologie di bistabile " Bistabili non temporizzati (asincroni) / temporizzati (sincroni). " Bistabili (sincroni) che commutano sul livello (latch) o sul fronte (flip-flop)
! Architettura sincrona: le fasi di elaborazione e propagazione dei segnali sono scandite da un orologio comune a tutto il circuito (clock) " Il Clock regola l’attività dei “cancelli” " Il circuito ha il tempo di stabilizzarsi (transitori critici) fino al successivo impulso di
Clock
! Architettura asincrona: l’elaborazione e propagazione dei segnali avviene in modo incontrollato, secondo le velocità di reazione dei circuiti " Non ci sono cancelli " Non devo mai aspettare l’impulso di clock → massima velocità
! Progettazione sincrona " il controllo dei transitori/cammini critici è limitato alla parte di circuito tra due
cancelli (porte di sincronizzazione)
! Progettazione asincrona " Devo progettare il circuito in modo che nessun transitorio/cammino critico causi
problemi → analisi di tutti i transitori critici possibili
! I “cancelli” devono disaccoppiare i diversi sottosistemi logici " “raccogliere” i segnali, senza farli passare, e “rilanciarli” ad un determinato istante " Cancello doppio: ingresso e uscita " Mai aperti contemporaneamente
! Cancelli = registri costituiti da gruppi di flip-flop
! STG: State Transition Graph (Diagramma degli Stati o Grafo delle transizioni) " Ad ogni nodo è associato uno stato: xi ∈ X
... ed un valore della funzione d’uscita: yi ∈ Y, yi=g(xi)
" Un arco orientato da uno stato xi ad uno stato xj, contrassegnato da un simbolo (di ingresso) iK, rappresenta una transizione che si verifica quando la macchina, essendo nello stato xi, riceve come ingresso iK
! STG: State Transition Graph (Diagramma degli Stati o Grafo delle transizioni) " Ad ogni nodo è associato uno stato: xi ∈ X
... ed un valore della funzione d’uscita: yi ∈ Y, yi=g(xi)
" Un arco orientato da uno stato xi ad uno stato xj, contrassegnato da un simbolo (di ingresso) iK, rappresenta una transizione che si verifica quando la macchina, essendo nello stato xi, riceve come ingresso iK
Esempio: controllore di un semaforo SEMAFORO: ! Incrocio tra 2 strade: nord-sud (NS) ed est-ovest
(EO) controllate da un semaforo " per semplicità consideriamo solamente rosso e verde
! Il semaforo può commutare ogni 30 secondi " Macchina sincrona, clock con frequenza = ?
! E’ presente un sensore in grado di “leggere”, per ogni direttrice, se esiste almeno un’auto in attesa, oppure un’auto che si accinga ad attraversare (condizioni trattate allo stesso modo).
! Il semaforo deve cambiare colore, da rosso a verde, quando esiste un’auto in attesa sulla sua direttrice.
! Se ci sono auto in attesa sulle entrambe le direttrici il semaforo deve cambiare colore (al termine del tempo di commutazione)
! Contatore modulo 4 di impulsi " Si sintetizzi una macchina a stati finiti (di Moore) che realizza un
contatore modulo 4 così strutturato: ! L’ingresso è costituito da una linea di 1 bit che viene osservata ogni millisecondo. ! L’uscita è costituita da 4 linee, che rappresentano i 4 valori assumibili dal
contatore: ciascuna uscita va a “1” solo quando il contatore contiene il valore da essa rappresentato.
! Il contatore incrementa il proprio valore in corrispondenza di ogni fronte di salita dell’ingresso.
! Tastiera a combinazione " Si sintetizzi una macchina a stati finiti che gestisce una tastiera a
combinazione segreta. La macchina genera un segnale di “apertura” soltanto soltanto quando si premono in sequenza i tasti: “1,2,3”. (suggerimento: si consideri una sola linea d’ingresso per tutti i tasti diversi da 1,2,3)
" Semplificazione: non considero il tempo... " I = { “nessun tasto”, “1”, “2”, “3”, “altri tasti” } " Y = { “0” , “1” (apertura) }
! Riconoscitore sequenza " Progettare e sintetizzare una macchina che accetti in ingresso un
carattere binario (0 o 1) e sia caratterizzata da tre uscite, di cui: ! la prima si porta a “1” quando gli ultimi 3 bit della sequenza in ingresso siano
stati: “110”, ! la seconda si porta a “1” quand’essi abbiano assunto il valore: “011”, ! la terza si porta a “1” quand’essi abbiano assunto il valore: “111”.
! Date 2 macchine sincrone: M1= <X1,I1,Y1,f1,g1> M2= <X2,I2,Y2,f2,g2>
! M1 e M2 sono equivalenti sse: !xa " X1 , #xb " X2 tale che:
ponendo al tempo t=0: M1 in xa e M2 in xb ed applicando una qualsiasi sequenza di ingresso I(t) a entrambe le macchine, $ Y1(t) = Y2(t), !t>0
! Due stati sono equivalenti o indistinguibili xi ~ xj sse: " partendo da xi o da xj, per ogni sequenza d’ingresso, le uscite sono uguali " Proprietà riflessiva, simmetrica, transitiva # partizione su X
! Macchina M è minima sse:
se, cioè, non esistono stati equivalenti in M. " Si dimostra che la macchina minima M è unica
Minimizzazione degli stati - Algoritmo di Paull-Unger
! Algoritmo di Paull-Unger: " metodo operativo per l’identificazione di stati equivalenti:
" xi ~ xj se e solo se: – MEALY: #ia$ I, f(xi,ia) = f(xj,ia); g(xi ,ia) = g(xj ,ia) – MOORE: #ia$ I, f(xi,ia) = f(xj,ia); g(xi) = g(xj)
" Definizione recursiva di equivalenza: si rimanda all’equivalenza degli stati prossimi " Se: N=|X| # devo effettuare N2 confronti (su tutti gli ingressi) " rifl. + simm. # mi bastano: N(N – 1) / 2 confronti
! Tabella delle implicazioni: " Tabella triangolare: N–1 righe, N–1 colonne " Ogni cella rappresenta una coppia di stati distinti: < xi , xj >, i ! j " In ogni cella scrivo:
‘~’ se: xi ~ xj (i due stati sono EQUIVALENTI) ‘X’ se: ¬( xi ~ xj ) (i due stati sono DISTINGUIBILI) (xA , xB ) se: xA ~ xB ! xi ~ xj (distinguibilità/equivalenza VINCOLATA)
! Tabella delle transizioni: definisce il valore di ingresso ai bistabili sincroni
FSM sincrone: transizione comandata dal clock. È sufficiente presentare lo stato prossimo agli ingressi dei bistabili.
FSM asincrone: manca un comando esplicito di transizione. È necessario generare segnali agli ingressi dei bistabili, che li portino allo stato prossimo. # eccitazioni
! Tabella delle eccitazioni: definisce il valore in ingresso ai bistabili asincroni (eccitazione)
" Dipende dal tipo di bistabile:
! TOGGLE:
! SET-CLEAR:
!
STT : xik* = f xi,ik( ) , "xi # X, ik # I
!
ET(Toggle) : tik* = f xi,ik( ) , "xi # X, ik # Itik* =1 sse xik
* = f xi,ik( ) = xi
!
ET(SC) : sik = fS xi,ik( ) ;cik = fC xi,ik( ) , "xi # X, ik # Isik =1, cik = 0 sse xik
* = f xi,ik( ) =1 (, xik = 0)
cik =1, sik = 0 sse xik* = f xi,ik( ) = 0 (, xik =1)
Esempio: Progetto FSM asincrona, ingressi e uscite a impulsi ! Macchina con 2 ingressi impulsivi A,B ed un’uscita impulsiva Z.
" Z produce un impulso a partire dal 2º impulso consecutivo su A " per ogni nuovo impulso sugli ingressi, Z ha un impulso... " ... finché non si presentano due impulsi consecutivi su B.
------------------------- " ingressi impulsivi, uscite a impulsi # MEALY ...