Prova di esame del 12-9-00
Esercizio 1 (15 punti)
Progettare un divisore di frequenza, ovvero un circuito che riceve in ingresso un segnale di clock di frequenza f e produce in uscita un segnale di clock di frequenza . Ovviamente, la durata dell'impulso è T in ingresso, Tx8 in uscita.
Esercizio 2 (15 punti)
Analizzare il seguente circuito sequenziale:
Derivare l'automa a stati finti che rappresenta il funzionamento del circuito.
Soluzioni
:(accennate)
Esercizio 1
Un singolo FF JK connesso come in figura funziona come divisore di frequenza f/2:
Banalmente, è possibile realizzare un divisore di frequenza f/n usando log2n FF di tipo JK con J=K=1 (oppure Toggle con T=1), collegando l'output Qi del i-esimo FF con il clock del (i+1)- esimo FF.
Tale circuito rappresenta un contatore ASINCRONO (infatti i FF non hanno lo stesso segnale di clock).
Volendo utilizzare un circuito sincrono (ricordatevi che la metodologia di sintesi illustrata a lezione si applica ai soli circuiti sincroni) possiamo ancora usare un contatore (sincrono) con log2n FF (log8=3), sincronizzati sul clock la cui frequenza si desidera dividere.
Formalmente, la tabella degli stati futuri è la seguente (nella tabella sono anche evidenziate le transizioni):
Fronti di clock |
Transizioni Dei FF (Q2Q1Q0) |
Si Æ Sj (stato di partenza stato di arrivo) |
J2K2 J1K1 J0K0 |
|
00‚ 0‚ Ø 01‚ ‚ Ø Ø10‚ 1‚ Ø 11‚ Ø Ø Ø |
000Æ 001 001Æ 010 010Æ 011 011Æ 110 110Æ 101 101Æ 110 110Æ 111 111Æ 000 |
0X 0X 1X 0X 1X X1 0X eccetera!! 1X X0 X0 X0 X1 |
|
|
|
|
Da cui ricaviamo:
J0=K0= 1
J1= Q0
J2= Q0Q1
(in generale, per un contatore sincrono ad n bit, Ji= Qj (j=1..i-1)
Si osservi in tabella (colonne 1 e 2) che Q2 ha un fronte di salita ogni 8 fronti di salita del clock, come richiesto.
E' banale ricavare lo schema circuitale.
Esercizio 2
Si ricavano dapprima le espressioni booleane degli input JK dei 3 FF.
Quindi si ricava la tabella degli stati futuri e l'automa.
Si (Q2Q1Q0) stato di partenza |
J2K2 J1K1 J0K0 |
Sj stato di arrivo |
000 001 010 011 100 101 110 111 |
11 11 11 11 11 11 00 11 01 10 11 01 eccetera!!!! |
111 110 000 100 010 011 100 101 |
La sequenza contata è 000 111 101 011 100 010 000
Si noti che, qualora il sistema erroneamente ricada in uno stato non incluso nella sequenza, comunque "ricade" successivamente nel ciclo previsto.