14.06.2014 Views

1 Descrierea sistemului de dezvoltare cu CPLD XC9572XL (Xilinx)

1 Descrierea sistemului de dezvoltare cu CPLD XC9572XL (Xilinx)

1 Descrierea sistemului de dezvoltare cu CPLD XC9572XL (Xilinx)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Descrierea</strong> <strong>sistemului</strong> <strong>de</strong> <strong>de</strong>zvoltare <strong>cu</strong> <strong>CPLD</strong> <strong>XC9572XL</strong> (<strong>Xilinx</strong>)<br />

Sistemul <strong>de</strong> <strong>de</strong>zvoltare <strong>cu</strong> <strong>CPLD</strong> <strong>XC9572XL</strong> a fost realizat în scop didactic, pentru<br />

înţelegerea modului <strong>de</strong> <strong>de</strong>zvoltare a aplicaţiilor pe baza cir<strong>cu</strong>itelor <strong>CPLD</strong>. Acest sistem <strong>de</strong><br />

<strong>de</strong>zvoltare a fost conceput pentru a permite ilustrarea unor aplicaţii care implică sinteza<br />

combinaţională şi /sau secvenţială, <strong>cu</strong>m ar fi: afişare pe o cifră sau afişare <strong>cu</strong> multiplexare pe 4<br />

cifre (digiţi) <strong>de</strong> tip LED 7 segmente, utilizarea (<strong>cu</strong> scanare) unei tastaturi matriciale <strong>de</strong> 2x2 taste,<br />

citirea a 8 intrări numerice prin intermediul unui DIP switch <strong>cu</strong> 8 comutatoare, comunicarea <strong>cu</strong><br />

un PC prin intermediul portului paralel, generarea unei un<strong>de</strong> <strong>cu</strong> modulare în durată (PWM), etc.<br />

1. Schema bloc<br />

Schema bloc a <strong>sistemului</strong> <strong>de</strong> <strong>de</strong>zvoltare este prezentată în figura 1. Blo<strong>cu</strong>l <strong>de</strong> alimentare<br />

trebuie să furnizeze două tensiuni <strong>de</strong> alimentare 5V şi 3.3V. Tensiunea <strong>de</strong> 3.3V este tensiunea<br />

standard <strong>de</strong> alimentare a cir<strong>cu</strong>itelor din familia XC9500XL, iar tensiunea <strong>de</strong> 5V este folosită la<br />

alimentarea celorlalte cir<strong>cu</strong>ite.<br />

Bloc alimentare<br />

5V<br />

5V<br />

Bloc afişare pe 4 digiţi<br />

5V<br />

Oscilator<br />

7<br />

4<br />

Conector port paralel<br />

8<br />

3<br />

Interfaţă port<br />

paralel<br />

3.3V<br />

8<br />

2<br />

3<br />

Cir<strong>cu</strong>itul<br />

<strong>CPLD</strong><br />

<strong>XC9572XL</strong><br />

8<br />

2<br />

2<br />

Tastatură <strong>cu</strong><br />

două linii şi două<br />

coloane<br />

Bloc ieşire PWM<br />

V JTAG<br />

Conector JTAG<br />

Bloc presetare<br />

octet - Switch8<br />

Figura 1. Schema bloc a <strong>sistemului</strong> <strong>de</strong> <strong>de</strong>zvoltare <strong>cu</strong> <strong>CPLD</strong> <strong>XC9572XL</strong><br />

Sistemului <strong>de</strong> <strong>de</strong>zvoltare este construit in jurul cir<strong>cu</strong>itului <strong>CPLD</strong> <strong>XC9572XL</strong> produs <strong>de</strong><br />

firma <strong>Xilinx</strong>. Blo<strong>cu</strong>rile prezente în jurul acestuia permit implementarea aplicaţiilor amintite mai<br />

sus şi vor fi prezentate în continuare. De asemenea va fi prezentată şi o interfaţa standard JTAG<br />

pentru portul paralel, care este folosită pentru configurarea cir<strong>cu</strong>itului <strong>CPLD</strong> şi se conectează la<br />

sistem prin intermediul conectorului JTAG, alimentarea acesteia fiind asigurată <strong>de</strong> din sistemul<br />

