Sunteți pe pagina 1din 97

_I

___
Introducere

Cuprins
J~
J ii

lucrari practice

Ll Studiul parametrilor ~i caracteristicilor portilor logice ........................... 1

L2 Implementarea funqiilor binare cu retele de porj;i logice ........................ 13


t

,
L3 Implementarea funqiilor binare folosind DCD/DMUX ........................... I 221-
..

L4 Implementarea funqiilor binare folosind fl.JUX.................................... 29

I LS Aplicatii cu circuite basculante monostabile ....................................... 35

~ Studiul registrelor de deplasare ........................................................ 42

L7 Studiul circuitelor de numarare asincrone ........................................... 50

I ,
L8 Studiu! circuitelor de numarare sincrone ............................................. 58
I

I
L9 I Gestionarea unei matrice de taste cu organizarea 4x4 ........................... 68 I

LlO I Sisteme de afi~are a informatiei numerice ........................................... 73

I
I L11 I Studl"I;1 Implement ••-e. automate!or FSM ..•.•.••.•.......•.•.......•.. I
81
I I

Ai Porj;i logice: simboluri ~i tabele de adevar .......................................... 91

A2 Formele canonice ale funqiilor binare ................................................ 92

A3 Bistabili ....................................................................................... 93
,

A4 Lista conexiunilor resurselor I/O la circuitul CPlD de tip XC95108 ............ 94

Bibliografie ................................................................................... I 95 I
I
ucrarea nr. 1: Studiu! parametrilor gi caracteristicilor patti/or logice
5ccpullucrarii
:.- ~ lucrare sunt prezentate 0 serie de aspecte ce apar in funqionarea circuitelor logice realizate practic. Aceste
se in eVidenta prin analiza pur logica deoarece ele sunt induse de performantele electrice limitate ce
. e electron ice aflate in spatele fiecarui simbol logic.
;ea caraderisticilor ~i a parametrilor electrici ai portilor logice este strict necesara pentru implementarea cu
a drcuitelor logice. Sunt prezentate: nivelurile de tensiune asociate starilor log ice; marginea de zgomot;
re a etajelor de ie~ire; timpul de propagare; fadorul de incarcare; caracteristica de transfer in tensiune.

tarea practica a schemelor log Ice se poate face apeland la Qicuite eleetronice, la ciicuite pneumatice, la
':u:3LS::ie e .
:- -~- i lementarilor bazate pe drcuite electron ice, trebuie sa avem in vedere dl in spatele fiecarui simbol din
_ -: se Cl a un drcuit electronic caracterizat de 0 serie de Iimitari (spre exemplu, viteza de propagare a semnalului
'. u este infinita). Este evident ca aceste Iimitari vor inf1uen~ performantele circuitului logic; mai
ES.E faptul d\ pot influen~ semnificativ chiar funq;ionarea schemei logice, deci pot influenta
.. trare-ie~ire dorit. Din acest motiv, este necesar sa cunoa~em foarte bine care sunt parametrii ~i Iimitarile
utilizate.
ezentate mai sus, rezulta ca in proiectarea schemel or logice trebuie mers pe doua planuri: unul in care se
_' ~ (in ipoteza ca circuitele sunt ideale, fara limitari) iar altul in care trebuie sa tinem cont de particularitiltile
.;se de tehnologia de realizare.
ai, circuitele eleetronice utilizate in electronica digitala lucreaza in regim de comutatie iar la intrare ~i la
r dou3 nivele de tensiune distincte.

trul unui circuit logic = valoare de catalog pentru 0 marime ce-i caracterizeaza funqionarea in conditii de
rea cu alte circuite din aceia~i familie .
. - sunt alerii astfel incat sa caraderizeze dlt mai bine regimul de curent continuu, regimul tranzitoriu ~i
zgomot al circuitului digital. Frecvent ace~i parametrii sunt da~ in cataloage ca valori tipice (normale) sau ca
cazul cel mai defavorabil).

de circuite logice = grup de circuite logice cu caracteristici electrice similare, proiedate astfel incat sa
~te intre ele in mod direct.
"~ ea unor familii logice s-a pus accent fie pe cre~ere vitezei de operare, fie pe reducerea consumului, sau s·
.uJll2:::a::-;:;:;:na-;:s nui compromis intre viteza de ope rare ~i consum.
cele mai utilizate familii logice sunt realizate pe suport de siliciu ~i folosesc tehno!ogii bipolare sau
=.2!;;n::;:re a acestora este prezentata in tabelul 1.

74***
74S***
74AS***
74LS***
74F***
74ALS***

C04000
74HC***
74AC***
74 AHC***
74HCT***
74ACT***
74AHCT***
Lucrarea nr. 1: Studiul parametriior $i caraaeristici/or portilor logice

2.1. Nivelurile de tensiune asociate starilor logice

La prima vedere, modelarea celor doua cifre binare In circuitele electronice s-ar putea face asociind prin conventie un
nivel de tensiune pentru "unu logic" ~i un altul pentru "zero logic". Acest mod de lucru nu poate fi adoptat 7n praetiell deoarece
nivelunle de tensiune sunt afectate de 0 serie de factori perturbatori precum: dispersia tehnolcgica, imbatranirea
componentelor, variapile tensiunii de alimentare etc. Din aceste motive, pentru fiecare stare logica se aloca cate 0 banda de
tensiuni permise. Pentru a putea face distinqie 7ntre cele doua stan logice, benzile de tensiune asociate sunt separate de 0
banda interzisa (vezi fig. 1).

Semnificatia marimilor ce intervin 7n figura 1 este urmatoarea:


VOLmaxreprezinta valoarea maxima pentru tensiunea de ie~ire corespunzatoare unei ie~iri logice aflata 7n starea
"lOW";
VOHminreprezinta valoarea minima pentru tensiunea de ie~ire corespunzatoare unei ie~iri logice aflata 7n starea
"HIGH";
VIH min reprezinta valoarea minim necesara a tensiunii de intrare pentru a fi interpretata drept "unu logic"
(stare "HIGH");
VOL max reprezinta valoarea maxima a tensiunii de intrare care este'· interpretata drept "zero logic" (starea
"LOW'').
zgomot

f f f
,,{O>---yo-l------yil-----<D vol
TENSIUNEA DE INTRARE (Vi)

Vcc
Marginea de zgomot
pentru starea II HIGH II

----If
NM ,j, -E--'"
/
H
--------

=
1:1V sal tul de tensi une
3,1 iesirii

--~~~--
Marginea de zgomot
pentru starea 11 LOW 11

Precizam ca valorile concrete ale tensiunilor VOlmax , VOHmin, VILmaxVIHmin, difera de la 0 familie logica la alta, ele
se regasesc In foile de catalog ca parametrii Iimita garantati de fabricant. In tabelul 2, sunt prezentate valorile de tensiune
asodate stanlor logice pentru cateva familii logice.

TTl 74LS** CMOS


Familie CMOS compatibil TTl CMOS
standard 74AS** (74HC**,
Parametru (74Hcr"* , 74AHCT**) (CD***)
(74**) 74ALS** 74AHC**)
0,4 0,4 0,1 0,4 99% din Vdd
VOLmax[V]
VOHmin[V] 2,4 2,7 4,9 2,4 1% din Vdd

Vnmax [V] 0,8 0,8 1,5 2 30% din Vdd

VIHmin [V] 2 2 3,5 0,8 70% din Vdd


2.2. Marginea de zgomot

Pe traseul de legatura dintre ie$irea unui dr -


suprapune un semnal de zgomot. se pune in mod firesc •
- nqionarea sistemului?
Parametrul ce define$te imunitatea la zgomot es::Z' -
pentru starea logica "high", respectiv cu NML pentru sG-a
Marginea de zgomot reprezinta unul dintre
masura a imunitatii acestora la perturbatii.
Marginea de zgomot statica este data de • - ui de zgomot lent variabil care se poate
suprapune peste semnalul util fara ca acesta sa perturbe <- " lui.
Analizand Figura 1, se observa ca intre t admisibile la intrare, apar diferente. Rolul
acestor diferente este de a prelntampina efectul nega :e ::=:--=- d semnalului uti!. Aceste diferente nu sunt
altceva decat valorile minima Ie (garantate de fabrica ) - - t. Ele se determina cu ajutorul relatiilor:
NMH = VOH
NML = VOLrrE:< - _

Facem precizarea ca marginile de zgomot


cele doua stari log ice.

2.3. Timpul de propagare

Acest parametru reprezinta lntarzierea


momentul aparitiei raspunsului la ie$irea acestuia.
Timpul de propagare este un aspect :Jgke. Este necesar ca valoarea timpului de
propagare sa fie cat mai midi pentru a nu limita fre:-= a circuitelor. In funetie de tehnologia de
realizare, intarzierea introdusa este de ordinul uniE. .sa- _ nde (In = 10' 95).
Modul de definire a intervalelor de tim ezinta in figura 2, unde sunt prezentate
semnalele de !a intra rea $i ie$irea unui inversor. este urmatoarea:
t,. - (rise time), timpul de cre$tere al se ~ 90% din amplitudinea tensiunii pentru
nivelul de "unu !ogic";
tf - (fall time), timpul de descre$tere al
pentru nivelul de "unu logic";
tpHL , tpLH- timpii de propagare pentru ~
tHL , tLH - durata frontului cazator (respect:
tp - timpul mediu de propagare definit p .

vil-->--
~
Vii
100$'0
- ---------
I I
-r----------

50% ~ ~ ~ ~ ~ ~ 1~~ -----------.


I
I
I I
I
I
,----------

10% - - - - - - -l-- ------------~~


f I I
II

II
I
I

I
---------- :
t
I

Vo t I
I
I ~
tLH

10(W;"
- - - - -, - - - - - - - - - + - - - - - ~ - ~
I I I
_I
I
_

I I I I
______________~ 1__ ~_
I I f
I I I I
I I I I
-----T----- -~-~-

Facem precizarea ca tpHL * tpLH' :e catalog yom gasi acelea$i valori pentru tpHL $i
ceasta nu lnseamna ca tpHL=tpLH, aximale pentru timpii de propagare. Valorile
DOtfi egale, dar nu $i cele efective de ~
Pentru a se asigura conditii opti
~ sa satisfaca relatia:
2.4. Etaje de ie~ire specifice familiei Tn standard-
Schema bloc, de principiu, a unei po'1i realizate In tehnologie TTL este prezentata In figura 3. Daca schema eleetrica
a blocurilor componente difera de la 0 subfamilie la alta, rolullor functional se pastreaza in totalitate.
Trebuie sa precizam faptul ca familia TTL, contine circuite electronice ce lucreaza In regim de comutatie. In acest
regim particular de lucru, fiecare tranzistor se comporta ca un comutator comandat electronic. In orice moment de timp el se
poate afla In una din urmatoarele stari: blocat = contact deschis, sau saturat =contact inch is. Din ascet motiv, In figurile
urmatoare, In schemele echivalente, tranzistoarele sunt Inlocuite de comutatoare.

(n)

CIRCUIT ETA!
CIRCUIT iE~RE
LOGC DE A
DEFA20R
AND
IE;'JRE B
(Tt) (T2)
Dl

.
(T4)

~
Fig.3. a) Schema bloc a unei polli realizata 7n tehnologie TTL; b) poarta NAND

Etajul de intrare este de regula format dintr-un tranzistor multiemitor ~i are rolul de a realiza funqia logica. Acest
etaj trebuie sa fie proiectat astfel Ineat sa nu necesite curenp mari de comanda ~i, In plus, sa prezinte protectie la eventualele
tensiuni negative ce pot fi aplicate intrarilor sale.

Etajul defazor are rolul de a genera doua semnale In antifaza ce sunt necesare pentru atacul etajului de ie~ire.
Etajul de iegire trebuie sa asigure la ie~irea circuitului logic valori impuse de tensiune pentru fiecare stare logica.
Etajul final poate fi realizat 7n una din urmatoarele variante: in conlratimp (etaj TOTEM POLE), cu ie!;ire in gol
(OPEN COLLEcrOR) sau etaj THREESTATE(TRISTATE). ~adar, aceia~i poar-..alogica, poate fi realizata din punct de vedere
tehnologicin trel variante dlstincte, funqie de etajul sau final.
a serie de proprietati ale po'1i1or logice sunt strans legate de tipul etajului de ie~ire. Din acest motiv, prezentam pe
scurt particularitatile fiecarui tip de etaj de ie~ire.

a) Etajul de ie,ire in contratimp


Etajul de ie~ire 7n contratimp, denumit ~i etaj TOTEM POLE, este etajul standard de ie~ire al circuitelor logice realizate
in tehnologie bipolara. Daca In foile de catalog nu se fac referiri exprese la tipul etajului de ie~ire, atunci, In mod implicit, acesta
este de tip TOTEM POLE. In esenta, un etaj In contratimp este format din doua tranzistoare ce sunt conectate In serie 7ntre
tensiunea de alimentare ~i masa (vezi fig. 4).
Schema simplificata a unul astfei de etaj, In care tranzistoarele au fost inlocuite prin comutatoare se prezinta In figura
4. a). Pe aceasta figura se observa ca ie~irea Y se afla In unu logic, numai dad'! avem simultan K4 inch is ~i K3 deschis. Similar,
ie~irea se afla In starea zero logic daca avem 7n acela~i timp K4 deschis ~i K3 inchls. Comanda de inchidere/deschidere a
comutatoarelor provine de la etajul defazor ~i este conceputa astfellncat cele doua comutatoare sa fie aqionate In contratimp.

VCCL
'7-l:::-.. l:
··1...········11<· y

Conecta.-ea in paralel
0" OFF HIGH a doua ielijiiri
OFF 0" lOW este interzisa

a) ~

Fig. 4. Etajul de i~ire TOTEM POLE; a) schema electrica echivalenta; b) aspecte nedorite ce apar la conectarea in paralei a
ie~irilor de tip TOTEM-POLE
ProprietJjile (particularitJJile) eta '-
)Qua sau mai muite ie~iri de acest tip eoarece apare 0 circuia!;ie de curent de valoare mare
Jef1tru cazul in care starea logidi ai' --- :;;:: ~ a!;ie este prezentata in figura 4, b), Pentru aceste
cazuri exista riscul ca ambele circuitele sa ==
ie~ire de acest tip nu trebuie niciodz:: ::re::ti
riscul distrugerii circuitului.
De regula, 0 ie~ire de acest tip este
pentru comanda unor sarcini rezistive dac2 -
Asigura cu resurse interne nivelele de e stari logice;
In regim stationar acest etaj prezinta : saturat.
Impedanta de ie~ire este de acela~ logic" (T3 saturat ~i T4 blocat), cat ~ pentru starea
de "unu logic" (T3 blocat ~i T4 satura ).
Tranzistoarele T3 ~i T4 se afla simu .J scurt de timp ce corespunde tranzitiei din" 1" in "0"
a ie~irii. Pe acest interval, curentuJ - =s::= -:: _' conexiunile de alimentare ale circuitului raspund
preponderent inductiv, provocand 0 sc2:d= ~ _ -
,Din acest motiv, langa capsula circuitului integrat,
Intre Vcc ~ masa, trebuie conectat un c:xrz-sa:::- = ::e;xa. 10 nF;

b) Etajul final cu ie§ire in gol (


Etajul final de tip "colector in 9 ,X: .. In contratimp prin eliminarea repetorului pe emitor
T4, ramane tranzistorul T3 al carui colect :;;:: _- -."eli figura 5).
Acest etaj poate genera un bun _ - '3 = ==- - orului T3, dar pentru "unu logic" va fi necesara, pe
!anga bfocarea !vi T3, ;i utiHzarea unei f'P__ '::::;"E:== ='7? Vcc. A~adar, circuitu! genereaza autoritar starea de
"zero logic" ~i este doar permisiv pentru '
Valoarea rezistentei externe ad" .-:
-= ==-=
.-

VCC~
Re%t
Y Reat:
.
,,

:, F=abl~1
,.°

1 1{3
c :

K;fY
OFF OFF ~ ~~F'.bl~1
011 lOW
~
a) c)
Fig. 5. Etajul de: ie~ire open collector; a) smbolul si modul de conec"tare a rezistentei externe;
c) efectul de AND cablat ce apare la con in gol pe 0 aceia~i rezistenta externa.

ProprietaJile (particularitaJile) -
Func!;ionarea corecta a portii este . exteme.
Doua sau mai multe ie~irile de acES: - pe aceia~i rezistenta externa fara a exista riscul
distrugerii circuitelor. Acest mod de __ - 2::::::a=;ESi3 se comporte ca 0 poarta AND virtuala, denumita ;;1
CABLAT, ale carei intrari sunt chiar '._ .==",:::c. de acest fel este prezentat in figura S.C.
o ie~ire de acest tip peate fi utilizat2 === pereaza la tensiuni de alimentare mai mari de 5V.
Nivelul de "unu logic" este generat - :ce=e:::i:~ :;:=;::;;;;3- externe.
Timpii de front pentru sarcini capa ' - =-
Impedantele de ie~ire sunt net dif

c) Etajul de ie§ire tristate


Ie~irea tristate prezinta, pe la ute LOW ~i HIGH, 0 stare suplimentara denumita
stare de inalta impedanta, notata HiZ. Ci':=::e • ~ fadlitate au 0 intrare suplimentara de comanda,
denumita ENABLE, prin intermediul car '0 SE
Starea HiZ Inseamna dezactiva'E
etajului final in contratimp.

In starea de Inalta impedanta te:5I..rE~ :::EJiS;~iiC!:1IiIii1:iil-=. ~ de potentialul care exista pe linia de magistrala la
care este cuplata ie~irea portii (acest t:;;;;C:Z ::AiCS;:'3c':' je catre 0 alta poan:a). 0 structura de inversor tristate
este prezentata In figura 6 b).
W
A

P2 F
B

Y
S

m
P3
°o ° ° 1
1

1 ° HiZ o A
ON Off HIGN 1 1 HiZ 1 B
Off 011 lOW
Off OFF HiZ
Starea: ON ON nu apare

~ ~ ~
Fig. 6. Poarta cu ie~ire tristate: a) schema electrica echivalenta; b) simbol, tabel de adevar;
c) exemplu de conectare in paralei a doua inversoare cu ie~iri tristate

Proprietatile (particularitafi/e) etajelor de ie§ire tristate:


Permite conectarea in acela~i punct a mai multor ie~iri, cu conditia ca numai una sa fie validata (activata), la un
moment dat, vezi figura 6.c.
Asigura cu resurse proprii nivelele de tensiune pentru ambele stan logice.
Circuitele prevazute cu ie~iri tristate prezinta avantajul ca se pot conecta u~or la magistralele de date sau adrese ale
sistemelor cu microprocesoare.
Ofera impedante mid la i~ire, ~i de acela~i ordin de marime, pentru ambele star! logice (ca la poarta TTL standard);
Nu necesita rezistentil extema ca in cazul etajelor open collector;
In starea de inalta impedanta, 0 i~ire tristate incarca nesemnificativ circuitele cu care sunt cuplate la i~ire.

In foarte multe scheme apare nevoia ca ie~irea unui circuit logic sa comande doua sau mai mu!te intrari ale altar
circuite logice. Analiza pur logica a circuitelor digitale nu impune nici 0 restriqie in aceasta pnvinta. In practica trebuie impuse
restriqii deoarece ie~irea unui circuit are posibilitati limitate de a genera sau preiua curenti.
Din figura 7 se obser/a ca sensul de curgere al curentilor depinde de starea logidi transmisa pe linia de legatura. In
plus, se remarca faptul ca, pe masura ce cre~te numarul sarcinilor logice comandate de i~irea unei porp, cre~te ~ valoarea

l
curentului generat/preluat de catre aceasta. Daca numarul sarcinilor logice este prea mare, poarta logica nu v-a mai putea
mentine nivelele de tensiune acceptabiie ~i informatia logidl se peate pierde.

Pl trensmite zero logic Pl trans~ite unu logic


VCC

f
CC

I -IOH
• Rx
+IlH P2

I,
vOl.I -E Vx<NMlo -I, VOl.1_ Vx<NMH
PI ~
J...VI J.VI

Va < VOLmax VI < VI lomax

Pl tranS!lito ( P1 transmite +IIH


zero logic I ~nlJ logic ~ P2
-IoH
PI
lve
-7 +11"
---? P3

VO< VOlomax
10I.=~I-IILI
It: : Vo >VoHmin
I I
IIQ!; = ~ IIH

IOl< IoLmax ~ I 10" < IOHnlaX


---)
~)
Fig. 7. Circulatia curentilor funqie de starea logidl ~i factorul de indircare
ca --, : StIJdiul parametrilor ji caracteristicilor porfrlor iogice
~dar, un circuit logic trebuie sa poata ge e u curent mai mare sau egal cu suma curentilor
_ 'generati de toate portite care sunt conectate la area . ~ timp el trebuie sa asigure ~ nivelul garantat al
ii ce corespunde starii logice transmise.
De regula, pentru stabilirea semnelor curenplor se f<KE c
= 5871nulpozitiv, iar cel care iese dintr-o borna are semnul negc 'v.

Semnificatia curentilor din Figura 7 este urmatoarea:


IlL - curentul de intrare In starea Low. Valoarea maxima a a
provine circuitul (vezi tabelul 3).
IlH - curentul de intrare In starea High. Valoarea maxima este deloerlden:~ de familia din care provine circuitullogic.
h-curentul de ie~ire In starea Low. Valoarea maxima este ~ familia din care provine circuitul logic.
IoH - curentul de ie~ire In starea High. VaJoarea maxima este de))ellden:a- e familia din care provine circuitul logic.

INTRARE !£SIRE
SERIA nivel LOW nivel HIGH nivelLOW nivel HIGH
III max [mAl IIH max [).lA] 10L max {m~~ IoH max [mAl
74 ** - 16 40 16 -0,4
74 S ** - 2,0 50 20 - 1,0
74 LS ** - 0 36 20 8 -04
74 AS ** -2 0 20 4/8 - 0,4
74 ALS ** - 01 20 8 -04

Prin definitie factorui de incarcare ia ie~irii Fa, (fan-out, output loading factor, sortancE), este un numar ce indica
capacitatea i~irii de a comanda In siguranta, (cu asigurarea unor nivele corecte de tensiune), intrarile altor circuite din aceia~i
familie. Fan-out este, In general, diferit pentru cele doua stari logice, el se poate calcula cu relapile:
FO LOW= IOl min / III max
FO HIGH= IOH min / IIH max
FO = min { FOLOW, FOHIGH}
Prin definitie factorul de incarcare al intrari~ F:1,(fan-in, input loading factor, facteur de charge) reprezinta
numarul de unitati de sarcina percepute la intrarea unui circuit digital. FI este dependent de complexitatea circuitului logic ~i
poate avea valori mai mari decat 1. De exemplu, 0 i~re TIL standard poate comanda 10 intrari cu FI=l sau 5 intrari cu FI=2.

2.5. caracteristica de transfer in tensiune a circuitelor logice I Teniunea de prag

Caracteristica de transfer in tensiune r=prc . tff dependenta statica intre tens/unea de /ntrare in poarta ji tens/unea de
lewe, Va=! (117). Aceasta caracteristica prezi ta' nta deosebita deoarece ofera informatii despre valonle efective ale
unor marimi ca: marginea de zgomot, nivelele • IT? 'unii de intrare, lapmea benzii interzise, etc.
Pentru drcuitele din aceia;i familie I . I C2JCdelistica de transfer in tensiune (CTT), este similara ca forma. Ea
poate sa difere pupn de la un circuit ia altul n" "' efective ale coordonatelor punctelor de frangere.
In mod curent, majoritatea circuiteJ . ta 0 caracteristica de transfer standard ;;1 numai 0 mica parte dintre
ele prezinta 0 caracteristica speciala de tip

a) err standard
Pentru exemplificare, In figura 8 se . 'ca pentru inversorul SN7404 (familia TIL standard). Analizand
caracteristica, se observa ca segmentele AB ~ bemilor permise ale tensiunilor de intrare pentru cele doua stan
logiee, iar segmentele BC ;i CD corespu d . tr-un alt punct de vedere, dadi ne raportam la un semnal
dreptunghiular aplicat la intrare, segmentele ==::u:id palierelor, iar BC In prelungire cu CD fronturilor.
Marginea de zgomot efectiva se xseri.2nd ca semnalul suma (semnal util + zgomot), nu trebuie sa
depa~easca abscisa punctului C pentru "unu ~- • cs:e::::- "zero logic".

Nivelele de tensiune garantate : - ••. respectiv 2V), sunt, a~ dupa cum se vede In figura, mult In
afara zonei interzise efective, In scopul de a de temperatura ~i dispersia tehnologica in buna funqionare
a portii. In practica zona interzisa este co . ralul 0,8V72V.

Tensiunea de prag reprezinta 2CEi! ~ - ::.e "trare care, daca este depa~ita, poate duce la schimbarea
starii logice a ie;;irii.

Tens/unea de prag real/zeaza separc;.73E _ - ~- - intTare pentru reg/mul d/nam/c.


Pe caracteristica de transfer, t _:s::= :..E2 la mijlocul segmentului CD. Daca tensiunea de intrare
este mentinuta in regiunea CD, exista ri - e frecventa relativ mare !a ie;irea circuitului. Pentru a
evita amorsarea acestor oscilajii, trebuie ca '0 .:: - •• terzise (segmentul CD), de ditre semnalul de intrare,

sa nu depa~asdi 40+50 ns. In consecinta, se . rilor de atac ale semnalului de intrare sa fie sub 50
. Cu cat caracteristica de transfer va fi fronturi de atac mai lungi.
Din cele prezentate mai sus, se poa:e ::-:a~ .:::n::....:::e:.:: ard prezinta doua particularitati importante:
are 0 singura tensiune de prc£ d:~~~ :;;=~X! de intrare evolueaza in sens crescator sau In sens
descrescator;
Lucrarea nr. 1: 5tudiu/ parametri/or ~i caracteristici/or potti/or /ogice

In apropierea tensiunii de prag, panta C1T nu este perfect verticala, de aiei neeesitatea ea semnalele de atae ale
aeestor eireuite sa prezinte fronturi eu durata dlt (!lai redusa.

b) err de tip trigger SChmitt


Cireuitele eu earaeteristica de tip trigger Schmitt au in plus fata de eele eu caracteristiea standard, un etaj de
amplificare special plasat lntre cireuitul de intrare ~i etajul defazor. ca~tigul suplimentar datorat aeestui etaj cu cuplaj In emitor,
face ea zonele de tranzitie sa fie practic nule, earaeteristiea fiind verticala.

Coordonatetipice pentro
punctele de frangere ale crr Vo [V]

+-
Simbol
A( 0 3.6) B (0.6 3.6) jl\

C (1.3 2.5) D (1.5 0.2)

VOHmil , Caracteristlca
Legenda:
(2,4 V)
o~
zonapermisa pentru cn de transfer
_ - zona interzisa pentru crr
1
VOLmax VPJ VPS
(O,4V)
tl
VlLmax
2
VIHmin
Fig. 9. Simbolul
transfer pentru
~i earaeteristiea de
inversorul trigger
Schmitt SN7414
(0,8 V) (2V)
Fig. 8. Caraeteristica de transfer
standard

Pentru exemplificare, In figura 9 se prezinta 0 caraeteristica de transfer de tip trigger Schmitt specifica unui inversor.
Forma particulara a eafaeteristicii de tip trigger Schmitt face ea, la cireuiteie cu astfel de caraeteristidi, sa apara
urmatoarele proprietati:
semnalele de intrare pot avea fronturi oridlt de lente, zona interzisa fiind foarte mica, traversare ei este posibila
fara amorsarea oscilatiilor;
existenta a doua tensiuni de prag: Vps - prag valabil pentru sensu! crescator al tensiunii de intrare ~i VPJ- prag
valabil pentru sensu I descresditor al tensiunii de intrare;
aparitia histerezisului (drumuri diferlte de parcurgere a caracteristicii de transfer In funqie de sensul de evolutle al
tensiunii de intrare) are ca efeet cre~terea marginii reale de zgomot. Spre exemplu, pentru inversorul SN7414,
tensiunea de intrare admisa pentru zero logic poate urea pana la cca. 1,6V iar pentru unu logic, tensiunea de intrare
poate coborl pana la cca. O,8V. Cre~terea marginii de zgomot a fost obtinuta prin suprapunere In zona centrala a
benzilor de tensiune asociate starilor log ice de la intrarea circuitului.
Faeem precizarea ca singura deosebire dintre circuitele 7404 ~i 7414 este data de caraderistica de transfer. Din punet de
vedere logic ere realizeaza aceia~i funqie - negarea valorii logice de la intrare.
Din punet de vedere electric, lntre raspunsul celor doua circuite nu apar diferente semnificative dadi semnalul de intrare are
fronturi cu durata redusa ~i nu este afeetat de zgomot (conditii favorabile de iucru). Diferente semnificative apar atunci cand
semnalul de intrare are fronturi lent variabile ~i/sau este afectat de zgomot. In astfel de conditii, raspunsul clrcuitului cu
caraeteristica trigger Schmitt est net mai bun. In desfa~urarea lucrarii se va pune In eVidenta acest aspect.

3.1. Verificarea nivelelor de tensiune


Cu ajutorul montajului din figura 10 se determina modificarea nivelelor de tensiune asociate starilor logice pentru
diverse lndirdiri ale pori;ii de test. Determinarile se fac pentru urmatoarele tipuri de circuite: 7404; 74LS04; 74HCT04. Pentru
fiecare circuit in parte, rezultatele masuratorilor se tree In tabele similare tabelului 3.1.

Modu/ de /ucru:
se tree eomutatoarele Kl ~i K2 pe pozitia a;
se introduce In soclu unul din circuitele specificate mai sus;
se lncarca progresiv iesirea portii testate prin realizarea de combinatii diverse ON/OFF ale comutatoarelor din
pachetul SW;
pentru fiecare factor de lncarcare ~i pentru fiecare stare logica in parte, se masoara cu oseiloscopul tensiunile din
punetele de test C ~i D, ~i se completeaza tabelul 4;
la rubrica de observatii se specifica daca In punctele Xl, X2, X4, X8, nivelele de tensiune asociate starilor logice mai
au sau nu valori acceptabile;
::-=1JJri:
Ce se intampla cu tensiunea de ie~ire pentru ~ === :: :.E ~ ce cre~te factorul de lndircare 7
Exista cazuri in care 0 ie~ire logica trebuie sa re de sarcini log ice decat FAN OUT. Cum se
poate rezolva 0 astfel de situatie?

f-----~~---·-·--------------j
: R Oscilator :
: digital :

l0 ~P2: 11
:
~acy--.,...- @
.
o ,

. I 6 ®f---------~.:
: Pl b ~ : P4 : @
:~
,a b c Kl •
, --<>
~ I

I P5

,

:
2

if±±
. ~~__?~
L~!__
!. I
j ~ ~
,
I

,
I

, P7
: 0+:
i ,
I I

- ·na : :
:L~-tX8'
lIa:P8~~
~-----------

Numar de sarcin! Tensiunea de intrare - .::e~


logice ObselVatii
V'L V1H ':>- :r

0
1 !

15

3.2. Dei:erminarea tensiunilor de prag


Cu ajutorul montajului din Figura 10 se det .:c ;:;rag atat pentru sensu I erescator, cat ~i pentru cel
escrescator al tensiuni! de intrare. Pentru aceasta c!el:e:-;-;J:;;c;:::;.. ~~ rtii de test se apJica 0 tensiune in dinte de
--rastrau.
Determinarile se fac pentru urmatoarele tipu . de

Nodul de lucru:
se trece comutatorul K2 pe pozitia b;
se incarca ie~irea portH de test cu 0 singura sa
se introduce in soclu unul din circuitele spedficz:E
se fac urmatoarele reglaje la osciloseop: se 62Z3 pe pozitia lVjdiv pentru ambele canale; se regleaza
pozitia de zero a ambelor trase astfel incat sa sa ~~:x;,:;2. peste alta (se are in vedere ea suprapunerea sa se
fadi in dreptul unei gradatii orizontale a ecra
pe canalul A al osciloscopului se apJica se
ie§irea portii de test (punctul D);
se vizualizeaza formele de unda ~i se det
valorile reale ale tensiunilor de prag;
se eompleteaza tabelul 5 iar pentru cireuitele 7

Tioul e!reuitului VOL V::r VTR+ VTR·


" 7404 .
II
It
7414
74HCT04
.
l

74HCT14 I

Cum explicati faptul ca, de~i circuitele 74 4 __74-


~unt diferite? Dar pentru cireuitele 7404 ~ 7

3.3. Vizualizarea caracteristici de transfer


Pentru vizualizarea acestei earacteristiei se utilizeaz?J de la punctul anterior eu deosebirea ca oseiloseopul este
=fuT.rt In modul de lueru )0(.
5e deseneaza caracteristiea de transfer pentru' - spedficate la punctul anterior al lucrarii.
3.4. Studiul func~onarii oscilatorului de re!axare

o aplicatie
foarte des lntalnita a portilor cu caracteristici:\ de tip trigger Schmitt 0 constituie oscilatorul de relaxare.
Schema electridi a unui astfel de oscilator se poate identifica In Figura 10. In componenta oscilatorului intra poarta P1, rezistorul
R §i condensatorul seiectat prin intermediul comutatorului Kl.

Modul de lucru:
pentru diverse valori ale condensatorului (selectabile prin intermediul comutatorului Kn se determina cu
osciloscopul, frecventa semnalului generat;
pentru 0 pozitie convenabila a comutatorului K1, se vizualizeaza §i se deseneaza corelat In timp formele de unda din
punctele A ~i B (vezi Figura 10).

intrebi1ri:
Analizand schema electrica din Figura la, se constata faptul ca NAND-ul cu piltru intrari lucreaza In regim de inversor.
Poate fi lnlocuit acest NAND cu un inversor de tipul 7404? Dar cu unul de tip 7414? Motivati-va raspunsul.
Ce se lntampla cu frecventa semnalului generat de oscilator dad! se mare§te capacitatea condensatorului? Dar dadl
valoarea condensatorului se mar~e foarte mult?
Poarta P2 (vezi fig. 10 ) este strict necesara pentru ca schema sa oscileze?
Poate fi utilizat acest oscilator pentru realizarea unui ceas electronic?
Se modifica frecventa de oscilatie daca circuitul 7413 se In!ocuie§te cu altui care are tensiunile de prag mult diferite?
Motivati-va raspunsul.

3.5. Efectui timpului de propagare - generarea de impulsuri din tranzitia semnalului de intrare

a) Prin analiza logiei'I, sau prin simulari pe calculator, se cere completarea tabelului de mai jos conform exemplului din Iinia

Nr.
Schema logica
Semnale de ie§ire pentru cazul ideal I Semnale de ie§ire pentru cazul real
crt. (tp=O) IrtO;tQ)

A~~ A~
1 A1[>D~ II B~ I B TI q-TI~
0
c 0 0 0
i I C~

2 A-4>=[>20lY I I
I ALt>P I
3
I
I I
4 A~
I I
5 A~ i
6 A~ ,

7 A~
8 A-~
9 A~

10 A~

11 A1[>D~ !
I
12 IIA~~11
iI iI
:. SllJdiui parametrifor 5i caracteristicilor porfilor logice

b) Se realizeaza pe macheta de test ~ :2.Jelului 6, dupa care se vizualizeaza cu ajutorul


- opului cu doua canale semnalele din punct e mai bine In evidenta fenomenele, lntre A §i B se
ega ;n serie 3 inversoare. Se determina latimea . t datorate timpului de propagare. Se deseneaza
~ -t In timp cele trei semnaie §i se compara cu ceJe
:7:ebJri:
Precizati schemele din tabelul 6 care dau r2s;:r.:;~r
Cum se explica dependenta latimii impul
intrare (vezi experimentul de la subpun

3.6. Efectul timpului de propagare - olsalz:::r.:=:li::

Se realizeaza pe macheta de test un oscila . tin figura II.


a) Pentru K2=a ~i pentru fiecare pozitie ;: izeaza cu ajutorul osciloscopului semnalul din
punctul Q. Pentru situatiile in care In _-x . a determina frecventa acestora.
b) Se repeta subpunetul anterior pentru - -.- _-

.erminarile se vor face pentru urmatoarele tipuri e

1 R1 :: - .: Ps P6 I
: K3 a (I; i
: ~~ I
: ;J;. ;J; I
: Cl C2
_____ ~-_-_-_--_._-._._••_._. . ~. __ J
Fig. 11: Montaj .;;;:::r5ii:! '=:EDlrului In inel

':tTebari:
Care este condipa de oscilape pentru can:. •
Cum explicati faptul ca schema inceteaza ~ - x' traduce un numar par de inversoare?
Cum se madifica frecventa de oscilape -"- ~ =:::2r..ii::l re In bucla de reaqie ?
Cum explicap faptui ca, pentru acela~i ::e -eoqie, frecventa de oscilatie difera destul de
mult pentru circuite analizate ?
Cum exp!icati modificarea frecventei de - 'rcuitul de integrare?
Cum explicati faptul ca schema incetem ~ :::3!:a::::;:;:;:;:;a- din circuitul de integrare este prea mare?
In situatia K2 = b ~i Kl = c, se mai poa:E="::D:= tt~:=::, .:;; tar corect calculat intre P2 §i P3 ? Ce se
intampla In acest caz cu valoarea frecv
Pentru ca schema sa oscileze este nev' -

. ; .':.~. __. ;'.' '.'.": \.'. ATE II TIE ! - .<~<~_ ~o .' .' ",' '-:?"~*;';;
Reg u·1f. de o'pera re co circeitele integIa,te. d i gitaJ~~~';~

• Funqionarea circuitelor logice


punzatoare:
- 5V ± O,25V pentru toate se:- --_
- 5V ± O,5V pentru seria 74
- 3 + 15 V pentru seria C
• Pentru menpnerea constanta a utarii ie§irii dintr-o stare in alta, este
ra utilizarea unui condensator de decu itului integrat §i conectat in paralel pe
ele de alimentare ale acestuia i

• Intrarile neutilizate ale circuitelor


funqionarea corecta a circuituluii
• Intrarile neutilizate se vor coneeta z u intervina in funqionarea normala a
::::uitului.Spre exemplu, dad! se dore~te starea - in mai multe moduri:
Lucrarea nr. 1: Studiu/ parametri/or $i caracteristici/or potti/or /ogice

- plin conectarea intrarii la 0 sursa independenta de tensiune Intre 2,4 -;-3,SV;


- prin legare In paralella intrari care Indeplinesc aceia~ func~e logica - metoda prezinta dezavantajul ca lncarca inutil
poarta care comanda;
- prin conectarea la Vcc prin intermediul unei rezistente de 1kn.
Starea de "zero logic" se ob~ine prin conectarea directil la masa a intrarii, pentru familia TIL, sau prin intermediul unei
rezistente pentru familia CMOS.
• Daca totu~i 0 intrare TTL este neconectata Clasatil In aer"), aceasta va fi interpretata de circuit ca fiind In stare
logica HIGH;
• Intrarile po~ilor pot fi conectate In para lei;

• De regula, 0 ie~ire digital a se conecteaza, dupa caz, la una sau mai multe intrari digitale;
• E!>teinterzisa conectarea ie§irii unui drcuit digital, chiar ~i pentru intervale scurte de timp, la masa, la tensiunea de
alimentare, sau la oricare alta sursa de semnal;
• Ie§irile nu pot fi conectate In paralel decat In cazul utilizarii etajelor tristate sau open collector;
• Daca numarul de intrari este insuficient, marirea acestuia se poate face priri~
- cuplarea mal multor pot1i la intrarea alteia;
- utilizarea unei po~i expandoare;
- utilizarea de funqii cablate utilizand po~i open collector
Lucrarea nr. 2: Jmplementarea funqiilor binare cu retele de porti logice

1. Scopullucrarii
In aceasta lucrare se face 0 prezentare sintetica a prindpalelor etape ce trebuie parcurse In procesul de implementare
'i1or binare cu ajutorul pOl'~i1orlogice.
Prima parte a lucrarii prezinta abordarea c1asidi (bazata pe utilizarea circuite integrate digitale de complexitate
0) iar partea a doua prezinta abordarea modem a (bazata pe utilizarea de structuri logice reconfigurabile de tip CPLD sau
='"-=A). In stransa legatura cu partea a doua a lucrarii, se prezinta modul In care un circuit sau sistem digital poate fi
ementat lntr~o strtuctura reconfigurabila cu ajutorul mediului de dezvoltare ISE-WebPack, produs de firma Xilinx. Totodata
prezentate primele notiuni despre Iimbajul VHDL, urmand ca acestea sa fie aprofundate In lucrarile viitoare.

2. 1. Sinteza funqiilor binare folosind retele de porti logice - Metoda c1asidi

Realizarea practica a funetiilor binare se poate face In mai multe moduri: folosind pOl1i log ice, folosind circuite de
plexitate medie (muitiplexoare sau demuitipiexoare), foiosind rnemorii ROt·j sau EEPROi·j, folosind structuri logice
- gramabile (PAL, GAL CPLD sau chiar FPGA), etc.
In aceasta seCtiune a lucrarii se prezinta implementarea bazata pe porti logice. Succesiunea ~i denumirea etapelor
-€Cesare In procesul de sinteza sunt prezentate In tabelul 1.
La randul saUl implementarea cu porti logice, poate avea mai multe variante:
folosind /ogiai combinata - se permite utilizarea oridirui tip de poartil logidl;
folosind /ogica de ace/a,i tip- se permite utilizarea unui singur tip de poartil logica, fie NAND, fie NOR;

Nr.
Denumire etapa
eta ii
1 Detinirea foarte Ce trebuie sa fadl circuitul ?
exacta a funqiei Aduna la numarul de intrare A; constanta zecjmala 3.
logice ce trebuie ~dar, funetia de transfer a CLC- ului este: Y= X + 3.
realizate. Starea logica a intrarilor este interpretata ca fiind scrierea binara a numarului de
jntrare A; jar starea logica a ie~irilor se considera a fi scrierea binara a numarului Y.
Se pleaca de la Cate intrari $i elite ie$iri are circuitul ?
descrierea In termeni Din datele initiale ~im ca are 3 intrari.
naturali a funqionarii Numarul de ie~iri trebuie deduse tinand seama de funCtia realizata de circuit. eel mai
circuitului. mare numar exprimat pe 3 biti este X=7, caz in care Y=7+3=10. Rezulta ca circuitul
trebuie sa rezinte 4 ie iri.
Alegerea unei Pentru acest circuit, cea mai adecvata metoda de reprezentare este data de tabelul de
modalitati de adevar complet.

I
descriere a funqiei
logice.

In prindpiu, se poate
alege orice metoda de
X
o
1
2
! 0
I
x, x, xo

0
0
0
0
1
0
1
0
Y3 Y,
0
0
0
0
1
1
Y::ft
1
004
0
1

1
3

5
I
reprezentare
cunoscuta.
3 I 0 1 1 0 1 1 0 6
4
5
1
1
0
0
0
1
I0 1
0
1
0
1
0
7
8

I
6
7
1
1
1
1
0
1
I 1: 0
0
0
1
1
0
9
1°1
3 Alegerea modalitii\ii Optam pentnJ utilizarea portilor log ice deoarece scopul acestei lucrari consta In
(sau a tehnologiei) prezentarea acestei metode.
de implementare. In aceasta etapa trebuie avute In vedere aspecte precum:
• performantele propuse (viteza de lucru, consum de energie, etc.);
I • costul circuitelor utilizatei
· seria in care se va produce circuitul, etc.
,
4 Simpllficarea
funqiei logice. Avem de implementat 4 funqii binare ce depind de acelea~i varia bile de intrare.

I Aceasta etapa nu este


strict necesara pentru
• Ie$irea Yo. Din analiza tabelului de adevar se observa ca avem Yo = )(0 .
I Demonstratia acestei afirrnatii ramane ca tema.
toate modalitatile de
implementare a • Ie~irea Yi. Folosind prima-forma canonica obtinem:
I funqiilor logice.
~2X){O' I xJxJxo!
Pentru Implementarea
cu porti, aceasta etapa
1 X2XJXO Ix x1 O

este necesara
X2X1XO Ix x !
deoarece reduce
numarul de clrcuite
necesare.
X2XjXO X
2
x:x:
• Ie~irea )"l. Folosind prima forma canonica obtinem:

I I IoI
Proprietatile algebrei
binare trebuie aplicate IX2X1XO X1Xo
astfelincat sa obtine _IX2X1XO _ X2 X1XO 1_ X2 X _IX)51_
expresii finale cat mai Y2-
IX2X X
1 O
-
IXIXO
-, X·I -
_ '- Ix2P
/
simple.
I - -
,X2X1XO Ix2x xo I
1
X2X1Xo-

• Ie~irea j3. Folosind a prima forma canonica obtinem:

X2X1XO _ IXI 2 IXl I


YJ = X2X1XO = X2!X1 = X21xo
X2X1XO Xo
Aplidlnd teoremele lui DeMorgan obtinem:

y, = x,I;:1 x,I;:1= = II~:I 1:'~,1 I::I


= =

ObselVatii:
Funqla yl, se implementeaza cu 0 poartii ;;au exclusiv negat;
Produsul P, apare In expresia a doua functii binare, el va fi calculat 0 singura data
i a oi folosit In sinteza ambelor fun 'I;
I Deducerea schemei Schema logica rezulUI din relatiile obtinute fa punctul anterior,
IIOgice.

I Atentie: Exista 0
I multime de scheme
j logice pentru acela~i

I tabel de adevar!
I Schema logica depinde
I foarte mult de modul
in care s-au aplicat
l proprietatile algebrei
, binare in procesu! de
simplificare a expresiei
al ebrice.
I Implementarea
hardware.

In aceasta etapa, dupa


ce s-a stabilit familia
de circuite iogice, se
Identifica codurile
I circuitelor ce contln
I portile ce ne
I intereseaza, apoi se
I face a!ocarea plnilor.
74lS266
1

~Yl
Yu

Dupa terminarea 5

acestel etape avem 6~Y2


toate datele necesare 1 3
Va
pentru a trece la 74A1..B02
realizarea sa practica.
Se observa ca am avut nevoie de 4 circuite integrate Insa gradul lor de utilizare este
urmatorul: V2 din 74LS04, V2 din 74LS266, V4 din 74LS08 I V4 din 74LS02.
2.1.2. Logica de acela~i tip
A¥J dupa cum se ~ie, sistemele de operatori: (AND, NOT), (OR, NOT), (NOR), (NAND) sunt sisteme complete de
_tori - ceea ce inseamna c3 pot fi utilizate in descrierea oridirei funqii binare. Interes pradic mai mare prezintii ultimele
- • deoarece ne indica posibilitatea de a implementa orice funqie logica cu ajutorui unui singur tip de paarta logica, fie NAND
OR.
Metoda graficii. Transpunerea unei scheme logice oarecare intr-o logica de acela!;ii tip se face, utilizand in mod
I enabil, urmatoarele reguli:

Rl: La ie!;iirea unui etaj logic se poate introduce un cerculet de negare dad~, corespunzator, la intrarea nivelului
logic urmator se face acela!;ii lucru (" dubla negare este adevar").

R2: Introducerea la 0 ie!;iire a unui cerculet de negare trebuie urmata de adaugarea unui inversor. Introducerea la
o intrare a unui cercu!et de negatie trebuie precedatii de negarea respectivei variabile de intrare.

R3: Trecerea de la 0 poarta fa alta se face conform echivalentelar de mai jos (deduse din teoremele lui
DeMorgan):

=D- <=> ::::D-- ~ (=)

=D- <=) $- $- <=>


In funetie de schema logica initiala rezultatul transpunerii in logica de acela§i tip ne paate conduce spre scheme mai
simple sau, dimpotriva, mai complicate decat schema initialii c:ateva transpuneri In logic3 de acela§i tip sunt exemplificate In
figura 1.

[>~:>,~
[>~~,
(>~>
Pentru situatiile in care logica de acela§i tip nu se impune in mod strict, aplicarea regulilor Rl, R2, R3, pe portiuni
convenabile ale schemel, poate sa determine reducerea necesarului de port! al schemel. De exemplu, aplicarea regulil R3
pentru funetia y2, are ca efect reducerea necesarul de port! de la 4 ia 2 §i, In plus, implementarea se face folosind doua tipuri de
porti fata de trei cat era initial. Aceasta situatie este prezentata in figura 2.

I
I Xs
!

Fig. 2. Reducerea numarului de porti folosind echivalenia dintre acestea

Metoda analitidi. Aceasta metoda presupune aplicarea repetata !;ii in mod convenabil a teoremelor lui DeMorgan
pentru 0 expresie initiala a funCt\ei logice. Daca se dore§te implementarea in logica de tip NAND-NAND, se urmare§te
transformarea operaiiilor de adunare in operatii de inmultire, iar dadi se dore~e implementarea in logica de tip NOR-NOR, se
urmare~e transformarea operatiilor de inmultire in operatii de adunare.
In tabelul 2, se prezinta modul de trecere la logiea de tip NAND-NAND a drcuitului logic prezentat In tabelul 1.
Lucrarea nr. 2: lmp/ementarea funcfii/or binare cu reJe/e de pOrfi /ogice

Tabe/u/2
Trecerea la logica de tip NAND-NAND
Se porne~e de la expresiile reduse obtinute in tabelul 1.

( Y=X+3 )

X2X1XO

Y3 =X21:~I=X21:~1 =X2 XjXo =X2 XjXo • Aceasta realizare necesita 10 porti NAND cu 2 intrari ~i 0
poartil NAND cu 3 intrari. ~adar, avem nevoie de 4 circuite:
3 circuite 74LSOO i un circuit de ti 74LSI0.

2. 2. Sinte~a fynqiilor binare folosind stmcturi logice programabile de tip CPLD


CPLD-urile sunt structuri log ice programabile, mai corect spus reconfigurabile, care intr-o singura capsula inglobeaza 0
mul~ime de resurse hardware digitale. Spre exemplu, circuitul din machetele de laborator, XC95108, contine echivalentul a cca.
2000 de porti conventionale. Exista insa structuri programabile mult mai compiexe.
Realizarea de aplicatii folosind astfel de circuite nu se mai face manual, fiecare firma produdltoare de circuite
reconfigurabile asigura ~i un mediu software integrat care u~reaza foarte mutt dezvoltarea aplicatiilor. De regula, aceste medii
software accepta mai multe modalitati de descriere a funqionarii circuitului (sistemului) logic. Cele mai intalnite modalitati de
descriere sunt: folosirea de scheme logice; folosirea de fi~iere VHDL; folosirea de diagrame de tranzitie a starilor; etc.
In desfa~urarea acestei lucrari se folose~e mediul de dezvoltare ISE - WebPack, produs de firma Xilinx, iar ca metode
de descriere a funqionarii circuitului folosim fie schemele logice, fie limbajul de descriere hardware VHDL.

2.2.1. Descrlerea circuitelor combina~ionale cu ajutorul edltorului de scheme

Pentru a realiza 0 aplicatie in mediul ISE-WebPack pe baza editorului de scheme, este necesar sa parcurgem
urmatoarele etape:

• Deschiderea unui nou proiect. Pentru aceasta este necesara parcurgerea urmatoarei secvente de aqiuni: se alege File
---+ New Project ---+ in fereastra aparuta se specifica numele proiectului (spre exemplu circuit_sumare), locul unde
acesta va fi salvat ~i proprietatile proiectului ---+ OK;

• Adaugarea unui fi~ier sursa continand schema logica (fi§ier de tip .sch). Din fereastra Project Navigator se
alege Project ~ New Source ~ In fereastra aparuta se alege Schematic, se specifica denumirea noului fi~ier (spre
exemplu abe; -?> Next -?> Finish. Dupa aceste comenzi, in fereastra Source In Projectse va adauga fi~ierul abc.sch,
apoi, in mod automat se lanseaza in executie editorul de scheme XI/inx ECS.

Desenarea schemei logice. Deoarece modul de editare a schemel looice este similar oricarui editor de scheme electrice,
nu yom insista asupra acestui aspect. in final trebuie avut grija ca schema logica sa fie salvata.

Adaugarea fi$ierului de constrangeri (fi~ier de tip .uef). Acest fi~ier este foarte important deoarece prin intrmediul
sau sunt precizati pinii circuitului CPLD unde VOl' fi conectate intrarile ~i ie~irile circuitului proiectat de no!. Pentru adaugarea
acestui fi~ier se procedeaza astfel: din fereastra Project Navigator se alege Project ~ New Source ~ in fereastra
aparuta se alege Implementation Constrain File, se specifica denumirea noului fi~ier (spre exemplu cons_sumato1')
---+ Next ---+ in fereastra aparuta se alege fisierul sursa caruia i se asodaza acest fi~ier de constrangeri (in cazul de fata
avem 0 singura sursa abc.sch) ---+ Next ---+ Finish. in urma acestor operatii in fereastra surselor implicate in proiect
(Source in Project) apare 0 noua componenta cons_sumator.ucf.
Daca se face dublu e1ic pe abc.ucf se lanseaza un utilitar care ne ajuta sa editam fi~ierul de constrangeri. Din
fereastra aparuta se selecteaza tabul Ports. Dupa aceasta alegere, pe ecran apare lista porturilor de intrare ~i de ie§ire
ale sistemului digital proieetat de no!. Pentru fiecare port trebuie sa specifidim pinul CPLD-ului unde dorim coneetarea
respectivului port, aceasta presupune completarea coloanei denumita Location. Dupa completare se face 0 salvare a
fi~ierului de constranger!.

Deoarece fi~ierul de constrangeri este de tip text, exista ~i posibilitatea editllrii manuale a acestui fi~ier prin
urmatoarea secventa de comenzi: din fereastra Source in Project se alege fi~ierul ce descrie funCtionarea circuitului
proiectat de noi (in cazul de fatil abc.sch) ~ din fereastra Processes for Current Source se face dublu e1ic pe
op~unea Edit Constrains. Dupa aceste comenzi apare 0 fereastra in care se introduc constrangerile, cu respectarea
sintaxei.
Luerarea nr. 2: lmp/ementarea funqiilor binare eu retele de porti logiee

Trebuie avut grija ca numarul pinului completat ,n coloana location sa corespundii: cu schema
rdware a machetei de laborator. Penuu acesta este absolut obligatoriu sa consultap tabelul de
conexiuni prezentat in anexe.

implementarea circuitului ,n CPLD. Dupa introducerea surselor In proiect (etapa denumita Design Entry), urmeaza
cateva etape ce se desfa~oara In mod automat. Ultima etapa consta In genera rea fi~ierelor de eonfigurare a eircuitului
LD, etapa denumita inpropriu de generare a fi~ierelor de programare (Generate Programming Hies).
Pentru genera rea fi~ierului de configurare, In fereastra resurselor se alege fi~ierul principal (abc.sch) iar In fereastra
proceselcr disponibiie pentru acest fi~ier se face dublu die pe optiunea Configure Device (iMPACT).
In ferestrele urmatoare se aleg urmatoarele comenzi: Configuare Devices ~ Next ~ Boundary SCan Mode ~
Next ~ Automatically connect to cable. ~ Finish ~ OK ~ se alege fi~ierul abc.jed ~ Open ~ e1icdreapta pe
icoana cireuitului XC95108 ~ Program... ~ se alege optiunea Erase Before ProgrammIng ~ OK. Daca totul este in
regula, dupa cateva secunde va apare mesajul Programming Succeeded ~i se poate treee la verifiearea funqionarii
circuitului.

Limbajul VHDL a fost conceput In vederea simularii ~i sintezei cat mai u~oare a unui drcuit/sistem logic. La ora
ECtuala, Iimbajul VHDL este eonsiderat un limbaj sufieient de puternic pentru deserierea unor sisteme digitale complexe dar ~i
cient de u~or de asimilat pentru cei care sunt familiarizati eu un program de nivellnalt precum Pascal sau C.
Proieetarea ~i sintetizarea unui· sistem digital In limbajul VHDL presupune deschiderea unui proiect in care sunt
plicate mai multe categorii de fi~iere sursa. Mediul ISE-WebPack are posibilitatea de a sintetiza scheme logice prornind de la
~ere sursa de tip VHDL. Modul de lucru este similar cu cel prezentat In seqiunea anterioara, cu singura deosebire ca atunci
cand se introduce 0 noua sursa In proiect, In loc de optiunea SChematic se alege VHDL Module.

Descrierea unui circuit logic cu ajutcrul VHDL presujJune utilizarea unei entitati (entity) la care trebuie asodata 10
mod obligatoriu cel putin 0 arhiteetura (architecture).
Entitatea este folosita in principal pentru a specifica conexiunile exterioare, denumite porturi, prin specificarea numelui,
a directiei datelor, a tipului de date vehiculate, etc.
Arhiteetura este folosita pentru descrierea compor..amantului intern al circuitutui ce urmeaza a fi proiectat, cu alte
cuvinte contine 0 descriere a funqionarii circuitului sau schema logica a acestuia.
Inainte de a trece la prezentarea exemplelor facem precizarea ca limbajul VHDL permite descrierea circuitelor log ice In
ai rnulte moduri:
- descriere structurala - proiectantul impune schema logica iar sarcioa mediului software este de a "amplasa" corect
aceasta schema in resursele interne ale circuitului in care se dezvolta aplicatia;
descriere comportamentala - proiectantul face 0 descriere de nivellnalt a circuituluijsistemului urmand ea sinteza
propriu-zisa a schemei logice sa ramana In sarcina mediului software.
metode combinate - prciectantul poate sa opteze pentru descriere structurala pentru anumite blocuri funqionale ~i
descriere compor..amentala pentru altele.

o sursa VHDL este un f;~ier text In care, In sectiunea de descriere a functionarii circuitului (tn arhitectura), gasim 0 Iista
formata din dec!aratii concurente ~i declaratii secven~iale. Ajun~i aid trebuie sa predzam ca ceea ce In programare se
chearna instroetiune, In descrierea hardware a circuitelor poarte denumirea de dec/arape (statement). Aceas'"..anu este singura
diferentii Intre programare ~i descrierea hardware, deosebirile de substanta, dupa cum yom vedea imediat, sunt date de mcdul
in care sunt executate cele doua tipuri de declaratii.
Toate dedaratiile concurente sunt execuate simultan. Aceast lucru se explica prin faptul ca, In urma sintezei, fiecare
declaratie concurenta este implementata de un circuit hardware separat (implementare paralela). Din acest motiv ordinea In
care aceste declaratii apar In Iistingul arhitecturi nu are nici 0 importanta.
Deelaratiile secventiale trebuie executate una dupa alta, Intr-o ordine bine stabilita, ~i numai dupa ce anumite conditii de
declan~are au fost 7ndeplinite. In limbajul VHDL, pentru a separa cele doua tipuri de declaratii se folose~e notiunea de proces
(process). In inter!orul unui proces sunt ineluse numai operatiile secventiale ce trebuiesc executate atunci cand anumite conditi!
de deelan~re sunt Indeplinite. Conditiile de declan~re a procesului, altfel spus de deelan~are a unei serH de aqiuni cu
succesiune precisa, sunt specificate Intr-o a~ zisa Iista de sensivitate a procesului. P9adar, In interiorul procesului, ordinea
declaratiilor este foarte !mportanta, ea indica succesiunea In care operatiile se executa.
Din punct de vedere al executiei, fiecare proces are acela~i statut cu 0 Tabelul 3
declaratie concurenta, cu alte cuvinte, toate procesele ~i toate declaratiile c b a yOU!
concurente se executa In acela~i timp, deci sunt implementate In hardware prin 0 0 0 0
scheme distincte.
0 0 I I
In final precizam ca, In mod curent, procesele sunt folosite pentru
implementarea circuitelor secventiale ~i uneori pentru circuite combinationale iar 0 1 0 0 I

declaratiile concurente doar pentru circuite combioationale. 0 I I 0


Modul de utilizare al celor doua t!puri de declaratii precum ~i multitudinea I 0 0 1
de posibilitati puse la dispozitie de Iimbajul VHDL se poate urmari In exemplele ce
1 0 I 0
urmeaza, exemple ce au ca scop implementarea unei funqii binare de trei variabile
avand tabelul de adevar prezentat In tabelul 3. I I 0 I
1 I 1 0
Observatii Codu/VHDL
Seqiune dedicata includerii de biblioteci library IEEE;
use IEEE. std logic 1164.all;
5eqiune dedicata descrierii entitatii.
Aiei se declara intra rile ~i ie~irile eireuitului precum ~i tipul de date entity clcl is
vehiculate prin acestea. port (a, b, e : in std_logie;
In eazu! de fata: yout : out std_logic);
-numele entitatii este: del end clcl;
-avem 3 intrari notate a, b, e ~i 0 ie~ire notata yout; I
- toate intra rile ~i ie~irile sunt de tip std_/ogic, deci pot avea
urmatoarele stari: H L X, HiZ
Seqiune dedicata descrierii arhitecturii.
II architecture arh - 1 of clc1 is
Aiei se preeizeaza efectiv schema sau funqionarea entitatii begin
declarate anterior. - - 0 singura deQlaralie concurenta
In cazul de fata: you! <= ((not c) and (not b) and a) or
-numele arhitecturii este: arh_l; (c and (not b) and (not a» or
- asocierea arhitecturii se faee eu entitatea clel; (c and b and (not a) );
-expresia algebriea a funqiei logice este: end arh_l;
- -
yout = cb a + cb a + cba

Observatii Codu/VHDL
Seqiune dedicata includerii de libriirii library IEEE;
use IEEE. s td logic 1164. all;
Seqiune dedicata descrierii entitatii. entity clel is

(Seqiune identica cu cea din exemplul anterior).


I port (a, b, c : in std_logic;
yout : out std_logic);

rI
end clcl;
~eetiune dedicate descrierii arhitecturii.
In aceasta seqiune apar eateva modifidlri:
architecture arh 2 of clc1 is
signal s1, 52, 53: std_logic;
I
- numele arhitecturii este: arh_2 ; I begin I
- sunt declarate 3 semnale: 51, 52, s3
..
sllnt foloslte 4 declaratll concurente,
- - mai mulle declaralii concurenle
s1....- (not c) and (not b) and a, I
Semnalul din limbajui VHDL are ed echivalent fizic un fir de 52 <= C and (not b) and ( not a);
legatura. Semnalele trebuie dedarate intrearehitecture§i begin. 53 <= C and b and (not a );

5tarea loglca a le§irii !/outeste reaetualizata de fiecare data cand youl <= s1 or s2 or 53 ;
apare 0 modificare !a oricare din semnalele 51, 52, 53. end arh_2;
I Semnalele deciarate lntr-o arhiteetura sunt recunoscute numai In
I interiorul acesteia.

Observatii I CoduJVHDL
Seqiune dedicata includerii de librarii llibrary IEEE;
useIEEE.std logic 1164.sii;
entity clel is
port (a, b, c : in std_logic;
yout : outstd_logic);
end clel;
Seqiune dedicata descrierii arhitecturii. architecture arh 3 of clc1 is
- In descriere se folose~e un slngur proees denumit pt. begin -
Atribuirea unul nume pentru proces este oPtionala. p1 ; process (a, b, c)
Activarea procesului (altfel spus, lansarea In executle) se face begin
pentru orice eveniment aparut pe intrarile a, b, c. youl <= '0' ;
Se recomanda ca In proces sa existe declaratii pentru ambele if «( c='O') and ( b='O') and (a='1 '» then
valori log Ice ale ie~irii. you! <= '1' ;
Declaratiiie de tip if - then nu pot fi folosite ded3t In end if;
interiorul unui proces. if (( c='1') and (b='O') and (a;'O'» then
In lista de sensivitati a procesu!ui trebuie incluse toate youl <= '1' ;
semnalele ee apar In partea dreapta a declaratiilor din end if;
interiorul procesului. I if (( c='1') and (b='1') and (a='O'» then
Este necesar ea rezultatul evaluaril conditiel de test din yout <= '1' ;
paranteza lui if sa fie TRUE sau FALSE, de aceia se folose~te I end if;
c='O'andb='1' fli nu notcandb. end process p1;
end arh 3;
Descrierea arhiteeturii - varianta alternativa. architecture arh - 3- bis of clc1 is
o alta posibilitate de descriere a arhitecturii functiei binare voutse beain
p2 : process (a, b, c )
begin
if (
« c='O') and (b='O') and (a='1'» or
« c='1') and (b='O') and (a='O'» or
« c='1') and (b='1') and (a='O'»
) then
yout <= '1';

you! <= '0' ;


end if;
end process p2;
end arh 3 bis;

Observatii CodulVHDL
'Sieqiune dedicata includerii de librarii library IEEE;
useIEEE.std logic 1164.all;
5eqiune dedicata descrierii entitatii. entity clcl is
port (a, b, c : in std_logic;
Seqiune identidi cu cea din exemplul anterior). yout : out std_logic) ;
end clcl;
SEqiune dedicata descrierii arhiteeturii. architecture my_ clc 4 of clc1 is
- numele arhitecturii este: my_clc4; begin
utilizarea declaratiei when-else trebuie fikuta astfelindlt sa yout <= '1' when (
apara ambele valori log ice ale ie§irii; (c='O' and b='O' and c='1') or
Este necesar ca rezultatul evaluarii conditiei de test din (c='1' and b='O' and c='D') or
paranteza lui when sa fie TRUE sau FALSE, de aceia se (c='1' and b='1' and c='O'»
folose§te c='O'andb='l' §i nu notcandb. else '0'
end my clc4;

b:empluI5: Utilizarea vectorilor in descrierea funqiei /ogice yout


In limbajul VHDL, prin dedaratia vector se introduc magistraiele, fie de intrare fie de ie~ire. Spre exemplu, prin
declaratia d_out: cut std_lcgic_vector (3 downto 0); se descrie 0 magistrala de ie§ire de 4 biti In care d_o!.lt(3)
este eel mai semnificativ bit. Dupa cum se va vedea in acest exemplu, utilizarea vectorilor simpifid3 destul de mult
descrierea circuitelor digitale.
Exista mal multe modalitati de atribuire a starii logice a une! magistrale de date:
d_out < =" 1100 "; -- atribuirea tuturor bitilor din magistrala
d_out (3) <= ' 1 '; -- atribuirea unui singur bit din magistrala (bitul D3)
d_out(2 downto 1) <=" 1100 "; -- atr!buirea unei pOftiuni din magistrala (bitii D2 §! Dl)
Pentru utlizarea vectorilor In implementarea funqiei binare yout este necesar sa redenumim intrarile circuitului
combinational astfellncat acestea sa apartina unei magistrale de intrare de 3 biti.

Observatii CodulVHDL
5eqiune dedicata includerii de librarii library IEEE;
US&IEEE.std logic 1164.all;
5eqiune dedicata descrierii entitatii. entity clcl is
:, acest exemplu se folose~te un vector de intrare format din 3 I port (
-''', d_in, prin care sunt introduse cele 3 intrari aie circuitului d_in:in std_logic vector(2 downto 0);
ie. yout : outstd~logic);
- folosit urmatoarea asociere : end clcl;
djn(2) pentru intrarea a; d_in(l) pentru intrarea b;
d in () ntru intrarea c.
5eqiune dedicata descrierii arhitecturii. architecture my_ clc5 of clc1 is
begin
yout <= '1' when (
(d_in = "001") or (d_in = "100") or
(d_in = "100"»
else '0' ;
endmy clc5;
architecturemy_clc5 bis ofclc1 is
begin
p3 : process (djn )
begin
yout <= '0' ;
if (djn = "001") or(d_in = "100" jared_in = "100"»
then
yout <= 11';
else
yout <= '0' ;
end if;
Lucrarea nr. 2: Implementarea funqiilor binare cu relele de potti logice
end process p3;
_______________________ ~-_ I end my clc5 bis;

'ExempJuJ 6: Descrierea comportamentala a unui circuit logic.


Una dintre cele mai puternice facilitati oferite de VHDL 0 constituie descrierea comportamantala a unui circuit logic.
Aceasta facilitate permite proiectantului sa dezvolte sisteme log ice foarte complexe fara a fi preocupat de schema logidl
detaliata, ci doar de descrierea comportamentala de nivel inalt a respectivului circuit.
Spre exemplu, un circuit de adunare a doua numere reprezentate pe 3 biti fiecare, se poate descrie printr-o singura
declaratie de forma z < = x + y. Sarcina sintetizarii scheme logice a respectivului sumator cade in sarcina mediului software in
care se dezvolta aplicatia.

Observatii CodulVHDL
Seqiune dedicata includerii de Iibrarii -- Exemplu de CLC descris comportamental
I library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_un~igned.all;
use IEEE.std logic arith.all;
Seqiune dedicata deserier!i entitatii.
In cazul de fata: entity sum is
- nume entitate este: sum port (
- avem 2 magistrale de intrare de dlte 3 biti; x,y:in std_logic_vector(2 downto 0) ;
-0 ie~ire z pe 5 biti ; z:out std logic_vector (4 down to 0) );
- toate intrarile ~i ie~irile sunt de tip std_/ogic. end sum;
Seqiune dedicata deserieri! arhltecturii. architecture arh- sum of sum is
I begin z < = x + y;
end arh SUill;
-

A. Pentru circuitul logic cu 0 intrare ~i 0 ie~ire avand tabelul de adevar prezentat In tabelul 3 se cere:
implementarea functiei yout folosind forma canonica disjunctiva ~i un numar d~t mai redus de P0r9i
implementarea funqiei yout folosind forma canonica conjunctiva §i un numar cat mai red us de porti;
implementarea funqiei yout folosind doar porti NANDi
implementarea funqiei yout folosind doar porti NOR;

B. Pentru circuitullogic cu 3 intrari ~i 4 ie~iri ce realizeaza funqia Y=X+3 (vezi tabelull din aceasta lucrare) se cere:
implementarea funqiilor logice folosind cealalta forma canonica;
implementarea funqiilor logice folosind doar pOr9 NAND cu doua intrari (vezi tabelul 2);
implementarea funqiilor log ice folosind doar p0r9 NORi

A. Implementarea §i verificarea pe macheta de laborator cu CPLD a schemei


logice din tabelul 1.

B. Implementarea §i verificarea pe macheta de laborator cu CPLD a schemei


logice din tabelul 2.

C. Implementarea!ji verificarea pe macheta de laborator cu CPLD a schemel


logice din figura 3.

A. Pentru schema logica din tabelul 1 se cere:


o descriere In Iimbaj VHDL folosind modul de lucru din exemplu l.
o descriere in limbaj VHDL folosind modul de lucru din exemp!u 2.
Pentru fiecare caz in parte realizati 0 implementare pe macheta de laborator cu CPLD !ji verlficati daca circuitul implementat
functioneaza corect.
- tru schema lcgidi din tabelul 2 se cere:
a descriere In Iimbaj VHDL folosind modul de lucru din exemp!u 1.
a descriere In Iimbaj VHDL folosind modul de lucru din exemplu 2.
?entru fiecare caz !n parte realizati 0 implementare pe macheta de laborator cu CPLD~i verificati daca circuitul implementat
. nqioneaza corect.

ind de la tabelul de adevar al c1c-uluidin tobelul 1, se cere:


a descriere In limbaj VHDL folosind modul de lucru din exemplu 3.
a descriere in Iimbaj VHDL folosind modul de lucru din exemplu 4.
a descriere In limbaj VHDL folosind modul de lucru din exemplu 5.

Pentru fiecare caz In parte realizati 0 implementare pe macheta de laborator eu CPLD~i verifieati daca circuitul implementat
- nqioneaza corect.

>d1tru un dreuit logic combina~onal cu 5 intrari ~i 0 ie;iire, ee realizeaza funqia de vot majoritar (ie;iirea este in "1", atunei
'" 7ntrari predomina valoarea logica "1'') se cere:
tabelul de adevar redus;
programul VHDL folosind modul de lucru din exemplul 1;
verificarea programului pe macheta de laborator;

Partea a III-a: Descrierea compoTtamentalti


sind descrierea eomportamentala (similara exemplului 6), se cere descrierea ~i verificarea pe macheta de laborator a unui
'- de sumare a doua numere exprimate pe 4 biti.
=-- osind descrierea comportamentala(similara exemplului 6), se cere descrierea ;ii verificarea pe macheta de laborator a unui
~. de comparare a ooua numere exprimate pe 4 bip.

__ J fiecare aplicape este necesara deschiderea unui nou proiect dupa metodologia prezentata in seqiunea 2.2.2. a prezentei
~. de laborator.
- aplicatiile din aceasta lucrare necesita doar un singur fi;iier sursa (fie schema logica, fie sursa VHDL) ;ii un singur fi~ier de
A
ngeri .
- - r la eonectarea intrarilor ~i a ie;iirilor din circuit facem urmatoarele precizari: NET "x<O>" LOC = "P37";
/ariabilele de intrare se vor caneda la switch-urile (comutatoare cu doua pozitii) de NET "x<l>" LOC = "P40";
Je macheta de laborator. In acest mod, trecerea comutatorului de pe 0 pozitie pe NET "x<2>" LOC = "P43";
~ to echivaleaza cu schimbarea starii loglce a variabllei de intrare. Seschiderea.,
ariabilile de ie~ire se vor conecata la LED-urile de pe macheta de laborator. In NET "y<O>" LaC = "PS4";
~:::est mod, in momentul in care 0 variabila de ie~ire este in unu logic, LED-ul NET "y<l>" LOC = "P52";
:sodat lumineaza. NET "y<2>" Lac = "P50";
'- cazul aplicapilor de sumatoare sau comparatoare binare, fiecare numar de
~re respectiv ie~ire va fi reperezentat printr-un vector. Un vector de intrare NET "z<O>" Lac = "P75";
=- uie conedat la un paehet de switch-uri (un numar eorespunzator de switch-uri NET "z<l>" Lac = "P71";
:: sunt amplasate unul langa altul) iar veetorul de ie~ire va fi reprezentat pe un NET "z<2>" Lac = "P67";
et de LED-uri. NET "z<3>" Lac = "P6S";
NET "z<4>" LOC = "P62";

constrangeri pentru exemp!ul 6 este prezentat alaturat. Pentru introducerea numarului x s-au folosit primele trei
e (SW1, SW2,SW3), iar pentru y s-au folosit ultimele trei comutatoare (SW6, SW7, SW8). Afi!'i3rea rezultatzlui se
ele 5 LED-uri (LD1+LD5).

©
In prima parte a lucrarii, dupa 0 scurta prezentare teoretica referitoare la structura interna ~i la funqionarea
circuitelor decodificatoare (DCD) respectiv demultiplexoare (DMUX), se prezinta 0 metoda de utilizare a acestor circuite In
implementarea funqiilor binare.
In partea a doua se arata modul In care aceste circuite pot fi descrise in limbaj VHDL In vederea implementarii lor In
structuri de tip CPLD sau FPGA.

2. Considerente teoretice
o posibila c1asificare a circuitelor integrate digitale, din punctul de vedere al gradului de integrare, este prezentata In
tabelull.

Numarul de 0 Circuite seeven iale


MIC 512 - bistabilij
SSI Small SCale Inte ration - iatch-uri'
- registre;
MEDIU I - numaratoare;
MSI (Medium SCale Integration)

- registre mari;
>100 - memorii RAM;
>1000 - memorii RAM;

In proiectarea sistemelor digitale moderne, datorita aparitiei circuitelor realizate In tehnologie VLSI, tot mai des se
pune problema realizari de sisteme pe un singur chip (System on Chip - SeC). in acest context, studierea circuitelor
combinationale de complexitate medie pare nejustificata. Aceasta parere este gre~ita deoarece toate circuitele de compiexitate
medie se regasesc ca parti integrante, sau ca blocuri funqionale, In structura circuitelor VLSI. ~adar, cunoa~erea foarte exacta
a tuturor facilitatilor oferite de aceste circuite, ne permite fie Intelegerea funqionarii unui sistem complex realizat In tehnologie
VLSI, fie proiectarea eficienta a unui astfel de sistem.

2. 1. Decodificatorui (DCO)
Decodificatorul este un circuit combinational prevazut cu n intrari (denumite cel mai adesea intrari de seleqie) ~
2" ie~iri. Circuitul are proprietatea de a recunoa§te 0 combina~ie binara aplicata pe intrarile de seleqie prin activarea
unel singure ie~iri.
Numarul cornbinatiilor binare distincte (altfel spus, numarul de coduri) ce pot fi recunoscute de catre un DeD este
dependent de numarui intrarilor de seleqie, iar numarul combinatiilor ce sunt semnalizate depinde de numarul de ie~iri
disponibile.
In figura 1 se prezinta simboiul, schema logica de prindpiu ~i tabelul de adevar pentru un decodor cu 8 i~iri active pe
zero logic. A~dar, recunoa~erea unui cod se face prin trecerea In zero logic a unei singure i~iri (cea asodata codului respectiv)
iar restul ie~irilor se mentin In starea lor inactiva (In cazul de fata unu logic). Facem precizarea cJ exista 5i circuite DeD care au
ie5irile active pe unu logi<; schema lor interna fiind similara celei din figura 1.
Pentru a face distinqie Intre intrarile/ie~irile active pe unu ~i cele active pe zero, prin conventie internationala,
intrarile/ie~irile active pe zero sunt Insotite de un cerculet In schema logidi iar denumirea intrarilor/ie~irilor este Insotita de 0
bara similara celei de negatie ( Yout).
Printre circuitele uzuale disponibile pe piata putem enumera:
decodoare BCD/zedmal: 7442, 7445, 74141, 74145, aceste circuite prezinta patru intrari de seleqie ~i numai 10
ie~iri (active In "zero logic") din cele 16 posibile;
decodoare BCD/7segmente: 7446, 7447 circuite utilizate pentru comanda afi~jelor numerice;

2. 2. Demultiplexorul (OMUX)
Acest circuit poate fi privit ca un DCD prevazut cu 0 intrare suplimentara de validarea a funqionarii circuitului. In
consecinta un DMUX prezinta: n intrari de seleqie, 0 intrare de validare ~i 2" ie~iri.
Intrarea de validare, denumita de regula Enable, controleaza funqionarea DMUX. Pentru cazul unui DMUX cu
intrarea de validarea activa pe zero logic, a~ cum este cazul celui prezentat In figura 2, putem avea urmatoarele situatii:

daca intra rea de validare este activata, E = 0, funCtionarea demultiplexorului este identica cu a unui DeD (In
funCtie de codul aplicat pe intrarile de seleCtie se activeaza doar 0 singura ie~ire);
:a:2 . trarea de validare este neactivata, E := 1, toate ie~irile sunt fortate In starea lor inactivli, indiferent de
=:.- 'nar aplicat pe intrarile de seleqie .

.2 'edere, se poate spune ca DMUX este un DCD mai f1exibil deoarece prin intermediul intrari de validare se
--.:.r.lEfiteie de timp in care DMUX are voie sa funqioneze.
~- - nqie a unui DMUX este aceia de a distribui informatia digitala prezenta pe intrarea de validare E,
spre
:.:e ·=?ire. Este evident dl selectarea liniei de ie!iire se face prin intermediul intrarilor de seleqie. Oed, din punct
P.!!!2':!!' ~~q:i'onal, un DMUX poate fi asemiinat cu un comutator rotat/v.
::c.:-::u a demonstra aceasta ultima proprietate a unui DMUX, ce nu este evidenta la prima vedere, sa consideram ~
'eqie ale circuitului din figura 2, aplicam combinatia binara BA=Ol, ceea ce inseamna ca ie!iirea aleasa este 1.
ica a intrarii E pot exista doua situatii:
-::a:3 E := 0, drcuitul DMUX lucreaza ca un DCD !ii, datorita codului aplicat intrarilor de seleqie, se activeaza ie!iirea
=-=' =rea ~O") in timp ce restul ie~irilor raman inactive (starea logica "1");
- caca E := 1, DMUX nu este validat, deci toate ie!iirile sunt fortate in starea inactiva (starea logica "1").

celor doua situatii se observa ca starea logica a ie!iirii selectate, in cazul de fat1l 1, este identica cu starea logica a
- - :i2 validare E. CU alte cuvinte putem afirma ca informa~iadigitala prezentii pe intra rea E este transmisa
- -) spre 0 ie,ire indicatii de codul aplicat illtrarilor de seleqie.

C B A

Intrari de
seleG!ie
&&&

C B A 0 1" 2 3 4 5' is ::;


0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0

Schema logica
B A E

Simbol
=.'lirare de E B A 0 1 2 3
;'2iidare E D~,rux 1:4 0 0 0 0 1 1 1
::-etrari de B Y274LS139 0 0 1 1 0 1 1
selecfie A B B A A
0 1 0 1 1 0 1
0 1 1 1 1 1 0

1 ;IE 1 1 1 1
Ie~iri *
2.3. Exemple de DCD/DMUX realizate in structuri integrate
In aceasta seqiune sunt prezentate cateva circuite uyuale realizate in structuri integrate.

ObselVa if 5imbol
Circuitul 74LS138 74lS138.
- circuitul prezinta:
- 8 ie~iri de date active pe zero logic; e YO
81
- 3 intrari de validare (doua active pe zero logic iar a treia pe unu logic); 4 Y1
G2A
5 Y2
pentru acest circuit activarea unei ie~iri se poate face numai daca simultan sunt G2B
-- -- Y3
indeplinite conditiile: G1A=1, G2A =0 ~i G2B= 0;
Y4
A
- la intrarea A trebuie aplicat cel mai pupn semnificativ bit din (odul de seleqie; :; Y5
B
- 0 alta posibilitate de notare a intrarilor de seteqie este urmatoarea: AO=A, Al=B, <l Y6
A2=C; C
Y7

Circuitul 74lS139 (2 x DMUX1:4) 74 LS 139


- circuitul integrat contine 2 circuite DMUX 1:4 cu ie~iri active pe zero logic;
- cele 2 drcuite DMUX sunt complet separate; .. 1G
pentru primul circuit DMUX avem:
iG intrarea de validare/intrarea de date, activa pe zero logic; I 2 1A
1~ lA intrarile de seleqie; ~
3 18
- lYO, IY], lY2, lY3 ie~irile de date ale demultiplexorului, active pe zero I
logic; I
pentru al doilea circuit DMUX avem: ~2G
- 2G intra rea de validare/intrarea de date, activa pe zero logic;
2~ 2A intrarile de seleqie; 14 2A
2YO, 2n, 2Y2, 2Y3 ie~irile de date ale demultiplexorului, active pe zero 13 28
logic;
Circuitul74LS442 (decodificator zecimal)
- circuitul prezinta 4 intrari de seleqie ( A pentru cel mai pupn semnificativ bit iar D
pentru cel mai semnificativ bit al codului de seleqie);
- din punct de vedere teoretic, cu 4 intrari de seleqie avem posibilitatea de a
comanda 16 ie~iri;
- din punct de vedere practic, in circuitul 7442, sunt imp!ementate doar primete 10
ie~iri;
pentru coduri de seleqie mal mari de 1001, toate i~irile sunt in starea lor inactiva
(zero logic); 15
A
14
6
13
C
12
D

2. 4. Utilizarea DeD in implementarea funetiilor binare


Analizand schema logidi a unui decodificator se observa ca aceasta este organizata pe doua nive!e:
un nivel de inversoare pentru calcului complementelor variabilelor de intrare;
un nivel de NAND-uri (dadi ie~irile decodificatorului sunt active pe zero logic) sau un nivel de AND-uri (
ie~irile decodificatorului sunt active pe unu logic).
In ipoteza ca pe intra rile de seleqie ale unui decodificator binar se aplidi variabilele unei funqii binare, la i ,- ='
acestuia se vor regasi fie mintermenii respectivei funqii (dadi DeD are ie~iri active pe unu logic) fie complel11€>-
mintermenilor (daca DCD are ie~iri active pe zero logic).
Daca variabilele funqiei sunt conectate la intrarile de seleqie cu respectarea ponderilor, atunci numerotarea i _- -
DCD-ului va fi identica cu numerotarea mintermenilor (mo este disponibilla ie~irea 0, mt este disponibil la ie~irea 1, ... ).
A$adar, utilizarea DCD-ul este avantajoasa acolo unde este nevoie de implementarea mal multor tunC/ii binafE ~
depind de acelea~i variablle de intrare deoarece, mintermenii se calculeaza 0 singura data ~ipot fi utillzap pentru fiecare tu. _

Regulile de conectare sunt urmatoarele:


daca in tabelul de adevar funqia este definita cu mai putine stari de "1" decat stari de "0", atunci yom utiliza un •
conectand la intrarile lui mintermenii marcap cu "1";
dadi in tabelul de adevar funqia este definita cu mai pupne stari de "0" decat stari de "1", atund yom utiliza un
conectand la intrarile lui mintermenii marcati cu "0".
Lucrarea nr. 3: Implementarea funqiilor binare folosind DCD/DMUX

Pentru 0 intelegere mai buna a modului de utilizare a unui DCD in implementarea funqiilor binare, in cele ce urmeaza
Iifica modui de conectare a i~irilor DCD in funqie de tabeful de adevar al funqiei ce trebuie implementate. ca
_ se considera funqia Fdata prin tabelul de adevar a!aturat.

u 1: Se cere implementarea func]iei folosind un DCD cu ie$ri active pe unu logic; .x2 .xl .xo F
DCD-ul are ie~irile active pe unu logic lnseamna ca la ie~irile sale vom obJine mintermenii funqiei. 0 0 0 0
--=---J czolvarea acestei probleme vom scrie func]ia F folosind formele canonice, dupa care, acestea vor fi 0 0 1 0

~
te pana la punerea in eVidenpj a mintermenilor.

'orma canonica a funcJiei Fare expresia:


0
0
I 0
1 I
1 0 0 0
I~
1 0 I 1
.:>.xol = Imms
=!x,x1x,xol
F
I~
2 21 (1) I I 0
I I I
Relatia (1) conduce la 0 schema de implementare a funqiei F ca cea din figura 3.a)

(Ol mo ;;:;0
, ;;:;,

X2 C
2
3
4
::~
m3 ;
)(2 C
-
m2~
m4
~3 JJ

F

::;l 1: I
x, m4: F=li2~,iol x, m5 .
B 5 2 X B
Xo A 6 "0 A m6: =-=
7 2 I'XO in I F= Im21 =m2 m6
1: m5
:: F= ms ,
! : .-

X2 X, Xo F .· , X2 X, Xo F

: ·
0 0 0 0 0 0 0 0
,
0
0
0
1
1
0
o
1 -----------~ · 0
0
0
1
1
0
o
1 ----.------~
:
0 1 1 0
· G 1 1 0
1
1
0
0
0
1
G
1 -------------~ · 1
1
0
0
0
1
0
1 ••••••• -.----
1
1
1
1 ,
0 0
0
1
1
1
1
0
1
0
0

"I bl
Fig. 3. Implementarea funqiei F folosind circuite DCD

ExempJu 2: Se cere implementarea func]iei folosind un DCD cu iE5iri active pe zero logic;
Jeoarece DCD-ul are ie~irile active pe zero logic lnseamna ca
la ie~iriie sale vom obtine complementul mintermenii func]iei.
::Jentrurezolvarea acestei probleme vom serie functia F folosind formele eanoniee, dupa care, acestea vor fi prelucrate pana la
~Jnerea In evidenta a eomplementelor mintemlenilor.

Este cunoscut faptul ca un DMUX poate fi transformat u~or in DCD prin mentinerea permanenta a intrarii de validare
• starea sa activit Toate precizarile fikute la utilizarea DCD in implementarea funqiilor binare raman valabile.

Observatii CodulVHDL
3e::tiune dedicata includerii de librarii library IEEE;
useIEEE.std logic 1164.all;
entity bCd_zec is
port (
Obs.: elementele unui vector pot fi declarate in ordine bed : In std logic vector (3 downto 0) ;
=esrresdltoare (cawl intrarii bed) sau in ordine cresdltoare zec : outstd_logi~_vector(O tog));
=1 ie~irii zec). end bed zec;
5eoiune dedicata descrierii arhitecturii. architecture dec arh of bed zec is
begin
In cazul de fata: - P1: process (bcd)
-numele amitecturii este: dee_arh; begin
- arhitectura se asociaza cu entitatea bcd_zee; casebcd is
- procesul Pl, este sensibilia codul de intrare bed; when "0000" => zec <= "1000000000";
- descrierea este corecta deoarece se face 0 singura atribuire when "0001" => zec <= "0100000000";
pentru ie~irea zee; when "0010" => zec <= "0010000000";
- ie~irile sunt active pe unu logic; when "0011" => zec <= "0001000000";
when "0100" => zec <= "0000100000";
when "0101" => zec <= "0000010000";
when "OlIO" => zec <= "0000001000";
when "0111" => zec <= "0000000100";
when" 1000" => zec <= "0000000010";
I when "1001" => zec <= "0000000001";
when others => zec <= "0000000000";
end case;
end process P1 ;
I end dec arh;

Observatii CodulVHDL
Seqiune dedicata includerii de Iibrarii library IEEE;
use IEEE. std logic 1164.all;
Seqiune dedicata descrierii entitatii. entity dmux_ A is
In cazul de fata: port (
- nume entitate este: dmux_A code in :In std_logic_vector (2 downto 0);
- intrarile de seleqie sunt introduse prin: eodejn; En:!n std_logic;
- ie~irea de date este notata Yout; Yout:outstd_logic_vector(7 downto 0) ) ;
- intrarea de validare este declarata: En. end dmux A;
Seqiune dedicata descrierii arhitecturii. architecture dmux_arh of dmux_A is
begin
Observafii referitoare la proeese: P1: process (code_in, En)
- Un proces este parcurs pentru orice schimbare de stare begin
logica aparuta la oricare variabila din Iista de senzitivitatii if (En='O') then
I- Declaratiile din corpul procesului sunt parcurse una dupa Yout <= (others => '0') ;
alta (executie seatentiala) ~i nu in parale!; else
I case code in is
In cazui de fata: when "000" => Yout <= "00000001";
- descrierea funqionarii se face cu procesul PI, ce are 7n Iista when "001" => Yout <= "00000010";
de senzitivitati toate intrarile DMUX; when "010" => Yout <= "00000100";
- procesul este parcurs la fiecare modificare aparuta pe when "011" => Yout <= "00001000";
oricare intrare a DMUX; when "100" => Yout <= "00010000";
- intrarea de validare ~i ie~irile sunt active pe unu logic; when "101" => Yout <= "00100000";
-declaratia ease este parcursa doar daca E=li when "110" => Yout <= "01000000";
when "Ill" => ¥out <= "10000000";
when others => ¥out <= "00000000";
I end case;
I end if;
end process;
I i end dmux arh;

~Exemp!uI5: Sumatorpe 2 bifi cu afi~rea rezultatuluipe un digit cu 7segmente

In acest exemplu se descrie un CLC care realizeaza sumarea a doi operanzi, fiecare fiind exprimat pe 2 biti. Rezultatul se
afi~aza pe un digit cu 7 segmente. Deoarece cel mai mare numar pe 2 biti este 3, rezultatul maxim al operatiei de adunare
este 6, deci poate fi afi~t pe un singur digit.

I Observatii CodulVHDL
! Seqiune dedicata ineluderii de librarii library IEEE;
use IEEE. std_logic_1164. all;
use IEEE. std_logic_unsigned. all;
use IEEE.std logic arith.all;
Seqiune dedicata descrierii entitatii. I entity S tun2 is
In cazul de fata: port( d activare: out std logic;
-avem doua intrari de 2 biti: x, y; x,y:instd_logic_vector(l downtoO};
-0 ie~ire pe 7 biti pentru comanda segmentelor afi~ajului afis ;
- 0 ie~ire pentru camanda catodului comun al afi~jului d_afis,
I
0);
afis :out std logic
--
vector (6 downto

1 end stun2;
architecture arh sum2 of sum2 is
signal sum a : std logic vector (3 downto
=-"::c:uIii este: arh_sum2; 0); --
= ::r-recturii se face cu entitatea 5um2; begin
e numai declaraiii concurente (pentru suma < = x + y;
mare, pentru activare afi~j, pentru decodificare d_aclivare < = '1';
with suma select
afis<= "1000000" when "0000", --0
"1111001" when "0001", --1
::::e:crO::-;J_-:concurenta
este executata pentru oriee modificare "0100100" when "0010", --2
~ 'ca a semnalelor implicate in ea, deci sum este "0110000" when "0011", --3
,,;:=.0::::-::_ pentru orice modificare aparuta pe xsau pe y; "0011001" when "0100", --4
"0010010" when "0101", --5
"0000010" when "0110", -6
"1111000"when "0111", --7
"0000000" when "1000", -8
"0010000"when "1001", -9
"1111111" when others; --aile siluatii
end arh sum2;
- - constrangeri NET "d_activare" LOC = "P70";
I se afi~eaza pe primul digit al machetei (prima Iinie din NET "afis<O>" LOC = "P39";
e constrangeri); NET "afis<l>" LaC = "P41";
rele 7 Iinii sunt pentru comanda segmentelor digitului; NET "afis<2>" Lac = "P44";
rea operandului xse face prin SWl ~i SW2; NET "afis<3>" Lac = "P46";
>===c.!Celreaoperandului xse face prin SW7 ~i SW8; NET "afis<4>" Lac = "P48";
NET "afis<5>" LOC = "PS1";
NET "afis<6>" Lac = "PS3";
NET "x<l>" LOC = "P37";
NET "x<O>" LOC = "P40";
NET "y<l>" Lac = "PS2";
NET" <0>" LOC = "PS4",

~=3itor la circuitul decadificator din figura 1, raspundeti la urmatoarele intrebari:


_ a canonica a fast folosita in proiectarea
sa ?
5= JOate modi fica schema logica pentru a obtine un circuit cu ie~irile active pe 1 logic? Cum?
-=- '"mp se mentine activa 0 ie~ire ?
:a:a C=O, B=O ~iA=l, (Xldul perceput de circuit este 001 sau 100? ce i~ire se activeaza in acest caz?
:<: succesiune de coduri trebuie aplicate pe intrarile de seleqie daca dorim activarea ie~irilor in ordinea: 3,5,7, 9?

- rru un circuit decodificator BCD-zecimal, spre exemplu circuitul


--l.S442, se cere desenarea corelata 7n timp a semnalelor de ie~ire
::a:a pe intrarile de seleqie sunt aplicate semnalele din Figura
: -. rata in ordinea:

_ 1 -4 A, Q2 -4 B, Q3 -4 c, Q4 -4 D ;
- ) -4 D, Q2 -4 C, Q3 -4 B, Q4 -4 A ;

fQb D /2345571
- crieti tabeiul de adevar pentru un decodificator cu 4 intrari !ji 7 ie~iri
JeStinat comenzii unui afi!jaj numeric. Intrarile sunt notate prin
x:a4, iar ie!jirile a bed e f g. Ie~irile sunt active pe unu logic (unu
ic = segment aprins).
-a.beiu! trebuie realizat
: turata.
astfel lncat cifrele sa arate ca In figura e&/c B!3RbCdE F I
Fig. 5

Studiul circuitelor demultiplexoare (DMUX).


eferitor la circuitul decodificator din figura 2, raspundeti la urmatoarele intrebari:
5e poate modi fica schema logica pentru a obtine un circuit cu i~irile active pe 1 logic? Cum?
Jac3 E = 0, B=O ~iA=1, codul perceput de drcuit este 01 sau 10? Ce i~ire se activeaza in acest caz?
care sunt cele doua moduri In care se poate face dezactivarea unei ie~iri ?
Ce succesiune de coduri trebuie aplicate pe intra rile de seleqie daca dorim
X X, X, X0 Y3 Y, Y, Yo yl
activarea ie~irilor In ordinea: 1, 3, 2, O? 0 0 0 0 0 0 1 I 1/
o I~
B. care este modul de conectare al unui decodificator zecimal, spre exemplu
circuitul 74LS442, pentru a obtlne 0 funqionare similara unui DUX 1:8 ? I~3
0
0
0
0
1
I
I
0
I
0 0
0
0
1
1
0
0
1
I 15
o 161
I

4.3. Implementarea funqiilor binare cu DCD. 4 I 0 0 0 0 0


I II
A. Folosind un DCD cu ie~iri active pe zero logic ~i porti log ice cu numar cat
5 1 0 1 ] 0 0 018
mai mic de intrari (vezi exemplul 2), se cere implementarea unui circuit 6 1 ] 0 ] 0 0
1 191
logic cu 3 intrari ~i 4 ie~iri avand tabelul de adevar din fig. 6; 7 I I ) 0 0 1 o 2
Fig. 6
4.4. Utilizarea ISE Web Pack pentru descrierea aplicatiilor sub forma
de scheme logice

A. Folosind facilitatea mediului de dezvoltare ISE Web Pack, prin care se permite descrierea sistemelor digitale prin intermediul
schemelor log ice, se cere:
Implementarea ~i verificarea pe macheta de laborator cu CPLD a schemei de DCD din Figura l.
Implementarea ~i verificarea pe macheta de laborator cu CPLD a schemei de DMUX din Figura 2.
Implementarea ~i verificarea pe macheta de laborator cu CPLD a schemelor logice din exemplul 2.

Mod de lucru: Se fofosesc indicapife de fa sfaf5ituffucrarii.

A. Tinand cont de descriereile VHDL prezentate In exemplele anterioare, se cere codul VHDL Si implementarea pe macheta de
laborator pentru:
Un decodificator zecimal cu ie~iri active pe zero logic;
Un DMUX 1:8;
Dupa implementare, verificati ca starea logidi a intrarii de date selectate este transmisa ~i la iesirea circuitului.

B. Implementap pe macheta de laborator cu CPLO sumatorul pe 2 biti prezentat in exemplul S.


t

C. Adaptati metoda de descriere a unui decodificator (exemplul 3), pentru implementarea decodificatorului BCD-7 segmente de
la pUilctul 4.1.C. din desrasurarea lucrarii.

D. Realizati 0 descriere In limbaj VHDL ~i implementap pe macheta cu CPLD, un circuit de transcodare pe 4 biti care sa faca
trecerea de la coul binar natural la codul Gray.

Pentru fiecare aplicatie este necesara deschiderea unui nou proiect dupa metodologia prezentata lntr-o lucrare de laborator
anterioara. Toate aplicatiile din aceasta lucrare necesita doar un singur fisier sursa (fie schema logica, fie sursa VHDL) Si un
singur fi~ier de constrimgeri .

Referitor la conectarea intrarilor ~i a iesirilor din circuit facem urmatoarele precizari: NET "x<O>" LOC = "P37";
- Intdlrile de seleqie ~i cele de date se vor conecta la switch-urile (comutatoare cu doua NET "x<l>" LOC = "P40";
pozitii) de pe macheta de laborator. In acest mod, trecerea comutatorului de pe a pozitie NET "x<2>" LOC = "P43";
pe alata echivaleaza eu schimbarea starii logice a variabilei de intrare.
Variabilile de jesire se vor conecata la LED-urile de pe macheta de laborator. In acest NET "y<O>" LOC "PS4"; =
mod, in momentulln care 0 variabila de ie;;ire este In unu logic, LED-ul asocjat lumineaza. NET "y<l>" LOC = "P52";
In cazul aplicatiei de sumare fiecare numar de intrare respectiv ie;;ire va fi reperezentat NET "y<2>" LOC = "PSO";
printr-un vector. Un vector de intrare trebuie conectat la un pachet de switch-uri (un
numar corespunzator de switch-uri ce sunt amplasate unul langa altul) jar vectorul de NET "z<O>" LOC = "P75";
iesire va fi reprezentat pe un pachet de LED-uri. NET "z<l>" LOC = "P?!";
Fi;;ierul de constrangeri pentru exemplul 3 este prezentat alaturat. Pentru introducerea NET "z<2>" LOC = "P67";
numarului x s-au folosit primele trei comutatoare (5W1, SW2, SW3), iar pentru y s-au NET "z<3>" LOC = "P65";
folosit ultimele trei comutatoare (5W6, SW7, SW8). Afisarea rezultatzlui se face pe NET "z<4>" LOC = "P62";
primele S LED-uri (LD1-;.LDS).

©
In partea teoretica se pune accent pe cunoa~terea multiplexorului (simbol, structura intema, tabel de adevar) ~i
lntelegerea modului de utilizare a multiplexorului In implementarea functiilor binare.
In partea aplicativa se urmare~te fixarea deprinderilor acumulate In lucrarile anterioare, privind dezvoltarea aplicatiilor
cu structuri logice programabile de tip CPLD, fie pe baza schemelor logice, fie folosind limbajul VHDL.

Realizarea funqiilor binare numai cu ajutorul portilor logice este, de cele mai multe ori, greoaie ~i implidi un efort
mare de calcul In vederea simplificarii - mai ales cand numarul variabilelor de intrare este mare. 0 solutie mai buna consta In
utilizarea circuitelor de complexitate medie, In special a multiplexoarelor (MUX), a decodificatoarelor (DCD) sau a
demultiplexoarelor DMUX.

2.1. Circuitul multiplexor (MUX)


Multiplexorul este un circuit logic combinational prevazut cu: n intrari de selectie, 2" intrari de date ~i 0 singura ie~ire
de date. Prin intermecljul unui cuvfmt de cod de n biti (adresa de selectie), multiplexorul conecteaza la ie~irea de date una din
intrarHe sale de date. Funqicnarea acestu! circuit peate fi asemanata cu cea a unui comutator rotatlv cu mat mu!te pozi~j de
intrare, a~ cum se prezinta In figura 1.b. Intrarea de validare E, permite validarea funqionarii (E =0) sau blocarea functionarii
(E =1) circuitului.

Intrari de date
Intrari de B A E Jntrare de
In!ra.re de selecjie I validare
validare
E B A Y
Intra..ri de B 0 0 0 Y=lo
selec\ie A 0 0 1 Y=ll
Intrari
le~ire 0 1 0 Y=12
de date B B A A
a) Simbol 0 1 1 Y=l.
10 Tabelu1 de a.devar

II
IO~-+--0
It
12
I ~ Y
_2 \ Ie~ire
13 -+----0
13
b) Schema echivalenli ./

"-
2.2. Exemple de multiplexoare realizate in structuri integrate

Observa ii Simbol
Circuitul 74LS157 (4xMUX2:1) 74LS157
- circuitul contine 4 multiplexoare de tip MUX 2:1;
15
- toate multiplexoarele folosesc aceia~i intrare de seleqie (5), respectiv aceia~i G
intrare de validare G ; S
- datorita modului de conectare, multiplexoarele nu pot fi comandate separat; 2
1A 4
- modul de conectare a celor 4 multiplexoare din capsula 74L5157 este prezentat In :3 1Y
figura de mai jos: 18
5
1A 18 2A 7
1; 2Y
28
4 11
MUX 3A 9
2:1 10 3Y
3B
-i4
4A !2
13 4Y
lY 2Y 3Y 48
Intrarea G este foiosita pentru validarea functionarii multiplexoarelor:
- daca G =0, funqionarea multiplexoarelor este validata (permisa);
daca G =1, ie~irile multiplexoarelor nu se modifica indiferent de starea logica
a celorlalte intrari'
Circuitul74LS153 (2xMUX4:1)
- drcuitul contine 2 multiplexoare de tip MUX 4: 1;
- cele doua multiplexoarele folosesc in comun intrarile de seleqie; 1.1 A
- datorita modului de conectare, multiplexoarele nu pot fi comandate separat;
- intrarile de validare sunt separate;
- modul de conectare a multiplexoarelor din capsuia 74LS153 este prezentat in
Figura de mai jos: ::;~o
" 1C1

~
15
4 1C2
;:; 1C3
2G
10 2CO
11 2C1
1Y 2Y 12 2C2
- intrarea de seleqie cu ponderea cea mai mica este A, iar intra rea de seleqie cu 13 2C3
ponderea cea mai mare este B;
Circuitul 74LS151 (MUX8:i) 74LS 151
- circuitul contine un multiplexor de tip MUX4: 1;
- pe langa ie;irea Y specifica fiec1irui MUX, capsula 74LS151 ne ofera ~i
complementul acesteia
intiCiiea de seleetie cu pondeiea cea mal mica este AI iar intiarea de seleqie cu
ponderea cea mai mare este C;
~EN
' A
10' B
I
'3
C
.; f5
DO y
3
01
2 6
D2 Y
03
~5
D4
14
D5

.
13

.:
D6
D7

2. 3. Utilizarea MUX in implementarea func!;iilor binare


Daca implementam 0 funqie logldl direct dupa prima forma canonica (fara a face nici 0 simplificare), obtinem 0
schema logidi structurata pe trei nivele:
primul nivel este format din inversoare ;i este foiosit pentru calculul complementelor variabilelor de intrare;
nivelul doi este format din porti AND ~i este folosit pentru calculul mintermenilor funqiei (reamintim c1\ nu
trebuie calculati toti mintermeni, este suficient sa calculam doar pe aceia pentru care funqia are valoarea "1");
nivelul trei este format dintr-o singura poarta OR pentru a realiza sumarea mintermenilor.

Daca analizam structura interna a unui multiplexor; (vezi lucrarea anterioara), gasim 0 arhitectura similara cu cea
rezultata in urma implernentarii dupa prima forma canonica. Diferente apar pe nivelul dol: exista cate 0 poarta AND pentru
fiecare mintermen, in plus, fiecare poarta de pe acest nivel are 0 intrare suplimentara ce se constituie in intra rea de date a MUX.
Datorita acestor asemanari structurale a apikut destul de repede ideea ca multiplexorul se poate folosi in
implementarea de funqii binare. Intuitiv ne dam seama ca pe intrarile de seleqie trebuie conectate variabilele funqiei ce trebuie
implementate iar pe intrarile de date valorile funqiei. In funqie de raportul dintre numarul de variabile ale funqiei binare ~
numarul de intrari de seleqie ale MUX pot exista urmatoarele situat!i:
A. Numarul intrarilor de seleqie este egal cu numarul variabilelor funqiei. In acest caz, implementare
funqlei binare se face fara efort de minimizare ;i nu mai necesita nici un alt circuit suplimentar. Daca conectarea
variabllelor funqiel 121 intra rile de seleqle se face cu respectarea ponderilor, (Xo --7 A, XI --7 S, ...), nu trebuie sa
facem altceva decat sa copiem valorile funqiei din tabelul de adevar pe intrarile de date ale MUX.
B. Numarul intrarilor de seleqie este mai mic decat numarul variabilelor funqiei. In acest caz, 0 parte
din variabile!e funqiei for fi folosite pentru comanda intrarilor de seleqie iar restul vor intra in calculul unor
subfunqii binare ce se vor aplica 121 intrarile de date ale MUX. Daca numarul variabilelor funqiei, x, este mai
mare cu p fata de numarul n 211 intrarilor de seleqie ale MUX, atunci trebuiesc calculate Z n funqii logice de p =
x - n variabile. Calculu! celor n subfunqii binare necesita clrcuite suplimentare pe langa MUX ;i necesita ~i un
oarecare efort de simplificare. Oricum, cele n subfunqii sunt mult mai u;or de implementat decat funqia init!ala
deoarece au un numar muit mai mic de variabile de intrare.
Lucrarea nr. 4: Implementarea funepilor binare folosind NUX

C. Numarul intrarilor de seleqie este mai mare deeat numarul variabilelor functiei. Aceasta situatie
corespunde unei utilizari neeficiente a MUX ~i AU prezinta un interes prea mare din punct de vedere practic.
Totu~i, daca Intr-un anume context suntem fortap sa folosim a~ ceva, se procedeaza astfel: variabi!ele funqiei
se conecteaza fa intrarile de seleqie cu respectarea ponderilor; intrarile de seleqie nefolosite se conecteaza ia
masa; pe intrarile de date se copiaza valorile funqiei; intrarile de date nefolosite se conecteaza la masa.

Pentru 0 Intelegere mai buna a modului de utilizare a MUX-ului in implementarea funqiilor binare x, X, Xc F
sunt prezentate doua exemple considerand ca avem de implementat 0 funqie binara de trei varia bile ce 0 0 0 0
este data prin tabelul de adevar alaturat. 0 0 1 1
0 1 0 1
Exemplul1: se cere implementiirea functiei F foiosind un circuit NUX 8:1
1 0
0
Deoarece un NUX8:1 are trei intrari de seleepe se constata ca suntem intr-o situape fericita in 1 0 0 1

care numarul intrarilor de seleq;e este egal cu eel al variabilelor funcpei. 1 0 1 1


Conectarea variabilelor funq;ei la intrarile de selecJje cu respectare ponderilor presupune 1 1 0 0
urmatoarele conexiuni: Xo = A, Xl =~ Xz = C 1 1 1 1

Din prelucrarea primei forme canonice (forma disjunctMi) a funepei ~ se obpne relapa (1). Relapa (2) nu este altceva
decat funqia de transfer a multiplexorului 8:1.

O~Z~IXO IOSo 110~~A 1080


. 1- - I 1 XZxjXO i 1 SI 1]C B A II 81

I~2XI~ol ~ZXJ~OI 1 XZxjXo i I Sz 11z _CB A lz8z


F=i::~:~:.= ~XZ~j~O.JOXzXhIJOS31 (1) v= 13 CBA 1 38 3

XZxIXO
A XZ~j-'O
1 XZxJXO
-11 x x Xo 1-11I S41
2
_
j ' 114 C_BA 1484
1 XZXjXO 11 Ss II I; C B A 15 8;
XZxjXO I1 XZxIXO 1
IOxzxlxo
-
O~6
~
1,16CBA
18
66
1 87
jl XZxJXo I 11 S7 17CBA 1 7

Din compararea relajiilor (1) $i (2J prin identificare, rezuJta: 10 =~ 11 =1, Iz =1, 13 =~ 14 =1, 1;.=1, h =0, 17 =1.
Schema de conectare a NUX 8:1 pentru a realizarea funqiei cerute se prezinta in figura 2.a.
Conectarea variabilelor funepei la intrarile de selec]ie in ordinea ponderilor u$ureaza modul de amplasare a valorilor
funepei ia intrarile de date: valoare funepei pentru combinapa 0 se conecteaza la fa, valoare func]iei pentru combinaJia 1 Sf:
conecteaza la Ii, etc.

Atenfje: Conectarea fara respeaarea ponderilor nu este interzisa in~ in astfe! de situap~ modul de conectarea a! valonior
funqiei la intrarile de date este cu totul altul.

Deoarece un NUX 4:1 are doua intrari de seleepe se constatJ di numarul intrarilor de seleepe este mai mic cu 0
unitate decat numarul de vatiabile ale funepei F.
Pentru astfel de cazur~ in mod arbitrar se aleg dOl/a variabile ale funcJiei pentru comanda intrarilor de seleqie ale
multiplexorului. in cazul de fati alege urmatoarea lIarianta: X2 = A, XO = B.
Prelucrarea primei forme canonice (forma disjunctiva) a funqiei F, se face in concordantJ cu alegerea deja facutJ $i
necesita 0 succesiune de cateva etape:
scrierea primei forme canonice dupa tipicul deja cunoscut;
rearanjarea variabilelor funepei in produse dupa ponderea intrarilor de seleepe pe care Ie comanda (in cazul
nostru, Xo trebuie sa apara pe prima poziJie, X2 pe poziJia a doua dupa care vin restul de variabile);
se dau factori comuni toate combinapile posibile ale variabilelor ce comanda intra rile de seleepe (in cazul nostru,
toate combinapile posibile ale variabilelor Xo Xz );
rezultatul acestor prelucrJri efectuate asupra formei canonice se compara cu funepa de transfer a MUX-ului
folosit $i de deduc expresiile logke ale subfunepilor ce trebuie conectate la intrarile de date ale NUX (in cazu! de
faJJ se campara relaliile 3 $i 4).
Lucrarea or. 4: Implementarea funC/iilor binare folosind NUX

C. Numarul intrarilor de seleqie este mai mare decal: numarul variabilelor funetiei. Aceasta situatie
corespunde unei utiliziki neeficiente a MUX ~i nu prezinta un interes prea mare din punct de vedere practic.
Totu~i, daca intr-un anume context suntem fortati sa folosim a§a ceva, se procedeaza astfel: variabilele funqiei
se conecteazil la intrarile de seleqie cu respectarea ponderiior; intrarile de seleqie nefolosite se conecteaza la
masa; pe intra rile de date se copiaza valorile funqiei; intrarile de date nefolosite se conecteaza la masa.

Pentru 0 intelegere mai buna a modului de utilizare a MUX-ului in implementarea funqiilor binare ~~
sunt prezentate doua exemple considergmd ca avem de implementat 0 funqie binara de trei varia bile ce o 0 0 I0
este data prin tabelul de adevar alaturat. o 0 1 I1
o 1 0 I

Exemplull: se cere implementarea funqiei F folosind un circuit MUX8:1


o 1 0
Deoarece un NUX8:1 are trei intrari de seleetie se constata ca suntem lntr-o situaJie fericita In 1 0 0 1
care numarul intrarilor de seleetie este egal eu eel al variabilelor funetie/. 1 0 1 1
Coneetarea variabilelor funcjiei la intrarile de selee]ie eu respectare ponderilor presupune
urmatoarele eonexiuni: Xo =-A, Xl =-8, X2 =- C ~~~Il
Din preluerarea primei forme eanoniee (forma disjunctiva) a funcjiei ~ se obpne relapa (1). RelaJia (2) nu este alteeva
deDit funetia de transfer a multiplexorului 8:1.

1
0 x xX
2 j O 1
0
So I I10 ~ ~ A 110So I

I 1 ~2Xj~0 11 Sj I CB A
j I S I
1 1
S2 112 ~BA 11~S21 I (2)
IJ
X2XjXO 1
_I 1 OX2XjXO 0 S3 (1) v= I) CBA = 1) S3

-IIIX2~lXol-lS41 • i14CBA 114S41


1 x2xjXo 1 S5 I 15 C B A 15 S5
0 X2Xj XO 0 S61 16 C B A 16 S6 I
1
lx2xjXoIIIS7 I7CBA I7S7
Din compararea relatiilor (1) 5i (2), prin identificare, rezultJ: 10 =-0, 11 =-1, 12 =-1, 13 =-a 14 =-1, Is =1, h =-a 17 =-1.
Schema de conectare a NUX 8:1 pentru a realizarea funC/iei cerute se prezinta In figura 2.a.
Conectarea variabilelor funcjiei la intdirile de seleqie In ordinea ponderilor u5ureaza modul de amplasare a valorilor
funetiei ia intrarile de date: valoare funC/iei pentru cambinapa 0 se eonecteaza la 10, valoare funeJiei pentru combinajia 1 se
eonecteaza la Ii, etc.

Atentie: Conectarea fara respectarea ponderilor nu este interzisa lnsJ; In astfel de situaJi~ modul de conectarea al valorilor
funetiei la intr/kite de date este eu totul a/tul.

Deoarece un NUX 4:1 are doua intrari de seleqie se constata di numarul intrarilor de selecjie este mai mie eu 0
unitate decat numarul de vaJiabite ale funcjiei F.
Pentru astfel de cazur~ In mod arbitrar se aleg doua variabile ale funeJiei pentru comanda intrarilor de seleetie ale
multiplexorului. in cazul de Fa/a alege urmatoarea lIariantii: X2 =: A, XO =: B.
Prelucrarea primei forme canonice (forma disjunct/va) a funetiei F, se face In concordanta eu alegerea deja faeuta 5i
neeesita 0 sueeesiune de cateva etape:
scrierea primei forme canonice dupa tipieul deja cunoscut;
rearanjarea variabile/or funetiei In produse dupa ponderea intdirilor de selecjie pe care Ie eomanda (fn cazul
nostru, Xo trebuie sa apara pe prima poziJie, X2 pe poziJia a doua dupa care vin restul de variabile);
se dau factori comuni toate combinapile posibile ale variabilelor ce comanda intrarile de se/eC/ie (fn eazul nostru,
toate combinapile posibile ale variabilelor Xo X2 );
rezultatul acestor prelucrari efectuate asupra formei canonice se compara cu funcjia de transfer a NUX-u/ui
folosit 5i de deduc expresiile logice ale subfuncjiilor ce trebuie conectate la intrarile de date ale NUX (fn cazul de
faJa se campara relaJiile 3 5i 4).

~2Xl~ol
X2X\XO

F= X2X\XO
Itl"
110"

10 II 12131415 16 17
C
B
A

~ ~
Rg. 2. Variante de implementare ale funqiei F folosind multiplexoare de tip MUX8: 1 respectiv MUX4:1.

• Concluzie
Multiplexorul poate fi pnvit ca un circuit universal pentru implementare funqiilor logice dar prezinta inconvenientul ca
mintermenii (calculati la nivelul portilor'AND) nu pot fi utilizap decat 0 singura data. In consecinta, MUX-ul nu se preteaza pentru
implementarea mai multor funqii binare de acelea~i variabile deoarece nu exista posibilitatea ca mintermenii calculati pentru a
funqie sa fie utilizati ~i de celelalte funqii.

Dupa cum este deja cunoscut, limbajul VHDL permite a descriere foarte u~oara a funqionarii unui circuitjsistem logic.
Reamintim ca iimbajui VHDL, permite descrierea circuiteiorjsistemelor !ogice In cateva moduri:
- descriere strueturala - proiectantul impune schema logica iar sarcina mediului software este de a "amplasa" corect
acea~ schema in resursele interne ale circuitului In care se dezvo!ta aplicatia;
descrlere comportamentala - proiectantul face a descriere de nivel Inalt a circuituluijsistemului urmand ca sinteza
propriu-zisa a schemei logice sa ramana In sarcina mediului software de dezvoltare.
- Metode combinate - proiectantul poate sa opteze pentru descriere structurala pentru anumite blocun funqionale ~i
descriere comportamentala pentru altele.

De regula, limbajul VHDL este conceput pentru implementarea In paralel a circuitelor logice, de aceea, de cele mai
multe ori, ordinea introducerii declaratiilor nu este importanta. Singura modalitate permisi! de VHDL de a introduce operatii cu
executie secventiala (una dupa alta, In ordinea scrierii lor In program) consta In folosirea declaratiei de tip process. Atenfie, de
aceasta data, ordinea dee/ara/ii/or din corpu/ unui proces are importanja !

I Observatii I CodulVHDL
Seqiune dedicata induderii de librani I library IEEE;
, US9IEEE.std logic 1164.all;
Seqiune dedicata descrierii entitatii. entity mux4 is
In cazul de fa~: port (dO, dl, d2, d3 : in std_logic;
- nume entitate este: mux4 sl, sO Instd_logic;
- intrarile de seleqie sunt: 51 Si sO; yout : outstd logic);
- intra rile de date sunt: dO, d1, d2, d3 ; I endmux4; -
- ie<:ireade date este nolata Yout·
Seqiune dedicata descrierii arhitecturii. architecture abc arh of mux4 is
In cazul de fa~:
- numele arhitecturii este: abcarh;
I signal sel: integer
'I begin
-arhitectura este asociata cu entitatea: mux4; with sel select
- descrierea funqionarii se face cu doua declarapi you! <= dO when 0,
concurente: una caiculeaza semnalul intern set, iar d1 when 1,
cealalta calculeaza ie~irea yout, d2 when 2,
- la prima vedere descrierea pare gre~ita deoarece d3when 3,
semnalul intern sel, este folosit lnainte de a fi calculat; 'X' when others;
-descriere este corecta deoarece succesiunea 5el<= 0 when 50='0' and 51='0' else
declaratiilor concurente nu conteaza, e!e sunt parcurse 1 when 50='1' and s1='0' else
In paralel; 2 when sO='O'and s1='1' else
-semnalul set, este recunoscut numai In interiorul 3 when sO='1' and s1='1' else
arhitecturii abearlr; 4;
end abc arh;

I Observatii CodulVHDL
I Seqiune dedicata includerii de librarii library IEEE;
useIEEE.std logic 1164.all;
I ?eqiune dedicata descrierii entita~ii. I entity mux4 is
In cazul de fatii: I port (dO, d1, d2, d3 : in std_1ogic;
-nume entitate este: mux4 sl, sO : in std_1ogic;
-intrarile de seleqie sunt: sJ li~' yout : out std_1ogicJ;
. intra rile de date sunt: dO, d:l, d2, d3 ;
I endmux4;
- iesirea de date este notata vout·
Seqiune dedicata descrierii arhitecturii.
In cazul de fati3: architecture gresi t of mux4 is
- descrierea se face cu 4 declaratii concurente, la prima begin

I vedere pare corecta dar in realitate este gre!iita; yout <= dO when so= '0' and 81='0' else '0' ; I
I Unde este greleala? yout <= d1 when s 0= '1' and 81='0' else '0' ;
- fiecare atribuire pentru yout, genereaza un nou driver yout <= d2 when so= '0' and sl='l' else'O' ;
pentru comanda semnalului de ie~ire yout, you! <= d3 when 80=' 1 ' and
- a~adar avem 4 drivere, fiecare incearca sa impuna propria
sa valoare logidl asupra firuiui de ie~ire yout; lucru ce
end gresit;
sl='l' eJ.se'O' ;
I
conduce la conflict;
Cum se poate corecta gregea!a? architecture corect Ofmux4 is
- varianta corecta trebuie sa foloseasca 0 singura atribuire begin
pentru yout __ yout <= dO when 80= '0' and sl='O' else,
d1 when sO='l' and sl= '0' else,
d2 when so= '0' and 81='1' else,
d3when 80='1' and 81='1' else,

I 'X' ; -- pentru
end corect;
necun08cut
I

Observa1;ii CodulVHDL
! Seqiune dedicata includerii de Iibrarii library IEEE;
I use lEEE. std logic 1164. ali;
Seetiune dedicata descrierii entita1;ii. entitymux4 is
In cazul de fati3: port (
- nume entitate este: mux4 I dO, dl, d2, d3 : in std - loglc; I
-vectorul de seleqie cu doua componente: set'
- intrarile de date sunt: dO, dl, d2, d3;
I 8el : in s td _logic_vector
Yout : out std _logic ) ;
(I downto 0); I
I
-ie~irea de date este notata Yout; end mux4;
Seqiune dedicata descrierii arhiteeturii. architecture arh - 3 ofmux4 is I
In cazul de fa1;i3: begin
I
I

-descrierea funqionarii se face cu un proces ce are ca lista PI: process (dO, dl, d2, d3, Sell
de senzitivita~i toate intrarile MUX; begin
- procesul este parcllrs pentru orice modificare de stare
logica aparuta pe oricare intrare;
case 8e1 is
when "00" => Yout <= dO;
I
- deciarapa case poate fi folosita numai in interiorul unui when "01" => Yout <= d1;
proces; I when "10" => Yout <= d2;
ObselVaJ'ii referitoare la procese: when others => Yout <= d3;
- Un proces este parcurs pentru orice schimbare de stare
loglca aparuta la oricare variabila din Iista de senzitivita1;i;
I end case; i
end process P1; I
- Declara t iile din cor p ul procesului sunt parcllrse una duoa I end arh 3· I
alta (executie secventiala) §i nu in paralelj

Observatii CodulVHDL
Sectiune dedicata includerii de librarii library IEEE;
use IEEE. std logic 1164.all;
Seqiune dedicata descrierii entitatii. entity mux 4_1 is
In cazul de fa1;i3: port (
- nume entitate este: mux4_1 ; adr : in std _logic_vector (1 downto 0);
-seleqia se face cu un vector pe 2 bi1;i:adr __ dO, d1, d2, d3 : in std_logic; I
-datele de intrare: dO, dl, d2, d3; data out : out std_logic);
·ie~irea de date: data_out; end mux4 1;
Seqiune dedicata descrierii arhitecturii. architecture arch4 ofmux4 - 1 is
begin
In cazul de fati3: P1: process (adr, data - in)
I
- numele arhitecturii este: arch4; begin
-arhitectura se asociaza cu entitatea mux4_1; case adr is
- procesul Pl, este sensibi! la intrarea de seleqie ~i la when "00" => data out
- <= dO; I
I
intra rile de date; when "01" => data out <= dl;
-in funqie de combina1;ia de pe intra rile de seleqie, ie~irea when "10" => data - out <= d2; I
I

data_out are 0 singura atribllire; I when "11" => data out <= d3; I
when others => data out <= "
end case;
end process P1 ;
end arch4;

A. Referitor la circuitul MUX 4: 1 din Figura 1, raspundep la urmatoarele 7ntrebari:


In ce stare logica se afla ie~irea de date daca E = 1?
Daca E = 0, 8=0 ~i A=1, intrarea selectata este IO sau I2? ce intrare este conectata la ie~irea de date?
care este intrarea de seleqie cu ponderea cea mai mare?
Acest circuit poate fi implementat doar cu porti NAND? Daca da, care este schema logiciP

In ce ordine trebuie conectate


semnalele x, y, z la intrarile unui Semnale
MUX8: 1 astfel incat la ie~ire sa di.ponibile
l. intrarile MUX
obtinem semnalul Sout?

Modul de comanda a seleeJiilor 5i


forma semnalelor X, y, z se
prezintJ in figura 3. .plicate I.
intrarile de
Semnalul Sout poate fi obtinut prin
utilizarea unui MUX 4: 1? Dadl da,
selecfie
° j ° '1 1 _! . 1 : 1 ~

care este schema de conectare? I I


I
,
I
,
,
I
I
I
,
I
I
I
I
I
I
I
I

I l I I I I : :
Semn.l doril
la i~irea MUX
....2JlPJlftlt_o
__ o_lIJUlnr:l-t-1jJlJ1JlJlJLili-

4.1. Implementarea funqiilor binare cu MUX. c b a yOU!

A. Referitor la circuitele logice din fig. 2, raspundeti la urmatoarele intrebari: 0 0 0 0


Cum trebuie conectate intrarile de date ale MUX8:1, pentru a realiza aceia~i funqie

II
I 0 0 1 1
logica, 7nsituapa 7n care comanda inu-arilor de seleqie se face astfel: X~ C, Xl ~B, Xz
~A; I0 1 0 0
Cum trebuie conectate intrarile de date ale MUX4:1, pentru a realiza aceia~i funqie 1 0
logica, 7nsituapa 7n care comanda inu-arilor de selectie se face astfel: Xl~B, x2~A; I 0 0 1

U
1 0 1
B. Folosind modul de lucru prezentat 7n exemplul 2, se cere implementarea unei funqii logice cu
I I 0
tabelul de adevar din Figura 4, folosind un MUX 4:1.
1 1 I
Fig. 4

Folosind facilitatea mediului de dezvoltare ISE WebPack, prin care se permite descrierea sistemelor digitale prin intermediul
schemelor logice, se cere:

A. Implementarea $i verificarea pe macheta de laborator cu CPLD a schemei din figura 1.


B. Implementarea ~i verif!carea pe macheta de laborator cu CPLD a schemelor logice din figura 2.

A. Realizati 0 descriere comportamentala, 7n limbaj VHDL, pentru circuitele logice din figura 2, dupa care verificati
funqionarea acestora pe macheta de laborator cu CPLD.

B. Tinand cont de descriereile VHDL prezentate 7n exemplele 3.,.6 , se cere codul VHDL $i implementarea pe macheta de
laborator pentru un circuit de MUX8:1 cu intrare de validare activa pe zero logic; Dupa implementare, verificap ca starea
logica a intrarii de date selectate este transmisa ~i la ie§irea circuitulul.

©
in aceasta lucrare se prezint13 cateva modalit13ti de realizarea a circuite!or de generare a impulsurilor cu durat13
controlata din tranzitiile unui semnal de intrare precum ~i aplicatiile tipice ale acestor circuite. Se pune accent pe Intelegerea:
modalitatilor de obtinere a impulsurilor din tranzitii; a diferentelor dintre monostabiiul retriggerabil ~i cel neretriggerabili
funqionarii ~i utilizarii principalelor monostabile realizate In structuri integratei aplicatiilor tipicei structurii ~i funqionarii unui
monostabil numerici implemetarea CBM numerice In CPLD.

2.1. Caracteristica de transfer in tensiune a unei porti log ice


inainte de a trece la prezentarea propriu zis13a circuitelor ce fac tema acestei lucr13ri,yom face cateva preciz13riprivind
caracteristica de transfer In tensiune a unei porp logice. intr-o lucrare anterioara, am ar13tat ca 0 poart13 10gic13poate avea 0
caracteristic13 de transfer normal13(standard) sau una de tip trigger Schmitt .
• in cazul porplor logice cu 0 caracteristidl de transfer normala (standard)/ exist130 singura valoare a tensiunii de prag/ VT,
indiferent dadl tensiunea de intrare este cresdltoare sau descresc13toare. Spre exemplu/ pentru inversorul 7404 apartinand
familiei TTL standard, valoarea tensiunii de prag este de cca. 1,4V.

• in cazul portilor log ice cu 0 caracteristidl de transfer de tip trigger Schmitt/ exista doua tensiuni de prag: 0 tensiune Vp,
valabila pentru sensul cresdltor al tensiunii de intrare ~i respectiv 0 tensiune VN, valabila pentru sensul descrescator al tensiunii
de intrare. Spre exemplu, pentru inversorul trigger Schmitt 7414 din familia TTL standard, pragul pozitiv Vp '" 1,7V iar cel
negativ VN '" 0,7V.

Printre avantajele utiliz13riicircuitelor log ice cu caracteristidl trigger Schmitt/ cele mai importante sunt:

schimbarea starii logice de la ie~irea circuitului se face foarte rapid/ din acest motiv semnalul de la ie~irea unui
trigger Schmitt se apropie foarte mult de semnalul digital ideal/ adica durata fronturilor este foarte redusa;

marginea de zgomot este mult mai mare decat In cazul circuitelor cu caracteristidl normala;

accepta semnale de intrare cu fronturi oridlt de lente.

Datorita acestor proprietay/ circuitele logice cu caracteristica de transfer de tip trigger Schmitt sunt deosebit de utile
pentru situatii In care:

semnalul de intrare aplicat unui sistem logic este deformat (spre exemplu are fronturi foarte lente)i

peste semnalul util se suprapun zgomote;

transmisia semnalelor Intre doua componente ale aceluia~i sistem logic este Insotita de reflexii datorate
neadaptarilor de impedanta.

Pe lang13aceste aplicatii, circuiteie logice cu caracteristica de tip trigger Schmitt mai pot fi utilizate si pentru realizarea de
oscilatoare digitale, de astabile sau de monostabile. Aceste aplicatii vor fi descrise succint In partea teoretic13 a acestei lucrari.

Dadl dintr-un motiv sau altul/ nu dispunem de circuite cu caracteristic13 trigger Schmitt, exista posibilitatea de a obtine
o astfel de caracteristica folosind circuite cu caracteristica normala de transfer. Un exemplu de acest fe! este prezentat In figura
1.

V
OH
.11
VOL~ _
-=-f=:::==::::--iiJ>-V i
VN Vp
Fig. 1. ReaHzarea unei caracteristici de transfer de tip trigger Schmitt folosind porti cu caracteristic13 normal a de transfer
Pentru a determina tensiuni!e de prag VN, respectiv Vp/ yom neglija curentul de intrare prin poarta logidl. Aceasta
presupunere este foarte apropiata de adevar pentru cazul circuitelor log ice realizate In tehnologie CMOS ~i va genera mici erori
In cazul circuitelor reaiizate in tehnologie lTL.

A). Determinarea pragului superio~ V p. Yom considera ie§irea portii In starea logica zero/ (In acest caz VO=VOL)/ ~i
incepem sa cre?tem tensiunea de intrare Vi. Pentru 0 valoare oarecare a tensiunii de intrare Vi / expresia tensiunii Va de la
intra rea porpi este data de relapa:
Va-~v
- ~i + ~v. OL
R1 +,1=(2 R +t{2n
1

In momentul 7n care tensiunea de intrare a crescut suficient de mult astfel lndlt la intrarea portii sa se atinga tensiunea de
tranzitie, (Va= VT), starea logica a ie~irii se va schimba, va trece In unu logic. Pentru lntreg circuitul, poan:a plus rezistente,
acest eveniment corespunde atingerii pragului superior. Pentru acest moment, ecuatia (1) devine:

B). Determinarea pragului inferior, V N • Vom considera ie~irea portii in starea· logidi unu, (7n acest caz VO=VOH), !,;i
incepem sa scadem tensiunea de intrare Vi . Pentru 0 valoare oarecare a tensiunii de intrare Vi , expresia tensiunii Va de la
intrarea portii este data de relatia:

In momentul In care tensiunea de intrare a sdizut suficient de mult astfei 7nd\t la intra rea portii sa se atinga tensiunea de
tranzitie, (Va= VT), starea !ogica a ie;irii se va schimbar va trece in zero logic. Pentru lntreg circuitlJl; poarta plus rezistentei
acest eveniment corespunde atingerii pragului inferior. Pentru acest moment, ecuatia (4) devine:

- R1 R V
VN=1+- 'T--OH 1
l.V
( j
R R 2 2

Trebuie remarcat faptul di schema din figura 1 nu permite alegerea independenta a pragurilor, prin fixarea raportului Rl/R2 se
aqioneaza In acela!ii timp asupra ambelor praguri.

2.3. Generarea de impulsuri din tranz/lia semnalului de intrare


Exista doua metode de generare a impulsurilor din tranzitiile unui semnal de intrare: 0 metoda se bazeaza pe efectul
timpului de propagare prin portile logice reale, iar cealalta metoda se bazeaza pe 7ncarcarea desdlrcarea unui condensator dintr-
un circuit RC.
Prima metoda, bazata pe efectul timpilor de propagare, este mai putin utilizata deoarece genereaza impu!suri scurte !ii
latimea lor nu poate fi modificata. Cealalta metoda, bazata pe 7nd.ircarea-desci:lrcarea unui condensator, este foarte des folosita
deoarece prin modificarea valorilor circuitului RC se poate modifica ~i latimea impulsu!ui general.
rnainte de a prezenta efectiv cateva scheme de generare a
impulsurilor din tranzitiile semnalului de intrareJ facem
precizarea ca desdlrcarea unui condensator 7ntr-un circuit RC, se face dupa relatia:

u(t) = u( 00) - [u( 00) - u(O) ]exp( ;~ ) (7)

Daci~ ne intereseaza timpul scurs de la Inceputul descilrcarii pana la atingerea tensiunii Ux, acesta este dat de relatia:
T = -RC In Ux - u(oo) (8)
u(O) - u(oo)

• 0 schema eiectridi sensibila la tranzitia pozitiva a semnalului de intrare se prezinta in figura 2. Din formele
de unda se observa di impulsul de ie~ire este activ pe zero ~i corespunde desd;rcarii condensatorului 7ntre cele doua praguri ale
caracteristicii trigger Schmitt. Durata impulsului generat (,), depinde de circuitu! RC dar ~i de caracteristicile electrice ale portii
utilizate.

Pentru circuitul 74LS132 avem urmatoarele date de catalog: - tensiunea maxima de intrare pentru starea zero logic,
VOLmax =O,8V; - tensiunea tipic11 de ie!iire 7n starea unu logic, VOH =3,6V; - curentul maxim la intrare pentru starea zero logic
IILmax = - O.4mA; - tensiunea pentru pragul negativ, VN =l,lV;
Pentru determinarea valorii maxi me a rezistentei R, trebuie respectata relatia:
IILmaxR S V,Lmax
Lucrarea nr. 5: AplicaJii cu circuite basculante monostabile

Dupa alegerea rezisten~ei R, valoarea condensatoruiui C, se determina In funqie de durata dorita a impulsului de ie~ire
folosind in mod adecvat relatia (8). Tinem cont ca desca'rcarea condensatorului Incepe de la u(O)=VOH ~i se termina la
u( 00 )=VOL= IILmax R. Impulsul de ie~ire Incepe odata cu descarcarea condensatorului ~i tine pima cand tensiunea pe rezistenta
atinge valoarea de prag negativ VN.
In aceste condir,i se obtine: r = -RCln VN -IILmaxR
VOH - ilLmaxR

+5V +5V

v{-1 "lF4m, ]v-


o~

c vih
~
n
II

VRl : I:
I
~------
~------ -t-
-
-VN3
-Vp
t
I
I
I I
~
FL 3t

Fig. 2. Schema electrica a unui monostabil activ pe tranzitia Fig. 3. Schema eleetridl a unui monostabil activ pe
pozitiva a semnalului ce intrare tranzitia negativii a semnalului ce intrare

e 0 schema electricii sensibila la tranzi!ia negativa a semnalului de intrare se prezinta in figura 3. De aceasta
data, impulsul de ie~ire este activ pe unu logic.
Din analiza formelor de unda din figura 3, se vede dllndlrcarea condensatorului se face Intre VOL ~i VOHinsa impulsul
de i~ire este mentlnut aetiv doar pana ce tensiunea de pe condensator atinge pragul pozitiv.
Valoarea rezistentei R se alege de cca. 20 kQ pentru ca intrarea porpi 1091cesa se comporte ca ;i cum ar fi in unu logic
(vezl structura Interna a portii lTL). Valoarea condensatorului se calculeaza din considerente legate de la~imea dorita a
impulsului de ie~ire.
In condipile particulare ale acestei scheme, relatia (8) se scrle: r = -RCln VOH - Vp
VOH - VOL

Circuitele log ice spedal destinate generarii de impulsuri din tranzitiile unui semnal de intrare poarta denumirea de
circuite basculante monostabile (CBM). Ultimea impulsurilor generate este contra lata prin intermediul unui circuit RC extern. Cel
mai adesea, CBM-urile realizate integrat sunt dotate eu doua intrari de comanda: una sensibila la tranzi!ia pozitiva (TR+) ~i alta
la tranzitia negativa (TR-), preeum ~j cu doua ie~iri camplementare: Q respectiv Q .
CBM-urile prezinta 0 stare st'..abilaIn care ie~irea este In zero logic (Q=O) §i 0 stare metastabila In care ie§irea se afla In
starea de unu logic (Q=l).
Referitor la starea metastabila putem face urmatoarele observatii:
intra rea in aceasta stare este 0 consecin!a a unei tranzitii active aplicata pe intra rea de comanda (denumita uneori ~I
intrare de declan~re) atunci cand CBM-ul se afla In starea stabiia;
durata stan metastabile (. ), este dependenta de valorile concrete ale circuitului RC extern;
dupa expirarea intervalului de timp " monostabilul revine singur (fara nlci 0 comanda extema) In starea stabila;
in funqie de modul de tratare a unei camenzi de declan;are aparuta pe durata unel stari metastabile, CBM-urile se
Impart in doua categorii:

CBM neretrigerabile - nu se accepta nici 0 comanda de declan~re pe durata unei stari metastabile, este
ca §i cum intrarea de declan§are nu este analizata pe starea Q=l;

CBM retrigerabile - se accepta comanzi de declan~re indiferent de starea monostabilului, circuitul va


ramane in starea metastabila un interval de timp t masurat de la ultima comanda de declan~re.

Diferen!ele care apar In funqionare celor doua tipuri de monostabili se pot vedea in figura 4, unde, pentru acela~i
semnal de comanda aplicat pe intrarea de declan~are TR+ §i acela?i lat/me t a impulsului, se prezinta in mod comparativ
raspunsul unui CMB neretrigerabil ?i al unui CBM retrigerabil. Analizand aceste forme de unda se pot face unmatoarele
observa!ii:
daca intervalul de timp dlntre doua comenzi de declan§are este mal mare decat t , cele doua monostabile
funqioneaza identic (cazul intervalelor de timp dintre tranzitiile 1,2,3);
diferente semnificative In funqionare apar atunci cand intervalul de timp dintre comenzile de dec!an;are este mai mic
decat t (cazul intervalelor de timp dintre tranzitiile 3,4,5,6,7);
Lucrarea nr. 5: Ap/icafri cu circuite bascu/ante monostabile

pentru CBM-ul neretrigerabil, tranzitiile 4 ~i 6 nu au nici un efect deoarece, ia aparipa lor, monostabilul se afta In
starea metastabila provocata de tranzitiile 3, respectiv 5; •
pentru CBM-ul retrigerabil, toate tranzitiile au efect, fiecare tranzitie initiaza un nou interval de timp t, indiferent daca
intervalul anterior s-a terminat sau nu.
ie~irea CBM-ul retrigerabil ramane In starea Q= 1 In zona In care semnalul de intrare are tranzitii dese §i prezinta
caderi In zero In zona In care semnalul de intrare are tranzitii mai rare - din acest motiv, 0 ap!icatie tipica a C8M
retrigerabil 0 constituie deteqia !ipsei de impuls.

2 3 4 8

fLJUl fL
Raspull.s
CBM
neretrigerabil

Raspuns
CBM
retrigerabil

Fig. 4. Raspunsul celor doua tipuri de CBM In conditii identice de comanda (acela~i semnalde comanda pe intrarea TR+,
acela~i interval de timp t )

Tabe/u/1: Exemp/e reprezentative de CBM

Observa ii Simbol
74LS121
circuitul contine 1 CBM neretrigerabil;
- intrarile Al $i A2 sunt sensibile pe tranzitia negativa, iar intra rea B la tranzitia
pozitiva §i poate fi comandata $i de fronturi lente;
- daca se folose$te 0 intrare de tip A, celelalte intrari de declan~are trebuie legate la
+5V; Q
- daca se folose$te intrarea B, cel putin 0 intrare A trebuie conectata Ja masa; Q 1
- datorita unei rezistente interne, sunt pasibile urmatoarele moduri de conectare a
circuitului RC ;

74LS123
circuitul conpne 2 CBM retrigerabile;
B, intrare de dedan~re sensibila pe tranzitia pozitiva, daca nu este folosita
intrarea se leaga la +5V;
A, intrare de declan!iare sensibila pe tranzitia negativa, daca nu este folosita
intrarea se leaga la masa;
intrarea de $tergere R, este activil pe zero logic;
daca A=O §i 8=1, 0 tranzitie pozitiva pe R declan~eaza generarea unui
1m uls'
MMC4098
circuitul contine 2 CBM ce opereaza In mod normal In regim retrigerabil, dar
poate opera $i In modul neretrigerabil daca se face 0 legatura extern a Intre Q
~iTR- ;
TR+, intrare de declan~re sensibila pe tranzitia pozitiva, dad! nu este folosita
intra rea 56 leaga la Vss;
TR-, intrare de declan~re sensibila pe tranzitia negativa, dad\ nu este folosita
intrarea 56 leaga la VDD;
intrarea de §tergere R, este activa pe zero 1 ic;

2.5. Aplicatii cu CBN


A. Filtru trece bandit Un comportament de filtru trece banda pentru semnale digitale se ob~ne cu ajutorul schemei
din figura 5. Dad~ frecventa semnalului de intrare variaza, aceasta schema este conceputa astfellncat spre ie~ire sunt lasate sa
treaca doar impulsurile a caror frecventa este intre a valoare minima f min ~i 0 valoare maxima f max.

Referitor la funqionarea scheme! di figura 5, se pot face urmatoarele observatii:


- ambele monostabile sunt retrigerabile;
- un monostabil este folosit pentru fixarea frecventei minime ~i celalalt pentru fixarea frecventei maxi me ce are
permisiunea sa treaca spre ie~ire;
- poarta Pi ~i bistabilul D au ca rol deschiderea corecta a portii P2 astfel indlt sa se realizeze funqia dorita;

r.:;: • 5. Schema electrica

a unui filtru trece banda


-ealizat cu doua CBM
retrigerabile.

o posibilitate de a obpne un semnal digital +5V Rl Cl +5V R2 C2


folosind 2 monostabile este prezentata in figura 6.
Se observa ca la terminarea impulsului generat
RC C Iesire
de CBMi se canstituie in comanda de declan~are pentru A
CBM2 iar terminarea impulsului generat de CBM2 devine Q
B r;
comanda de decian~are pentru CBiv11.Aceasta reaqie
negativa (conexiunea de la ie~irea CBM2 la intrarea
CLR "
CBMI +5V
CBMi mentine funqionarea generatorului de semnal.
74LS123
Un CBM fixeaza durata de unu iar celalalt durata
de zero a semnalului digital de la ie~ire. Daca R
rezistentele sunt inlocuite cu potentiometre, durata
Fig. 6. Generator de semnale digitale realizat cu 2 C8M
ambelor stari logice poate fi contro!ata.
retrigerabile

C) Detector pentru impulsuri !ipsa

o aplicatie tipica a circuitelor monostabiie retrigerabile 0 canstituie deteqia impulsurilor lipsa dintr-un tren de
impulsuri de frecventa cunoscuta. Acest gen de aplicatie este deosebit de utila in sistemele de alarmare bazate pe bariere de
infraro~u. 0 bariera In infraro~u se realizeaza relativ simplu, pe 0 parte a zonei protejate (spre exemplu 0 u~ sau 0 fereastra)
se monteaza 0 sursa pulsatorie de infraro~u iar pe cealalta parte un recep.tor de infraro~u. Amplasarea ansamblului emitator-
receptor trebuie fikuta astfel indlt sa existe vizibilitate directa intre ele. In momentul in care un corp opac trece prin zona
protejata bariera este intrerupti3 ~i receptorul nu mai vede unul sau mai multe impulsuri ce au fost transmise de catre emitater.
Lipsa impulsului/impulsurilor, trebuie sa fie detectata de circuitul logic ce prelucreaza semnalele provenite de la receptor pentru
a declan~a alarrna (cineva a patruns neautorizat in zona protejata). Este evident ca, pentru 0 proteqie eficienta, zona protejata
trebuie sa fie acaperita cu mai multe bariere infraro~ii astfel indlt sa formeze 0 veritabila "piasa de paianjen".
o schema bloc de principiu pentru un sistem de alarmara cu 0 singura bariera de infraro~u este prezentata in figura 7.
Daca bariera nu este obturata (intrerupta), impulsurile primite de receptor au 0 cadenta suficient de mare pentru a mentine
ie~rea CBM retrigerabii in starea Q=l, Q'=O.

I ~.E
Eimtator
infrarosu
In
I
_.
~rrpllicatcr
~.
H
_.
o~~~~r
_
Anulare
alarma 11
.J sw
2

Fig. 7. Schema bloc a unui bariere in infraro~u bazata pe deteqia !ipsei de impuls

In momentul in care un obiect intrerupe bariera de infraro~u, receptorul nu mai prime~e impulsuri, in consecinta
intrarea de declan~are a C8M nu mai este stimuiata ~i, la scurt timp dupa primul impuls lipsa, va trece in starea Q=O Q'=1.
Noua stare a CBM va fi sesizata ~i memorata de circuitul bistabil (CBS) in vederea declan~arii ~i mentinerii starii de alarma.
Dupa ce obiectul a trecut prin bariera, la intrarea C8M reapar impulsurile transmise de emitator ~i ie~irea acestuia va
reveni in starea Q=i, Q'=O. Se remarca astfel ca starea eMB este alterata doar atata timp cat bariera a fost intrerupta, adica
atata timp cat a trecut obiectul prin zena protejata. Din acest motlv, circuitul de avertizare nu poate fi comandat direct de catre
CBM, pentru eli durata de alarmare ar fi foarte scurta ~i poate trece neobservata. De aicl necesitatea folesirii unui bistabil (CBB),
el are rolul de a memara starea de alarma pana cand aceasta este anulata prin intermediul aqionarii SW2; evident SW2 nu este
amplasat in zona protejata.
Lucrarea nr. 5: Ap/icaJii cu circuite bascu/ante monostabi/e

Odata aparuta 0 stare de alarma, circuitul eBB men\ine deschisa poarta PI pentru ca semnalul generat de 05C2 sa
aqioneze circuitul de semnalizare optica intermitenta ~i, In combtnatie cu 05C3 ?i P2, sa aqioneze semnalizarea acustica
intermitenta.
Mentionam di 05C2 ~i P1 nu sunt strict necesare, semnalizarea acustica ~i sonora se face ~ fara acestea dar, ambele
semnalizari nu mai sunt intermitente.

Un dezavantaj al structurilor logice programabile este acela ca nu permit realizarea monostabilelor din cauza faptului
ca in interiorui acestor structuri nu dispunem de rezistente ~i nic! de condensatoare.
Dadl intr-o anumita aplicatie utilizarea eBM este strict necesara, exista doua solutii de rezolvare a problemei:
conectarea drcuitului RCIn exteriorul structurii logice programabile; respectiv utilizarea de monostabile numerice.
CBM-urile numerice realizeaza 0 funqionare similara unui CBM c1asic numai ca latimea impulsului generat este egala
cu un numar intreg de perioade provenite de la un semnal de ceas a carui frecventa este cunoscuta.
o schema de principiu pentru un monostabil numeric este prezentata In figura 8. In acesta figura se observa prezenta
urmatoarelor componente:
un bistabil D activ pe tranzitia pozitiva a semnalului de ceas;
un numarator presetabil configurat pentru numararea lnapoi;
o poarta AND.

Modul de funqionare al schemel din figura 8 este urmatorul:


la aparitia unei tranzitii pozitive pe intrarea TR+, bistabilul D trece In starea Q= 1, deoarece intrarea de date este
mentinuta in permanenta In unu logic;

starea Q=l, determina trecerea in unu !ogle a semna!u!ui !LCBM ~i deschiderea portH .il.ND pentru impu!suri!e
de pe intra rea de ceas ck_in;

fiecare impul ce trece prin poarta AND decrementeaza cu 0 unitate starea numaratorului presetabil NI;

In momentul in care numaratorul s-a golit (trece prio starea 0) se activeaza ie~irea de semnalizarea a golirii
(Bw=O );
activarea ie~irii de terminare numarare, are ca efect resetarea bistabilu!ui (fortare In starea Q=O) ~i 7ncarcarea
paralela a numaratorului cu constanta binara M;

iesetarea bistabilului are ca efect trecerea in zero a ie~irii tLCBM~itotodata blocheaza trecerea inpulsurilor prio
poarta AND, in consecintil starea numaratorului nu se mai poate modifiea;

schema ramane In aceasta stare (numariltor lnearcat cu constanta M, bistabil In starea Q=O ~i poarta AND
blocata) pana la 0 noua tranzitie pozitiva pe intrarea de declan~are TR+, dupa aparitia acesteia funqionarea se
repeta;

clcjn

J> Q
CK Q. ~JUlflJUl.I1Il
I I
ct
-Il--ll--
I 1'9=7 I H=7
Ai .1IJlfUl.flIUL __ JIJ1J1flnJUL
I I I I
J I I L

Observa/ii.
marirea sau mic~rarea duratei impulsului generat de schema din figura 8 se face prin modificarea constantei ,..,;

pentru un control fin al duratei impulsului generat este nevoie de un semnal de ceas cu 0 perioada cat mai mica;

capacitatea numaratorului presetabil trebuie aleasa in funCtie de frecventa semnalului de ceas ~i de latimemea dorita a
impulsurilor ce trebuie generate;

avantajul schemei este dat de faptul ca permite programarea numerica a duratei impulsului generat;

schema este utila ~i acolo unde este nevaie sa decumam un numar de impuisuri din semnalul ck_in in ritmul tranzitiilor
semnalului TR+, In aceasta situatie semnalul de ie~ire se culege de la Ai ;

resetarea (terminarea) unui impuls in curs de derulare se face prin simpla resetare a numaratorului;

dezavantajul schemei, a~ cum este ea prezentata in figura 8, este acela ell nu iucreaza corect la prima camanda de
declan~arei
®
3. Desfii$urarea lucrarij
3.1. Studiul unor aplicatii tipice cu CBIVi

A. Referitor la schema din FIgura 5, raspunde~i la urmatoarele 7ntrebari:


Exemplificati cu forme de unda funqionarea schemei;
Este strict necesar ca CBM-urHe sa fie retrigerabile sau pot fi lnlocuite ~i cu CBM neretigerabile ?
Are importanta care CMB fixeaza frecventa minima de trecere ~i care pe cea maxima?
Care este legatura dintre perloada semnalului cu frecventa minima, respectiv maxima, §i durata impulsurilor
generate de C8M ?
care sunt valorile componentelor R1, C1, R2, C2 astfellncat filtrul sa alba frecventa minima de 50kHz jar
frecventa maxima 100kHz?

B. Referitor la schema din figura 6, raspundetl la urmatoareie lntrebari:


Exemplificati cu forme de unda funqionarea schemei;
Care C8M fixeaza durata de zero logic ~I care pe cea de unu logic a semnalulul generat?
Cum se amorseaza funqionarea schemei ?
Este strict necesar ca CBM-urHe sa fie retrigerablle, sau nu are importanta pentru aceasta aplicatle ?
5emnalul de ie~lre poate fi preluat ~i de la ie§irea primului C8M ? Daca da, ce diferente apar fata de situa\ia
prezentata pe schema 7

C. Referitor la schema din FIgura 7, raspundeti la urmatoare!e lntrebarl:


oaca frecventa semnalulul generat de 05C1 este de 40kHz, In ce gama poate varia constanta de timp a C8M
astfellncat sa declan§eze alarma pentru un singur impuls Iipsa ? Dar pentru a se declan§a alarma cand lipsesc
mal mult de 10 impulsuri ?
Ce modificari trebuie facute In schema bloc pentru a putea accepta mal multe bariere de infraro§u ?
Care ar fi frecventa acceptabila pentru o5C2 ? Oar pentru 050 7
Poate fi "pacalita" 0 astfel de schema (chiar daca are mai multe bariere de infraro§u) ? Ce masuri de precautie se
pot lua ?

A. Folosind simboiurile existente In editorul de scheme al mediului 15E-WebPack, categoria TTL, realizati 0 Implementare a
schemei din figura 8 §i veriflcati functionarea acesteia pe macheta de labortaor cu CPLD. Urmariti pe bareta de LED-url
succesiunea starHor prin care trece numaratorul §i determinati latime Impulsulul generat.

A. Folosind modul de lucru prezentat la studiul automatelor FSM, concepeti lnlimbaj VHDL §i apoi verificati pe macheta de
laborator cu CPLD, un autonlat sinCion care sa comande in mod convenabil elementele schemei din figura 8 astfel ind3t
aceasta sa funqioneze corect de la prima comanda de declan~re.

Pentru rezeolvarea acestei apllcatii se recomanda:


intra rile automatului vor fi: intrarea de declan~re TR+, ie§irea de semnalizare a termnarii numararii Bw §i
eventual intra rea de Reset a C8M numeric;
ie§lrile automatului vor fj folosite pentru: comanda lncardirii paralele a numaratorului, pentru comanda
bistabilului 0 (setarea §i resetarea sa);
starHe automatului: 0 stare de WAIT In care se a§teapta comanda de declan~re pe intra rea TR+; 0 stare
intermediara INIT In care se face initializarea schemei (Indircarea numi:iratorului §i setarea bistabHului); 0 stare
PUL5 In care se genereaza impulsul de ie§ire, In aceasta stare se ramane p€ma cand numaratorul se gole~te sau
pana cand avem comanda de reset;
codificarea starilor se face la alegere;

B. Rezolvati problema de !a punctul anterior folosind utilitarul StateCAD ce va permite descrierea funqionarii automatulul
direct sub forma de diagrama de tranzitie a starHor.

©
In partea teoretica se face 0 prezentare succinta a structurii interne a principalelor tipuri de registre, dupa care sunt
prezentate cateva registre realizate Tn structuri integrate (se pune accent pe semnificatia pinilor ?i pe unele particularitati ce
apar In funqionarea acestor circuite).
ca aplicatii ale registrelor de deplasare se studiaza: realizarea divizoarelor de frecventa; realizarea luminilor dinamice
~ a generatoarelor de numere pseudo-aleatoare. 0 parte din aceste apllcapi sunt prezentate ca implementari cu structuri
integrate distincte sau ca descrieri in limbaj VHDL.

2.1.. Introducere
La nivel de bit, memorarea informatiei se face cu ajutorul latch-urilor sau a bistabililor. La nivel de cuv€mt, memorarea
!ji procesarea informapei se face cu ajutorul registrelor. Registrul este un circuit logic secvential format dintr-o succesiune de f1
latch-uri sau bistabili.
Indlrcarea unui registru (operatia de introducere a cuvantului de n biti Tn registru) sepoate face Tndoua moduri:
serial- Tncarcarea se face bit cu bit Tn ritmul unui semnal de ceas, motiv pentru care timpul de Tncarcare este
egal cu n perioade de ceas;
paralel- toti bitii sunt introdu!ji in acela;i timp, pe tranzjpa activa a unui semnal de ceas.

Extragerea informatiei din registru (operatie denumita citire) se poate face tot In doua moduri:
serial- citirea se face bit cu bit pe n tranzitii active ale unui semnal de ceas;
paralel- top bitii sunt citip Tn acela;i timp.

In general, un registru este definit ca 0 structura liniara de celule de memorare ce prezinta una sau mal multe din
urmatoarele funepi: - acces serial; - acces paralel; - ie~ire senala; - i~ire paralela.

ClasiRcarea registrelor:
Clasificarea registrelor se poate face dupa mai multe criterii Tnsa cel mai important este cel care indica modul de
intrare ~i de ie~re a informapei.

• Dupa tipul celulelor de memorie utilizate:


- cu latch-uri;
- cu bistabili;

• Dupa tipul celulelor de memorie utilizate:


- cu intrare paralela !ji ie!jire paralela (parallel in/parallel out);
- cu intrare seriala ;i ie!jire paralela (serial in/parallel out);
- cu intrare paralela ~i ie;ire seriala (parallel in/serial out);
- cu intrare seriala ~i ie;ire seriala (serial in/serial out);

Registrele cu Tndlrcare seriala mal sunt denumite !ji registre de deplasare !ji, la randul lor, pot fi Tmpartite Tn doua
categorii: a) registre cu deplasare la dreapta ~i b) registre bidireeponale.
Registrele prevazute cu ambele tipuri de intrari (serie !ji paralel) ~i ie;ire paralela sunt denumite registre universale.

• Registru cu intrare paralela ~i ie~ire paralela (registru paralel/paralel). 0 structura de registru cu Incarcare
paralela ~i ie~ire paralela se obpne relativ u~or prin utilizarea unul numar convenabi! de bistabili de tip D. Un exemplu de
registru paralel/paralel pe 4 bit! se prezinta Tnfigura 1.
Fuqionare:
toate intrarile de ceas ale bistabililor se conecteaza impreuna !ji formeaza intra rea de comanda a incarcarii paralele
CKp,
la aparitia une! tranzitii active pe intrarea CKp, starea logica a intrarilor PIeste copiata In celulele de memorie;i va fi
pastrata nealterata pana la urmatoarea tranzipe activa;
incarcarea paralela se poate face numai atunci cand pe intrarea CKPse aplica tranzitie activa, spunem ca incarcarea
paralela se face sincron CLl semnalul apJicat pe CKp,
intrarile de tip D joaca rol de intrari paralele de date;
ie;irile bistabililor joaca rol de ie!jiri paralele de date;
citirea informatiei din registru se poate face oricand;
intra rea de ;tergere MR (Master Resef), este activa pe zero logic !ji este folosita pentru !jtergerea registrului
(aducerea In starea Q=O a tuturor bistabililor din structura);
~tergerea registrului se poate face oricand prin aducerea intrarii MR Tn starea 0, spunem ca ?tergerea se face
asincron fata de semnalul aplicat pe intrarea CKP;
I
Intrar •• I
I de .
stergere .

PIG PIl PI2 PI3 I


CKP Reg. P/P
00 01 Q2 Q3

QO 01 02 Q3 Ie9iri paralele
de date
Fig. 1. Structura interna ~isimbolul pentru un registru paralel/paralel pe 4 bitt

,. Registru cu intrare serie ~iie~ire paralela (registru serie/paralel).


o structura posibiia de registru cu incarcare seriala se prezinta in figura 2. Analizand schema de conectare se constata
ca acest tip de registru prezinta ambele tipuri de ie~iri, atat paralela cat ~i seriala.

Intrara
seriala
de date

MR
SCK Iesire
seriala
dedllte

Funetlonare:
intra rea D a primului bistabil joaca re! de intrare seriala de date, SI (Serial Input) ;
toate intrarile de ceas ale bistabililor se conecteaza impreuna ~i formeaza intra rea de comanda a indlrcarii seriale SCK
(Serial Clock) ;
la aparitia unei tranzitii active pe intrarea SCK, starea logica a intrarii SI este copiata in primul bistabil iar continutul
celulelor de memorie este deplasat spre dreapta cu 0 pozitie (de aici ~i denumirea de registru de deplasare)i
incarcarea acestui registru nu se poate face dedIt in mod serial ~i necesita 4 perioade de ceas (in fig. 3 se prezinta
modul de incarcare seriala a informatiei 1111 intr-un registru ce prezenta initial informatia DODO,pentru a putea
urmari deplasarea informatiei In registru au fost utilizate fonturi diferite pentru fiecare bit de intrare);
ie~irile bistabililor joaca rol de ie~iri paralele de date;
ie~irea ultimului bistabil joaca ~i rol de ie~ire seriala;
citirea informatiei din registru se poate face oricand, independent de SCK;
intrarea de ~ergere MR (Master Resef), este activa pe zero logic ~i are 0 executie asincrona;

Registrele de deplasare sunt foarte utiie in realizarea


rapida a operatiilor de inmultire(impartire cu puteri ale lui
2.se poate arata ca lnmultirea unui numar binar (stocat in
registru) cu numarul 2 P inseamna deplasarea spre stanga
cu p pozitii iar impartirea cu 2 P necesita deplasarea spre
dreapta cu p pozitii.
Exemplu:
scriere zecimala: 5 x 4 = 20 <=:> 5 x 22 = 20, deci
trebuie efectuata 0 deplasare spre stanga cu doua
pozitii;
scriere binara: 101 x 100 = 10100
continutul initial al registrului: 101
dupa doua deplasari la stanga, cu introducerea de
zerouri pe pozitiile ramase iibere se obtine: 10100;

• Registru universal.
Daca in fata fiedirui bistabil din schema prezentata in figura 2 se introduce un multiplexor cu 2 intrari, se permite
conectarea intrarii D fie la intrarea de incarcare paralela, fie la ie~irea bistabilului de pe pozitia anterioara. Se obtine astfel un
registru universal, un registru ce se poate indlrca paralel sau serie ~i poate fi citit serie sau paralel.
Un exemplu de registru universal pe 4 biti se prezinta i"nfigura 4,
Fuqlonare:
modul de incarcare a registrului depinde de starea logica a intrarii S/ P ,daca S/ P= 0 incarcarea se face
para lei iar daca S / P = 1 incarcarea se face serie;
multiplexoarele 2: 1 se comporta ca ni~te comutatoare ce conecteaza intrarile D fie la PI, fie la ie$irile bistabililor
de pe pozitia anterioara;
ambele moduri de indlrcare se fac sincron cu semnalul aplicat pe intra rea CKU;
citirea informa!;iei din registru se poate face paralei sau serie in mod independent de CKU;
PI1 Intrari PI2
paralele
,I de dote Iesire
seriala
de date

MR
eKU
t
QO Ql
Iesiri
parolele Q2
de dote
Fig. 4. Structura interna pentru un registru universal pe 4 bip

2.3. Exemp/e de registre rea/izate in structuri integrate


Observa 7 Simbol
Registrul 741..5171 74LS171
circuitul contine 4 bistabili de tip D, conectati intr-o maniera similara celei din
figura 1;
intrarea de §tergere (CLR ), este activa pe zero logic;
ie§irile de date sunt disponibile §i sub forma negata;
- incarcarea paralela se face pe tranzitia pozitiva a semnalului de ceas;

Registrul 741..5377 74LS377

circuitul contine 8 bistabili de tip D; EN


- intrarea de validare a accesului informatiei la celulele de memorie (EN), este 11

activa pe zero logic;


- incarcarea paralela se face pe frontul pozitiv al semnalului de ceas numai atunci
cand EN = 0;
- daca EN = 1, informatia de intrare nu are acces spre celulele de memorare,
indiferent de starea semnalului de ceas;

Registrul 741..5570
circuitul dispune de 4 registre de 4 bip fiecare;
ie§irile sunt de tip tristate;
I
intrarea de validare a scrierii (WE) §i cea de validare a citirii (RE) sunt active pe
zero logic;
datorita faptului ca avem semnale diferite de vaiidare pentru citire §i pentru II
scriere, este posibila scrierea unei locatii simultan cu citirea alteia; I
adresarea registrului se face prin aplicarea unui cod binar pe Iiniile R~ RA (daca !!.46 !,
este operatie de citire) respectiv W~ WA (dadi este operatie de scriere);
circuitul se comporta ca 0 memorie RAM cu acces dual.
03 7
02
9
10
I
01
I I
Registrul 741..595 74LS95
modul de lucru se alege prin intermediul intrarii CM.
I
1
CM = 0, deplasare spre dreapta in ritrnul tranzitiilor negative ale semnalului SI
aplicat pe intrarea CKS; D
CM = 1, incarcare paraleia in ritmul tranzipilor negative ale semnalului
aplicat pe intrarea CKP;
intrarea seriala de date este Sf;
C
B
A
:;~
0B 12
0A 13
poate fi folosit ca :
registru cu intrare serie ~i ie!iire paralei;
- registru cu intrare serie !ii ie!iire serie;
registru cu intrare paralela !ii ie!iire paralela;
- re istru bidire ional necesita conexiuni externe .
Registrul universal 74LS194 74LS194
- registru universal pe 4 biti;
- modul de lucru se alege prin intermediul intrarilor de seleC1ie 5, 50 , dupa cum Sl
urmeaza: So
- 51 50= AD, memorare LSI
- 51 50= aI, deplasare informatie de la Qa---tQd 6 D
- 51 50= la, deplasare informatie de la Qd·--)Qa 5 C
- 51 50= 11, lncarcare paralela (QdQcQbQa=DCBA)
- intra rea de ~tergere asincrona (CLR) este activa pe zero logic;
- intra rea seriala de date pentru dep!asarea spre stanga este Lsf; I
=:il:
intrarea seria!a de date pentru deplasarea spre dreapta este [Sf; ~RSI
operatiile de deplasare la stanga, deplasare la dreapta ~i Incarcare paralela sunt
efectuate sincron cu semnalul de ceas elK, pe tranzitia pozitiva;
1
I CLK
CLR
pentru comanda de memorare, semnalul de ceas nu are efect asupra funetionarii , _ .
circuitului; ,

• Registru in inel Am aratat In fig. 3 ca Incarcarea serie a unui registru de deplasare se face cu pierderea
informatiei initiale din registru. Daca se conecteaza ie~irea seriala la intrarea serie se obtine un registru In ine! care recirculeaza
la nesfa~it 0 secventa binara. Secventa dorita poate fi lncarcata paralel sau serie, lnainte de lnchiderea legaturii dintre ie~irea
seriala ~i intra rea seriala.
Ca aplicatii ale registrelor In inel se pot enumera: realiz.area de numaratoare Johonson; realizarea unor divizoare digitale
de frecventa; reaiizarea unor lumini dinamice.
Un exemplu de lumina dinamica este prezentata In figura 5. runC1ionarea acestei scheme este relativ simpla:

Imediat dupa conectarea sursei de


alimentare, circuitul format din C2, Rl ~i P2,
genereaza 0 comanda de lncarcare paralela
a starilor !ogice fixate de dltre K1+K4.

Aparitia comenzii de Incarcare paralela se


explidi astfel: initial C2 este desd\rcat ~i
intra rea portH P2 se afla In zero logic, iar Bloc swi'tch-url
ie~irea In unu logic, deci se obtine CM=l . (alegere secventa
binara)
La scurt timp dupa conectarea sursei de
alimentare, C2 se Incarea, la intra rea portii
P2 ajunge 0 tensiune suficient de mare sa
fie interpretata ca unu logic - fapt ce
Cl
conduce la aparitia unui zero logic la ie~ire. 4701' 4
Deci, CM=O, ceea ce Inseamna ca registrul L:?l s Pl R9 Rill Rll
prime~e 0 comanda de Incarcare serie cu ,In lh. 74LSl3
deplasare la dreapta. :.I:'
~
:. ~
D2] D3!D4±
""" '"'
Bareta de
LED-url
Datorita conexiunii dintre Qd (ie~ire seriala) . . .

~i Sf (intrare seriala), informatia Incarcata Fig. 5. 5chema 10g1c3a unei lumini dinamice
paralel va fi recirculata In inel;

Comutatoareie Kl+K4 sunt foiosite pentru stabilirea secventei binare, starea ior este citita doar In primele momente de
dupa conectarea sursei de alimentare.

Dad~ secventa binara Incarcata paralel a fost 1000 pe bareta de LED-uri se va deplasa un LED aprins, iar daca secventa a
fcst 0111, se va deplasa un LED stins; .

semnalul de ceas este asigurat prin intermediul unui oscilator realizat cu un inversor trigger SChmitt (poarta Pl ) .

• Generarea de numere pseudoaleatoare. Acolo unde este nevoie de genera rea unor numere aleatoare, 0 solutie
de compromis consta In generarea unor numere pseudoaleatoare, adica In genera rea unei secvente foarte lungi de numere.
De~i succesiunea numerelor este mereu aceia~i, datorita lungimil mari a secventei, utilizatorul are senzatia ca numerele sunt
generate aleator.
o posibilitate de generare a unei secvente de numere pseudoaleatoare consta In utilizarea unui registru de depiasare
la care se apliea 0 reaC1ie liniara (Linear Feedback Shift Register). 5pre deosebire de registrului In jnel - unde reaetia este
realizata printr-o legiltura Intre ie~irea seriala de date ~i intrarea seriala de date -, In cazul generatoarelor de numere
pseudoaleatoare, reaqia este asigurata printr-o poarta XOR conectata ca In figura 6.
Pentru fiecare tranzitie activa a semnalului de ceas, starea registrului se modifica pe de 0 parte datorita faptu!ui ca
informatia este deplasata la dreapta iar pe de alta parte datorita faptului ca intrarea seriala de date prime~te informatia Qn Ef>
Qm.
Numar pseudoaleator (in format binar)

Fig. 6. Schema de principiu a unui generator de numere pseudoaleatoare

Din analiza tabeiului 1 (unde se prezinta legatura dintre pozi~a reaqiei (n), lungimea registrului (m) ~i numarul de
stari distinete), se observa ca pentru dimensiuni mari ale registrului se ob~in secven~e lungi ~i astfel se poate crea aparen~a de
generare aleatoare a numerelor.

Lungime registru Pozi~iereaqie Numarul de stari Lungime registru Pozi~iereaqie Numarui de stari
(m) (n'l distincte (m) (n) distincte
4 3 16 20 17 1.048.475
5 3 31 21 19 2.097.151
6 5 63 22 21 4.194.303
I 6 121 23 18 8.388.607
9 5 511 25 22 33.554.431
10 7 1.023 28 25 268.435.455
11 9 2.047 29 27 536.870.911
15 14 32.767 31 28 2.147.483.647

• Conversia intre formatele de reprezentare a informapei digitale. Informa~a vehiculata In sistemele digitale
se face fie In format serial fie In format parale!. Trecerea de la un format la altul se face cu ajutorul registrelor de deplasare.
Modul concret de utilizare se va studia Intr-o alta lucrare de laborator.

~Exemplull: Descrierea in /Imbaj VHDL a unul reglstru pe 8 biJi eu ineareare para/eIJ pe frontu/ pozltiv a/ semnalulul de eeas.
Intrarea de fftergere a registrului este activa pe nivelul de unu logic.

ObselVatii I CodulVHDL
5eqiune dedicata includerii de librarii. I -- Registru pe 8 biti cu incarcare paralela
library IEEE;

Seqiune dedicata descrierii entita~ii. In cazul


I use IEEE. std logic 1164. all;
'I entity reg8 is
de fata: port ( clk: in std_logic;
nume entitate este: reg_B; reset: in std-'oglc;
intra rea de ceas: elk; I Id: in std-'ogic;
comanda Incarcare paralela: Id; din: in std-'ogic_vector(7 downto 0);
intrari paralele de date: din; doul: out std_logic_vector(7 downlo 0) );
ie iri aralele de date: dour' end reg8;
Seqiune dedicata descrierii arhitecturii. architecture arh8 of reg8 is
in cazul de fa~a: begin
numele arhitecturii este: arhB; p1: process (clk)
arhitectura este asociata cu entitatea: begin
reg8; if (reset = '1') then
doul <= "00000000";
Observatii: elsif (e1k'event and clk='1 ') then
procesul pl este este sensibil la intra rea if (ld = '1") then
de ceas elk, dout <= din;
resetul este activ pe unu logic; end if;
dedara~ia elk'event and clk='1' este end if;
folosita pentru a specifica tranzi~a end process p1;
ozitiva a semnalului de ceas' end arh8;

.ExempluI2: Descrlerea in Ilmbaj VHDL a unul registru eu Intrare serle 51ie51repara/eta pe 8 bip. Intrarea de eeas este actlva
pe tranz/fia pozitiva. Cireuit'JI nu are intrare de 5tergere.
ObselVatii CodulVHDL
Seqiune dedicata includerii de librarii -- Exemplu -de registru de deplasare
library IEEE;
use IEEE. s td logic 1164.all;
Seqiune dedicata deserierii entitatii. In cazul de fata: entity reg_ 8 is
- nume entitate este: reg_B; port (
- intra rea de ceas; elk; si, clk : In std_logic;
- intrarea seriala de date: si; dq : out std_logic_vector(7 downto O}) ;
- ie~irile de date: dq; end reg 8;
Seqiune dedicata deserierii arhitecturii. architecture arh_ reg of reg_8 is
In cazul de fata: begin
- numele arhitecturii este: arh_reg; process ( elk)
- arhitectura este asociata cu entitatea: reg_8; begin I
- deserierea funqionarii se face cu un proces ce este if(( elk' event) and ( e1k='!' » then
sensibil fa semnalul de ceas elk; dq( 7 downto 1) < = dq( 6 downto 0);
Observatii: dq(o) < = si ;
Deplasarea se face pe frontul crescator al sernnafului de - - descriere alternativa
ceas; - - dq < = dq( 6 down to 0) &si;
Data de pe intrarea serle este copiata In prima celula a end if;
registrului de memorie. end process ;
end arh reo;

.ExempluI3: Descrierea in /imbaj VHDL a unui registru pe 4 biti cu incarcare para/eta ~i posibi/itatea de dep/asare a
informatiei spre stanga sau spre dreapta. Metoda f%sita in acest exemp/u este preferabilJ ce/ei antenoare.

ObselVatii CodulVHDL
Package-ul contine elemente ce trebuie recunoscute library IEEE;
In mai multe proiecte. use IEEE. std_logic_ 1164.all;
Elementele dintr-un pachet sunt recunoscute lntr-un package reg_types i.s
proiect dadl se face apel la instructiunea use. subtype bit4 is std_logic_vector(3 downto 0) ;
end reg_types;
In cazul de fata se define~te un pachet pentru a
soecifica formatul bit4.
I
Seqiune dedicata includerii de Iibrarii. -- Exemplu de registru pe 4 biti
Se remarca faptul ca se include ~i pachetul deseris mai library IEEE;
sus. use IEEE. std _logic_ 1164.all;
use WORK. reg types. all;
Seqiune dedicata descrierii entitatii. In cazul de fa~a: entity reg_A is
- nume entitate este: reg_A; port (
- intra rea de ceas; elk; elk, shift sens, load : in std_logie;
- comanda lncarcare paralela: load; din : i.n bit4;
- intrare pentru specificarea sensului de deplasare dout : inoutbit4) ; I
a informapei din registru: shift_sens;
intrari paralele de date: din;
ie iri aralele de date: dout;
Seqiune dedicata deserielii arhitecturii. architecture arh A of reg A is
In cazul de fata: si.gnal temp_val: bit4;
numele arhitecturii este: arh_A; begin
arhitectura este asociata cu entitatea: reg_A; pr_l: process (shift_sens, load, din, dout)
begin
Observatii: if load = '1' then
procesul PCl este responsabil de mentinerea temp_val < = din;
starii registrului; elsif shift_sens = '1' then - - deplasare spre dreapta
procesul: pr_2 este folosit pentru transferul temp_val (2 downto 0) < = temp_val (3 downto 1);
starii registrului spre ie~irile circuitului; temp_val (3) = '0' ;
pentru deserierea deplasarii spre dreapta, In locul else - - deplasare spre stanga
=
declaraf;iilor: temp_val (2 downto 0) < temp_val temp_val (3 downto 1) < = temp_val (2 downto 0);
(3 downto 1); temp_val (3) = '0'; se poate temp_val (0) <= '0' ;
folosi temp_val < = '0' & temp_val (3 downto 1); end if;
pentru deserierea deplasarii spre stanga, In locul end process pr_1 ;
declaratiilor: temp_val (3 downto 1) < = temp_val pr _ 2: process
(2 downto 0); temp_val (0) = '0'; se poate begin
folosi temp_val < = temp_val (2 downto 0) & '0'; wait until elk 'event and elk ='1'
dout < = temp_val;
end process pr_2 ;
end arh A;
®..
r'\ -

A. Cum trebuie conectat un circuit 74LS9S pentru a obtine un registru de depiasare bidireqional, cu intrare serie ~i ie~ire
paraleia?

B. Referitor la schema din figura 5, raspundeti la urmatoarele intrebari:

Pentru a obtine efeetul de "lumina curgatoare" este nevoie de mai multe LED-uri a~ezate In linie (bareta luminoasa).
Daca menpnem capacitatea registrului la 4 biti cum trebuie conectate din punct de vedere electric LED-urile pentru a
obpne 0 bareta luminoasa de 32 pozitii ?
Care este infonmatia ce trebuie incarcata paralel daca dorim deplasarea unui singur LED stins ? Dar pentru un singur
LED aprins ? .
Asupra carei componente trebuie aqionat pentru a reduce viteza de curgere ?'
Daca schema este porn ita ~i deplaseaza un LED aprins, ce trebuie facut ca ea sa depiaseze un LED stins 7
Care va fi efectul vizibil pe bareta de LED-uri daca legatura dintre Qd ~i S1se face printr-un inversor logic 7

c. Folosind registre de tip 74LS95 ~i alte circuite auxiliare necesare, concepeti 0 schema de lumina dinamica cu 8 LED-uri
~tiind ca LED-ul aprins trebuie sa parcurga urmatorul ciclu: LEDD, LEDI, LED2, LED3, LED4, LED5, LED6, LED7, LED6,
LEDS, LED4, LED3, lED2, LEDI, LEDO, LEDI ..., cu aite cuvinte sensul de deplasare se schima dupa ce LED-ul aprins a
ajuns la una din extremitatile baretei.

A. Folosind facilitatea 1SE-WebPack prin care se permite descrierea proiectelor la nivel de schema logidi se cere
implementarea ~i testa rea schemelor din figurile 1, 2 ~j 4 pe macheta de laborator cu CPLD;

B. Folosind facilitatea 1SE-WebPack prin care se permite descrierea proiectelor la nivel de schema logidl se cere
implementarea ~i testa rea unui generator de numere pseudoaleatoare (vezi Figura 6) cu m=4 ~i n=2.

A. Implementati ~i verificati pe macheta de laborator cu CPLD, descrierile in limbaj VHDL prezentate ca exemple. Cum se
executa funqia de reset la registrul din exemplul 17

B. Modificati descrierea VHDL de la exemplul 2 pentru adaugarea unei intrari de ~tergere cu executie asincrona fata de
semnalul de ceas.

C. In exemplul 3, deplasarea informatiei ce a fast indlrcata paralel se face cu pierderea treptata (cate un bit la fiecare
perioada a semnalului de ceas) a datelor. Modificati descrierea VHDL de la exemplul 3 astfe! incat informatia incarcata
paralel sa fie rotita (recirculata) la nesfar~it.

D. Concepeti a descriere comportamentala pentru circuitul 74LS194 dupa care verificati corectitudinea ei pe macheta de
laborator cu CPLD.

E. Concepeti a descriere In Iimbaj VHDL ~i implementati pe macheta de laborator cu CPLD, a lumina dinamica pe 8 biti care sa
funqioneze similar cu cea din Figura 5.

F. Concepeti a descriere In Iimbaj VHDL ~i implernentap pe macheta de laborator cu CPLD, a lumina dinamica cu 8 LED-uri
~iind ca LED-ul aprins trebuie sa parcurga urmatorul ciclu: ... , LEDO, LEDI, LED2, LED3, LED4, LEDS, LED6, LED7, LED6,
LEDS, LED4, LED3, LED2, LEDI, LEDO, LEDI ..., cu alte cuvinte LED-ul aprins se deplaseaza de la stanga la dreapta ~i cand
atinge capatul baretei se deplaseaza in sens invers.

G. Concepeti a descriere In Iimbaj VHDL ?i implementap pe macheta de laborator cu CPLD, 0 lumina dinamica cu 8 LED-uri
pentru a obtine urmatorul efect: bareta se aprinde de la stanga la dreapta - dand efectul de umplere, iar dupa ce intreaga
bareta este aprinsa se stinge de la dreapta la stanga - dand efectul de golire.

H. Concepeti a descriere In Iimbaj VHDL ?i implementati pe macheta de laborator cu CPLD, un generator de numere
pseudoaieatore cu 0 secventa de cel puj;in 63 numere. Afi§area numerelor se va face In cod binar pe bareta de LED-uri sau
in zecimal pe doua afi~aje cu 7 segmente.

Pentru fiecare aplicatie este necesara deschiderea unui nou proiect dupa metodologia prezentata intr-o lucrare de inceput.

Toate aplicatiile din aceasta lucrare necesita doar un singur fi~ier sursa (fie schema logica, fie sursa VHDL) ~i un singur fi§ier de
constrangeri .
Lucrarea nr. 6: Studiu/ registre/or de dep/asare

Referitor la conectarea intrarilor ~i a ie~irilor dir. circuit facem urmato~rele precizari:

pentru comanda intrarilor de date se vor folosii switch-urile SW1, SW2, SW3, SW4;
pentru afi~area informatiei din registru se vor folos! LED-urile LED1, LED2, LED3 ~i LED4;
pentru intra rea de ceas se folose~te BTN1, pentru intrarea de reset BTN2 iar pentru intrarea de Incarcare paralela
BTN3;
pentru intrarea de comanda a sensului de deplasare se va utiliza SW8;
pentru intrarea seriala de date se va utiliza BTN8;
Toate aceste precizari trebuie sa se regaseascJ fn cont/nutu/ fi~ierului de constr,§nger~ alcJtuirea sa, speram, nu mai ridica
nici a problema.

Petru a crea un efect perceptibil de lumina dinamica


este nevoie ca frecventa semnalului ce comanda -- Exemplu de structura
library IEEE;
deplasarea informatiei din registru sa fie sub 2Hz.
use IEEE.std logic l164.all;
Daca frecventa este prea mare, vom percepe toata use IEEE.std-logic-arith.all;
ba,eta aprinsa. use IEEE.std=logic=unsigned.all;
Pentru comanda intrarii de ceas se folose~te
entity lumina dinamica is
oscilatorul de pe macheta de laboratoi cu CPLD. port ( -
Deoarece frE!cventa acestuia este de 25,1758MHz, el osc 25M : in std logic;
trebuie mal intai divlzat In frecventa ~i abia apol folosit se declara restul de intrari si
pentru comanda intrarii de ceas a registrulUi de -- iesiri necesare
deplasare. Daca ne propunem un semnal cu frecventa ) ;
de 1Hz, constanta de divizare este egala cu end lumina dinamica;
25.175.000.
architecture arh 2 of lumina dinamica is
Din punct de vedere al sintezei este mai bine sa signal cnt: std logic vector(22 down to 0);
folosim 0 constanta de divizare ce reprezinta a putere signal clk reg:-std logic;
a lui 2, spre exemplu 223 =8.388.608, ceea ce alte declaratii,daca este c3zul
begin
Inseamna 0 frecventa de ie~ire de cca. 3 Hz, valoare
-- proces pentru divizare ceas
acceptabia[ pentru aplicatiile propuse.
divizare: process (osc_25M)
In fi~ierul VHDL, pe langa descrierea propriu-zisa a begin
if (osc_25M 'event and osc_25M='l' ) then
functionarii, se va introduce un proces pentru
cnt <= cnt + 1;
divizarea semnalului preluat de la oscilatorul machetei. end if;
Modu! de intercaiare al acestui process cu restul end process divizare;
clk_reg <= cnt(22);
aplicatiei se prezinta pe coloana alaturata. Cea mal
mare divizare In frecventa se obtine daca semnalul de
atac al registrulu elk_reg e~te pre!uat de la eel mai alte procese sau declaratii concurente
semnificativ bit al semnalului cnt Pentru aceasta este pentru descrierea aplicatiilor cerute
neeesar sa faeem 0 declaratie de forma: in lucrare
elk_reg <= cnt(22};

Starea registruiui de deplasare se afi~eaza pe bareta


de LED-uri de pe macheta de Jaborator cu CPLD.
Luerarea are ea seop familiarizarea studentului cu numaratoarele asincrone. Pentru aceasta, se pune accent pe:
intelegerea structurii interne ~i a modului de funqionare; prezentarea avantajelor ~i dezavantajelor ce decurg din structura
intern a; prezentarea numaratoarelor asincrone realizate in structura integrata ce sunt disponibile pe plata (semnificatia pinilor,
particularitatile in funqionare, modul de cascadare ~i rnodul de operare cu acestea); prezentarea modului de implementare in
structuri programabile de tip CPLD folosind editoruI de scheme din rnediul ISE-WebPack; utilizarea numaratoarelor in realizarea
divizoarelor digitale de frecventa.

2.1. Clasificarea numaratoarelor


Numaratoarele sunt structuri secventiale care pot parcurge un numar de stari distincte ca urmare a aplicarii unor
impulsuri la intrarea de numarare, intrare ce este de regula notata prin CK, CP sau cPo Numarul starilor distincte este dependent
de numarul bistabililor din structura ~i de modalitatea de codificare a starilor.
Cele mai importante criterii de c1asificare a numaratoarelor sunt:

• Dupa sensu I de numarare:


inainte (sens direct);
inapoi (sens invers);
bidireqiona!e sau reversibHe (pot numara fie Inainte fie inapa!)
cu doua intrari de numarare;
cu 0 intrare de numarare ~i 0 intrare de sens.
• Dupa codul utilizat:
numaratoare in cod binar natural;
numaratoare in cod BCD;
numaratoare Johnson (numaratoare cu ie~irile decodate).
• Dupa modul de comutare a bistabililor:
asincrone, semnalul de ceas comanda in mod direct numai primul bistabil, dupa care ie~irea unui
bistabil comanda pe urmatorul;
sincrone, fiecare bistabil este comandat direct de catre semnalul de ceas.

Caracteristici generale:
Prezlnta cele mai simple scheme de realizare, motiv pentru care pretul lor este redus.
Sunt realizate prin cascadare unor celule divizoare cu 2 a frecventei. Aceste celule provin din configura rea corespunzatoare
a unor anumite tipuri de bistabili {vezl fig. 1).
Numarul starilor este: N ~ 2 NUMAR_BJSTABJL~
Semnalul de numarare se aplica numai primului bistabil aJ structurii. Comanda celorlalti bistabili se face dinspre bistabilul p
spre bistabilul p +1.
ca 0 consecinta a timpului de propagare prin bistabili, tilt ~i a modului de conectare a acestora in structura numaratorului
asincron, trecerea de la numarul i la i+1 nu se face direct, a~ cum ar fi de dorit, ci se face printr-o serie de stari
intermediare de scurta durata. Spre exemplu, trecerea de la numarul binar 1111 la 0000 se face prin lantul de stari
intermediare 1111--+ 111 O-~ 11 00--+ 1000--+ aooo.
Numarul starilor intermediare este cu atat mai mare cu cat numaratorul bistabililor din structura este mai mare.
Starile intermediare sunt fenomene nedorite de care trebuie sa se tina seama la proiectarea circuitelor comandate de dltre
ie~irile numaratorului. Daca ie~irile numaratorului sunt conectate, spre exemplu, la un circuit decodor acesta genereaza
"ciocuri" la anumite ie~iri pe durata starilor interrnediare ale numaratorului.
Aceste structuri sunt utilizate indeosebi la realizarea integrata a numaratoarelor de capacitati mari: 10, 12, 14 sau chiar 20
de biti.

"1" "1"
OUT OUT J Q OUT
IN cr/2) IN (f/2) IN CK U/2)
(f) Q
(I) (0 !'1" K Ci.

"0"

Fig. 1. Celule de divizarea cu doi a frecventei unui semnal digital

Exemplu: In fig. 2 se prezinta schema de realizare ~i simbolul unui numarator binar asincron pe 4 biti constituit din bistabili JK
activi pe tranzitia negativa a semna!ului de ceas. Structuri asemanatoare se pot realiza ~i eu bistabili de alt tip configurap ca in
fig. 1.
Pentru acest caz, avem urmatoarea semnificatie a semnalelor:
<I>intrare de numarare, sensibila (activa) la tranzitia negativa a semnalului aplicat;

R intrare de RESET, de aducere la zero a numaratorului, activa pe nivelul LOW al semnalului aplicat acestei
intrari;
Lucrarea nr. 7: Studiu/ numaratoarelor asincrone
Qd, Qb, Qc, Qa - ie~irile de numarare a caror stare logica, citite in ordinea indicata, indica in cod binar starea
numaratorului (numarul impulsurilor acumulate). Ie~irea Qd, indica cel mai semnificativ bit al stikii numaratorului
iar Qa pe cel mai putin semnificativ.

:"1"
<P : ,J
CK
,,
H
""1
R
Qa IfQb Qc Q d
Fig. 2. Exemplu de numarator binar asincron pe 4 biti realizat cu bistabili JK
Observapi:
Dupa starea maxima, In cazui de fata 1111, ia urmatorul impuls numaratorul trece de la sine In starea zero ~i continua
numararea.
Frecventa semnalelor de ie~ire scade la jumatate dupa fiecare bistabil.
Numaratorul poate fi utilizat ~i ca divizor de frecventa a semnalelor digitale.
In mod natural (fara conexiuni suplimentare, altele dedIt cele necesare cascadarii), factori de divizare In frecventa ai
semnalului de intrare sunt puteri ale lui dol.
In fig. 4 se arata, pentru situatia cea mai defavorabila, modul de aparitie a starilor intermediare datorita comenzii succesive
a bistabililor ~itimpului de Intarziere T al acestora.
Numadltoarele asincrone lucreaza corect dadi intervalu! de timp dintre doua tranzitii active ale semnalului de ceas este mai
mare decat suma intarzierilor introduse de lantul bistabililor.

SEMNALE
DE
IESlRE

SEJlIiNALE
DE
r~IRE
i 1 t 0

: 1, ,1, 4-
:~:~:~:~:
--1-5---_=======O===~
1111 ----+- 1110 -> 1100 -> 1000 -+-
Stan intermediaTe nedorite
0000

Fig. 4. Exemplificarea modulUide-apa·ri~e· a-"s-t-a-·r-j-I-o-r


-in-te-r-m-e-aiare-- neCIorite -
cazul unuT~iiumarator asincron pe 4 biti care trece
din starea 15 -40. Starile nedorite (1110, 1100 ~i 1000) sunt de scurta durata Insa pot fi sesizate de alte circuite dintr-un sistem
digital mai amplu.

In aceasta seqiune se prezinta cateva tipuri de numaratoare asincrone, mai des utilizate, ce sunt disponibile sub
forma de circuite integrate. Pentru fiecare circuit se prezinta semnificatia pinilor ~i particularitatile funqionale ale acestuia.
Din analiza foilor de catalog, In dorinta de a fi cat mai versatile, se constata ca 0 serie ce numaratoare sunt prevazute
cu facilita~ suplimentare. a parte a acestor funqii se prezinta pe scurt in continuare pentru a fadlita Intelegerea mai u~oara a
circuitelor in momentul prezentarii lor .

••FunC/ia de reversibilitate
Numaratoarele reversibile pot realiza numararea impulsurilor de intrare fie In sens crescator, fie in sens descrescator.
Aceste circuite se impart In doua categorii: a) drcuite cu doua intrari de ceas; b) circuite cu 0 intrare de ceas ~i 0 intrare de
comanda a sensului de numarare. Pentru primul caz, cele doua intrari de ceas sunt denumite COUNT UP respectiv COUNT
DOWN. In cazul doi, intrarea de ceas este denumita CLOCK iar cea de comanda UP I DOWN.
• FunC/ia de incarcare para/eta (PRESET)
Numaratoareie ce dispun de aceasta facilitate, prezinta avantajul ca pot starta n' mar2reD - -0 stare particulara, ce
se incarca in prealabil in mod para leI. Pentru a permite acest lucru, circuitul este prevazut c :
- intrari de date, notate Po, PI, ... , prin intermediul carora se specifica constanta . ara ce ie incarcata paralei;
- 0 intrare de control prin intermediui careia se comanda introducerea in bistabili a da de pe inrrarile paralele PI.
Intrarea poate fi intalnita sub diverse denumiri: LOAD, LOAD ENABLE, PARALLELLOAD ete.
Facem precizarea ca functia de incarcare paralela poate fi executata sincron sau asi, fatil'e semnalul de ceas
aplicat numaratorului. La numaratoarele cu presetare asincrona, incarcarea se executa odata OJ a . area intrarii LD §i nu tine
cont de starea logica a semnalului de ceas. Pentru numaratoarele cu presetare sincrona, ind3rcarea efectiva se executa la prima
tranzitie activa a semnalului de ceas care apare dupa activarea intrarii LD.
Trebuie ret;inut ca, pe durata activarii funqiei de indlrcare paralela, procesul de numarare este inhibat.

• FunC/ia de ~tergerea numaratorului (RESET)


Pentru aducerea in starea zero a unui numarator, marea majoritate a numaratoarelor sunt prevazute cu 0 intrare
denumita RESET. Funqie de circuitul utilizat, funct;ia de ~tergere poate fi executata sincron, sau asincron, fatil de semnalul de
ceas aplicat numaratorului. Pentru numaratoarele cu resetare asincrona, ~tergerea se face la momentul activarii intrarii RESET,
deci nesincronizat cu semnalul de ceas. In celalalt caz, numaratoare cu resetare sincrona, ?tergerea se face efectiv la prima
tranzit;ie activa a semnalului de ceas ce apare dupa activarea intrarii de RESET.
Unele firme, pentru a face distinct;ie intre cele doua modalitati de ~tergere, noteaza prin: MASTER RESET resetul
asincron, §i prin SYNCHRONOUSRESETpe cel sincron.

• Funcfia de semna/izarea a terminarii numararii (TERMINAL COUNn .


In aplicatii precum: extinderea capacitatH de numarare, realizarea divizoarE!lor programabile de frecventil etc, este
foarte utila semnalizarea in exterior a momentelor de umplerer sau dupa caz, de golire a numaratoarelor. Prin umplere se
intelege trecerea numaratorului prin starea sa maxima, iar prin golire trecerea sa prin zero.
De regula, numaratoarele reversibile au doua ie~iri destinate acestui scop: a)TERMINAL COUNT UP sau CARRY,
pentru semnalizarea umplerii; b) TERMINAL COUNT DOWN sau BORROW, pentru semnalizarea golirii.
Numaratoarele unidirectionale prezinta 0 ie~ire TERMINAL COUNT prin care semnalizeaza trecerea prin starea maxima
a acestora.

• Circuitu! 14 LS 93 - numarator binar asincron pe 4 bit;i


Circuitul este activ pe tranzi~ia negativa a semnalului de ceas.
Este organizat in doua seqiuni: prima realizeaza 0 divizare cu 2 a frecventei de intrarer iar a doua 0 divizare cu 8.
Un numarator binar pe 4 bitir cu intrarea pe CPOr se obtine prin realizarea unei conexiuni exteme intre QO~i CPt.
~tergerea numaratorului se executa asincron prin MR1 = MR2 =1.

14 LS 93 2 J
CP1 12

CPo 14 MR
CPo
cp]
MRI
MRZ

• Circuitul 74 LS 92 - numarator modulo 12 (divizor cu 12)


Circuitul este activ pe tranzitia negativa a semnalului de ceas.
Este organizat in doua sectiuni: prima realizeaza 0 divizare cu 2 a frecventei de intrare, iar a doua 0 divizare OJ 6.
Un divizor cu 12r cu intrarea pe CPO,se obt;ine prin realizarea unei conexiuni externe intre QO ~iCP1.
~tergerea numaratorului se executa in mod asincron prin MR1 = MR2 =1.
1US 92 6 1

14 MR
CPo 1US 92
CP1

• Circuitul 14 LS 90 - numarator BCD asincron


Circuitul este activ pe tranzitia negativa a semna!ului de ceas.
Este organizat in doua sectiuni: prima realizeaza 0 divizare cu 2 a frecven~ei de intrarer iar a doua 0 divizare cu 5.
Un numarator BCD, cu intrarea pe CPOr se ob~ine prin realizarea unei conexiuni externe intre QO!fi CP1.
$tergerea numaratorului se executa in mod asincron prin MR1 = 1-1R2=1.
Prin MS1= MS2 =1, in numarator se incarca in mod asincron constanta 9.
cp] 1

MR1 2

MR2

NC

VCC •

• Circuitele: 74 LS 196 - numarator BCD asincron presetabil


74 LS 197 - numarator binar presetabil pe 4 biti
Circuitele sunt active pe tranzitia negativa a semnalului de ceas.
Circuitele sunt organizate in doua seqiuni: prima realizeaza 0 divizare cu 2 a frecventei de intrare, lar a doua 0
divizare cu 5 respectiv cu 8.
Pentru LS196 un numarator BCD, cu intrarea pe CPO,se obtine prin realizarea unei conexiuni externe intre QO ~iCPi.
Pentru LS197 un numiirator binar pe 4 biti, cu intrarea pe CPO,se obtine prin realizarea unei conexiuni externe intre
QO ~i CP1.
$tergerea numaratoarelor se executa In mod asincron pentru MR =0.
Indlrcarea paralela se face in mod asincron prin PL =0.

8 _ Pi:. Po P, p.
12 03
CPo 74lS196
(74lS197) l' P3
CP1 MR 00 Q1 02 03 P,
9 01
6 CPo
Fig. 8. Circuitul 74LS196/ (74LS197): simbollogic, pinout

Extinderea capacitatii de numarare se face prin conectarea convenabila a mal multor circuite de capacitate mai mica.
Modul de conectarea este depindent de circuitele utilizate §i de performantele impuse numaratorului mare ce trebuie realizat.
Cascadarea numaratoare/or asincrone se face simplu, prin interconectarea bitului MSB al numaratorului n-l, la
intrarea de ceas a numaratorului n. Aceasta metoda este cunoscuta sub denumirea de Ripple Count Noua structura, de
capacitate mal mare, are tot comportament de numad3tor asineron.

Divizorul digital de frecventa este un circuit ce realizeaza 0 reducere, cu un anumit coeficient, a frecventei semnalului
de intrare. De regula, coeficientul de divizare este un numar intreg. Atragem atentia asupra faptului ca semnalele de intrare ~i
de ie§ire sunt digitale, deci trebuie sa respecte nivelele de tensiune asociate prin standard pentru ambele stari log ice.
Din analiza semnalelor prezentate in figura 3 se observa destul de clar di un numarator binar poate fi utilizat pentru
obtinerea unor factori de divizare ce reprezinta puteri ale eifrei 2 ( spre exemplu divizare cu 2, cu 4, cu 8, cu 16, etc.).
In diverse aplicatii practice apare necesiatea utilizarii unor factori de divizare ce nu reprezinta puteri ale cifrei 2, (spre
exemplu divizari cu 10). Pentru astfel de cazuri este necesar sa utilizam In mod convenabil facilitatea de §tergere (Reset).
In principiu, realizarea unui divizor de frecventa cu factorul de divizare k, este echivalent cu sinteza unui numarator
cu k stari distincte. Pentru aceasta este necesar sa alegem un numarator binar cu 2 N stari distincte, insa trebuie avut grije sa
fie indeplinita conditia k< 2N, unde n reprezinta numarul de bistabili ai numaratorului binar.
Daca nu intervenim in nici un fel asupra numaratorului binar acesta va avea 2 N stari distincte §i nu k stari distincte
cum dorim noi. Pentru a rezolva aceasta problema este necesar sa impartim starile numaratorului in doua categorii:
starl permise (starile de la 0 fa k-1) - pe durata acestor starl funqia de §tergere nu trebuie activata;
starl nepermise (starile mai mari dedit k) - pe durata acestor stari funqia de §tergere trebuie activata.
A§adar, trebuie proiectat un CLC care prim~te la intrare starea numaratorului §i genereaza la ie§ire un semnal de
comanda a intrarii de reset a numaratorului binar.

Nr.
Denumire etapa Observatii
etaDa
Alegerea numaratorului binar §i alcatuirea unui tabel cu Avem nevoie de un numarator binar de eel putin
1
succesiunea starilor orin care trece acesta 4 biti
Separarea starilor permise de cele nepermise
Numaratoarea starilor permise se incepe in mod
2
obigatoriu cu starea 0;
IQ D QC Q. Q. ! R. Observatii In momentul In care circuitul ajunge In starea
1100, intra rea de ~ergere se activeaza ~i
0 0 0 a I 1
numaratorul este fortat sa treaca In starea 0000;
0 0 0 1
0 0 0 I~ Stari permise I Prima stare nedorita este "atinsa tangen~al", se
0 0 1 1 1 ( Functia de sterge!! trebuie sa trece prin ea doar cateva nanosecunde. Aceasta
0 1 0 0 1 fie inactiva R = 1) stare nu este lasata sa existe.
0 1 0 1 1
1 a 1 Functia de Reset este necesar sa fie aetiva doar
0 1
In prima stare nedorita. In restul starilor nedorite
0 1 1 1 1
funqia de ~tergere poate avea valoarea
1 0 0 0 1
1 0 0 1 1 I *=don't care, deoarece numaratorul nu mai
are cum sa tread! prin aceste stari.
1 0 1 0 1 I
1 0 1 1 1 I I
1 1 0
a
0 0

Stari nepermise
I
1
1
1
1 1
1
0
(Functla de sterge~ trebu~
fie act/va R = 0) I
1 1 1 1 I
5inteza CLC-ului pentru comanda intrarii de ~tergere. Se aplica a doua Jorma canonica ~i se tine cont
3 de faptul ca *, poate fi considerata '0' sau '1'.
R =Qd+Qc=Qd Qc
Realizarea schemei log ice Durata de '1' a semnalul de ie~ire este egala cu
4 perioade ale semnalului de intrare;
Durata de '0' a semnalul de ie~iie este egala cu
8 perioade ale semnalului de intrare;


(fout= 1~ )

Foarte multe scheme digitale sunt formate dintr-o celula de baza care este repetata de un anumit numar de orl (1n
aceasta categorie se lncadreaza ~i numaratoare!e binare asincrone). Pentru astfe de scheme este utila definirea unui simbol
propriu (conceput de catre noi) prin care sa reprezentam celula de baza a schemeL
Modulln care se define~te un nou simbol precum ~iasocierea acestui simbol cu 0 anumiti:i schema interna se prezinta In
exemplul de mai jos.
Exemp!u: Realizarea unui divizor de frecventa folosind un sirnbol ata~at structurii de numarator din figura 2.

Nr. Denumire etapa MOddelucru


Din fereastra Project Navigatorse executa urmatoarea secventa de comenzi:
1 Deschiderea unui nou proiect File-,> New Project-,> se atribuie un nume (spre exemplu num_ 4bit) -'> OK
-'> ...
1. 5ecventa de comenzi este: Project-,> New Sources-,>Sch"ematic~i se
Adaugam la proiect un fi~ier nou atribuie un nume (spre exemplu divJIt; -'> Next-,>Fiiiish. In urme acestor
de tip schema logica In care comenzi se lanseaza editorul de scheme loglce.
I
I
descriem schema interna a
celulei de baza. 2. 5e deseneaza schema unui divizor de frecventa cu 2 reaiizata cu bistabil jk:

in exemplul de faJa, celula de


I • se aduce un bistabii JK In fereastra de lucru prin secventa de comenzi:
Symbols-'> Flip-Rops-,> fjkc-,> deplasarea mouse In campul de desen -'>
bazJ este un bistabil JK conectat e1icstanga pentru plasare componenta;
astfel fncat sa realizeze 0 • trasare conexini prin secventa de comenzl: Add~ Wire-,> deplasare
divizare cu 2 a frecvenjei mouse pana la un capat al firului -'> e1icdreatpa cu menpnere ~ideplasare
semnalului de intrare. pana la ce!alalt capat a! firului -'> eliberare buton stanga;

2 Atenpe: Bistabilii din interiorul


• adaugarea de pini de intrare/ie~ire prin secventa de comenzi: Add-'> I/O I
CPLD au toate intrarile active pe
I Marker -'> din fereastra Options se alege dupa caz Add an input marker

'1' iar intrarea de ceas este


I sau Add an output marker -'> se deplaseaza mouseulln zona de lucru ~i se
face e1icdreapta pentru amplasare -'> se apasa butonul sageata orientata spre
activa pe tranzijia pozitiva. stanga (de pe too!sbarul superior) -'> se face dublu e1icpe marker -'> In
fereastra aparuta se modifica proprietatea Name OJ denumirea dorita a
Dupa generarea simbolului intrarii/ie~irii -,>OK.
grafic, avem la dispozijie un • Dupa terminarea desenului se salveaza prin File-'> save.
simbol (definit de not cu numele
divJk), simbol ce poate fi
folosit drept component a in alte
I
I
scheme. I
Denumirea asociata simbo/u/ui
este aceia~i cu denumirea
fi5ieru/uicei descrie conJinutul.

3. Se asocoaza schemei logice un simbol grafic


• Se revine in Project Navigatoqi se executa urmatoarea secventa de
comenzi: In fereastra Source in Projectse alege divJk -+ In fereastra
Processes for current SDurcesse face dublu e1icpe Create Schematic
Symbol.

~f
Qo.,-· .•.• in
• ; r,

!.
5-·---{c{r

Adaugam la proiect un nou fi~ier 1. Din fereastra Project Navigator, printr-o secventa de comenzi ce a fost
de tip schema in care descriem
struetura interna a
I deja descrisa,
n_asincron4.
se introduce un nou fi~ier de tip schema logidl, denumit
I
numaratoruiui.
i 2. In editorul de scheme se verifieil lista simbolurilor disponibile pentru a
in exemp/u/ de fatii, vom /ega In I constata prezenta simbolului generat de noi, div..Jk . Pentru aceasta I In
cascada 4 simbo/uri de divJk I textboxul Categories trebuie sa existe 0 linie de forma
pentru a rea/iza un numarator <c:jcidjproiecte_vhdl/rlUm_4bit>, linie ce indica locul unde se afla amplasat
binar pe 4 biti. proiectu! nostru. Dad\ se selecteaza aceasta linie, In textboxul S)'mbolstrebuie
sa existe ~i divJk.
Din schema se observa ca avem I
4 b/ocuri div2Jk, conectate 3. Desenarea ~i salva rea schemei numaratorului se face similar cazului anterior,
similar schemei din figura 2. . div2jk
~~---'-

1-:-El_2' div2jk' . , , :

~:;t"•• C~~

I'
I
L
CEl_<
div2 ik ==: .
I .-'~ -c.'~
~~dl . ~::.

I: L': ~din~k' . - . .

J'l~~" ·~~'I---@D
4. Generarea unui simbol rafic entru numarator similar cazului anterior
Adaugarea fi~ierului de 1. Din fereastra Project Navigator I printr-o secventa de comenzi deja
constrangeri. cunoscuta se adauga un nou fi~ier de tip Implementation Constrains File.
Dupa declararea numelui, acest fi~ier trebuie asociat cu schema n_asincron4.
Atenpe: Aceasta etapa este Pentru comanda intrarii de ceas NET "RESET" LaC = "P83";
necesara numai daca dorim se folose~e contactul cu revenire NET "CK_IN" Lac = "P5G";
testarea structurii numaratorului. BTN1; NET "QD" Lac = "P62";
Pentru comanda intrarii de NET "QC" LOC = "P65";
~ergere se folose~te BTN5; NET "QB" laC = "P67";
Afi~area starii numaratorului se NET "QA" Lac = "P69";
face e LED-urile LDl-,-LD4.
1. Din fereastra Project Navigator, printr-o secventa de comenzi deja
cunoscuta se introduce un nou fi~ier de tip schema logica, denumit div_9.

Adaugam la piOiect un nou fi~ier 2. In editorul de scheme se verifieil lista simbolurilor disponibile pentru a
de tip schema !ogica in care constata prezenta simbolului asociat pentru numaratorul n_8sincron4.
descriem schema divizorului de
frecventa· 3. Se deseneaza schema divizorului de frecventa de mai jos.
Dupa desenare exista posibilitatea de a vizualiza struetura interna a
numaratorului. Pentru aceasta trebuie parcursa urmatoarea secventa de
comenzi: In editorul de scheme se marcheaza simbolul n_8sincron4 apoi
View ~ Push Into Symbol Va apare 0 schema identidi cu cea din Iinia 4 a
acestui tabel. Chiar ;;1 de aici se poate merge pe adancime, in sensul ca se
poate vizualiza care este schema logica a bloculul div2..Jk.

Adaugarea fi;;ierului de
constrangeri. 1. Din fereastra Project Navigator, printr-o secventa de comenzi deja
cunoscuta se adauga un nou fi;;ier de tip Implementation Constrains File.
Dupa introducerea acestui tiffier Dupa declararea numelul, acest fi;;ier trebuie asociat cu schema dip/_g.
se observa 0 rearanjare a Pentru comanda Intrarii se NET "INTRARE" LaC = "PS6";
surselor implicate in proiect, folose;;te BTN1; NET "Q3" Lac = "P62";
tiffierul div_9 devine principal Afi;;area starii numaratorului NET "Q2" Lac = "P6S";
se face pe LED-urile LDl-eLD4. NET "Ql" LaC = "P67";
NET "QO" LOC = "P69":

A. Realizati pe macheta de test schemele din figura 9, dupa care vizualizati cu ajutorul osciloscopului cu doua canale forme!e
de unda de la intrarea ;;i ie;;irile numaratorului. Desenati corelat in timp aceste semnale.

fntrebJri:
care sunt starile prin care trece numaratorul pentru cele doua cazuri considerate?
Ce factor de divizare in frecventa realizeaza fiecare schema? Ce observatii puteti face referitor la factorul de umplere
al semnalelor de la ie~irile numaratorului ?
Ce se modifica In funqionarea schemei daca se lntrerupe legatura de la Ql la MRl?

2. Folosind circuitul 7493 se cere realizarea unor divizoare de frecventa cu urmatorii factori de divizare ai frecventei:
a) divizare cu 5; b) divizare cu 9; c) divizare cu 10; c) divizare cu 13; .
Pentru cele patru cazuri se cer scheme Ie electrice ;;1 formele de unda de la ie;;irile Q3.
4. Analizati funqionarea circuitului din figura 11, circuit ce
reprezinta 0 alta modalitate de obtinere a divizoarelor de
freclient3 cu factori mari de divizare.
Dupa realizarea schemei pe macheta de test, la
intrare se aplica un semnal TIL cu 0 frecventa de
aproximativ 100 Khz. Pe un canal al osciloscopului se
vizualizeaza semnalul de !ntrare, iar pe celalalt canal se
aplica succesiv semnalele din punctele A, B, C.
Se deseneaza coreiat in timp semnalul de intrare ~i
semnalele din punctele A, B, C.

Care este rolul portii AND 7


Care este factorul de divizare al fied\rui
circuit ~i care este factoru! de divizare global
obtinut la ie~irea C ?
Care este avantajul acestei metode 12
comparativ cu cea utilizata in schema ---- --------------------
anterioara ? Fig. 1l.
Ce factor de umplere au semnalele din punctele A ~i B ? Se modifica funqionarea schemel dadi factorul de
umplere al celor doua semnale (din A ~i B) este altul ? Exemplificati pe un caz concreto

A. Verifica!! pe macheta de laborator proiectul prezentat ca exemplu In tabelul 2 din prezenta lucrare de laborator.
Urmariti succesiunea starilor prin care trece numaratorul (pe bareta de LED-uri), atuna cand apasati butonul cu
revenire BTNl.

B. Adaugati la proiectul din tabelul 2 un decodificator BCD-7segmente pentru afi~area starii numaratorului pe primul digit
al machetei de laborator. Notati succesiunea starilor prin care trece numaratorul.

C. Interveniti asupra celulei de divizare, div2JIdJ ~i eliminati din schema logica inversorul (pinul de intrare intrarea f:....in
se conecteaza direct la intra rea de ceas a bistabilului JK). Refaceti implemetarea si urmar!ti sucesiunea starilor prin
care trece numaratorul. Ce se constata fata de cazul anterior 7

D. Folosind modul de lucru prezentat In tabelu! 2 ~i !inand cont de structura interna a numaratorului 74LS93 din figura 5
(atentie, toate intrarile ] ~i K trebuie conectate la '1 J, realizati dlte 0 implementare pentru fiecare schema din figura
9.
E. Folosind modul de lucru prezentat In tabelul 2 ~i tinand cont de structura interna a numaratorului 74LS93 din figura 5
(atentie, taate intrarile J ~i K trebuie conectate la '1 J' realizati 0 implementare pentru divizorul de frecventa din figura
11.

Pentru fiecare aplicatie este necesara deschiderea unui nou proiect dupa metodologia prezentata lntr-o lucrare de laborator
anterioara.

Toate aplicapile din aceasta lucrare necesita doar un singur fi~ier sursa (de tip schema logica) ~i un singur fiijier de constrangeri.

Referitor la comanda intrarii de ceas facem urmatoarele precizari:

Intrarea de ces se peate comanda printr-un buton cu revenire (spre exemplu BTN1). Deoarece exista riscul aparipei de
oscilatii la apasarea butonului, se recomanda urmarirea starilor prin care trece numaratorul pentru mai multe cicluri
complete ale sale;

o metoda lii mai buna de comanda a intrarii de ceas consta In folosirea unui semnal digital periodic cu frecventa suficient
de mica pentru a putea urmari succesiunea starilor prin care trece numaratorul. Pentru aceasta, putem folosi semnalul de
la pinul P9 al CPLD, semnal ce are 0 frecventa de 25,175MHz. In schema logidl, lntre pinul P9 lii intrarea de ceas a
numaratorului testat intercalam un numarator binar pe 24 de bit'- In aceste conditii, semnalul cules de pe ieliirea cea mai
semnificativa a numaratorului va avea frecventa de cca. 1,5Hz, valoare ce ne permite vizualizarea starilor prin care trece
numaratorul.

Intrarea de reset se comanda prin BTN7;


Intrarea de lncarcare paraleli! se comanda printr-un sWitch;
Afiliarea starii numaratorului se face pe LED-uri;
Filiierul de constrangeri este similar celui prezentat In tabelul 2, Iinia6;

©
Lucrarea are ca scop familiarizarea studentului cu numadltoarelor sincrone. Pentru aceasta, se pune accent pe:
Intelegerea structurii inteme ~i a modului de funqionare; prezentarea avantajelor ~i dezavantajelor ce decurg din structura
intema; prezentarea numaratoarelor sincrone realizate In structura integrata ce sunt disponibile pe piata (semnificatia pinilor,
particularitatile In funqionare, modul de cascadare ~i modul de operare cu acestea); prezentarea modalitaplor de extindere a
capacitapi de numarare; prezentarea modalitatilor de descrierea in Iimbaj VHDL; implementarea In structuri logice programabile
de tip CPLD; utilizarea numaratoarelor:n realizarea divizoarelor digitale de frecventa.

caracteristici generale:
Schema logica a unei structuri de numarator sincron este mult mai complexa fata de cazul numaratoarelor asincrone ~i
cre~e odata cu cre~terea capacitatii numaratorului.
Semnalul de ceas se aplica simultan tuturor bistabililor din schema.
Comutarea unui bistabil se face sincron cu semnalul de ceas numai dadi toti bistabilii anteriori acestuia sunt in unu logic.
Nu prezinta stari intermediare nedorite.
Din cauza complexitatii mai ridieate, de eele mai multe or! numi:\ratoare!e sincrone integrate sunt de caDacita~ mici 4, 8 bip.
Structurile sincrone sunt utilizate, cel mai adesea, pentru realizarea de numaratoare mai complexe, structuri care au
fadlitati suplimentare precum: Incarcarea paralela, controlul numararii, numarare In ambele sensuri, semnalizarea
terminarii numararii etc.

Exemplu: 0 schema posibila de numarator binar sincron unidire~onal pe 4 biti, fara facilitati speciale, este prezentata In fig.
1. Semnificatia semnalelor din aceasta schema este urmatoarea:
<I>intrare de numarare, sensibila (activa) la tranzitia negativa;

R intrare de ~tergere asincrona a numaratorului, activa pe zero logic;


Qd, Qb, Qc, Qa - ie~irile numaratorului prin care se indica in exterior, in cod binar, numarul impulsurilor
Inregistrate. Ie~irea Qd este cel mai semnificativ bit, iar Qa cel mai putin semnificativ bit.
CE (Count Enable), intrare activa pe unu logic eu rol de validare a numararii. Pentru CE= 0 numararea nu este
permisa jar pentru CE=l se desfa~oara In ritmul semnalului aplicat intrarii <I>;

Fig. 1. Structura de numarator binar sjncron pe 4 biti

Analiz€md succesiunea starilor prin care trece numaratorulln cod binar natural, se observa ca schimbarea unui bit se
face numai atunci cand toti bipi anteriori lui, de ponderi inferioare, sunt "unu". Aceste situatij sunt identificate cu ajutorul po!1ilor
AND ce sunt conectate In fata fiecarui bistabil.
in plus,la AND-uri se mai conecteaza intra rea de CE cu scopul de a introduce 0 facilitate suplimentara - aceea de a
valida sau nu procesul de numarare. Daca CE= 0 toate portile AND au ie~irile fortate in "0", fapt ce determina bistabilii T sa fie
in regim de rnemorare a starii anterioare. Cu alte cuvinte, atata timp cat CE= 0 starea numaratorului nu se modifica chiar daca
la intrarea <I>se apliea impulsuri. Pentru CE= 1 procesul de numarare este permis.

in aceasta se~une se prezinta cateva tipuri de numaratoare asincrone, mai des utilizate, ce sunt disponibile sub
forma de circuite integrate. Pentru fiecare circuit se prezinta semnificatia pinilor ~i particularitatile functionale ale acestuia.
Reamintim ~i principalele funqii ce pot fi intalnite la numaratoareie realizate in structuri integrate .
• Funcfia de reversibilitate
Numaratoarele reversibile pot realiza numararea impulsurilor de intrare fie in sens crescator, fie in sens descrescator.
Aceste circuite se impart in doua categorii: a) circuite cu doua intrari de ceas; b) circuite eu 0 intrare de eeas ~i 0 intrare de
comanda a sensului de numarare. Pentru primul caz, cele doua intrari de ceas sunt denumite COUNT UP respectiv COUNT
DOWN. In cazul dol, intrarea de ceas este denumlta CLOCK iar cea de comanda UP! DOWN .

• Func/ia de incarcare paralela (PRESET)


Numaratoarele ce dispun de aceasta facilitate, prezinta avantajul ca pot starta numararea dintr-o stare particulara, ce
se incarca in prealabil in mod paralel. Pentru a permite acest lucru, circuitul este prevazut cu:
- intrari de date, notate Po, PJ, ••• , prin intermediul carora se specifica constanta binara ce trebuie incarcata paralel;
- 0 intrare de control prin intermediul careia se comanda introducerea in bistabili a datelor de pe intdkile paralele PI.
Intrarea poate fi intalnita sub diverse denumiri: LOAD, LOAD ENABLE, PARALLELLOAD etc.
Facem precizarea ca fund;ia de indlrcare paralela poate fi executata sincron sau asincron fatii de semnalul de ceas
aplicat numaratorului. La numaratoarele cu presetare asincrona, incarcarea se executa odata cu activarea intrarii LD ~i nu tine
cont de starea logica a semnalului de ceas. Pentru numaratoarele cu presetare sincrona, inca rearea efectiva se executa la prima
tranziye activa a semnalului de ceas care apare dupa activarea intrarii LD.
Trebuie retinut ca, pe durata activarii fund;iei de incarcare paralela, procesul de numarare este inhibat.

• Funcfia de Itergere a numaratorului (RESET)


Pentru aducerea in starea zero a unui numarator, marea majoritate a numaratoarelor sunt prevazute cu 0 intrare
denumita RESer. Fund;ie de circuitul utilizat, functia de ~tergere poate fi executata sincron, sau asincron, fata de semnalul de
ceas aplicat numaratorului. Pentru numaratoarele cu resetare asincrona, ~tergerea se face la momentul activarii intrarii RESer,
deci nesincronizat cu semnalul de ceas. In celalalt caz, numaratoare cu resetare sincrona, ~ergerea se face efectiv la prima
tranzitie activa a semnalului de ceas ce apare dupa activarea intrarii de RESET.
Unele firme, pentru a face distind;ie intre cele doua modalitati de ~tergere, noteaza prin: MASTER RESer resetul
asincron, ~i prin SYNCHRONOUSRESET pe eel sincron.

• Functia de semnalizarea a terminarii numararii (TERMINAL COUNT)


In aplicatii precum: extinderea capacitatii de numarare, realizarea divizoarelor programabile de frecventii etc, este
foarte utila semnalizarea in exterior a momentelor de umplere, sau dupa caz, de golire a numaratoarelor. Prin umplere se
intelege trecerea numaratorului prin starea sa maxima, iar prin golire trecerea sa prin zero.
De regula, numaratoarele reversibile au doua ie~iri destinate acestui scop: a) TERMINAL COUNT UP sau CARRY,
pentru semnalizarea umplerii; b) TERMINAL COUNT DOWN sau BORROW, pentru semnalizarea golirii.
Numaratoarele unidired;ionale prezinta 0 ie~ire TERMINAL COUNT prin care semnalizeaza trecerea prin starea maxima
a acestora .

• Circuitele: 74lS160A, 74i.S162A - numaratoare BCD sincrone presetabile


74LS 161A, 74LS163A - numaratoare binare sincrone presetabile pe 4 biti
Circuitele sunt active pe tranzitia pozitiva a semnalului de ceas.
Contorizare daca: CEp·CET·PE= 1
Stergerea numaratoarelor se executa:
-In mod asincron pentru LS160A ~i LS161, daca .MR=O
-In mod sincron pentru LS162A ~i LS163, daca SR =0 ~i tranziye t pe CPo

Incarcarea paralela se face sincron pentru toate circuitele daca: PE =0 ~i tranzitie t pe CPo
Semnalizarea umplerii numaratorului (terminarea numararii):
- TC= eET· QoQ, QZQ3 pentru LS160 ~i LS162
- TC= eET· QOQI Q2 Q3 pentru LS160 ~i LS162

Circuit Numaran: lOAD RESET 9 Vcc


74 lS 160 A BCD sincron tlsincrtlu TC
FiE Po PI P2 P3
HLS1S1A binar sim;:ron asincron CEP
74LS 162A BCD sincron slncron 10 1~
CET TC
2
74 LSI63 A bloar sincron sincron CP
R*
CEp· Counl Enable Parallel
CET - Counl Enable Trickle
~ - Clock (Active HIGH Going Edge)lnpul
PI: - Parallel Enable [Active LOW! Inpul
TC - Terminal Count Output
R- {tiR - Master Flese! !Active LOW) Input lor LS16fiA and lS161A
!rn - Synchronous Resel [Active LOW) Inpul In' lS162 and LS163A
00- 03 - Parallel Outputs
Po- P3 - Para!lellnputs

Ie~irea TC prezinta spikes-uri datorita decodarilor interne, deci nu se recomanda a fi utilizata pentru: comanda altor
numaratoare, resetari asincrone, incardiri paralele asincrone, comanda ceasului la bistabili ~i registre.
Numaratoarele BCD pot fi aduse intr-o stare i1egala prin incarcare paralela sau la conectarea tensiuni! de alirnentare.
Dintr-o stare ilegaia circuitele ajung in una legala in doua perioade de ceas.
2.3.2. Numaratoare sincrone bidirectionale presetabile

• Circuitele: 74LS168 - numarator BCD bidirectional sincron presetabii


74LS 169 - numarator binar bidirectional sincron presetabil pe 4 biti
Circuitele sunt active pe tranzitia pozitiva a semnalului de ceas.
Contorizare

-lnainte dad: CEP· CET PE = 1 ~i ulJ5 = 1

-inapoi daca: CEp· CET· PE = 1 ~i U/75 = 0

Incarcarea paralela se face sincron pentru ambele circuitele daca: PE =0 ~i tranzipe t pe CPo
Semnalizarea umplerii numaratorului (terminarea numararii):
- TC == QOQ;Q2Q3 . CET pentru LS1681a numararea lnainte (U /15 = 1);
- TC == QOQI Q2Q3 ' CET pentru LS169 la numararea lnainte (ujn= 1);

- TC = QoQ; Q2QJ ' CET pentru ambele circuite la numararea lnapoi (U /15 = 0).

Pentru circuitul LS168, ie~irea TC se activeaza i1egalln starile nepermise 11,13 ~i 15.
Ie~irea TC prezinta spikes-uri datorita decodarilor interne, deci nu se recomanda a fi utilizata pentru: comanda intrarii
de ceas a altor numaratoare, resetari sau presetari asincrone, comanda ceasului la bistabili sau registre.
Numaratoarele BCD pot fi aduse In stari ilegale, fie la conectarea tensiunii de alimentare, fie prin lncarcare paralela.
Dintr-o stare i1egala circuitele ajung In una legala In doua perioade de ceas.

I Numarare LOAD
Circuit Vcc
74LS 168A BCD sincron
TC
1 Po P1 P2 P;j
74 LS 169 A binar sincron
ufD °0
7
74lS 168A 15
CEP - Count Enable Parallel (Active lOW) Input 10
CEP
Tc a1
CET - Count Enable Trickle (Active lOW) Input
CP - Clock ( Active HIGH Going Edge] Input 2
err 174LS169A!
Q2
CP °0 01 °2 °3
FiE - Parallel Enable (Active LOW) 'Inpul °3
TC - Terminal Count Output [Active lOWj Input
00- 03 - Pa.allel Outputs ffi
Po- PJ - Pa.allel Inputs
ufo Up - Down Count Control Input

• Circuitele: 74LS190 - numarator BCD bidirectional sincron presetabil


74LS 191 - numarator binar bidirectional sincron presetabil pe 4 bip
Circuitele sunt active pe tranzitia pozitiva a semnalului de ceas.
Contorizare :
- lnainte daca: CE = 0 ~i U/D = 0
-lnapoi dacii: CE = 0 ~i DID = 1

Incarcarea paralela se face asincron pentru ambele circuitele daca P L = O.


Semnalizarea umplerii numaratorului (terminarea numararii):
TC ~ QOQ3 pentru 1.5190 la numararea lnainte (DID = 0);
• TC == QOQJQ2QJ pentru LS1911a numararea inainte (DID == 0 );

- TC == Qo Q; Q2 Q3 pentru ambele circuite la numararea lnapoi (DID == 1 ).


Ie~irea TC prezinta spikes-uri datorita decodarilor interne, deci nu se recomanda a fi utilizata pentru: comanda intrarii
de ceas a altor numaratoare, resetari sau presetari asinerone, comanda ceasului la bistabili sau registre.
Ie~irea RC este activa pe zero logic ~i semnalizeaza tot terminarea numarari, insa durata de activare este egala cu
durata de zero a semnalului de ceas. Dad TC= 1 ~i CE = 0 ,ie~irea RC se activeaza la prima tranzitie negativa a semnalului
de ceas ~i dureaza pan a la prima tranzitie pozitiva a semnalului de eeas. Aceastil ie~ire nu prezinta spikes-uri ~ieste utila pentru
cascadarea numaratoarelor,
Trecerea din zero In unu a intrarii CE trebuie facuta numai pe CP=1.
Modificarea starii intrarii DID trebuie facuta pe CP=l sau pe CE =1.
Numaratorul BCD poate fi adus In stari ilegale, fie la conectarea tensiunii de alimentare, fie prin 'incarcare paralela.
Dintr-o stare ilegala circuitul reintra In secventa legala In doua perioade de ceas.
I Circuit
j74LS190
Numarare

BCD
lOAD
sincroa
P1

0,
1 Vcc
2 Po
5
Pl Po PI P2 P3
binar
IHLS191 sincron
ufo 13 00 3 CP

"i"~""
4 74LS190 RC
CE - Count Enable (Active LOWllnput 14 CE 174lS191)
TC
12 RC
£e - Cloc~ (Active HIGH Going Edge) Input CP 00 01 02 03
010 5 74LS191
PL - Parallel Load (Active LOWllnpul
TC - Terminal Count OUlput (Acllve HIGH) Oulput
DID Up - Down Counl Control Input
Q2 6 Pi:
RC Ripple Clock Output 03 7 P2
00- 03 - Paralle' Outputs GND 6 9 P3
Po- P3 - Par.lld "'puts

• Circuitele: 74LS192 - numarator BCD bidirectional sincron presetabil


74LS 193 - numarator binar bidireqional sincron presetabil pe 4 biti
Circuitele sunt active pe tranzitia pozitiva a semnalului de eeas.
Contorizare daea PL = 1 ;;i MS=O
- Inainte dad3: CP D = 1 §i CP u prime§te semnalul de numarare.
-Inapai dad'!: CPu =1 §i CPD prime§te semnalul de numarare.

Incarcarea paralela se face asincron pentru ambele eircuitele daca PL = o.

I
I
Circuit Numararc lOAD RESET
i74lS192 BCD ~sincron asincmn
Po PI P2 PJ MR
l74lS193 binar asincron asincron
74lS192
0u- 03 - Parallel Outputs (74lS193j
Po- P3 - Parlillei Inputs 00 01 02 03
CPu - Count Up Cloe~ Pulse [Actl"e HIGHGoin9 Edge) Input
CPo - Cuunt Down Clucl: Pulse [Active HIGHGoing Edgellnpul
MR - AsyndltolllJuS M3ster Reset (Active HIGHlinput
Pi: - Asynchronous P>lrallel Load (p.ctlveLOW)tnpul
TC" - Terminal Count UpfActi,," LOW] OUlput
Teo· Terminal Cour.t DownfActive LO\V) Outpnt

Terminarea numilrarii este semna(izata prin dous ie§iri active pe zero logic:
- TCv pentru umplerea numaratorului (trecerea prin 9 in cazu( LS192, respectiv trecerea prin 15 In cazul LS193) dar
numai la numararea lnainte;
- TC D pentru treeerea prin zero a numaratoarelor, numai la numararea Inapoi.
Ie§irile Tel! §i TCD nu prezinta spikes-un deei pot fi utilizate pentru cascadarea circuitelor. Daca conditiile de
activare specificate anterior sunt Indeplinite, activarea efectiva Incepe cu prima tranzitie negativa §i se termina la prima tranzitie
pozitiva a semnalului de ceas.
Pentru numaratorul BCD, ie§irea dintr-o stare nepermisa ~i intrarea In secventa legala se face In doua perioade de

Extinderea capacitatii de numarare se face prin conectarea convenabila a mai multor circuite de capacitate mai mica.
Modul de conectarea depinde de circuitele utilizate §i de performantele impuse numaratoru!ui mare ce trebuie realizat.
cascadarea numaratoarelor sincrone poate fi realizata In cateva maduri, dintre care unele pierd caracterul sincron al
numaratorului mare .

• Modul Ripple Clock este ilustrat In figura 6. Pentru acest mod, se observa ca primul circuit numara impulsurile
provenite de la semnalul de ceas, iar oricare alt circuit contorizeaza de cate ori s-a umplut circuitul anterior.

Sr.ns
Loa'd

5 - Pi: Po PI P2 P3

Er;;;i;Ie 4 l!10 74LS190 RC


14 CE 174LS1911 TC
CK CP 00 01 02 03

J I 2 6 r 3, 21 6 I,

Fig. 6. Cascadarea numaratoarelor sincrone In modul Ripple Clock


Referitor la acest mod de lucru se pot face urmatoareie obsen/atii:
pe ansamblu, schema pierde caraderul de numarare sincrona de~i toate numaratoarele din structura sunt
sincrone;
schema este utila mai ales acolo unde capacitatea de pilotare a semnalului de ceas este redusa, In acest caz
semnalul de ceas comanda numai Intra rea primului circuit;
semnalul de validare a numararii, Enable, este suficient sa se aplice primului circuit deoarece, pentru CE =1
se blocheaza genera rea pusului de zero pe ie~irea RC;
schema prezinta dezavantajul unui decalaj temporalintre schimbarea starii primului ~i a ultimului circuit din lantul
de cascadare .

• Modul Ripple Carry/Borrow, prezentat in figura 7 prezinta urmatoarele proprietati:


pe ansambiu, caracterul numararii este sincron deoarece semnaiul de ceas se apJica simultan tuturor circuitelor
din lantul de cascadare;
durata de zero a semnalului de ceas, CK, trebuie sa fie suficient de mare pentru a permite tranzitiei negative de

pe RC, sa strabata intreg lantul de circuite inainte de Inceperea duratei'de unu a semnalului de ceas;
asupra duratei de unu a semnalului de ceas nu se fac restrictii.

Sens
LQ;;;j

• Modul Parallel Gated Carry/Borrow, este prezentat in figura 8 ~i este caracterizat de urmatoarele proprietati:
schema pastreaza caracterul sincron al numararii;
semnalul de validare a numararii trebuie inclus in fiecare poarta NAND deoarece ie~irea TC a unui circuit nu
depinde de intra rea CE proprie.

Enable
CK

In aceasta sectiune prezentam cateva modalitati de descriere In limbaj VHDL a structurilor de numarare.
Din punct de vedere didactic, pentru comanda intrarii de ceas a numaratorului studiat se recomanda utilizarea unui
semnal digital cu frecventa foarte m;ca (pentru a putea urmari succesiunea starilor prin care trece numaratorul) sau utilizarea
unui a~a zis "ceas manual" .
Pentru machetele din laborator, obtinerea unui semnal eu frecventa foarte mica necesita 0 divizare sufident de mare a
semnalului cu frecventa de 25,175MHz. Acest semnal este generat de un oscilator de pe macheta ~i este conectat la pinul P9 al
clrcuitului CPLD. Divizarea acestui semnal se poate face prin introducerea un proces special destinat acestui scop. Spre exemplu,
dadl semnalul de la oscilator este aplicat la intrarea unul numarator asincron de 24 biti, frecventa semnalului cules la cel mal
semnificativ bit al numaratorului este de aproximativ 1,5Hz. Modul de intercalare a numaratorului se poate vedea in exemplele
de mal jos analizand procesul denumit div_ceas.
"Ceasul manual" este un semnal digital obtinut prin lnchiderea sau deschiderea unui eomutator mecanic. Din
nefericire, inchiderea ~i deschiderea contactelor mecanice se face cu vibratii - lucru ce face ca semnalul electric generat sa alba
scurte oscilatii in zona In care se face trecerea de la 0 stare logica la alta. Din aceasta cauza, exista riscul de a genera mai multe
tranzitii active la 0 singura apasare a contactul mecanic. Contactele cu revenire de pe macheta sunt "curatite" de tranzitiile
suplimentare prin intermediul unui inversor trigger Schmitt, ceea ce nu reprezinta cea mai bun a solutie, de aceea e!e trebuie
utilizate cu precau~ie In comanda intrarilor de ceas.
In cele ce urmeaza prezentam cateva exemple de descriere in Iimbaj VHDL a numaratoarelor sincrone.
~ExempluI1: Descrierea In /imbaj VHDL a unui numarator binar pe 4 bit/~ cu intrare de ~ergere activa pe unu logic 5i
Intrarea de numarare sensibila la tranzi/ia pozitiva.

CodulVHDL
library IEEE;
use IEEE. std _logic _1164. all;
use IEEE.std_logic_arith.all;
use IEEE.std logic unsigned.all;
Seq;une dedicata deserierii entitatii.
in eazul de fata: entity nr_4bit is
- La intrarea '_in se aplica semnalul de la oscilatorul machete! port (
de test; f_in, clear: instd_logie;
intrarea de §tergere: clear;
intrarea de ceas a numaratorului va fi comandata de semnalul
I Q_out:
) ;
outstd_logic_vector{3

de la ie$irea divizorului de frecventa descris prin procesul


div_ceas, semnal denumit clk;
I end nr 4bit;

- iesirile numaratorului: Q out·


Seqiune dedicata descrierii arhitecturii. architecture arh nr4bi t of nr - 4bi t is
In cazul de fata: signal clk: stdJogic;
- Descrierea funqionarii numaratorului se face eu procesul signal cnt: std_logic_vector (23 downto 0);
pr_A ee este sensibilia intrarile elkiJi clear, begin
Stergerea numaratorului se face daca se activeaza intrarea pr_A: process (clk, clear)
clear; begin
Incrementarea se face pe fiecare tranzitie pozitiva a if (clear = '1') then Q_out < = '0000' ;
semnalului de eeas; elsif ( elk 'event and elk ~ 11' ) then
Q out < = Q out + "0001" ;
end if; - -
Procesul div_ceas~i declaratia elk <= ent(23)sunt end process pr_A ;
introduse pentru a uiJura vizualizarea starilor prin care trece II div_eeas: process (Un)
numaratorului.
begm
Ordinea 7n care sunt scrise procesele 7n cadrul arhitecturii nu ii (Un 'event and Un='1 ') then ent <= cnt + 1; end if
are importanta.
end process div_ceas;
clk <= cnt(23);
end arh nr4bit;

~ExempluI2: Descrierea kl /imbaj VHDL a unui numarator BCD cu doua decade, cu intrare de ~ergere activa pe unu logic 5i
fntrarea de numarare sensibila la tranzipa pozitiva.

Observatii CodulVHDL 1
5eqiune dedicata includerii de librarii -- Nt~arator BCD pe doua decade I
library IEEE;
useIEEE.std_logic_1l64.all; ~
use IEEE.std logic arith.all;
useIEEE.std logic unsigned.all;
Seqiune dedicata descrierii entitatii.
In cazul de fata: entity nr_2dec is
I - intra rea de iJtergere: ciear; port ( [
I - La intrarea (jn se aplica semnalul de la oscilatorul f _in, clear : in stdJogie;
I machetei de test; bcd_unit: outstd_logic_vector(3 downto 0);
intrarea de ceas a numaratorului va fi coman data de bcd zeci:outstd logic vector (3 downto 0)
); --
semnalul de la ie~irea divizorului de frecven~a deseris prin
procesul div_ceas, semnal denumit elk; end nr_2dec;
ie iri: bcd un; bcb_zeci'
Seqiune dedicata descrierii arhitecturii. architecture arh_nr2dec of nr_2dee is
in cazul de fa~a: signal elk, cy: std_logic;
Descrierea funqionarii numaratorului zecimal cu doua signal ent: std_logic_vector (23 downto 0);
decade se face cu doua procese: pr_unitiJi pr_zeci signal unit, zeci : sId_logic_vector (3 downto 0);
pentru modificarea codului BCD al unitaplor respeetiv al begin
zecilor; , pr_unit: process (clear, c1k)
Pentru ambele procese, §tergerea decadei se face daca se begin
activeaza intrarea elearsau daea sa atins starea 1010; if «clear = '1')or(unit ="1010")) then unit <= "0000";
Incrementarea unitatilor se face pe fiecare tranzitie pozitiva elsif rising_edge(clk)then
a semnaluiui de ceas; unit <= unit + "0001" ;
Semnalul cyare semnnificatia de semnal de umplere a end if;
decade! de unitap (trece In starea 0 atunci cand if unit ="1001" then cy <= '0': else cy <= '1'; end if;
numaratorul este 7n starea maxima); bcd_unit<=unit;
Incrementarea zecilor se face tot pe tranzitia pozitiva a er:d process pr_unit ;
semnalului de ceas numai daca decada de unitati este plina; pl'_zeci: process (clear, clk)
bagin
if «clear = '1'j or (zeci ="1010")) then zeei <=
I "0000";
I elsif (rising_edge(elk) and (ey ='0'» then
[ zeci <= zeci+ "000 1" ;
end if;
Procesul div_ceas ~i declaratia elk <= ent(23) sunt bed_zeei<=zeci;
introduse pentru a u?ura vizualizarea stariior prin care trece end process pr_zeci;
numaratorului. div_ceas: process (Un) -- process divizare ceas
begin
if (Un 'event and Un='1') then ent <= ent + 1; end if;
Ordinea In care sunt scrise procesele in cadrul arhitecturii
end process div_ceas:
nu are importania.
elk <= cnt(23);
end arh nr2dee;

IExemplul3: Descrierea in /imbaj VHDL a unui numarator sincron presetabi/ pe 4bifi. Intrarea de ~ergere §i cea de incarcare
para/ela sunt active pe unu logic 5i au 0 execupe sincrona cu semnalul de ceas. Pentru descriere s-au folosit 2 procese: unul
este responsabil de reactualizarea stark numaratorului iar celalalt de sincronizarea cu ser::nalu/ de ceas.

Observatii CodulVHDL
Package-ul contine elemente ce trebuie recunoscute in - - deserierea paehetului
mai multe proiecte. library IEEE;
Elementele dintr-un pachet sunt recunoscute intr-un use IEEE.S·Cd_logic_ 1164.all;
proiect dadi se face apel la instruqiunea use. use IEEE.std_logic_unsigned.all;
Pentru introducerea pachetului in proiect se adauga un package count_types is
nou fii/ier1 _____sursa 1~40de•• __tip VHDI. Packadge cu descrierea subtype bit4 is std_logic_vector(3 down to 0) ;
.J _____ .••~
ut: JJt:: \,.UIUdlld dldl,.U1 ald.
end count. _types;

I In exemplul de fata, pachetul este folosit doar pentru a


specifica formatul bit4 . I
Seqiune dedicata includerii de Iibrarii. -- Exemplu de nlLT!larator sincron
library IEEE;
Se remarca faptul ca se include $i pachetul descris mai use IEEE. std _logic_ 1164.all;
sus. use IEEE.std_logic_unsigned.al!;
use WORK. coun t types.all;
Seqiune dedicata descrierii entita~ii. entity nr _Il. is
In cazul de fata: port (clk, clear, load : in std_logic;
- intrari de date: din; din : in bit4;
- ie~iri: dout; dout : inoutbit4) ;
I end nr A;
Seqiune dedicata descrie:ii arhitecturii. i architecture arh A of nr A is
-
In cawl de faia: signal count - val: bit4;
- procesul PCl este responsabil de mentinerea starii begin
numaratorului; I pr 1: process (clear, load, din, dout)
- procesul: PC2 este folosit pentru transferul starii begin
numaratorului la ie~ire - transfer ce se executa if load = '1' then count_val < = din;
numai pe tranzitia pozitiva a semnalului de ceas; elsif clear = '1' then count_val < = "0000" ;
- procesul pr2 nu are lista de sensibilitati de aceia else count_val < = dout + "0001" ; I
este absolut necesara folosirea declaratiei wait end if;
end process pr_1 ;
pr _ 2: process
begin
wait until elk 'event and clk ='1';
dout < = count_val;
end process pr_2 ;
end arh A;

*Exemp/uI4: Descrierea in limbaj VHDL a unui numarator sincron presetabi/ pe 4 bifi. $tergere este asincrona iar incarcarea
paralela sincrona.
AtenJie: in acest exemp/u nu este prezentat procesul pentru reducerea frecvenfei semnalu/ui dat de osd/atorul de pe macheta
de test. Introducerea acestui proces se face similar ca in primul exemplu.

Observatii I CodulVHDL
Seqiune dedicata includerii de librarii. I -- Exemplu de numarator sineron
library IEEE;
I use IEEE.stdJogie_1164.all;
!use IEEE.std loaie unsianed.all;
I
Seqiune dedicata descrierii entitatii. entity num_ 4bit is
In cazul de fata: Iport (Clk,Rsl,Load: in std_logic;
- comanda Incarcare paralela: load; I Data: in stdJogic_vector(3 downto 0);
i Count: out std_!ogic_veetor(3 downto 0));
- intrari de date: Data;
- iesiri: Count·
Seqiune dedicata descrierii arhitecturii.
Iend num 4bit;
architecture arh_num_ 4bit of num_ 4bit is
in cazul de fata: begin
procesul este declan~at pentru orice evenimet aparut process (Rst, Clk)
pe intrarile Rst~i Clk, variable Q: std_logic_vector (3 downto 0);
;';tergerea se face pe unu logic ~i se executa begin
independent de semnalul de ceas (executie asincrona); if Rst = '1' then Q := "0000";
Starea numaratorului este reactuaiizata printr-o elsif rising3dge(Clk) then
declarape de atribuire conditionata; if Load = '1' then
Se observa utilizarea unei bucle for pentru copierea for i in 3 downto 0 loop
intrikilor de date; Q(i) := Data(i);
Deteqia frontului pozitiv se face folosind end !oop;
risiny_edge(Clk) ~i nu Clk • event AND elk:;:::'1 '; elsif Q = "1111" then Q:= "0000";
Proprietatea rising_edge(Clk)intoarce 0 valoare else Q:= Q + "0001";
boolean a, deci poate fi folosita in declaratiile ce contin end if;
testa rea !ndeplinirii unoI' conditii; er.d if;
Count <= Q;
end process;
end arh num 4bit;

A. Se realizeaza pe macheta de test schema din figura 9, dupa care se vizualizeaza formele de unda in punctele A, 8, C, D, E, F,
~i G pentru situapiie urmatoare: a) comutatorul K este pe pozitia 1; b) comutatorul K este pe pozipa 2.
Desenati corelat in timp formele de unda pentru fiecare subpunct in parte.

"1"
11

5 Po P1 P2 P3 MR
"1" 12
F.
~m 74lS193 TCu
4 13 C
CPD TeD
A

intreban:
Care este factorul de divizare in frecvenia realizat de circuit dad semnalul de ie~ire se culege din punctul G ?
Expiicaii funqionarea schemei pentru cele doua pozitii ale comutatorului K. Ce diferente apar in functionare ~i cum se
explica acestea ?
Care este rolui latch-uiui realizat cu porti NAND?
Ce observatii puteii face in legatura cu durata de zero a semnalului din punctul C pentru cele doua pozitii ale comutatorului
?
Care sunt stari!e prin care trece numaratoru! pentru cere doua cazuri considerate?

intrebJri:
Care este factorul de divizare in frecventa al celor doua circuite ? Cum expiicaii rezultatele obiinute ?
Care va fi noul factor de divizare dad circuitul 74LS163 se inlocuie~te cu 74LS162 ?
Care este principiul de funqionare al acestor divizoare ?
Se modifidi funqionarea schemelor inipale daca circuitul 74LS163 se !niocuie~e cu circuitul 74LS161 ?
Cum se poate modifica factorul de divizare a montajelor anterioare7
care este schema electrica, in cele doua variante, pentru realizarea unoI' divizoare de frecventa cu 13 ?
C. Un alt procedeu de reaiizare a divizoarelor de frecventa este ilustrat In figura 11. Se apllca la intrarea un semnal TTL cu 0
frecventa de circa 100 Khz dupa care se vizualizeaza cu un osciloscop cu doua spoturi semnalul de intrare :?i cel de ie:?ire.
Desenap corelat In timp aceste semnale.

intrebJri:
Cum funqioneaza aceasta schema?
care este factorul de divizare In frecventa realizat de aceasta schema?
Care este factorul de umplere al semnalului din punctul F? Cine impune acest factor?
Se modifica divizarea daca se Intrerupe legiltura lntre ie$irea Q a bistabilului $i intrarea P3 a numaratorului ? Oaca da,
care este noul factor de divizare ?
Ce se modifid3 in funqionarea schemei dadl circuitul LS163 este Inlocuit cu LS161 ?

D. 0 generalizarea a schemei de la punctul anterior este prezentata In figura 12.


fntrebJri:
Cum se poate controla factorul de divizare in frecventa al schemei ? Dar factorul de umplere al semnalului de ie:?ire
din punctul F ?
Oepinde funqionarea schemei de starea inipala a bistabilului ? Oar de tranzitia activa a acestuia ?
Cum se transpune aceasta schema pentru circuite 74LS 191 ?
Constanta bina,-a K1 Constanta bina,-a K2

LSB '1__ M_S_B _


LSBI IMSB

CEP
10 CET 74 LS 163 A TC 15
2 CP
"1."
112 74 LS74

3.2. Utilizarea ISE WebPack pentru descrierea aplicatiilor sub forma de scheme !ogice
A. Realizati 0 implementare a schemei din figura 1 $1verificati funqionarea acesteia pe macheta de laborator cu CPLD.
Urmariti succesiunea starilor prin care trece numaratorul (pe bareta de LED-uri).

B. Adaugati la proiectul din tabelul 2 un decodificator BCD-7segmente pentru afi~area starii numikatorului pe primul digit
al machetei de laborator. Notati succesiunea starilor prin care trece numaratorul.

C. Interveniti asupra schemei :?ischimbati tranzitia activa a bistabililor (prin introducerea de inversoare in fata intrarilor
ce ceas). Refaceti implementarea si urmariti succesiunea starilor prin care trece numaratorul. Ce se constata fata de
cazul anterior?

D. Realizati cate 0 implementare pentru fiecare schema de divizare a frecventei din figura 10 §i verificati funqionarea
acestora pe macheta do: laborator cu CPLD. Urmarip succesiunea starilor prin care trece numaratorul pe primul afi~j
cu 7 segmente. Notati succesiunea starilor §i determinati factorul de divizare al frecventei semnalului de intrare.
AtenJie: in simbolul din editorul de scheme exista diferenje in denumirea pinilor, faja de cele prezentate in figura 2-
Asdel: CEP .-;ENP; CET --+ENT; TC.-;RCO; PL-fLOAD; CP-.-Cl<;

E. Realizati 0 implementare pentru schema de divizare a frecventei din figura 11 !;ii verificati funqionarea acestora pe
macheta de laborator cu CPLD. Urrnariti succesiunea starilor prin care trece numaratorul pe primul afi§aj cu 7
segmente. Notati succesiunea starilor §i determinati factorul de divizare al frecventei semnaluiui de intrare.
Lucrarea nr. 8: Studiul numaratoarelor sincrone
F. Realizati 0 implementare pentru schema de divizare a frecventei din figura 12 ~i verificati funqionarea acestora pe
macheta de iaborator cu CPLD. Urmari);i succesiunea starilQr prin care trece numaratorul pe primul afi~aj cu 7
segmente. Nota);i succesiunea stikilor ~i determinati factorul de divizare al frecventei semnalului de intrare.

3.3. Utilizarea limbajului VHDL


A. Veriftcati §i implementa);i pe macheta de laborator descrierea numaratorului BCD pe doua decade prezentat in
exemplul2.

B. Modificap descrierea VHDL astfel incat sa nu mai fie nevoie de semnalul cy. Verificap §i implementati pe macheta
noul cod.

C. Plecand de la descrierea initiala prezentata in exemplul 2, adaugati un semnal de semnalizare a umplerii


numaratorului de zeci §i unul de semnalizare a umplerii intregului numarator (trecerea sa prin starea 99). Verificati §i
implementati pe macheta noul cod.

D. Verificaii §i implementati pe macheta de laborator descrierea numaratorului sincron pe 4 biti prezentat in exemplul 4.
Verificat; dadl indircarea paraiela se poate face fara tranzitie pe intrarea de ceas.

E. Realizati 0 desCl'iere VHDL, de tip comportamental, pentru un divizor de frecventa cu 25 §tiind ca semnalul de ie§ire
trebuie sa alba durata de unu logic egala cu 3 perioade ale semnalului de ceas. Verificati aceastil descriere pe
macheta de laborator cu CPLD.

Pentru fiecare aplicatie este necesara deschiderea unui nou proiect dupa metodologia prezentata intr-o lucrare de laborator
anterioara.

Toate aplicatiile din aceasta lucrare '1ecesita doar un singur fi§ier sursa (de tip schema logica sau VHDL );i un singur fi§ier de
constrangeri .

Referitor la comanda intrarii de ceas facem urmatoarele precizari:

Intrarea de ceas se poate comanda printr-un buton cu revenire (spre exemplu BTN1). Deoarece exist3 riscul aparitiei de
oscilatii la apasarea butonului, se recomanda urmarirea stanlor prin care trece numaratorul pentru mai multe ciduri
complete ale sale;

o metoda ;i mai buna de comanda a intrarii de ceas consta In folosirea unui semnal digital periodic cu frecventa sufident
de mica pentru a putea urmari sllccesiunea starilor prin care trece numaratorul. Pentru aceasta, putem folosi semnalul de
la pinul P9 al CPLD, semna! ce are 0 frecventa de 25,175MHz.

In schema logica, intre pinui P9 ~i intrarea de ceas a numi:iratorului testat intercalam un numarator binar pe 24 de biti. In
aeeste conditii, semnalul cules de pe ie;irea cea mal semnificativa a numaratorului va avea frecventa de cca. 1,5Hz, valoare
ce ne permite vizualizarea starilor prin care treee numaratorui.

In fi§ierul VHDL, divizarea semnalului de intrare de 25,175MHz se face prin introducerea unui proces (cazul procesului
div_ceasdin exemplele 1 §i 2).

©
In aeeasta luerare se prezinta funetionarea unui sistem logic eeva mai complex: este vorba de un sistem de gestionare
a unei matriee de taste cu organizarea 4x4. Pe aeest exemplu eoneret se pot vedea la lueru mai multe tipuri de eireuite logice
elementare precum: DCD, MUX, numaratoare binare etc.
In lucrare sunt prezentate doua modalitati de implementare: una c1asica (in sensu I ca sunt folosite circuite integrate
digitale de complexitate mica ~i medie) ~i una moderna (circuitul este descris in VHDL ~i implementat intr+un circuit de tip
CPLD).

Tastatura a fost ~i probabil va ramane pentru inca mult timp un mijloc faeil prin care se pot introduce comenzi intr-un
sistem digital, sau informatii intr-un sistem de calcu!. De regula, pentru fiecare tasta, prin conventie, este asociat un cod binar
prin intermediul careia ea poate fi recunoscuta de catre sistemul de calcu!. In funqie de complexitatea ~i marimea tastaturii
exista 0 multime de solutii de implementare a unei astfel de aplicatii.
In cele ce urmeaza sugeram cateva idei de impJementare pentru cazul unei tastaturi alcatuita din 16 taste,
considerand doar situatiile de apasare a unei singure taste.

Solutia 1
o prima solutie pentru codifiearea celor16 taste ar fi conceperea unui CLC cu 16 intrari (cate una pentru fiecare tasta)
~ 5 ie~iri (4 pentru eodul binar al tastei apasate ~i una pentru semnalizarea evenimentului "tasta apasata" ). Se poate concepe
schema electrica astfel neapasarea tastei sa mentina intrarea CLC-ului in unu logic, iar apasarea sa aduca respectiva intrare in
zero.
Dadi mergem pe aceasta idee, constatam destul de repede ca tabelul de adevar este fcarte mare: avem de
implementat 5 funqii binare ce depinde de 16 variabile. Compiexitatea sistemului rezultat este prea mare pentru ca aceasta
metoda sa fie acceptata din punct de vedere practic.
Aceasta metoda prezinta totu~i avantajul ca permite, prin extinderea numarului de ie~iri ~i prin aldituirea corecta a
tabelului de adevar, generarea de coduri binare distincte ~i pentru situatii in care doua sau mai multe taste sunt apasate.

Solutia 2
o alta solutie, tine cont de cateva aspecte practice iegate de utHizarea tastaturilor, mai precis de viteza finita de
aqionare a tastelor:

durata de apasare a unei taste este de cateva zeci de milisecunde (lm= 10-3 S), chiar daca ne straduim sa facem
o apasare foarte scurta;
intervalul de timp dintre doua apasari este de ordinul zecHor de milisecunde chiar ~i pentru cea mai rapida
secretara;

Tinand cont de aceste aspecte rezulta ca nu este nevoie ca circuitul sa analizeze In acela~i !imp starea 109ica a tuturor
tastelor. Se poate imagina un circuit care sa analizeze suecesiv starea tastelor: se analizeaza mai intai starea primei taste, apoi
starea urmatoarei taste ~i a~a mai departe pana se ajunge la ultima tasta dupa care procesul se repeta la nesfar~it (atata timp
cat circuitul este alimenta). Pentru acest mod de lucru, frecventa de trecere de la 0 tasta la alta trebuie sa fie sufieient de mare
pentru ca intreaga tastatura sa fie verificata cel putin odata pentru cel mai mic interval de apasare a unei taste (acesta se poate
determina experimental ~i este dependent ~i de viteza de reactie a utilizatorului tastaturii).
Schema de principiu a unui astfel de circuit este prezentata in figura 1, pentru cazul unei tastaturi formata din 4 taste.
Blocul funqional denumit "Logica de control ", este responsabil de generarea unor coduri binare pe doi biti (Ql Qo), cu
urmatoarea succesiune: ... OO~ 01 ~ 10~ 11----)00 ----)01 ... Aceste codun binare sunt folosite petru comanda intrarilor de
seleqie ale circuitului MUX 4: 1. In acest mod, schimbarea eodului binar inseamna de fapt analizarea starii log ice pentru 0 alta
tasta.

logicil
de
control

TO T1.1 T2 T3 Q) QO Cod binar


selectie
iJ,. 1J,. {J,. 1J,. tasta

Cod bilar
tastaapasata

SenTIslizare
tasata apasata
Fig. 1. Schema logica de principiu pentru gestionarea unei tastaturi cu 4 taste
Lucrarea nr. 9: Gestionarea unei matrice de taste cu organizarea 4x4
Pentru explicarea funqionarii yom considera ca Ql Qo =10. In aceste mnditii, la ie~irea Ya mu!tiplexorului yom regasi
starea logidj de la intrarea de date 12• Datorita schemei eleetrice, starea logica a intrarii de date h este dependenta de starea
tastei T2;
daca T2 nu este apasata, intrarea de date 12se afla conectata la unu logic prin intermediul rezistentei R3 , in
consecin~a Y=l ;
daca tasta este apasata, intrarea de date h este conectata la masa prin lnchiderea contactului T2 I in consecin~
y=o;
Dupa ce a expirat timpul alocat combinatiei Ql Qo =10, logica de control schimba codul (se trece la combina~ia Ql Qo
=11) ~i astfel se testeaza starea !ogica a tastei urmatoare (In cazul de fata, tasata T3).
1ndiferent de codu! de selectie generat de logica de control, trecerea In zero logic a ie~irjj multiplexorului are
semnificatia de tastJ apasata. In consecinta, aceasta ie~ire activa pe zero logic, poate fi folosita ca ie~ire de semnalizare spre
sistemul de calcul. Totodata, trecerea In zero a ie~irii Y mai este folosita ~i pentru genera rea unei comenzi de memorare a
codului de seleqie al tastei apasate, In blocul de memorie.
~ cum este prezentata In figura 1, schema prezinta dlteva limitari;
nu se pot genera coduri pentru apasarea unor combinatii de doua sau mai multe taste;
genereaza semnalizari multiple pentru a singura apasare a unei taste;
marirea numarului de taste necesita marirea numarului de intrari ale multiplexoruiui.

Solutia 3

Pentru un numar mare de taste se folose~te tot principiul prezentat anterior cu deosebirea ca tastele sunt organizate
intr-o matrice de m linii ~i n coloane. Procedfmd astfel se reduce semnificativ numarul intrarilor de date ale circuitului de
multiplexare.
o schema bloc de principiu, pentru cazul unei tastaturi cu 16 taste, se prezinta in figura 2. In primul rand trebuie sa
remardim ca 16 taste necesita un cod binar de seleqie pe 4 biti. Cei mai semnificativi 2 biti (Q3 Q2)sunt folositi pentru comanda
intrari!or de se!eqie ale DeD iar restul de biti pentru comanda intrari!or de se!eqie ale MUX4: 1.
Pentru fiecare tasta este necesar ca un capat sa poata fi conectat la unu logic iar celalalt la masa, cu alte cuvinte un
capat la +Vcc iar celalalt la masa. Organizarea testelor In matrice este facuta astfel;

Toate tastele de pe 0 coloana sunt conectate intre ele ~i sunt conectate printr-o rezistenta la +Vcc. ~adar, In
orice moment de timp, pe coloane exista valoarea logica unu.

°
Toate taste!e de pe linie sunt conectate lntre ele ~i sunt comandate de catre a ie~ire (activa pe zero logic) a
DCD-ului. Deoarece DCD-ul activeaza la un moment dat doar 0 singura ie~ire, se poate trage concluzia dl exista
doar a singura linie ce prime~te zero logic.

Logica
de
control

Q
1
1%1 Codblnar
selectie
lasta

Cod blnar
tasta apasata

SemnallzBre
tasata apasata

Pentru explicarea funqionarii consideram situatia Q3 Q2 Ql Qo = 1001. Facem observatia ca ~ Q2 determina coclul
liniei (randului) din matrice iar Ql Qo codul caloanei din matrice.

Intrarea de selectia a DCD prirne~te codul binar 5, 50 = Q3Q2 = 10, fapt ce determina activarea ie~jrii 2. A~dar,
se transmite un zero logic pe linia tastelora-9,. A, B. Tasta verificata efectiv se stabile~te prin adresa de coloana
data de bitii Ql Qo .

1ntrarea de selectia a MUX4; 1 prime~te codul binar 5,50 = Ql Qo = 01, fapt ce determina seleqia intrarii de date
h Aceasta lnseamna ca se analizeaza starea tastei afla~e la interseqia liniei 2 cu coloana 1, este yorba de tasta
9. Atentie ca numerotarea Ilniilor ~i a coloanelor incepe de la 01

Daca tasta 9 este neapasata, pe intra rea de date II ajunge un unu logic datorat rezistentei R2. Daca tasta 9
este apasata, ea face a legatura intre ie~irea 2 a DeD ?i intrarea II Deoarece ie?irea 2 =0, rezulta ca II = O.

~adar, pentru codul Q3Q2 Q, Qo = 1001, se verifica starea tastei 9.


Lucrarea m: 9: Gestionarea unei matrice de taste cu organizarea 4x4
Dupa expirarea timpului alocat codului Q3 Q2 Ql Qo = 1001, logica de control genereaza codul urmator, adica Q3
Q2 QI Qo = 1010. Pentru noul cod, funqionarea este similara cu deosebirea ca se verifidi starea tastei A.

Ie~irea MUX4:1 poate fi privita ca 0 ie~ire activa pe zero logic ce semnalizeaza evenimentele de tip "tasta
apasata". Totodata, aceasta ie~irea este folosita ~i pentru lncarcarea codului de seleqie tasta In blocul de
memorie deoarece este yorba chiar de codul tastei apasate.

Aceasta schema, a~a cum este prezentata In figura 2, prezinta cateva Iimitari:
nu poate sesiza apasarea unor combinatii de doua sau mai mu!te taste;
genereaza semnalizari multiple pentru 0 singura apasare a unei taste;

Problema legata de semnalizarea multipla a aceleia~i taste apasate este eliminata pe macheta de laborator, (vezi
figura 3) printr-o metoda destul de simpla.

2.2. Exemplu de implementare in CPLD


Acest exemplu face 0 descriere a schemei din figura 1, pentru cazulln care avem 8 taste. Pentru schimbarea codurilor
de seleqie avem nevoie de un semnal cu frecventa Intre 10kHz dOOkHz. Obtinerea acestui semnal se poate face printr-un
proces de divizare In frecventa a semnalului dat de oscilatorul de pe macheta de !aborator cu CPLO, oscilator ce genereaza un
semnal digital cu frecventa de 25,175MHz. Spre exemplu, daca alegem 0 divizare In frecventa cu 210 =, se obtine un semnal cu
frecventa de 24,584kHz.

CodulVHDL
-- Exemplu dR implementare tastatura
library IEEE;
use IEEE.std logic 1164.all;
Seqiune dedicata descrierii entitatii. In cazul de fata:
- nume entitate este: tastatura; entity tastatura is
- vector de intrare cu 8 componente ptr. conectare port (
taste: p_taste; P_l:aste:in std_logic_vector(7 downto 0);
-intrare de ceas: p_clk_in p_cod sel:outstd_logic_vector(2 downtoO);
- ie~ire ptr. semnalizare cod tasta verificata: p_cod mem:out std_logic_vector(2 downto 0);
p_cod_sel; p_tap: outstd_logic;
-ie~ire ptr. semnalizare cod tasta apasata: p_clk in : in std_logic);
p_cod_mem; end tastatura;
- iesire de semnalizate tasta apasata: D__siQnal'
Seqiune dedicata descrierii arhitecturii. architecture arh_tastatura of tastatura is
I In cazul de fata: signal cod sel:std_logic_vector(2 downloO);
- se folosesc trei procese. I signal cod mem: std logic vector (2 downto 0);
signal test: std_logic; -
hegin
• Procesul divizare: -- proces pentru divizare ceas
- este folosit pentru divizarea semnalului de intrare dlVlzare: process Ip_clk_ln)
cu frecventa de 25,175MHz. variable cnt: std _logic_vector (9 downto 0) ;
procesul este sensibil doar la p_clk_in ; begin
constanta de divizare este 210 deoarece se folose~e if p clk in'event and p clk in='l'
un numarator pe 10 biti; cnt - cnt + 1; - -
codu! de se!ectie tasta este preluat direct de ia cel end if;
mal importanti trel biti ai numaratorului cnt; cod sel(2 downtoO) <= cnt(9 downto7);
end process divizare;
-- proces pentru selectie tasta
• Procesui selectie : selectie: process (cod_sel)
este folosit pentru seleqia tastei a carei stare begin
trebuie verificate; case cOd_sel is
procesul este sensibil doar la cod_sel; when "000" => test <= P taste(O);
-
starea logica a tastei este copiata In semnalul test, when "001" => test <= p- taste(l);
fiecare cod de seleqie alege 0 alta tasta de intrare; when "010" => test <= p- taste(2);
when "011" => test <= p- taste(3);
when "100" => test <= p taste(4) ;
when "101" => test <= p- taste(S) ;
when 11110" => test <= p- taste (6) ;
when "Ill" => test <= p - taste(7) ;
when others => test <= '0' i
• Procesul atrb: end case;
este folosit pentru comanda semnalelor externe end process selectie;
(cod selectie, codul ultimei taste apasate, atrb: process (cod_sel)
semnaiizare tasta apasata) ; begin
procesul este sensibil doar la cod_test; if test = '1' then
cOd_mem <=ccd_sel;
p_tap <='1';
else
----------------------~---
p_tap <='0';
end if;-
pin_cod _mem<=cod _mem;
pin_ cOd_sel<=cod_sel;
end process atrb;
end arh tastatura;
Fi~ierul de constrangeri NET "p_taste<O>" LOC - "P37";
tastele sunt implementate cu comutatoarele NET "p_taste<1>" LOC = "P40";
SW1+SW8; NET "p_taste<2>" LOC = "P43";
__ codul de seleqie se afj~eaza pe LED-urile LD1+LD3; NET "p_taste<3>" LOC = "P45";
codul ultimei taste apasate se afi~eaza pe LED-uriie NET "p_taste<4>" LOC = "P47";
1 L6+LD8; NET "p_taste<5>" LOC = "P50";
NET "p_taste<6>" LOC = "P52";
semnalizarea evenimentului tasta apasata se face
NET "p_:aste<7>" LOC = "P54";
pe LDS;
NET "p_c1k_in" LOC = "P9";
NET "p_cod_sel<2>" LOC = "P62";
NET "p_cod_sel<1 >" LOC = "P65";
NET "p_cod_sel<O>" LOC = "P6T';
NET "p_cod_mem<2>" LOC = "P75";
NET "p_cod_mem<1>" LOC = "P80";
NET "p_cod_mem<O>" LOC = "P82";
NET" ta" LOC = "P71 ";

A. Referitor la schema din figura 2, raspundeii la urmatoarele Intreb~ri:


Cate perioade de ceas dureaza un proces de verificare a tuturor tastelor ?
Cate perioade de ceas este activa ie~irea de semnalizare "tasta apasata" ?
Cum se explica fenomenul de semnalizare multi pia a ace!eia~i taste apasate ?
Ce se lntampla cu procesul de schimbarea a codurilar pe durara de timp In care tasta este apasata ? Se continua
sau se opre~e ? Cum ar fi mai bine ?
Ce se Intampla cu semnalu! de ie~ire daca apasarea unei taste este ceva mai !unga ?
Care este intervalu! maxim de timp (exprimat In perioade ale semnalului de ceas) dintre apilsarea propriu-zisa a
tastei ~i adivarea ie~irii de semnalizare " tasta apasata" ?
Ce cod se genereaza ia apasarea simultana a doua taste?

B. Referitor la schema din figura 3, macheta cu componente discrete din labarator, raspundeti la urmatoarele Intrebari:
Identificati circuitele ~i biocurile funqionale;
Cum s-a rezolvat problema semnalizarii multiple pentru apasarea acelea~i taste?
Explicaii de ce liniile matricei de taste sunt comandate de ie~irile 0, 2, 4, 6 ale decodificatorului ? Ce modificari
trebuie efeduate In schema pentru a face comanda pe linii cu ie~irile O. 1, 2. 3?
Ce modificari trebuie efectuate In schema pentru ca informatia de pe coloanele matricei de taste sa fie preluate
pe intrarile D4, D5, D6, 07 ? Oar pentru intrarile 00, 01, D6, D7 ?
Care LED semnalizeazi\ bitul eel mai put!n semnificativ ai codului binar al tastei verificate ?
Ce rol au inversoarele ? 5e poate concepe un bloc de semnalizare optica fara ele ?
Ce rei are latch-ul din blocul funqional denumit "ceas manual" ?
Poarta NAND din oscilator, cu caracteristica de tip trigger Schmitt, poate fi Inlocuita cu una cu caracteristica
normala?
Poarta NAND de la !ntrarea numaratorului poate fi Inlocuita cu 0 poarta cu caracteristica normala ? Cilte intrari
sunt necesare pentru aceasta poarta 7 Care este starea logica de la ie~irea portii atunci cand 0 tasta este
mentinuta apasata 7
Prezentati 0 modalitate de memorare a codului binar al ultimel taste apasate.

C. Determinari experimentale:
Plasati comutatorul K pe pozitia a ~i determinap ell osciloscopul freeventa semnalului de ceas (folosit pentru
trecerea de la 0 tasta la alta); De ce toate LED-uriie din blocul de semnalizare luminoasa a codului tastei
selectate par In permanenia aprinse?
Plasati comutatorui K pe poziiia b ~i aqionati asupra tastelor ~i urmariti seeventa de verificare a acestora;
Verificaii starea iogidl de la ie~irea portii prin care trec impulsurile de ceas atunci cand 0 tasta este mentinuta
apasata?
CPo IUS 93

CP1 a 0, O2 a3
o
12 9 8 11

tttt
. Bloc de semalizare
optico a codului

I binar al tastei
verificate

L-__
Iesire

(activa
de se:nmalizl\Te
tasta. apasata
LOW)
t ~ 200
Seinlloliz4re optica
ft evenil18ntului
-taste. apasatn·

Fig. 3. Schema electridl completa a machetei de iaborator reprezentand un sistem logic de gestionare a unei matrice de taste
cu organizarea 4x4.

A.. Verificati codul VHDL din exemplul prezentat In seqiunea 2.2. pe macheta de laborator ;;i raspundeti la urmatoarele
Intrebari:
Cum explicati faptul ca LED-urile ce afi;;eaza codul tastei verificate par mereu aprinse?
Mentine~i 0 tasta apasata ;;i vizualizati cu osciloscopul catodic semnalul ce comanda LED-ul de semnalizare a
evenimentului tasta apasatii. Ce observatii putep face In legatura cu numarul de semnalizari ale aceleia;;i taste
apasate?

B. Modificati codul VHDL prezentat In seqiunea 2.2. astfe! (ncat procesul de scanare a restului de taste sa fie oprit atunci
cand 0 tasta este apasata.

c. Adaugati la proiectul anterior tot ce este necesar pentru a obtine afi?area In zecimal (pe unul din afi;;ajele cu 7 segmente)
a codului tastei apasate.

D. Folosind cuno;;tin~ele acumulate pana In prezent realizati 0 aplica1;ie mal ampla care sa emuleze funqionarea unui clculator
electronic pentru operatia de adunare. Pentru aceasta se pleadl de la urmatoarele ipoteze:

Gestionarea multiplexata In timp a tastaturii;


Semnificatia tastelor este: 0 .....•SW1, 1 .....•SW2, 2 .....•SW3, 3 .....•SW4, + .....•
SWS, = .....•
SW6, CE .....•SW7 iar tasta SW8
nu are nici 0 semnificatie;
Afi;;area se face numai pe un singur digit (acest lucru este posibil deoarece cel mai mare numar este 4, deei rezultatul
maxim al adunarii este 8).
Imediat dupa pornire se afi;;eaza 0 iar dupa apasarea unei taste se afi;;eaza operandul sau opera1;ia sau rezultatul
operatiei. Pentru afi;;area operatiei se va aprinde segmentul tal afi;;ajului.

©
Lucrarea este destinata prezentarii principalelor modalitati de afi~are a informatiei numerice, cu referi concrete la un
sistem de afi~are cu 4 cifre zecimale ce funqioneaza pe principiul multiplexarii In timp. Studiul acestui sistem de afi~j se face In
doua variante: 0 prima varianta se bazeaza pe implementarea eu eireuite log ice de complexitate medie iar cealalta varianta
presupune descrierea In limbaj VHDL ~i implementarea Intr-un CPLD.
Pentru prima data In cadrul aeestui laborator se folose~te conceptul de proiectare ierarhica.

~ dupa cum este cunoscut, sistemele digitale iucreaza doar cu doua valori numerice: zero §i unu. Din acest motiv,
din punct de vedere tehnic este preferabil ca sistemul digital sa lucreze Intr-un sistem de numeratie cu baza 2 (sistemul binar).
Pe de alta parte, uti!izatorul (operatorul uman) este obi~nuit cu sistemul zecimal. Pentru rezolvarea acestui conflict, prima idee
care ne vine In minte ar fi introducerea de circuite codificatoarejdecodificatoare care sa faca conversia Intre cele doua sisteme.
Aceste circuite nu fac altceva dedlt sa complice inutil partea hardware.
o solutie de compromis se pare ca s-a obtinut prin introduce rea codului BCD (Binary Coded Decimal), acesta
folose~te toate regulile sistemului de numeratie zecima/dar scrierea (reprezentarea In sistemul de calcul) se face In binar. eu
alte cuvinte, In codul BCD, fiecare cifra zecimala este lnlocuita de scrierea sa binara pe 4 bitL Codul BCD s-a dovedit atat de util
Indlt s-au conceput circuite de numarare ~i circuite aritmetice capabile sa lucreze In acest cod.
Pentru a pune In eVidenta diferentele dintre codul binar natural ~i codul BCD, In tabelul de mai jos sunt prezentate
dlteva aspecte semnificative:

Cod BCD Cod binar natural


1001 0011 2 = lx27 +Ox26 +Ox25 +lx24 + Ox23 +
Conversia spre 9
~,..----"---o, 3
+Ox22 +lx2' +lx2° =
sistemul zecimal 1001 00 11 = 93 10 =128 +16+2+1=4710
I

19310 =i10000102
Rezultatul se obtine prin Impartiri succesive la 2
193:2=96 rest 1
1
~---... 9 ~3
...---, 96:2=48 rest 0 I
Conversia din
193'0 = 0001 1001 0011 48:2=24 rest 0 I

sistemul zeomal BCD I 24:2=12 rest 0


12:2= 6 rest 0
I 6:2= 3 rest 0
3:2= 1 rest 1
I 1:2= 0 rest 1

Cea mai lotalnita metoda de afi~are a unui numar zecimal consta 10 aprinderea sau stingerea convenabila a unor
segmente a~ezate dupa conturul cifrei 8. Cele 7 segmente pot fi realizate eu orice surse luminoase ee pot fi controlate prin
mijloace electrice. Cel mai adesea se lntalnesc afi~aje eu LED-uri, cu cristale Iichlde sau cu desdlrdlri In gaze.
Refer/tor la afi~ajele cu LED-uri, pentru a reduce numarul de terminale dintr-o capsula, acestea sunt fabricate in doua
variante: cu anad comun (AC), sau cu catod comun (KC). Schema eleetridl a celor doua variante constructive de afi~aj cu LED-
uri, preeum ~i modul de aranjarea a segmentelor se prezinta In Figura 1.
Comanda afi~ajelor eu 7 segmente se face cu ajutoruJ decodiflcatoarelor BCD - 7 segmente, drcuite ce au fost
studiate Intr-o lucrare anterioari:L Trebuie precizat ca exista trei tipurl de decodificatoare BCD - 7 segmente:
a) prima categorie afi~aza toate cifrele hexazecimale a~a cum sunt prezentate In figura 1;
if

/--;j b
. e
f
/-:-i c
Modul de osezare

a celor 7 segmente

abcdefg •••••••
Schema electTica a unui afisaj cu aood comun

abcdefg
D /23LJ557
~f&! B!3RbCdEF
Aparitia cifielor zecimale prill aprinderea sau
Sd,-ema eJectrica a Ui7uia!is·aj w catod comun stinger HJ cofwenabila a segrnente!or din afisaj
F'g.l: <\fi~aj'2cu 7 segmente implementat€ cu LED-url
Lucrarea m: 10: Sisteme de afi§are a informaJiei numetice

b) alta categorie afi!ieaza doar cifrele zecimale de la 0 la 9, iar pentru restul codurilor mentin afi§ajul stins;
c) ultima categorie afi!ieaza corect cifrele zecimale de la -0 la 9 dar, pentru restul codurilor afi!i€aza caractere mai
ciudate (acest comportament se explica prin faptul ca fabricantul s-a folosit de codurile non-BCD pe 4 biti pentru a
reduce complexitatea cireuitului).

o modalitate de a obtine un afi!iaj cu mai multe cifre, altfel spus cu mai muti digiti, se arata in figura 2. Se obselVa ca
fiecare cifra zecimala are propriul sau decodificator BCD-7segmente, iar informaiia ce trebuie afi!iata (spre exemplu rezultatul
unei masuratori) trebuie sa fie Tn format BCD.

,-
, J I
AC AC AC
AC ,-

-
....
m;;

-, sute
l-
zed

-,
t-
abcdefg iJbcdefg
.-
iJbcdefg

m3m2 m. mo
Cod BCD penlru Cod BCD pentTv
citra rniiJor cifta suteiot

Observapi:
decodificatoarele BCD-7segmente trebuie sa alba ie'iirile active pe zero logic daca afi!iajele au anodu! comun;
decodificatoarele BCD-7segmente trebuie sa aiba ie§irile active pe unu logic dadl afi§ajele au catodul comun;
rezistentele R1 ~R28 au rolui de a limita curentul prin LED-uri, fara aceste rezistente exista riscul distrugerii LED-urilor din
afi§aje;
acest mod de lucru este neeconomic din punct de vedere al numarului de componente utilizat.

Ir.aintea expuneri; principiului de funqionare al afi'iarii dinamice trebuie sa facem 0 precizare legata de
comportamentul ochiului uman: daca frecvenja de stingerejaprindere i1 unei surse luminaase este peste 0 anumita
limitii (denumita va/aare critical, achiul percepe respectivil surs;; ca fiind aprinsa in permanenti!i. In urma studiilor
efectuate de speciali'lti, .;-a constatat ca aceasta valoare limita este aproximativ 46Hz. In tehnica, din motive de siguranta, se
considera 0 valoare de 50Hz. Aceasta partieul3ritate a ochiului uman este exploatata de multe sisteme tehnice, cele mai
cunoscute fiind cinemategrafia 'ii televiziunea.
In cazul sistemelor eu afi§are dinamica, se procedeaza astfel:
cifrele nu mai sunt aprinse toate odata;
in fiecare moment de timp este aprinsa doar 0 singura cifra;
fiecare cifra este mentinuta aprinsa un intelVal scurt de timp (cateva milisecunde), acela~i pentru toate cifrele;
cifrele se aprind pe rand: un intelVal de timp cifra unitjtilor, urmatorul intelVal de timp cifra zecilor §i a§a mai
departe pana cand se ajunge la ultima cifra din afi~aj dupa care procesul se repeta;
dadl tiecerea de la 0 cifia la alta se face suficient de iepede, ochiul peicepe intieg afi'iajul aprins. Spre exemplu,
pentru un afi~aj cu 4 digiti, trl'!cventa de trece de !a 0 cifra la alta trebuie sa fie de cel putin 200Hz (4 cifre x 50
HZ). Aceasta Tnseamna ca tiecare cifra este aprinsa un intelVal ae timp egal cu (1/200)s=5ms.

Schema bloc de principiu a unui afi~aJ dinamic cu 4 digiti se prezinta ill figura 3. Facem precizarea ca acest mod de
lucru este adoptat mai ales pentru sistemele de masura realizate Tnstructuri integrate.

Funetionare:
Oscilatorul este folosit pentru generareCi unui semnal digital cu frecventa de 200Hz. Acest semnal, denumit semnal de ceas,
indica momentele de timp Tncare trebuie facut:3 trecerea de la 0 cifra la alta;

Semnalul cu frecventa de 200Hz, este prelu<.t de un numarator biner care genereaza urmatoarea secvent1i cieliell de coduri
binare pe 2 biti: 00-401-4 10-4 11-4 O()-~ ~1 ..., a~ cum se prezint:3 §i in figura 4.

Fiecare cod binar este mentinut neschimbat un intelVal de timp egal cu 0 perioada a semnalului dat de oscilator, in cazul
de fata 5ms (vezi Figura 4).

Tranzistoarele pnp din ftgura 3 sunt folosite pe post de comutatoare electronice, ele cupleaza sau decupleaza anodul
comun al digitilor la polului pozitiv al tensiunii de alimentare.

Tranzistoarele lucreaza in regim de comutatie (regim special in care tranzistorul prezinta dear doua stari: tranzistor saturat
= contact electric inchis, respectiv trcnzistor bloeat = contact electric deschis).
Numararor binar
(2 biti)
QA Qe

unitati

IB

Bloc de mui:iplexoare
( 4 x MUX '!·:1 )
Fig. 3. Schema bloc de principiu a unui afi~j cu 4 digiti foiosind multiplexarea in timp

Pentru modul de conectare al tranzistoarelor din Figura 3, bloca,ea se face prin aplicarea unui unu logic In baza jar
saturarea prin aplicarea unui ze:o 'ogic in baza.

Deoarece comc:nda in baza pentru tranzisto3re se face de ciitre un DCD cu ie~irile active pe zero logic, rezulta ca, In fiecare
moment de timp, vom avea COclrun singur tranzistor saturat iar restul vor fi blocate. Aceasta inseamna ca numai un singur
digit din afi~aj este ccnectat la popul pozit.v al tensiunii de alimentare.

Semnai genecs;'t ~
de f)sci/.llt'-'f .; <:1{) " 5 ms I I I I I
IE )1 I: , I I

stat~Q~Q~r~tor~,
---~
00 1,--0-1--j ~
:1.0 i I
:i.:L t
I
00 ~
I
I ; ~ I I I

Cifra afi!:ata .::'~~_~ zed ~te X mill unital! EIolICi

Continuam e){pIScan~afur~ct:m".ii!irii :;chemei din figure; 3 considerand ea starea numliratorului este Q1QO =01
Decodificatorlll ~inar P;::f.c:;te pe intrarile de selectie cojul BA=Ol, situatie in care starea ie~iri!or devine:
o = i, T = 0 ,:2 = '1, j =
1. Tinand cont de explicatiiie anterioare, aceasta stare a ie~irilor DeD, conduce la
saturarea tranzistorlllui Q3 ~i la blocarea celorlalte. A?adar, la polul pozitiv al sursei de alimentare este conectat doar digitul
de zeci, deci m'lT'ai el se poate aprinde, slIpunem ca digitL:! de zEei este activat.

Blocul de multiplexoare prime~te pe intra"i1e de date patru coduri BCD (pentru mii, sute, zeci ~i unitati) ~i seoate pe ie~irile
un singur cod BCD, eel care corespu;1uc dig,tului acti'/at.

Trebuie sa existe 0 corespordenta 7ntre digitul activat ~i codul BCD seler.tat de blocul de multip!exoare: este necesar ca
digitul de unitari sa primeaSC:3mdul BCD 31 unitatil-Jr, digitui de zec! sa primeasca codul BCD al zecHor !?ia~a mal departe.
Acest lucru se obtine folosino p~'1trll r.on1?nrJaintrarilor de se!eqie tot starea Q1QO a numaratorului.

In exemplul considerat, deO'3rece am presupU5 Q1QO =01, rezulta ca 5,50 =01, deci ccdul BCD conectat la intrarile I1 ale
multiplexoarelor vor a~E'il cale Iibera sa ajunga la decodificatorul BCD/7segmente.

Dupa decodificare, informatia despre zeci este aplicata 7n acela~i timp celor patru afi~aje. La prima vedere s-ar parea ca
informatia de zeci va fi afi~c.ta pe taate cele patru 2fi~aje . .Acest lucrJ nu se lntampla deoarece, a~ dupa cum am aratat
anterior, numai digitul de zeci are anodul comun conectat la +Vcc, deei numai acesta 5e poate aprinde.

Digitul de zee! 0s':e rnE~nt:llut ar:rins 5:'lS. at5tJ tilTip ~at dureaza a stare a numaratorului. La urmatoarea tranzitie pozitiva a
semnalului de ceas, starea nllmaratorului se 5ehimba ~i devine Q1QO =10, ceea ee 7nseamna ca se activeaza dig/tul de
sute. ~ cum se alata ~i 7n ngura 4. urmEa.~aact/varea millar, a Go/taiHor, ~i prece5ul se reia.

Modul de conectare a blocu1ui de multip1exoare este prezertat b figura 5. Se observa ca toate multiplexoarele primesc
aceia~i informatie de seleq/e. Flecare multiplexor extrage bitul CLi aceia~i pondere din codul de mil, de sute, de zeci
respectiv de unitat,.

Afi~area dinamica, denurnita uneori ~i afiiare multiplexata, prezinta avantajul unui consum energetic mai mic ~i necesita
un singur decoditicalor BCO-7segmente.

Rezistentele RiO +R13 au rol de protectie a jonctiunii B': a tranz;stoare!or, ele trebuie calculate astfel 7ncat sa perm ita
intra rea In saturaiie a tranzistoarelor.

Rezistentele Rl +R7 au rei d2 Iimitare a curentului prin LED-urile ai1~2jului,


3
ml m2

53 Cod BCDsute I
51 52

23 Cod BCDzecl
z
21
u3 Cod BCD
ul
Uz
unitati
t t + t + t '"
-
S110l;l.I213

So MU: 4:1 ~
S110l;l.I213

So MU; 4:1
S1 10111213
MUX4:1 Ifr S, '0"""
r
So So MU;4:1
y
Q1 ~
QO
t +
ttrF
Fig. 5. Schema de conexiuni a blocului de multiplexoare

In final, daca facem 0 comparatie intre numarul de componente necesare afi~arii statice (figura 3) ~i numarul de
componente necesare afi~arii dinamice (figurile 4 ~i 5), se obserJa un necesar mal mare de componente pentru afi~area
dinamica. Din simpla contorlzare a numarului de componente se poate trage concluzia gre~ita ca afi~area dinamica este
neeconomica. In reaJitate, complexitatea a 4 decodificatoare BCD-/'segmente este mult mai mare dedit complexitatea restului
de componente ce intervin in afi~area dinamid'l. A~adar, necesarul de arie dintr-un circuit integrat este mai mlc pentru afi~area
dinamica decat pentru afi~area statidi, in r!llS mai apare ~i avantajul unui consum energetic mai redus atunci cand discutam de
afi~rea dinamldl.

2.4. Descrierea unui sistem de afi$Bre cu ajutoru! VHDL- conceptul de descriere ierarhica
Din experienta proiectanjilor de sisteme log ice complexe rezulta ca proiectarea acestora se face mal u~or folosind
conceptul de proiectare ierarhjca. Intr-o astfei de abordare, se concepe mai intal 0 schema bloc a sistemului iar mai apoi se
trece la proiectarea In detaliu a fiedlrui bloc in parte.
In cazul utilizikii Iimbajelor de descriere hardware, cum este Oil cazul VHDL, proiectarea lerarhidl presupune utiHzarea
unui project In care sunt incluse mal multor fi~lere :
Un fi~ier de nivel Inalt (top level), care specifica modul de interconectare a blocurilor componente din structura
sistemului. Pentru aceasta scop, SP. poate folosi un fi~ier de tip VHDL sau 0 descriere grafica a schemei bloc, prin
intermediul editorulul de scheme.
Mal tnulte componente de niveJ redus (low level). Flecare bloc functional din componenta scheme! bloc este
descris fie de un fi~ier VHDL, fie de 0 schema lagidi.
Cel putin un fi,?ier de cor:str'3ngeri pr,n care sunt specif.cate date referitcare la impJementarea

Pentru a intelege mai bine modul de lucru yom considera ca exemplu cawl sistemului de afi~re a informatiei
numerice din Figura 3. Pentru 3 putea fi implementata in CPLD, schema bioc trebuie pUlin modificata pentru a tine cont de
particu!aritatile hardware ale machetei de laborator. Printre aceste particularitali amintim:
osciJatorul de pe macheta de laborator are frecvenla de 25,175MHz => necesitatea introducerli unul div!zor de
frecventa care sa primeasca la in,rare un semna! digital cu frecventa de 25,1751'<1Hz~i sa fumlzeze la ie~lre un
semnai cu frecvem;a de 200Hz, sau putin mai mare;
comanda activarii afi~ajelor se face prin unu logic = ie~inle decodificatorului blnar DCD trebuie sa fie active pe
unu logic;
comanda segmentelor se face prin zero logic => ie;;irile decodificatorului BCD/7 segmente trebuie fie active pe sa
zero logic;
macheta dispune numai de 8 switch-uri => putem asigura informatle BCD doar pentru doi digiti.
Dadl dorlm ca Informatia afi~ta sa fie introdusa manual avem nevoie de 16 switch-uri insa macheta nu are decat 8.
Pentru a rezolva aceasta aroblema admitem ca fiecare pachet de 4 switch-uri sa comande doi digiti: SW1+SW4 vor fumiza
Informatie pentru digitul de mii !;i eel de sute iar SW5+SW8 vor furniza informa~le pentru digitul de zeci ~i cel de uniUiti .
• Fi~ierul de nlvel inalt, sa-I denumin afisaL 4dig. vhd este folosit pentru descrierea schemel bloc a sistemului de
afi~re. Din exemplul de descriere de mai jos se observa ca fiecare bloc functional este introdus prin intermediul unei declaratii
de tip component.

Observatii --·-----[COdul VHDL pentru schema bloc


I Seqiune dedicat'a 'incl"ud'er'ii'd'eli"'b'ra"r'il'
0' , library IEEE;
use IEEE. std_logic_1l64. all;
use IEEE.std_)oglc arlth.all;
use IS8E.std logic unsigned.all;
entit}' afisaL 4:!ig is
port (
fOi!l_'_--~Y in sid_logic;
piB_act_d:L']:Out std_logic_vector(3 downto 0);
pln_act seg:outstd_loglc_vector(6 downto 0);
pin u, pin s : in std logic vector (3 downto 0));
eild~ti s3j 4dig; - -
Seqiune dedicata descrierii arhitecturii. architecture arh_afisaj 4dig of afisaj_4dig is
Fiecare bloc funqional este introdus printr-o component divizor
declaraye de tip component; port (Un : in std_logic;
Pentru fiecare componenta trebuie intradus un I_oul outstd loglc );
fi;ier separat Tn care se descrie funcpa logica end component;
realizata (se poate face apella orice metoda de component nr_binar
descriere admisa); port (nr_e1k . in std _logic;
Denumirea intrarilor ;1 ie~irilor trebuie sa fie ac€ia~i nr_out:outstd_logic_vector(l downto 0);
in declararea componentei ~i in descrierea end component;
funetionarii acesteia; component ded
Lega"turile dintre componente (blocuri funqiona!e) port (sel_ded : in std _loglc vector (1 downto 0);
se face prin intermediul semnalelor; dCd_out:outstd_logic_vector(3 downto 0);
Pentru intrarile sau ie~irile blocurilor funqionale end component;
(componentelor) ce sunt conectate direct la component bed_7seg
intrarile sau ie~irile arhitecturii de nivel Inait, port(bcd_in:instd_logic_vector(3 downto 0);
definirea de semnale nu mai este necesara; out_7seg_oul:outstd~logic_vector(6 downto 0);
De~i nu este recomandata, mai ales pentru end component;
incepatori, este permisa ~i deelararea de component b!oe_mux
componente ce contin doua sau mai multe port ( u, Z, 5, m : in std _logic_vector (3 downto 0);
blocuri funct;ionale; sei_mux:instd_logic_vector(l downto 0);
Declararea componentelor ;i a semnalelor trebuie mux_out:outstd_logic_vector(3 downto 0);
facuta Inainte de begin-ul arhitecturii; end component;
Pentru fiecare instanta a unei componente se signal s_div, s_bcd : std-,ogic;
deelara modul de conectare a intrarilor ~i a ie~irilor signal s_num: std-'ogic_vector(l dmmto 0);
prin pori map; signal s_bcd: std_logic_vector(3 downto 0);
begin
bioc1: divizor
port map (Un => pin_elk, Cout =>s_div);
bloe2: nr_binar
port map ( nr_c1k => s_dlv, nr_out =>s_num);
bloc3: dcd
port map ( sel_dcd => s_num , ded_out =>pin_act_dig);
bloe4: bloc mux
map
POI"l (sel_mux => s_num , mux_out :::>s_bcd,
u=> pin_u, z=>pln_u, s=>pin_s, m=>pin_s);
tioc5: bcd_lseg
port map ( bed_in => s_bed ,out_7seg_olJt
=>;Jir._3ct_seg);
L --'_e::...n::...d"'-"-acrh
a::: isaj 4dig;

Dupa introducerea ~i salvarea aeestui fi~ier, fereastra


mediului WebPaek ee indica sursele implicate In prolect arata
ea In figura alaturata.
Se observa ca mediul de dezvoltare a aplicatiei a
seslzat prezenta a 5 componente ;;i acum asteapta
introducerea unei modalitati acceptate pentru descrierea
funqionarii fiecarei eomponente. end c
Pentru a introduce codul VHDL pentru blocul de compo:

multip!exoare, este necesar sa facem dublu e1ie pe


bfcc_rnux, iar din fereastra apik:Jt3 sa alegem optiunea
end c
VHDI. Module, In continuare mediul Web Pack ne cere sa c om.p 0:
intraducem denumirea ~i tipul intrarilor ~i ie;;irilor din modul.
Dupa aceasta, se genereaza un template in care nol nu mai
trebuie dedit sa descriem funqionarea respectivului circuil
sau bloc logic.
• Fj~ieru! bfoc_mux. vhtl, este folosit pentru
descrierea funqionarii blocului de rnultiplexoare din figura 3.
D descriere posibila este prezentala In tabelul de mai jos.

Observatii Corful VHDL pentru blocul de multi lexoare


Seqiune dedicata Ineluderii de librarii library IL:::;:;;
use IEEE.std_logic_1164 .all;
use IEEE. std_logic_arith.all;
use IE~E. -'5td logic unsigned. all;
~------------ -----
Seqiune dedicata descrierii entitatii. entity bloe_mux is
Denumirea ;i dimensiune intd3rilor ;;1a ie~irilor trebuie port (u, z, s, m : in stdJogic_vector(3 downto 0);
sa fie identica cu cea declarata In fi~ieru! principal sel_mux: in std_logic_vector(1 downto 0);
(afisaL 4dig); mux_out : out std_logic_ vector(3 downto 0));
end bioc mux;
l---architecture arh_mux of bloc_mux is
: begin
_______ with seLmux select
Lucrarea nr. 10: Sisteme de afiJare a informapei numerice

n -
UltiPlexoare;
Pentru combina!ia de sleqie 00 se alege codul
unitatilor, pentru combina!ia 01 codul yecilor, etc.;
mux_out<= u when "00",
z when "01",
s when "10",
mwhen"11",
u when others;

• Fi$ierul de constrangeri are extensia .ucf ~i este In principal folosit pentru a specifica pinii eireuitului CPLD la
care sunt conectate intrarile, respectiv ie~irile afi~ajului.
Pentru a introduce fi~ierul de constrangeri se alege: Project --f New NET "pin_act_dig<O>" LaC = "P70";
Source --f Implementation Constrains File --f se alege un nume pentru fi~ier, NET "pin_act_dig<1>" Lac = "P68";
spre exemplu abc --f se face asocierea cu fi~ierul principal afisaL 4dig --f se NET "pin_act_dig<2>" Lac = "P66";
alege Finish. In urma acestor opera!ii In fereastra surselor implicate in proiect NET "pin_act_dig<3>" Lac = "P63";
apare 0 noua componenta abc.ucf. NET "pin_act_seg<O>" LOC = "P39";
Oaca se face dublu dic pe abc.ucfse lanseaza un utilitar care ne ajuta ''NET "pin3ct_seg<1>" LOC = "P41";
sa editam fi~ierul de constrangeri. Din fereastra aparuta se selecteazil tabul Ports. NET "pin_act_seg<2>" Lac = "P44";
Oupa aceasta a!egere, pe ecran apare Iista porturilor de intrare ~i de ie~ire ale NET "pin_act_seg<3>" Lac = "P46";
sistemului digital proiectat de noi. Pentru fiecare port trebuie sa specificam pinul NET "pin_acLseg<4>" LOC = "P48";
CPLD-ului unde dorim conectarea respectivu!ui port, aceasta presupune NET "pin_act_seg<5>" Lac = "P51";
completarea coloanei denumita Location. Dupa completare se face 0 salvare a NET "pin_act_seg<6>" Lac = "PS3";
fi:?ierului de constrangeri. NET "pin_s<3>" Lac = "P37";
Trebuie avut grija ca numarul pinului completat in coloana NET "pin_s<2>" Lac = "P40";
Location sa corespunda cu schema hardware a machetei de laborator. NET "pin_s<1>" Lac = "P43";
Pentru acesta este absolut obligatoriu sa consultati tabelul de conexiuni NET "pin_s<O>" Lac = "P45";
prezentat in anexe. NET "pin_u<3>" Lac = "P47";
Tinand eont de schema electriea a machetei de laborator, pentru afi~ajul NET "pin_u<2>" Lac = "PSO";
pe 4 digi!i descris anterior, con!inutu! fi~ierului de constrangeri este prezentat pe NET "pin_u<1>" Lac = "P52";
coloana alaturata. NET "pin_u<O>" LOC "" "P54";

• Implementarea circuitului in CPLD. Oupa introducerea surse!or in proiect (etapa denumita Design Entry),
urmeaza etapa de sinteza (SyntlJ"!sis) - in care se genereazi3 0 schema 109ica pe baza descrierilor din etapa anterioara, apoi 0
etapa de implementare (Implement Design) - in care circuitul logic deja sintetizat este amplasat In CPLD tinand cont de
resurseie acestuia ~i de cerintele utilizatorului. Ultima etapa consta in generarea fi~iereior de configurare a eireuitului CPLD,
etapa denumita inpropriu de generare a fi~ierelor de prograrnare (Generate Programming Files).
Cu excep!ia etapei de Design Entry, restul etapeior se fac in mod automat de catre mediul WebPack (nu necesita nici
o interllentie din partea utilizatoruiui).
Pentru generarea fi~ierului de configurare, in fereastra resurselor se alege fi:?ierul principal (afiuL 4dig) iar In
fereastra proceselor disponibile pentru acest fi~ier se face dublu dic pe optiunea Configure Device (iMPACT). In ferestre ee
urmeaza se aleg urmatoarele optiuni: Configuare Devices -t> Next --f Boundary Scan Mode --f Automatically connect to
cable ••• --f Finish --f OK --f se alege fi~ierul afisi'lL 4dig.jed --f Open --f dic dreapta pe ieoana circuitului XC95108 --f
Program... --f se alege optiunea Erase Before Programming --f OK. Daca totul este in regula, dupa cateva secunde va
apare mesajul Programming Succeeded~i se peate trece la verificarea funqionarii circuitului.

®
,.
-
...•

A.. Referitor la schema din ~igur3 2, raspundep la urmatoarele intrebari:


Care este caderea de tensiune pe un LED aflat in conduqie ?
a reducere a necesarul de rezisten!e de limitare se poate ob!ine eliminand rezistentele de Iimitare a curentului dintre
decodificatoare ~i afi~aje ~i montarea altora intre Vcr 5: anodul comun. Este posibilil 0 astfel de abordare? Care ar fi
inconvenientele ?

A.. Referitor la schema din figura 3, raspundeti la urmatoarele intrebari:


Ce se intampla daca frecven!a oscilatorului este de 400Hz 7 Oar daca este de 150Hz?
Ce mod Iticari trebuie facute in screma pentru a ob!ine un afi~j cu 6 digiti?
Oadl avem la dispozitie un decodificator BCD-7segmente cu ie~iri active pe unu logic ~i afi~je eu anodul comun, ce
modifidiri trebuie efectuate in schema pentru a deveni funqionala ?
Este strict necesara "aprinderea" cifrelor in ordinea: unita!i, zeci, sute, mii ?
Are importan!a starea initiala de la care pleaca numaratorul ?
Care este schema pentru un afi;;aj cu 4 digi!i cu catoo LC mun 7
Lucrarea nr. 10: Sisteme de afijare a informa]iei numerice

Dupa verificarea unui montaj electronic s-a constatat ca exista 0 eroare de executie: ie!)irea 2 comanda tranzistorul
Q3 jar ie;irea T comanda tranzistorul Q2. Cum trebuie conectate codurile BCD de la intrarea blocuJui de multiplexoare
pentru ca informatia de intrare sa fie afi~ata corect ?
Care este schema logica realizatii cu porti NAND ce poate lnlocui decodificatorul binar ce comanda baza
tranzistoarelor?
Care este intervalul maxim de timp (In cazul eel mai defavorabil) dintre modificarea informatiei de intrare !ii afi!i2rea
efectiva a modificarii 7
Care este efectul vizibil daca se intrerupe legatura dintre ie!)irea Qs a numaratorului !)i intrarea de seleqie B a
decodificatorului binar?

Oscilator
RB

I Ii
Z
4
ci~ 5
Ip"J" III HiS!3 Afis.je
ClI anod
camun

I
~J

Uo Cod BCD
uni tati
u3
- fa Cod BCD
zeci
z3
~o Cod BCD
,ute
s3

~O Cod BCD
!Iii
m3

Bloc de switch -uri


pentru introducerea
informatiei ce trehuie afisate.
Se foloseste formatul BCD.

B. Referitor la schema electrica a machetei de laborator prezentata in Figura 6, raspundeti la urmatoarele lntrebari:

Care este corespondenta dintre schema bloc din figura :;;!ii schema detaliata din figura 6 ?
Cum se ooate mociifica frecventa oscilatorului 7
Poarta NAND Cl1 CClracteristid:ide transfer de tip trigger Schmitt poate fi lnlocuita cu 0 poarta NAND cu caracteristica
normala ? Dar cu un inversor ell car"cteristic;j trigger S:hmitt?
Explicati funqieonarea ceasului mantHI (Pl, Bl, C2, R9 poarta i~AND eu caracteristica de tip trigger Schmitt) ?
Cum a fost imDlem~ntat numaratorul binar pe 2 bi~; 7 Ce rol au rezistentele RZO~i R21 7
Se poate inlocui numarato'ul oin schema 6 ClI un circuit speciaiizat (spre exemplu 7493) fara a modifica restul
schemei?
Care este modul de rea:iziJre a decodificatofului binar n~cesar pentru comanda tranzistoarelor ?
Se poate inlocui decodificatorui binar cu un registru de deplasare pe 4 biti 7
Consultati faile de cataiog ~i p~eciz3ti care sunt particLiartiltile c!I'cuitului 74LS153 7

C. Determinari experimentale pe macheta de laborator cu componente discrete:


Plasati comutatorul K pe pozitic a ~i determinati cu osciloscopul frecventa semnalului de ceas (folesit pentru trecerea
de la 0 cifra la alta);
Plasati comutatorul K pe pozitic b!ii ac.~ionatlasupra tutonului Bl, urmari~ secventa de aprinderea a cifrelor de pe
afi!)aj;
Lucrarea nr. 10: Sisteme de afi~are a informatiei numerice

In ambele situa~ii aqiona~i asupra switch-urilor de intrare !ii urmariti efectul pe af:!iaj.

A. Folosind modu! de lucru descris In seqiunea 2.4. a lucrarii, se cere:


Codul VHDL pentru restul blocurilor functionale (divizor, numarator binar, decodificator binar, decodificator BCD-
7segmente;
Implementarea proiectului pe macheta de laborator cu CPLD;
Verificarea functionarii proiectului;

B. Modificati proiectul anterior (prin adaugare de noi blocuri funqionale) astfel Ind\t pe afi!iaj sa apara, unul dupa altul In
ordine crescatoare, numerele zecimale de la 0 la 9999. Numaratoarea va fi ciclica, dupa numarul 9999 se relncepe de la
zero.

Este nevoie de introducerea unui numarator zecima/ cu patru decade;


Intrarea de ceas a numaratoruiui zecima/ trebuie comandata de un' semna/ cu frecvenJa mica pentru ca
observatoru/ sa aiba timpu/ necesar sa observe (pe afi~aj) succesiunea stari/or. Pentru aceasta, 0 sugestie ar fi sa
migoram frecventa semna/u/ui de 200HZ- printr-un bloc sup/imentar de divizare a frecvenJei.
Ie$/ii/e numaratoru/ui se vor conecta la intrarile de date ale b/ocului de mu/tip/exoare. Semna/u/ de

C. Modificati proiectul de la subpunctul B astfellncat numaratoarea sa se faca invers (de la 9999 spre 0).

D. Modificati proiectul de la subpunctul B astfel indlt numaratoarea sa se fadi astfel: in sens crescator de la 133 la 777/ dupa
care In sens descrescator de la 777 la 133.

©
Lucrarea nr. 11: Studiu/ $i imp/ementarea automate/or FSM
(FSM - Finite State Machine)

Prezentarea modalitatilor de analiza ~i sinteza logica a automatelor de tip FSM $i implementarea acestora In structuri
de tip CPLD sau FPGA. Totodata se continua seria de prezentarea prin exemple a Iimbajului de descriere hardware VHDL.

Automatele elementare sunt circuite logice secventiale alcatuite dintr-un registru de memorie $i un circuit logic
combinational.

Registrul de memorie, denumit $i registru de stare, este format dintr-un numar de bistabili, de regula de acela$i
tip, ale caror intrari de ceas sunt conedate Impreuna formimd astfel intrarea de ceas a automatului (intrarea CK). Starea unui
automat este data de valorile logice ale bistabililor din registrul de stare $i, In consecinta, este susceptibila de modificare dupa
fiecare tranzitie adiva a semnalului aplicat intrarilor de ceas.

Circuitullogic combinational are dublu rei: calculeaza ie~irile automatului $i starea urmatoare a acestuia. Starea
urmatoare a unui automat este calculata In functie de starea prezenta (indicata de registrul de stare) ~i In funqie de starea
semnaieior de intrare. Starea urmatoare Iniocuie~te stare prezenta imediat dupa ce apare prima tranzitie activa a semnaluiui de
ceas. In calculul semnalelor de ie;;ire, pe langa starea prezenta a automatului, In funqie de tipul automatului, mai poate
interveni starea semnalelor de intrare.

2. 1. Clasificarea automatelor sincrone


a) Dupa modul de calcul a! ie!jirii:
• Automate de tip Medvedev - ie~irea automatului este identica cu starea automatului:

ie!jire = stare prezenta

stare viitoare = G(intrare, stare prezenta)

• Automate de tip Moore - ie;;irea este dependenta numai de starea prezenta a automatului:

ie!jire = F(stare prezentii)

stare viitoare = G(intrare, stare prezentii)

• Automate de tip Mealy - ie;;irea este dependenta de intrare ~i de starea prezenta a automatului:

ie!jire = F(intrare, stare prezenta)


s~are vi1~o<!lne= G(fnf::rare, stare prezent~)

b) Dupa modu! de utilizare a ie$!rii calculate:


• Automate cu ie~ire imediata;
• Automate cu ie;;ire lntarziata;
SchemeIe bloc de principiu ale automatelor de tip Mealy $i Moore sunt prezentate In fig. 1.

ObselVa/ii:
Automatele cu utilizarea imediata a ie~irilor prezinta dezavantajul ca fenomenele tranzitorii (de scurta durata) ce apar
imediat dupa tranzitia activa a semnaluJui de ceas, sunt transmise dired la ie§irile automatului.

Automatele cu intai7ierc prezinta In plus fata de cele imediate un registru de memorie In care se stocheaza ie~irile
calculate.

Pentru autornatele Mealy imediate, rnodificarea intrarilor are efect imediat asupra ie~irilor ceea ce Inseamna ca
modificarea ie5irilw are loc In acela;;i tad cu modificarea intrarilor.

Pentru automatele Moore imediate, modificarea ie$irilor se face cu 0 Intarziere de un tact In raport cu mcdificarea
intrarilor. Intrarile ce se modifica In tactul t, afecteaza starea curenta a automatului din tactul t+ 1, care mal departe
determina schimbarea ie~iriior tot In tadul t+ 1. Deci, la ie;;ire, efectul intrarilor este resimpt cu 0 lntarziere de 0
perioada a semnalului de ceas, cu toate ca automatul este referit ca un automat imediat.

La automatelE~cu l"tarziere, ie$iri!t: calculate sunt InsCiise 7ntr··un registru de memorie suplimentar, altul decat eel de
stare. Inscrierea se face la tactul urmator al ceasului atunci cand se presupune ca regimul tranzltoriu este stins. In
acest mod, fata de cazul automatelor imediate, la cele cu intarziere, se mai adauga 0 7ntarziere suplimentara de un
tact. Astfel ca raspunsui unui automat Mealy cu intarziere apare dupa un tact, iar pentru un automat Moore cu
Intarziere dupa doua.
FUNCllA
ClC 1 DE
FUNCllA REGISTRU tESIRE
STARI! excitatie DE
URMA TOARE Y'·· :JJj> MEMORIE

FUNCllA REGISTRU iesire


ClC 1 DE ,.
FUNCllA
STARII
REGISTRU
DE
IESIRE I DE
MEMORIE

URMATOARE MEMORIE
G
F

I------,

ClC 1 I F·ri ! stare


FUNCllA excitatie I REGISTRU
prezenta
FUNCllA
STARII _:':",:n"'~1 DE DE
URMATOARE MEMORIE IESIRE

iesire
FU~~l1A •• RE~I~TRU.

IESIRE MEMORIE

A.) Graful de tranzitie a starilor


Este 0 metoda intuitiva Cf permjte descrierea ~i verificarea :·apida a funcj;ionarij unui automat. Pentru fiecare nod al
grafului, reprezentat printr-un cerculet, se aS0ciaza 0 stare a automcltLlui, iar fiecare arc orientat intre doua noduri corespunde
tranzitiei 7ntre doua stari

11/0
10/0

Inlror!
-~
~O

o
8/ Ft1rm.!i
gr~llllllf pentrli lIn DIII.W!ll! Mealy 1JjFormogroflJlllf pentrll liD olllomat Moore
F't;, 2 Exemple de garfuri de trar.zitie pentru cele doua tipuri de automate
In cazul automatelor de tip Mealy, In cerculet se trece mdDI starli, iar pe arc se tree variabilele de intrare ce
provoadi tranzitia respectiva precum ;;i ie;;irea determlnata de acestea.
La automatele Moore, ie;;irea nu depinde de stare motiv pentru care In cerculet se trece codul stani ;;i valoarea
le;;irii, iar pe arc se trece combinatia Intrarii ce genereaza tranzit;ia.
Pentru exemplificare, in fig. 2 se prezinta cate un graf pentru fiecare caz.

B.) Tabelul de tranzitie a stariior


Informat;ia cont;inuta In diagrama de tranzitie poate fi transpusa lntr-o forma mai utila pentru sinteza automatului,
aceasta forma poarta denumirea de tabel de tranzitie. Transpunerea ceior doua grafuri de tranzitie a starilor din figura 2, In
tabele de tranzitie se arata In tabelele ce urmeaza.

Tabelul de tranzifie a star/lor corespunzator grafului din


fig. 2. b)
rstCl-r-e-p-r-e.--.,e-n-,a'::'o'"T:~l;-n-tl-'a-r-e"""S'C't-ar-e-v-I-:-:'it-o-a-re--':-l;-e-~7'ir-e-'
I• Q, Qo
GO
:
I
X
0
QI Qo
OJ;
: Y
a
~-----------'"T------- -----------r-----

f::::~:I-:::j-::!-::t::::~~::::;::I::
~- - - -j- 0- - - - T --7- -- - - - - -ii -T- -- - i- -jj--

~====2=Z====J===Q===
J II i j I ====~=~====[==Z==
iO i 1

Studiul funqionarii unui automat elementar dat se nurne;;te analiza. Analiza unui automat are drept scop
determinarea funqii!or F ;;1G astfe! heat funqionarea automatului sa poata fi prezisa pe baza schemei electrice a acestuia.
Etapele pareurse In analiza unui automat sunt re!iefate In urmatoarele doua exemple:

Din analiza schemei e:ectrice se vbseiva ca este yorba despre un automat Moore imediat earacterizat de: 0 intrare
notata X; doua ie~iri notate Zl, ZI1~; un reg'stru de stare format din doi bistabili D, eeea ce lnSeamna ea automatul are eel mult
4 stari distincte.

Pasul 1: DeterminareaEtaDa
bistabililor
siHnr.'afelo ~~---r--'---
••.dt~ excitatie

Prin semnale de excitatie sunt reierite 5EmflOiele.aplieate


iI
Observa Ii
Pent-u aLtomatului din fig. 3, semnale de exeitat;ie sunt
calculate de cele doua cireuite combination ale delimitate eu
intrarilor pasive ale :::stab;!ilor (::J ;:lentr J bistabili D, JK linie punctata ~i au urmatoarele expresii logiee:
pentru bistabili JK, etc.). Un sf:rmal dE exeita~ie este
sintetizat cu ajutorul unui CLC ee are drept intrari starea ,
eurenta ~i intrarile :3utomatului. Odata delimitat acest I D =
Ix Q!-.,I D = Ix ~Q I
CLC se trece la descrierea sa matematidl. I I Q Qu I () x Q
I I

Pasul 2: Scrierea ecuafiei f,mcfionale a bistabilului Ecuatia funqionala a unui bistabil D este data de relatia:
utilizat in registrul de stare al i1utomatl-'fui. Q+ = D
Lvcrarea nr. 11: Stud/vi 5/ /mplementarea automate FSM

unde win 0+ s-a notat starea viitoare a bistabilul~

In cazu! bistabililor JK, ecuatia funqionala este : I

Pasul3: Determinarea ecuatiilor de tranzifie a


Q+ = I~~I
Pentru exemplul considerat obtinem:
starilor
Ecuatiile de tranzitie a starilor se obtin prin lnlocuirea
semnalelor de excitatie, determinate la pasul 1, In ecuatia
funqionala a bistabilulu: scrisa 'r. p3sul 2.
Pasul4: Alcatuirea tabe/ului de tranzifie
Pentru fiecare stare prezenta a automatului, se determina
starea urmatoare In care v-a ajunge automatul luand In
calcul totalitatea combinatiilor variabiielor de intrare.

Pentru automatul luat ca exemplu, exista 0 singura


variabila de intrare r:2~a CP. lrD;?mn'3 c3 tabelul de
tranzitie va contine 4x2 linii.

Pasul5: Trasarea grata/ui de iri'im:i!it:


Grafu! de tranzitie extras din tabE=!u! anterior ne arata ca automatu! din fig. 3 este un numarator binar in cod Gray care;
numara lnainte pentru x=O ~i invers pentru x= 1. In plus, odata ajuns la cap de scala procesul de numarare se
opre~e.
I~irea z1 semnalizeaza prin "unu logic" atingerea starii m!nime, iar zO atlngerea starii maxi me a numikatorului In cod Gray
pe 2 biti.

--ro
o

-~~.>-'
1
11
ll0

Proiectarea unui automat elementar, pornind de la 0 deseriere a funCtionarii aeestuia In cuvinte (eazul eel mai uzual ~i
totodata eel mai dificil), sau de la 0 diagrama de tranzitie se nume~e sinteza. Proeesul de sinteza neeesita etapelor prezentate
maijcs.

• Descrierf:C1 ferma/a a fimctionarii autoJT.'i!tului


Aeeasta etapa este eea mal imf:'ortanta deoareee trebuie sa faea trecerea de la descrierea vaga, uneon ambigua, a
limbajului natural spre c sp€eifi(a~ie c!i,ra a funq:ionarii autornatului.

Observa!ii:
- de regula, sunt eunoseute numarul variabilelor de intrare ~i al eelor de ie~ire;
- starilor au~or.latL::Ji IE S'.:'f: ilsojde rr1!,en~onicicat mai sl:gestive;
- pe pareursul descrierii pot apare probleme ee nu au fost cup rinse In formularea initiala;
- este posibil ea descrie-ea corecta sa nu rezulte din prima iteratie ~i atunei proeesul trebuie reluat;
- rezultatul final al acestei etape este 0 diagrama de stare sau un tabel de stare ie~jre.

• Reducerea numarufui de stari ale automatului


Din etapa amerioara este posloil ca descrierea tormala sa eor.tina un numar mai mare de stari deeat eel strict neeesar.
Reducerea numarului de sta,i se bazeaza f,e identificarea starilor echivalente. Doua stari ale automatului sunt eehivalente, ~i
deei pot fi lnlocuite eu una singura, daca ele r,u se pot deosebi prin inspectarea star!i eurente ~i a celei urmatoare. Trebuie
remarcat ca in procesul de comparare nu participa variabilele de stare.
Se poate demonstra ca starile A ~i B, sunt eehivalente daea sunt Indeplinite urmatoarele conditiile:
A ~i B trebuie sa conduea la aeelea~i valori ale variabilelor de ie~ire ale automatului, pentru automatele Mealy
aceasta conditie trebuie indeplinit3 pentru toate variabilele de intrare;
pentru fiecare eombiniltie de intrare in parte, din A ~i B trebuie sa se ajunga In aeeea~i stare urmatoare.

Observatii:
Foarte adesea, In practica, sunt aplicatii In care anumite combinatii ale variabilelor de intrare nu apar niciodata, caz In
care atat ie~i:ile cat ~: :>tariie ';rmiitoare ale autornatului nu au niei c semnifieatie pentru aeesta. In tabelul tranzitiilor
aeeste eazuri se noteaz::! ell don 1: care ~i sunt tratate ca in eazul simplifidirilor de funqii binare.
Doua stari binare, A ;i 8, pot fi 2chi'/alente ehir dadi nu conduc spre acelea~i stan urmatoare numai cu conditia
realizarii de echivalente lntre stariie urmatoare, "tintite", de starile initiale A si B.
Lucrarea nr. 11: Studiu/ ~i imp/ementarea automate FSM

Exista metode automate de reducere a starilar Insa sunt mal putin utilizate de proiec'"..anti, deoarece In baza
experientei acumulate, ace~tia pot face 0 descriere minimala a functionarii unui autumat.
Nu Intotdeauna, un numar redus de stari Inseamna ~i 0 implementare mai simp/a, exista ~i situatii In care cre~erea
numarului de stari poate simplifica proiectu!.

• Asignarea starilor automatului


In aceasta etapa, pentru fiecare stare a automatului, stare pana acum referita printr-o mnemonica, i se asociaza un
cod binar unic. Asocierea de coduri binare, pentru fiecare stare a automatului, se poate face In med arbitrar sau urmarind un
anumit criteriu. Deoarece exista mai multe posibilitati de codare a starilor, vor exista tot atatea variante de scheme logice de
realizare, echivalente funqional dar deosebite ca mod de interconectare. Este greu de estimat care schema logidi, dintre ceie
posibile, este cea mai redusa In complexitate.
Uzual, codarea starilor se face cel mai adesea arbitrar, sau foiosind un criteriu de optimizare cum ar fi: codarea cu
variatie minima sau codarea cu dependenta redusa faia de intdki.

Codificarea ell variatie minima consta In asignarea unor coduri astfellncat trecerea Intre doua stari succesive ale
automatului sa se faca prin modificarea unui numar cat mai redus de biii ai cuvantului de stare. Aceasta codificare prezinta
avantajul di genereaza expresii simple pentru funqiile ce caleuleaza starile urmatoare.

Codificarea cu dependenta redusa fap; de intrari. Funciiile de tranzitie ~i cele de ie~ire depind atat de starea
curenta cat ~i de intrari. Pe caile de tranzitie neconditionate nu se testeaza njci a variabila de intrare, In schimb pe cele
conditionate se poate ajunge la testa rea tuturor variabilelor de intrare. Codificare care conduce la expresii ale funqiilor de
tranzitie cu 0 dependenta cat mai redusa fata de intrari este denumita codificare eu dependenJa redusa.

Observatii:
numarul maxim al starilor distincte ale unui automat cu n bistabili este egal cu: 2n.
pentru stari apropiate din punct de vedere funqional se recomanda a!ocarea unor cuvinte de cod care sa aifere printr-
un singur bit (codare Cll variatie minima);
daca exista stari nefolosite se alege cea mai convenabila mdare pentru starile utilizate, nu trebuie sa ne Iimitilm strict
la codarea binara naturala;
schimbarea codului unei sUlri prOVOCiCa modi ficarea Intregii scheme log ice a automatului;
aeolo unde este posibil, se recorr,anda separarea din setul variabilelor de stare a bitilor, sau a grupurilor de biti, cu
semnificatie precisa referitoare la schimbarea ie~irilor automatului;

• AIa1tuirea tabelulu; de tranzitie / ;efire


Dupa ce s-au efectuat etapele anterioare, se opteaza pentru un tip de bistabil, dupa care se trece la alcatuirea
tabelului de tranzitie/ie~ire, In acest tabel se trec ?i semnaiele de excitatie ai bistabililor automatu!ui. Dupa rezolvarea acestei
etape, problema se reduce la implementarea unor funqii binare, funqiile de excitatie a bistabililor ~i funqiile de ie;;ire ale
aLltomatului.

~Deducerea eC!Jilfiilor tunC/iilof' de excitatie if a celor de ieiire


Din tabelul rezultat la pasul anterior se extrage forma analitlca a funqHlor de excitatie ~i a celor de ie~ire, dupa care,
prin diverse procedee se minImizeaza aceste expresii In vederea impiementarii automatului cu un hardware minima!.

••Implementarea automatu/ui
Rezultatul final al acestei etape este 0 schema logic2 care trebuie sa realizeze 0 funcponare conforma cu diagrama
automatului. Spunem 0 schema logica deoarece pot fi 0 multitudine de realizari !ogice ale aceluia~i automat.

In mod evident, cea mal avar.tajoasa metoda de descriere a automatelor sincrone este cea eomportamentala.
Am aratat anterior ca In structura interna a unui automat putem dist:nge un registru de stare §i doua circuite logice
combinationaie: unul pentru caleulul starii viitoare ~i altul pentru calculul ie~irii. Referitor la descrierea acestor blocuri funqionale
cu ajutorul VHDL sunt valabi!e urrnatoc;~eie reguli:
Circuitul logic de ca!eul al ie~irii poate fi descris fie printr-un proces special destinat acestui scop, fie prin
declaratii concurente.
Registrul de stare trebuie sa fie descris In mod obligatoriu printr-un proces decJan~at de semnalul de ceas ~j
eventual (daca exista) de semnalul de reset.
Logica de calcul a starii viitoare poate fi descrisa printr-un proces separat de celelalte sau peate fi inclusa in
procesul destii'at r~gist.fl!!ui de st~re,

Se observa a~adar ca exista posibilitatea de a descrie automatul cu deua sau cu trel procese. Din punct de vedere al
u~urintei de proiectare, mai ales pentruincepatori, se recomanda descrierea cu trei procese. Din punct de vedere al
performanielor circuitului rewltat 'in urma sintezei, I'n Iiteratura de speciaiitate se arata ca este mai avantajoasa descrierea cu
doua procese.
Referitor la codificarea stariior automatului, exista doua posibilitati:
a) Codificarea este fticutii de compi!ator dupa n;~te reguli interne (de regula, metoda implicita de codificare este
cea binara iar daca se dore~te optimizarea din punct de vedere al vitezei de raspuns se folos~e codificarea de tip
"one hot".
Pentru decJararea starilor automatului trebuie introduse decJaratii similare celor de mai jos:
type st_val is (stO, stl, st2);
signalstare_prez, stare_viit: st_val;

b) Codificarea starilor poate fj fortata dupa dorin~a noastra prin intermediu! unor declara~i similare ce!or de mal
jOs:
sub~pestare_Automat: is std_logic_vector(l downto OJ;
signal stare_prezenta, stare_lTii toare : stare_Automat;
constantstO: stare Automat :=' 01';
constantsl1 : stare_Automat :=' 11';
constant st2 : stare Automat : =' 11' ;
In cele ce urmeaza prezentam cateva exemPie de automate de tip Mealy~i Moore descrise prin doua sau trei procese cu
sau fara impunerea codifidirii starilor automatuiui.

rO-=-=-b-se-rv-a-:-:-:-tiiii--------------'I-c=-o-d-=-u-:/-=-~-=H-=D=-L,---------------.-,
I Se~une dedicata includerii de librarii ! -- Exemplu de automat Hoore eu 5 stari
library ieee;
useieee.std logic 1164.all;
Se~une dedicata descrierii entita~ii. In cazul de fata:
nume entitate este: moore; enti~ moore is
intrarea de ceas : elk; port (e'_k, reset: in std logle;
intrarea de ~ergere: reset; data_out: outstd_logic;
intrarile automatului: data_in; afis stare:Out std logic vector (2 downto 0);
!e§irea automatu!ui: dati:_olJt; data=in: irL 5td_l;gic_v~ctor (1 do•.•.nto 0));
afi~are stare automat: atis stare, end moore;
Se~une dedieata descrierii arhitecturii. architecture arh_ comport of moore is
In cazul de fatii: ~pe st val is (stO, stl, st2, st3, st4);
numele arhiteeturii este: arh_comport; signal;tare_prez, stare_viit: st_val;
arhitectura este asoeiata eu entitatea: mealy; begin
starile automdtului sunt introduse printr-o enumerare, --- proces ptr. registrul de stare
eodifiearea prpriu-zisa este lasata pe seama reg_stare: process (elk, reset)
compilatorului; begin
sunt folosite 3 proeese: reg_stare pentru descrierea if (reset ~ '1') then
registrulUlde stare, st_ viit pentru determ:nare stare stare_prez <= stO;
viitoare ~i iesire pentru determinarea ie~irilor elsif (elk ='1' andelk'event) then
automatului; stare_prez <= stare_viiti
graful de funqionare al automatului este: enti if;
reg stare;
",,1(1 pl"Ocess
-- proees ptr~ calcu1 stare viitoare
~t "llt: process (stare_prez. data_in)
begin
case stare_prez is
when stO =>
case data in is
when "00" => stare viit <= stO;
when "01" => stare viit <= st4;
when "10" => stare viit <= stl;
when "11" =:.c> stare viit <= st2i
when others => null;
end case;
when st1 =>
case data in is
when "00" => stare_viit <= stO;
when "10" => stare_viit <= st2;
Observa~i referitoare la proeesul reg_stare: when others => stare_viit <= st1;
este folos;t pentru a deser;e fund;ionarea registrului end case;
de stare al automatului; when st2 =>
lista de senzitivitati euprinde ;ntrarea de cezs ~i case data in is
intrarea de reset; when "00" => stare viit <= st1;
intrarea de reset este activa pe unu logic; when "01" => stare viit <= st1;
intrarea de ceas este activa pe tranzitia pozitiva; when "10" => stare viit <= st3;
when "11" => stare viit <= st3;
Observatii referitoare la procesul .~t_viit: when others => null;
este folosit pentru a determina starea viitoare a end case;
automatului; when st3 ~>
lista de senzitivitati cuprinde starea prezenta ~i case data in is
intrarile automatului; when "01" => stare viit <= st4;
starea vi;toare a automatuJui depinde de starea when "11" => stare viit <= st4;
prezenta ~i de intrarile autQmatului; when others => stare viit <= st3;
selegia duoa starea prezenta se face prin declaratii end case;
when, iar seleq!a 7n funqie de intra rile automatului when st4 ~>
se face cu deciaratii de tip case; ease data in is
when nl1" => stare_viit <= st4i
Observapi refer!toare la procesul iesire: when others ~> stare viit <~ stO;
este folesit pentru determinarea ie~irii automatului pe end case;
baza star!i prezente a automatului; when others ~> stare viit <= stO;
Iista de senzitivitat! cuprinde doar starea prezenta a end case;
automatului; end process st viit;
-- proces ptr. calcul iesiri
Observapi referitoare la afi~area star!i automatului: -- depind doar de stare a prezenta
afi!iarea starii este necesara doar din considerente iesire: process (stare prez)
didactice; begin -
7n acest exemp!u, codificarea starilor este facuta de case stareyrez is
complilator - 7n consecinta nu !itim ce asocier! a facut when stO => data out <= '1';
acesta; afis-=-stare <=11111";
propunem urmatoarea combinape pentru a vizualiza when st1 => data out <= '0';
schimbarea starilor (este ca !ii cum am calcula un nou afis-=-stare <=""001";
set de ie!iiri din automat): when st2 => data out <= '1';
afis-=-stare <="010";
stO ~ 111;
when st3 => data out <= '0';
st1 ~ 001;
afis-=-stare <="011";
st2 ~ 010;
when st4 => data out <= '1';
st3 --+ 011; afis--=-stare <="100";
st4 -> 100; when others => data out <= '0';
afis stare <="110";
end case;
end process iesire;
end arh comport;
NET "elk" LaC - "P56";
NET "reset" LaC" "P83";
NET "data_in<1>" LaC" "P37";
NET "datajn<O>" LaC = "P40";
NET "afis_stare<2>" LaC = "P62";
NET" afis_stare <1>" LaC = "P65";
NET" afis_stare <0>" LaC = "P67";
NET "data out" LaC" "P82";

I Observai;ii i Codul VHDL


Seqiune dedicata includerii de Iibrarii -- Exem~lu de automat Moore cu 5 stari
library ieee;
use ieee.std logic 1164.all;
, Seqiune dedicata descrierii entitatii. In cazul de fata:
- nume entitate este: moore; entity moore is
I -_ - intra rea de ceas : clk/
intrarea de !itergere: reset;
i port (elk, reset: in std_logic;
data out: outstd_logic(l downtoO);
II - intrarile automatului: data_in;
ie!iirea automatului: datil_aut; I
afis_stare: out std_1ogic(1
data in: in std logic vector
downto 0);
(1 downto 0»;
- afi~are stare automat: afis stare; end moore;
Seqiune dedicata descr!erii arhitecturii.
In cazul de fata:
architecture arh comport of moore is
subtype st_val is std_1ogic_vector(1 downto 0);
I
- numele arhitecturii este: arh_comport; slgnalstare_prez, stare_viit: st_val;
- arhitectura este asociata cu entitatea: moore. constantstA: st va1:='00'·
i - sunt folosite 2 procese; constant stB : st_ val: =' 01' ;
constant stC : st_ val:~' 10' ;
begin
Observatii referitoare la procesul reg_stare: -- proces ptr. registru1 de stare
este foloslt pentru a descrie funqionarea registrului reg_stare: process (clk, reset)
de stare al automatului; begin
!ista de senzitivitati cuprinde intra rea de ceas !ii if (reset = '1') then
intra rea de reset; stare_prez <= stA;
intra rea de reset e5te activa pe zero logic; alsir (c1k ='1' andclk'event) then
intrarea de ceas este activa pe tranzitia pozitiva; stare_prez <= stare_viit;
eml if;
end process reg_stare;

-- ?roc:es ptr. CLC


·~o:r:J: process (stare_prez, data_in)
when stA =>
W data in=uOOu then
stare viit <= stB;
end if; -
when stB =>
if data in=ullu then
stare viit <= stC;
end if;
when stC =>
if data in="OlN or data in="lO" then
stare viit <= stA;
end if;
when others =>
stare viit <= stA;
Observa~i referitoare la procesul comb: end case;
este folosit pentru a determina starea viitoare a end process eomb;
--- asignari cocur~nte ptr. iesiri
automatului;
data_out (1) <= '1' when stare_prez =stB else '0';
!ista de senzitivitati cuprinde starea prezenta ~i
intrarile automatului; data out(O)<='O' when stare prez =stA else '1';
afis=stare<= stare~Drez; -~ afisare stare
starea viitoare a automatului depinde de starea
end arh _comport;
prezenta ~i de intrarile automatului;

Observatii referitoare ia calculul ie~irilor :


se folosesc doua asignari concurente, acestea se
desfa~oara In paralel cu procesele.

Ob5erva~i referitoare la afi~area starii automatului:


afi~area starii este necesara doar din considerente
didactice;
In acest exemplu, codificarea starilor este impusa de
noi, deci este cunoscuta;

NET "elk" LOC = "P56";


NET "reset" LOC = "P83";
NET "datajn<1 >" LOC = "P3?,,;
NET "data_in<O>" LOC = "P40";
NET "afis_stare<1>" LOC = "P65";
NET "afis_stare<O>" LOC = "P6T';
NET "data_out<1>" LOC = "P80";
NET "data oul<O>" LOC = "P8Z';

I Observatii i
Codul VHDL
Seqiune dedicata induderii de librarii I -- Example of a 5-state ~1ealy FSM
library i eee;
I use ieee.std logic 1164.all;
ISeqiune dedicata descrierii entitatii. In cazul de fata: I enMy mealy is
I- nume entitate este: mealy; I
port (
I intrarea de ceas : elk; I clkr reset: in std loglc;
intrarea de ~tergere: reset; data_out: outstd_logic;
intrarile automatului: data_in; ar.cs stare:Out stdloglc_vector(l downto 0);
ie~irea automatului: data_out; data_in: in std_logic_vector (1 downto 0));
end meal y;
Seqiune dedicata descrierii arhitecturii. architecture arh _ comport of mealy is
In cazul de fata: type st val is (stO, st1, st2, st3, st4);
sunt folosite 3 procese: reg_stare pentru descrierea signal stare prez, stare viit: st val;
registrului de stare, styiitpentru determinare stare bl\gin - -
viitoare ~i iesire pentru determinarea ie~irilor
automatului; -- proces ptr. registrul de stare
reg_stare: process (clk, reset)
Observatii referitoare la procesul reo_stare: begin
este folosit pentru a descrie funqionarea registrului if (reset = '1' j then
de stare al automatului; stare prez <~ stO;
!ista de senzitivitatl cupnnde intrarea de ceas $i elsif (cl k 'e;ent and c1k =' 1 ') then
intrarea de reset; stare_prez <= stare_viit;
intrarea de reset este activa pe zero logic; el1c if;
intrarea de ceas este activa pe tranzitia pozitiva; I3rd process reg stare;

-- ?roces ptr. determinare stare viitoare


st viit: process (stare_prez, data_in)
begin
case stare _prez is
when stO =>
case data_in is
when "00" => stare_viit<= stO;
when "01" => stare_viit<= st4;
when "10" => stare_viit<= stl;
when "11" => stare viit<= st2;
when others => null;
end case;
"",'Jen stl =>
case dacca ill is
when ;'00" => stare_viit<= stO;
when "10" => stare viit<= st2;
when others => stare_viit<= stl;
end cllse;
when st2 =>
case data in is
when "00" => stare_viit<= stl;
when "01" => stare_viit<= stl;
Observatii referitoare la procesul st_ viit : when "10" => stare_viit<~ st3;
este folosit pentru a determina srarea viitoare a when "11" => stare viit<= st3;
automatului; when others => null;
lista de senzitivitati cuprinde sta.-ea prezenta $i end case;
intrari!e automatului; when st3 =>
starea viitoare a 211tomatuiui depinde de starea case data_in is
prezenta $1de int-arile dutomatului; when "01" => stare viit<= st4;
seleqia dupa starea pp~zenta se face prin deciaratii
when "11" => stare viit<= st4;
when, ic::rselect!,. In ::mqie de intrarile automatului when others => stare_viit<= st3;
se face cu declarc.tii de tip case;
end case;
when st4 =>
case data in is
Obser/api referitoare ia procesu\ iesire ;
when "1111 => stare_viit<= St4i
- este folosit pentru determinarea ie$irii automatului pe
whan others => stare_viit<= stO;
baza starii prezente ~i a intrarilcr automatului;
end case;
lista de senzitivitat,i cuprinae starea prezenta ;ji
w"'",n others => stare_viit<= stO;
intrarile automatu:ui;
end case;
end process ~l_viit;
Observatii referitoare !a atl~area starii automatului: -- proces ptr. calcu1 iesire din automat
afi~rea starii este necesara doar din considerente iesire: process (stare_pre?, data_in)
didactice;
begin
codificarea binara a starilor SO, 51, S2, 5'3, S4este
case stare_p:::ez is
lasata pe seama compilatorului <1eVHDL;
when stO =>
propunem urmiitoarea combilliqe jJentru a vizualiza
schimbarea starilor (este ca ~i cum am calcula un nou ca$~ 0uta _in is
set de ie$iri din o'_,r.omat): "i~ien "00 => data out
II <= '0 I i
50~) 111; 51 -) 001; 52 -) 010; when others => data out <= '1';
53 --'> 01:'.; 54 -;. lOa; end case;
when stl => data out <= '0';
afis ~tare<= "OOlN;
when st2 ~>
aIis scare<= "GIOu;
case data in is
when ';-00" => data_out <= '0';
when "01" => data_out <= '0';
when others => data_out <= '1';
end case;
when st3 => data_out <= '1';
afis stare<= "OlIN;
when st4 =>
aiis stare<= \\100 H
;

case data in is
when ';-10" => data out <= '1';
w~'len"111l => data_out <= 'I';
when others => data_out <= '0';
end case;
when others ",) data out <= '0';
3.fis stare<:;;: "lIon i

i end case;
. ,,·nt; precess iesi re;
L ~e_n~dar~ comport;
NET "elk" LOC - "PS6";
NET "reset" LOC = "P83";
NET "datajn<1 >" LOC = "P37";
NET "data_in<O>" LOC = "P40";
NET =
"afis_stare<2>" LOC "P62";
NET "afis_stare<1>" LOC = "P6S";
NET "afis_stare<O>" LOC = "P6T';
NET =
"data out" LOC "P82";

A. Folosind metode similare celor prezentate in partea teoretica, determinati graful de tranzitie pentru automatele din figura
6.

l.-.y-I l.-.y-I l.-.y-I


CLC pentru Regist.ru CLC pentru
calcul stare de calcul
viitoare stare iesira ~ ~ ~
CLC pentru Rcgistru CLC pentru
calcul stare de calcul
vii toare stare iesire

A. Folosind metodologia de proieetare a automatelor sincrone determinati schema logic3 a unui numarator sincron
bidireqional pe 3 biti.
B. Pentru automatele descrise in exemple!e VHDL, detenninati cilte 0 schema logica folosind bistabili la alegere.

A. Verificati pe macheta de laborator cu CPLO, descrierile VHDL prezentate ca exemple.


B. Descrieti in Iimbaj VHDL automatele sincrone ce funqioneaza dupa grafurile de tranzitie din figura 2.
C. Folosind facilitatea ISE WebPack prin care se permite introducerea schemelor logice ale sistemelor digitale, implementati
schemele din figura 6 ~i camparati rezultatele obtinute cu cele de la subpunetul 3.1. din desta~urarea lucrarii.

Mode de lucru:
variabilele de intrare vor fi implementate cu switch-uri de pe macheta de laborator;
starea automatului se afi~eaza in cod binar pe doua sau trei LED-uri existente pe macheta de laborator;
starea semnale!or de ie~ire se afi~eaza in cod binar pe alte LED-uri (ramase Iibere) de pe macheta de laborator;
semnaiul de ceas al automatului se preia de !a oscilatorul de 25,175MHz de pe macheta de laborator, eventual printr-o
divizare prealabila a frecventei.

©
NR.
CRT.
SIMBOL I TABEL DE
ADEVAR
!
A--[>o-V I "Realizeaza negarea variabilei de intrare;

I~
" Realizeaza functia de minim a variabilelor de
$1 intrare.
'I ~:[)-V ~y
o 0
=AB
0 " Funqionare:
(AND)
:V- o 1 0
I
-dad! A=O atunci y=o (poarta blocata);
daca A=l atunci Y=B (poarta deschisa);
1 0 a i " Exista porti AND cu 2,3,4 sau 8 intrari.
I 1 1 1
'i
i
I I
I A --r--..p- .,
"-"_I
I B;;' I
~1- NU I• Realizeaza inversul funetiei logice de la punctul 2.
Y • AB
I (NAND)
o
o
0
1
1
1
I • Exista porti NAND cu 2,3,4 sau 8 intriki.

1 0 I 1 i
I
j

i 1 1 I
I
0 I!
I i
I • Realizeaza functia de maxim al variabilelor
I SAU A BIY=A+B I intrare.
i
I (OR)
o
o
1
0
1
0
0
1
1
'-
i
"Funqionare;
daca A= 1 atunci Y= 1 (poarta blocata);
daca A=O atunci Y=B (poarta deschisa);
I • Exista porti OR cu 2,3,4 sau 8 intrari.
1 1 1 !

! • Exista porti NOR cu 2,3,4 sau 8 intrari.

, • Maduri de interpretare:
I SAU -'
'A
-\\
'\"..
..•••••• y I
I

i - realizeazil
EXCLUSIV i B -It./ ' ,--
A B0 f=AC:BB
_._- adunarea modulo dOl;
- funepe de anticoincidenta;
I (XOR) : =El- I ao 1
0
1
! - funepe de complementare comandata:
- daca A=O atunci Y=B
!
,
I 1 0
110
I 1 - dadi A=l atunci Y= B

m
SAU - i, A ~
I EXCLUSIV ;: B~ y Y=AC:BB
B
I NEGAT i o
(XNOR) i =E}- ! o
0
1 0
1
,
1 0 0
I _1 _':.._1 __ 1 _ I
Anexa 2: Formele canonice ale funetiilor binare
Forma canonica constituie 0 alta modalitate de reprezentare a funqiilor binare In care, descrierea funqionarii se face
analitic. SCrierea canonica a unei funqii binare se poate face In doua moduri:

• prin utilizarea unei sume a tuturor mintermenilorpentru care funct;ia binara prezinta valoarea "1" - cazul primei
forme canonice, denumita ~i forma canonidi disjunctivii;

prin utilizarea unui produs al tuturor maxtermenilor pentru care funqia binara prezinta valoarea "0"- cazul celei
de-a doua forme canon ice denumita ~i forma canonicii conjunctiva,

Mintermenul este un produs logic la care participa fiecare variabila de intrare 0 singura data: sub forma directa -
daca variabila de intrare este unu logic, sau sub forma negata - daca variabila de intrare este zero logic.
Maxtermenul este 0 suma logic~ (un produal), la care participa fiecare variabila de intrare luata 0 singur/f data:
sub forma directa - dac/f variabila de intrare este zero logic, sau sub forma ne"gata - daca variabila de intrare este unu
logic.

Exemplu: Pentru funqia de transfer prezentata In Figura 2 obtinem:


• Modul de defin!r.!l<i! minimax -J:~r!l1enilorseQ~e_zinta In tabelul d~JIlaii.os: _

Vector de Vector de
inh-are iesire
Linie X MINTERMEN MAXTERMEN Y
x3 x2 xJ Y2 Y;
0 0 0 0 ffiO=XS'X2"X; MO=XS+x2+Xl 0 1
1 0 0 1 ffi1 =xs'X2"'>;;j MI =x3+x2 +X:; 0 1
2 0 1 0 m2 =x3-X2-Xj M2=X3+x2+x; 1 0
3 0 1 1 In 3= X3,x2"X1 M3=X3+X2 +Xl 1 1
4 1 0 0 m4=x3,x2'xl M4=xS+x2 +xI 0 0
-
5 1 0 1 IDS = X3'X2,x1 MS = X3+X2 +X1 0 1
,
, 6 1 1 0 i m6=xS-x2-x.l Me=x3+x2+xI 0 0
? 1 1 1 ffi7 = x3,x2,xj IvI7=X3+X2+Xj 1 1

• Prima -.!ormaca:l.~ni<:a (forma disjull.c:tiva) a celor doua fum:!;li !Jinare: _ _ _


I xs,xrxl I
Y2=m2+ffi3+m7= xs,xrx,. + .'i::j"x2'x,. "'"AS'X2'X,.:: I XS'X2'X11
AS,x2'XI

>'1=illO+ill1+ill3+ffis+fll7= Xs,.l'2,.l',.+Xs,.l'2');J+X3'X2'Xj+Xs,X2'X,.+X3'X2'X1 =
X3'X2'XI
;CS X2IXj
1

XS'X2'X!
X3'X2'Xj
X'j'X2'XJ

• A doua forma canonidi (forma conjunctiva) a celor aoua funqii binare:


)12= M 0' M I'M 4' M 5' MG =(X3+X2+X 1)( X3+X 2+X1)( X3 + X 2 +x I )(x3+ X 2+XI)( XS+X2+Xj)=

Se re;nar.:a faptui ca
atat mintermenii, cat !?imaxtermenii, sunt dependenp numai de starea logica a variabilelcr
de intrare ~i nu depind de valorile de ie~ire ale funC1;ieilog ice.
Din analiza expresiilor celor doua forme canonice se observa ca, de~i descriu acelea~i funC1;ielogica, cu dlt 0
forma canonica este mai restrarsa cu atat cealalta este mai ampla.
In practica se recomanda utilizarea primei forme canon ice pentru funq;iile binare care au un numar mai redus de
valori "adevarat", printre valorile funC1;iei,~i a formei a doua Tn caz contrar.
Pentru exemplul considerat, se obtin expresii mai simple daca se utilizeaza prima forma canonica pentru y2,
respectiv cea de-a doua forma pentru y1.
o deosebirea fundamentala 'intre un latch ~i un bistabil consta In modul In care are loc modificarea ie$irilor. Astfel,
pentru latch-uri ie~irea se poate modifica oriunde pe nivelul activ al semnalului de ceas, pe cand, pentru bistabili modificarea
ie~irii se face Intotdeauna sincron cu 0 anumita tranzi~ie a semnalului de ceas, denumita tranzitie de basculare.

Delinipi:
• Tranzitia de basculare, sau tranzi!ia activa, a semnalului de ceas este acea tranzitie, negativa sau dupa caz
pozitiva, care poate modifica ie~irea bistabilului.
• Tranzi!ia neutra a semnalului de ceas este opusul tranzitiei de basculare. Aceasta tranzitie nu peate modifica
ie~jrea bistabiluiui In nici a situatie.

1.Bistabilul de tip T
S1MBOL

T Qn Qn+! T Qn Qn+! T Q

~ o 0 0 0 Q Q 0 rnemorare
o I I 1 Q Q 1 basculare
1 0 I
~ I I 0

2. Bjstabilu!..!i~tip D
51MBOL

lD
t:tlli
0 Qn D Qn
Qr- 0 0
Qtl+!
0 0 Q
Qn+l
0 o 0

U
0 1 0 1 Q 1 I 1
Q
1 0 1
1 I 1

3.Bistabilul de tip SR
j &~BOL

:flQ
,
:
CK
R Q
S
0
0
0
R

0
0
0
1
1 0
Q~ Q~+!

0
1
0 I
S
0 0
0 1
1 0
R Q
memo rare
0
1
0
1
1 1
0 0
I 0
1
1 1 ?

1 0 1 1
1 1 0 ?
1 1 I ?
4.lJistabiful de tip JJ(
51MBOL FDRME ALE T.••..
BELUUJI DE ADEV}:.R

t}
K Q
Q- ~ J

CK o 0 Q Q 0 0 I memorare
K Q o 1 * 0 0 1 0
o
1
1 0
1 1 Q
*' 1
Q
1 0 t
1 1 baoculare
o
1
o * don't care (poate fi zero logic sau unu logic)
Bistabilii realizatii In structuri integrate prezinta, pe langa intrarile specifice, una sau doua intriki ce sunt tratate
prioritar. Aceste intrari, cand sunt activate, permit aducerea fortata a bistabilului intr-o stare logica In mod independent de
semnalul de ceas ~i idiferent de starea logica a intrarilor pasive.
Intrarea de aducere fortata a bistabilului In starea zero, este de regula activa pe nivelul Low al semnalului aplicat, ~i
este denumita RESET sau CLEAR; notatiile uzua!e pentru aceasta intrare sunt R respectiv CL .
Intrarea de aducere fortata a bistabilului i'n starea unu, este de regula activa pe nivelul Low al semnalului aplicat, ~i
este denumita SET sau PRESET; notatiile uzuale pentru aceasta intrare sunt 5 respectiv PR .
Tinand cont de observatiile anterioare, infigura dg_fIlaJj9.5se prezinta .poua sim~oJl,!t'i._complete de bistabili.

JPiiQ
. CK
K Q.
cr,
Resursa Pin CPLD
XC95108
OSC
P9
(25,175 MHz)
LD 2 P1
BTNl P2

Activare Pin CPl.D


I I XC95108 XC9510S
BTNl P56
BTN 2 PS7 P63
BTN 3 P58 P66
BTN 4 P61 P68
BTN 5 P83 P7G

--
Switch-uri Pin CPI.D I
SWI
I XC95108
P37
Pin CPLD
XC9510S
P39
SW2 I P40 P41
SW3 P43 ! P44
SW4 P45 P46
I SW5 P47 CE P48
! SW6 PSG CF PSI
I SW7 PS2 CG P53
I SW8 P54 I

Pin CPlD
I XC95108 XC95108
LDl P62 i KCLK P35
L02 P6S I KDAT P33
LD 3 I P67
I
LD 4 P69 i
LD S P7I
LD 6 P75 SemnaleVGA Pin CPLD
LD 7 P8G I XC9510S
L08 P82 HS I P34
HV I P36
R I P24
G I P26
I B I P32

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