Professional Documents
Culture Documents
CLK
K0
J1
Q0
T1
Q0
K1
J2
Q1
T2
Q1
K2
J3
T3
Q2
K3
Q3
Q3
Q2
t
Q0
t
Q1
t
2
Q2
t
1
Q3
t
0
6
7
8
9
A B
C
Figura 2 Diagrama de impulsuri
B
Notnd cu ntrzierea de stabilizare a ieirilor Q0, Q1, Q2, Q3 se observ c bitul Q0 comut dup fa
de CLK, bitul Q1 comut dup 2 fa de CLK, bitul Q2 comut dup 3 fa de CLK i bitul Q3 comut
dup 4 fa de CLK.
Generalizare : considerm c structura se extinde la n bii numrtor modulo 2n. In cazul cel mai
defavorabil starea comunicat de ctre numrtor devine stabil dup ntrzierea maxim n* care are loc
atunci cnd comut MSB (bitul cel mai semnificativ).
b. Proiectarea unui numrtor modulo 16 cu ntrziere de comutaie constant .
Operarea numrtorului se bazeaz pe regula de incrementare a valorii hexazecimale a celor patru bii de
ieire. Fiecare bit Qi de rang 2i comut n starea opus atunci cnd toi biii de rang 2k unde k<i au valoarea
1 logic.
Implementarea ilustrat n figura 3 se bazeaz pe ecuaia de funcionare a CBB JK.
Qn+1 = ( J * Q + K * Q )n, dac J = K = 0 => Qn+1 = Qn, respectiv dac J = K = 1 => Qn+1 = Qn
Rezult urmtoarele condiii comand :
J0 = K0 = 1, J1 = K1 = Q0, J2 = K2 = Q0 * Q1 = a, J3 = K3 = Q0 * Q1 * Q2 = b;
In schema logic s-a sintetizat i semnalul Carry = Q0 * Q1 * Q2 * Q3 * CLK. Carry este utilizat pentru a
conecta un numrtor de ordin superior, realiznd astfel un numrtor modulo 256.
1
J0
T0
K0
Q0
J1
T1
K1
Q1
b
J2
T2
K2
Q2
J3
T3
K3
Q3
CLK
Carry
2. Semnalul de intrare Load (LD) sau Preset (P) are scopul de a ncrca fiecare variabil de stare Qi
cu valoarea logic specificat de intrarea de date Di. Semnalul are prioritate fa de incrementarea
valorii Count Up (CU) i poate aciona n mod asincron sau sincronizat de ctre ceasul CLK. Semnalul
poate fi AL (activ n 0 logic) sau AH (activ n 1 logic) n funcie de implementarea acestei funcii
logice.
Not: n general semnalul Clear este prioritar fa de Load, dar cele dou semnale nu pot fi active n
acelai timp.
d. Funcia de reversibilitate a sensului de numrare.
In exemplele prezentate anterior, numrtorul crete valoarea cu o unitate pentru fiecare impuls al ceasului.
In anumite aplicaii este necesar ca numrtorul s descreasc valoarea cu o unitate pentru fiecare impuls al
ceasului.
Funcia de reversibilitate a sensului de numrare reprezint posibilitatea de a inversa sensul de numrare
prin variante specifice de control.
Varianta 1 : Controlul cu ceas individual pentru sens.
Circuitul are dou intrri de ceas, CU (Count Up) pentru modul de numrare cresctor i CD (Count
Down) pentru modul de numrare descresctor. In acest caz vor fi generate dou ieiri de transport Carry
(CRY) i Borrow (BRW) care permit interconectarea n cascad a mai multor module de acelai tip.
Semnalul CRY va fi o copie a CU atunci cnd numrtorul ajunge la valoarea maxim (F pentru
numrtorul hexazecimal), iar semnalul BRW va fi o copie a CD atunci cnd numrtorul ajunge la
valoarea minim (0 pentru numrtorul hexazecimal)
Varianta 2 : Controlul cu ceas unic CLK i intrare de specificare a sensului.
Circuitul are o singur intrare de ceas, CLK i o intrare DIR de control al sensului. Dac DIR=1
numrtorul va numra cresctor, iar dac DIR=0 numrtorul va numra descresctor . In acest caz va fi
generat o singur ieire de transport RippleCarry (RC). RippleCarry (RC) va deveni activ atunci cnd
numrtorul se afl n starea final F pentru numrtorul hexazecimal dac DIR=1, respectiv 0 pentru
numrtorul hexazecimal dac DIR=0. RippleCarry (RC) permite interconectarea n cascad a mai multor
module de acelai tip.
In figura 4 este reprezentat flowchart-ul ASM al unui numrtor reversibil care funcioneaz conform cu
Varianta 2.
DIR
0
1
DIR
DIR
DIR
DIR
DIR
0
1
DIR
DIR
0
1
0
1
0
1
0
1
DIR
DIR
DIR
Figura 4
DIR
DIR
0
1
B
B
0
1
0
1
DIR
DIR
0
1
DIR
Q3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Q2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
Q1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Q0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
00 01 11 10
00
01
11
10
0
1
1
0
0
1
1
0
0
1
1
0
00
01
11
10
1
1
1
1
0
0
0
0
Q2
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
1
0
0
0
01
0
0
0
0
11
10
DIR = 0
J3
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
01
11
0
0
0
0
10
1
0
0
0
DIR = 0
K3
1
0
0
1
00 01 11 10
00 01 11 10
00
01
11
10
1
1
0
0
0
0
0
0
1
1
-
0
0
-
0
0
K2
0
0
-
0
0
0
0
00
01
11
10
00
01
11
10
1
1
1
1
0
0
0
0
0
0
0
0
K1
0
0
0
0
0
0
0
0
1
1
1
1
00 01 11 10
00
01
11
10
J1
00 01 11 10
00
01
11
10
1
1
1
1
Q0
00 01 11 10
J2
00 01 11 10
00
01
11
10
1
1
1
1
Q1
00 01 11 10
1
1
1
1
1
1
1
1
1
1
1
1
J0
00 01 11 10
00
01
11
10
1
1
1
1
1
1
1
1
K0
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
0
0
0
0
01
0
0
1
0
11
1
1
0
1
10
1
1
1
1
DIR = 1
Q3
00 01 11 10
00
01
11
10
0
1
1
0
1
0
0
1
0
1
1
0
00
01
11
10
0
0
0
0
1
1
1
1
Q2
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
0
0
0
0
01
0
0
1
0
11
10
DIR = 1
J3
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
01
11
0
0
0
0
10
0
0
1
0
DIR = 1
K3
0
1
1
0
00 01 11 10
00 01 11 10
00
01
11
10
0
0
0
0
1
1
0
0
0
0
-
0
0
-
1
1
-
0
0
-
1
1
1
1
00
01
11
10
00
01
11
10
0
0
0
0
1
1
1
1
K2
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
00 01 11 10
00
01
11
10
J1
00 01 11 10
00
01
11
10
1
1
1
1
Q0
00 01 11 10
J2
00 01 11 10
00
01
11
10
0
0
0
0
Q1
00 01 11 10
0
0
0
0
1
1
1
1
1
1
1
1
J0
00 01 11 10
00
01
11
10
1
1
1
1
K1
1
1
1
1
K0
Funciile de control ale vaiabilelor { (J3,K3), (J2,K2), (J1,K1), (J0,K0) } i RippleCarry (RC) sunt:
J0 = K0 = 1, independent de DIR
J1 = K1 = Q0 * DIR + Q0 * DIR
J2 = K2 = Q1 * Q0 * DIR + Q1 * Q0 * DIR
J3 = K3 = Q2 * Q1 * Q0 * DIR + Q2 * Q1 * Q0 * DIR
RC = Q3 * Q2 * Q1 * Q0 * DIR + Q3 * Q2 * Q1 * Q0 * DIR
e. Numrtoare zecimale.
Numrtoarele hexazecimale prezentate anterior sunt numrtoare binare, deoarece parcurg cele 24 coduri
binare ale celor patru bii de stare. Numrtorul zecimal (decadic) beneficiaz de patru bii de stare, dar
parcurge numai 10 stri: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } pentru sensul incremental UP.
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 0
00
01
11
10
1
0
0
0
0
1
0
0
-
0
0
-
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 1
00
01
11
10
0
0
1
0
0
0
0
1
-
0
0
-
00
01
11
10
00
01
11
10
0
0
1
0
1
0
0
1
Q2
0
1
-
Q3
Q3
00
01
11
10
00
01
11
10
0
1
0
0
1
0
1
0
Q2
0
1
-
00
01
11
10
00
01
11
10
00
01
11
10
0
1
1
0
0
0
1
1
Q1
0
0
-
00
01
11
10
00
01
11
10
1
1
1
0
0
0
0
0
-
1
1
-
Q0
00
01
11
10
0
0
0
1
1
0
0
0
Q1
1
1
-
00
01
11
10
00
01
11
10
1
1
1
0
0
0
0
0
-
1
1
-
Q0
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 0
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 0
01
11
10
1
0
-
0
0
-
0
0
-
0
0
-
00
01
J3
11
10
00
01
11
10
00
01
11
10
00
01
11
10
0
1
0
0
0
-
0
-
00
01
J2
11
10
1
-
0
-
0
-
0
-
K3
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 1
Q1, Q0
Q3, Q2
00
01
11
10
DIR = 1
00
00
01
11
10
00
01
11
10
00
01
11
10
0
1
1
0
0
0
00
01
K2
00
01
11
10
0
0
-
0
0
-
0
1
-
0
0
-
00
01
J3
11
10
00
01
11
10
00
01
11
10
K3
J1
11
10
0
0
-
1
1
-
00
01
11
10
00
01
11
10
00
01
11
10
1
1
1
1
1
-
00
01
J0
11
1
1
1
1
1
-
K1
00
01
11
10
0
0
0
0
1
-
0
-
00
01
J2
11
10
0
-
0
-
1
-
0
-
00
01
11
10
00
01
11
10
K0
00
01
11
10
0
0
0
1
1
1
00
01
K2
10
J1
11
10
1
1
-
0
0
-
00
01
11
10
00
01
11
10
00
01
11
10
1
1
1
1
1
-
00
01
J0
11
1
1
1
1
1
-
K1
10
-
K0
Funciile de control minimizate ale vaiabilelor { (J3,K3), (J2,K2), (J1,K1), (J0,K0) } i RippleCarry (RC)
J0 = K0 = 1, independent de DIR
J1 = Q0 * DIR + Q2 * Q0 * DIR + Q3 * Q0 * DIR K1 = Q0 * DIR + Q0 * DIR
J2 = Q1 * Q0 * DIR + Q3 * Q0 * DIR
J3 = Q0 * DIR + Q2 * Q1 * Q0 * DIR
K3 = Q0 * DIR + Q0 * DIR
RC = Q3 * Q2 * Q1 * Q0 * DIR + Q3 * Q2 * Q1 * Q0 * DIR
f. Numrtoare tipice utilizate n aplicaii.
In acest paragraf se vor prezenta tabelele de funcionare ale unor numrtoare integrate produse de
companiile de profil.
1) Tipurile 74HCT192 (decadic) i 74HCT193 (hexazecimal).
Intrri
Ieiri
MR LD CU CD D0 D1 D2 D3 Q0 Q1 Q2 Q3 CRY BRW
Master Reset (MR)
1
0
0
0
0
1
Incarcare paralela
0
0
0 0 0 0 0
0
0
0
1
Incarcare paralela (hex) 0
0
1 1 1 1 1
1
1
1
1
Incarcare paralela (dec)
0
0
1 0 0 1 1
0
0
1
1
CU (hex)
0
1
1
1
1
1
1
1
CU (dec)
0
1
1
1
0
0
1
1
CD (hex/dec)
0
1
1
0
0
0
0
1
Mod de operare
Master Reset (MR): determin trecerea n 0 logic a celor 4 bii de stare; este semnal asincron,
activ n 1 logic (AH) i are prioritatea de execuie cea mai mare n raport cu celelalte funcii.
Dac ceasul CD este activ se genereaz semnalul BRW, ct timp starea numrtorului este
0000.
Incrcare paralel (LD): determin ncrcarea asincron a celor 4 bii de stare cu valorile
intrrilor de date Di
Qi; este semnal activ n 0 logic (AL) i are prioritatea de execuie mai
mare n raport cu funciile de numrare determinate de ceasurile CU sau CD. Dac
numrtorul se ncarc cu 0000 i ceasul CD este activ se genereaza semnalul BRW. Dac
numrtorul se ncarc cu 1111 i ceasul CU este activ se genereaz semnalul CRY pentru
varianta hexazecimal, iar dac numrtorul se ncarc cu 1001 i ceasul CU este activ se
genereaz semnalul CRY pentru varianta zecimal.
Funcia de numrare incremental este comandat de ceasul CU pe frontul cresctor, se
realizeaz dac MR = 0, LD = 1 i CD = 1.
Funcia de numrare decremental este comandat de ceasul CD pe frontul cresctor, se
realizeaz dac MR = 0, LD = 1 i CU = 1.
Cele dou tipuri de numrtoare sunt asamblate n capsul de 16 terminale (pini) cu aceeai alocare.
VCC
D0
16
15
14
BRW CRY LD
W
13
12
11
Q1
D1
MR
Q0
6
CU
CD
1
D2
D3
10
Q2
Q3
GND
1
Figura 5: Alocare pini pentru circuitele 74HCT192 (decadic) i 74HCT193 (hexazecimal)
2) Tipurile 74HCT162 (decadic) i 74HCT163 (hexazecimal).
Cele dou tipuri de numrtoare numr numai n sens cresctor, pe frontul cresctor al ceasului CLK.
Toate operaiile sunt executate sincron n momentul frontului cresctor al ceasului CLK.
Intrrile specificate n tabela de funcionare reprezint condiii de operare (semnale condiionale), iar
execuia condiiei de operare este validat de ctre ceasul CLK care este semnalul executiv, n momentul
frontului cresctor.
Ceas
Intrri
Ieiri (Stare)
Ripple Carry
CLK
MR
LD
Load (hex)
Load (dec)
Count (hex)
Count (dec)
Hold
Hold (hex)
Hold (dec)
Hold
MR
LD
CEP
CET
D0
D1
D2
D3
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
-
0
1
0
-
0
1
0
-
0
1
1
-
Q0n+1
Q1n+1
Q2n+1
Q3n+1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
n+1
n
Stare = Stare + 1
Staren+1 = Staren + 1
Q0n
Q0n
Q0n
Q0n
Q1n
Q1n
Q1n
Q1n
Q2n
Q2n
Q2n
Q2n
Q3n
Q3n
Q3n
Q3n
RC
0
0
CET
CET
1, Stare = F
1, Stare = 9
0
1, Stare = F
1, Stare = 9
0
RC
Q0
Q1
Q2
Q3
CET
LD
16
15
14
13
12
11
10
MR
CLK
D0
D1
D2
D3
CEP
GND
Not: Decodificarea complet a strii finale care genereaz semnalul LD sau MR, ambele de tip
AL, este dat de expresia:
LD = Q7 * Q6 * Q5 * Q4 * Q3 * Q2 * Q1 * Q0
Optimizare LD: se observ c n procesul de numrare incremental (n sens cresctor) se pot
ignora zerourile din codul strii finale i n acest caz semnalul LD sau MR (opiune) este:
LD = Q6 * Q5 * Q1 * Q0.
VCC
16
RC
15
Q4
14
Q5
13
Q6
12
Q7
CET1=Vcc
LD
11
10
NUM1
1
MR
VCC
16
CLK
RC0
15
3
D4
4
D5
Q0
14
5
D6
Q1
13
Q2
12
CEP1
D7
Q3
CET0=Vcc
Q7
Q6
GND
Q5
Q4
LD
Q3
Q2
Q1
Q0
11
10
NUM0
1
MR
2
CLK
3
D0
4
D1
5
D2
D3
CEP0=Vcc
GND
99DEC
100DEC
00DEC
LD durata
LD
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
LDmin
LDmax
LDmin
1
0
LD
Q7
Q6
Q5
Q4
d1
adr MUX
d0
d1
d0
1
0
d1
d0
d1 d0
d1
d0
D1
D0
LDmax
D7
D6
D5
D4
D3
D2
D4
In figura 10 sunt prezentate regulile de codificare i modul de tratare al cazurilor particulare pentru o
secven de stri ale unui ASM .
m 0101
0111 n
0110
p 0
1000
1
0
y
0
0 s1
1
1
Figura 10
Starea m are codul 0101 i pentru x=1 trece prin incrementare n starea p care are codul 0110, deci
codp=codm+1. Starea n are codul 0111 i trece prin incrementare n starea s1 cu codul 1000. Starea s1 a
fost introdus suplimentar n ASM pentru a se respecta regula de tranziie prin 1 logic. Starea s1 este
controlat de constanta 0 logic i va executa tranziie corect n starea p.
In figura 11 este prezentat reproiectarea de la Cap.7 (2.4) utiliznd numrtorul sincron pentru starea
ASM.
0
S0 0000
S4 0100
S4
IC
pin
PinVP
VP
CI
VP
VP
1
S1 0001
S5 0101
S5
AC
Val
Val
Wait
1
S2
Enter
Enter
1
0010
CA
S6 0110
S6
1010
S10
S9
Val
Val
1
S3 0011
pin IP
Eject
Eject
S7 0111
Eject
Eject
Pick
Pick
1
Enter
1
S8 1000
S11 1011
Pick
Pick
S_give
S_give
S_Pick
S_Pick
1
0
0
S9
S81
1001
Figura 11
Codificarea strilor respect regulile impuse pentru controlul prin CU i LD al numrtorului sincron.
Se observ c a fost necesar s fie introduse dou stri suplimentare, S9 i S11, controlate de ctre
constant 0 logic, pentru a se asigura consistena regulilor de codificare.
Proiectarea funciilor de tranzitie este dependent de cele patru ieiri { Q3, Q2, Q1, Q0 } ale
numrtorului i este activ numai dac variabila de intrare care controleaza tranziia prin intermediul
ieirii multiplexorului MUX 16/1 INTRRI , este egala cu 0 (Y_control = 0).
Sinteza celor patru intrri de date { D3, D2, D1, D0 } ale numrtorului este prezentat n diagramele
Karnaugh din figura 12.
Q1, Q0
Q3, Q2
00
01
11
10
00 01 11 10
0
1
1
0
0
0
0
0
0
D3
1
1
1
00 01 11 10
00
01
11
10
0
0
0
0
1
0
0
1
0
D2
0
0
0
00 01 11 10
00
01
11
10
0
1
0
0
0
0
1
1
0
D1
1
1
1
00 01 11 10
00
01
11
10
0
0
0
1
1
0
1
1
0
D0
0
0
0
Figura 12.
Funciile de tranziie minimizate sub forma disjunctiv au expresiile urmtoare, iar implementarea cu
pori NAND / AND este ilustrat n figura 13.
D3 = Q3 * Q0 + Q2 * Q0 + Q1 * Q0
D3 = Q2 * Q0
D3 = Q2 * Q0 + Q1 * Q0 + Q3 * Q1
D3 = Q3 * Q0
Cele apte variabile de ieire : Introducere card IC, Autentificare card AC, Introducere pin IP, Verificare
pin VP, Introducere suma Val, Eliberare card Eject, Eliberare suma S_give.
In organigrama realizat anterior au fost definite urmtoarele apte comenzi i apartenena acestora la
strile logice. Comenzile sunt generate numai n strile n care au fost alocate, iar valoarea logic va fi
comand activ n 1 logic (AH), respectiv comand activ n 0 logic (AL). In tabelul de mai jos au fost
definite tipurile AH sau AL ale celor 7 comenzi :
Stare i semnificatie
Nume ASM
S0 Introducere card IC
S1 Autentificare card AC
S3 Introducere pin IP
S4 Verificare pin VP
S5 Verificare Val
S7 Eliberare card Eject
S8 Eliberare suma S_give
S10 Eliberare card Eject
IC
AC
pin IP
pin VP
Val
Eject
S_give
Eject
Tip activ
AH
AH
AH
AL
AH
AH
AL
AH
Implementarea semnalelor de comand este realizat cu n decodificator 4/16 i pori logice. Ieirile
decodificatorului sunt de tip AL.
Proiectarea circuitului sub forma unei scheme logice este prezentat n figura 13.
Q3
Funcii de tranziie
Q2
Q1
Q1
Q3
Q0
d15
d14
Q0
Q2 Q0
d13
d12
0
d11
Pick
d10
LD
d9
S_Pick
Pick
Val
Enter
VP
Enter
CA
Wait
CI
d8
d7
MUX 16/1
Y_control
INTRARI
d6
D0
CEP
CET
D1
D2
D3
MR
CLK
Q1
Q2
Q3
d5
d4
d3
d2
d1
d0
a3 a2 a1 a0
Q3
Q2
Q1
Q0
C (22)
Q3
B (21)
A (20)
C (22)
Dec F...8
EN1
F
B (21)
EN0
A
S7 S6 S5 S4 S3
Eject
S_give
A (20)
Dec 7...0
0
S1 S0
pin VP
Val
pin IP
AC IC