<strong>de</strong> <strong>de</strong>zvoltare.<br />

Blo<strong>cu</strong>l <strong>de</strong> alimentare<br />

Blo<strong>cu</strong>l <strong>de</strong> alimentare furnizează două tensiuni <strong>de</strong> alimentare, pe baza unei tensiuni <strong>de</strong><br />

intrare <strong>de</strong> 9V provenita <strong>de</strong> la un alimentator universal (redresor). Tensiunea <strong>de</strong> 5V este obţinută<br />

folosind un stabilizator <strong>de</strong> tensiune <strong>de</strong> tipul LM7805, iar tensiunea <strong>de</strong> 3,3V se obţine din cea <strong>de</strong><br />

5V folosind două dio<strong>de</strong> şi un rezistor. Că<strong>de</strong>rea <strong>de</strong> tensiune pe dio<strong>de</strong> este <strong>de</strong> aproximativ 0,7V,<br />

acestea fiind polarizate direct.. Tensiunea <strong>de</strong> alimentare pentru interfaţa JTAG poate fi <strong>de</strong> 5V sau<br />

1


Figura 3. Oscilatorul extern <strong>de</strong> frecvenţă reglabilă<br />

3,3V şi este selectată prin intermediul unui comutator. Schema blo<strong>cu</strong>lui <strong>de</strong> alimentare este<br />

prezentată în figura 2.<br />

Dioda D1 este diodă <strong>de</strong> protecţie, pentru a se evita alimentarea <strong>cu</strong> polaritate inversă a cir<strong>cu</strong>itului<br />

LM7805<br />

Figura 2 Blo<strong>cu</strong>l <strong>de</strong> alimentare<br />

Oscilatorul<br />

Oscilatorul este realizat din două inversoare TTL-LS, <strong>cu</strong> intrare <strong>de</strong> tip trigger Schmitt, iar<br />

frecvenţa acestuia este reglabilă în plaja 100Hz .. 3kHz. Frecvenţa este relativ scăzută pentru a<br />

evita folosirea unor divizoare suplimentare <strong>de</strong> frecvenţă, iar posibilitatea modificării frecvenţei<br />

<strong>de</strong> oscilaţie este utilă pentru a putea observa modul în care funcţionează aplicaţiile, în<br />

specialafişarea multiplexată pe patru digiţi . Schema oscilatorului este prezentată în figura 3.<br />

Interfaţa <strong>de</strong> comunicaţie paralelă<br />

Interfaţa <strong>de</strong> comunicaţie paralelă permite implementarea unor aplicaţii care implică<br />

transferul <strong>de</strong> date prin intermediul portului paralel între un cal<strong>cu</strong>lator personal şi sistemul <strong>de</strong><br />

<strong>de</strong>zvoltare. Interfaţa permite transferul pe 8 biţi, bidirecţional, <strong>de</strong> tip half-duplex. Interfaţa este<br />

realizată <strong>cu</strong> cir<strong>cu</strong>itul 74LS245 care este un driver bidirecţional tri-state pe 8 biţi (octal). Schema<br />

electrică a interfeţei este prezentată în figura 4.<br />

2


Figura 4 Interfaţa <strong>de</strong> comunicare <strong>cu</strong> portul paralel.<br />

Pinii A1-A8 , B1-B8 reprezintă intrările/ieşirile celor opt buffere ale cir<strong>cu</strong>itului 74LS245.<br />

Activarea ieşirilor bufferelor se face <strong>cu</strong> un nivel logic 0 pe pinul G. Se observă că pinul G este<br />

legat la masă astfel încât interfaţa este 'transparentă', ieşirile fiind tot timpul activate. Direcţia <strong>de</strong><br />

comunicare este dată <strong>de</strong> nivelul logic prezent pe pinul DIR, dacă nivelul pe pinul DIR este '1'<br />

atunci direcţia este <strong>de</strong> la A la B şi invers. Con<strong>de</strong>nsatorul C8 este con<strong>de</strong>nsator <strong>de</strong> <strong>de</strong><strong>cu</strong>plare pentru<br />

cir<strong>cu</strong>itul driver. Interfaţa a fost realizată astfel încât să realizeze o comunicaţie <strong>de</strong> tip EPP. Pentru<br />

