Sunteți pe pagina 1din 13

8. Numrtoare - Proiectare i aplicaii.

8.1 Numrtor de impulsuri.


a. Funcia principal a numrtorului de impulsuri este aceea de a genera un numr de variabile de
ieire care indic numrul de impulsuri de ceas aplicate la intrare ; n general variabilele de ieire
reprezint starea logic a variabilelor de stare implementate prin circuite basculante bistabile. Aciunea
de incrementare a numrtorului este numit Count Up (CU).
Un exemplu simplu de numrtor modulo 16 ( hexazecimal ) este implementat cu patru CBB JK master
slave.
1
J0
T0

CLK

K0

J1

Q0

T1

Q0

K1

J2

Q1

T2

Q1

K2

J3
T3

Q2

K3
Q3

Q3

Q2

Figura 1 Implementarea unui numrtor modulo 16.


Funcionarea CBB JK master slave n regimul toggle determin comutaia n starea complementar pe
frontul decresctor al ceasului propriu Ti.
Din diagrama de impulsuri din figura 2 se constat c circuitul din figura 1 parcurge toate strile logice intre
0000 ( 0hexa ) pn la 1111 ( Fhexa ), deci funcioneaz ca un numrtor modulo 16 ( hexazecimal ).
Se va observa c fiecare modul de rang 2i este comandat de modulul de ordin inferior 2i-1, acumulnd astfel
ntrzieri de comutaie ale rangurilor superioare.

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

Figura 3 Schema logic a numrtorului cu ntrziere de comutaie constant .


Concluzii :
ntrzierea de comutaie intern a celor patru bii este stabilit prin nsumarea timpului de
stabilizare a ieirilor modulelor logice : t1 (ntrzierea de comutaie a variabilelor de stare
Qi), t2 (ntrzierea de stabilizare a ieirilor porilor AND), tsu (intervalul de prestabilizare a
intrrilor J i K). Frecvena maxim a ceasului CLK se calculeaz cu formula fmax = 1 / (t1 +
t2 + tsu).
Ieirea Carry = Q0 * Q1 * Q2 * Q3 * CLK este ntrziat fa de ceasul CLK datorit
timpului de propagare prin poarta AND.
c. Funcii suplimentare ale numrtoarelor.
In scopul creterii funcionalitii numrtorului, se pot proiecta intrri de comand suplimentare.
1. Semnalul de intrare Clear (CLR) sau Reset are scopul de a trece toate variabilele de stare la
valoarea 0 logic. 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.

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

Codurilor hexazecimale asociate celor 16 stri sunt reprezentate n tabel.


Val.
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

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

Analiza tranziiilor de stare arat c:


Pentru modul incremental, fiecare bit Qi de rang 2i comut n starea opus atunci cnd toi biii de
rang 2k unde k<i au valoarea 1 logic.
Pentru modul decremental, fiecare bit Qi de rang 2i comut n starea opus atunci cnd toi biii de
rang 2k unde k<i au valoarea 0 logic.
Diagramele Karnaugh ale funciilor de tranziie { Q3, Q2, Q1, Q0 } i derivatele { (J3,K3), (J2,K2),
(J1,K1), (J0,K0) } sunt prezentate n urmtoarele ase tabele pentru DIR = 0, respectiv DIR = 1.
Q1, Q0 0 0 0 1 1 1 1 0
Q3, Q2
00
1
0
0
0
01
0
0
0
0
11
1
1
1
1
10
0
1
1
1
DIR = 0
Q3

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

K2 = Q1 * Q0 * DIR + Q2 * 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

Semnificaiile semnalelor de intrare i prioritile lor de execuie sunt:

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

Semnificaiile semnalelor de intrare i prioritile lor de execuie sunt:


