Sunteți pe pagina 1din 7

1

PROIECTAREA CIRCUITELOR NUMERICE


CU STRUCTURI PROGRAMABILE DE TIP PLD



1. Scopul lucrrii
Prezentarea structurii unui circuit integrat programabil CPLD (Complex
Programmable Logic Device) de ultim generaie i implementarea unor sisteme
numerice prin programarea circuitului, folosind un calculator PC performant i un
produs software dedicat acestei aplicaii.

2. Aparate necesare
- calculator compatibil Pentium, minim 500MHz, minim 128MB RAM
- mediul de programare ISE (Integrated Software Environment)-versiunea
6.1i, furnizat de firma Xilinx, instalat pe o platform Windows 2000 (SP2
sau SP3) sau XP. Programul poate fi instalat i pe sistemele de operare
Linux sau Solaris.
- modulul Digilab XCRP, echipat cu circuitul integrat XCR3064XL.
- alimentator de reea pentru modulul Digilab XCRP.
- cablu de conectare a modulului cu calculatorul pe portul paralel.

3. Consideraii teoretice
Un circuit CPLD este format dintr-un ansamblu de circuite PLD separate,
realizate pe acelai cip i nsoite de o structur de interconectare programabil care
folosete cu eficien maxim suprafaa cipului. Circuitul integrat CPLD de tipul
XCR3064XL, fabricat de firma Xilinx, conine 64 macrocelule programabile (o
macrocelul conine pori programabile, multiplexoare i un bistabil) i 1500 pori
logice care pot fi utilizate pentru configurarea structurii numerice pe care o dorim.
Circuitul se alimenteaz cu o tensiune redus de 3,3V, avnd un consum de curent
nesemnificativ la joas frecven, dar care poate atinge 30mA la frecvena maxim
posibil de circa 200MHz.
Modulul Digilab XCRP, furnizat de firma Digilent, conine un circuit integrat
XCR3064XL montat n soclu. Capsula are 44 pini, 4 dintre ei fiind conectai la Vcc, 3
la GND, iar 5 sunt destinai semnalelor de programare, conform standardului JTAG
IEEE 1149.1. Restul pinilor ajung la un conector de expansiune prin care putem cupla
alte circuite externe, dar i la dispozitive intrare-ieire amplasate pe plac: exist 4
butoane cu revenire (pushbuttons) i 8 comutatoare cu meninere (slide switches) prin
care se pot aplica intrri numerice circuitului, dar i 8 LED-uri i nc 2 cifre de
afiaj cu 7 segmente pe care putem vizualiza ieirile numerice ale circuitului. Mai
exist i o intrare de ceas (CLOCK) pe care se aplic semnalul generat de un
oscilator local cu trigger Schmidt, semnal a crui frecven poate fi ajustat cu
ajutorul unui poteniometru multitur n limitele 0,5Hz 4KHz.
Alte informaii despre modulul Digilab XCRP, inclusiv schemele electrice
complete i conexiunile circuitului CPLD cu dispozitivele intrare-ieire amplasate pe
plac, se gsesc n anexa de la sfritul lucrrii.
2


Fig.3.1 Interfaa programului Project Navigator

Lansarea n execuie a mediului ISE se face prin programul Project Navigator,
care prezint starea proiectului aflat n lucru prin cele 4 ferestre care se pot vedea i n
exemplul din figura 3.1: o fereastr care permite listarea fiierelor surs ale
proiectului, o fereastr care indic diverse procese parcurse n elaborarea proiectului
aici s-a cerut vizualizarea modelului VHDL, model care apare n fereastra din dreapta
i o consol care furnizeaz informaii despre buna desfurare a procesului curent.



Fig.3.2 Editorul grafic de scheme logice Xilinx ECS
3
Sursa proiectului poate fi un fiier *.sch, care conine schema logic a
circuitului, editat n fereastra Xilinx ECS (vezi figura 3.2), sau un fiier *.vhf, care
conine modelul VHDL al circuitului. n figura 3.2 s-a prezentat coninutul fiierului
laborator.sch, care reprezint schema logic a proiectului ce urmeaz s fie
implementat n circuitul integrat XCR3064XL, prin programarea conexiunilor
necesare din structur.
Dup cum se poate observa din figura 3.2, simbolurile logice sunt grupate pe
categorii (Counter, Decoder, Flip_Flop, Latch etc.). Categoria Logic conine
diferite tipuri de pori logice: and2 este poart I cu 2 intrri, iar and2b1 este tot
poart I cu 2 intrri, dar una din intrri este inversat. Selecia simbolului dorit din
list i poziionarea lui pe suprafaa de lucru se face cu ajutorul mouse-ului, iar
interconectarea intrrilor/ieirilor se face cu opiunea Add din meniul principal,
urmat de Wire.
Dup salvarea schemei ntr-un fiier *.sch, se alege din lista de procese
opiunea Check Design Rules i, dac nu sunt erori de interconectare, atunci se
iniiaz i procesul View VHDL Functional Model, care verific sintaxa limbajului
prin compilarea sursei *.vhf .
Urmtorul proces din list este Create Timing Constraints. El trebuie
iniiat, dar dac nu avem probleme speciale de timing, atunci putem s nu completm
nimic n fereastra respectiv. Urmeaz Assign Package Pins, un proces foarte
important, care atribuie fiecrui semnal de intrare/ieire din schem cte un pin
disponibil. Procesul lanseaz interfaa Xilinx PACE, reprezentat n figura 3.3.
Fereastra din dreapta indic configuraia pinilor circuitului integrat (vedere de sus), iar
fereastra din stnga ofer lista semnalelor de intrare/ieire din circuit. Conectarea
acestor semnale la pinii circuitului se face manual, n conformitate cu specificaiile
plcii Digilent XCRP date n anex (tabelul 3 de la pagina 7/7). CLK este intrarea de
ceas, SW1, SW2 i BTN1 sunt intrri numerice, LD1 LD8 sunt cele 8 ieiri
numerice pentru LED-uri, iar AA AG sunt ieirile pentru segmentele afioarelor.
.