aceasta se folosesc patru semnale <strong>de</strong> control după <strong>cu</strong>m urmează:<br />

- Semnalul Wait este semnalul care indică dacă sistemul este pregătit pentru a prelua<br />

datele <strong>de</strong> pe portul paralel sau nu. Dacă nivelul logic al semnalului Wait este '1' înseamnă că<br />

sistemul nu este pregătit să primească datele şi cal<strong>cu</strong>latorul va aştepta până la trecerea acestuia în<br />

0. De menţionat că standardul ECP foloseşte semnalul nWait fapt pentru care este utilizat un<br />

inversor.<br />

- Semnalele DAT şi ADR specifică dacă octetul recepţionat este octet <strong>de</strong> date sau <strong>de</strong><br />

adresă. Dacă semnalul DAT este 1 logic înseamnă că se recepţionează date, iar dacă semnalul<br />

ADR este 1 logic atunci se recepţionează un octet <strong>de</strong> adresă. Semnalele Dat şi ADR sunt semnale<br />

complementare. Semnalele folosite în standardul ECP sunt nDAT şi nADR, fapt pentru care am<br />

folosit inversoare.<br />

- Sensul transferului este gestionat <strong>de</strong> cal<strong>cu</strong>lator şi constă în controlul nivelului logic pe<br />

pinul DIR.<br />

3


Blo<strong>cu</strong>l <strong>de</strong> intrări numerice<br />

Acest bloc este folosit pentru a plasa un vector <strong>de</strong> 8 biţi ca intrări pentru cir<strong>cu</strong>itul <strong>CPLD</strong>.<br />

Blo<strong>cu</strong>l este format dintr-un comutator <strong>de</strong> tip dip switch <strong>cu</strong> opt contacte şi opt rezistoare <strong>de</strong><br />

4,7KΩ, iar schema acestuia este prezentată în figura 5.<br />

Figura 5. Blo<strong>cu</strong>l <strong>de</strong> intrări numerice<br />

Când comutatoarele sunt <strong>de</strong>schise (off) prin intermediul rezistoarelor R21-R28 intrările SW0-<br />

SW7 ale cir<strong>cu</strong>itului <strong>CPLD</strong> sunt aduse în 1 logic. Prin închi<strong>de</strong>rea (on) unuia din cele 8<br />

comutatoare intrarea respectivă este adusă în 0 logic (este conectată la masă). Astfel se poate<br />

forma orice combinaţie <strong>de</strong> 8 biţi care va fi oferită ca mărime <strong>de</strong> intrare pentru o aplicaţie<br />

oarecare.<br />

SW7 are si o utilizare alternativă: poate fi conectat la pinul 8 al comutatorului caz în care va fi<br />

semnal <strong>de</strong> intrare, sau poate reprezenta semnalul <strong>de</strong> ieşire Wait din interfaţa <strong>cu</strong> portul paralel.<br />

Selecţia este realizată prin intermediul lui JP1 : 1-2 SW7 intrare , 2-3 ieşire Wait.<br />

Blo<strong>cu</strong>l <strong>de</strong> afişare pe 4 digiţi.<br />

Blo<strong>cu</strong>l <strong>de</strong> afişare permite afişarea multiplexată pe patru cifre <strong>cu</strong> 7 segmente. Afişoarele<br />

utilizate sunt în varianta <strong>cu</strong> anod comun, <strong>de</strong>ci multiplexarea se va face prin comandă pe anod.<br />

Catozii corespunzători segmentelor <strong>de</strong> la fiecare digit care au aceeaşi poziţie (reprezintă acelaşi<br />

segment) sunt conectaţi împreună, astfel încât dacă toţi cei patru anozi ar fi comandaţi simultan<br />

digiţii ar afişa acelaşi lucru. Pentru comanda segmentelor digiţilor se foloseşte un cir<strong>cu</strong>it driver<br />

<strong>de</strong> putere ULN2803, realizat special pentru cir<strong>cu</strong>ite <strong>de</strong> interfaţă (are un <strong>cu</strong>rent maxim <strong>de</strong> ieşire <strong>de</strong><br />

500mA). Cir<strong>cu</strong>itul constă în 8 perechi <strong>de</strong> tranzistoare NPN, în montaj Darlington. Comanda<br />

