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