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:

  1. 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$.
  2. 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 ↓.
  3. 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 ↓.
  4. 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:

  1. Cele 4 intrări $CLR$ vor fi conectate împreună la același switch pe pe placa de intrări.
  2. Cele 4 intrări $CLK$ vor fi conectate împreună la același switch de pe placa de intrări.
  3. 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.
  4. 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:

  1. 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.
  2. Se pune semnalul $EN$ pe poziția 0.
  3. 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ă.

  • Count Up: $UP=↑, DOWN=1$
  • Count Down: $UP=1, DOWN=↑$


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:

  • ștergere conținut
  • încărcare paralelă
  • deplasare serială dreapta (shift right)
  • deplasare serială stânga (shift left)

Î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
↑_______________________|
  • se configurează intrările $S1=1, S0=0$ pentru deplasare stânga și se analizează evoluția de tip permutare circulară în sens orar:
1110 → 0111 → 1011 → 1101
|_______________________↑
pl/laboratoare/03.txt · Last modified: 2020/12/09 07:59 by giorgiana.vlasceanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0