driver-ului, care are un caracter inversor, şi a tranzistoarelor <strong>de</strong> pe anozi se face direct <strong>de</strong> ieşiri<br />

ale cir<strong>cu</strong>itul <strong>CPLD</strong>. Schema electrică este prezentată în figura 6.<br />

Tranzistoarele Q1 - Q4 au potenţialul bazei ridicat la 5V prin rezistoarele <strong>de</strong> 5,6KΩ, fiind astfel<br />

blocate când ieşirile SEL0 - SEL3 sunt în starea <strong>de</strong> înaltă impedanţă (High-Z). Tranzistoarele vor<br />

fi în conducţie (saturate) şi segmentele vor putea să fie aprinse atunci când ieşirea <strong>de</strong> selecţie<br />

corespunzătoare va fi în 0 logic (baza este adusă apropape <strong>de</strong> 0V), în acest caz fiind posibila<br />

cir<strong>cu</strong>laţia <strong>de</strong> <strong>cu</strong>rent <strong>de</strong> la sursa <strong>de</strong> 5V în anodul LED-ului. Comanda segmentelor (<strong>cu</strong>rentul <strong>de</strong><br />

comandă) este asigurată, <strong>de</strong> driverul <strong>de</strong> putere ULN2803 ale cărui intrări pot fi comandate<br />

direct <strong>de</strong> cir<strong>cu</strong>itul <strong>CPLD</strong>. Pentru a putea aprin<strong>de</strong> un segment intrarea driverului şi <strong>de</strong>ci<br />

ieşirea numerică corespunzătoare segmentului trebuie să fie în 1 logic.<br />

4


Figura 6 Blo<strong>cu</strong>l <strong>de</strong> afişare pe 4 digiţi.<br />

Rezistoarele R1-R4 limitează <strong>cu</strong>rentul <strong>de</strong> bază al tranzistoarelor şi <strong>cu</strong>rentul absorbit <strong>de</strong> ieşirile<br />

SEL0 .. SEL3 ale cir<strong>cu</strong>itului <strong>CPLD</strong>. Limitarea <strong>cu</strong>rentului prin LED-urilor din segmente se face<br />

prin rezistoarele R14 - R20. Curentul maxim prin LED-uri este dimensionat din consi<strong>de</strong>rente <strong>de</strong><br />

regim dinamic, fiind vorba <strong>de</strong> o valoare medie şi una maximă. Valoarea maximă va fi <strong>de</strong><br />

aproximativ 4 ori mai mare <strong>de</strong>cât valoarea medie (valoarea medie fiind egală <strong>cu</strong> <strong>cu</strong>rentul<br />

nominal), <strong>de</strong>oarece fiecare digit este aprins un sfert <strong>de</strong> perioadă.<br />

OBS. Deoarece nu este utilizat si punctul afişoarelor, rămâne liberă o intrare a driverului<br />

ULN2803 ce poate fi folosită pentru comanda PWM. Comanda se va face <strong>cu</strong> semnalul Wait, ca o<br />

a treia funcţie a acestuia, primele două fiind amintite anterior.<br />

Tastatura<br />

Tastatura este formată dintr-o matrice <strong>de</strong> două linii şi două coloane <strong>de</strong> taste. Deşi pentru<br />

cele 4 taste nu se face nici o economie în ceea ce priveşte numărul <strong>de</strong> pini folosiţi (ar fi necesare<br />

4 intrări pentru citirea directă a celor 4 taste), se poate înţelege modul în care se face o scanare <strong>de</strong><br />

tastatură, indiferent <strong>de</strong> numărul <strong>de</strong> linii şi <strong>de</strong> coloane. De exemplu pentru o matrice <strong>de</strong> 4x4 taste<br />

sunt necesari doar 8 pini şi nu 16, etc. Schema electrică este foarte simplă şi este prezentată în<br />

figura 7.<br />

5


Figura 7 Tastatura<br />

Scanarea tastaturii se face citind valorile semnalelor RND_0 şi RND_1 (intrări)<br />

reprezantînd linia0 respectiv linia1, sincron <strong>cu</strong> plasarea unui 0 logic pe una din coloanele<br />

