97

Circuite digitale

  • Upload
    dnmldvn

  • View
    359

  • Download
    26

Embed Size (px)

Citation preview

Page 1: Circuite digitale
Page 2: Circuite digitale

_I Introducere J~___ Cuprins J ii

lucrari practice

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

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

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 ,I L8 Studiu! circuitelor de numarare sincrone ............................................. 58

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

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

I Studl"I;1 Implement ••-e. automate!or FSM ..•.•.••.•.......•.•.......•..I L11 I 81I 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 II

Page 3: Circuite digitale

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. Acestese 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 cua drcuitelor logice. Sunt prezentate: nivelurile de tensiune asociate starilor logice; 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; maiES.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 Iimitarileutilizate.

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 lar dou3 nivele de tensiune distincte.

trul unui circuit logic = valoare de catalog pentru 0 marime ce-i caracterizeaza funqionarea in conditii derea cu alte circuite din aceia~i familie .

. - sunt alerii astfel incat sa caraderizeze dlt mai bine regimul de curent continuu, regimul tranzitoriu ~izgomot 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 operare ~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***

C0400074HC***74AC***74 AHC***74HCT***74ACT***74AHCT***

Page 4: Circuite digitale

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 unnivel de tensiune pentru "unu logic" ~i un altul pentru "zero logic". Acest mod de lucru nu poate fi adoptat 7n praetiell deoarecenivelunle de tensiune sunt afectate de 0 serie de factori perturbatori precum: dispersia tehnolcgica, imbatranireacomponentelor, variapile tensiunii de alimentare etc. Din aceste motive, pentru fiecare stare logica se aloca cate 0 banda detensiuni permise. Pentru a putea face distinqie 7ntre cele doua stan logice, benzile de tensiune asociate sunt separate de 0banda 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 volTENSIUNEA DE INTRARE (Vi)

Vcc

Marginea de zgomotpentru starea IIHIGH II

----If /NMH ,j, -E--'"

--------

1:1V= sal tul de tensi une3,1 iesirii

--~~~--Marginea de zgomotpentru starea 11 LOW 11

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

Familie TTl 74LS** CMOS CMOS compatibil TTl CMOSstandard 74AS** (74HC**,Parametru (74**) 74ALS** 74AHC**) (74Hcr"* , 74AHCT**) (CD***)

VOLmax[V] 0,4 0,4 0,1 0,4 99% din Vdd

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

Page 5: Circuite digitale

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 dintremasura a imunitatii acestora la perturbatii.

Marginea de zgomot statica este data de • -suprapune peste semnalul util fara ca acesta sa perturbe <-

Analizand Figura 1, se observa ca intre tacestor diferente este de a prelntampina efectul nega :e ::=:--=-altceva decat valorile minima Ie (garantate de fabrica ) - -

NMH = VOHNML = VOLrrE:< - _

Facem precizarea ca marginile de zgomotcele doua stari log ice.

ui de zgomot lent variabil care se poate" lui.admisibile la intrare, apar diferente. Roluld semnalului uti!. Aceste diferente nu suntt. Ele se determina cu ajutorul relatiilor:

2.3. Timpul de propagare

Acest parametru reprezinta lntarziereamomentul aparitiei raspunsului la ie$irea acestuia.

Timpul de propagare este un aspectpropagare sa fie cat mai midi pentru a nu limita fre:-=realizare, intarzierea introdusa este de ordinul uniE. .sa- _

Modul de definire a intervalelor de timsemnalele de !a intra rea $i ie$irea unui inversor.

t,. - (rise time), timpul de cre$tere al senivelul de "unu !ogic";tf - (fall time), timpul de descre$tere alpentru nivelul de "unu logic";tpHL, tpLH- timpii de propagare pentru ~tHL , tLH - durata frontului cazator (respect:tp - timpul mediu de propagare definit p .

:Jgke. Este necesar ca valoarea timpului dea circuitelor. In funetie de tehnologia dende (In = 10' 95).ezinta in figura 2, unde sunt prezentateeste urmatoarea:~ 90% din amplitudinea tensiunii pentru

-->--vil

Vii100$'0

50% ~ ~ ~ ~ ~ ~ 1~~10% - - - - - - -l--

~I I- --------- -r----------I I

I II I-----------. ,----------f I III I------------~~ ----------II I :

I tI

I

I tLHI ~- - - - - , - - - - - - - - - + - - - - - ~ - ~ _I _I I I I

I I I I______________~ 1__ ~_I I fI I I II I I I

-----T----- -~-~-

Vo t10(W;"

Facem precizarea ca tpHL* tpLH'ceasta nu lnseamna ca tpHL=tpLH,

DOtfi egale, dar nu $i cele efective de ~Pentru a se asigura conditii opti

~ sa satisfaca relatia:

:e catalog yom gasi acelea$i valori pentru tpHL$iaximale pentru timpii de propagare. Valorile

Page 6: Circuite digitale

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 sepoate afla In una din urmatoarele stari: blocat = contact deschis, sau saturat = contact inch is. Din ascet motiv, In figurileurmatoare, In schemele echivalente, tranzistoarele sunt Inlocuite de comutatoare.

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

(n)

CIRCUIT CIRCUIT ETA! iE~RELOGC

DEFA20R DE AAND IE;'JRE B(Tt) (T2)

(T4) Dl

Etajul de intrare este de regula format dintr-un tranzistor multiemitor ~i are rolul de a realiza funqia logica. Acestetaj trebuie sa fie proiectat astfel Ineat sa nu necesite curenp mari de comanda ~i, In plus, sa prezinte protectie la eventualeletensiuni 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 vederetehnologicin 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 pescurt 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 realizatein tehnologie bipolara. Daca In foile de catalog nu se fac referiri exprese la tipul etajului de ie~ire, atunci, In mod implicit, acestaeste de tip TOTEM POLE. In esenta, un etaj In contratimp este format din doua tranzistoare ce sunt conectate In serie 7ntretensiunea 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 figura4. 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 acomutatoarelor provine de la etajul defazor ~i este conceputa astfellncat cele doua comutatoare sa fie aqionate In contratimp.

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

0" OFF HIGHOFF 0" lOW

Conecta.-ea in paralela doua ielijiirieste interzisa

a) ~

Fig. 4. Etajul de i~ire TOTEM POLE; a) schema electrica echivalenta; b) aspecte nedorite ce apar la conectarea in paralei aie~irilor de tip TOTEM-POLE

Page 7: Circuite digitale

ProprietJjile (particularitJJile) eta '-

)Qua sau mai muite ie~iri de acest tipJef1tru cazul in care starea logidi ai' --- :;;:: ~cazuri exista riscul ca ambele circuitele sa ==

ie~ire de acest tip nu trebuie niciodz:: ::re::tiriscul distrugerii circuitului.

De regula, 0 ie~ire de acest tip estepentru comanda unor sarcini rezistive dac2 -

Asigura cu resurse interne nivelele de

In regim stationar acest etaj prezinta

Impedanta de ie~ire este de acela~de "unu logic" (T3 blocat ~i T4 satura ).

Tranzistoarele T3 ~i T4 se afla simua ie~irii. Pe acest interval, curentuJ -preponderent inductiv, provocand 0 sc2:d= ~ _Intre Vcc ~ masa, trebuie conectat un c:xrz-sa:::-

eoarece apare 0 circuia!;ie de curent de valoare marea!;ie este prezentata in figura 4, b), Pentru aceste

e stari logice;: saturat.

logic" (T3 saturat ~i T4 blocat), cat ~ pentru starea

.J scurt de timp ce corespunde tranzitiei din" 1" in "0"=s::= -:: _' conexiunile de alimentare ale circuitului raspund

- ,Din acest motiv, langa capsula circuitului integrat,= ::e;xa. 10 nF;

b) Etajul final cu ie§ire in gol (

Etajul final de tip "colector in 9 ,X:T4, ramane tranzistorul T3 al carui colect :;;::

Acest etaj poate genera un bun _!anga bfocarea !vi T3, ;i utiHzarea unei f'P__ .-

"zero logic" ~i este doar permisiv pentru ' -= ==Valoarea rezistentei externe ad" .-: -=

c) Etajul de ie§ire tristate

Ie~irea tristate prezinta, pe lastare de inalta impedanta, notata HiZ. Ci':=::edenumita ENABLE, prin intermediul car '0 SE

Starea HiZ Inseamna dezactiva'Eetajului final in contratimp.

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

VCC~Re%t

Y

,.°11{3

K;fY~~

OFF OFF

011 lOW

a)

Fig. 5. Etajul de: ie~ire open collector; a)c) efectul de AND cablat ce apare la con

ProprietaJile (particularitaJile) -

Func!;ionarea corecta a portii este

Doua sau mai multe ie~irile de acES: -distrugerii circuitelor. Acest mod de __ -CABLAT, ale carei intrari sunt chiar '._

o ie~ire de acest tip peate fi utilizat2

Nivelul de "unu logic" este generat -Timpii de front pentru sarcini capa ' - =-Impedantele de ie~ire sunt net dif

.. In contratimp prin eliminarea repetorului pe emitor_- -."eli figura 5).

- '3===- - orului T3, dar pentru "unu logic" va fi necesara, pe'::::;"E:== ='7? Vcc. A~adar, circuitu! genereaza autoritar starea de

.Reat:,,

: F=abl~1,

c :

~~F'.bl~1

c)

smbolul si modul de conec"tare a rezistentei externe;in gol pe 0 aceia~i rezistenta externa.

. exteme.

pe aceia~i rezistenta externa fara a exista riscul2::::::a=;ESi3 se comporte ca 0 poarta AND virtuala, denumita ;;1

.==",:::c. de acest fel este prezentat in figura S.C.=== pereaza la tensiuni de alimentare mai mari de 5V.

:ce=e:::i:~:;:=;::;;;;3- externe.

ute LOW ~i HIGH, 0 stare suplimentara denumita• ~ fadlitate au 0 intrare suplimentara de comanda,

Page 8: Circuite digitale

° ° 1o 1 °1 ° HiZ1 1 HiZ

A WP2 FB

Y SP3mo A

1 BON Off HIGN

Off 011 lOWOff 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 unmoment 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 alesistemelor cu microprocesoare.Ofera impedante mid la i~ire, ~i de acela~iordin 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 altarcircuite logice. Analiza pur logica a circuitelor digitale nu impune nici 0 restriqie in aceasta pnvinta. In practica trebuie impuserestriqii 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. Inplus, se remarca faptul ca, pe masura ce cre~te numarul sarcinilor logice comandate de i~irea unei porp, cre~te ~ valoareacurentului generat/preluat de catre aceasta. Daca numarul sarcinilor logice este prea mare, poarta logica nu v-a mai puteamentine nivelele de tensiune acceptabiie ~i informatia logidl se peate pierde.

Pl trans~ite unu logic lfCC

I -IOH +IlH P2• Rx

PI 1_ ~ I,VOl. Vx<NMH J.VI

Pl trensmite zero logicVCC

I -E -I,vOl. Vx<NMlo J...VI

Va < VOLmax VI < VI lomax

( P1 transmite +IIH

I ~nlJ logic ~ P2-IoH

PI -7 +11"lve ---? P3

Pl tranS!litozero logic

VO< VOlomax10I.=~I-IILIIOl< IoLmax

---)~)

Fig. 7. Circulatia curentilor funqie de starea logidl ~ifactorul de indircare

It: :~

Vo >VoHmin

IIIIQ!; I = ~ IIH

10" < IOHnlaX

Page 9: Circuite digitale

~dar, un circuit logic trebuie sa poata ge e_ 'generati de toate portite care sunt conectate la area .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.

ca --, : StIJdiulparametrilor ji caracteristicilor porfrlor iogice

u curent mai mare sau egal cu suma curentilor~ timp el trebuie sa asigure ~ nivelul garantat al

Semnificatia curentilor din Figura 7 este urmatoarea:IlL - curentul de intrare In starea Low. Valoarea maxima a aprovine 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 !£SIRESERIA nivel LOW nivel HIGH nivelLOW nivel HIGH

III max [mAl IIH max [).lA] 10L max {m~~ IoH max [mAl

74 ** - 1 6 40 16 -0,4

74 S ** - 2,0 50 20 - 1,074 LS ** - 0 36 20 8 -0474 AS ** - 2 0 20 4/8 - 0,474 ALS ** - 01 20 8 -04

Prin definitie factorui de incarcareia ie~irii Fa, (fan-out, output loading factor, sortancE), este un numar ce indicacapacitatea i~irii de a comanda In siguranta, (cu asigurarea unor nivele corecte de tensiune), intrarile altor circuite din aceia~ifamilie. 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 maxFO = min { FOLOW, FOHIGH}

Prin definitie factorul de incarcare al intrari~ F:1,(fan-in, input loading factor, facteur de charge) reprezintanumarul de unitati de sarcina percepute la intrarea unui circuit digital. FI este dependent de complexitatea circuitului logic ~ipoate 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 delewe, Va=! (117). Aceasta caracteristica prezi ta' nta deosebita deoarece ofera informatii despre valonle efective aleunor 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. Eapoate 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 dintreele prezinta 0 caracteristica speciala de tip

a) err standard

Pentru exemplificare, In figura 8 se . 'ca pentru inversorul SN7404 (familia TIL standard). Analizandcaracteristica, se observa ca segmentele AB ~ bemilor permise ale tensiunilor de intrare pentru cele doua stanlogiee, iar segmentele BC ;i CD corespu d . tr-un alt punct de vedere, dadi ne raportam la un semnaldreptunghiular aplicat la intrare, segmentele ==::u:id palierelor, iar BCIn prelungire cu CD fronturilor.

Marginea de zgomot efectiva se xseri.2nd ca semnalul suma (semnal util + zgomot), nu trebuie sadepa~easca abscisa punctului C pentru "unu ~- • cs:e::::- "zero logic".

Nivelele de tensiune garantateafara zonei interzise efective, In scopul de aa portii. In practica zona interzisa este co .

Tensiunea de prag reprezinta 2CEi! ~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 aevita 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 sensdescrescator;

: - ••. respectiv 2V), sunt, a~ dupa cum se vede In figura, mult Inde temperatura ~i dispersia tehnologica in buna funqionareralul 0,8V72V.

- ::.e "trare care, daca este depa~ita, poate duce la schimbarea

Page 10: Circuite digitale

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 aleaeestor 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 deamplificare 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.

1VOLmax(O,4V)

Simbol+-Coordonatetipice pentropunctele de frangere ale crrA( 0 3.6) B (0.6 3.6)C (1.3 2.5) D (1.5 0.2)

Vo [V]jl\

VOHmil(2,4 V)

Legenda:o~zonapermisa pentru cn_ - zona interzisa pentru crr

, Caracteristlcade transfer

tlVlLmax(0,8 V)

Fig. 8. Caraeteristica destandard

VPJ VPS

Fig. 9. Simbolultransfer pentruSchmitt SN7414

~i earaeteristiea deinversorul trigger2

VIHmin(2V)

transfer

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 posibilafara amorsarea oscilatiilor;existenta a doua tensiuni de prag: Vps - prag valabil pentru sensu! crescator al tensiunii de intrare ~i VPJ- pragvalabil pentru sensuI descresditor al tensiunii de intrare;aparitia histerezisului (drumuri diferlte de parcurgere a caracteristicii de transfer In funqie de sensul de evolutle altensiunii 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 intrarepoate coborl pana la cca. O,8V. Cre~terea marginii de zgomot a fost obtinuta prin suprapunere In zona centrala abenzilor de tensiune asociate starilor logice de la intrarea circuitului.

Faeem precizarea ca singura deosebire dintre circuitele 7404 ~i 7414 este data de caraderistica de transfer. Din punet devedere 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 arefronturi cu durata redusa ~i nu este afeetat de zgomot (conditii favorabile de iucru). Diferente semnificative apar atunci candsemnalul de intrare are fronturi lent variabile ~i/sau este afectat de zgomot. In astfel de conditii, raspunsul clrcuitului cucaraeteristica 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 pentrudiverse lndirdiri ale pori;ii de test. Determinarile se fac pentru urmatoarele tipuri de circuite: 7404; 74LS04; 74HCT04. Pentrufiecare 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 dinpachetul SW;pentru fiecare factor de lncarcare ~i pentru fiecare stare logica in parte, se masoara cu oseiloscopul tensiunile dinpunetele 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 maiau sau nu valori acceptabile;

Page 11: Circuite digitale

::-=1JJri:Ce se intampla cu tensiunea de ie~ire pentru ~ ===Exista cazuri in care 0 ie~ire logica trebuie sapoate rezolva 0 astfel de situatie?

:: :.E ~ ce cre~te factorul de lndircare 7re de sarcini log ice decat FAN OUT. Cum se

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

: ~P2:l0 11 ~acy--.,...-: Pl ® : b. , ~:~ I 6 f---------~.,a b c Kl •if±± !. . IL~!__~~__?~ j ~ ~

o , @: P4 : @

~.

--<> • 2I ,

I P5 :

,II,, P7: 0+:i ,I I

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

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

V'L V1HObselVatii

':>- :r

01 !

15

3.2. Dei:erminarea tensiunilor de prag

Cu ajutorul montajului din Figura 10 se detescrescator al tensiuni! de intrare. Pentru aceasta c!el:e:-;-;J:;;c;:::;..

--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 sase introduce in soclu unul din circuitele spedficz:Ese fac urmatoarele reglaje la osciloseop: se 62Z3pozitia de zero a ambelor trase astfel incat sa sa ~~:x;,:;2.fadi in dreptul unei gradatii orizontale a ecrape canalul A al osciloscopului se apJica seie§irea portii de test (punctul D);se vizualizeaza formele de unda ~i se detvalorile reale ale tensiunilor de prag;

se eompleteaza tabelul 5 iar pentru cireuitele 7

.:c ;:;rag atat pentru sensu I erescator, cat ~i pentru cel~~ rtii de test se apJica 0 tensiune in dinte de

pe pozitia lVjdiv pentru ambele canale; se regleazapeste alta (se are in vedere ea suprapunerea sa se

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

" 7404 .II 7414 lIt 74HCT04 .

74HCT14 I

Cum explicati faptul ca, de~i circuitele 74 4 __74-~unt diferite? Dar pentru cireuitele 7404 ~ 7

3.3. Vizualizarea caracteristici de transferPentru 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.

Page 12: Circuite digitale

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, rezistorulR §i condensatorul seiectat prin intermediul comutatorului Kl.

Modul de lucru:pentru diverse valori ale condensatorului (selectabile prin intermediul comutatorului Kn se determina cuosciloscopul, frecventa semnalului generat;pentru 0 pozitie convenabila a comutatorului K1, se vizualizeaza §i se deseneaza corelat In timp formele de unda dinpunctele 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 dadlvaloarea 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 logicaSemnale de ie§ire pentru cazul ideal I Semnale de ie§ire pentru cazul real

crt. (tp=O) IrtO;tQ)

A1[>D~ IA~~ A~

1 B~ I B TI0 q-TI~I c 0 0 0 Ii C~

2 A-4>=[>20lY I I3 I ALt>P I I

A~I I

4 I I5 A~ i

6 A~ ,

7 A~8 A-~9 A~

10 A~

11 A1[>D~ !I

12 IIA~~11i I i I

Page 13: Circuite digitale

b) Se realizeaza pe macheta de test- opului cu doua canale semnalele din punct e

ega ;n serie 3 inversoare. Se determina latimea .~ -t In timp cele trei semnaie §i se compara cu ceJe

:7:ebJri:Precizati schemele din tabelul 6 care dau r2s;:r.:;~rCum se explica dependenta latimii impulintrare (vezi experimentul de la subpun

:. SllJdiui parametrifor 5i caracteristicilor porfilor logice

~ :2.Jelului 6, dupa care se vizualizeaza cu ajutorulmai bine In evidenta fenomenele, lntre A §i B set datorate timpului de propagare. Se deseneaza

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

Se realizeaza pe macheta de test un oscilaa) Pentru K2=a ~i pentru fiecare pozitie ;:

punctul Q. Pentru situatiile in care Inb) Se repeta subpunetul anterior pentru - -.- _-

.erminarile se vor face pentru urmatoarele tipuri e

. tin figura II.izeaza cu ajutorul osciloscopului semnalul din

_-x . a determina frecventa acestora.

1 R1 :: - .: Ps P6 I: K3 a (I; i: ~~ I: ;J;. ;J; I: Cl C2

_____ ~-_-_-_--_._-._._••_._. . ~. __ JFig. 11: Montaj .;;;:::r5ii:! '=:EDlrului In inel

':tTebari:Care este condipa de oscilape pentru can:. •Cum explicati faptul ca schema inceteaza ~Cum se madifica frecventa de oscilape -"- ~ =:::2r..ii::lCum explicap faptui ca, pentru acela~imult pentru circuite analizate ?Cum exp!icati modificarea frecventei deCum explicati faptul ca schema incetem ~In situatia K2 = b ~i Kl = c, se mai poa:E="::D:=intampla In acest caz cu valoarea frecvPentru ca schema sa oscileze este nev' -

-x' traduce un numar par de inversoare?re In bucla de reaqie ?

::e -eoqie, frecventa de oscilatie difera destul de

- 'rcuitul de integrare?:::3!:a::::;:;:;:;:;a- din circuitul de integrare este prea mare?

tt~:=::, .:;; tar corect calculat intre P2 §i P3 ? Ce se

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

• Funqionarea circuitelor logicepunzatoare:

- 5V ± O,25V pentru toate se:- --_- 5V ± O,5V pentru seria 74- 3 + 15 V pentru seria C

• Pentru menpnerea constanta ara utilizarea unui condensator de decu

ele de alimentare ale acestuia i

utarii ie§irii dintr-o stare in alta, esteitului integrat §i conectat in paralel pe

• Intrarile neutilizate ale circuitelorfunqionarea corecta a circuituluii

• Intrarile neutilizate se vor coneeta z::::uitului.Spre exemplu, dad! se dore~te starea -

u intervina in funqionarea normala ain mai multe moduri:

Page 14: Circuite digitale

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 uneirezistente pentru familia CMOS.

• Daca totu~i 0 intrare TTL este neconectata Clasatil In aer"), aceasta va fi interpretata de circuit ca fiind In starelogica 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

Page 15: Circuite digitale

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 complexitate0) 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 fiementat lntr~o strtuctura reconfigurabila cu ajutorul mediului de dezvoltare ISE-WebPack, produs de firma Xilinx. Totodataprezentate 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 logice, folosind circuite deplexitate 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.eta ii

1

Denumire etapa

Detinirea foarteexacta a funqieilogice ce trebuierealizate.

Se pleaca de ladescrierea In termeninaturali a funqionariicircuitului.

Alegerea uneimodalitati de

Ce trebuie sa fadl circuitul ?Aduna la numarul de intrare A; constanta zecjmala 3.~dar, funetia de transfer a CLC- ului este: Y= X + 3.Starea logica a intrarilor este interpretata ca fiind scrierea binara a numarului dejntrare A; jar starea logica a ie~irilor se considera a fi scrierea binara a numarului Y.Cate intrari $i elite ie$iri are circuitul ?Din datele initiale ~im ca are 3 intrari.Numarul de ie~iri trebuie deduse tinand seama de funCtia realizata de circuit. eel maimare numar exprimat pe 3 biti este X=7, caz in care Y=7+3=10. Rezulta ca circuitultrebuie sa rezinte 4 ie iri.Pentru acest circuit, cea mai adecvata metoda de reprezentare este data de tabelul deadevar complet.

descriere a funqiei X x, x, xo Y3 Y, Y::ftI

logice. o ! 0 0 0 0 0 1 1 3

In prindpiu, se poate 1 I 0 0 1 0 1 004alege orice metoda de 2 0 1 0 0 1 0 1 5reprezentare 3 I 0

I1 1 0 1 1 0 6

cunoscuta.4 1 0 0 I 0 1 1 1 7

5 1 0 1

I :0 0 0 8

I 6 1 1 0 0 0 1 97 1 1 1 1 0 1 0 1°1

3 Alegerea modalitii\ii Optam pentnJ utilizarea portilor logice deoarece scopul acestei lucrari consta In

I(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.);• 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 • Ie$irea Yo. Din analiza tabelului de adevar se observa ca avem Yo = )(0 .

I strict necesara pentruDemonstratia acestei afirrnatii ramane ca tema.

Page 16: Circuite digitale

toate modalitatile deimplementare a

I funqiilor logice.

Pentru Implementareacu porti, aceasta etapaeste necesaradeoarece reducenumarul de clrcuitenecesare.

Proprietatile algebreibinare trebuie aplicateastfelincat sa obtineexpresii finale cat maisimple.

I Deducerea schemei

IIIOgice.

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

I tabel de adevar!I Schema logica depindeI foarte mult de modul

lin care s-au aplicatproprietatile algebrei

, binare in procesu! desimplificare a expresieial ebrice.

I Implementareahardware.

In aceasta etapa, dupace s-a stabilit familiade circuite iogice, seIdentifica codurile

I circuitelor ce contlnI portile ce neI intereseaza, apoi seI face a!ocarea plnilor.

Dupa terminareaacestel etape avemtoate datele necesarepentru a trece larealizarea sa practica.

• Ie~irea Yi. Folosind prima-forma canonica obtinem:

1~2X){O' I xJxJxo!X2XJXO Ix1xO

X2X1XO Ix x !X2XjXO X

2 x:x:• Ie~irea )"l. Folosind prima forma canonica obtinem:

IX2X1XO X1Xo I I I I_IX2X1XO _ X2 X1XO 1_ X2 X

o _IX)51_Y2- - -, X·I - /IX2X1XO IXIXO _ '- Ix2P

I - - I X2X1Xo-,X2X1XO Ix2x1xo

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

X2X1XO IX2 I I_ I XlYJ = X2X1XO = X2!X1 = X21xo

X2X1XO XoAplidlnd teoremele lui DeMorgan obtinem:

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

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 datai a oi folosit In sinteza ambelor fun 'I;

Schema logica rezulUI din relatiile obtinute fa punctul anterior,

74lS2661 Yu

~Yl56~Y2

1 3Va

74A1..B02

Se observa ca am avut nevoie de 4 circuite integrate Insa gradul lor de utilizare esteurmatorul: V2 din 74LS04, V2 din 74LS266, V4 din 74LS08 I V4 din 74LS02.

Page 17: Circuite digitale

2.1.2. Logica de acela~itipA¥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 niveluluilogic 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 lao 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 luiDeMorgan):