Master Reset (MR): determin trecerea sincron n 0 logic a celor 4 bii de stare; este semnal
asincron validat sincron de CLK, activ n 0 logic (AL) i are prioritatea de execuie cea mai
mare n raport cu celelalte condiii de operare (semnale condiionale).
Incrcare paralel (LD): determin ncrcarea sincron a celor 4 bii de stare cu valorile
intrrilor de date Di
Qi; este semnal asincron validat sincron de CLK, activ n 0 logic (AL)
i are prioritatea de execuie mai mare n raport cu condiiile de operare Count i Hold.
Not: dac numrtorul se ncarc cu 1111 i semnalul CEP = 1 (AH) se genereaz semnalul
Ripple Cary (RC) pentru varianta hexazecimal, iar dac numrtorul se ncarc cu 1001 i
semnalul CEP = 1 (AH) se genereaz semnalul Ripple Cary (RC) pentru varianta zecimal.
Semnalele condiionale CEP i CET: permit operaia de numrare Count numai dac sunt
simultan egale cu 1 logic; semnalul CET are funcia suplimentar de a valida sau invalida
ieirea de transport Ripple Cary (RC).
Funcia de numrare Count este comandat de ceasul CLK pe frontul cresctor, se realizeaz
dac MR = 1, LD = 1, CEP = 1 i CET = 1.
Funcia Hold are rolul de a opri operaia Count i este determinat de semnalele condiionale
CEP = 0 i /sau CET = 0.
Cele dou tipuri de numrtoare sunt asamblate n capsul de 16 terminale (pini) cu aceeai alocare.
VCC

RC

Q0

Q1

Q2

Q3

CET

LD

16

15

14

13

12

11

10

MR

CLK

D0

D1

D2

D3

CEP

GND

Figura 6: Alocare pini pentru circuitele 74HCT162 (decadic) i 74HCT163 (hexazecimal)


8.2 Aplicaii ale numrtoarelor sincrone.
Numrtoarele sincrone prezentate mai sus n paragraful f. punctul 2) pot fi utilizate n aplicaii diverse care
vor fi ilustrate n exemplele urmtoare:
a) Proiectarea unui numrtor binar modulo n.
Specificarea cerinelor de proiectare:
Numrtorul va numra n sens direct, din starea iniial (00000000)BIN = (00)HEX.
Se va alege modulul n = (100)DEC, deci starea final va fi (01100011)BIN = (63)HEX = (99)DEC.
Se va utiliza modelul 74HCT163 (hexazecimal).
Se va analiza posibilitatea utilizrii modelului 74HCT193 (hexazecimal).
Analiza cerinelor impune:
Utilizarea a dou numrtoare conectate n cascad, primul denumit NUM0 pentru cifra unitilor
hexazecimale, iar acesta l comand pe cel de al doilea denumit NUM1 pentru cifra zecilor
hexazecimale. Interconectarea intre NUM0 i NUM1 este obinut prin intermediul ieirii RC0 a
NUM0 care controleaz intrarea CEP1; intrrile CET0, CEP0 i CEP1 sunt conectate la 1 logic
(figura 7).
Implementarea circuitelor adiionale asigur decodificarea strii finale 01100011 a numrtoarelor
care genereaz semnalul de ncrcare LD; numrtoarele se vor ncrca cu valoarea iniial
00000000. O alt opiune de implementare este decodificarea strii finale 01100011 a numrtoarelor
care genereaz semnalul Master Reset MR, care va reseta la 0 logic cei 8 bii de stare.

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

Figura 7: Schema numrtorului modulo 100 realizat cu numrtoare 74HCT163 (hexazecimal)


Posibilitatea utilizrii modelului 74HCT193 (hexazecimal) trebuie s in cont de faptul c semnalul de
ncrcare LD este asincron i are prioritate de execuie n raport cu procesul de numrare cresctoare cu
ceasul CU. Pentru realizarea numrtorului modulo 100 este necesar ca semnalul LD s fie generat prin
decodificarea valorii (100)DEC, respectiv (01100100)BIN, deci LD = Q6 * Q5 * Q2.
Nota: Semnalul LD are un timp de viaa foarte scurt, deoarece imediat ce este generat va produce
ncrcarea valorii 00000000, ceea ce determin ca LD s revin la valoarea logic 1 dup timpul de
propagare prin poarta NAND care il creaz. Exist posibilitatea ca puterea semnalului LD s fie
insuficient pentru a ncrca toi biii de stare Q0 la Q7 la valoarea 0 logic, ceea ce evideniaz
probabilitatea curselor critice autoinduse. In concluzie aceasta opiune nu este recomandat.
Stare numrtor