COL_0, COL_1 (ieşiri). Nivelul logic al liniilor <strong>de</strong> intrare este adus in 1 logic (ridicat la 5V prin<br />

rezistoarele R7 şi R8). În momentul în care se apasă una din taste linia tastei va avea acelaşi<br />

potenţial <strong>cu</strong> coloana acesteia. Dacă s-a plasat un 0 logic pe coloana tastei, linia va avea nivelul 0<br />

şi atunci se poate şti că tasta apăsată este tasta ce se află pe coloana pe care s-a plasat un 0 logic<br />

şi linia care are nivelul 0 logic.<br />

Cir<strong>cu</strong>itul <strong>CPLD</strong><br />

Asignarea pinilor (pinout-ul) cir<strong>cu</strong>itului <strong>CPLD</strong> <strong>XC9572XL</strong> în capsulă PLCC44 (PC44)<br />

este <strong>de</strong>scrisă în figura 8. Cunoaşterea ei este esenţială pentru <strong>de</strong>finirea corectă a conexiunilor<br />

externe în sursa HDL.<br />

Figura 8 Pinout <strong>CPLD</strong><br />

6


Interfaţa <strong>de</strong> programare JTAG<br />

Configurarea (programarea) cir<strong>cu</strong>itului <strong>CPLD</strong> se face prin intermediul unei interfeţe<br />

JTAG standard. Pentru aceasta avem nevoie <strong>de</strong> un modul <strong>de</strong> programare care se conectează pe<br />

portul paralel al cal<strong>cu</strong>latorului şi care este re<strong>cu</strong>nos<strong>cu</strong>t <strong>de</strong> procesul <strong>de</strong> programare. Schema<br />

electrică a programatorului este prezentată în figura 9. Programatorul poate fi folosit atât pentru<br />

configurarea cir<strong>cu</strong>itelor <strong>CPLD</strong> cât şi a cir<strong>cu</strong>itelor FPGA . Bufferele sunt <strong>de</strong> tip 74HC125 care<br />

funcţionează (seria 74HC) la tensiuni <strong>de</strong> alimentare <strong>de</strong> la 2V la 6 V( tensiunile <strong>de</strong> 3,3V si 5V<br />

sunt astfel in gama nominala a tensiunii <strong>de</strong> alimentare). Procesul <strong>de</strong> programare verifică prezenţa<br />

programatorului, după care verifică prezenta cir<strong>cu</strong>itului (sau cir<strong>cu</strong>itelor) conectate la interfaţa<br />

JTAG. Cu ajutorul programatorului se pot configura, se pot şterge sau se pot citi datele <strong>de</strong><br />

configurare din cir<strong>cu</strong>ite. De asemenea se poate verifica dacă datele programate în cir<strong>cu</strong>it<br />

corespund <strong>cu</strong> fişierul <strong>de</strong> configurare, se poate citi un i<strong>de</strong>ntificator al cir<strong>cu</strong>itului sau o sumă <strong>de</strong><br />

control( checksum).<br />

Figura 9 Schema electrică a programatorului JTAG<br />

7


ANEXA<br />

1. Tehnologia <strong>CPLD</strong> (Complex Programmable Logic Device).<br />

Tehnologia <strong>CPLD</strong> adresează se unui domeniu larg <strong>de</strong> aplicaţii <strong>cu</strong> un grad <strong>de</strong> complexitate<br />

mic sau mediu (ori<strong>cu</strong>m mai mic <strong>de</strong>cât la FPGA). Familiile <strong>CPLD</strong> ale firmei <strong>Xilinx</strong> sunt bazate pe<br />

o combinată tehnologie FLASH-EPROM şi RAM. Configuraţia memorată este permanent într-o<br />

memorie FLASH, transferată fiind la punerea sub tensiune (power up) într-o memorie <strong>de</strong><br />

configurare <strong>de</strong> tip RAM similară (oare<strong>cu</strong>m <strong>cu</strong> cea <strong>de</strong> la FPGA). Structura <strong>de</strong> configurare astfel<br />

este nevolatilă.<br />

rezultată<br />

