Laborator 3 - Logică secvențială
1. Verificarea funcționării circuitului basculant bistabil J-K Master Slave
CBB J-K MS funcționează conform ecuației: $Q^{n+1}=(J \cdot \bar{Q} + \bar{K} \cdot Q)^n$, iar:
$n$ reprezintă perioada curentă a ceasului CLK
$n+1$ reprezintă perioada următoare a ceasului CLK
semnalul CLK determină comutația la trecerea din valoarea logică 1 în valoarea logică 0
semnalul CLR este activ în “zero”, este asincron și prioritar față de CLK și comanda $Q=0$
$CLR$ | $CLK$ | $J$ | $K$ | $Q^{n+1}$ | $Funcția$ |
0 | X | X | X | 0 | Clear asincron |
1 | ↓ | 0 | 0 | $Q^{n}$ | NOP |
1 | ↓ | 0 | 1 | 0 | RESET |
1 | ↓ | 1 | 0 | 1 | SET |
1 | ↓ | 1 | 1 | $\overline{Q^{n+1}}$ | TOGGLE |
Pași:
Se contectează intrările $CLR, CLK$ și $J$, $K$ la patru switch-uri de pe placa de intrări, iar ieșirile $Q, \bar{Q}$ pe placa de ieșiri. Cele patru intrări vor fi pe poziția $0$ și se va verifica $Q=0$, $\bar{Q}=1$.
Se păstrează semnalul $CLR$ pe poziția 1, se trece $J=1$ și se comută $CLK$ pe 1 și înapoi pe 0. Se constată că starea ieșirilor va fi $Q=1, \bar{Q}=0$, la revenirea ceasului $CLK$ în valoarea 0; s-a verificat funcția SET sincronizat de CLK pe frontul negativ ↓.
Se păstrează semnalul $CLR$ pe poziția 1, se trec $J=0$ și $K=1$ și se comută $CLK$ pe 1 și înapoi pe 0. Se constată că starea ieșirilor va fi $Q=0, \bar{Q}=1$, la revenirea ceasului $CLK$ în valoarea 0; s-a verificat funcția RESET sincronizat de CLK pe frontul negativ ↓.
Se păstrează semnalul $CLR$ pe poziția 1, se trec $J=1$ și $K=1$ și se comută CLK pe 1 și înapoi pe 0. Se constată că starea ieșirilor va comuta la fiecare revenire a ceasului $CLK$ învaloarea 0; s-a verificat funcția TOGGLE sincronizat de CLK pe frontul negativ ↓.
2. Proiectarea unui numărător modulo 16 cu CBB J-K Master Slave
Variabilele $J, K$ vor fi implementate cu porți logice (opțional în funcție de timp).
Se vor utiliza cele 4 module J-K de pe placă.
Pași:
Cele 4 intrări $CLR$ vor fi conectate împreună la același switch pe pe placa de intrări.
Cele 4 intrări $CLK$ vor fi conectate împreună la același switch de pe placa de intrări.
Intrările $J, K$ vor fi generate astfel:$ J_0=K_0=1, J_1=K_1=Q_0, J_2=K_2=Q_0 Q_1, J_3=K_3=Q_0 Q_1 Q_2 $. Se vor utiliza porți NAND și inversoare.
Ieșirile $Q_0, Q_1, Q_2, Q_3$ se vor conecta la un afișaj cu 7 segmente.
Ieșire Q | $Q_0$ | $Q_1$ | $Q_2$ | $Q_3$ |
Intrare placă output | A | B | C | D |
Inițial, $CLR=0$ și se verifică starea “zero” a numărătorului.
Se trece $CLR=1$ și se comută semnalul $CLK$ din 0 în 1 și apoi din 1 în 0; la fiecare comutare a lui CLK se va verifica incrementarea stării numărătorului și revenirea în starea “zero” după 16 impulsuri CLK.
Semnalul $CLK$ va fi preluat de pe placa de intrări configurându-se la frecvență minimă.
3. Verificarea funcționării circuitului basculant bistabil de tip D
CBB D funcționează conform ecuației $Q^{n+1}=D^n$, iar:
$n$ reprezintă perioada curentă a ceasului CLK
$n+1$ reprezintă perioada următoare a ceasului CLK
semnalul CLK determină comutația la trecerea din valoarea logică 0 în valoarea logică 1
semnalul EN (Output Enable) este activ în “zero” și activează cele 8 ieșiri
Dacă $EN=1$, toate ieșirie $Q_i=Z$, valoare nedeterminabilă (deconectate sau mascate).
$EN$ | $CLK$ | $D_i$ | $Q_i$ |
1 | X | X | Z |
0 | ↑ | 0/1 | 0/1 |
Pași:
Se conectează intrările $EN, CLK$ la două switch-uri de pe placa de intrări care vor fi inițial la valoarea 1 și ieșirile $Q_i$ la 8 led-uri, în ordine, pe placa de ieșiri.
Se pune semnalul $EN$ pe poziția 0.
Se configurează două seturi de valori pentru intrările $D_i$:
$EN$ | $CLK$ | $D_7$ | $D_6$ | $D_5$ | $D_4$ | $D_3$ | $D_2$ | $D_1$ | $D_0$ | HEXA |
0 | ↑ | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 55 |
0 | ↑ | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0F |
Pentru fiecare configurație a intrărilor, se comută $CLK$. La revenirea ceasului $CLK$ în valoarea 1, se va verifica funcția LOAD sincronizat de CLK pe frontul pozitiv ↑.
4. Verificarea funcționării numărătorului 74HC193
Numărătorul funcționează conform tabelului:
Modul de operare | Intrări | Ieșiri |
$CLR$ | $Load$ | $Up$ | $Down$ | $D_0$ | $D_1$ | $D_2$ | $D_3$ | $Q_0$ | $Q_1$ | $Q_2$ | $Q_3$ |
Reset (Clear) | 1 | X | X | X | X | X | X | X | 0 | 0 | 0 | 0 |
Încărcare paralelă | 0 | 0 | 1 | 1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 |
Count up | 0 | 1 | ↑ | 1 | X | X | X | X | Numărare incrementală |
Count down | 0 | 1 | 1 | ↑ | X | X | X | X | Numărare decremetală |
4.1. Se vor verifica succesiv toate modurile de operare prezentate în tabelă, observând că semnalele de intrare $RESET$ și $CLEAR$ sunt asincrone în raport cu ceasul. $CLR$ este activ în 1, iar $LOAD$ este activ în 0.
Semnalele de ceas notate în tabelă cu ↑ vor fi preluate alternativ de pe placa de intrări de la CLK cu frecvență minimă.
4.2. Se va implementa un numărător modulo 13 folosind placa cu porți logice.
Semnalul $LOAD$ al numărătorului se va obține din următoarea expresie logică:
$\overline{LOAD} = \overline{Q_3 Q_2 \overline{Q_1} Q_0}$
Ieșirie din expresie se introduc într-un modul NAND cu patru intrări.
5. Verificarea funcționării numărătorului decadic 74HC190
Numărătorul funcționează conform tabelei de mai jos:
Modul de operare | Intrări | Ieșiri |
$Load$ | $U/D$ | $CE$ | $CLK$ | $D_i$ | $Q_i$ |
Încărcare paralelă | 0 | X | X | X | 0/1 | 0/1 |
Count up | 1 | 0 | 0 | ↑ | X | Numărare incrementală |
Count down | 1 | 1 | 0 | ↑ | X | Numărare decrementală |
No operation | 1 | X | 1 | X | X | Nu se schimbă starea |
5.1. Se vor verifica succesiv toate modurile de operare prezentate în tabelă, observând că semnalul de intrare $Load$ este asincron în raport cu ceasul.
$Load$ este activ în 0. Pentru numărare în sens crescător, este necesar ca semnalul $U/D=0$, iar pentru numărătoare în sens descrescător, $U/D=1$
5.2. Se va realiza un numărător
modulo 160 cu cele două numărătoare 74HC193 (cifra unităților hexazecimale) și 74HC190 (cifra zecilor decadice). Pentru aceasta, se vor configura ambele numărătoare să funcționeze
incremental, iar
ceasul modulului 74HC190 va fi conectat la ieșirea Carry a modulului 74HC193.
Semnalele de ceas notate în tabelă cu ↑ vor fi preluate de pe placa de intrări de la CLK cu frecvență minimă.
6. Verificarea registrului universal de 4 biți
Registrul prezintă toate funcțiile necesare pentru realizarea operațiilor de:
În tabelă sunt prezentate funcțiile și modul lor de implementare:
Modul de operare | Intrări | Ieșiri |
$CLK$ | $EN(CLR)$ | $S_1$ | $S_0$ | $D_{SR}$ | $D_{SL}$ | $D_i$ | $Q_0$ | $Q_1$ | $Q_2$ | $Q_3$ |
Reset (Clear) | X | 0 | X | X | X | X | X | 0 | 0 | 0 | 0 |
No operation | X | 1 | 0 | 0 | X | X | X | $Q_0$ | $Q_1$ | $Q_2$ | $Q_3$ |
Deplasare stânga | ↑ | 1 | 1 | 0 | X | 0/1 | X | $Q_1$ | $Q_2$ | $Q_3$ | $D_{SL}$ |
Deplasare dreapta | ↑ | 1 | 0 | 1 | 0/1 | X | X | $D_{SR}$ | $Q_0$ | $Q_1$ | $Q_2$ |
Încărcare paralelă | ↑ | 1 | 1 | 1 | X | X | $D_i$ | $D_0$ | $D_1$ | $D_2$ | $D_3$ |
6.1. Să se verifice toate modurile de funcționare prezentate în tabelă.
6.2. Să se verifice funcționarea în inel a registrului. Pentru aceasta:
se vor conecta intrarea $D_{SR}$ la ieșirea $Q_3$ și intrarea $D_{SL}$ la ieșirea $Q_0$
se încarcă paralel registrul cu valoarea 7, deci {$Q_0, Q_1, Q_2, Q_3$} = {$1, 1, 1, 0$}
se configurează intrările $S1=0, S0=1$ pentru deplasare dreapta și se analizează evoluția de tip permutare circulară în sens orar:
1110 → 0111 → 1011 → 1101
↑_______________________|
1110 → 0111 → 1011 → 1101
|_______________________↑