Fig. 3.3 Asignarea pinilor circuitului integrat cu ajutorul lui Xilinx PACE
4


Fig. 3.4 Vizualizarea conexiunilor dintre blocurile componente cu Xilinx ChipViewer

Semnalele CIFRA1 i CIFRA2 sunt ieiri n contratimp, destinate activrii alternative
a celor dou cifre de afiaj cu 7 segmente, pentru multiplexarea n timp a informaiei
afiate.
Procesul Fitter Report furnizeaz informaii asupra alocrii resurselor
disponibile pentru implementarea proiectului nostru. Astfel, din cele 64 macrocelule
disponibile n circuitul integrat XCR3064XL se folosesc 43, adic un procent de 67%,
din cei 224 termeni produs (mintermeni) se folosesc 87, adic un procent de 39%, din
cele 64 bistabile (registers) existente n macrocelule se folosesc numai 28, adic 44%,
iar din cei 32 pini liberi ai capsulei circuitului integrat se folosesc 21, adic 66%.
Raportul furnizeaz i alte informaii legate de timpii de propagare, puterea consumat
sau ecuaiile funciilor binare implementate. Pentru exemplul considerat de noi,
raportul are 10 pagini. Prima pagin a raportului este dat la pagina 8.
Procesul View Fitted Design lanseaz Xilinx ChipViewer, care permite
vizualizarea conexiunilor dintre diverse blocuri componente ale circuitului integrat. Se
pot vedea conexiunile fiecrui pin n parte cu blocurile din structur, conexiunile
tuturor intrrilor sau conexiunile tuturor ieirilor. Ecranul din figura 3.4 arat 3
ferestre deschise: lista semnalelor, gruparea pinilor dup categorii (de alimentare, de
programare a cipului, de intrare, de ieire), interconectarea intrrii SW1 cu alte blocuri
din circuit i interconectarea blocurilor interne.
Se poate simula funcionarea circuitului, pentru a stabili dac funcioneaz aa
cum dorim, folosind un simulator propriu integrat sau programul ModelSim de la
firma Mentor.
Ultimul proces necesar pentru programarea circuitului integrat este Configure
Device (iMPACT), care programeaz circuitul amplasat pe placa Digilent, conectat
la calculator printr-un cablu paralel JTAG. Dup generarea fiierului JEDEC pentru
proiectul nostru, se stabilesc opiunile de programare i circuitul se configureaz
conform schemei dorite. Mesajul Programming Succeeded garanteaz succesul
programrii. Din pcate, aceast operaie poate fi repetat numai de circa 1000 ori.
5
4. Modul de lucru
4.1. Se studiaz modulul Digilab XCRP i Digilab XCRP Reference Manual
din anex, identificnd amplasarea subansamblelor descrise n figura 1. Se studiaz
descrierea funcional a modulului i conectarea lui la portul paralel n vederea
programrii. Se studiaz funcionarea oscilatorului, modul de conectare la circuitul
integrat CPLD a comutatoarelor numerice de la intrri, a LED-urilor de la ieiri,
precum i afiarea prin multiplexare n timp a celor dou cifre ale afiajului cu 7
segmente. Se urmrete alocarea pinilor pentru interconectarea circuitului integrat
XCR3064XL la elementele de circuit de mai sus, urmrind tabelul 3 de la pagina 7/7
i schemele electrice ale modulului Digilab XCRP.

4.2. Se lanseaz n execuie Project Navigator, se alege un fiier *.sch din
proiectul curent i se vizualizeaz schema logic n editorul de scheme. Se parcurg i
celelalte procese discutate la punctul 3, fr a reprograma circuitul integrat.

4.3. Se verific funcionarea automatului finit cu o intrare, descris n lucrarea
de laborator Automate finite. Organigrama care descrie funcionarea circuitului este
dat n figura 4.1, iar schema logic, implementat cu bistabile D i multiplexoare
aa cum a fost programat n CPLD, este dat n figura 4.2.

