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

Transform your PDFs into Flipbooks and boost your revenue!

Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.

<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!