Tehnologia oferă <strong>CPLD</strong> performanţe asemănătoare tehnologiei FPGA pentru aplicaţii <strong>de</strong><br />

complexitate medie, la preţ un <strong>de</strong> cost mai scăzut. În acelaşi timp cir<strong>cu</strong>itele <strong>CPLD</strong> au o reţea <strong>de</strong><br />

interconexiuni <strong>de</strong> fixă lungime (o proprietate a matricii <strong>de</strong> interconectare) ceea ce face ca<br />

sistemele numerice <strong>de</strong>zvoltate <strong>cu</strong> un cir<strong>cu</strong>it să <strong>CPLD</strong> prezinte întârzieri predictibile chiar din<br />

faza <strong>de</strong> proiectare. Întârzierile dintre două fiecare celule logice conţinute în <strong>CPLD</strong> sunt fixe şi se<br />

<strong>cu</strong>nosc. Aceasta se datorează faptului că structura <strong>de</strong> interconexiuni dintr-un <strong>CPLD</strong> este formată<br />

din linii conductoare <strong>de</strong> lungime constantă ce străbat structura cir<strong>cu</strong>itului pe toată lungimea şi<br />

lăţimea acestuia. În contrast <strong>cu</strong> <strong>CPLD</strong>-urile, FPGA-urile au structură o <strong>de</strong> formată<br />

interconexiuni<br />

din segmente care străbat cir<strong>cu</strong>itul, iar capetele acestora sunt conectate <strong>de</strong> o matrice <strong>de</strong><br />

interconectare permiţând să ajungă semnalelor <strong>de</strong> la celulă logică o la alta. Numărul <strong>de</strong> segmente<br />

necesare pentru a două conecta celule logice nu este nici fix şi nici predictibil, <strong>de</strong>ci întârzierile<br />

nu se pot <strong>cu</strong>noaşte după <strong>de</strong>cât ce se face asignarea şi plasarea (după celulelor implementare) .<br />

<strong>CPLD</strong><br />

FPGA<br />

punct fix/întârziere <strong>cu</strong>nos<strong>cu</strong>tă<br />

punct variabil/întârziere ne<strong>cu</strong>nos<strong>cu</strong>tă<br />

În figura este ilustrat modul diferit <strong>de</strong> internă interconectare la cir<strong>cu</strong>itele faţă <strong>CPLD</strong> <strong>de</strong><br />

cir<strong>cu</strong>itele FPGA.<br />

8


Familiile reprezentative <strong>de</strong> cir<strong>cu</strong>ite <strong>CPLD</strong> ale firmei <strong>Xilinx</strong> sunt: XC9500,<br />

XC9500XL, XC9500XV, Cool Runner II, Cool Runner XPLA3. Familiile Cool Runner sunt<br />

<strong>de</strong>stinate unor aplicaţii un<strong>de</strong> consumul propriu să trebuie fie foarte mic şi vitezele <strong>de</strong> funcţionare<br />

să trebuie fie mari. Actualmente (2003) cea mai noua familie <strong>CPLD</strong> <strong>Xilinx</strong> este Cool Runner II.<br />

Seriile XC9500 diferă (XL,XV) între ele prin anumite valoarea tensiunii nominale <strong>de</strong><br />

alimentare a cir<strong>cu</strong>itului propriu-zis (Vcc INT ) şi respectiv ale interfeţei externe (Vcc IO ).<br />

Ele sunt împărţite în diverse clase din punct <strong>de</strong> ve<strong>de</strong>re al frecvenţei <strong>de</strong> lucru (al<br />

timpului <strong>de</strong> propagare) şi sunt disponibile în diverse variante <strong>de</strong> încapsulare.<br />

2. Familia <strong>de</strong> cir<strong>cu</strong>ite <strong>CPLD</strong> <strong>Xilinx</strong> XC9500XL<br />

Familia XC9500XL realizată este într-o tehnologie avansată CMOS (0.35 microni)<br />

FastFLASH şi <strong>cu</strong>prin<strong>de</strong> cir<strong>cu</strong>ite alimentate (Vcc numită INT ) la nominală tensiunea <strong>de</strong> 3,3V.<br />

minimă Întârzierea pin la pin este <strong>de</strong> 5ns, iar internă frecvenţa <strong>de</strong> lucru este până <strong>de</strong> la 200 MHz.<br />

