This shows you the differences between two versions of the page.
pl:lab:lab3 [2020/11/10 22:19] giorgiana.vlasceanu removed |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 3 - Logică secvențială ====== | ||
- | ==== 1. Verificarea funcționării circuitului basculant bistabil J-K Master Slave ==== | ||
- | |||
- | <note>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$ | ||
- | </note> | ||
- | ^ $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 $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. | ||
- | <note tip>Semnalul $CLK$ va fi preluat de pe placa de intrări configurându-se la frecvență minimă.</note> | ||
- | |||
- | \\ | ||
- | ==== 3. Verificarea funcționării circuitului basculant bistabil de tip D ==== | ||
- | |||
- | <note>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 | ||
- | </note> | ||
- | |||
- | 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. | ||
- | |||
- | <note tip>Semnalele de ceas notate în tabelă cu ↑ vor fi preluate alternativ de pe placa de intrări de la CLK cu frecvență minimă. | ||
- | * Count Up: $UP=↑, DOWN=1$ | ||
- | * Count Down: $UP=1, DOWN=↑$ | ||
- | </note> | ||
- | \\ | ||
- | |||
- | **4.2.** Se va implementa un numărător **modulo 13** folosind placa cu porți logice. | ||
- | |||
- | <note tip> | ||
- | 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. | ||
- | </note> | ||
- | |||
- | \\ | ||
- | ==== 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. | ||
- | <note tip> $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$ | ||
- | </note> | ||
- | \\ | ||
- | **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**__. | ||
- | <note tip>Semnalele de ceas notate în tabelă cu ↑ vor fi preluate de pe placa de intrări de la CLK cu frecvență minimă.</note> | ||
- | |||
- | \\ | ||
- | ==== 6. Verificarea registrului universal de 4 biți ==== | ||
- | |||
- | <note>Registrul prezintă toate funcțiile necesare pentru realizarea operațiilor de: | ||
- | * ștergere conținut | ||
- | * încărcare paralelă | ||
- | * deplasare serială dreapta (shift right) | ||
- | * deplasare serială stânga (shift left) | ||
- | </note> | ||
- | Î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: | ||
- | <code> | ||
- | 1110 → 0111 → 1011 → 1101 | ||
- | ↑_______________________| | ||
- | </code> | ||
- | * se configurează intrările $S1=1, S0=0$ pentru deplasare stânga și se analizează evoluția de tip permutare circulară în sens orar: | ||
- | <code> | ||
- | 1110 → 0111 → 1011 → 1101 | ||
- | |_______________________↑ | ||
- | </code> | ||