2 INTRODUCERE ÎN DOMENIUL CIRCUITELOR LOGICE PROGRAMABILE 2.1 Generalităţi Termenul de circuit logic programabil sau PLD (Programmable Logic Devices) este un termen general care se referă la orice tip de circuit integrat care poate fi configurat de către utilizator pentru implementarea unui proiect. Dispozitivele logice programabile au un rol important în proiectarea digitală, ele punând la dispoziţia proiectantului o structură foarte flexibilă deschisă unui larg domeniu de aplicaţii. Unul dintre cele mai folosite circuite logice programabile a fost memoria de tip ROM programabilă o singură dată (PROM). În figura 2.2. a este prezentată diagrama bloc a unei arhitecturi de tip PROM. Plecând de la această arhitectură s-au dezvoltat ariile logice programabile de tip PLA (Programmable Logic Array) dedicate implementării funcţiilor logice. Combinarea structurii PLA-urilor cu tehnologia PROM a avut ca rezultat dezvoltarea dispozitivelor logice programabile de tip FPLA (Field Programmable Logic Array), care au apărut pe piaţă la mijlocul anilor 70. FPLA-urile au un număr fix de intrări, de ieşiri şi un număr fix de termeni de tipul produs. Avantajul oferit de circuitele din această familie este că atât aria logică de porţi ŞI cât şi cea de porţi SAU sunt programabile (vezi figura 2.2.b). Totuşi acest tip de circuite logice programabile au avut un succes limitat deoarece aveau viteză scăzută de lucru şi erau dificil de programat. Modul de programare consta în alcătuirea unei hărţii de conexiuni care nu prezenta nici o asemănare cu modurile de reprezentare schematic sau prin ecuaţii de tip Boolean folosite în proiectarea cu circuite logice. Logica programată a devenit mai populară la mijlocul anilor 1970 odată cu apariţia ariilor logice programabile de tip PAL-uri (Programmable Array Logic). Acest tip de arhitectură combină o arie programabilă de porţi ŞI cu o arie de porţi SAU fixă (spre deosebire de circuitele PLA la care atât aria de porţi ŞI cât şi cea de porţi SAU sunt programabile). Acest tip de arie a fost îmbunătăţit în mod continuu de diverşi producători. 2.2 Dispozitive logice programabile simple Deşi în ultimi ani arhitecturile dispozitivelor logice programabile (PLD = Programmable Logic Devices) au fost îmbunătăţite, circuitele simple de tip PAL sau PLA aflate în capsule cu 24 pini (ex. 16V8/20V8, 22V10) au devenit un standard industrial. În general circuitele PLD cu densitate redusă de porţi logice (PLA şi PAL), sunt prezente pe piaţă în capsule de 20 sau 44 de pini şi au o densitate cuprinsă
între 100 şi 999 porţi logice. Aceste circuite sunt cunoscute pe piaţă ca şi dispozitive logice programabile simple sau SPLD-uri (Simple PLD). Structura de tip arie logică SI-SAU recomandă folosirea circuitele SPLD pentru implementarea ecuaţiilor logice sub forma sumelor de produse. Unele dintre îmbunătăţirile recente ale circuitelor SPLD sunt: porturi de intrare/ieşire programabile, porturi de intrare/ieşire bidirecţionale, registre de configurare mai flexibile şi o schemă de clock mai flexibilă. Circuitele PLD sunt folosite pentru a înlocui circuitele de tip SSI (Small Scale Integrated) şi MSI (Medium Scale Integrated), un singur circuit PLD poate fi echivalentul a zeci de circuite SSI. Alte avantaje oferite de circuitele PLD sunt: consumul redus de putere, performanţe mai bune datorită lungimi mult reduse a interconexiunilor şi o fiabilitate mai ridicată. Circuitele PLD le regăsim atât în tehnologie bipolară cât şi în tehnologie CMOS. Cu toate ca au o arhitectură simplă şi o densitate mult mai mică decât CPLD-urile (Complex Programmable Logic Devices) circuitele PLD oferă încă suficiente performanţe pentru a rezista pe piaţă, astfel pentru o tehnologie CMOS de 0.5 µm pentru o frecvenţă de 200MHz întârzierile sunt de numai 3.5ns. Circuitele SPLD sunt mai uşor de utilizat, de proiectat şi programat. Produsele care beneficiază de avantajele oferite de circuitele SPLD sunt componentele de reţea care cer performanţe ridicate per ansamblu: hub-uri de reţea bridge-uri, routere. Alte produse vizate de SPLD-uri sunt: sunt cele din zona telefoniei mobile, video game-urilor şi a hand-held web browserelor. Producătorii cu o prezenţă puternică pe piaţa SPLD-urilor sunt: Vantis care este o firmă subsidiară a recunoscutei firme AMD (Advanced Micro Devices), Philips Semiconductors care oferă familia de PLD-uri cu consum redus de putere CoolRunner disponibil pentru aplicaţii 3,3/5V şi firma Lattice Semiconductor care a introdus circuitele GAL20LV8D şi GAL20LV10D de mare viteză şi pentru aplicaţii la 3,3V. Figura 2.2.a Arhitectură PROM 14
Introducere în domeniul circuitelor logice programabile Figura 2.2.b Arhitectură FPLA 2.3 Dispozitive logice programabile de capacitate mare Pentru a depăşii limitările datorate arhitecturi simple a circuitelor SPLD s-a dezvoltat o nouă ramură de circuite logice programabile de mare capacitate, numite CPLD-uri (Complex Programmable Logic Devices) si FPGA (Field Programmable Gate Arrays) care au o arhitectură mai complexă şi mai flexibilă permiţând astfel o alocare mai eficientă a macrocelulelor. În această lucrare prin folosirea termenului PLD se va face referire atât la circuitele SPLD cât şi la circuitele CPLD şi FPGA. Începând cu anul 1985 firma Xilinx Corporation a dezvoltat un nou tip de arhitectură cu denumirea generică LCA (Logic Cell Array), care va servi ca şi prototip pentru următoarele generaţii de arhitecturi FPGA. Noul tip de arhitectură constă dintr-o arie de celule logice independente înconjurată de celule de intrare/ieşire, aria cuprinde de asemenea şi resurse de interconectare a celulelor. În primele tipuri de circuite LCA fiecare celulă logică era alcătuită dintr-o logică combinaţională şi un bistabil. Fiecare celulă de intrare/ieşire poate fi programată ca şi intrare combinaţională sau secvenţială, ca şi ieşire sau ca şi port bidirecţional. În cazul circuitelor CPLD şi FPGA elementele logice mai sunt numite şi macrocelule, blocuri configurabile sau CLB-uri (Configurable Logic Blocks). Aşa cum s-a mai 15
amintit şi într-un paragraf anterior termenii folosiţi pentru a descrie circuitele logice programabile de mare capacitate sun CPLD şi FPGA. Distincţia între cei doi termeni devine din ce în ce mai neclară cu toate că există câteva caracteristici care despart circuitele definite de aceştia. Circuitele din familia CPLD au resurse de interconectare fixe realizate prin intermediul unei matrici de conexiuni. Circuitele CPLD pot fi asimilate ca şi o arie de circuite PLD simple cum ar fi circuitul 22V10. Complexitatea circuitelor CPLD este dată de numărul sporit de pini şi de numărul relativ mare de macrocelule. Figura 2.2 Evoluţia circuitelor SPLD şi CPLD Caracteristica principală a circuitelor PLD, definită de producători este timpul de întârziere la propagarea unui semnal (T pd ) de la o intrare a unui circuit aflat pe pastila de siliciu, la ieşirea acestuia. Valoarea lui T pd în cazul unui circuit CPLD cu 44 pini şi 32 de macrocelule la o frecvenţă de 180 MHz este de 5 ns, în timp ce pentru un CPLD cu 100 de pini şi 128 de macrocelule timpul de întârziere la propagare este de 7,5 ns. În figura 2.2 este prezentată o diagramă care compară performanţele circuitelor SPLD şi CPLD în funcţie de valoarea lui T pd [1]. Până de curând segmentul de piaţă ocupat de circuitele CPLD era unul distinct faţă de cel ocupat de circuitele FPGA. Preţul ridicat al circuitelor CPLD, posibilitatea de a prevedea specificaţiile de timp, precum şi performanţe mai bune de cât a circuitelor FPGA, le recomandă în cazul proiectelor de dimensiuni reduse, dar cu frecvenţă de lucru ridicată. În comparaţie, circuitele FPGA beneficiind de un preţ mai scăzut şi de o densitate mai mare de macrocelule erau optime pentru proiecte de dimensiuni medii şi frecvenţă de lucru nu foarte ridicată. Totuşi, în ultima perioadă, datorită căderi preţurilor la circuitele CPLD, a creşterii capacităţii acestor, precum şi datorită apariţiei unei noi caracteristici cum este posibilitatea de programare în sistem (ISP), a făcut ca cererea CPLD-urilor pe piaţă să fie în continuă creştere. Iată de ce domeniile de aplicaţii ale circuitelor CPLD şi FPGA se întrepătrund. Caracteristica ISP (In-System Programmability) este prezentă la multe familii de circuite CPLD şi oferă posibilitatea ca circuitele CPLD să fie reprogramate chiar şi după montare pe placa de lucru (vezi figura 2.3.a,b). Standardul de programare în 16
Introducere în domeniul circuitelor logice programabile sistem folosit în cazul circuitelor XILINX din seria XC9500 este IEEE1149.2. În cadrul acestui standard reprogramarea în sistem are loc prin plasarea dispozitivelor CPLD în lanţ pentru ca datele să poată fi transmise tuturor dispozitivelor din lanţ conform unui algoritm. Prin programarea circuitelor cu ajutorul algoritmului de testare, circuitul se poate reconfigura în sistem cu o securitate ridicată, protejându-l astfel împotriva decriptării neautorizate. Acest standard face apel la busul JTAG (Joint Tasck Action Group) şi implică următoarele linii: TMS Test Mode Select = selectare mod test; TDI Test Data Input = semnal intrare test; TDO Test Data Output = semnal ieşire test; TCK Test Clock = semnal de clock test. Figura 2.3 Programarea în sistem a circuitelor CPLD Atât circuitele CPLD cât şi cele FPGA pot fi programate prin intermediul unei memorii flash SRAM, dar numai circuitele CPLD pot fi programate ca EPROM sau EEPRO. Aceasta presupune că circuitele CPLD sunt prevăzute cu elemente de stocare nevolatile, care permit aplicaţiilor implementate în CPLD să ruleze imediat ce sunt puse sub tensiune. În contrast cu circuitele CPLD, FPGA-urile care au ca celule de bază memorii de tip SRAM au nevoie de un dispozitiv extern, cum ar fi un EEPROM din care să-şi încarce programul de configurare. De-a lungul evoluţiei circuitelor PLD de capacitate mare s-au distins două arhitecturi: segmented-block-based [SBB] şi channel-arry-based [CAB], pe tot parcursul acestei lucrări se vor folosii abrevierile SBB şi CAB pentru a le definii. Diferenţele majore dintre cele două tehnologii sunt legate de arhitectura macrocelulelor şi de structura reţelei de conexiuni dintre macrocelule. Fiecare dintre cele două arhitecturi prezintă avantaje şi dezavantaje. Un circuit PLD cu arhitectură de tipul SBB (vezi figura 2.4a) este alcătuit în principal din câteva blocuri mari care conţin porţi logice de tipul ŞI/SAU şi o arie de elemente logice conectate la celulele I/O (input/output = intrare/ieşire) prin intermediul unei matrici de interconexiuni programabilă. De această arhitectură beneficiază circuitele CPLD implementate ca şi EPROM-uri sau EEPROM-uri în tehnologie CMOS. 17
Figura 2.4 Diagramă bloc, prezintă arhitectura segmentată (a) şi ne-segmentată (b) specifică circuitelor CPLD O arhitectură CAB (vezi figura 2.4.b) constă dintr-o arie de blocuri logice programabile de dimensiuni relativ reduse înconjurată la periferie de blocuri I/O. Blocurile logice programabile sunt conectate între ele prin structuri de interconectare distribuite. Circuitele FPGA fabricate de firma XILINX beneficiază de arhitectura mai sus menţionată. Avantajele majore ale arhitecturii CAB constau în faptul că: este o arhitectură bazată pe elemente de tip registru, conţine multe blocuri I/O, blocurile logice sunt complet decuplate de blocurile I/O şi există posibilitatea reprogramări conexiunilor dintre acestea. În comparaţie circuitele CPLD bazate pe tehnologia SBB sunt mai rapide şi mai predictibile în ceea ce priveşte determinarea întârzierilor datorită structurii continue de interconectare. Datorită caracteristicilor enumerate mai sus acest tip de circuite este recomandat în cazul implementării aplicaţiilor de control descrise cu FSM-uri (Finite State Machine). Vom continua dezbaterea asupra avantajelor oferite de circuitele CPLD în comparaţie cu circuitele FPGA, luând în discuţie gradul de flexibilitate al fiecăruia dintre ele în cadrul aceluiaşi mediu de proiectare. Datorită faptului că structura CPLD-urilor se bazează pe arhitectura PAL apare posibilitatea de a prevedea întârzierile din circuit, fiind astfel mai puţin afectate de modalitatea de conectare a macrocelulelor decât circuitele FPGA. În cazul acestora din urmă este destul de greu să se prevadă întârzierile din circuit datorită faptului că structura de interconectare este mai flexibilă oferind mai multe posibilităţi de conectare pentru aceeaşi situaţie, stabilirea traseelor dintre diferite blocuri logice fiind foarte dependentă de mediul de proiectare folosit. Pe măsură ce s-a îmbunătăţit arhitectura şi capacitatea circuitelor CPLD şi FPGA, aceastea au devenit o alternativă din ce în ce mai evidentă la ariile de porţi logice. Ultimele tehnologii de fabricare a circuitelor CPLD şi FPGA se încadrează în 18
Introducere în domeniul circuitelor logice programabile domeniul a 0,5-0,25µm. În figura 2.5 este prezentată o diagramă care ilustrează evoluţia circuitelor PLD de mare capacitate în ceea ce priveşte tehnologia de realizare şi densitatea de porţi logice/chip. Din eforturile de a îmbunătăţii şi a extinde arhitectura circuitelor FPGA a rezultat o nouă clasă de circuite numite sistem de matrici de porţi logice programabile SPGA (System Programmable Gate Array). Aceste circuite noi combină arhitectura de bază a circuitelor FPGA cu ce a circuitelor ASIC (Application Specific Integrated Circuit), rezultând astfel o capacitate mult sporită. Figura 2.5 Evoluţia circuitelor PLD de mare capacitate în ceea ce priveşte tehnologia de realizare şi densitatea de porţi logice/chip. 2.4 Tipuri de capsule şi modalităţi de alegere Datorită creşteri densităţii şi performanţelor circuitelor PLD, este o adevărată provocare pentru producători să furnizeze capsule cu caracteristici optime din punct de vedere termic, electric şi mecanic. În plus capsulele destinate circuitelor PLD trebuie să aibă dimensiuni minime şi să se preteze la procesul de montare automată pe plăci. Ultimele inovaţii în industria circuitelor PLD au avut ca rezultat dezvoltarea capsulelor de tip PQFP (Plastic Quad Flat Packs = capsulă de plastic plată), TQFP (Thin Plastic Quad Flat Pack = capsulă de plastic plată subţire) şi a capsulelor de tip BGA (Ball Grid Array). Aceste tipuri de capsule de diferite grosimi folosesc diverse metode de răcire. În funcţie de tipurile de capsule disponibile există două modalităţi de montare a circuitelor PLD: montare prin găuri şi montare pe suprafaţă. Capsulele cele mai folosite pentru primul tip de montare sunt: capsulele de tip DIP (Dual In-line Packages = capsule cu două rânduri de pini) şi capsulele de tip PGA (Pin Grid Array = matrice de pini), vezi figura 2.6. Capsulele folosite în cazul montării pe suprafaţă sunt de tipul LCC (Leadless Chip Carriers = capsulă fără pini, contacte direct pe capsulă ) şi de tipul QFP (Quad Flat Packs = capsulă plată de formă pătratică), vezi 19
figura 2.6. Tehnologia de montare prin găuri necesită inserarea capsulei pe placă şi lipirea acesteia prin metalizare. Capsulele ceramice folosite pentru acest tip de tehnologie ocupă mai mult spaţiu pe placă decât capsulele folosite în tehnologia de montare pe suprafaţă. Avantajul acestui tip de capsule constă în faptul că sunt mai solide din punct de vedere mecanic, deci sunt recomandate în aplicaţiile militare şi spaţiale. DIP PGA QFP BGA Figura 2.6 Tipuri de capsule Tehnologia de montare pe suprafaţă (SMT) permite montarea dispozitivelor electronice pe ambele părţi ale circuitului imprimat, această tehnologie a devenit foarte populară în cadrul aplicaţiilor ce vizează sectorul comercial şi industrial. Pe lângă faptul că oferă o densitate sporită de dispozitive electronice pe placa, tehnologia SMT este mult mai potrivită în procesul de automatizare. Circuitele SMD (Surface Mounted Devices) îi ajută pe proiectanţi să micşoreze dimensiunile plăcii de circuit imprimat şi să minimizeze valorile capacităţilor şi inductivităţilor parazite. Un dezavantaj al utilizării circuitelor QFP este acela că pini corespunzători acestui tip de capsulă sunt foarte fragili, ei fiind foarte uşor de deteriorat pe durata procesului de testare/montare. Figura 2.7. Tipuri de capsule disponibile pentru circuitele PLD în funcţie de numărul de porţi logice 20
Introducere în domeniul circuitelor logice programabile Alegerea circuitului PLD având capsula corespunzătoare depinde de aplicaţie şi de mediul de proiectare folosit. Capsula aleasă trebuie să aibă rezistenţă termică scăzută şi de asemenea capacităţi şi inductivităţi parazite minime. Caracteristicile termice ale capsulelor sunt foarte importante având o influenţă majoră asupra performanţelor şi fiabilităţii dispozitivelor. Cu cât creşte mai mult densitatea de porţi logice şi cu cât creşte puterea disipată, cu atât trebuie ca rezistenţa termică (θ JA ) să fie mai scăzută. Pentru a diminua rata defectelor mecanice provocate de manipulare (montare/testare) majoritatea circuitelor PLD sunt prevăzute cu opţiunea de scanare periferică pentru testare prin intermediul busului JTAG (standard IEEE 1149.1) şi de asemenea există şi posibilitatea de reprogramare în sistem. În figura 2.7 sunt prezentate câteva tipuri de capsule disponibile pentru circuitele PLD, tipul de capsulă pentru un anumit circuit depinde atât de numărul de porţi logice cât şi de numărul de pini. 2.5 Modalităţi de proiectare cu circuite PLD Metoda de bază în proiectarea cu circuite logice programabile cuprinde trei faze: - descrierea proiectului; - implementarea proiectului; - verificarea proiectului. În general programele soft folosite pentru descrierea şi simularea proiectelor sunt de uz general şi nu sunt dependente de tehnologie spre deosebire de programele folosite pentru sinteză. Iniţial descrierea proiectelor se făcea prin intermediul simbolurilor schematice, dar această modalitate se pretează numai în cazul proiectelor cu un număr relativ redus de porţi logice. Pentru proiectele mai complexe descrierile la nivel de poartă logică pot devenii foarte complicate, astfel că s-au dezvoltat limbajele de descriere hardware (HDL = Hardware Description Language). Prin intermediul limbajelor HDL se face o descriere comportamentală a proiectului, din această situaţie derivă următoarele avantaje: - Alegerea tehnologiei (circuitul FPGA sau CPLD) în care se va face implementarea proiectului poate fi amânată către o fază de proiectare mai târzie, moment în care cerinţele sunt mai bine conturate. - Este facilitată trecerea de la o tehnologie la alta (ex. din FPGA în porţi logice), costurile fiind minime. - Părţi dintr-un proiect realizat pot fi reintegrate foarte rapid în proiecte viitoare, indiferent de tehnologie. Limbajele HDL se încadrează în două categorii: - Limbaje HDL folosite pentru descrierea circuitelor programabile logice simple, dezvoltate în anii 1970. Dintre acestea reamintim: asamblorul PAL (PALASM), limbajul de descriere avansată a expresiilor booleene (ABEL) şi compilatorul universal pentru dispozitive logice programabile (CUPL). 21
- Limbaje HDL folosite pentru descrierea circuitelor programabile logice complexe având un nivel mai mare de abstractizare, dezvoltate la sfârşitul anilor 1980. Cele mai cunoscute sunt VHDL-ul (Very High Speed Integrated Circuits (VHSIC) HDL) şi Verilog HDL-ul. Sinteza logică este procesul de conversie optimizată a unui proiect de la nivel de descriere structurală / comportamental abstractă la nivel de poartă logică. Cu toate că, teoretic descrierea VHDL este transparentă (independentă) din punct de vedere al tehnologiei, rolul programelor de sinteză este foarte important în metodologia de proiectare. Astfel că pentru diferite arhitecturi FPGA se impun stiluri diferite de codare VHDL a unui proiect. Majoritatea proiectelor dezvoltate pentru tehnologia FPGA sunt compatibile cu tehnicile de proiectare ierarhice (top-down). Astfel că se va face o descriere a blocurilor de bază la nivelul cel mai superior (top level), după care se intră în fiecare bloc şi se face descrierea funcţională a acestuia sau se începe o altă descriere ierarhică. Acest tip de proiectare ierarhică are câteva avantaje, cum ar fi: posibilitatea de depistare rapidă a erorilor, partiţionarea proiectelor complexe, stocarea anumitor funcţii mai frecvent folosite în biblioteci. DESCRIERE HDL SIMULARE SIMULARE FUNCŢIONALĂ CONSTRÂNGERI COMPILARE ŞI SNTEZĂ SIMULARE DE TIMP BIBLIOTECI TEHNOLOGICE FPGA/CPLD NETLIST ÎN FORMAT EDIF OPTIMIZARE/PLASARE ŞI INTERCONECTARE CIRCUIT FPGA/CPLD Figura 2.8 Metodologia de proiectare Cele mai importante firme producătoare de soft de proiectare Cadence Design System, Mentor Graphics şi Viewlogic oferă programe de proiectare automată universale independente de metoda de proiectare, programe care conţin biblioteci pentru o gamă largă de circuite PLD. Există de asemenea programe de proiectare mai puţin performante decât cele produse de către firmele enumerate mai sus, dar 22
Introducere în domeniul circuitelor logice programabile care pot veni în întâmpinarea cereri utilizatorilor mai puţini pretenţioşi şi cu resurse financiare mai reduse. În figura 2.8 este prezentată metodologia de proiectare specifică mediilor EDA (Electronic Design Automation = proiectare electronică automatizată). Pentru proiecte care depăşesc 10.000 de porţi logice este recomandat ca descrierea de bază a proiectului să fie în VHDL sau în Verilog, la acestea se pot adăuga şi metodele clasice (schematic şi maşină de stări). Producătorii de circuite PLD furnizează biblioteci care conţin descrieri sub forma de netlisturi ale circuitelor pe care le produc. Aceste biblioteci permit firmelor producătoare de soft de proiectare să-şi orienteze programele către o anumită familie de circuite PLD şi către un anumit tip de arhitectură a macrocelulelor. În general producătorii de programe EDA integrează partea de descriere, simulare, sinteză şi analiză de timp a proiectelor. În completare producătorii de circuite PLD integrează programe de plasare a macrocelulelor şi de interconectare a acestora, specifice fiecărui tip de arhitectură în parte. Majoritatea proiectanţilor care folosesc circuite FPGA au adoptat metoda de proiectare ierarhică, împrumutată de la proiectanţii de circuite ASIC, datorită creşterii complexităţii circuitelor PLD. Diferenţa care apare între proiectarea FPGA şi cea ASIC este în procesul de verificare. Proiectantul de circuite ASIC foloseşte modalităţi de simulare extinse pentru a se asigura de succesul plasării circuitului pe siliciu, în timp ce proiectantul de circuite FPGA poate face verificarea finală în circuit cu un impact minim asupra duratei procesului de proiectare. Avantajele oferite de programele care folosesc sinteza logică devin evidente pentru proiecte care complexe (ex. 10.000-100.000 porţi logice). Totuşi pentru anumite proiecte aceste programe de sinteză logică pot să producă circuite care sunt mai mari şi mai lente decât dacă ar fi fost descrise direct cu porţi logice. Eficienţa acestor programe este foarte dependentă de experienţa proiectantului care le foloseşte. După optimizarea proiectului la nivele superior acesta va fi convertit din descrierea de tip Boolean într-un netlist (listă de conexiuni) bazat pe module FPGA. Logica booleană va fi astfel structurată încât să respecte constrângerile de timp. Elementele secvenţiale vor fi implementate în bistabili. Odată verificată corectitudinea proiectului acesta va fi transferat programului de implementare fizică. Aceste programe de plasare şi interconectare a macrocelulelor folosesc informaţiile rezultate în urma sintezei vizavi de constrângerile de timp pentru a calcula traseele cu întârzierile cele mai mari şi ale optimiza. Odată plasate şi interconectate (placed & routed) componentele se extrag informaţii cu privire la întârzierile post-plasare sau post-layout. Aceste informaţii împreună cu fişierul netlist rezultat în urma implementării se folosesc pentru simulare de timp completă. În urma acestei simulări se obţin informaţii cu privire la frecvenţa de lucru maximă a proiectului. 23
2.6 Criteriile de alegere a circuitelor PLD În alegerea unui circuit PLD pentru o aplicaţie dată se ţine cont de densitatea şi performanţele acestuia. Cu cât este mai redusă capacitatea unui circuit PLD, cu atât performanţele acestuia vor fi mai ridicate. Totuşi folosirea circuitelor de capacitate redusă nu este o soluţie în cazul proiectelor mai complexe existând posibilitatea ca acesta să nu poată fi implementat într-un singur circuit. În cazul circuitelor PLD 22V10 frecvenţa maximă de lucru este de 175 MHz, iar în cazul circuitelor CPLD aceasta poate fi de aproximativ 150 MHz. în multe cazuri această informaţie furnizată de producătorii de circuite PLD este valabilă numai pentru cele mai simple părţi ale proiectului per ansamblu frecvenţa de lucru fiind mai mică. După cum se poate observa este dificil de făcut o estimare a performanţelor proiectului pe baza specificaţiilor date de producători. Performanţele circuitelor CPLD sunt şi mai greu de prevăzut în comparaţie cu circuitele PLD simple. Unele circuite CPLD având specificaţii de timp în funcţie de numărul de produse ale funcţiilor implementate şi în funcţie de fanout. În cele din urmă programul de compilare va fi cel care va decide viteza maximă de lucru a proiectului. După cum am amintit şi într-un paragraf anterior în cazul circuitelor FPAG este şi mai greu de estimat întârzierea maximă de propagare şi frecvenţa maximă de lucru, aceasta datorită resurselor de interconectare foarte flexibile de care dispun acest tip de circuite. În general frecvenţa de lucru a unui proiect implementat într-un circuit FPGA este mai mică decât dacă implementarea se face într-un circuit CPLD. Atuul principal al circuitelor FPGA rămâne capacitatea de implementare. Selectarea unui circuit PLD pentru un proiect dat se face în funcţie de densitatea circuitului, ţinându-se cont de numărul de porţi folosite raportat la numărul total de porţi disponibile. Modalitatea de specificare a numărului de porţi logice pentru circuitele FPGA şi CPLD este diferit de la un producător la altul, prin urmare capacitatea circuitelor PLD poate fi comparată numai în cazul în care provin de la acelaşi producător. Un alt factor important în alegerea unui circuit PLD este consumul de putere, circuitele logice programabile bazate pe tehnologie EEPROM consumă mai mult decât circuitele bazate pe tehnologie SRAM. Cele mai frecvente aplicaţii orientate către circuite de tip PLD sunt cele care conţin automate de stării. Pentru acest tip de aplicaţii circuitele CPLD sunt preferate circuitelor FPGA datorită faptului că în arhitectura lor sunt prezenţi bistabili de tip T, acesta având ca rezultat reducerea logici de implementare şi o mai bună compactare a proiectului. Implementarea optimă a automatelor de stare în circuitele FPGA depinde de tehnica de codificare a stărilor pentru a reduce logica combinaţională dintre stări. Tehnica one-hot care foloseşte câte un registru per stare este recomandată în cazul circuitelor FPGA. În general arhitectura FPGA este mult mai recomandată în cazul aplicaţiilor care descriu operaţii aritmetice care implică registre logice. În concluzie cele mai importante criterii luate în considerare la alegerea unui circuit PLD sunt: - costul circuitului FPGA sau CPLD; 24
Introducere în domeniul circuitelor logice programabile - timpul necesar pentru ca produsul să ajungă pe piaţă; - numărul de regiştri (bistabile) disponibili; - numărul de porturi de intrare/ieşire; - accesul la bibliotecile cu macrocelule ale producătorului; - costul şi calitatea programelor de proiectare disponibile; - consumul de putere; - tipurile de capsule disponibile; - alte caracteristici suplimentare disponibile. 25