Porturile tolerează I/O semnale <strong>de</strong> intrare provenind <strong>de</strong> la cir<strong>cu</strong>ite alimentate la 5V, 3,3V şi 2,5V<br />

şi sunt să capabile furnizeze semnale <strong>de</strong> ieşire compatibile <strong>cu</strong> cir<strong>cu</strong>ite TTL, sau CMOS<br />

alimentate la 3,3V şi 2,5V.<br />

Alte caracteristici sunt locală inversarea a semnalelor <strong>de</strong> ceas, individuală validarea a<br />

ieşirilor, controlul timpilor <strong>de</strong> front (slew rate), individual pe fiecare ieşire, capabilităţi sporite <strong>de</strong><br />

se<strong>cu</strong>rizare a datelor(protectie la citire, checksum). Cir<strong>cu</strong>itele sunt garantate la peste 10.000 <strong>de</strong><br />

cicluri <strong>de</strong> scriere/ştergere, menţinerea datelor garantată fiind 20 <strong>de</strong> ani.<br />

Familia <strong>cu</strong>prin<strong>de</strong> cir<strong>cu</strong>ite <strong>de</strong> patru <strong>de</strong>nsităţi (ca număr <strong>de</strong> macrocelule), compatibile pin la<br />

pin pentru acelaşi tip <strong>de</strong> încapsulare. Densităţile sunt <strong>cu</strong>prinse între 36 şi 288 macrocelule <strong>cu</strong> 800<br />

respectiv 6.400 <strong>de</strong> porţi utilizabile (codurile sunt XC9536XL, <strong>XC9572XL</strong>, XC95144XL si<br />

XC95288XL). Numărul prezent în cod este <strong>de</strong> fapt numărul <strong>de</strong> macrocelule disponibile.<br />

Cir<strong>cu</strong>itele această din familie sunt disponibile în mai multe variante <strong>de</strong> încapsulare şi<br />

sunt compatibile pin la pin <strong>cu</strong> cir<strong>cu</strong>itele similare ca <strong>de</strong>nsitate din familia XC9500 sau<br />

XC9500XV (pentru acelaşi tip <strong>de</strong> capsulă). Mai această mult, compatibilitate pin la există pin<br />

si intre cir<strong>cu</strong>itele <strong>de</strong> <strong>de</strong>nsităti diferite din aceiasi familie, atunci cand au aceiasi încapsulare.<br />

În momentul în care, din diverse motive, actuală <strong>de</strong>nsitatea nu suficientă este (proiectul nostru nu<br />

„încape” în cir<strong>cu</strong>it), se poate fără trece probleme, la un cir<strong>cu</strong>it <strong>cu</strong> o <strong>de</strong>nsitate superioară,<br />

avand acelasi pin-out.<br />

În tabelele urmatoare sunt prezentate sintetic cir<strong>cu</strong>itele din aceasta familie. În primul<br />

tabel sunt prezentate numărul <strong>de</strong> macrocelule, numărul <strong>de</strong> porti utilizabile, numărul <strong>de</strong> bistabili,<br />

timpii <strong>de</strong> propagare si echivalentă frecventa a <strong>sistemului</strong>.<br />

9


În tabelul următor sunt prezentate variantele <strong>de</strong> încapsulare disponibile pentru fiecare<br />

împreună cir<strong>cu</strong>it, <strong>cu</strong> numărul <strong>de</strong> intrări/iesiri (I/O pins) disponibile pentru variantă fiecare <strong>de</strong><br />

încapsulare.<br />

înglobează Cir<strong>cu</strong>itele un anumit număr <strong>de</strong> Blo<strong>cu</strong>ri Funcţionale (Functional Block) si <strong>de</strong><br />

Blo<strong>cu</strong>ri <strong>de</strong> Intrare/Ieşire (I/O Block) interconectate prin intermediul unei matrici <strong>de</strong><br />

numită interconectare FastConnect II. Fiecare Bloc Funcţional are maxim 54 <strong>de</strong> intrări şi<br />

maxim 18 ieşiri. Fiecare Bloc Funcţional este compus din 18 macrocelule(macrocell). La nivelul<br />