A
B
C
X
X
Y1=1
Y2=0
Y1 = 1
Y2 = 0
Y 1 = 1 Y1=1 / Y2=0 Y1 = 1
Y2 = 0
Y2 = 0
Y1 = 0
Y1 = 0
Y2 = 1
0 1
0 1
Q1Q2
00
11
01

Fig. 4.1 Organigrama care descrie funcionarea automatului finit



Fig. 4.2 Schema logic a automatului finit cu o intrare
6
Observm c multiplexoarele mai au n plus o intrare de ENABLE, notat cu E
i care se conecteaz la 1 logic. Semnalul de intrare X se aplic prin butonul cu
revenire BT1, iar starea sistemului Q
1
Q
2
este afiat pe LED-urile verzi LD1 i LD4,
n timp ce ieirile sunt afiate pe LED-urile roii LD7 i LD8. Poziiile comutatoarelor
cu meninere sunt SW1 = 0 i SW2 = 0 .

4.4. Se verific funcionarea semaforului, care este un automat finit fr intrri.
Este destinat semaforizrii unei intersecii simple, fr sincronizare cu semnal de la
alte intersecii. Grupul de LED-uri LD1-LD3 este destinat unui sens de deplasare, iar
grupul LD4-LD6 este destinat celuilalt sens, perpendicular pe primul. Schema logic a
circuitului aa cum a fost programat n CPLD, este dat n figura 4.3. Semnalul de
ceas CLK este aplicat numrtoarelor de divizare numai dac intrarea SW2 = 1.
Numrtorul CB2RE conine 2 bistabile i divizeaz frecvena ceasului de 4 ori.
Semnalul rezultat este aplicat numrtorului CB4CE care conine 4 bistabile. Fiind
necesare numai 12 stri, la apariia combinaiei Q
3
Q
2
Q
1
Q
0
= 1100 pe ieiri, se aplic
un semnal de RESET pe intrarea de resetare asincron a numrtorului. Primele 4 stri
comand rou pe o direcie (LD3) i verde pe cealalt (LD4). Urmtoarea stare
determin plpirea culorii verzi. Urmeaz o alt stare pentru galben (LD2 i LD5)
pentru ambele direcii. Alte 4 stri comand verde pe prima direcie (LD1) i rou pe
cealalt (LD6). Din nou urmeaz plpirea culorii verzi pentru cealalt direcie i
galben pentru ambele direcii. Decodorul cu pori de la ieire este destinat generrii
funciilor binare care comand aprinderea sau stingerea LED-urilor. Cele 2
multiplexoare prin care se aplic semnale LED-urilor verzi LD1 i LD4 au fost
introduse pentru c am avut nevoie de aceste LED-uri i pentru circuitul descris la
punctul 4.3.



Fig. 4.3 Schema logic a semaforului

4.5. Se verific funcionarea numrtorului cresctor cu 2 cifre BCD, care este
i el un automat finit fr intrri. Schema logic a circuitului aa cum a fost
programat n CPLD, este dat n figura 4.4. Circuitul funcioneaz atunci cnd
SW1 = 0. Dac SW1 = 1, atunci numrtoarele sunt resetate i afiajul indic 00.
Semnalul de ceas CLK este divizat prin 2 cu ajutorul bistabilului FD, ale crui ieiri
complementare se aplic ieirilor CIFRA1 i CIFRA2. O jumtate din timp este
aprins prima cifr a afiajului, iar n cealalt jumtate din timp este aprins a doua
.
7


Fig. 4.4 Schema logic a numrtorului cresctor cu dou cifre BCD

cifr. Frecvena suficient de mare a ceasului comparativ cu persistena pe retin a
imaginii creaz iluzia afirii simultane a celor dou cifre, dei ele sunt afiate pe rnd,
procedeu care se numete multiplexare n timp (vezi pagina 5/7 din anex). V putei
convinge de acest lucru micornd frecvena ceasului din poteniometrul multitur.
Frecvena mare a ceasului este divizat n continuare de 1024 ori, folosind un
numrtor cu 8 bistabile, cu simbolul CB8RE, i unul cu 2 bistabile, cu simbolul
CB2RE, conectate n cascad. Semnalul rezultat este cel care se aplic celor dou
numrtoare BCD de tipul CD4CE, care numr n sens cresctor. Ieirile acestor
numrtoare se aplic pe rnd, prin multiplexare, unui decodificator BCD-7segmente
realizat cu pori, pentru c aceast funcie nu exist n biblioteca de simboluri a
programului folosit de noi.

4.6. ncercai s realizai un proiect nou, construind o nou schem logic
ntr-un fiier *.sch i s parcurgei toate procesele necesare implementrii n CPLD.
nainte de lansarea procesului Configure Device (iMPACT) cerei acordul cadrului
didactic pentru reprogramarea circuitului XCR3064XL.

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