=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 Infigura 1.

[>~:>,~[>~~,(>~>

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

II 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 DeMorganpentru 0 expresie initiala a funCt\ei logice. Daca se dore§te implementarea in logica de tip NAND-NAND, se urmare§tetransformarea operaiiilor de adunare in operatii de inmultire, iar dadi se dore~e implementarea in logica de tip NOR-NOR, seurmare~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.

Page 18: Circuite digitale

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 0poartil 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 CPLDCPLD-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 circuitereconfigurabile asigura ~i un mediu software integrat care u~reaza foarte mutt dezvoltarea aplicatiilor. De regula, aceste mediisoftware accepta mai multe modalitati de descriere a funqionarii circuitului (sistemului) logic. Cele mai intalnite modalitati dedescriere 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 metodede 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 parcurgemurmatoarele 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 undeacesta va fi salvat ~i proprietatile proiectului ---+ OK;

• Adaugarea unui fi~ier sursa continand schema logica (fi§ier de tip .sch). Din fereastra Project Navigator sealege Project ~ New Source ~ In fereastra aparuta se alege Schematic, se specifica denumirea noului fi~ier (spreexemplu 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 intrmediulsau sunt precizati pinii circuitului CPLD unde VOl' fi conectate intrarile ~i ie~irile circuitului proiectat de no!. Pentru adaugareaacestui fi~ier se procedeaza astfel: din fereastra Project Navigator se alege Project ~ New Source ~ in fereastraaparuta 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 fataavem 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. Dinfereastra aparuta se selecteaza tabul Ports. Dupa aceasta alegere, pe ecran apare lista porturilor de intrare ~i de ie§ireale sistemului digital proieetat de no!. Pentru fiecare port trebuie sa specifidim pinul CPLD-ului unde dorim coneetarearespectivului port, aceasta presupune completarea coloanei denumita Location. Dupa completare se face 0 salvare afi~ierului de constranger!.

Deoarece fi~ierul de constrangeri este de tip text, exista ~i posibilitatea editllrii manuale a acestui fi~ier prinurmatoarea secventa de comenzi: din fereastra Source in Project se alege fi~ierul ce descrie funCtionarea circuituluiproiectat de noi (in cazul de fatil abc.sch) ~ din fereastra Processes for Current Source se face dublu e1ic peop~unea Edit Constrains. Dupa aceste comenzi apare 0 fereastra in care se introduc constrangerile, cu respectareasintaxei.

Page 19: Circuite digitale

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 schemardware 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), urmeazacateva 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 peicoana cireuitului XC95108 ~ Program... ~ se alege optiunea Erase Before ProgrammIng ~ OK. Daca totul este inregula, dupa cateva secunde va apare mesajul Programming Succeeded ~i se poate treee la verifiearea funqionariicircuitului.

Limbajul VHDL a fost conceput In vederea simularii ~i sintezei cat mai u~oare a unui drcuit/sistem logic. La oraECtuala, 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 atuncicand se introduce 0 noua sursa In proiect, In loc de optiunea SChematic se alege VHDLModule.

Descrierea unui circuit logic cu ajutcrul VHDL presujJune utilizarea unei entitati (entity) la care trebuie asodata 10mod 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 altecuvinte 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 logice Inai rnulte moduri:

- descriere structurala - proiectantul impune schema logica iar sarcioa mediului software este de a "amplasa" corectaceasta schema in resursele interne ale circuitului in care se dezvolta aplicatia;descriere comportamentala - proiectantul face 0 descriere de nivellnalt a circuituluijsistemului urmand ea sintezapropriu-zisa a schemei logice sa ramana In sarcina mediului software.metode combinate - prciectantul poate sa opteze pentru descriere structurala pentru anumite blocuri funqionale ~idescriere 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 Iistaformata din dec!aratii concurente ~i declaratii secven~iale. Ajun~i aid trebuie sa predzam ca ceea ce In programare sechearna instroetiune, In descrierea hardware a circuitelor poarte denumirea de dec/arape (statement). Aceas'"..anu este singuradiferentii Intre programare ~i descrierea hardware, deosebirile de substanta, dupa cum yom vedea imediat, sunt date de mcdulin care sunt executate cele doua tipuri de declaratii.

Toate dedaratiile concurente sunt execuate simultan. Aceast lucru se explica prin faptul ca, In urma sintezei, fiecaredeclaratie concurenta este implementata de un circuit hardware separat (implementare paralela). Din acest motiv ordinea Incare 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 dedeclan~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 cusuccesiune precisa, sunt specificate Intr-o a~ zisa Iista de sensivitate a procesului. P9adar, In interiorul procesului, ordineadeclaratiilor 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 3declaratie concurenta, cu alte cuvinte, toate procesele ~i toate declaratiileconcurente se executa In acela~i timp, deci sunt implementate In hardware prinscheme distincte.

In final precizam ca, In mod curent, procesele sunt folosite pentruimplementarea circuitelor secventiale ~i uneori pentru circuite combinationale iardeclaratiile concurente doar pentru circuite combioationale.

Modul de utilizare al celor doua t!puri de declaratii precum ~i multitudineade posibilitati puse la dispozitie de Iimbajul VHDL se poate urmari In exemplele ceurmeaza, exemple ce au ca scop implementarea unei funqii binare de trei variabileavand tabelul de adevar prezentat In tabelul 3.

c b a yOU!

0 0 0 00 0 I I0 1 0 0 I

0 I I 0

I 0 0 1

1 0 I 0I I 0 I

1 I 1 0

Page 20: Circuite digitale

Observatii Codu/VHDLSeqiune 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 isvehiculate prin acestea.

I

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 aveaurmatoarele stari: H L X, HiZ

Seqiune dedicata descrierii arhitecturii. I architecture arh - 1 of clc1 isAiei se preeizeaza efectiv schema sau funqionarea entitatii begindeclarate anterior. - - 0 singura deQlaralie concurentaIn 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/VHDLSeqiune dedicata includerii de libriirii library IEEE;

use IEEE. s td logic 1164. all;Seqiune dedicata descrierii entitatii. entity clel is

I port (a, b, c : in std_logic;(Seqiune identica cu cea din exemplul anterior). I yout : out std_logic);

end clcl;~eetiune dedicate descrierii arhitecturii. r architecture arh 2 of clc1 is IIn aceasta seqiune apar eateva modifidlri: signal s1, 52, 53: std_logic; I- numele arhitecturii este: arh_2 ; I begin- sunt declarate 3 semnale: 51, 52, s3 - - mai mulle declaralii concurenle I.. -sllnt foloslte 4 declaratll concurente,Semnalul din limbajui VHDL are ed echivalent fizic un fir delegatura. Semnalele trebuie dedarate intrearehitecture§i begin.5tarea loglca a le§irii !/outeste reaetualizata de fiecare data candapare 0 modificare !a oricare din semnalele 51, 52, 53.

I Semnalele deciarate lntr-o arhiteetura sunt recunoscute numai InI interiorul acesteia.

s1.... (not c) and (not b) and a,52 <= Cand (not b) and ( not a);53 <= C and b and (not a );youl <= s1 or s2 or 53 ;

end arh_2;

I CoduJVHDLllibrary IEEE;

useIEEE.std logic 1164.sii;entity clel isport (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 beginpentru 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 '» thenvalori logIce 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'» thenIn 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'» thenEste 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;architecture arh 3 bis of clc1 is- -beain

ObservatiiSeqiune dedicata includerii de librarii

Descrierea arhiteeturii - varianta alternativa.o alta posibilitate de descriere a arhitecturii functiei binare voutse

Page 21: Circuite digitale

p2 : process (a, b, c )beginif (

« 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'»

) thenyout <= '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 saapara ambele valori log ice ale ie§irii;Este necesar ca rezultatul evaluarii conditiei de test dinparanteza lui when sa fie TRUE sau FALSE, de aceia sefolose§te c='O'andb='l' §i nu notcandb.

yout <= '1' when ((c='O' and b='O' and c='1') or(c='1' and b='O' and c='D') or(c='1' and b='1' and c='O'»

else '0'end my clc4;

b:empluI5: Utilizarea vectorilor in descrierea funqiei /ogice youtIn limbajul VHDL, prin dedaratia vector se introduc magistraiele, fie de intrare fie de ie~ire. Spre exemplu, prindeclaratia 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 multdescrierea circuitelor digitale.Exista mal multe modalitati de atribuire a starii logice a une! magistrale de date:

d_out < =" 1100 "; -- atribuirea tuturor bitilor din magistralad_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 circuituluicombinational astfellncat acestea sa apartina unei magistrale de intrare de 3 biti.

Observatii5eqiune dedicata includerii de librarii

CodulVHDLlibrary IEEE;US&IEEE.std logic 1164.all;entity clcl is

I port (d_in:in std_logic vector(2 downto 0);yout : outstd~logic);

end clcl;

5eqiune dedicata descrierii entitatii.:, acest exemplu se folose~te un vector de intrare format din 3-''', d_in, prin care sunt introduse cele 3 intrari aie circuitului

ie.- folosit urmatoarea asociere :

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 isbeginyout <= '1' when (

(d_in = "001") or (d_in = "100") or(d_in = "100"»

else '0' ;endmy clc5;architecturemy_clc5 bis ofclc1 isbeginp3 : process (djn )beginyout <= '0' ;if (djn = "001") or(d_in = "100" jared_in = "100"»then

yout <= 11';else

yout <= '0' ;end if;

Page 22: Circuite digitale

Lucrarea nr. 2: Implementarea funqiilor binare cu relele de potti logice

I end process p3;_______________________ ~-_ 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 logice foarte complexe fara a fi preocupat de schema logidldetaliata, 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 singuradeclaratie de forma z < = x + y. Sarcina sintetizarii scheme logice a respectivului sumator cade in sarcina mediului software incare se dezvolta aplicatia.

Observatii CodulVHDLSeqiune dedicata includerii de Iibrarii I -- Exemplu de CLC descris comportamental

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 P0r9iimplementarea funqiei yout folosind forma canonica conjunctiva §i un numar cat mai red us de porti;implementarea funqiei yout folosind doar porti NANDiimplementarea 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 logice folosind doar p0r9 NORi

A. Implementarea §i verificarea pe macheta de laborator cu CPLD a schemeilogice din tabelul 1.

B. Implementarea §i verificarea pe macheta de laborator cu CPLD a schemeilogice din tabelul 2.

C. Implementarea!ji verificarea pe macheta de laborator cu CPLD a schemellogice 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 implementatfunctioneaza corect.

Page 23: Circuite digitale

- 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 deAngeri .

- - r la eonectarea intrarilor ~ia ie;iirilor din circuit facem urmatoarele precizari:/ariabilele de intrare se vor caneda la switch-urile (comutatoare cu doua pozitii) deJe macheta de laborator. In acest mod, trecerea comutatorului de pe 0 pozitie pe~ 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

~:::est mod, in momentul in care 0 variabila de ie~ire este in unu logic, LED-ul:sodat lumineaza.'- cazul aplicapilor de sumatoare sau comparatoare binare, fiecare numar de~re respectiv ie~ire va fi reperezentat printr-un vector. Un vector de intrare=- uie conedat la un paehet de switch-uri (un numar eorespunzator de switch-uri:: sunt amplasate unul langa altul) iar veetorul de ie~ire va fi reprezentat pe un

et de LED-uri.

NET "x<O>" LOC= "P37";NET "x<l>" LOC= "P40";NET "x<2>" LOC= "P43";

NET "y<O>" LaC = "PS4";NET "y<l>" LOC = "P52";NET "y<2>" Lac = "P50";

NET "z<O>" Lac = "P75";NET "z<l>" Lac = "P71";NET "z<2>" Lac = "P67";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 treie (SW1, SW2,SW3), iar pentru y s-au folosit ultimele trei comutatoare (SW6, SW7, SW8). Afi!'i3rea rezultatzlui seele 5 LED-uri (LD1+LD5).

©

Page 24: Circuite digitale

In prima parte a lucrarii, dupa 0 scurta prezentare teoretica referitoare la structura interna ~i la funqionareacircuitelor decodificatoare (DCD) respectiv demultiplexoare (DMUX), se prezinta 0 metoda de utilizare a acestor circuite Inimplementarea funqiilor binare.

In partea a doua se arata modul In care aceste circuite pot fi descrise in limbaj VHDL In vederea implementarii lor Instructuri 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 Intabelull.

>100>1000

Circuite seeven iale- bistabilij- iatch-uri'- registre;

I - numaratoare;

Numarul de 0

512MICSSI Small SCale Inte ration

MEDIUMSI (Medium SCale Integration)

- registre mari;- memorii RAM;- memorii RAM;

In proiectarea sistemelor digitale moderne, datorita aparitiei circuitelor realizate In tehnologie VLSI, tot mai des sepune problema realizari de sisteme pe un singur chip (System on Chip - SeC). in acest context, studierea circuitelorcombinationale de complexitate medie pare nejustificata. Aceasta parere este gre~ita deoarece toate circuitele de compiexitatemedie se regasesc ca parti integrante, sau ca blocuri funqionale, In structura circuitelor VLSI. ~adar, cunoa~erea foarte exactaa tuturor facilitatilor oferite de aceste circuite, ne permite fie Intelegerea funqionarii unui sistem complex realizat In tehnologieVLSI, 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 activareaunel singure ie~iri.

Numarul cornbinatiilor binare distincte (altfel spus, numarul de coduri) ce pot fi recunoscute de catre un DeD estedependent de numarui intrarilor de seleqie, iar numarul combinatiilor ce sunt semnalizate depinde de numarul de ie~iridisponibile.

In figura 1 se prezinta simboiul, schema logica de prindpiu ~i tabelul de adevar pentru un decodor cu 8 i~iri active pezero 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 auie5irile 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 10ie~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. Inconsecinta 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 cuintrarea 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 (InfunCtie de codul aplicat pe intrarile de seleCtie se activeaza doar 0 singura ie~ire);

Page 25: Circuite digitale

: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~ia digitala prezentii pe intra rea E este transmisa

- -) spre 0 ie,ire indicatii de codul aplicat illtrarilor de seleqie.

C B A

&&&Intrari deseleG!ie

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

1 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 0

Schema logica

B A E

Simbol

=.'lirare deE;'2iidare D~,rux 1:4

::-etrari de B Y274LS139selecfie A B B A A

Ie~iri

E B A 0 1 2 3

0 0 0 0 1 1 1

0 0 1 1 0 1 1

0 1 0 1 1 0 1

0 1 1 1 1 1 0

1 * ;IE 1 1 1 1

Page 26: Circuite digitale

2.3. Exemple de DCD/DMUX realizate in structuri integrate

In aceasta seqiune sunt prezentate cateva circuite uyuale realizate in structuri integrate.

ObselVa ifCircuitul 74LS138

- circuitul prezinta:- 8 ie~iri de date active pe zero logic;- 3 intrari de validare (doua active pe zero logic iar a treia pe unu logic);

pentru acest circuit activarea unei ie~iri se poate face numai daca simultan sunt-- --indeplinite conditiile: G1A=1, G2A =0 ~i G2B= 0;

- la intrarea A trebuie aplicat cel mai pupn semnificativ bit din (odul de seleqie;- 0 alta posibilitate de notare a intrarilor de seteqie este urmatoarea: AO=A, Al=B,

A2=C;

Circuitul 74lS139 (2 x DMUX1:4)- circuitul integrat contine 2 circuite DMUX 1:4 cu ie~iri active pe zero logic;- cele 2 drcuite DMUX sunt complet separate;

pentru primul circuit DMUX avem:iG intrarea de validare/intrarea de date, activa pe zero logic; I1~ lA intrarile de seleqie;

- lYO, IY], lY2, lY3 ie~irile de date ale demultiplexorului, active pe zero Ilogic; I

pentru al doilea circuit DMUX avem:- 2G intra rea de validare/intrarea de date, activa pe zero logic;

2~ 2A intrarile de seleqie;

2YO, 2n, 2Y2, 2Y3 ie~irile de date ale demultiplexorului, active pe zerologic;

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);

5imbol74lS138.

e 81YO

4 G2AY1

5 G2B Y2Y3Y4

AY5:;

B<l C

Y6Y7

74 LS 139

~

.. 1G

2 1A3 18

~2G14 2A13 28

15 A14

613 C12 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 unconectand la intrarile lui mintermenii marcati cu "0".

Page 27: Circuite digitale

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 urmeazaIifica 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;

DCD-ul are ie~irile active pe unu logic lnseamna ca la ie~irile sale vom obJine mintermenii funqiei.--=---J czolvarea acestei probleme vom scrie func]ia F folosind formele canonice, dupa care, acestea vor fi

te pana la punerea in eVidenpj a mintermenilor.

.x2 .xl .xo F0 0 0 00 0 1 00 I 0 I~0 1 I1 0 0

10

1 0 I

I~I I 0I I I

~ 'orma canonica a funcJiei Fare expresia:

F =!x2.:>.xol = Im21 (1),x1x,xol ms

Relatia (1) conduce la 0 schema de implementare a funqiei F ca cea din figura 3.a)

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

;;:;,- F

2 m2~3 m3 ;

~3 JJX2 C 4 m4: F=li2~,iol)(2 C m4 •

x, B 5 ::;l 1:22X

I'XOI x, B m5 .Xo A 6 "0 A m6: Im21 =-=

7 in I F= =m2 m6:: F= ms

1: m5,! : .-

X2 X, Xo F , X2 X, Xo F. ·0 0 0 0 · 0 0 0 00 0 1 o : , 0 0 1 o :·0 1 0 1 -----------~ 0 1 0 1 ----.------~0 1 1 0 · G 1 1 01 0 0 G · 1 0 0 01 0 1 1 -------------~ 1 0 1 1 ••••••• -.----1 1 0 0 1 1 0 01 1 , 0 1 1 1 0

"I blFig. 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.

Observatii3e::tiune dedicata includerii de librarii

CodulVHDLlibrary IEEE;useIEEE.std logic 1164.all;entity bCd_zec isport (bed : In std logic vector (3 downto 0) ;zec : outstd_logi~_vector(O tog));

end bed zec;architecture dec arh of bed zec is

Obs.: elementele unui vector pot fi declarate in ordine=esrresdltoare (cawl intrarii bed) sau in ordine cresdltoare=1 ie~irii zec).

5eoiune dedicata descrierii arhitecturii.

Page 28: Circuite digitale

beginIn 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";

Iwhen "0111" => zec <= "0000000100";when" 1000" => zec <= "0000000010";when "1001" => zec <= "0000000001";

Iwhen others => zec <= "0000000000";

end case;end process P1 ;end dec arh;

Observatii CodulVHDLSeqiune dedicata includerii de Iibrarii library IEEE;

use IEEE. std logic 1164.all;Seqiune dedicata descrierii entitatii. entity dmux_A isIn 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 isbegin

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') thenI - Declaratiile din corpul procesului sunt parcurse una dupa Yout <= (others => '0') ;

I alta (executie seatentiala) ~i nu in parale!; elsecase 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";

Iwhen "Ill" => ¥out <= "10000000";when others => ¥out <= "00000000";

end case;

II end if;

end process;i end dmux arh;

~Exemp!uI5: Sumatorpe 2bifi 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 seafi~aza pe un digit cu 7 segmente. Deoarece cel mai mare numar pe 2 biti este 3, rezultatul maxim al operatiei de adunareeste 6, deci poate fi afi~t pe un singur digit.

I Observatii! Seqiune dedicata ineluderii de librarii

Seqiune dedicata descrierii entitatii.In cazul de fata:

-avem doua intrari de 2 biti: x, y;-0 ie~ire pe 7 biti pentru comanda segmentelor afi~ajului afis ;- 0 ie~ire pentru camanda catodului comun al afi~jului d_afis,

CodulVHDLlibrary IEEE;use IEEE. std_logic_1164. all;use IEEE. std_logic_unsigned. all;use IEEE.std logic arith.all;

I entity Stun2 is

Iport( d activare: out std logic;

x,y:instd_logic_vector(l downtoO};afis :out std logic vector (6 downto

1

0); --

end stun2;

Page 29: Circuite digitale

=-"::c:uIii este: arh_sum2;= ::r-recturii se face cu entitatea 5um2;

e numai declaraiii concurente (pentrumare, pentru activare afi~j, pentru decodificare

::::e:crO::-;J_-:concurentaeste executata pentru oriee modificare~ 'ca a semnalelor implicate in ea, deci sum este

,,;:=.0::::-::_ pentru orice modificare aparuta pe xsau pe y;

- - constrangeriI se afi~eaza pe primul digit al machetei (prima Iinie dine constrangeri);rele 7 Iinii sunt pentru comanda segmentelor digitului;rea operandului xse face prin SWl ~iSW2;

>===c.!Celreaoperandului xse face prin SW7 ~i SW8;

®

architecture arh sum2 of sum2 issignal sum a : std logic vector (3 downto0); --

beginsuma < = x + y;d_aclivare < = '1';with suma selectafis<= "1000000" when "0000", --0

"1111001" when "0001", --1"0100100" when "0010", --2"0110000" when "0011", --3"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;NET "d_activare" LOC = "P70";NET "afis<O>" LOC = "P39";NET "afis<l>" LaC = "P41";NET "afis<2>" Lac = "P44";NET "afis<3>" Lac = "P46";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 ;

- crieti tabeiul de adevar pentru un decodificator cu 4 intrari !ji 7 ie~iriJeStinat comenzii unui afi!jaj numeric. Intrarile sunt notate prinx:a4, iar ie!jirile a bed e f g. Ie~irile sunt active pe unu logic (unu

ic = segment aprins).-a.beiu! trebuie realizat astfel lncat cifrele sa arate ca In figura: turata.

fQb D /2345571e&/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?

Page 30: Circuite digitale

X X, X, X Y3 Y, Y, Yo yl0

0 0 0 0 0 0 1 I 1/

I~0 0 I 0 0 0 o I ~0 1 0 0 1 0 I 150 I I 0 1 1

I3 o 1614 I 0 0 0 0 0

I II5 1 0 1 ] 0 0 018

6 1 ] 0 ] 0 01 191

7 I I ) 0 0 1 o 2Fig. 6

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 dorimactivarea ie~irilor In ordinea: 1, 3, 2, O?

B. care este modul de conectare al unui decodificator zecimal, spre exemplucircuitul 74LS442, pentru a obtlne 0 funqionare similara unui DUX 1:8 ?

4.3. Implementarea funqiilor binare cu DCD.

A. Folosind un DCD cu ie~iri active pe zero logic ~i porti log ice cu numar catmai mic de intrari (vezi exemplul 2), se cere implementarea unui circuitlogic cu 3 intrari ~i 4 ie~iri avand tabelul de adevar din fig. 6;

4.4. Utilizarea ISE Web Pack pentru descrierea aplicatiilor sub formade scheme logice

A. Folosind facilitatea mediului de dezvoltare ISE WebPack, prin care se permite descrierea sistemelor digitale prin intermediulschemelor logice, 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 delaborator 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 CPLOt sumatorul pe 2 biti prezentat in exemplul S.

C. Adaptati metoda de descriere a unui decodificator (exemplul 3), pentru implementarea decodificatorului BCD-7 segmente dela 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 facatrecerea de la coul binar natural la codul Gray.

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

Referitor la conectarea intrarilor ~i a iesirilor din circuit facem urmatoarele precizari:- Intdlrile de seleqie ~i cele de date se vor conecta la switch-urile (comutatoare cu doua

pozitii) de pe macheta de laborator. In acest mod, trecerea comutatorului de pe a pozitiepe 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 acestmod, in momentulln care 0 variabila de ie;;ire este In unu logic, LED-ul asocjat lumineaza.In cazul aplicatiei de sumare fiecare numar de intrare respectiv ie;;ire va fi reperezentatprintr-un vector. Un vector de intrare trebuie conectat la un pachet de switch-uri (unnumar corespunzator de switch-uri ce sunt amplasate unul langa altul) jar vectorul deiesire va fi reprezentat pe un pachet de LED-uri.Fi;;ierul de constrangeri pentru exemplul 3 este prezentat alaturat. Pentru introducereanumarului x s-au folosit primele trei comutatoare (5W1, SW2, SW3), iar pentru y s-aufolosit ultimele trei comutatoare (5W6, SW7, SW8). Afisarea rezultatzlui se face peprimele S LED-uri (LD1-;.LDS).

©

NET "x<O>" LOC = "P37";NET "x<l>" LOC = "P40";NET "x<2>" LOC = "P43";

NET "y<O>" LOC = "PS4";NET "y<l>" LOC = "P52";NET "y<2>" LOC = "PSO";

NET "z<O>" LOC = "P75";NET "z<l>" LOC = "P?!";NET "z<2>" LOC = "P67";NET "z<3>" LOC = "P65";NET "z<4>" LOC = "P62";

Page 31: Circuite digitale

In partea teoretica se pune accent pe cunoa~terea multiplexorului (simbol, structura intema, tabel de adevar) ~ilntelegerea modului de utilizare a multiplexorului In implementarea functiilor binare.

In partea aplicativa se urmare~te fixarea deprinderilor acumulate In lucrarile anterioare, privind dezvoltarea aplicatiilorcu 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 efortmare de calcul In vederea simplificarii - mai ales cand numarul variabilelor de intrare este mare. 0 solutie mai buna consta Inutilizarea circuitelor de complexitate medie, In special a multiplexoarelor (MUX), a decodificatoarelor (DCD) sau ademultiplexoarelor 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~irede date. Prin intermecljul unui cuvfmt de cod de n biti (adresa de selectie), multiplexorul conecteaza la ie~irea de date una dinintrarHe sale de date. Funqicnarea acestu! circuit peate fi asemanata cu cea a unui comutator rotatlv cu mat mu!te pozi~j deintrare, 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 dateIntrari de B A E Jntrare de

In!ra.re de selecjie I validarevalidare

E B A Y

Intra..ri de B 0 0 0 Y=loselec\ie A 0 0 1 Y=ll

le~ire Intrari 0 1 0 Y=12de date B B A Aa) Simbol 0 1 1 Y=l.

10 Tabelu1 de a.devar

IO~

II

It -+--0 12I ~ Y_2 \ Ie~ire13 -+----0

13

"-b) Schema echivalenli ./

2.2. Exemple de multiplexoare realizate in structuri integrate

Observa iiCircuitul 74LS157 (4xMUX2:1)

- circuitul contine 4 multiplexoare de tip MUX 2:1;- toate multiplexoarele folosesc aceia~i intrare de seleqie (5), respectiv aceia~i

intrare de validare G ;- datorita modului de conectare, multiplexoarele nu pot fi comandate separat;- modul de conectare a celor 4 multiplexoare din capsula 74L5157 este prezentat In

figura de mai jos:1A 18

4MUX2:1

Simbol

74LS15715 G

S2 1A 4:3 1Y

185 2A

2Y7

1; 2811 3A 910 3Y3B-i4 4A !213 4Y48lY 2Y 3Y

Intrarea G este foiosita pentru validarea functionarii multiplexoarelor:- daca G =0, funqionarea multiplexoarelor este validata (permisa);

Page 32: Circuite digitale

daca G =1, ie~irile multiplexoarelor nu se modifica indiferent de starea logicaa celorlalte intrari'

Circuitul74LS153 (2xMUX4:1)- drcuitul contine 2 multiplexoare de tip MUX4: 1;- cele doua multiplexoarele folosesc in comun intrarile de seleqie;- 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

Figurade mai jos:

1Y 2Y- intrarea de seleqie cu ponderea cea mai mica este A, iar intrarea de seleqie cu

ponderea cea mai mare este B;

Circuitul 74LS151 (MUX8:i)- circuitul contine un multiplexor de tip MUX4: 1;- pe langa ie;irea Y specifica fiec1irui MUX, capsula 74LS151 ne ofera ~i

complementul acesteiaintiCiiea de seleetie cu pondeiea cea mal mica este AI iar intiarea de seleqie cuponderea cea mai mare este C;

1.1 A

~:: ;~o" 1C14 1C2;:; 1C3

15 2G

10 2CO11 2C1

12 2C2

13 2C3

74LS 151

~EN I' A10' B

'3C.; DO y f5

301

2 Y6

D203

~5 D414

D513

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 0schema 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\ nutrebuie 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 cearezultata in urma implernentarii dupa prima forma canonica. Diferente apar pe nivelul dol: exista cate 0 poarta AND pentrufiecare 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 inimplementarea de funqii binare. Intuitiv ne dam seama ca pe intrarile de seleqie trebuie conectate variabilele funqiei ce trebuieimplementate iar pe intrarile de date valorile funqiei. In funqie de raportul dintre numarul de variabile ale funqiei binare ~numarul de intrari de seleqie ale MUXpot exista urmatoarele situat!i:

A. Numarul intrarilor de seleqie este egal cu numarul variabilelor funqiei. In acest caz, implementarefunqlei binare se face fara efort de minimizare ;i nu mai necesita nici un alt circuit suplimentar. Daca conectareavariabllelor funqiel 121 intrarile de seleqle se face cu respectarea ponderilor, (Xo --7 A, XI --7 S, ...), nu trebuie safacem 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 partedin variabile!e funqiei for fi folosite pentru comanda intrarilor de seleqie iar restul vor intra in calculul unorsubfunqii binare ce se vor aplica 121 intrarile de date ale MUX. Daca numarul variabilelor funqiei, x, este maimare 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 unoarecare efort de simplificare. Oricum, cele n subfunqii sunt mult mai u;or de implementat decat funqia init!aladeoarece au un numar muit mai mic de variabile de intrare.

Page 33: Circuite digitale

Lucrarea nr. 4: Implementarea funepilor binare folosind NUX

C. Numarul intrarilor de seleqie este mai mare deeat numarul variabilelor functiei. Aceasta situatiecorespunde 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 funqieise conecteaza fa intrarile de seleqie cu respectarea ponderilor; intrarile de seleqie nefolosite se conecteaza iamasa; 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 Fsunt prezentate doua exemple considerand ca avem de implementat 0 funqie binara de trei varia bile ce 0 0 0 0este data prin tabelul de adevar alaturat. 0 0 1 1

Exemplul1: se cere implementiirea functiei F foiosind un circuit NUX 8:10 1 0 10 1 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 0urmatoarele 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 altcevadecat funqia de transfer a multiplexorului 8:1.

O~Z~IXO IOSo 110~~A 1080

I. 1 - - I 1 XZxjXO i 1 SI 1]C B A II 81~2XI~ol ~ZXJ~OI 1 XZxjXo i I Sz 11z _CB A lz8z

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

_ A XZ~j-'O -11 x2xjXo 1-11 S41 ' 114 C_BA 1484XZxIXO 1 XZxJXO _ I

I 11 XZXjXO 11 Ss I I; C B A 158;

XZxjXO 1 XZxIXO - ~ I 1 8IOxzxlxo O~6 1,16CBA 66

jl XZxJXo I 11 S7 17CBA 11

787

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 valorilorfunepei ia intrarile de date: valoare funepei pentru combinapa 0 se conecteaza la fa, valoare func]iei pentru combinaJia 1Sf:conecteaza la Ii, etc.

Atenfje: Conectarea fara respeaarea ponderilor nu este interzisa in~ in astfe! de situap~ modul de conectarea a! valoniorfunqiei 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 0unitate 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 alemultiplexorului. 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 $inecesita 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 cazulnostru, 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-uluifolosit $i de deduc expresiile logke ale subfunepilor ce trebuie conectate la intrarile de date ale NUX (in cazu! defaJJ se campara relaliile 3 $i 4).

Page 34: Circuite digitale

Lucrarea or. 4: Implementarea funC/iilor binare folosind NUX

C. Numarul intrarilor de seleqie este mai mare decal: numarul variabilelor funetiei. Aceasta situatiecorespunde 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 funqieise conecteazil la intrarile de seleqie cu respectarea ponderiior; intrarile de seleqie nefolosite se conecteaza lamasa; pe intra rile de date se copiaza valorile funqiei; intrarile de date nefolosite se conecteaza la masa.

Deoarece un NUX8:1 are trei intrari de seleetie se constata ca suntem lntr-o situaJie fericita Incare numarul intrarilor de seleetie este egal eu eel al variabilelor funetie/.

Coneetarea variabilelor funcjiei la intrarile de selee]ie eu respectare ponderilor presupuneurmatoarele eonexiuni: Xo =-A, Xl =-8, X2 =- C

~~o 0 0 I 0

o 0 1 I 1o 1 0 I

o 1 01 0 0 11 0 1 1

~~~Il

Pentru 0 intelegere mai buna a modului de utilizare a MUX-ului in implementarea funqiilor binaresunt prezentate doua exemple considergmd ca avem de implementat 0 funqie binara de trei varia bile ceeste data prin tabelul de adevar alaturat.

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

Din preluerarea primei forme eanoniee (forma disjunctiva) a funcjiei ~ se obpne relapa (1). RelaJia (2) nu este alteevadeDit funetia de transfer a multiplexorului 8:1.

10 x2xjXO 1

0 So I I 10 ~ ~ A 110 So I

I 1~2Xj~0 11 Sj Ij C B A I S I

1

1 X2XjXO 11 S2 112 ~BA 11~S21 I (2)

_I OX2XjXO IJ0 S3 (1) v= I) CBA = 1) S3

-IIIX2~lXol-lS41 • i14CBA 114S411 x2xjXo 1 S5 I 15 C B A 15 S5

1

0 X2XjXO 0 S61 16 C B A 16 S6 Ilx2xjXoIIIS7 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 valorilorfunetiei ia intrarile de date: valoare funC/iei pentru cambinapa 0 se eonecteaza la 10, valoare funeJiei pentru combinajia 1seeonecteaza la Ii, etc.

Atentie: Conectarea fara respectarea ponderilor nu este interzisa lnsJ; In astfel de situaJi~ modul de conectarea al valorilorfunetiei 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 0unitate 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 alemultiplexorului. 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 5ineeesita 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 cazulnostru, 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/uifolosit 5i de deduc expresiile logice ale subfuncjiilor ce trebuie conectate la intrarile de date ale NUX (fn cazul defaJa se campara relaJiile 35i 4).

~2Xl~olX2X\XO

F= X2X\XO

Page 35: Circuite digitale

Itl"110"

10 II 12131415 16 17CBA

~ ~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 camintermenii (calculati la nivelul portilor'AND) nu pot fi utilizap decat 0 singura data. In consecinta, MUX-ul nu se preteaza pentruimplementarea mai multor funqii binare de acelea~i variabile deoarece nu exista posibilitatea ca mintermenii calculati pentru afunqie 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" corectacea~ 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 sintezapropriu-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 ~idescriere comportamentala pentru altele.

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

I ObservatiiSeqiune dedicata induderii de librani

Seqiune dedicata descrierii entitatii.In cazul de fa~:

- nume entitate este: mux4- intrarile de seleqie sunt: 51 Si sO;- intra rile de date sunt: dO, d1, d2, d3 ;- ie<:ireade date este nolata Yout·

Seqiune dedicata descrierii arhitecturii.In cazul de fa~:

- numele arhitecturii este: abcarh;-arhitectura este asociata cu entitatea: mux4;- descrierea funqionarii se face cu doua declarapiconcurente: una caiculeaza semnalul intern set, iarcealalta calculeaza ie~irea yout,

- la prima vedere descrierea pare gre~ita deoarecesemnalul intern sel, este folosit lnainte de a fi calculat;

-descriere este corecta deoarece succesiuneadeclaratiilor concurente nu conteaza, e!e sunt parcurseIn paralel;

-semnalul set, este recunoscut numai In interiorularhitecturii abearlr;

I CodulVHDLI library IEEE;, US9IEEE.std logic 1164.all;

entity mux4 isport (dO, dl, d2, d3 : in std_logic;

sl, sO Instd_logic;yout : outstd logic);I endmux4; -

Iarchitecture abc arh of mux4 issignal sel: integer

'I beginwith sel selectyou! <= dO when 0,

d1 when 1,d2 when 2,d3when 3,'X' when others;

5el<= 0 when 50='0' and 51='0' else1 when 50='1' and s1='0' else2 when sO='O'and s1='1' else3 when sO='1' and s1='1' else4;

end abc arh;

I ObservatiiI Seqiune dedicata includerii de librariiCodulVHDLlibrary IEEE;useIEEE.std logic 1164.all;

Page 36: Circuite digitale

I ?eqiune dedicata descrierii entita~ii. I entity mux4 isIn 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~' I yout : out std_1ogicJ;. intra rile de date sunt: dO, d:l, d2, d3 ; endmux4;- iesirea de date este notata vout·

Seqiune dedicata descrierii arhitecturii.In cazul de fati3: architecture gresi t of mux4 is

I- descrierea se face cu 4 declaratii concurente, la prima begin Ivedere pare corecta dar in realitate este gre!iita; yout <= dO when so= '0' and 81='0' else '0' ;

I Unde este greleala? yout <= d1 when s 0= '1' and 81='0' else '0' ;

I- 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 sl='l' eJ.se'O' ;- a~adar avem 4 drivere, fiecare incearca sa impuna propria end gresit;

sa valoare logidl asupra firuiui de ie~ire yout; lucru ceconduce la conflict;

Cum se poate corecta gregea!a? architecture corect Ofmux4 is- varianta corecta trebuie sa foloseasca 0 singura atribuire begin

pentru yout __

Iyout <= dO when 80= '0' and sl='O' else,

d1 when sO='l' and sl= '0' else,

Id2 when so= '0' and 81='1' else,d3when 80='1' and 81='1' else,'X' ; -- pentru necun08cut

end corect;

Observa1;ii CodulVHDL! Seqiune dedicata includerii de Iibrarii library IEEE;I use lEEE. std logic 1164. ali;

Seetiune dedicata descrierii entita1;ii. entitymux4 isIn cazul de fati3: port (

I- nume entitate este: mux4 I dO, dl, d2, d3 : in std loglc;

I-

-vectorul de seleqie cu doua componente: set' 8el : in s td _logic_vector (I downto 0); I- intrarile de date sunt: dO, dl, d2, d3; Yout : out std _logic ) ; I

-ie~irea de date este notata Yout; end mux4;ISeqiune dedicata descrierii arhiteeturii. architecture arh 3 ofmux4 is

I In cazul de fa1;i3: begin-

I-descrierea funqionarii se face cu un proces ce are ca lista PI: process (dO, dl, d2, d3, Sellde senzitivita~i toate intrarile MUX; begin

I- procesul este parcllrs pentru orice modificare de stare case 8e1 islogica aparuta pe oricare intrare;

Iwhen "00" => Yout <= dO;

- deciarapa case poate fi folosita numai in interiorul unui when "01" => Yout <= d1;proces; when "10" => Yout <= d2;

ObselVaJ'ii referitoare la procese:

Iwhen others => Yout <= d3;

- Un proces este parcurs pentru orice schimbare de stare end case; iloglca aparuta la oricare variabila din Iista de senzitivita1;i; I end process P1; I- Declara iile din cor ul rocesului sunt arcllrse una duoa end arh 3· It p p palta (executie secventiala) §i nu in paralelj

Observatii CodulVHDLSectiune dedicata includerii de librarii library IEEE;

use IEEE. std logic 1164.all;Seqiune dedicata descrierii entitatii. entity mux 4_1 isIn cazul de fa1;i3: port (

I- 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;-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

In cazul de fati3:beginP1: process (adr, data - in)

- numele arhitecturii este: arch4; Ibegin

I-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; Iintra rile de date;

I

-Iwhen "01" => data out <= dl;

-in funqie de combina1;ia de pe intra rile de seleqie, ie~irea when "10" => data out <= d2;- I

data_out are 0 singura atribllire; when "11" => data out <= d3; I

Page 37: Circuite digitale

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 conectatesemnalele x, y, z la intrarile unuiMUX8:1 astfel incat la ie~ire saobtinem semnalul Sout?

Semnaledi.ponibilel. intrarile MUX

Modul de comanda a seleeJiilor 5iforma semnalelor X, y, z seprezintJ in figura 3. .plicate I.

intrarile deselecfieSemnalul Sout poate fi obtinut prin

utilizarea unui MUX 4: 1? Dadl da,care este schema de conectare?

° j ° '1 1 _! . 1 : 1 ~I I I I , I I

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

I l I I I I : :....2JlPJlftlt_o__ o_lIJUlnr:l-t-1jJlJ1JlJlJLili-Semn.l dorilla i~irea MUX

4.1. Implementarea funqiilor binare cu MUX.A. Referitor la circuitele logice din fig. 2, raspundeti la urmatoarele intrebari:

Cum trebuie conectate intrarile de date ale MUX8:1, pentru a realiza aceia~i funqielogica, 7nsituapa 7ncare comanda inu-arilor de seleqie se face astfel: X~ C, Xl ~B, Xz

~A;Cum trebuie conectate intrarile de date ale MUX4:1, pentru a realiza aceia~i funqielogica, 7nsituapa 7ncare comanda inu-arilor de selectie se face astfel: Xl~B, x2~A;

B. Folosind modul de lucru prezentat 7nexemplul 2, se cere implementarea unei funqii logice cutabelul de adevar din Figura 4, folosind un MUX 4:1.

c b a yOU!

0 0 0 0I 0 0 1 1

I 0 1 0 0II 1 0I 0 0 11 0 1 UI I 01 1 I

Fig. 4

Folosind facilitatea mediului de dezvoltare ISE WebPack, prin care se permite descrierea sistemelor digitale prin intermediulschemelor 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 verificatifunqionarea 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 delaborator pentru un circuit de MUX8:1 cu intrare de validare activa pe zero logic; Dupa implementare, verificap ca starealogica a intrarii de date selectate este transmisa ~i la ie§irea circuitulul.

©

Page 38: Circuite digitale

in aceasta lucrare se prezint13 cateva modalit13ti de realizarea a circuite!or de generare a impulsurilor cu durat13controlata 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 neretriggerabilifunqionarii ~i utilizarii principalelor monostabile realizate In structuri integratei aplicatiilor tipicei structurii ~i funqionarii unuimonostabil 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 preciz13riprivindcaracteristica de transfer In tensiune a unei porp logice. intr-o lucrare anterioara, am ar13tat ca 0 poart1310gic13poate avea 0caracteristic13de 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 apartinandfamiliei TTL standard, valoarea tensiunii de prag este de cca. 1,4V.

• in cazul portilor logice 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 tensiuniide 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 logice 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 unuitrigger 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 utilepentru 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 datorateneadaptarilor de impedanta.

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

Dadl dintr-un motiv sau altul/ nu dispunem de circuite cu caracteristic13trigger Schmitt, exista posibilitatea de a obtineo astfel de caracteristica folosind circuite cu caracteristica normala de transfer. Un exemplu de acest fe! este prezentat In figura1.

VOH .11

VOL~ _-=-f=:::==::::--iiJ>-V iVN 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. Aceastapresupunere este foarte apropiata de adevar pentru cazul circuitelor logice realizate In tehnologie CMOS ~i va genera mici eroriIn 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)/ ~iincepem sa cre?tem tensiunea de intrare Vi. Pentru 0 valoare oarecare a tensiunii de intrare Vi / expresia tensiunii Va de laintra rea porpi este data de relapa:

Page 39: Circuite digitale

V-~v ~v.a - ~ i + n OLR1 +,1=(2 R1 +t{2

In momentul 7n care tensiunea de intrare a crescut suficient de mult astfel lndlt la intrarea portii sa se atinga tensiunea detranzitie, (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), !,;iincepem sa scadem tensiunea de intrare Vi . Pentru 0 valoare oarecare a tensiunii de intrare Vi , expresia tensiunii Va de laintrarea 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 detranzitie, (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:

V (- R1 l.V R1 V

N=1+-j'T--OHR2 R2

Trebuie remarcat faptul di schema din figura 1 nu permite alegerea independenta a pragurilor, prin fixarea raportului Rl/R2 seaqioneaza 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 efectultimpului 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 !iilatimea lor nu poate fi modificata. Cealalta metoda, bazata pe 7nd.ircarea-desci:lrcarea unui condensator, este foarte des folositadeoarece 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 facemprecizarea 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 formelede unda se observa di impulsul de ie~ire este activ pe zero ~i corespunde desd;rcarii condensatorului 7ntre cele doua praguri alecaracteristicii trigger Schmitt. Durata impulsului generat (,), depinde de circuitu! RC dar ~i de caracteristicile electrice ale portiiutilizate.

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 logicIILmax = - O.4mA; - tensiunea pentru pragul negativ, VN =l,lV;

Pentru determinarea valorii maxi me a rezistentei R, trebuie respectata relatia:

IILmaxR S V,Lmax

Page 40: Circuite digitale

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~irefolosind in mod adecvat relatia (8). Tinem cont ca desca'rcarea condensatorului Incepe de la u(O)=VOH ~i se termina lau( 00)=VOL= IILmax R. Impulsul de ie~ire Incepe odata cu descarcarea condensatorului ~i tine pima cand tensiunea pe rezistentaatinge valoarea de prag negativ VN.

In aceste condir,i se obtine: r = -RCln VN -IILmaxRVOH - ilLmaxR

+5V +5V

o~v{-1 "lF4m, ]v-vih n

~ II

VRl : I:~------~------

cII

~

- -Vp-t- -VN3 t

II I

FL3t

Fig. 2. Schema electrica a unui monostabil activ pe tranzitiapozitiva a semnalului ce intrare

Fig. 3. Schema eleetridl a unui monostabil activ petranzitia negativii a semnalului ce intrare

e 0 schema electricii sensibila la tranzi!ia negativa a semnalului de intrare se prezinta in figura 3. De aceastadata, 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 impulsulde 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 aimpulsului 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 decircuite basculante monostabile (CBM). Ultimea impulsurilor generate este contra lata prin intermediul unui circuit RC extern. Celmai adesea, CBM-urile realizate integrat sunt dotate eu doua intrari de comanda: una sensibila la tranzi!ia pozitiva (TR+) ~i altala 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 Instarea 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 ~Iintrare 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 seImpart in doua categorii:

CBM neretrigerabile - nu se accepta nici 0 comanda de declan~re pe durata unei stari metastabile, esteca §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 varamane 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~isemnal de comanda aplicat pe intrarea de declan~are TR+ §i acela?i lat/me t a impulsului, se prezinta in mod comparativraspunsul unui CMB neretrigerabil ?i al unui CBM retrigerabil. Analizand aceste forme de unda se pot face unmatoareleobserva!ii:

daca intervalul de timp dlntre doua comenzi de declan§are este mal mare decat t , cele doua monostabilefunqioneaza 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 micdecat t (cazul intervalelor de timp dintre tranzitiile 3,4,5,6,7);

Page 41: Circuite digitale

Lucrarea nr. 5: Ap/icafri cu circuite bascu/ante monostabile

pentru CBM-ul neretrigerabil, tranzitiile 4 ~i6 nu au nici un efect deoarece, ia aparipa lor, monostabilul se afta Instarea 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 dacaintervalul 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 prezintacaderi In zero In zona In care semnalul de intrare are tranzitii mai rare - din acest motiv, 0 ap!icatie tipica a C8Mretrigerabil 0 constituie deteqia !ipsei de impuls.

2 3 4

fLJUlRaspull.sCBMneretrigerabil

RaspunsCBMretrigerabil

8

fL

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

SimbolObserva ii74LS121

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;- daca se folose$te intrarea B, cel putin 0 intrare A trebuie conectata Jamasa;- datorita unei rezistente interne, sunt pasibile urmatoarele moduri de conectare a

circuitului RC ;

74LS123circuitul conpne 2 CBM retrigerabile;B, intrare de dedan~re sensibila pe tranzitia pozitiva, daca nu este folositaintrarea se leaga la +5V;A, intrare de declan!iare sensibila pe tranzitia negativa, daca nu este folositaintrarea 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 unui1m uls'

MMC4098circuitul contine 2 CBM ce opereaza In mod normal In regim retrigerabil, darpoate 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 folositaintra rea 56 leaga la Vss;TR-, intrare de declan~re sensibila pe tranzitia negativa, dad\ nu este folositaintrarea 56 leaga la VDD;intrarea de §tergere R, este activa pe zero 1 ic;

Q

Q 1

2.5. Aplicatii cu CBN

A. Filtru trece bandit Un comportament de filtru trece banda pentru semnale digitale se ob~ne cu ajutorul schemeidin figura 5. Dad~ frecventa semnalului de intrare variaza, aceasta schema este conceputa astfellncat spre ie~ire sunt lasate satreaca 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;

Page 42: Circuite digitale

- un monostabil este folosit pentru fixarea frecventei minime ~i celalalt pentru fixarea frecventei maxime ce arepermisiunea 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 electricaa unui filtru trece banda-ealizat cu doua CBMretrigerabile.

o posibilitate de a obpne un semnal digitalfolosind 2 monostabile este prezentata in figura 6.

Se observa ca la terminarea impulsului generatde CBMi se canstituie in comanda de declan~are pentruCBM2 iar terminarea impulsului generat de CBM2 devinecomanda de decian~are pentru CBiv11.Aceasta reaqienegativa (conexiunea de la ie~irea CBM2 la intrareaCBMi mentine funqionarea generatorului de semnal.

Un CBM fixeaza durata de unu iar celalalt duratade zero a semnalului digital de la ie~ire. Dacarezistentele sunt inlocuite cu potentiometre, durataambelor stari logice poate fi contro!ata.

+5V Rl Cl +5V R2 C2

RC C IesireA QB r;

CLR "CBMI +5V

74LS123R

Fig. 6. Generator de semnale digitale realizat cu 2 C8Mretrigerabile

C) Detector pentru impulsuri !ipsa

o aplicatie tipica a circuitelor monostabiie retrigerabile 0 canstituie deteqia impulsurilor lipsa dintr-un tren deimpulsuri de frecventa cunoscuta. Acest gen de aplicatie este deosebit de utila in sistemele de alarmare bazate pe bariere deinfraro~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 zonaprotejata 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 pentrua declan~a alarrna (cineva a patruns neautorizat in zona protejata). Este evident ca, pentru 0 proteqie eficienta, zona protejatatrebuie 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 mentineie~rea CBM retrigerabii in starea Q=l, Q'=O.

I ~.E I~rrpllicatcr H o~~~~rEimtator In _. ~. _. _

infrarosu

Anulare .J swalarma 11 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 consecintaintrarea 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 vareveni in starea Q=i, Q'=O. Se remarca astfel ca starea eMB este alterata doar atata timp cat bariera a fost intrerupta, adicaatata timp cat a trecut obiectul prin zena protejata. Din acest motlv, circuitul de avertizare nu poate fi comandat direct de catreCBM, 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 esteamplasat in zona protejata.

Page 43: Circuite digitale

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 saaqioneze circuitul de semnalizare optica intermitenta ~i, In combtnatie cu 05C3 ?i P2, sa aqioneze semnalizarea acusticaintermitenta.

Mentionam di 05C2 ~i P1 nu sunt strict necesare, semnalizarea acustica ~i sonora se face ~ fara acestea dar, ambelesemnalizari nu mai sunt intermitente.

Un dezavantaj al structurilor logice programabile este acela ca nu permit realizarea monostabilelor din cauza faptuluica 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 egalacu 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 prezentaurmatoarelor 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 estementinuta 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!ede 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 7ncarcareaparalela a numaratorului cu constanta binara M;

iesetarea bistabilului are ca efect trecerea in zero a ie~irii tLCBM~itotodata blocheaza trecerea inpulsurilor priopoarta 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 ANDblocata) pana la 0 noua tranzitie pozitiva pe intrarea de declan~are TR+, dupa aparitia acesteia funqionarea serepeta;

clcjn

J> QCK Q.

ct~JUlflJUl.I1IlI I

-Il--ll--I 1'9=7 I H=7

Ai .1IJlfUl.flIUL __ JIJ1J1flnJULI 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 aimpulsurilor 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 tranzitiilorsemnalului 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 dedeclan~arei

Page 44: Circuite digitale

®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 impulsurilorgenerate de C8M ?care sunt valorile componentelor R1, C1, R2, C2 astfellncat filtrul sa alba frecventa minima de 50kHz jarfrecventa 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\iaprezentata 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 C8Mastfellncat sa declan§eze alarma pentru un singur impuls Iipsa ? Dar pentru a se declan§a alarma cand lipsescmal 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 sepot lua ?

A. Folosind simboiurile existente In editorul de scheme al mediului 15E-WebPack, categoria TTL, realizati 0 Implementare aschemei din figura 8 §i veriflcati functionarea acesteia pe macheta de labortaor cu CPLD. Urmariti pe bareta de LED-urlsuccesiunea 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 delaborator cu CPLD, un autonlat sinCion care sa comande in mod convenabil elementele schemei din figura 8 astfel ind3taceasta 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 §ieventual intra rea de Reset a C8M numeric;ie§lrile automatului vor fj folosite pentru: comanda lncardirii paralele a numaratorului, pentru comandabistabilului 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 stareintermediara INIT In care se face initializarea schemei (Indircarea numi:iratorului §i setarea bistabHului); 0 starePUL5 In care se genereaza impulsul de ie§ire, In aceasta stare se ramane p€ma cand numaratorul se gole~te saupana 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 automatululdirect sub forma de diagrama de tranzitie a starHor.

©

Page 45: Circuite digitale

In partea teoretica se face 0 prezentare succinta a structurii interne a principalelor tipuri de registre, dupa care suntprezentate cateva registre realizate Tn structuri integrate (se pune accent pe semnificatia pinilor ?i pe unele particularitati ceapar 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 structuriintegrate distincte sau ca descrieri in limbaj VHDL.

2.1.. IntroducereLa 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 f1latch-uri sau bistabili.

Indlrcarea unui registru (operatia de introducere a cuvantului de n biti Tnregistru) sepoate face Tndoua moduri:serial- Tncarcarea se face bit cu bit Tn ritmul unui semnal de ceas, motiv pentru care timpul de Tncarcare esteegal 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 Tnacela;i timp.

In general, un registru este definit ca 0 structura liniara de celule de memorare ce prezinta una sau mal multe dinurmatoarele 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 douacategorii: 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 ~iie~ire paralela (registru paralel/paralel). 0 structura de registru cu Incarcareparalela ~i ie~ire paralela se obpne relativ u~or prin utilizarea unul numar convenabi! de bistabili de tip D. Un exemplu deregistru 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 paraleleCKp,la aparitia une! tranzitii active pe intrarea CKp, starea logica a intrarilor PIeste copiata In celulele de memorie;i va fipastrata nealterata pana la urmatoarea tranzipe activa;incarcarea paralela se poate face numai atunci cand pe intrarea CKPse aplica tranzitie activa, spunem ca incarcareaparalela 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 faceasincron fata de semnalul aplicat pe intrarea CKP;

Page 46: Circuite digitale

IIntrar •• I

I de .stergere .

IPIG PIl PI2 PI3CKP Reg. P/P

00 01 Q2 Q3

QO 01 02 Q3 Ie9iri paralelede 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.

MRSCK

Intraraserialade date

Iesireserialadedllte

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 continutulcelulelor de memorie este deplasat spre dreapta cu 0 pozitie (de aici ~i denumirea de registru de deplasare)iincarcarea acestui registru nu se poate face dedIt in mod serial ~i necesita 4 perioade de ceas (in fig. 3 se prezintamodul de incarcare seriala a informatiei 1111 intr-un registru ce prezenta initial informatia DODO,pentru a puteaurmari 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 realizarearapida a operatiilor de inmultire(impartire cu puteri ale lui2. se poate arata ca lnmultirea unui numar binar (stocat inregistru) cu numarul 2 P inseamna deplasarea spre stangacu p pozitii iar impartirea cu 2 P necesita deplasarea spredreapta cu p pozitii.Exemplu:

scriere zecimala: 5 x 4 = 20 <=:> 5 x 22 = 20, decitrebuie efectuata 0 deplasare spre stanga cu douapozitii;scriere binara: 101 x 100 = 10100continutul initial al registrului: 101dupa doua deplasari la stanga, cu introducerea dezerouri 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 unregistru 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 bistabililorde 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;

Page 47: Circuite digitale

Intrari PI2paralelede dote

PI1,I

MReKU

t IesiriQO Ql parolele Q2

de doteFig. 4. Structura interna pentru un registru universal pe 4 bip

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

Observa 7Registrul 741..5171

circuitul contine 4 bistabili de tip D, conectati intr-o maniera similara celei dinfigura 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..5377circuitul contine 8 bistabili de tip D;

- intrarea de validare a accesului informatiei la celulele de memorie (EN), esteactiva 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..5570circuitul dispune de 4 registre de 4 bip fiecare;ie§irile sunt de tip tristate;intrarea de validare a scrierii (WE) §i cea de validare a citirii (RE) sunt active pezero logic;datorita faptului ca avem semnale diferite de vaiidare pentru citire §i pentruscriere, este posibila scrierea unei locatii simultan cu citirea alteia;adresarea registrului se face prin aplicarea unui cod binar pe Iiniile R~ RA (dacaeste operatie de citire) respectiv W~ WA(dadi este operatie de scriere);circuitul se comporta ca 0 memorie RAM cu acces dual.

Registrul 741..595modul de lucru se alege prin intermediul intrarii CM.

CM = 0, deplasare spre dreapta in ritrnul tranzitiilor negative ale semnaluluiaplicat pe intrarea CKS;CM = 1, incarcare paraleia in ritmul tranzipilor negative ale semnaluluiaplicat pe intrarea CKP;

intrarea seriala de date este Sf;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 .

Iesireserialade date

Simbol74LS171

74LS377

EN11

I

III

!!.4 6 !I03 7 ,

02 9

I01 10I

74LS95

I1 SI

:;~DC

B 0B 12A 0A 13

Page 48: Circuite digitale

Registrul universal 74LS194- registru universal pe 4 biti;- modul de lucru se alege prin intermediul intrarilor de seleC1ie5, 50 , dupa cum

urmeaza:- 51 50= AD, memorare- 51 50= aI, deplasare informatie de la Qa---tQd- 51 50= la, deplasare informatie de la Qd·--)Qa- 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

intrarea seria!a de date pentru deplasarea spre dreapta este [Sf;operatiile de deplasare la stanga, deplasare la dreapta ~i Incarcare paralela sunt Iefectuate sincron cu semnalul de ceas elK, pe tranzitia pozitiva;pentru comanda de memorare, semnalul de ceas nu are efect asupra funetionarii , _ .circuitului; ,

74LS194

SlSoLSI

6 D5 C

=:il:~RSI

CLK1 CLR

• Registru in inel Am aratat In fig. 3 ca Incarcarea serie a unui registru de deplasare se face cu pierdereainformatiei initiale din registru. Daca se conecteaza ie~irea seriala la intrarea serie se obtine un registru In ine! care recirculeazala nesfa~it 0 secventa binara. Secventa dorita poate fi lncarcata paralel sau serie, lnainte de lnchiderea legaturii dintre ie~ireaseriala ~i intra rea seriala.

Ca aplicatii ale registrelor In inel se pot enumera: realiz.area de numaratoare Johonson; realizarea unor divizoare digitalede 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 dealimentare, circuitul format din C2, Rl ~i P2,genereaza 0 comanda de lncarcare paralelaa starilor !ogice fixate de dltre K1+K4.

Aparitia comenzii de Incarcare paralela seexplidi astfel: initial C2 este desd\rcat ~iintra rea portH P2 se afla In zero logic, iarie~irea In unu logic, deci se obtine CM=l .

La scurt timp dupa conectarea sursei dealimentare, C2 se Incarea, la intra rea portiiP2 ajunge 0 tensiune suficient de mare safie interpretata ca unu logic - fapt ceconduce la aparitia unui zero logic la ie~ire.Deci, CM=O, ceea ce Inseamna ca registrulprime~e 0 comanda de Incarcare serie cudeplasare la dreapta.

Datorita conexiunii dintre Qd (ie~ire seriala)~i Sf (intrare seriala), informatia Incarcataparalel va fi recirculata In inel;

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

Bloc swi'tch-url(alegere secventa

binara)

Cl4701' 4

L:?l s Pl,In lh. 74LSl3R9 Rill Rll

D2] D3!D4±:.I:' :. ~Bareta de~ """ '"' LED-url

. . .

Fig. 5. 5chema 10g1c3a unei lumini dinamice

Dad~ secventa binara Incarcata paralel a fost 1000 pe bareta de LED-uri se va deplasa un LED aprins, iar daca secventa afcst 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 solutiede 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 suntgenerate aleator.

o posibilitate de generare a unei secvente de numere pseudoaleatoare consta In utilizarea unui registru de depiasarela care se apliea 0 reaC1ie liniara (Linear Feedback Shift Register). 5pre deosebire de registrului In jnel - unde reaetia esterealizata printr-o legiltura Intre ie~irea seriala de date ~i intrarea seriala de date -, In cazul generatoarelor de numerepseudoaleatoare, 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 cainformatia este deplasata la dreapta iar pe de alta parte datorita faptului ca intrarea seriala de date prime~te informatia Qn Ef>Qm.

Page 49: Circuite digitale

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 destari distinete), se observa ca pentru dimensiuni mari ale registrului se ob~in secven~e lungi ~i astfel se poate crea aparen~a degenerare 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.4755 3 31 21 19 2.097.1516 5 63 22 21 4.194.303I 6 121 23 18 8.388.6079 5 511 25 22 33.554.43110 7 1.023 28 25 268.435.45511 9 2.047 29 27 536.870.91115 14 32.767 31 28 2.147.483.647

• Conversia intre formatele de reprezentare a informapei digitale. Informa~a vehiculata In sistemele digitalese 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 VHDLa unul reglstru pe 8biJi eu ineareare para/eIJ pe frontu/ pozltiv a/ semnalulul de eeas.Intrarea de fftergere a registrului este activa pe nivelul de unu logic.

ObselVatii5eqiune dedicata includerii de librarii.

Seqiune dedicata descrierii entita~ii. In cazulde fata:

nume entitate este: reg_B;intra rea de ceas: elk;comanda Incarcare paralela: Id;intrari paralele de date: din;ie iri aralele de date: dour'

Seqiune dedicata descrierii arhitecturii.in cazul de fa~a:

numele arhitecturii este: arhB;arhitectura este asociata cu entitatea:reg8;

Observatii:procesul pl este este sensibil la intra reade ceas elk,resetul este activ pe unu logic;dedara~ia elk'event and clk='1' estefolosita pentru a specifica tranzi~a

ozitiva a semnalului de ceas'

I CodulVHDLI -- Registru pe 8 biti cu incarcare paralela

I library IEEE;use IEEE. std logic 1164. all;

'I entity reg8 isport ( clk: in std_logic;

reset: in std-'oglc;I Id: in std-'ogic;din: in std-'ogic_vector(7 downto 0);doul: out std_logic_vector(7 downlo 0) );

end reg8;architecture arh8 of reg8 isbeginp1: process (clk)

beginif (reset = '1') then

doul <= "00000000";elsif (e1k'event and clk='1 ') then

if (ld = '1") thendout <= din;

end if;end if;

end process p1;end arh8;

.ExempluI2: Descrlerea in Ilmbaj VHDL a unul registru eu Intrare serle 51ie51repara/eta pe 8bip. Intrarea de eeas este actlvape tranz/fia pozitiva. Cireuit'JI nu are intrare de 5tergere.

Page 50: Circuite digitale

ObselVatii CodulVHDLSeqiune 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

IIn cazul de fata: begin- numele arhitecturii este: arh_reg; process ( elk)- arhitectura este asociata cu entitatea: reg_8; begin- 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 alternativaceas; - - 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 ainformatiei spre stanga sau spre dreapta. Metoda f%sita in acest exemp/u este preferabilJ ce/ei antenoare.

ObselVatii CodulVHDLPackage-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.sproiect dadl se face apel la instructiunea use. subtype bit4 is std_logic_vector(3 downto 0) ;

IIn cazul de fata se define~te un pachet pentru a end reg_types;soecifica formatul bit4.Seqiune dedicata includerii de Iibrarii. -- Exemplu de registru pe 4 bitiSe 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.In cazul de fata:

numele arhitecturii este: arh_A;arhitectura este asociata cu entitatea: reg_A;

Observatii:procesul PCl este responsabil de mentinereastarii registrului;procesul: pr_2 este folosit pentru transferulstarii registrului spre ie~irile circuitului;pentru deserierea deplasarii spre dreapta, In loculdeclaraf;iilor: temp_val (2 downto 0) < = temp_val(3 downto 1); temp_val (3) = '0'; se poatefolosi temp_val < = '0' & temp_val (3 downto 1);pentru deserierea deplasarii spre stanga, In loculdeclaratiilor: temp_val (3 downto 1) < = temp_val(2 downto 0); temp_val (0) = '0'; se poatefolosi temp_val < = temp_val (2 downto 0) & '0';

architecture arh A of reg A issi.gnal temp_val: bit4;beginpr_l: process (shift_sens, load, din, dout)begin

if load = '1' thentemp_val < = din;

elsif shift_sens = '1' then - - deplasare spre dreaptatemp_val (2 downto 0) < = temp_val (3 downto 1);temp_val (3) = '0' ;

else - - deplasare spre stangatemp_val (3 downto 1) < = temp_val (2 downto 0);temp_val (0) <= '0' ;

end if;end process pr_1 ;pr _ 2: processbegin

wait until elk 'event and elk ='1'dout < = temp_val;

end process pr_2 ;end arh A;

Page 51: Circuite digitale

®..r'\ -

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

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 aobpne 0 bareta luminoasa de 32 pozitii ?Care este infonmatia ce trebuie incarcata paralel daca dorim deplasarea unui singur LED stins ? Dar pentru un singurLED 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 aajuns la una din extremitatile baretei.

A. Folosind facilitatea 1SE-WebPack prin care se permite descrierea proiectelor la nivel de schema logidi se cereimplementarea ~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 cereimplementarea ~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 seexecuta 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 desemnalul de ceas.

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

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

E. Concepeti a descriere In Iimbaj VHDL ~i implementati pe macheta de laborator cu CPLD, a lumina dinamica pe 8 biti care safunqioneze 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 candatinge 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-uripentru a obtine urmatorul efect: bareta se aprinde de la stanga la dreapta - dand efectul de umplere, iar dupa ce intreagabareta 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 numerepseudoaieatore cu 0 secventa de cel puj;in 63 numere. Afi§area numerelor se va face In cod binar pe bareta de LED-uri sauin 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 deconstrangeri .

Page 52: Circuite digitale

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 paralelaBTN3;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 ridicanici a problema.

Petru a crea un efect perceptibil de lumina dinamicaeste nevoie ca frecventa semnalului ce comandadeplasarea informatiei din registru sa fie sub 2Hz.Daca frecventa este prea mare, vom percepe toataba,eta aprinsa.

Pentru comanda intrarii de ceas se folose~teoscilatorul de pe macheta de laboratoi cu CPLD.Deoarece frE!cventa acestuia este de 25,1758MHz, eltrebuie mal intai divlzat In frecventa ~iabia apol folositpentru comanda intrarii de ceas a registrulUi dedeplasare. Daca ne propunem un semnal cu frecventade 1Hz, constanta de divizare este egala cu25.175.000.

Din punct de vedere al sintezei este mai bine safolosim 0 constanta de divizare ce reprezinta a puterea lui 2, spre exemplu 223 =8.388.608, ceea ceInseamna 0 frecventa de ie~ire de cca. 3 Hz, valoareacceptabia[ pentru aplicatiile propuse.

In fi~ierul VHDL, pe langa descrierea propriu-zisa afunctionarii, se va introduce un proces pentrudivizarea semnalului preluat de la oscilatorul machetei.

Modu! de intercaiare al acestui process cu restulaplicatiei se prezinta pe coloana alaturata. Cea malmare divizare In frecventa se obtine daca semnalul deatac al registrulu elk_reg e~te pre!uat de la eel maisemnificativ bit al semnalului cnt Pentru aceasta esteneeesar sa faeem 0 declaratie de forma:

elk_reg <= cnt(22};

Starea registruiui de deplasare se afi~eaza pe baretade LED-uri de pe macheta de Jaborator cu CPLD.

-- Exemplu de structuralibrary IEEE;use IEEE.std logic l164.all;use IEEE.std-logic-arith.all;use IEEE.std=logic=unsigned.all;

entity lumina dinamica isport ( -

osc 25M : in std logic;se declara restul de intrari si

-- iesiri necesare) ;

end lumina dinamica;

architecture arh 2 of lumina dinamica issignal cnt: std logic vector(22 down to 0);signal clk reg:-std logic;

alte declaratii,daca este c3zulbegin-- proces pentru divizare ceasdivizare: process (osc_25M)begin

if (osc_25M 'event and osc_25M='l' ) thencnt <= cnt + 1;

end if;end process divizare;clk_reg <= cnt(22);

alte procese sau declaratii concurentepentru descrierea aplicatiilor cerutein lucrare

Page 53: Circuite digitale

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 structuraintern 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 instructuri programabile de tip CPLD folosind editoruI de scheme din rnediul ISE-WebPack; utilizarea numaratoarelor in realizareadivizoarelor digitale de frecventa.

2.1. Clasificarea numaratoarelorNumaratoarele 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 dependentde numarul bistabililor din structura ~i de modalitatea de codificare a starilor.

Cele mai importante criterii de c1asificare a numaratoarelor sunt:

• Dupa sensuI 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 unuibistabil 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 corespunzatoarea 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 pspre bistabilul p +1.ca 0 consecinta a timpului de propagare prin bistabili, tilt ~i a modului de conectare a acestora in structura numaratoruluiasincron, 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 stariintermediare de scurta durata. Spre exemplu, trecerea de la numarul binar 1111 la 0000 se face prin lantul de stariintermediare 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 dltreie~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 20de biti.

"1" "1"OUT OUT J Q OUT

IN cr/2) (f/2) IN CK U/2)IN Q(I) (0 (f)!'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 JKactivi pe tranzitia negativa a semna!ului de ceas. Structuri asemanatoare se pot realiza ~i eu bistabili de alt tip configurap ca infig. 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;

Page 54: Circuite digitale

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 stareanumaratorului (numarul impulsurilor acumulate). Ie~irea Qd, indica cel mai semnificativ bit al stikii numaratoruluiiar Qa pe cel mai putin semnificativ.

:"1"<P : ,J

CK,,""1H

R

Qa If Qb Qc Q dFig. 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 continuanumararea.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 aisemnalului 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 succesivea bistabililor ~itimpului de Intarziere T al acestora.Numadltoarele asincrone lucreaza corect dadi intervalu! de timp dintre doua tranzitii active ale semnalului de ceas este maimare decat suma intarzierilor introduse de lantul bistabililor.

SEMNALEDE

IESlRE

i 1 t 0

: 1, ,1, 4-:~:~:~:~:

--1-5---_=======O===~1111 ----+- 1110 -> 1100 -> 1000 -+- 0000

Stan intermediaTe nedoriteFig. 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 trecedin starea 15 -40. Starile nedorite (1110, 1100 ~i 1000) sunt de scurta durata Insa pot fi sesizate de alte circuite dintr-un sistemdigital mai amplu.

SEJlIiNALE

DEr~IRE

In aceasta seqiune se prezinta cateva tipuri de numaratoare asincrone, mai des utilizate, ce sunt disponibile subforma 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 prevazutecu facilita~ suplimentare. a parte a acestor funqii se prezinta pe scurt in continuare pentru a fadlita Intelegerea mai u~oara acircuitelor in momentul prezentarii lor .

••FunC/ia de reversibilitateNumaratoarele 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 decomanda a sensului de numarare. Pentru primul caz, cele doua intrari de ceas sunt denumite COUNT UP respectiv COUNTDOWN. In cazul doi, intrarea de ceas este denumita CLOCKiar cea de comanda UP I DOWN.

Page 55: Circuite digitale

• 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 tinecont de starea logica a semnalului de ceas. Pentru numaratoarele cu presetare sincrona, ind3rcarea efectiva se executa la primatranzitie 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 deceas 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 primatranzit;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 resetulasincron, §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 seintelege 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 maximaa acestora.

• Circuitu! 14 LS 93 - numarator binar asincron pe 4 bit;iCircuitul 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.

CP114 LS 93 2 J

12

CPo 14 MRCPo

MRIcp]

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 92CP1

• Circuitul 14 LS 90 - numarator BCD asincronCircuitul 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 CPOrse 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.

Page 56: Circuite digitale

cp] 1

MR1 2

MR2

NC

VCC •

• Circuitele: 74 LS 196 - numarator BCD asincron presetabil74 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.

12 03

l' P3

P,

9 01

6 CPoFig. 8. Circuitul 74LS196/ (74LS197): simbollogic, pinout

8 _ Pi:. Po P, p.CPo 74lS196

(74lS197)CP1 MR 00 Q1 02 03

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, laintrarea de ceas a numaratorului n. Aceasta metoda este cunoscuta sub denumirea de Ripple Count Noua structura, decapacitate 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 semnaluluide intrare. De regula, coeficientul de divizare este un numar intreg. Atragem atentia asupra faptului ca semnalele de intrare ~ide 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 pentruobtinerea 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, (spreexemplu 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 numaratorcu k stari distincte. Pentru aceasta este necesar sa alegem un numarator binar cu 2 N stari distincte, insa trebuie avut grije safie 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 decomanda a intrarii de reset a numaratorului binar.

Nr. Denumire etapa ObservatiietaDa

1 Alegerea numaratorului binar §i alcatuirea unui tabel cu Avem nevoie de un numarator binar de eel putinsuccesiunea starilor orin care trece acesta 4 bitiSepararea starilor permise de cele nepermise

2Numaratoarea starilor permise se incepe in modobigatoriu cu starea 0;

Page 57: Circuite digitale

I QD QC Q. Q. ! R. Observatii0 0 0 a I 1

0 0 0 1

I ~0 0 0 Stari permise I0 0 1 1 1 ( Functia de sterge!! trebuie sa0 1 0 0 1 fie inactiva R = 1)

I

0 1 0 1 10 1 1 a 10 1 1 1 11 0 0 0 11 0 0 1 1

I1 0 1 0 1 I1 0 1 1 1 I1 1 0 0 0 Stari nepermise I

I1 1 a 1 • (Functla de sterge~ trebu~1 1 1 0 fie act/va R = 0)

I1 1 1 1

35inteza CLC-ului pentru comanda intrarii de ~tergere.

R =Qd+Qc=Qd QcRealizarea schemei logice

f·(fout= 1~ )

In momentul In care circuitul ajunge In starea1100, intra rea de ~ergere se activeaza ~inumaratorul este fortat sa treaca In starea 0000;

Prima stare nedorita este "atinsa tangen~al", setrece prin ea doar cateva nanosecunde. Aceastastare nu este lasata sa existe.

Functia de Reset este necesar sa fie aetiva doarIn prima stare nedorita. In restul starilor nedoritefunqia de ~tergere poate avea valoarea*=don't care, deoarece numaratorul nu maiare cum sa tread! prin aceste stari.

Se aplica a doua Jorma canonica ~i se tine contde faptul ca *, poate fi considerata '0' sau '1'.

Durata de '1' a semnalul de ie~ire este egala cu4 perioade ale semnalului de intrare;Durata de '0' a semnalul de ie~iie este egala cu8 perioade ale semnalului de intrare;

Foarte multe scheme digitale sunt formate dintr-o celula de baza care este repetata de un anumit numar de orl (1naceasta categorie se lncadreaza ~i numaratoare!e binare asincrone). Pentru astfe de scheme este utila definirea unui simbolpropriu (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 Inexemplul de mai jos.Exemp!u: Realizarea unui divizor de frecventa folosind un sirnbol ata~at structurii de numarator din figura 2.

Nr. Denumire etapa MOddelucruDin 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-'> ...

Adaugam la proiect un fi~ier nou1. 5ecventa de comenzi este: Project-,> New Sources-,>Sch"ematic~i se

Iatribuie un nume (spre exemplu divJIt; -'> Next-,>Fiiiish. In urme acestor

de tip schema logica In care comenzi se lanseaza editorul de scheme loglce.descriem schema interna a

I 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-,> deplasaredivizare cu 2 a frecvenjei mouse pana la un capat al firului -'> e1icdreatpa cu menpnere ~ideplasare

Isemnalului de intrare.

I

pana la ce!alalt capat a! firului -'> eliberare buton stanga;• adaugarea de pini de intrare/ie~ire prin secventa de comenzi: Add-'> I/O

2 Atenpe: Bistabilii din interiorul Marker -'> din fereastra Options se alege dupa caz Add an input markerCPLD au toate intrarile active pe I sau Add an output marker -'> se deplaseaza mouseulln zona de lucru ~i se'1' iar intrarea de ceas este face e1icdreapta pentru amplasare -'> se apasa butonul sageata orientata spreactiva pe tranzijia pozitiva. stanga (de pe too!sbarul superior) -'> se face dublu e1icpe marker -'> In

Dupa generarea simboluluifereastra aparuta se modifica proprietatea Name OJ denumirea dorita aintrarii/ie~irii -,>OK.

grafic, avem la dispozijie un • Dupa terminarea desenului se salveaza prin File-'> save.simbol (definit de not cu numele

IdivJk), simbol ce poate fifolosit drept component a in alte Ischeme.

I

Page 58: Circuite digitale

Denumirea asociata simbo/u/uieste aceia~i cu denumireafi5ieru/uicei descrie conJinutul.

Adaugam la proiect un nou fi~ierde tip schema in care descriemstruetura interna anumaratoruiui.

IIi

in exemp/u/ de fatii, vom /ega In Icascada 4 simbo/uri de divJk Ipentru a rea/iza un numaratorbinar pe 4 biti.

Din schema se observa ca avem I4 b/ocuri div2Jk, conectatesimilar schemei din figura 2.

Adaugarea fi~ierului deconstrangeri.

Atenpe: Aceasta etapa estenecesara numai daca dorimtestarea structurii numaratorului.

Adaugam la piOiect un nou fi~ierde tip schema !ogica in caredescriem schema divizorului defrecventa·

3. Se asocoaza schemei logice un simbol grafic• Se revine in Project Navigatoqi se executa urmatoarea secventa decomenzi: In fereastra Source in Projectse alege divJk -+ In fereastraProcesses for current SDurcesse face dublu e1icpe Create SchematicSymbol.

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

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

1. Din fereastra Project Navigator, printr-o secventa de comenzi ce a fostdeja descrisa, se introduce un nou fi~ier de tip schema logidl, denumitn_asincron4.

2. In editorul de scheme se verifieil lista simbolurilor disponibile pentru aconstata prezenta simbolului generat de noi, div..Jk . Pentru aceasta I Intextboxul Categories trebuie sa existe 0 linie de forma<c:jcidjproiecte_vhdl/rlUm_4bit>, linie ce indica locul unde se afla amplasatproiectu! nostru. Dad\ se selecteaza aceasta linie, In textboxul S)'mbolstrebuiesa existe ~i divJk.

3. Desenarea ~i salvarea schemei numaratorului se face similar cazului anterior,. div2jk

~~---'-

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

~:;t"•• C~~

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

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

J'l~~" ·~~'I---@D4. Generarea unui simbol rafic entru numarator similar cazului anterior1. Din fereastra Project Navigator I printr-o secventa de comenzi dejacunoscuta se adauga un nou fi~ier de tip Implementation Constrains File.Dupa declararea numelui, acest fi~ier trebuie asociat cu schema n_asincron4.

Pentru comanda intrarii de ceas NET "RESET" LaC = "P83";se folose~e contactul cu revenire NET "CK_IN" Lac = "P5G";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 dejacunoscuta se introduce un nou fi~ier de tip schema logica, denumit div_9.

2. In editorul de scheme se verifieil lista simbolurilor disponibile pentru aconstata prezenta simbolului asociat pentru numaratorul n_8sincron4.

3. Se deseneaza schema divizorului de frecventa de mai jos.Dupa desenare exista posibilitatea de a vizualiza struetura interna a

Page 59: Circuite digitale

numaratorului. Pentru aceasta trebuie parcursa urmatoarea secventa decomenzi: In editorul de scheme se marcheaza simbolul n_8sincron4 apoiView ~ Push Into Symbol Va apare 0 schema identidi cu cea din Iinia 4 aacestui tabel. Chiar ;;1 de aici se poate merge pe adancime, in sensul ca sepoate vizualiza care este schema logica a bloculul div2..Jk.

Adaugarea fi;;ierului deconstrangeri.

Dupa introducerea acestui tiffierse observa 0 rearanjare asurselor implicate in proiect,tiffierul div_9 devine principal

1. Din fereastra Project Navigator, printr-o secventa de comenzi dejacunoscuta se adauga un nou fi;;ier de tip Implementation Constrains File.Dupa declararea numelul, acest fi;;ier trebuie asociat cu schema dip/_g.

Pentru comanda Intrarii se NET "INTRARE" LaC = "PS6";folose;;te BTN1; NET "Q3" Lac = "P62";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!ede 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 umplereal 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 schemeIe electrice ;;1 formele de unda de la ie;;irile Q3.

Page 60: Circuite digitale

4. Analizati funqionarea circuitului din figura 11, circuit cereprezinta 0 alta modalitate de obtinere a divizoarelor defreclient3 cu factori mari de divizare.

Dupa realizarea schemei pe macheta de test, laintrare se aplica un semnal TIL cu 0 frecventa deaproximativ 100 Khz. Pe un canal al osciloscopului sevizualizeaza semnalul de !ntrare, iar pe celalalt canal seaplica succesiv semnalele din punctele A, B, C.

Se deseneaza coreiat in timp semnalul de intrare ~isemnalele din punctele A, B, C.

Care este rolul portii AND 7Care este factorul de divizare al fied\ruicircuit ~i care este factoru! de divizare globalobtinut 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 deumplere 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 curevenire BTNl.

B. Adaugati la proiectul din tabelul 2 un decodificator BCD-7segmente pentru afi~area starii numaratorului pe primul digital 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:....inse conecteaza direct la intra rea de ceas a bistabilului JK). Refaceti implemetarea si urmar!ti sucesiunea starilor princare 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 '1J, realizati dlte 0 implementare pentru fiecare schema din figura9.

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 '1J' realizati 0 implementare pentru divizorul de frecventa din figura11.

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

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 deoscilatii la apasarea butonului, se recomanda urmarirea starilor prin care trece numaratorul pentru mai multe cicluricomplete ale sale;

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

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;

©

Page 61: Circuite digitale

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 structuraintema; 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 acapacitapi de numarare; prezentarea modalitatilor de descrierea in Iimbaj VHDL; implementarea In structuri logice programabilede 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 ~icre~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 aufadlitati suplimentare precum: Incarcarea paralela, controlul numararii, numarare In ambele sensuri, semnalizareaterminarii 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 impulsurilorInregistrate. 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 estepermisa 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 seface numai atunci cand toti bipi anteriori lui, de ponderi inferioare, sunt "unu". Aceste situatij sunt identificate cu ajutorul po!1ilorAND 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 avalida sau nu procesul de numarare. Daca CE= 0 toate portile AND au ie~irile fortate in "0", fapt ce determina bistabilii T sa fiein regim de rnemorare a starii anterioare. Cu alte cuvinte, atata timp cat CE= 0 starea numaratorului nu se modifica chiar dacala 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 subforma 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 reversibilitateNumaratoarele 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

Page 62: Circuite digitale

comanda a sensului de numarare. Pentru primul caz, cele doua intrari de ceas sunt denumite COUNT UP respectiv COUNTDOWN. In cazul dol, intrarea de ceas este denumlta CLOCKiar 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 tinecont de starea logica a semnalului de ceas. Pentru numaratoarele cu presetare sincrona, inca rearea efectiva se executa la primatranziye 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 deceas 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 primatranzitie 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 resetulasincron, ~i prin SYNCHRONOUSRESETpe 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 seintelege 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 maximaa acestora .

• Circuitele: 74lS160A, 74i.S162A - numaratoare BCD sincrone presetabile74LS 161A, 74LS163A - numaratoare binare sincrone presetabile pe 4 biti

Circuitele sunt active pe tranzitia pozitiva a semnalului de ceas.Contorizare daca: CEp·CET·PE= 1Stergerea 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 CPoSemnalizarea 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

74 lS 160 A BCD sincron tlsincrtlu

HLS1S1A binar sim;:ron asincron

74LS 162A BCD sincron slncron

74 LSI63 A bloar sincron sincron

9 VccFiE Po PI P2 P3

TC

CEP10 CET TC 1~

2 CPR*

CEp· Counl Enable ParallelCET - Counl Enable Trickle~ - Clock (Active HIGH Going Edge)lnpulPI: - Parallel Enable [Active LOW! InpulTC - 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 OutputsPo- P3 - Para!lellnputs

Ie~irea TC prezinta spikes-uri datorita decodarilor interne, deci nu se recomanda a fi utilizata pentru: comanda altornumaratoare, 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.

Page 63: Circuite digitale

2.3.2. Numaratoare sincrone bidirectionale presetabile

• Circuitele: 74LS168 - numarator BCD bidirectional sincron presetabii74LS 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 CPoSemnalizarea 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 intrariide 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 i1egalacircuitele ajung In una legala In doua perioade de ceas.

ICircuit Numarare LOAD

74LS 168A BCD sincron

74 LS 169 A binar sincron

CEP - Count Enable Parallel (Active lOW) InputCET - Count Enable Trickle (Active lOW) InputCP - Clock ( Active HIGH Going Edge] InputFiE - Parallel Enable (Active LOW) 'InpulTC - Terminal Count Output [Active lOWj Input00- 03 - Pa.allel OutputsPo- PJ - Pa.allel Inputs

ufo Up - Down Count Control Input

Vcc

Po P1 P2 P;jTC

1 ufD7 °0

CEP 74lS 168A Tc 15 a110 err 174LS169A!2

CP °0 01 °2 °3Q2°3ffi

• Circuitele: 74LS190 - numarator BCD bidirectional sincron presetabil74LS 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 intrariide 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 semnaluluide ceas ~idureaza pana la prima tranzitie pozitiva a semnalului de eeas. Aceastil ie~ire nu prezinta spikes-uri ~ieste utila pentrucascadarea 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.

Page 64: Circuite digitale

P1 1 Vcc

Pl Po PI P2 P30, 2 Po

5 ufo 00 374LS190 RC 13 CP414 CE 174lS191) TC

12 "i"~"" RCCP 00 01 02 03 010 5 74LS191

Q2 6 Pi:03 7 P2

GND 6 9 P3

I Circuit Numarare lOAD

j74LS190 BCD sincroa

IHLS191 binar sincron

CE - Count Enable (Active LOWllnput£e - Cloc~ (Active HIGH Going Edge) InputPL - Parallel Load (Active LOWllnpulTC - Terminal Count OUlput (Acllve HIGH) OulputDID Up - Down Counl Control InputRC Ripple Clock Output00- 03 - Paralle' OutputsPo- P3 - Par.lld "'puts

• Circuitele: 74LS192 - numarator BCD bidirectional sincron presetabil74LS 193 - numarator binar bidireqional sincron presetabil pe 4 biti

Circuitele sunt active pe tranzitia pozitiva a semnalului de eeas.

Contorizare daea P L = 1 ;;i MS=O- Inainte dad3: CPD = 1 §iCPu 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 P L = o.II Circuit Numararc lOAD RESET

i74lS192 BCD ~sincron asincmn

l74lS193 binar asincron asincronPo PI P2 PJ MR74lS192

(74lS193j

00 01 02 030u- 03 - Parallel OutputsPo- P3 - Parlillei Inputs

CPu - Count Up Cloe~ Pulse [Actl"e HIGHGoin9 Edge) InputCPo - Cuunt Down Clucl: Pulse [Active HIGHGoing EdgellnpulMR - AsyndltolllJuS M3ster Reset (Active HIGHlinputPi: - Asynchronous P>lrallel Load (p.ctlveLOW)tnpul

TC" - Terminal Count UpfActi,," LOW] OUlputTeo· 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) darnumai la numararea lnainte;

- TCD 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 deactivare specificate anterior sunt Indeplinite, activarea efectiva Incepe cu prima tranzitie negativa §i se termina la prima tranzitiepozitiva 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 alnumaratorului mare .

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

Sr.nsLoa'd

Er;;;i;IeCK

5 - Pi: Po PI P2 P34 l!10 74LS190 RC

14 CE 174LS1911 TCCP 00 01 02 03

J I 2 6 r 3, 21 6 I,

Fig. 6. Cascadarea numaratoarelor sincrone In modul Ripple Clock

Page 65: Circuite digitale

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 suntsincrone;schema este utila mai ales acolo unde capacitatea de pilotare a semnalului de ceas este redusa, In acest cazsemnalul de ceas comanda numai Intra rea primului circuit;

semnalul de validare a numararii, Enable, este suficient sa se aplice primului circuit deoarece, pentru CE =1se blocheaza genera rea pusului de zero pe ie~irea RC;schema prezinta dezavantajul unui decalaj temporalintre schimbarea starii primului ~i a ultimului circuit din lantulde 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 circuitelordin 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.

SensLQ;;;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 nudepinde 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 utilizareaunui a~a zis "ceas manual" .

Pentru machetele din laborator, obtinerea unui semnal eu frecventa foarte mica necesita 0 divizare sufident de mare asemnalului cu frecventa de 25,175MHz. Acest semnal este generat de un oscilator de pe macheta ~i este conectat la pinul P9 alclrcuitului 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 malsemnificativ bit al numaratorului este de aproximativ 1,5Hz. Modul de intercalare a numaratorului se poate vedea in exemplelede mal jos analizand procesul denumit div_ceas.

"Ceasul manual" este un semnal digital obtinut prin lnchiderea sau deschiderea unui eomutator mecanic. Dinnefericire, inchiderea ~i deschiderea contactelor mecanice se face cu vibratii - lucru ce face ca semnalul electric generat sa albascurte oscilatii in zona In care se face trecerea de la 0 stare logica la alta. Din aceasta cauza, exista riscul de a genera mai multetranzitii active la 0 singura apasare a contactul mecanic. Contactele cu revenire de pe macheta sunt "curatite" de tranzitiilesuplimentare prin intermediul unui inversor trigger Schmitt, ceea ce nu reprezinta cea mai buna solutie, de aceea e!e trebuieutilizate cu precau~ie In comanda intrarilor de ceas.

In cele ce urmeaza prezentam cateva exemple de descriere in Iimbaj VHDL a numaratoarelor sincrone.

Page 66: Circuite digitale

~ExempluI1: Descrierea In /imbaj VHDL a unui numarator binar pe 4 bit/~ cu intrare de ~ergere activa pe unu logic 5iIntrarea de numarare sensibila la tranzi/ia pozitiva.

Seq;une dedicata deserierii entitatii.in eazul de fata:- La intrarea '_inse aplica semnalul de la oscilatorul machete!

de test;intrarea de §tergere: clear; Iintrarea de ceas a numaratorului va fi comandata de semnalulde la ie$irea divizorului de frecventa descris prin procesul Idiv_ceas, semnal denumit clk;

- iesirile numaratorului: Q out·Seqiune dedicata descrierii arhitecturii.In cazul de fata:- Descrierea funqionarii numaratorului se face eu procesul

pr_A ee este sensibilia intrarile elkiJi clear,Stergerea numaratorului se face daca se activeaza intrareaclear;Incrementarea se face pe fiecare tranzitie pozitiva asemnalului de eeas;

Procesul div_ceas~i declaratia elk <= ent(23)suntintroduse pentru a uiJura vizualizarea starilor prin care trecenumaratorului.

Ordinea 7n care sunt scrise procesele 7ncadrul arhitecturii nuare importanta.

CodulVHDLlibrary IEEE;use IEEE. std _logic _1164. all;use IEEE.std_logic_arith.all;use IEEE.std logic unsigned.all;

entity nr_4bit isport (f_in, clear: instd_logie;Q_out: outstd_logic_vector{3

) ;

end nr 4bit;

architecture arh nr4bi t of nr 4bi t is-signal clk: stdJogic;signal cnt: std_logic_vector (23 downto 0);beginpr_A: process (clk, clear)begin

if (clear = '1') then Q_out < = '0000' ;elsif ( elk 'event and elk ~ 11' ) then

Q out < = Q out + "0001" ;end if; - -

end process pr_A ;

II div_eeas: process (Un)

begmii (Un 'event and Un='1 ') then ent <= cnt + 1; end if

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 5ifntrarea de numarare sensibila la tranzipa pozitiva.

Observatii5eqiune dedicata includerii de librarii

Seqiune dedicata descrierii entitatii.In cazul de fata:

I - intra rea de iJtergere: ciear;

II - La intrarea (jn se aplica semnalul de la oscilatorulmachetei de test;intrarea de ceas a numaratorului va fi coman data desemnalul de la ie~irea divizorului de frecven~a deseris prinprocesul div_ceas, semnal denumit elk;ie iri: bcd un; bcb_zeci'

Seqiune dedicata descrierii arhitecturii.in cazul de fa~a:

Descrierea funqionarii numaratorului zecimal cu douadecade se face cu doua procese: pr_unitiJi pr_zecipentru modificarea codului BCD al unitaplor respeetiv alzecilor; ,Pentru ambele procese, §tergerea decadei se face daca seactiveaza intrarea elearsau daea sa atins starea 1010;Incrementarea unitatilor se face pe fiecare tranzitie pozitivaa semnaluiui de ceas;Semnalul cyare semnnificatia de semnal de umplere adecade! de unitap (trece In starea 0 atunci candnumaratorul este 7nstarea maxima);Incrementarea zecilor se face tot pe tranzitia pozitiva asemnalului de ceas numai daca decada de unitati este plina;

CodulVHDL 1-- Nt~arator BCD pe doua decade Ilibrary IEEE;useIEEE.std_logic_1l64.all; ~use IEEE.std logic arith.all;useIEEE.std logic unsigned.all;

entity nr_2dec isport ( [f _in, clear : in stdJogie;bcd_unit: outstd_logic_vector(3 downto 0);bcd zeci:outstd logic vector (3 downto 0)); --

end nr_2dec;

architecture arh_nr2dec of nr_2dee issignal elk, cy: std_logic;signal ent: std_logic_vector (23 downto 0);signal unit, zeci : sId_logic_vector (3 downto 0);beginpr_unit: process (clear, c1k)begin

if «clear = '1')or(unit ="1010")) then unit <= "0000";elsif rising_edge(clk)then

unit <= unit + "0001" ;end if;if unit ="1001" then cy <= '0': else cy <= '1'; end if;bcd_unit<=unit;

er:d process pr_unit ;pl'_zeci: process (clear, clk)bagin

if «clear = '1'j or (zeci ="1010")) then zeei <=

Page 67: Circuite digitale

Procesul div_ceas ~i declaratia elk <= ent(23) suntintroduse pentru a u?ura vizualizarea stariior prin care trecenumaratorului.

I "0000";

[I elsif (rising_edge(elk) and (ey ='0'» then

zeci <= zeci+ "000 1" ;end if;bed_zeei<=zeci;

end process pr_zeci;div_ceas: process (Un) -- process divizare ceasbegin

if (Un 'event and Un='1') then ent <= ent + 1; end if;end process div_ceas:elk <= cnt(23);end arh nr2dee;

Ordinea In care sunt scrise procesele in cadrul arhitecturiinu are importania.

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

Observatii CodulVHDLPackage-ul contine elemente ce trebuie recunoscute in - - deserierea paehetuluimai 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 isnou fii/ier sursa de tip VHDI. Packadge cu descrierea subtype bit4 is std_logic_vector(3 down to 0) ;.J _____ 1 _____ 1~40 •• __ .••~ end count._types;

I ut: JJt:: \,.UIUdlld dldl,.U1ald.

IIn exemplul de fata, pachetul este folosit doar pentru aspecifica formatul bit4 .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. isIn 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 isIn cawl de faia:

Isignal count-val: bit4;

- procesul PCl este responsabil de mentinerea starii beginnumaratorului; pr 1: process (clear, load, din, dout)

- procesul: PC2 este folosit pentru transferul starii beginnumaratorului 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" ;

I- procesul pr2 nu are lista de sensibilitati de aceia else count_val < = dout + "0001" ;este absolut necesara folosirea declaratiei wait end if;

end process pr_1 ;pr _ 2: processbegin

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 incarcareaparalela sincrona.AtenJie: in acest exemp/u nu este prezentat procesul pentru reducerea frecvenfei semnalu/ui dat de osd/atorul de pe machetade test. Introducerea acestui proces se face similar ca in primul exemplu.

Observatii I CodulVHDLSeqiune dedicata includerii de librarii. I -- Exemplu de numarator sineron

library IEEE;I use IEEE.stdJogie_1164.all;! use IEEE.std loaie unsianed.all;

Seqiune dedicata descrierii entitatii. I entity num_4bit isIn cazul de fata: I port (Clk,Rsl,Load: in std_logic;- comanda Incarcare paralela: load; I Data: in stdJogic_vector(3 downto 0);- intrari de date: Data; i Count: out std_!ogic_veetor(3 downto 0));- iesiri: Count· I end num 4bit;Seqiune dedicata descrierii arhitecturii.in cazul de fata:

architecture arh_num_ 4bit of num_ 4bit isbegin

Page 68: Circuite digitale

procesul este declan~at pentru orice evenimet aparutpe intrarile Rst~i Clk,;';tergerea se face pe unu logic ~i se executaindependent de semnalul de ceas (executie asincrona);Starea numaratorului este reactuaiizata printr-odeclarape de atribuire conditionata;Se observa utilizarea unei bucle for pentru copiereaintrikilor de date;Deteqia frontului pozitiv se face folosindrisiny_edge(Clk) ~i nu Clk •event AND elk:;:::'1 ';Proprietatea rising_edge(Clk)intoarce 0 valoareboolean a, deci poate fi folosita in declaratiile ce contintesta rea !ndeplinirii unoI' conditii;

process (Rst, Clk)variable Q: std_logic_vector (3 downto 0);begin

if Rst = '1' then Q := "0000";elsif rising3dge(Clk) then

if Load = '1' thenfor i in 3 downto 0 loop

Q(i) := Data(i);end !oop;

elsif Q = "1111" then Q:= "0000";else Q:= Q + "0001";end if;

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"

TCu12

F. 74lS193~m 4 13 CCPD TeDA

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 seexplica 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 ?

Page 69: Circuite digitale

C. Un alt procedeu de reaiizare a divizoarelor de frecventa este ilustrat In figura 11. Se apllca la intrarea un semnal TTL cu 0frecventa 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:?iredin 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

LSB '1__ M_S_B _

Constanta bina,-a K2

LSBI IMSB

CEP10 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 digital 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 intrarilorce ceas). Refaceti implementarea si urmariti succesiunea starilor prin care trece numaratorul. Ce se constata fata decazul anterior?

D. Realizati cate 0 implementare pentru fiecare schema de divizare a frecventei din figura 10 §i verificati funqionareaacestora pe macheta do: laborator cu CPLD. Urmarip succesiunea starilor prin care trece numaratorul pe primul afi~jcu 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 pemacheta de laborator cu CPLD. Urrnariti succesiunea starilor prin care trece numaratorul pe primul afi§aj cu 7segmente. Notati succesiunea starilor §i determinati factorul de divizare al frecventei semnaluiui de intrare.

Page 70: Circuite digitale

Lucrarea nr. 8: Studiul numaratoarelor sincrone

F. Realizati 0 implementare pentru schema de divizare a frecventei din figura 12 ~i verificati funqionarea acestora pemacheta de iaborator cu CPLD. Urmari);i succesiunea starilQr prin care trece numaratorul pe primul afi~aj cu 7segmente. 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 inexemplul2.

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

C. Plecand de la descrierea initiala prezentata in exemplul 2, adaugati un semnal de semnalizare a umpleriinumaratorului de zeci §i unul de semnalizare a umplerii intregului numarator (trecerea sa prin starea 99). Verificati §iimplementati 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§iretrebuie sa alba durata de unu logic egala cu 3 perioade ale semnalului de ceas. Verificati aceastil descriere pemacheta de laborator cu CPLD.

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

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

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 deoscilatii la apasarea butonului, se recomanda urmarirea stanlor prin care trece numaratorul pentru mai multe ciduricomplete ale sale;

o metoda ;i mai buna de comanda a intrarii de ceas consta In folosirea unui semnal digital periodic cu frecventa sufidentde mica pentru a putea urmari sllccesiunea starilor prin care trece numaratorul. Pentru aceasta, putem folosi semnalul dela 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. Inaeeste conditii, semnalul cules de pe ie;irea cea mal semnificativa a numaratorului va avea frecventa de cca. 1,5Hz, valoarece 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 procesuluidiv_ceasdin exemplele 1 §i 2).

©

Page 71: Circuite digitale

In aeeasta luerare se prezinta funetionarea unui sistem logic eeva mai complex: este vorba de un sistem de gestionarea unei matriee de taste cu organizarea 4x4. Pe aeest exemplu eoneret se pot vedea la lueru mai multe tipuri de eireuite logiceelementare precum: DCD, MUX, numaratoare binare etc.

In lucrare sunt prezentate doua modalitati de implementare: una c1asica (in sensuI ca sunt folosite circuite integratedigitale de complexitate mica ~i medie) ~i una moderna (circuitul este descris in VHDL ~i implementat intr+un circuit de tipCPLD).

Tastatura a fost ~i probabil va ramane pentru inca mult timp un mijloc faeil prin care se pot introduce comenzi intr-unsistem digital, sau informatii intr-un sistem de calcu!. De regula, pentru fiecare tasta, prin conventie, este asociat un cod binarprin intermediul careia ea poate fi recunoscuta de catre sistemul de calcu!. In funqie de complexitatea ~i marimea tastaturiiexista 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 concepeschema electrica astfel neapasarea tastei sa mentina intrarea CLC-ului in unu logic, iar apasarea sa aduca respectiva intrare inzero.

Dadi mergem pe aceasta idee, constatam destul de repede ca tabelul de adevar este fcarte mare: avem deimplementat 5 funqii binare ce depinde de 16 variabile. Compiexitatea sistemului rezultat este prea mare pentru ca aceastametoda 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 atabelului 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 deaqionare a tastelor:

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

Tinand cont de aceste aspecte rezulta ca nu este nevoie ca circuitul sa analizeze In acela~i !imp starea 109icaa tuturortastelor. Se poate imagina un circuit care sa analizeze suecesiv starea tastelor: se analizeaza mai intai starea primei taste, apoistarea urmatoarei taste ~i a~a mai departe pana se ajunge la ultima tasta dupa care procesul se repeta la nesfar~it (atata timpcat circuitul este alimenta). Pentru acest mod de lucru, frecventa de trecere de la 0 tasta la alta trebuie sa fie sufieient de marepentru ca intreaga tastatura sa fie verificata cel putin odata pentru cel mai mic interval de apasare a unei taste (acesta se poatedetermina 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), cuurmatoarea succesiune: ... OO~ 01 ~ 10~ 11----)00 ----)01 ... Aceste codun binare sunt folosite petru comanda intrarilor deseleqie ale circuitului MUX 4: 1. In acest mod, schimbarea eodului binar inseamna de fapt analizarea starii log ice pentru 0 altatasta.

TO T1.1 T2 T3

iJ,. 1J,. {J,. 1J,.

logicilde

control

Q) QO Cod binarselectietasta

SenTIslizaretasata apasata

Fig. 1. Schema logica de principiu pentru gestionarea unei tastaturi cu 4 taste

Cod bilartastaapasata

Page 72: Circuite digitale

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 regasistarea logidj de la intrarea de date 12• Datorita schemei eleetrice, starea logica a intrarii de date h este dependenta de stareatastei T2;

daca T2 nu este apasata, intrarea de date 12se afla conectata la unu logic prin intermediul rezistentei R3 , inconsecin~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 aresemnificatia de tastJ apasata. In consecinta, aceasta ie~ire activa pe zero logic, poate fi folosita ca ie~ire de semnalizare spresistemul de calcul. Totodata, trecerea In zero a ie~irii Y mai este folosita ~i pentru genera rea unei comenzi de memorare acodului 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 organizateintr-o matrice de m linii ~i n coloane. Procedfmd astfel se reduce semnificativ numarul intrarilor de date ale circuitului demultiplexare.

o schema bloc de principiu, pentru cazul unei tastaturi cu 16 taste, se prezinta in figura 2. In primul rand trebuie saremardim ca 16 taste necesita un cod binar de seleqie pe 4 biti. Cei mai semnificativi 2 biti (Q3 Q2)sunt folositi pentru comandaintrari!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 uncapat 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, Inorice 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) aDCD-ului. Deoarece DCD-ul activeaza la un moment dat doar 0 singura ie~ire, se poate trage concluzia dl existadoar a singura linie ce prime~te zero logic.

Logicade

control

Q 1%11 Codblnar

selectielasta

Cod blnartasta apasata

SemnallzBretasata apasata

Pentru explicarea funqionarii consideram situatia Q3 Q2 Ql Qo = 1001. Facem observatia ca ~ Q2 determina coclulliniei (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 tastelor a- 9,.A, B. Tasta verificata efectiv se stabile~te prin adresa de coloanadata 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 dateh Aceasta lnseamna ca se analizeaza starea tastei afla~e la interseqia liniei 2 cu coloana 1, este yorba de tasta9. 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 9este 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 Q3Q2Q, Qo = 1001, se verifica starea tastei 9.

Page 73: Circuite digitale

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 Q3Q2 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 "tastaapasata". Totodata, aceasta ie~irea este folosita ~i pentru lncarcarea codului de seleqie tasta In blocul dememorie 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, (vezifigura 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 codurilorde seleqie avem nevoie de un semnal cu frecventa Intre 10kHz dOOkHz. Obtinerea acestui semnal se poate face printr-unproces de divizare In frecventa a semnalului dat de oscilatorul de pe macheta de !aborator cu CPLO, oscilator ce genereaza unsemnal digital cu frecventa de 25,175MHz. Spre exemplu, daca alegem 0 divizare In frecventa cu 210 =, se obtine un semnal cufrecventa de 24,584kHz.

architecture arh_tastatura of tastatura issignal cod sel:std_logic_vector(2 downloO);

I signal cod mem: std logic vector (2 downto 0);signal test: std_logic; -hegin-- proces pentru divizare ceasdlVlzare: process Ip_clk_ln)variable cnt: std _logic_vector (9 downto 0) ;begin

if p clk in'event and p clk in='l'cnt - cnt + 1; - -

end if;cod sel(2 downtoO) <= cnt(9 downto7);end process divizare;-- proces pentru selectie tastaselectie: process (cod_sel)begin

case cOd_sel iswhen "000" => testwhen "001" => testwhen "010" => testwhen "011" => testwhen "100" => testwhen "101" => testwhen 11110" => testwhen "Ill" => testwhen others => test

end case;end process selectie;atrb: process (cod_sel)begin

if test = '1' thencOd_mem <=ccd_sel;p_tap <='1';

else----------------------~---

Seqiune dedicata descrierii entitatii. In cazul de fata:- nume entitate este: tastatura;- vector de intrare cu 8 componente ptr. conectaretaste: p_taste;

-intrare de ceas: p_clk_in- ie~ire ptr. semnalizare cod tasta verificata:p_cod_sel;

-ie~ire ptr. semnalizare cod tasta apasata:p_cod_mem;

- iesire de semnalizate tasta apasata: D__siQnal'Seqiune dedicata descrierii arhitecturii.

I In cazul de fata:- se folosesc trei procese.

• Procesul divizare:- este folosit pentru divizarea semnalului de intrare

cu frecventa de 25,175MHz.procesul este sensibil doar la p_clk_in ;constanta de divizare este 210 deoarece se folose~eun numarator pe 10 biti;codu! de se!ectie tasta este preluat direct de ia celmal importanti trel biti ai numaratorului cnt;

• Procesui selectie :este folosit pentru seleqia tastei a carei staretrebuie verificate;procesul este sensibil doar la cod_sel;starea logica a tastei este copiata In semnalul test,fiecare cod de seleqie alege 0 alta tasta de intrare;

• Procesul atrb:este folosit pentru comanda semnalelor externe(cod selectie, codul ultimei taste apasate,semnaiizare tasta apasata) ;procesul este sensibil doar la cod_test;

CodulVHDL-- Exemplu dR implementare tastaturalibrary IEEE;use IEEE.std logic 1164.all;

entity tastatura isport (P_l:aste:in std_logic_vector(7 downto 0);p_cod sel:outstd_logic_vector(2 downtoO);p_cod mem:out std_logic_vector(2 downto 0);p_tap: outstd_logic;p_clk in : in std_logic);end tastatura;

<= P taste(O);-<= p- taste(l);<= p- taste(2);<= p- taste(3);<= p taste(4) ;<= p- taste(S) ;<= p- taste (6) ;<= p taste(7) ;-

<= '0' i

Page 74: Circuite digitale

Fi~ierul de constrangeritastele sunt implementate cu comutatoareleSW1+SW8;

1

__ codul de seleqie se afj~eaza pe LED-urile LD1+LD3;codul ultimei taste apasate se afi~eaza pe LED-uriieL6+LD8;semnalizarea evenimentului tasta apasata se facepe LDS;

p_tap <='0';end if;-pin_cod _mem<=cod _mem;pin_cOd_sel<=cod_sel;

end process atrb;end arh tastatura;NET "p_taste<O>" LOC - "P37";NET "p_taste<1>" LOC = "P40";NET "p_taste<2>" LOC = "P43";NET "p_taste<3>" LOC = "P45";NET "p_taste<4>" LOC = "P47";NET "p_taste<5>" LOC = "P50";NET "p_taste<6>" LOC = "P52";NET "p_:aste<7>" LOC = "P54";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 continuasau 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 atastei ~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 preluatepe 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 caracteristicanormala?Poarta NAND de la !ntrarea numaratorului poate fi Inlocuita cu 0 poarta cu caracteristica normala ? Cilte intrarisunt necesare pentru aceasta poarta 7 Care este starea logica de la ie~irea portii atunci cand 0 tasta estementinuta 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 pentrutrecerea de la 0 tasta la alta); De ce toate LED-uriie din blocul de semnalizare luminoasa a codului tasteiselectate 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 mentinutaapasata?

Page 75: Circuite digitale

CPo IUS 93

CP1 ao 0, O2 a3

12 9 8 11

. Bloc de semalizare

Ioptico a coduluibinar al tasteiverificate

L-__t t t t

Iesire de se:nmalizl\Te ttasta. apasata(activa LOW)

~ 200Seinlloliz4re opticaft evenil18ntului-taste. apasatn·

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

A.. Verificati codul VHDL din exemplul prezentat In seqiunea 2.2. pe macheta de laborator ;;i raspundeti la urmatoareleIntrebari:

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 aevenimentului tasta apasatii. Ce observatii putep face In legatura cu numarul de semnalizari ale aceleia;;i tasteapasate?

B. Modificati codul VHDL prezentat In seqiunea 2.2. astfe! (ncat procesul de scanare a restului de taste sa fie oprit atuncicand 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 clculatorelectronic 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 SW8nu 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 rezultatulmaxim al adunarii este 8).Imediat dupa pornire se afi;;eaza 0 iar dupa apasarea unei taste se afi;;eaza operandul sau opera1;ia sau rezultatuloperatiei. Pentru afi;;area operatiei se va aprinde segmentul tal afi;;ajului.

©

Page 76: Circuite digitale

Lucrarea este destinata prezentarii principalelor modalitati de afi~are a informatiei numerice, cu referi concrete la unsistem de afi~are cu 4 cifre zecimale ce funqioneaza pe principiul multiplexarii In timp. Studiul acestui sistem de afi~j se face Indoua variante: 0 prima varianta se bazeaza pe implementarea eu eireuite logice de complexitate medie iar cealalta variantapresupune 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 ideecare 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), acestafolose~te toate regulile sistemului de numeratie zecima/dar scrierea (reprezentarea In sistemul de calcul) se face In binar. eualte cuvinte, In codul BCD, fiecare cifra zecimala este lnlocuita de scrierea sa binara pe 4 bitL Codul BCD s-a dovedit atat de utilIndlt 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 prezentatedlteva aspecte semnificative:

Cod BCD Cod binar natural

Conversia spre 9 3 1001 0011 2 = lx27 +Ox26 +Ox25 +lx24 + Ox23 +~,..----"---o, +Ox22 +lx2' +lx2° =

sistemul zecimal 1001 00 11= 93 10 =128 +16+2+1=4710I

19310 =i10000102

Rezultatul se obtine prin Impartiri succesive la 2193:2=96 rest 1

1 9 3 96:2=48 rest 0 IConversia din

~---... ...---, ~I

48:2=24 rest 0193'0 = 0001 1001 0011 I

sistemul zeomal BCD 24:2=12 rest 0

I12:2= 6 rest 06:2= 3 rest 0

I3:2= 1 rest 11:2= 0 rest 1

Cea mai lotalnita metoda de afi~are a unui numar zecimal consta 10 aprinderea sau stingerea convenabila a unorsegmente a~ezate dupa conturul cifrei 8. Cele 7 segmente pot fi realizate eu orice surse luminoase ee pot fi controlate prinmijloace 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 douavariante: 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 foststudiate 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

f /--;j b Modul de osezare

e/-:-i c a celor 7 segmente

•••••••

D /23LJ557B!3RbCdEF

.abcdefg

Schema electTica a unui afisaj cu aood comun

abcdefg

~f&! Aparitia cifielor zecimale prill aprinderea sauSd,-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

Page 77: Circuite digitale

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 areduce 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 cafiecare cifra zecimala are propriul sau decodificator BCD-7segmente, iar informaiia ce trebuie afi!iata (spre exemplu rezultatulunei masuratori) trebuie sa fie Tn format BCD.

AC ,- AC J AC I AC ,-

m;; sute zed- l- t-...., -, -,.-abcdefg iJbcdefg iJbcdefg

m3m2 m. moCod BCD penlrucitra rniiJor

Cod BCD pentTvcifta 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 dinafi§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 decomportamentul ochiului uman: daca frecvenja de stingerejaprindere i1 unei surse luminaase este peste 0 anumitalimitii (denumita va/aare critical, achiul percepe respectivil surs;; ca fiind aprinsa in permanenti!i. In urma studiilorefectuate de speciali'lti, .;-a constatat ca aceasta valoare limita este aproximativ 46Hz. In tehnica, din motive de siguranta, seconsidera 0 valoare de 50Hz. Aceasta partieul3ritate a ochiului uman este exploatata de multe sisteme tehnice, cele maicunoscute 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 maideparte 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 50HZ). 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 delucru 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 coduribinare 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 cazulde fata 5ms (vezi Figura 4).

Tranzistoarele pnp din ftgura 3 sunt folosite pe post de comutatoare electronice, ele cupleaza sau decupleaza anodulcomun 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).

Page 78: Circuite digitale

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 jarsaturarea 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 fiecaremoment de timp, vom avea COclrun singur tranzistor saturat iar restul vor fi blocate. Aceasta inseamna ca numai un singurdigit din afi~aj este ccnectat la popul pozit.v al tensiunii de alimentare.

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

IE )1 I: , I I

stat~Q~Q~r~tor~, 00 1,--0-1--j :1.0 i :i.:L t 00 ~---~ ~ I I 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 lasaturarea tranzistorlllui Q3 ~i la blocarea celorlalte. A?adar, la polul pozitiv al sursei de alimentare este conectat doar digitulde 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~irileun 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 cadigitul de unitari sa primeaSC:3mdul BCD 31unitatil-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 I1alemultiplexoarelor 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 cainformatia de zeci va fi afi~c.ta pe taate cele patru 2fi~aje . .Acest lucrJ nu se lntampla deoarece, a~ dupa cum am aratatanterior, 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 asemnalului de ceas, starea nllmaratorului se 5ehimba ~i devine Q1QO =10, ceea ee 7nseamna ca se activeaza dig/tul desute. ~ cum se alata ~i 7nngura 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 primescaceia~i informatie de seleq/e. Flecare multiplexor extrage bitul CLi aceia~i pondere din codul de mil, de sute, de zecirespectiv de unitat,.

Afi~area dinamica, denurnita uneori ~i afiiare multiplexata, prezinta avantajul unui consum energetic mai mic ~i necesitaun 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 itaintra rea In saturaiie a tranzistoarelor.

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

Page 79: Circuite digitale

m2 3ml

53 Cod BCDsute I51 52

23 Cod BCDzeclz21u3 Cod BCD

ul Uz

t unitati t + t + t '"- S110l;l.I213 S110l;l.I213

~

S1 10111213 If S, '0"""So MU: 4:1 ~ So MU; 4:1 So

MUX4:1 r So MU;4:1Q1 r y

QOt +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 decomponente necesare afi~arii dinamice (figurile 4 ~i 5), se obserJa un necesar mal mare de componente pentru afi~areadinamica. Din simpla contorlzare a numarului de componente se poate trage concluzia gre~ita ca afi~area dinamica esteneeconomica. In reaJitate, complexitatea a 4 decodificatoare BCD-/'segmente este mult mai mare dedit complexitatea restuluide componente ce intervin in afi~area dinamid'l. A~adar, necesarul de arie dintr-un circuit integrat este mai mlc pentru afi~areadinamica decat pentru afi~area statidi, in r!llS mai apare ~i avantajul unui consum energetic mai redus atunci cand discutam deafi~rea dinamldl.

2.4. Descrierea unui sistem de afi$Bre cu ajutoru! VHDL- conceptul de descriere ierarhicaDin experienta proiectanjilor de sisteme logice 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 setrece la proiectarea In detaliu a fiedlrui bloc in parte.

In cazul utilizikii Iimbajelor de descriere hardware, cum este Oil cazul VHDL, proiectarea lerarhidl presupune utiHzareaunui 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 structurasistemului. Pentru aceasta scop, SP. poate folosi un fi~ier de tip VHDL sau 0 descriere grafica a schemei bloc, prinintermediul editorulul de scheme.Mal tnulte componente de niveJ redus (low level). Flecare bloc functional din componenta scheme! bloc estedescris 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 informatieinumerice din Figura 3. Pentru 3 putea fi implementata in CPLD, schema bioc trebuie pUlin modificata pentru a tine cont departicu!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 defrecventa care sa primeasca la in,rare un semna! digital cu frecventa de 25,1751'<1Hz~i sa fumlzeze la ie~lre unsemnai 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 peunu logic;comanda segmentelor se face prin zero logic => ie;;irile decodificatorului BCD/7 segmente trebuie sa fie active pezero 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 fumizaInformatie 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 deafi~re. Din exemplul de descriere de mai jos se observa ca fiecare bloc functional este introdus prin intermediul unei declaratiide tip component.

I Observatii --·-----[COdul VHDL pentru schema blocSeqiune dedicat'a0' 'incl"ud'er'ii'd'eli"'b'ra"r'il' , library IEEE;

use IEEE. std_logic_1l64. all;use IEEE.std_)oglc arlth.all;use IS8E.std logic unsigned.all;entit}' afisaL 4:!ig isport (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; - -

Page 80: Circuite digitale

Seqiune dedicata descrierii arhitecturii.Fiecare bloc funqional este introdus printr-odeclaraye de tip component;Pentru fiecare componenta trebuie intradus unfi;ier separat Tncare se descrie funcpa logicarealizata (se poate face apella orice metoda dedescriere admisa);Denumirea intrarilor ;1 ie~irilor trebuie sa fie ac€ia~iin declararea componentei ~i in descriereafunetionarii acesteia;Lega"turile dintre componente (blocuri funqiona!e)se face prin intermediul semnalelor;Pentru intrarile sau ie~irile blocurilor funqionale(componentelor) ce sunt conectate direct laintrarile sau ie~irile arhitecturii de nivel Inait,definirea de semnale nu mai este necesara;De~i nu este recomandata, mai ales pentruincepatori, este permisa ~i deelararea decomponente ce contin doua sau mai multeblocuri funct;ionale;Declararea componentelor ;i a semnalelor trebuiefacuta Inainte de begin-ul arhitecturii;Pentru fiecare instanta a unei componente sedeelara modul de conectare a intrarilor ~i a ie~irilorprin pori map;

architecture arh_afisaj 4dig of afisaj_4dig iscomponent divizor

port (Un : in std_logic;I_oul outstd loglc );

end component;component nr_binar

port (nr_e1k . in std _logic;nr_out:outstd_logic_vector(l downto 0);

end component;component ded

port (sel_ded : in std _loglc vector (1 downto 0);dCd_out:outstd_logic_vector(3 downto 0);

end component;component bed_7seg

port(bcd_in:instd_logic_vector(3 downto 0);out_7seg_oul:outstd~logic_vector(6 downto 0);

end component;component b!oe_mux

port ( u, Z, 5, m : in std _logic_vector (3 downto 0);sei_mux:instd_logic_vector(l downto 0);mux_out:outstd_logic_vector(3 downto 0);

end component;signal s_div, s_bcd : std-,ogic;signal s_num: std-'ogic_vector(l dmmto 0);signal s_bcd: std_logic_vector(3 downto 0);begin

bioc1: divizorport map (Un => pin_elk, Cout =>s_div);

bloe2: nr_binarport map ( nr_c1k => s_dlv, nr_out =>s_num);

bloc3: dcdport map ( sel_dcd => s_num , ded_out =>pin_act_dig);

bloe4: bloc muxPOI"l map (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"'-"-acrha::: isaj 4dig;

Dupa introducerea ~i salvarea aeestui fi~ier, fereastramediului WebPaek ee indica sursele implicate In prolect arataea In figura alaturata.

Se observa ca mediul de dezvoltare a aplicatiei aseslzat prezenta a 5 componente ;;i acum asteaptaintroducerea unei modalitati acceptate pentru descriereafunqionarii fiecarei eomponente.

Pentru a introduce codul VHDL pentru blocul demultip!exoare, este necesar sa facem dublu e1ie pebfcc_rnux, iar din fereastra apik:Jt3 sa alegem optiuneaVHDI. Module, In continuare mediul WebPack ne cere saintraducem denumirea ~i tipul intrarilor ~i ie;;irilor din modul.Dupa aceasta, se genereaza un template in care nol nu maitrebuie dedit sa descriem funqionarea respectivului circuilsau bloc logic.

• Fj~ieru! bfoc_mux. vhtl, este folosit pentrudescrierea funqionarii blocului de rnultiplexoare din figura 3.D descriere posibila este prezentala In tabelul de mai jos.

ObservatiiSeqiune dedicata Ineluderii de librarii

~------------ -----Seqiune dedicata descrierii entitatii.

Denumirea ;i dimensiune intd3rilor ;;1a ie~irilor trebuiesa fie identica cu cea declarata In fi~ieru! principal(afisaL4dig);

end ccompo:

end cc om.p 0:

Corful VHDL pentru blocul de multi lexoarelibrary IL:::;:;;use IEEE.std_logic_1164 .all;use IEEE. std_logic_arith.all;use IE~E. -'5td logic unsigned. all;entity bloe_mux isport (u, z, s, m : in stdJogic_vector(3 downto 0);

sel_mux: in std_logic_vector(1 downto 0);mux_out : out std_logic_ vector(3 downto 0));

end bioc mux;l---architecture arh_mux of bloc_mux is: begin

_______ with seLmux select

Page 81: Circuite digitale

nUltiPlexoare;- Pentru combina!ia de sleqie 00 se alege codul

unitatilor, pentru combina!ia 01 codul yecilor, etc.;

Lucrarea nr. 10: Sisteme de afiJare a informapei numerice

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 lacare sunt conectate intrarile, respectiv ie~irile afi~ajului.

Pentru a introduce fi~ierul de constrangeri se alege: Project --f NewSource --f Implementation Constrains File --f se alege un nume pentru fi~ier,spre exemplu abc --f se face asocierea cu fi~ierul principal afisaL 4dig --f sealege Finish. In urma acestor opera!ii In fereastra surselor implicate in proiectapare 0 noua componenta abc.ucf.

Oaca se face dublu dic pe abc.ucfse lanseaza un utilitar care ne ajutasa editam fi~ierul de constrangeri. Din fereastra aparuta se selecteazil tabul Ports.Oupa aceasta a!egere, pe ecran apare Iista porturilor de intrare ~i de ie~ire alesistemului digital proiectat de noi. Pentru fiecare port trebuie sa specificam pinulCPLD-ului unde dorim conectarea respectivu!ui port, aceasta presupunecompletarea coloanei denumita Location. Dupa completare se face 0 salvare afi:?ierului de constrangeri.

Trebuie avut grija ca numarul pinului completat in coloanaLocation sa corespunda cu schema hardware a machetei de laborator.Pentru acesta este absolut obligatoriu sa consultati tabelul de conexiuniprezentat in anexe.

Tinand eont de schema electriea a machetei de laborator, pentru afi~ajulpe 4 digi!i descris anterior, con!inutu! fi~ierului de constrangeri este prezentat pecoloana alaturata.

NET "pin_act_dig<O>" LaC = "P70";NET "pin_act_dig<1>" Lac = "P68";NET "pin_act_dig<2>" Lac = "P66";NET "pin_act_dig<3>" Lac = "P63";NET "pin_act_seg<O>" LOC = "P39";

''NET "pin3ct_seg<1>" LOC = "P41";NET "pin_act_seg<2>" Lac = "P44";NET "pin_act_seg<3>" Lac = "P46";NET "pin_acLseg<4>" LOC = "P48";NET "pin_act_seg<5>" Lac = "P51";NET "pin_act_seg<6>" Lac = "PS3";NET "pin_s<3>" Lac = "P37";NET "pin_s<2>" Lac = "P40";NET "pin_s<1>" Lac = "P43";NET "pin_s<O>" Lac = "P45";NET "pin_u<3>" Lac = "P47";NET "pin_u<2>" Lac = "PSO";NET "pin_u<1>" Lac = "P52";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 0etapa de implementare (Implement Design) - in care circuitul logic deja sintetizat este amplasat In CPLD tinand cont deresurseie 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 nicio interllentie din partea utilizatoruiui).

Pentru generarea fi~ierului de configurare, in fereastra resurselor se alege fi:?ierul principal (afiuL 4dig) iar Infereastra proceselor disponibile pentru acest fi~ier se face dublu dic pe optiunea Configure Device (iMPACT). In ferestre eeurmeaza se aleg urmatoarele optiuni: Configuare Devices -t> Next --f Boundary Scan Mode --f Automatically connect tocable ••• --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 vaapare 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 dintredecodificatoare ~i afi~aje ~i montarea altora intre Vcr 5: anodul comun. Este posibilil 0 astfel de abordare? Care ar fiinconvenientele ?

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, cemodifidiri 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

Page 82: Circuite digitale

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 tranzistorulQ3 jar ie;irea T comanda tranzistorul Q2. Cum trebuie conectate codurile BCD de la intrarea blocuJui de multiplexoarepentru ca informatia de intrare sa fie afi~ata corect ?Care este schema logica realizatii cu porti NAND ce poate lnlocui decodificatorul binar ce comanda bazatranzistoarelor?Care este intervalul maxim de timp (In cazul eel mai defavorabil) dintre modificarea informatiei de intrare !ii afi!i2reaefectiva a modificarii 7

Care este efectul vizibil daca se intrerupe legatura dintre ie!)irea Qs a numaratorului !)i intrarea de seleqie B adecodificatorului binar?

OscilatorRB

I IiZ4

ci~ 5Ip"J" III HiS!3 Afis.je

ClI anodcamun

I~J

Uo Cod BCDu3 uni tati

- fa Cod BCDz3 zeci

~o Cod BCDs3

,ute

~O Cod BCDm3 !Iii

Bloc de switch -uripentru introducereainformatiei 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 7Poarta NAND Cl1 CClracteristid:ide transfer de tip trigger Schmitt poate fi lnlocuita cu 0 poarta NAND cu caracteristicanormala ? Dar cu un inversor ell car"cteristic;j trigger S:hmitt?Explicati funqieonarea ceasului mantHI (Pl, Bl, C2, R9 poarta i~ANDeu caracteristica de tip trigger Schmitt) ?Cum a fost imDlem~ntat numaratorul binar pe 2 bi~;7 Ce rol au rezistentele RZO~i R21 7Se poate inlocui numarato'ul oin schema 6 ClI un circuit speciaiizat (spre exemplu 7493) fara a modifica restulschemei?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 trecereade la 0 cifra la alta);Plasati comutatorul K pe pozitic b!ii ac.~ionatlasupra tutonului Bl, urmari~ secventa de aprinderea a cifrelor de peafi!)aj;

Page 83: Circuite digitale

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 Inordine crescatoare, numerele zecimale de la 0 la 9999. Numaratoarea va fi ciclica, dupa numarul 9999 se relncepe de lazero.

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 caobservatoru/ sa aiba timpu/ necesar sa observe (pe afi~aj) succesiunea stari/or. Pentru aceasta, 0 sugestie ar fi samigoram 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/ dupacare In sens descrescator de la 777 la 133.

©

Page 84: Circuite digitale

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 structuride 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 logiccombinational.

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

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

2. 1. Clasificarea automatelor sincronea) 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 aparimediat 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~irilecalculate.

Pentru autornatele Mealy imediate, rnodificarea intrarilor are efect imediat asupra ie~irilor ceea ce Inseamna camodificarea 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 mcdificareaintrarilor. Intrarile ce se modifica In tactul t, afecteaza starea curenta a automatului din tactul t+ 1, care mal departedetermina schimbarea ie~iriior tot In tadul t+ 1. Deci, la ie;;ire, efectul intrarilor este resimpt cu 0 lntarziere de 0perioada 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 destare. Inscrierea se face la tactul urmator al ceasului atunci cand se presupune ca regimul tranzltoriu este stins. Inacest mod, fata de cazul automatelor imediate, la cele cu intarziere, se mai adauga 0 7ntarziere suplimentara de untact. Astfel ca raspunsui unui automat Mealy cu intarziere apare dupa un tact, iar pentru un automat Moore cuIntarziere dupa doua.

Page 85: Circuite digitale

REGISTRUDE

MEMORIE

FUNCllADE

tESIRE

ClC 1FUNCllASTARI! excitatie

URMA TOARE Y'·· :JJj>F

ClC 1FUNCllASTARII

URMATOARE

F

FUNCllADE ,.

IESIRE IG

REGISTRU iesireDE •

MEMORIEREGISTRUDE

MEMORIE

I------,

ClC 1 I F·ri ! stare

I prezentaFUNCllA excitatie REGISTRUSTARII _:':",:n"'~1 DE

URMATOARE MEMORIE

FUNCllADE

IESIRE

G

iesireFU~~l1A •• RE~I~TRU.

IESIRE MEMORIE

A.) Graful de tranzitie a starilorEste 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 corespundetranzitiei 7ntre doua stari

11/010/0

Inlror!-~

~O

o8/ Ft1rm.!igr~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

Page 86: Circuite digitale

In cazul automatelor de tip Mealy, In cerculet se trece mdDI starli, iar pe arc se tree variabilele de intrare ceprovoadi 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 valoareale;;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 stariiorInformat;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, Intabele de tranzitie se arata In tabelele ce urmeaza.

Tabelul de tranzifie a star/lor corespunzator grafului dinfig. 2. b)

IrstCl-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-'

Q, Qo : X QI Qo : Y• GO I 0 OJ; a~-----------'"T------- -----------r-----

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

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

Studiul funqionarii unui automat elementar dat se nurne;;te analiza. Analiza unui automat are drept scopdeterminarea 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 intrarenotata X; doua ie~iri notate Zl, ZI1~; un reg'stru de stare format din doi bistabili D, eeea ce lnSeamna ea automatul are eel mult4 stari distincte.

EtaDa ~~---r--'--- Observa IiPasul 1: Determinarea siHnr.'afelo ••.dt~ excitatie iI

bistabililor Pent-u aLtomatului din fig. 3, semnale de exeitat;ie suntPrin semnale de excitatie sunt reierite 5EmflOiele.aplieate calculate de cele doua cireuite combination ale delimitate euintrarilor pasive ale :::stab;!ilor (::J ;:lentrJ bistabili D, JK linie punctata ~i au urmatoarele expresii logiee:pentru bistabili JK, etc.). Un sf:rmal dE exeita~ie estesintetizat cu ajutorul unui CLC ee are drept intrari starea , Ix Q I Ix Q Ieurenta ~i intrarile :3utomatului. Odata delimitat acest I D = !-., D = ~CLC se trece la descrierea sa matematidl. I IQI Qu I () x Q 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

Page 87: Circuite digitale

Pasul3: Determinarea ecuatiilor de tranzifie astarilorEcuatiile de tranzitie a starilor se obtin prin lnlocuireasemnalelor de excitatie, determinate la pasul 1, In ecuatiafunqionala a bistabilulu: scrisa 'r. p3sul 2.

Pasul4: Alcatuirea tabe/ului de tranzifiePentru fiecare stare prezenta a automatului, se determinastarea urmatoare In care v-a ajunge automatul luand Incalcul totalitatea combinatiilor variabiielor de intrare.

Pentru automatul luat ca exemplu, exista 0 singuravariabila de intrare r:2~a CP. lrD;?mn'3 c3 tabelul detranzitie va contine 4x2 linii.

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 : IQ+ = I~~I

Pentru exemplul considerat obtinem:

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 seopre~e.I~irea z1 semnalizeaza prin "unu logic" atingerea starii m!nime, iar zO atlngerea starii maxi me a numikatorului In cod Graype 2 biti.

o--roll011>-'-~~.

1

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

• Descrierf:C1 ferma/a a fimctionarii autoJT.'i!tuluiAeeasta 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 cuprinse 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 automatuluiDin 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, ~ideei pot fi lnlocuite eu una singura, daca ele r,u se pot deosebi prin inspectarea star!i eurente ~i a celei urmatoare. Trebuieremarcat 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 Mealyaceasta 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 Incare atat ie~i:ile cat ~: :>tariie ';rmiitoare ale autornatului nu au niei c semnifieatie pentru aeesta. In tabelul tranzitiiloraeeste 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 conditiarealizarii de echivalente lntre stariie urmatoare, "tintite", de starile initiale A si B.

Page 88: Circuite digitale

Lucrarea nr. 11: Studiu/ ~iimp/ementarea automate FSM

Exista metode automate de reducere a starilar Insa sunt mal putin utilizate de proiec'"..anti, deoarece In bazaexperientei 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~ereanumarului de stari poate simplifica proiectu!.

• Asignarea starilor automatuluiIn 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 unanumit criteriu. Deoarece exista mai multe posibilitati de codare a starilor, vor exista tot atatea variante de scheme logice derealizare, echivalente funqional dar deosebite ca mod de interconectare. Este greu de estimat care schema logidi, dintre ceieposibile, 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 cuvariatie minima sau codarea cu dependenta redusa faia de intdki.

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

Codificarea cu dependenta redusa fap; de intrari. Funciiile de tranzitie ~icele de ie~ire depind atat de stareacurenta cat ~i de intrari. Pe caile de tranzitie neconditionate nu se testeaza njci a variabila de intrare, In schimb pe celeconditionate se poate ajunge la testa rea tuturor variabilelor de intrare. Codificare care conduce la expresii ale funqiilor detranzitie 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 strictla codarea binara naturala;schimbarea codului unei sUlri prOVOCiCamodi ficarea Intregii scheme logice a automatului;aeolo unde este posibil, se recorr,anda separarea din setul variabilelor de stare a bitilor, sau a grupurilor de biti, cusemnificatie precisa referitoare la schimbarea ie~irilor automatului;

• AIa1tuirea tabelulu; de tranzitie / ;efireDupa 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 acesteietape, problema se reduce la implementarea unor funqii binare, funqiile de excitatie a bistabililor ~i funqiile de ie;;ire aleaLltomatului.

~Deducerea eC!Jilfiilor tunC/iilof' de excitatie if a celor de ieiireDin 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/uiRezultatul 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 funqionalecu 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 prindeclaratii concurente.Registrul de stare trebuie sa fie descris In mod obligatoriu printr-un proces decJan~at de semnalul de ceas ~jeventual (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 inprocesul 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 alu~urintei de proiectare, mai ales pentruincepatori, se recomanda descrierea cu trei procese. Din punct de vedere alperformanielor circuitului rewltat 'in urma sintezei, I'n Iiteratura de speciaiitate se arata ca este mai avantajoasa descrierea cudoua 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:

Page 89: Circuite digitale

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 maljOs:

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 cusau 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;intrarea de ceas : elk;intrarea de ~ergere: reset;intrarile automatului: data_in;!e§irea automatu!ui: dati:_olJt;afi~are stare automat: atis stare,

Se~une dedieata descrierii arhitecturii.In cazul de fatii:

numele arhiteeturii este: arh_comport;arhitectura este asoeiata eu entitatea: mealy;starile automdtului sunt introduse printr-o enumerare,eodifiearea prpriu-zisa este lasata pe seamacompilatorului;sunt folosite 3 proeese: reg_stare pentru descrierearegistrulUlde stare, st_ viit pentru determ:nare stareviitoare ~i iesire pentru determinarea ie~irilorautomatului;graful de funqionare al automatului este:

Observa~i referitoare la proeesul reg_stare:este folos;t pentru a deser;e fund;ionarea registruluide stare al automatului;lista de senzitivitati euprinde ;ntrarea de cezs ~iintrarea de reset;intrarea de reset este activa pe unu logic;intrarea de ceas este activa pe tranzitia pozitiva;

Observatii referitoare la procesul .~t_viit:este folosit pentru a determina starea viitoare aautomatului;lista de senzitivitati cuprinde starea prezenta ~iintrarile automatului;starea vi;toare a automatuJui depinde de stareaprezenta ~ide intrarile autQmatului;selegia duoa starea prezenta se face prin declaratii

enti~ moore isport (e'_k, reset: in std logle;data_out: outstd_logic;afis stare:Out std logic vector (2 downto 0);data=in: irL 5td_l;gic_v~ctor (1 do•.•.nto 0));end moore;architecture arh_ comport of moore is~pe st val is (stO, stl, st2, st3, st4);signal;tare_prez, stare_viit: st_val;begin--- proces ptr. registrul de starereg_stare: process (elk, reset)beginif (reset ~ '1') then

stare_prez <= stO;elsif (elk ='1' andelk'event) then

stare_prez <= stare_viitienti if;",,1(1 pl"Ocess reg stare;-- proees ptr~ calcu1 stare viitoare~t "llt: process (stare_prez. data_in)begincase stare_prez iswhen stO =>

case data in iswhen "00" => stare viit <= stO;when "01" => stare viit <= st4;when "10" => stare viit <= stl;when "11" =:.c> stare viit <= st2iwhen others => null;

end case;when st1 =>

case data in iswhen "00" => stare_viit <= stO;when "10" => stare_viit <= st2;when others => stare_viit <= st1;

end case;when st2 =>

case data in iswhen "00" => stare viit <= st1;when "01" => stare viit <= st1;when "10" => stare viit <= st3;when "11" => stare viit <= st3;when others => null;

end case;when st3 ~>

case data in iswhen "01" => stare viit <= st4;when "11" => stare viit <= st4;when others => stare viit <= st3;

end case;

Page 90: Circuite digitale

when, iar seleq!a 7n funqie de intra rile automatuluise face cu deciaratii de tip case;

Observapi refer!toare la procesul iesire:este folesit pentru determinarea ie~irii automatului pebaza star!i prezente a automatului;Iista de senzitivitat! cuprinde doar starea prezenta aautomatului;

Observapi referitoare la afi~area star!i automatului:afi!iarea starii este necesara doar din considerentedidactice;7nacest exemp!u, codificarea starilor este facuta decomplilator - 7n consecinta nu !itim ce asocier! a facutacesta;propunem urmatoarea combinape pentru a vizualizaschimbarea starilor (este ca !ii cum am calcula un nouset de ie!iiri din automat):

stO ~ 111;st1 ~ 001;st2 ~ 010;st3 --+ 011;st4 -> 100;

when st4 ~>ease data in is

when nl1" => stare_viit <= st4iwhen others ~> stare viit <~ stO;

end case;when others ~> stare viit <= stO;end case;end process st viit;-- proces ptr. calcul iesiri-- depind doar de stare a prezentaiesire: process (stare prez)begin -case stareyrez is

when stO => data out <= '1';afis-=-stare <=11111";

when st1 => data out <= '0';afis-=-stare <=""001";

when st2 => data out <= '1';afis-=-stare <="010";

when st3 => data out <= '0';afis-=-stare <="011";

when st4 => data out <= '1';afis--=-stare <="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;iiSeqiune dedicata includerii de Iibrarii

I, Seqiune dedicata descrierii entitatii. In cazul de fata:- nume entitate este: moore;- intra rea de ceas : clk/

I -_ intrarea de !itergere: reset;intrarile automatului: data_in;

I - ie!iirea automatului: datil_aut;- afi~are stare automat: afis stare;Seqiune dedicata descr!erii arhitecturii.In cazul de fata:- numele arhitecturii este: arh_comport;- arhitectura este asociata cu entitatea: moore.

i - sunt folosite 2 procese;

Observatii referitoare la procesul reg_stare:este foloslt pentru a descrie funqionarea registruluide stare al automatului;!ista de senzitivitati cuprinde intra rea de ceas !iiintra rea de reset;intra rea de reset e5te activa pe zero logic;intrarea de ceas este activa pe tranzitia pozitiva;

i Codul VHDL-- Exem~lu de automat Moore cu 5 starilibrary ieee;use ieee.std logic 1164.all;

entity moore isi port (elk, reset: in std_logic;

Idata out: outstd_logic(l downtoO);afis_stare: out std_1ogic(1 downto 0);data in: in std logic vector (1 downto 0»;end moore;architecture arh comport of moore is I

subtype st_val is std_1ogic_vector(1 downto 0);slgnalstare_prez, stare_viit: st_val;constantstA: st va1:='00'·constant stB : st_ val: =' 01' ;

constant stC : st_ val:~' 10' ;begin-- proces ptr. registru1 de starereg_stare: process (clk, reset)beginif (reset = '1') then

stare_prez <= stA;alsir (c1k ='1' andclk'event) then

stare_prez <= stare_viit;eml if;end process reg_stare;

-- ?roc:es ptr. CLC·~o:r:J: process (stare_prez, data_in)

Page 91: Circuite digitale

Observa~i referitoare la procesul comb:este folosit pentru a determina starea viitoare aautomatului;!ista de senzitivitati cuprinde starea prezenta ~iintrarile automatului;starea viitoare a automatului depinde de stareaprezenta ~i de intrarile automatului;

Observatii referitoare ia calculul ie~irilor :se folosesc doua asignari concurente, acestea sedesfa~oara In paralel cu procesele.

Ob5erva~i referitoare la afi~area starii automatului:afi~area starii este necesara doar din considerentedidactice;In acest exemplu, codificarea starilor este impusa denoi, deci este cunoscuta;

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;

end case;end process eomb;---asignari cocur~nte ptr. iesiridata_out (1) <='1' when stare_prez =stB else '0';data out(O)<='O' when stare prez =stA else '1';afis=stare<= stare~Drez; -~ afisare stareend arh _comport;

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 ObservatiiSeqiune dedicata induderii de librarii

ISeqiune dedicata descrierii entitatii. In cazul de fata:I - nume entitate este: mealy;I intrarea de ceas : elk;

intrarea de ~tergere: reset;intrarile automatului: data_in;ie~irea automatului: data_out;

Seqiune dedicata descrierii arhitecturii.In cazul de fata:

sunt folosite 3 procese: reg_stare pentru descrierearegistrului de stare, styiitpentru determinare stareviitoare ~i iesire pentru determinarea ie~irilorautomatului;

Observatii referitoare la procesul reo_stare:este folosit pentru a descrie funqionarea registruluide stare al automatului;!ista de senzitivitatl cupnnde intrarea de ceas $iintrarea de reset;intrarea de reset este activa pe zero logic;intrarea de ceas este activa pe tranzitia pozitiva;

i Codul VHDLI -- Example of a 5-state ~1ealy FSM

Ilibrary i eee;use ieee.std logic 1164.all;

I enMy mealy isI port (I clkr reset: in std loglc;

data_out: outstd_logic;ar.cs stare:Out stdloglc_vector(l downto 0);data_in: in std_logic_vector (1 downto 0));

end meal y;architecture arh _comport ofmealy istype st val is (stO, st1, st2, st3, st4);signal stare prez, stare viit: st val;bl\gin - -

-- proces ptr. registrul de starereg_stare: process (clk, reset)beginif (reset = '1' j then

stare prez <~ stO;elsif (cl k 'e;ent and c1k =' 1 ') then

stare_prez <= stare_viit;el1c if;I3rd process reg stare;

-- ?roces ptr. determinare stare viitoarest viit: process (stare_prez, data_in)

Page 92: Circuite digitale

Observatii referitoare la procesul st_ viit :este folosit pentru a determina srarea viitoare aautomatului;lista de senzitivitati cuprinde sta.-ea prezenta $iintrari!e automatului;starea viitoare a 211tomatuiui depinde de stareaprezenta $1de int-arile dutomatului;seleqia dupa starea pp~zenta se face prin deciaratiiwhen, ic::rselect!,. In ::mqie de intrarile automatuluise face cu declarc.tii de tip case;

Obser/api referitoare ia procesu\ iesire ;- este folosit pentru determinarea ie$irii automatului pe

baza starii prezente ~i a intrarilcr automatului;lista de senzitivitat,i cuprinae starea prezenta ;jiintrarile automatu:ui;

Observatii referitoare !a atl~area starii automatului:afi~rea starii este necesara doar din considerentedidactice;codificarea binara a starilor SO,51, S2, 5'3, S4estelasata pe seama compilatorului <1eVHDL;propunem urmiitoarea combilliqe jJentru a vizualizaschimbarea starilor (este ca ~i cum am calcula un nouset de ie$iri din o'_,r.omat):

50~) 111; 51 -) 001; 52 -) 010;53 --'> 01:'.; 54 -;. lOa;

begincase stare _prez iswhen stO =>

case data_in iswhen "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 iswhen ;'00" => stare_viit<= stO;when "10" => stare viit<= st2;when others => stare_viit<= stl;

end cllse;when st2 =>

case data in iswhen "00" => stare_viit<= stl;when "01" => stare_viit<= stl;when "10" => stare_viit<~ st3;when "11" => stare viit<= st3;when others => null;

end case;when st3 =>

case data_in iswhen "01" => stare viit<= st4;when "11" => stare viit<= st4;when others => stare_viit<= st3;

end case;when st4 =>

case data in iswhen "1111 => stare_viit<= St4iwhan others => stare_viit<= stO;

end case;w"'",n others => stare_viit<= stO;end case;end process ~l_viit;

-- proces ptr. calcu1 iesire din automatiesire: process (stare_pre?, data_in)begincase stare_p:::ez iswhen stO =>

ca$~ 0uta _in is"i~ien "00 II => data out <= '0 I iwhen others => data out <= '1';end case;

when stl => data out <= '0';afis ~tare<= "OOlN;

when st2 ~>aIis scare<= "GIOu

;

case data in iswhen ';-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<= \\100H;

case data in iswhen ';-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;

Page 93: Circuite digitale

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 figura6.

l.-.y-I

CLC pentrucalcul stareviitoare

l.-.y-IRegist.rudestare

l.-.y-I

CLC pentrucalculiesira ~

CLC pentrucalcul starevii toare

~Rcgistrudestare

~CLC pentrucalculiesire

A. Folosind metodologia de proieetare a automatelor sincrone determinati schema logic3 a unui numarator sincronbidireqional 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-odivizare prealabila a frecventei.

©

Page 94: Circuite digitale

NR.CRT.

$1

(AND)

I ~1- NU

I (NAND)

II SAU

I (OR)

SIMBOL IA--[>o-V

I~'I ~:[)-V

:V-II A --r--..p- .,

I B;;' Ij

i

TABEL DEADEVAR

~y =ABo 0 0o 1 01 0 a1 1 1

"-"_I Y • ABo 0 1o 1 11 0 I 11 1 I 0

I

A BIY=A+Bo 0 0o 1 11 0 11 1 1

'A '\".. II SAU -' -\\ ..•••••• y I

IEXCLUSIV i B -It./ '(XOR) : =El- I

! I,

SAU - i, A ~I EXCLUSIV ;: B~ yI NEGAT i

(XNOR) i =E}- !

A B f=AC:BB,-- _._-a 0 0o 1 1

1 0 I 1110

mBY=AC:BBo 0 1o 1 0 ,1 0 0I _1 _':.._1 __ 1 _ I

!I "Realizeaza negarea variabilei de intrare;

'

" Realizeaza functia de minim a variabilelor deintrare." Funqionare:

I-dad! A=O atunci y=o (poarta blocata);daca A=l atunci Y=B (poarta deschisa);

i " Exista porti AND cu 2,3,4 sau 8 intrari.i

iI

II • Realizeaza inversul funetiei logice de la punctul 2.

• Exista porti NAND cu 2,3,4 sau 8 intriki.

iI

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

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

, • Maduri de interpretare:i - realizeazil adunarea modulo dOl;

- funepe de anticoincidenta;! - funepe de complementare comandata:

- daca A=O atunci Y=B- dadi A=l atunci Y= B

Page 95: Circuite digitale

Anexa 2: Formele canonice ale funetiilor binareForma 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 primeiforme canonice, denumita ~i forma canonidi disjunctivii;

prin utilizarea unui produs al tuturor maxtermenilor pentru care funqia binara prezinta valoarea "0"- cazul celeide-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 unulogic.

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 deinh-are iesire

Linie X MINTERMEN MAXTERMEN Yx3 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-IDS = X3'X2,x15 1 0 1 MS = X3+X2 +X1 0 1

6 1 1 0,

m6=xS-x2-x.l Me=x3+x2+xI 0 0, i? 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: _ _ _

Ixs,xrxl IY2=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;CS1X2IXj

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 variabilelcrde intrare ~i nu depind de valorile de ie~ire ale funC1;ieilogice.Din analiza expresiilor celor doua forme canonice se observa ca, de~i descriu acelea~i funC1;ielogica, cu dlt 0forma 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 devalori "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.

Page 96: Circuite digitale

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 modificareaie~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 TS1MBOL

~

~

2. Bjstabilu!..!i~tip D51MBOL

lD Qr-U

3.Bistabilul de tip SRj &~BOL

:flQ, CK

: R Q

4.lJistabiful de tip JJ(51MBOL

t}Q-CKK Q

T Qn Qn+!

o 0 0o I I1 0 II I 0

0 Qn Qtl+!0 0 00 1 01 0 11 I 1

T Qn Qn+!

0 Q Q

1 Q Q

D Qn Qn+l

0 Q 0

1 Q 1

S R Q~ Q~+!

0 0 0 0 I0 0 1 10 1 0 I 00 1 1 01 0 0 11 0 1 11 1 0 ?1 1 I ?

T Q

0 rnemorare1 basculare

t:tlliQ

o 0

I 1

S R Q

0 0 memo rare0 1 01 0 11 1 ?

FDRME ALE T.••..BELUUJI DE ADEV}:.R

~o 0 Q Q

o 1 * 0o 1 0 *' 11 1 1 Q Qo1o * don't care (poate fi zero logic sau unu logic)

J K Q

0 0 Imemorare0 1 01 0 t1 1 baoculare

Bistabilii realizatii In structuri integrate prezinta, pe langa intrarile specifice, una sau doua intriki ce sunt tratateprioritar. Aceste intrari, cand sunt activate, permit aducerea fortata a bistabilului intr-o stare logica In mod independent desemnalul 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,

Page 97: Circuite digitale

Resursa Pin CPLDXC95108

OSC P9(25,175 MHz)LD 2 P1BTNl P2

I I XC95108BTNl P56BTN 2 PS7BTN 3 P58BTN 4 P61BTN 5 P83

--

I ISwitch-uri Pin CPI.DXC95108

SWI P37SW2 I P40SW3 P43 !

SW4 P45I SW5 P47! SW6 PSGI SW7 PS2I SW8 P54 I

I XC95108LDl P62 iL02 P6S ILD 3 I P67LD 4 I P69 iLD S P7ILD 6 P75LD 7 P8GL08 P82

Activare Pin CPl.DXC9510S

P63P66P68P7G

Pin CPLDXC9510S

P39P41P44P46

CE P48CF PSICG P53

KCLKKDAT

Pin CPlDXC95108

P35P33

SemnaleVGAI

Pin CPLDXC9510S

HS I P34HV I P36R I P24G I P26

I B I P32