Blo<strong>cu</strong>lui Funcţional implementarea este sumă tip <strong>de</strong> produse, fiind pană disponibili la 90 <strong>de</strong><br />

termeni produs(Product Terms).<br />

macrocelulă Fiecare conţine un bistabil-register (numărul <strong>de</strong> bistabile disponibile este<br />

egal <strong>cu</strong> numărul <strong>de</strong> macrocelule) care poate fi configurat ca fiind <strong>de</strong> tip D sau T sau absent (este<br />

neutilizat), în cazul în care implementată funcţia este pur combinaţională.<br />

Cir<strong>cu</strong>itul <strong>CPLD</strong> <strong>XC9572XL</strong> este format din 72 <strong>de</strong> macrocelule grupate în patru blo<strong>cu</strong>ri<br />

funcţionale, numărul <strong>de</strong> porţi utilizabile fiind <strong>de</strong> 1.600. prezintă <strong>CPLD</strong>-ul caracteristicile<br />

specifice familiei şi anume intrări tolerante la 5V, 3,3V şi 2,5V (V IH ), ieşiri să capabile furnizeze<br />

3,3V sau 2,5V (V OH ).<br />

10


Structura funcţională <strong>de</strong> bază a cir<strong>cu</strong>itului <strong>CPLD</strong> <strong>XC9572XL</strong> este prezentată în figura alăturată.<br />

Puterea disipată poate varia substanţial în funcţie <strong>de</strong> frecvenţa <strong>de</strong> lucru, aplicaţia<br />

implementată şi încărcarea ieşirilor. Pentru a reduce consumul propriu, fiecare macrocelulă dintrun<br />

dispozitiv XC9500 (XL, XV) poate funcţiona într-un mod <strong>de</strong> lucru <strong>cu</strong> putere scăzută (low<br />

power) dacă viteza <strong>de</strong> lucru nu este critică. Macrocelulele neutilizate sunt implicit <strong>de</strong>zactivate,<br />

consumul lor fiind nesemnificativ .<br />

Valorile maxime absolute admise pentru tensiunea <strong>de</strong> alimentare V CCINT sunt între<br />

-0,5V şi 4V faţă <strong>de</strong> masă. Pentru tensiunea <strong>de</strong> intrare V IN valorile maxime admisibile sunt<br />

<strong>cu</strong>prinse -0,5 şi 5V.<br />

Valorile nominale <strong>de</strong> alimentare pentru logica internă V CCINT = 3V ... 3,6V, iar pentru<br />

cir<strong>cu</strong>itele(bufferele) <strong>de</strong> ieşire V CCIO =2.3V.. 3,6V. Astfel cir<strong>cu</strong>itele <strong>de</strong> iesire pot fi alimentate<br />

separat, <strong>de</strong> exemplu la tensiunea nominală <strong>de</strong> 2,5V. Indiferent <strong>de</strong> tensiunea <strong>de</strong> alimentare V CCIO<br />

nivelele <strong>de</strong> intrare sunt V ILmax = 0,8V şi V IHmin = 2V <strong>cu</strong> tensiunea <strong>de</strong> prag a intrărilor <strong>de</strong> cca 1.4<br />

V (compatibilitate TTL). Nivelele logice <strong>de</strong> ieşire sunt V OL = 0 şi V OH = V CCIO (pentru <strong>cu</strong>rent<br />

<strong>de</strong> iesire nul)..<br />

11


În figura următoare este prezentată interfata externă posibilă pentru un astfel <strong>de</strong> cir<strong>cu</strong>it, în<br />

situatia în care (a) V CCIO =V CCINT = 3.3V si respectiv (b) <strong>cu</strong> V CCINT = 3.3V si V CCIO =2.5V.<br />

Configurarea (programarea) cir<strong>cu</strong>itului <strong>CPLD</strong> se face prin intermediul interfeţei<br />

standard JTAG <strong>cu</strong> care se poate programa, şterge, sau (dacă citi nu a fost protejat la citire)<br />

conţinutul datelor <strong>de</strong> configurare. Datele <strong>de</strong> configurare sunt <strong>de</strong>scrise sub forma unui fişier<br />

standard JEDEC.<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!