Sunteți pe pagina 1din 13

Capitolul 2

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ă
Capitolul 2

î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
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.

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 (Tpd ) de la o intrare a unui circuit aflat pe
pastila de siliciu, la ieşirea acestuia. Valoarea lui Tpd î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 Tpd [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
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

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

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
Capitolul 2

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

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
Capitolul 2

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

S-ar putea să vă placă și