Documente Academic
Documente Profesional
Documente Cultură
2.1 Generalităţi
î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.
14
Introducere în domeniul circuitelor logice programabile
15
Capitolul 2
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.
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.
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
Capitolul 2
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
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.
19
Capitolul 2
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.
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
21
Capitolul 2
DESCRIERE HDL
SIMULARE
FUNCŢIONALĂ
SIMULARE
SIMULARE
CONSTRÂNGERI COMPILARE ŞI DE TIMP
SNTEZĂ
NETLIST ÎN FORMAT EDIF
BIBLIOTECI OPTIMIZARE/PLASARE ŞI
TEHNOLOGICE INTERCONECTARE
FPGA/CPLD
CIRCUIT FPGA/CPLD
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
Capitolul 2
Î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
25