99DEC

100DEC
00DEC

LD durata

Figura 8: Generarea semnalului LD cu durata .

b) Proiectarea unui numrtor modulo n cu dou intervale de funcionare ciclic.


Specificarea cerintelor de proiectare:
Numrtorul va numra n sens direct , pacurgnd intervalele de valori zecimale specificate prin
condiiile:
3 Val 96 sau 127 Val 240
Se va utiliza modelul 74HCT163 (hexazecimal).
Analiza cerinelor impune:
Utilizarea a dou numrtoare conectate n cascad, primul denumit NUM0 pentru cifra unitilor
hexazecimale care l comand pe cel de al doilea denumit NUM1 pentru cifra zecilor hexazecimale.
Interconectarea ntre NUM0 i NUM1 este obinut prin intermediul ieirii RC0 a NUM0 care
controleaz intrarea CEP1; intrrile CET0, CEP0 i CEP1 sunt conectate la 1 logic.
Implementarea circuitelor adiionale care genereaz semnalul de ncrcare LD respect urmtoarele
reguli: decodificarea strii 96DEC=01100000 va ncrca numrtoarele cu datele 127DEC=01111111, iar
decodificarea strii 240DEC=11110000 va ncrca numrtoarele cu datele 3DEC=00000011, prezentate n
tabela urmtoare.
CLK

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

Semnalul LD = LDmin * LDmax, unde LDmin = Q7 * Q6 * Q5 i LDmax = Q7 * Q6 * Q5 * Q4


Valorile celor 8 intrri de date D7...D0 ncrcate de ctre LDmin sau LDmax sunt:
D7 = 0, D1 = D0 = 1;
D6 = D5 = D4 =D3=D2 = 1, dac LDmin = 0
D6 = D5 = D4 =D3 =D2 = 0, dac LDmax = 0
Pentru implementarea comenzilor numrtoarelor se folosesc pori logice i multiplexoare de tip MUX
2/1 (figura 9)
Q7
Q6
Q5

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

Figura 9: Controlul numrtorului cu dou intervale de funcionare ciclic.


c) Utilizarea numrtoarelor pentru implementarea circuitelor secveniale.
Numrtorul este utilizat pentru implementarea variabilelor de stare ale ASM. Folosind funciile de
numrare incremental CU i ncrcarea paralel sincron LD se obin soluii simplificate de proiectare a
funciilor de tranziie ale variabilelor de stare.
Se introduce o regula de codificare adaptat specific funcionrii numrtorului:
Tranziia din starea prezent Sp ctre starea succesoare Ss1, determinat de valoarea logic
a intrrii t(Sp) = 1, se va realiza prin incrementarea valorii numrtorului (Count Up).
Codul binar al strii Ss1 va fi: cod(Ss1) = cod(Sp) + 1; n cazul particular al tranziiei directe
prin 1 logic se pstreaz aceeai regul;
Tranziia din starea prezent Sp ctre starea succesoare Ss0 determinat de valoarea logic
a intrrii t(Sp) = 0 se va realiza prin ncrcarea paralel LD. Codul binar al strii Ss0 nu
este condiionat de codul strii Sp.

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

Numrtor sincron 4 bii


Q0

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

S15 S14 S13 S12S11 S10 S9 S8


1
1

S7 S6 S5 S4 S3

Eject
S_give

A (20)

Dec 7...0

0
S1 S0

pin VP
Val

pin IP

Figura 13: Implementarea ASM cu numrtor sincron.

AC IC

S-ar putea să vă placă și