sisteme cu dispozitive reconfigurabile curs

38
Sisteme cu dispozitive reconfigurabile Arhitecturi de calcul Dezvoltarea tehnologiei mijloacelor automate de calcul oferă mai multe soluţii de implementare a sistemelor digitale: 1. Procesoare de uz general (GP), programate software; 2. Structuri hardware fixe (ASIC Aplication Specific Integrated Circuits) - circuite integrate specifice aplicaţiei; 3. Circuite reconfigurabile (cele mai reprezentative fiind circuitele FPGA). La începutul deceniului 9, al secolului trecut, cea mai mare parte a circuitelor logice, din sistemele numerice tipice, era realizată cu ajutorul unui număr relativ mic de circuite standard integrate pe scară largă (LSI): microprocesoare, controloare de magistrale, controloare de I/E, circuite de sincronizare etc. Toate sistemele aveau încă nevoie de o logică “aleatoare”, atât pentru interconectarea circuitelor integrate pe scară largă, cât şi pentru: generarea semnalelor de comandă globală (reset s.a.), formatarea datelor (serial/ paralel, paralel/serial, multiplexare) etc. Sistemele erau alcătuite dintr-un număr mic de componente LSI şi din numeroase componente integrate pe scară mică (SSI) şi medie (MSI). Plachetă prevăzută cu componente LSI, MSI şi SSI. Pentru realizarea structurii de interconectare adesea se proiectau circuite la cerere (custom, ASIC), care conduceau la: - reducerea complexităţii sistemului şi a costurilor de fabricaţie, cât şi la mărirea performanţei; - costuri ridicate de dezvoltare a circuitelor la cerere, creşterea timpului de proiectare şi a timpului în care produsul ajungea pe piaţă. În acest context apar două componente ale costurilor: - costul de dezvoltare, denumit uneori: non-recurring engineering (NRE) şi

Upload: mahailov221114

Post on 02-Oct-2015

56 views

Category:

Documents


0 download

DESCRIPTION

Masterat UTM, specialoitatea Calculatoare

TRANSCRIPT

1

Sisteme cu dispozitive reconfigurabile Arhitecturi de calcul Dezvoltarea tehnologiei mijloacelor automate de calcul ofer mai multe soluii de implementare a sistemelor digitale: 1. Procesoare de uz general (GP), programate software; 2. Structuri hardware fixe (ASIC Aplication Specific Integrated Circuits) - circuite integrate specifice aplicaiei; 3. Circuite reconfigurabile (cele mai reprezentative fiind circuitele FPGA).

La nceputul deceniului 9, al secolului trecut, cea mai mare parte a circuitelor logice, din sistemele numerice tipice, era realizat cu ajutorul unui numr relativ mic de circuite standard integrate pe scar larg (LSI): microprocesoare, controloare de magistrale, controloare de I/E, circuite de sincronizare etc.

Toate sistemele aveau nc nevoie de o logic aleatoare, att pentru interconectarea circuitelor integrate pe scar larg, ct i pentru: generarea semnalelor de comand global (reset s.a.), formatarea datelor (serial/ paralel, paralel/serial, multiplexare) etc. Sistemele erau alctuite dintr-un numr mic de componente LSI i din numeroase componente integrate pe scar mic (SSI) i medie (MSI).

Plachet prevzut cu componente LSI, MSI i SSI.

Pentru realizarea structurii de interconectare adesea se proiectau circuite la cerere (custom, ASIC), care conduceau la:

- reducerea complexitii sistemului i a costurilor de fabricaie, ct i la mrirea performanei;

- costuri ridicate de dezvoltare a circuitelor la cerere, creterea timpului de proiectare i a timpului n care produsul ajungea pe pia.

n acest context apar dou componente ale costurilor:

- costul de dezvoltare, denumit uneori: non-recurring engineering (NRE) i

- costurile de fabricaie.

n realizarea sistemelor numerice, abordarea cu circuite la cerere este viabil pentru produsele realizate n numr foarte mare, la care costurile de dezvoltare se pot amortiza i care nu sunt critice n raport cu timpul de lansare pe pia (TTM -Time To Market). FPGA-urile au fost introduse ca o alternativ la circuitele la cerere, pentru implementarea logicii de interconectare, ceea ce a permis mrirea densitii de circuite de circa 10 ori n raport cu soluia SSI/MSI, reducerea costurile de dezvoltare i scurtarea TTM. Cu ajutorul mijloacelor automate de proiectare (CAD), circuitele au putut fi implementate ntr-un timp foarte scurt, lipsind etapele de proiectare a mtilor i fabricare a circuitelor.

n conformitate cu legea lui Moore, densitatea (pori/suprafa) FPGA-urilor a crescut ntre anii 80-90, ai secolului 20, pn la punctul n care funciile importante de prelucrare a datelor au fost implementate direct ntr-un singur circuit FPGA. FPGA este n continuare n competiie cu circuitele la cerere pentru funcii speciale de prelucrare i pentru logica de interconectare, dar este n competiie i cu microprocesoarele n aplicaii dedicate i ncorporate. FPGA-urile au avantajul performanei, n raport cu microprocesoarele, deoarece circuitele pot fi adaptate uor la aplicaie. Microprocesoarele realizeaz funciile speciale n software, n condiiile operrii n mai multe cicluri.

Comparaie ntre soluiile bazate pe ASIC, FPGA i procesoare pentru implementarea unui sistem numeric, referitor la: performan, NRE, cost/unitate i TTM.PerformanNRECost/unitateTTM

ASIC

FPGA

ProcesoareASIC

FPGA

ProcesoareFPGA

Procesoare

ASICASIC

FPGA

Procesoare

Vom compara aceste arhitecturi i din punctul de vedere al criteriilor de flexibilitate i performan.

Performana determin capacitatea unui produs de a ndeplini o anumit sarcin. Exist mai multe moduri de a msura performana unui produs, n general aceasta este exprimat n: MIPS (milioane de instruciuni per secund), MMACS (milioane de multiplicri i acumulri per secund) sau mai simplu n MHz (milioane de perioade de tact per secund).Flexibilitatea se refer la posibilitatea de a schimba caracteristicile unui produs pentru a ndeplini cerine noi. Implementrile software au cel mai scurt timp de lansare pe pia, datorit marii flexibiliti i interfeei prietenoase a limbajelor de programare i a compilatoarelor. Acesta este motivul principal pentru care ele sunt mai prezente pe pia dect implementrile hardware.

Procesoarele programate prin software Procesoarele (microprocesoare, procesoare digitale de semnal DSPs) furnizeaz resursele logice necesare implementrii unor platforme de calcul variate.

Permit implementarea unor platforme de calcul foarte flexibile, capabile s execute aplicaii din domenii diferite: comunicaii, sisteme de comand i control, prelucrarea semnalelor, etc. Aplicaiile sunt executate prin decodarea unui flux de instruciuni preluate dintr-un cod software, pe baza informaiilor stocate n blocuri de memorie. Caracterul secvenial de executare a aplicaiilor, limitele impuse de viteza de acces la blocurile de memorie i arhitectura fix a procesoarelor, limiteaz performana acestor sisteme.Structurile hardware fixe (ASIC) ASIC-urile furnizeaz o soluie alternativ procesoarelor convenionale pentru implementarea unor aplicaii performante. ASIC-urile sunt dispozitive hardware dedicate, proiectate pentru a implementa un numr foarte mic de aplicaii sau chiar numai una singur. Pentru o aplicaie dat, ASIC-urile obin performane foarte bune, ocup un spaiu mult mai mic i consum mai puin energie dect procesoarele. n cazul unor producii de serie mari, preul de cost unitar devine foarte bun. Durata mare a ciclului de dezvoltare a circuitului. Preul ridicat al proiectrii circuitului integrat (50000$ - 1000000$) Sunt excluse optimizri post-design.

Sunt puin flexibile.

Circuitele reconfigurabile (FPGA) Asigur un compromis ntre cele 2 tendine: flexibilitate vs. performan. Permit implementarea circuitelor specializate direct n hardware. Permit reconfigurarea, deoarece conin resurse funcionale ce pot fi uor modificate dup implementarea n cadrul aplicaiei, ca urmare a schimbrii parametrilor i datelor de lucru. Risc sczut n faza de proiectare.

Cost iniial redus. Timp de proiectare redus. Permit optimizri post-design.Modaliti de efectuare a calculelor

Pornind de la posibilitile de implementare a algoritmilor: prin software sau prin hardware (fix/reconfigurabil), se contureaz dou modaliti de efectuare a calculelor:1. Temporal - executarea secvenial a algoritmului n baza instruciunilor din program, care necesit etapele de extragere, decodare i executare;

2. Spaial - executarea paralel a algoritmului care se efectueaz n baza unor blocuri funcionale care formeaz o structur hardware. Instruciunile, n acest caz, lipsesc. Distribuirea algoritmului nu doar n timp dar i n spaiu permite atingerea unui grad nalt de paralelism. Pentru exemplificare se presupune execuia urmtorului fragment de program pe un calculator convenioanal i ntr-o structur ASIC/FPGA (fig.1.1.).

Fragment de program pe un calculator vN (a) i ntr-o structur ASIC (b).

Timpul total de execuie pe un calculator vN este: 3*tinstruciune , care poate cuprinde mai multe cicluri de ceas. Structura ASIC/FPGA efectueaz calculele ntr-un interval de timp egal cu ntrzierea cea mai mare n propagarea semnalului de la intrare la ieire. Circuite PLDCircuitele logice programabile, cunoscute i sub forma acronimului PLD (Programmable Logic Device), sunt circuite integrate care conin un numr mare de pori sau celule a cror interconexiune poate fi configurat sau programat pentru a implementa orice funcie combinaional sau secvenial dorit. Pentru programarea circuitelor PLD se utilizeaz dou tehnici: - programarea prin mti, care se efectueaz n timpul procesului de fabricaie;

- programarea de ctre utilizator, pentru care se utilizeaz echipamente de programare cu costuri reduse. Multe circuite PLD pot fi reprogramate de utilizator de multe ori, motiv pentru care ele sunt avantajoase pentru realizarea prototipurilor unui nou produs. Conexiunile programabile ntre elementele logice ale unui circuit PLD conin comutatoare realizate de obicei cu tranzistoare sau antifuzibile (uneori fuzibile). Firme productoare de PLD: Xilinx, Altera, Lattice, Actel, Cypress, Atmel, QuickLogic.Exist mai multe tipuri de circuite care sunt denumite n mod generic circuite logice programabile (PLD). SPLD (Simple Programmable Logic Device) CPLD (Complex Programmable Logic Device)FPGA (Field Programmable Gate Array)Porile logice programabile ale unui circuit PLD pot fi reprezentate n mod simplificat: n locul unor linii de intrare multiple la fiecare din aceste pori s-a figurat o singur linie. Semnul indic o conexiune programabil a unei linii de intrare la o poart logic. Absena semnului indic faptul c respectiva conexiune a fost programat n starea deconectat.

Circuite SPLDDin punct de vedere arhitectural se clasific n :

1. PLA Programmable Logic Array.2. PAL/GAL Programmable Array Logic/Generic Array LogicAmbele conin arii de pori logice I i SAU, conectate consecutiv, cu ajutorul crora pot fi realizate formele disjunctive ale funciilor logice.

Parametrii de baz:

n numrul variabilelor logice

p numrul termenilor produsm numrul funciilor logice realizate (numrul ieirilor)

n planul logic I variabilele intr att n form direct ct i n form invers. La ieirile acestui plan se formeaz temenii produs. Aceti termeni servesc drept intrri pentru planul logic SAU. n circuitele PLA acest plan este programabil, n circuitele PAL este fix.

Complexitatea circuitului se determin din formula:

C=(2n+m)p

La intrrile porilor SAU din PLA poate fi aplicat orice combinaie a termenilor produs, iar termenii pot fi utilizai de mai multe ori.

n cazul circuitelor PAL, la fiecare poart SAU pot fi aplicai doar anumii termeni produs. n cazul cnd este necesar de a utiliza acelai termen produs la alt poart SAU, el este generat de mai multe ori. Dar programarea circuitelor PAL este mai simpl.

O reea logic programabil PLA (Programmable Logic Array) este similar ca i concept cu o memorie ROM, cu excepia faptului c nu realizeaz decodificarea complet a variabilelor i nu genereaz toi mintermii. Decodificatorul este nlocuit cu o reea de pori I care poate fi programat pentru a genera termenii produs ai variabilelor de intrare. Termenii produs sunt apoi conectai n mod selectiv cu pori SAU pentru a genera suma termenilor produs pentru funciile booleene necesare.

Un circuit PLA poate implementa n mod direct un set de funcii logice exprimate printr-un tabel de adevr. Fiecare intrare pentru care valoarea funciei este adevrat necesit un termen produs, i acestuia i corespunde o linie de pori I din primul etaj al circuitului PLA. Fiecare ieire corespunde la o linie de pori SAU din al doilea etaj al circuitului. Numrul de pori SAU corespunde cu numrul de intrri din tabelul de adevr pentru care ieirea este adevrat.

Pentru proiectarea unui sistem digital cu un circuit PLA, nu este necesar s se indice conexiunile interne ale circuitului, ci trebuie s se specifice doar tabelul de programare. Structura de baz a unui circuit PLA:

Avantaj: flexibilitate

Dezavantaje: cost ridicat de fabricare, vitez de lucru redusCircuitele PAL (Programmable Array Logic) conin o reea de pori I programabil, i o reea de pori SAU cu conexiuni fixe. Fiecare linie de ieire este conectat la un set fix de linii ale reelei de pori I. O asemenea ieire a circuitului PAL poate implementa o expresie pe dou nivele coninnd cel mult opt termeni. Avantajele circuitelor PAL sunt simplitatea utilizrii n anumite aplicaii i viteza mai ridicat. Aceste circuite sunt ns mai puin flexibile dect circuitele PLA.

Avantaje: cost de fabricare mai redus dect PLA, viteza de lucru mai ridicat dect PLA

Dezavantaj: flexibilitate redusExist i circuite PLA sau PAL care conin bistabile ataate prin conexiuni programabile la ieirile reelei de pori SAU, ceea ce permite implementarea unor circuite secveniale de dimensiuni medii. Unele circuite PAL conin macrocelule, formate din bistabile, multiplexoare i pori logice.

Dispozitivul PAL16L8 (combinaional).

Reeaua programabil de pori I conine 64 rnduri i 32 coloane (64 x 32 = 2048 fuzibile). Fiecare din cele 64 pori I are 32 intrri 16 variabile n form direct i invers. =pt elemente I sunt asociate cu fiecare pin de ieire. apte dintre aceste pori sunt conectate la poarta fix SAU. O poart I servete pentru validarea ieirii (n cazul cnd primete valoarea 1 logic) i este conectat la un buffer cu trei stri. Circuitul conine 6 pini bidirecionali (13-18)

Dispozitivul PAL16R8 (secvenial)

Dispozitivul PAL22V10

Circuite CPLD

Circuitele CPLD sunt circuite VLSI ale cror pri componente sunt:

PAL (GAL), care formeaz blocurile logice (funcionale), fiecare bloc fiind compus din mai multe macrocelule;

Bloc de interconectare programabil;

Blocuri de intrare/ieireFunciile logice simple pot fi implementate n cadrul uni singur bloc. Funciile mai complexe pot necesita mai multe blocuri, care vor fi interconectate prin matricea de rutare.

n circuitele CPLD, spre deosebire de circuitele PAL, matricea SAU nu este complet fix i, prin intermediul distribuitorului termenilor produs permite de a forma funcii logice disjunctive, variind numrul termenilor, utiliznd aceiai termeni pentru diferite funcii. Macrocelula reprezint un bistabil care poate fi programat sa lucreze n regim D sau T, multiplexoare pentru alegerea modului de lucru (combinaional sau secvenial), elemente XOR pentru a obine funcia n forma direct sau invers. Structura blocului logic

Seria XC9500

Circuitele nglobeaz un anumit numr de Blocuri Funcionale (Functional Block) i de Blocuri de Intrare/Ieire (I/O Block) interconectate prin intermediul unei matrici de interconectare numit FastConnect. Fiecare Bloc Funcional are maxim 36 de intrri i maxim 18 ieiri. Fiecare Bloc Funcional este compus din 18 macro celule (macrocell). La nivelul Blocului Funcional implementarea este tip sum de produse, fiind disponibili pn la 90 de termeni produs (Product Terms). Fiecare macro celul conine un bistabil - register (numrul de bistabile disponibile este egal cu numrul de macro celule al circuitului) care poate fi configurat ca fiind de tip D sau T sau absent cnd este neutilizat, n cazul n care funcia implementat este pur combinaional.

Structura funcional de baz a circuitului CPLD XC9572XL:

Fiecare bloc funcional const din aria programabil de pori I, distribuitorul de termeni i macrocelule. Macrocelula const dintr-un bistabil de tip D/T. Semnalele de setare/resetare i ceas pentru bistabile sunt alocate de ctre distribuitorul de termeni. PTOE (product term output enable) este direcionat spre Blocul de intrae/ieire, la fel, de ctre distribuitorul de termeni. Structura unui bloc funcional

Familiile CPLD sunt bazate pe o tehnologie combinat FLASH-EPROM i RAM. Configuraia este memorat permanent ntr-o memorie de tip FLASH, fiind transferat la punerea sub tensiune (power-up) ntr-o memorie de configurare de tip RAM (oarecum similar cu cea de la FPGA). Structura de configurare astfel rezultat este nevolatil.

Familiile reprezentative de circuite CPLD ale firmei Xilinx sunt: XC9500, XC9500XL, XC9500XV, Cool Runner II, Cool Runner XPLA3; ale firmei ALTERA: MAX7000, MAX3000A.

Circuite FPGAPrimul circuit FPGA a fost propus de Ross Freeman, unul din co-fondatorii firmei Xilinx Inc., n 1985. De atunci au fost elaborate diferite tipuri de circuite FPGA de un numr de alte companii ca Actel, Altera, Atmel, Texas Instruments etc. n comparaie cu primele dispozitive programabile (PLD), care se deosebesc prin conexiuni rigide, FPGA-urile se bazeaz pe legturi flexibile prin intermediul interconexiunilor programabile. FPGA sunt circuite VLSI cu urmtoarele componente principale:

celule logice (blocuri funcionale), amplasate in form de matrice bidimensional;

matrice de conexiuni programabile, amplasate n jurul fiecrui bloc funcional;

blocuri de intrare/ieire.

Toate componentele FPGA sunt programabile (reconfigurabile) de ctre utilizator.

Fiecare celul logic poate fi programat pentru a implementa orice funcie logic a intrrilor sale. De aceea, aceste blocuri sunt numite blocuri logice configurabile (CLB Configurable Logic Block, Xilinx) Cele mai multe celule logice conin de asemenea unul sau dou bistabile. Fiecare celul este nconjurat de interconexiuni programabile. Ansamblul acestor interconexiuni poart numele de matrice de conexiuni programabile. ntreg ansamblul de celule i interconexiuni se afl ntr-un inel format de blocurile de intrare / ieire.

Tehnologii de programare a circuitelor FPGAn prezent sunt utilizate trei tehnologii de programare a circuitelor FPGA:

- Antifuzibile- SRAM

- EPROM, EEPROM/FLASH

Circuite cu antifuzibile. Un antifuzibil este un dispozitiv cu dou terminale care n mod normal se afl n starea de nalt impedan, iar atunci cnd este expus la o tensiune ridicat, trece n starea cu rezisten redus (300-500 ). Antifuzibilele au dimensiuni reduse, astfel nct o arhitectur bazat pe antifuzibile poate conine sute de mii sau milioane de antifuzibile. Pentru simplificarea arhitecturii i a programrii, circuitele FPGA bazate pe antifuzibile constau de obicei din rnduri de elemente logice configurabile cu canale de interconectare ntre ele, ca i reelele de pori tradiionale.

Un bloc logic poate fi programat prin conectarea pinilor si de intrare la valori fixe sau la reele de interconectare. Exist antifuzibile la fiecare punct de intersecie ntre interconexiuni i pini din canal i la toate punctele de intersecie ntre interconexiuni n locurile n care canalele se intersecteaz.

Din categoria circuitelor FPGA cu antifuzibile fac parte circuitele firmelor Actel, Quicklogic, Cypress.Avantaje.

1. Sunt nevolatile

2. Timpul de rutare este mic i deci sunt mai rapide

3. Consum mai mic de putere

4. Securitate nalt a datelor de configurare, deoarece circuitele sunt configurate o singur dat i informaia de configurare nu este accesibil concurenilor. Dezavantaje

1. Necesit un proces de fabricaie nestandard complex.

2. Necesit un programator extern i, o dat programate, nu mai pot fi reprogramate.

Aceste dezavantaje au contribuit la dezvoltarea relativ lent a acestor circuite.

Circuite cu memorii SRAMProgramarea acestor circuite se realizeaz prin celule de memorie static. O celul SRAM dintr-un FPGA are structura:

Dup cum se poate observa exist perechea de inversoare tipic celulei SRAM care va memora valoarea programat. O singur poart de tranzistor de tip MOSFET n (MOS Field-Effect-Transistors) este folosit att pentru scriere ct i pentru citire. Pentru controlul cii de configurare sunt folosite semnalele Q i /Q.

Logica este implementat cu ajutorul unor tabele LUT (lookup table) realizate din celulele de memorie, intrrile funciilor controlnd liniile de adres.

Prin conectarea a 2N celule de memorie SRAM prin intermediul unui multiplexor se obine un LUT care poate implementa orice funcie de N variabile. Cu toate c este nevoie de un numr mare de celule SRAM, uzual se construiesc LUT-uri cu 5 variabile de intrare. Pentru funcii cu mai mult de cinci variabile se folosesc multiplexoare pentru a forma LUT-uri de 6 sau 7 variabile.

Una sau mai multe tabele, combinate cu bistabile, formeaz un bloc logic configurabil. Aceste blocuri sunt aranjate ntr-un tablou bidimensional, segmentele de interconectare formnd canale, similar cu reelele de pori. Segmentele se conecteaz la pinii blocurilor logice din canale i la alte segmente din blocurile de comutare prin intermediul tranzistoarelor de trecere controlate de celule ale memoriei de configurare.

O secven de configurare pentru circuitele cu memorii SRAM const dintr-un singur cuvnt lung de programare. Logica din circuit ncarc cuvntul de programare, pe care l citete serial dintr-o memorie extern de fiecare dat cnd circuitul este alimentat. Biii acestui cuvnt seteaz valorile tuturor celulelor memoriei de configurare din circuit, setnd astfel valorile tabelelor i selectnd segmentele care se vor conecta ntre ele. Circuitele cu memorii SRAM sunt reprogramabile. Ele pot fi actualizate n sistem, punnd la dispoziia proiectanilor noi opiuni i posibiliti de proiectare.

Din aceast categorie de circuite FPGA fac parte cele ale firmelor Xilinx, Altera, AT&T. Avantaje.

1. Necesit un proces de fabricaie standard care permanent este optimizat.

2. Sunt reprogramabile, unele circuite i n timpul funcionrii.

Dezavantaje1. Sunt volatile i trebuie programate la fiecare conectare a tensiunii de alimentare a sistemului. Pentru circuitele FPGA pe baz de celule SRAM, n mod uzual configuraia este memorat ntr-o memorie ROM extern din care se ncarc automat la iniializarea sistemului.2. Timpul de rutare este mare i deci sunt mai lente.3. Consum mai mare de putere4. Densitate de integrare mai mic5. Au o securitate redus a informaiei, deoarece ele trebuie configurate de fiecare dat la conectarea tensiunii de alimentare a sistemului iar codul de configurare poate fi citit.

Totui avantajele tehnologiei SRAM sunt mai importante dect neajunsurile i ele, de fapt, domin piaa.

Circuite cu EEPROM/FLASHAceste circuite utilizeaz celule EEPROM/FLASH pentru fiecare element programat.

Memoria Flash este un tip de EEPROM (Electrically Erasable Programmable Read-Only Memory), i este o memorie nevolatil, ceea ce nseamn c nu pierde datele stocate dup ce este deconectat de la sursa de alimentare.

Memoria flash este format dintr-o matrice de celule de memorie care, la rndul lor, sunt formate din perechi de tranzistori (MOSFET - metal oxide semiconductor field effect transistor) ce au ntre ei un strat subire de oxid izolator. Un tranzistor este numit poart flotant (floating gate), iar cellalt - poart de control (control gate). Atunci cnd este stabilit o legatur ntre cele dou pori, celula de memorie are valoarea 1, schimbarea valorii n 0 are loc prin intermediul unui proces numit Fowler-Nordheim tunneling. Efectul tunelrezult din capacitatea unui obiect cuantic de a strbate obarier de poteniallascar atomic, fapt care ar fi imposibil dup legilemecanicii clasice.

Elimina dificultatiile de extragere din soclu si iradiere cu UV, aplicat la memoriile EPROM.Atat programarea cat si stergerea se fac electric.Prin perfectionarea tehnologiei si micsorarea grosimii stratului izolator alPfexista posibilitatea programarii si stergerii electrice cu tensiuni mici aplicate intre drena si poarta.Polaritatea caderii de tensiune drena-poartaesteinversata la stergere fata de programare.

Caracteristici:

-numar de stergeri si de reprogramari;-durata informatiei memorate mai mare de zece ani.-sepot rescrie in timpul functionarii.

Din aceast categorie de circuite FPGA fac parte cele ale firmelor, Altera, Actel, Lattice. Tehnologia EEPROM/FLASH combin avantajele tehnologiilor precedente.

1. Sunt nevolatile

2. Reprogramabile

3. Folosesc un proces de fabricaie standard.

4. Consum redus de putere

5. Securitatea informaiei

FPGA seria XC4000 (Xilinx)Blocurile componente Structura intern programabil de utilizator include trei elemente majore configurabile:

- Blocurile logice configurabile (CLBs), care furnizeaz elementele funcionale i realizeaz structura logic proiectat;

- Blocurile de intrare / ieire (IOBs), care furnizeaz interfaa ntre semnalele interne i exteriorul circuitului (legtur realizat fizic prin intermediul pinilor);- Matrici de comutatoare programabile pentru interconectarea blocurilor.

Blocurile logice configurabile (CLB) CLB-urile implementeaz majoritatea funciilor logice proiectate.

Elementele principale ale unui bloc configurabil sunt:

- F i G generatoare de funcii cu 2x4 intrri. H generator de funcii suplimentar ce posed 3 intrri dintre care dou provin de la generatoarele de funcii F i G, iar a treia provine din exterior de la unul din CLB-ulurile vecine. Astfel blocul configurabil poate implementa funcii logice cu pn la 9 variabile de intrare. Prin implementarea funciilor logice, cu un numr mare de variabile ntr-un singur bloc, se reduce numrul de blocuri necesare pentru realizarea proiectului. De asemenea se reduc i timpii de propagare, astfel c va crete capacitatea de implementare i viteza de lucru. Generatoarele de funcii F i G se pot utiliza ca celule de memorie RAM/ROM. - dou elemente de stocare numite registre (bistabili D), care se pot utiliza pentru stocarea rezultatelor date de generatoarele de funcii.

Elementele de registru sau generatoarele de funcii se pot utiliza i independent. Intrrile DIN, H1 sunt intrri directe de stocare. Ieirile generatoarelor de funcii se pot utiliza ca ieiri independente de ieirile elementelor de stocare. Aceast flexibilitate mrete resursele logice i simplific implementarea proiectelor. Astfel prin intermediul a 13 intrri i 4 ieiri este asigurat accesul la fiecare bloc configurabil. Intrrile i ieirile respective legate la resursele programabile de interconectare vor realiza funciile logice.

Bistabilii interni pe lng faptul c sunt ieiri pentru reeaua de interconexiuni, ieirile combinaionale pot fi i surs de intrare pentru bistabili interni ai CLB pentru realizarea circuitelor secveniale. Bistabilii sunt de tip D i au tactul de nscriere pe front pozitiv prin semnalul comun de tact K. Validarea tactului se realizeaz prin semnalul EC (Enable Clock).

Circuitele XC4000 au caracteristici care permit integrarea unor sisteme complete. De exemplu, fiecare bloc CLB conine circuite care permit execuia eficient a operaiilor aritmetice. Acestea implementeaz operaii cu transport rapid pentru circuite de tip sumator. De asemenea, tabelele pot fi configurate ca celule RAM de tip R/W. Circuitele din seria XC4000E permit configurarea tabelelor ca memorii RAM cu porturi duale, cu un singur port de scriere i dou porturi de citire, existnd posibilitatea ca blocurile RAM s fie sincrone. Fiecare circuit XC4000 conine planuri I largi n jurul periferiei reelei de blocuri logice pentru a facilita implementarea blocurilor de circuit cum sunt decodificatoarele de dimensiuni mari.

Blocurile de intrare / ieire (IOBs)

Blocurile configurabile de intrare / ieire realizeaz interfaa ntre mediul exterior i structura intern a circuitului FPGA. Fiecare IOB controleaz un pin (pad) al circuitului integrat. Blocurile de intrare ieire se pot configura ca i port de intrare, port de ieire sau port bidirecional.

Diagrama simplificat a blocului IOB:

Cile I1 i I2 furnizeaz semnalele de intrare n IOB. Acestea sunt conectate la un bistabil al crui tact de nscriere poate fi pe front sau pe nivel logic. Semnalele I1 i I2 se pot conecta la bistabilul de intrare al blocului IOB.

Semnalul de validare a bistabililor din IOB poate fi configurat astfel nct s fie comun sau separat pentru cele dou registre. Acest semnal nu se poate inversa n interiorul IOB.

n mod opional semnalele de ieire se pot inversa n interiorul blocului de intrare / ieire. Aceste semnale se pot conecta direct la ieirea pinului sau la bistabilul de ieire din IOB. Slew Rate Control - Controlul vitezei de cretere a semnalului

Interconexiunile programabile Toate conexiunile interne sunt compuse din segmente de metal cu puncte de cuplare programabile i matrice de cuplare pentru realizarea legturilor interne.

Exist urmtoarele tipuri de conexiuni:

- Realizarea legturilor ntre blocurile CLB este asociat rndurilor i coloanelor matricei CLB;

- Realizarea legturilor ntre blocurile IOB formeaz un cordon n jurul matricii CLB (VersaRing), acest cordon conecteaz pinii I/O cu blocurile logice interne;

- Conexiunile globale sunt compuse din reele dedicate, proiectate pentru distribuirea rapid a semnalelor de comand i control utilizate n proiect.

Se disting 5 tipuri de linii de interconectare: linii de lungime simpl, linii de lungime dubl, linii de lungime quad-dubl, linii de lungime octal, linii lungi.

ntrrile i ieirile n blocurile configurabile sunt distribuite n toate cele patru direcii, pentru ca realizarea conexiunilor s fie ct mai flexibil. Poziia intrrilor i ieirilor CLB este interschimbabil pentru evitarea congestiunilor, n timpul plasri i realizri conexiunilor.

Liniile de simpl lungime permit interconectarea rapid a blocurilor adiacente. Fiecrui bloc i sunt asociate 8 linii verticale i 8 linii orizontale de simpl lungime. Aceste linii sunt conectate n matrice programabile situate la interseciile fiecrei linii i coloane. Liniile de simpl lungime introduc ntrzieri n propagarea semnalelor ori de cte ori intr ntr-o matrice programabil. Din aceast cauz nu sunt utilizabile pentru realizarea legturilor la distan. Ele sunt utilizate n mod normal pentru a ghida semnalele ntr-o arie restrns. Liniile de dubl lungime realizeaz o gril din segmente de metal. Fiecare linie are lungime dubl n comparaie cu liniile simple. Liniile duble sunt grupate n perechi i intr n fiecare a doua matrice. Fiecrui CLB i se asociaz patru linii verticale i patru linii orizontale, pentru realizarea conexiunilor.

Liniile lungi asemntor liniilor de dubl lungime formeaz o gril de metal ce acoper toat aria circuitului. Aceste linii cu un fun-out ridicat i timpi de propagare minimi pot conduce la semnale critice. La cele dou linii orizontale fiecare CLB se poate conecta prin intermediul unui buffer 3-state. Astfel c aceste linii pot implementa bus-uri uni- sau bi-direcionale sau funcii cablate.

Matricea de cuplare programabil. Liniile de simpl i dubl lungime verticale i orizontale se intersecteaz n aa numita matrice de cuplare programabil (programmable switcing matrix PSM). Romburile de la intersecia a dou linii reprezint tranzistoarele de trecere utilizate pentru realizarea conexiunilor ntre linii

. Cteva posibiliti de interconectare oferite de PSM:

Arhitecturi FPGA i CPLD combinate

Tehnologia CPLD ofer performane asemntoare tehnologiei FPGA pentru aplicaii de complexitate medie, la un pre de cost mai sczut. n acelai timp circuitele CPLD au o reea de interconexiuni de lungime fix (o proprietate a matricii de interconectare) ceea ce face ca sistemele numerice dezvoltate cu un circuit CPLD s prezinte ntrzieri predictibile n totalitate chiar din faza de proiectare. ntrzierile dintre fiecare dou celule logice coninute n CPLD sunt fixe i se cunosc. Aceasta se datoreaz faptului c structura de interconexiuni dintr-un CPLD este format din linii conductoare de lungime constant ce strbat structura circuitului pe toat lungimea i limea acestuia.

n contrast cu CPLD-urile, FPGA-urile au o structur de interconexiuni format din segmente care strbat circuitul, iar capetele acestora sunt conectate de o matrice de interconectare permind semnalelor s ajung de la o celul logic la alta. Numrul de segmente necesare pentru a conecta dou celule logice nu este nici fix i nici predictibil, deci ntrzierile nu se pot cunoate dect dup ce se face asignarea i plasarea celulelor (dup implementare) .

Odat cu creterea nivelului de integrare a circuitelor au aprut arhitecturi care combin avantajele CPLD i FPGA. Un exemplu este familia de circuite FLEX (Flexible Logic Element matriX), firma ALTERA. Aceste arhitecturi sunt utilizate i n circuitele integrate de tipul sistem pe chip SOPC (system on programmable chip).

Schema de structur a circuitului FLEX10K:

Arhitectura general a circuitelor Altera, care se bazeaz pe tehnologia de programare EPROM const dintr-o reea de celule programabile, numite blocuri ale reelei logice (Logic Array Block - LAB), interconectate printr-o resurs de rutare numit reea de interconectare programabil (Programmable Interconnect Array - PIA).Interconexiunile sunt de dou tipuri: locale (pentru conectarea elementelor logice din LAB) i globale (pentru conectarea LAB-urilor).

Un bloc LAB(Logic Arraz Blocks) al circuitului Flex10K const din 8 elemente logice (LE) i interconexiuni locale prin care un element logic poate fi conectat cu oricare alt element logic din cadrul aceluiai bloc. Fiecare element logic const dintr-o tabel LUT cu patru intrri, care reprezint un generator de funcii cu patru variabile, un bistabil programabil cu intrare de validare sincron i dou tipuri de interconexiuni dedicate pentru fluxul de date: lanul de transport i lanul de cascadare.

Interconexiunile locale sunt legate la interconexiunile globale FastTrack ale circuitului. Ca i liniile lungi ale circuitului XC4000, fiecare conexiune FastTrack se extinde pe toat nlimea sau limea circuitului. O diferen major ntre circuitele Flex10K i FPGA este ns c FastTrack conine numai linii lungi (tipic pentru CPLD), ceea ce permite configurarea simpl a circuitului. Toate liniile orizontale FastTrack sunt identice. De aceea, ntrzierile de interconectare ale circuitului sunt mai predictibile dect cele ale altor circuite FPGA care utilizeaz segmente mai scurte, deoarece cile mai lungi conin mai puine comutatoare programabile. Mai mult, conexiunile ntre liniile orizontale i verticale trec prin buffere active, mbuntind n plus predictibilitatea.

Familia de circuite Flex 10K dispune n plus de blocuri SRAM ncorporate (EAB Embedded Array Block) de dimensiune variabil. Structura unui EAB:

Blocurile SRAM pot fi configurate pentru diferite aranjamente: 2568, 5124, 1K2, sau 2K1. Aceste blocuri pot fi configurate i pentru implementarea unui circuit logic complex, ca de exemplu un circuit de nmulire.

Blocurile SRAM, n afar de modulul de memorie mai conin cteva bistabile D sincrone i multiplexoare programabile. Interconexiunea locala EAB primete 22-26 semnale de la rndul de interconexiune global. nscrierea datelor n modulul de memorie poate fi sincrona de la bistabili, i asincron, direct de la interconexiunea local. Semnalele de ieire ale modulului de memorie pot fi transmise fie la rndul, fie la coloana de interconexiuni globale sincron de la ieirea bistabilului, asincron direct de la modul.

Sisteme pe circuite integrate programabile - SOPC (System on programmable Chip)

Costul redus, performana ridicat, densitatea mare a circuitelor programabile a fcut posibil apariia circuitelor integrate, numite SOPC. SOPC pot fi de 2 tipuri:

cu structur uniform i posibilitate de reconfigurare a tuturor unitilor din sistem (nuclee programabile - soft cores);

cu uniti fixe n care sunt realizate anumite funcii i uniti programabile (nuclee hard hard cores). Iniial, nucleele hard erau destul de simple, n prezent ele reprezint microprocesoare sau microcontrolere.

n SOPC cu nuclee programabile este posibil realizarea prilor componente a procesoarelor, memoriilor, dispozitivelor periferice. Resursele de proiectare permit formarea pe acelai circuit a componentelor virtuale nucleelor soft, IP (Intellectual Property) a diferitor productori. Dar n aceste sisteme nu se atinge viteza maxim a nucleelor.n SOPC cu nuclee hard, unitile predefinite ocup un spaiu de cteva ori mai mic, n comparaie cu nuclee soft, deoarece ele nu conin interconexiuni programabile i sunt optimizate pentru ndeplinirea funciilor concrete. n acelai timp, se pierde flexibilitatea funcional. Nucleele hard sunt fixate pe suprafaa circuitului i aceasta poate crea dificulti n cazul plasrii i rutrii componentelor programabile, neatingndu-se performana maxim.

n prezent se dezvolt pe larg ambele tipuri de SOPC. De exemplu, firma Altera utilizeaz nucleul programabil Nios pe circuitele APEX20KE i APEXII. Nivelul de integrare a acestor circuite este att de nalt, c nucleul ocup un spaiu foarte mic. Firma Xilinx a elaborat nucleul programabil Microblaze pentru familia VirtexII, care lucreaz pe o frecven de 125MHz.

Nucleele hard se bazeaz pe arhitectura RISC a procesoarelor firmelor ARM Limited, MIPS Tehnologies i IBM Microelectronics, lucreaz pe o frecven de peste 200 MHz, au inclus principiul pipeline, ndeplinesc operaii scalare au un consum de putere redus i ocup 2-3 mm2. Arhitecturile standarde ale acestor procesoare permit utilizarea diverselor resurse CAD ce reduce complexitatea de proiectare i micoreaz timpul de lansare pe pia.

Exemple de SOPC cu nuclee programabile:Familia APEX20K, Altera;

Familia Virtex, Xilinx;

Familia ProASIC, Actel;Familia Delta39K, Cypress Semiconductor.Exemple de SOPC cu nuclee hard fr procesoare ncorporate:

Familia ESP (Embedded Standard Products), firma QuickLogic, cuurmtoarele subfamilii: QuickRAM, QuickPCI, quickPC, QuickDSP, QuickSD. Prile programabile a acestor circuite sunt realizate cu antifuzibile i au urmtoarele proprieti: o singur programare, volum mai mic a interconexiunilor, vitez de lucru nalt, sensibilitate mai mic la temperatur i radiaie.

Exemple de SOPC cu nuclee hard cu procesoare ncorporate:

1. FPSLIC (Field Programmable System-Level Integration Chip), Atmel, cu urmtoarele blocuri:

microcontroler AVR i unitile periferice;

memorie SRAM;

FPGA AT40K 2. Virtex4, Xilinx. Componente:- procesoare PowerPC

- controlerul Ethernet MAC (Media Access Control) cu trei moduri de operare (10/100/1000 Mb/s)

- tranceivere seriale cu viteza cuprins ntre 622 Mb/s i 11,1 Gb/s

- slice-uri dedicate procesrii digitale a semnalelor DSP (XtremeDSP Slice) funcionnd la 500 MHz. Acestea conin:

- multiplicatoare pe 18x18 bii, dedicate,

- nivele de pipeline opionale pentru mbuntirea performanelor,

- blocuri multiplicatoare-acumulatoare sau multiplicatoare-sumatoare,

Procesul de proiectare cu circuite programabileEtapele de proiectarePentru proiectarea sistemelor digitale utiliznd circuite programabile, cum sunt circuitele

FPGA i CPLD, se utilizeaz pachete de programe de proiectare asistat de calculator (CAD Computer Aided Design). Aceste pachete de programe asist proiectantul n toate etapele procesului de proiectare. Astfel, majoritatea pachetelor CAD pentru circuitele programabile asigur urmtoarele funcii principale:

Specificarea (descrierea) sistemului digital;

Sinteza descrierii, deci transformarea acesteia ntr-o list de conexiuni coninnd pori elementare i interconexiunile dintre ele;

Simularea funcionrii sistemului pe baza listei de conexiuni obinute, nainte de implementarea ntr-un anumit circuit;

Implementarea sistemului ntr-un circuit prin adaptarea listei de conexiuni pentru a se utiliza n mod eficient resursele disponibile ale circuitului;

Configurarea (programarea) circuitului pentru ca acesta s realizeze funcia dorit.

Etapele din cadrul procesului de proiectare a sistemelor digitale utiliznd circuite programabile:

Descrierea sistemuluiPrincipalele metode pentru descrierea sistemelor digitale:

- prin scheme logice,

- prin limbaje de descriere hardware (HDL Hardware Description Language),

- prin diagrame de stare.

n mod tradiional, sistemele digitale sunt descrise prin scheme logice. Pentru aceasta se utilizeaz un editor schematic, care permite specificarea componentelor care trebuie utilizate i a modului n care acestea trebuie interconectate.

Pe lng schemele logice, o alt posibilitate pentru descrierea sistemelor digitale este cu ajutorul limbajelor de descriere hardware. Aceste limbaje sunt din ce n ce mai utilizate, fiind preferate pentru descrierea sistemelor cu complexitate mai ridicat, datorit urmtoarelor avantaje principale:

Posibilitatea descrierii funcionale a sistemelor, aceasta fiind o descriere la un nivel mai nalt, fr detalierea structurii la nivelul componentelor simple sau a porilor elementare. Astfel, timpul necesar pentru descrierea sistemelor complexe se reduce n mod semnificativ.

Independena descrierilor HDL fa de diferitele tipuri de circuite. n timp ce schemele logice sunt realizate cu componente de bibliotec specifice unei anumite familii de circuite, descrierile HDL sunt complet independente de un anumit circuit, astfel nct aceeai descriere se

poate utiliza pentru implementarea sistemului ntr-un anumit circuit FPGA, dar i ntr-un alt tip de circuit programabil, de exemplu, ntr-o reea logic programabil.

Posibilitatea modificrii mai simple a descrierii HDL a unui sistem, datorit faptului c o asemenea descriere reprezint n acelai timp o documentare a sistemului. Exist diferite limbaje de descriere hardware, dar mai utilizat este limbajul VHDL (VHSIC Hardware Description Language), VHSIC fiind acronimul pentru Very High Speed Integrated Circuit. Pe lng acest limbaj, pentru proiectarea cu circuite FPGA se mai utilizeaz limbajul Verilog. Pentru proiectarea cu circuite CPLD, un limbaj utilizat n mod frecvent este ABEL (Advanced Boolean Expression Language). Limbajele VHDL i Verilog sunt standardizate de institutul IEEE.

Sinteza sistemuluiDup descrierea sistemului digital, etapa urmtoare din cadrul procesului de proiectare este cea de sintez a sistemului. Sinteza const n translatarea schemei logice, a descrierii HDL sau a diagramei de stare ntr-o list de conexiuni. Aceast translatare se realizeaz cu ajutorul unui program de sintez din cadrul sistemului CAD. Lista de conexiuni (netlist) este o descriere compact a sistemului digital sub form textual, n care sunt specificate componentele sistemului, interconexiunile dintre acestea i pinii de intrare/ieire. Aceast list este prelucrat de celelalte componente ale sistemului CAD pentru realizarea etapelor urmtoare din cadrul procesului de proiectare.

Exist diferite formate pentru listele de conexiuni, cel mai utilizat fiind formatul EDIF (Electronic Digital Interchange Format), acesta reprezentnd un standard industrial. Pe lng acest format standard, se pot utiliza diferite formate care sunt specifice anumitor productori de circuite. Un exemplu este formatul XNF (Xilinx Netlist Format), care este formatul propriu al firmei Xilinx, cel mai important productor de circuite programabile de tip FPGA i CPLD. O alt posibilitate este utilizarea unui limbaj de descriere hardware ca format pentru lista de conexiuni. De exemplu, sistemul CAD poate utiliza o reprezentare structural a sistemului proiectat ntr-un limbaj de descriere hardware specificat de proiectant.

Relaia dintre schema logic a unui circuit simplu i un format posibil al unei liste de conexiuni:

n prima parte a listei de conexiuni sunt declarate componentele din cadrul schemei, iar n a doua parte sunt specificate conexiunile dintre componente. Denumirile componentelor sunt G1..G7, iar denumirile conexiunilor sunt N1..N10. Aceste denumiri sunt fie cele specificate de proiectant, fie cele asignate n mod automat de sistemul CAD.

n circuitul ilustrat exist dou inversoare (G1 i G2), dou pori I cu dou intrri (G3 i G4), o poart I cu patru intrri (G7) i dou bistabile JK (G5 i G6). Inversoarele au un pin de intrare IN, un pin de ieire OUT, un pin de alimentare Vcc i un pin de mas GND. Similar, porile I cu dou intrri au doi pini de intrare IN1 i IN2, un pin de ieire OUT, un pin de alimentare i un pin de mas. Bistabilele au doi pini pentru intrrile de date J i K, un pin pentru intrarea de ceas C i un pin pentru ieirea Q, pe lng pinii de alimentare i mas. Pentru simplitate, pinii i semnalele de alimentare i mas au fost omii n aceast figur. O conexiune este indicat prin listarea tuturor pinilor care sunt conectai mpreun. Semnalele de intrare X i CLK sunt conectate la pinii de intrare cu aceleai nume ai circuitului, iar semnalul de ieire Z este conectat la pinul de ieire al circuitului.

Proiectantul poate specifica diferite criterii de optimizare de care s se in cont n procesul de sintez. Exemple de asemenea opiuni sunt:

- minimizarea numrul de pori elementare necesare,

- obinerea vitezei maxime de funcionare a circuitului,

- minimizarea puterii consumate.

Proiectantul poate experimenta cu diferite criterii de optimizare pentru a obine soluia cea mai convenabil pentru aplicaia respectiv.Simularea funcionaln aceast etap se utilizeaz un program simulator pentru verificarea funcionrii sistemului proiectat, nainte de implementarea acestuia ntr-un circuit programabil. Aceast verificare se refer doar la aspectele funcionale ale sistemului, fr a se lua n considerare ntrzierile semnalelor, care vor fi cunoscute numai dup implementare. Pentru verificarea funcional proiectantul furnizeaz simulatorului mai multe combinaii ale valorilor semnalelor de intrare, o asemenea combinaie fiind numit vector de test. De asemenea, proiectantul poate specifica valorile semnalelor de ieire care trebuie generate de sistem pentru fiecare vector de test.

Simulatorul aplic pe rnd cte un vector de test la intrrile sistemului, determin semnalele de ieire care sunt generate de sistem i le compar cu valorile acestor semnale care au fost specificate de proiectant. n cazul n care apar diferene, simulatorul afieaz mesaje care indic diferenele aprute. Proiectantul va efectua modificrile necesare ale descrierii sistemului pentru a corecta erorile aprute, va efectua sinteza descrierii modificate i va executa din nou simularea funcional. Aceste etape vor fi repetate pn cnd sistemul va funciona conform cerinelor.Modul n care pot fi vizualizate pe ecranul calculatorului semnalele de intrare i de ieire ale unui circuit:

Maparea tehnologic

Etapele urmtoare din cadrul procesului de sintez realizeaz implementarea sistemului proiectat ntr-un circuit programabil (FPGA sau CPLD). Prima etap din cadrul implementrii este cea de mapare tehnologic. Aceast etap const dintr-o serie de operaii care realizeaz prelucrarea listei de conexiuni i adaptarea acesteia la particularitile i resursele disponibile ale circuitului utilizat pentru implementare. Operaiile executate n aceast etap difer n funcie de sistemul de proiectare. Cele mai obinuite operaii sunt:

adaptarea la elementele fizice ale circuitului,

optimizarea i verificarea regulilor de proiectare (de exemplu, testarea depirii numrului pinilor de I/E disponibili n cadrul circuitului). n timpul acestei etape, proiectantul selecteaz tipul circuitului programabil care va fi utilizat, capsula circuitului integrat, viteza i alte opiuni specifice circuitului respectiv.

n urma execuiei operaiilor din etapa de mapare tehnologic se genereaz un raport detaliat al rezultatelor tuturor programelor executate. Pe lng mesaje de eroare i de avertizare, se creeaz de obicei o list cu resursele utilizate din cadrul circuitului.

Plasarea i rutarea

Aceste operaii sunt executate n cazul utilizrii unui circuit FPGA pentru implementare.

Pentru proiectarea cu circuite CPLD, operaia echivalent este numit adaptare (fitting).

Plasarea este procesul de selectare a unor module sau blocuri logice ale circuitului programabil care vor fi utilizate pentru implementarea diferitelor funcii ale sistemului digital.

Rutarea const n interconectarea acestor blocuri logice utiliznd resursele de rutare disponibile ale circuitului.

Majoritatea sistemelor CAD realizeaz operaiile de plasare i rutare n mod automat, astfel nct utilizatorul nu trebuie s cunoasc detaliile arhitecturii circuitului utilizat pentru implementare.

Analiza de timp

Pachetele de programe CAD pentru proiectarea sistemelor digitale conin de obicei un program numit analizor de timp, care poate furniza informaii despre ntrzierile semnalelor. Aceste informaii se refer att la ntrzierile introduse de blocurile logice, ct i la ntrzierile datorate interconexiunilor. Analizorul poate afia aceste informaii n diferite moduri, de exemplu, prin ordonarea conexiunilor n ordinea descresctoare a ntrzierilor semnalelor. Proiectantul poate utiliza informaiile despre ntrzierile semnalelor pentru a realiza o nou simulare a sistemului, n care s se in cont de aceste ntrzieri. Aceast operaie prin care se furnizeaz simulatorului informaii detaliate despre ntrzierile semnalelor se numete adnotare invers (back-annotation).

Anumite sisteme permit utilizatorilor experi plasarea i rutarea manual a unor poriuni critice ale sistemului digital pentru a obine performane superioare.

Configurarea sau programarea circuitului

Operaia de configurare se refer la circuitele programabile bazate pe memorii volatile SRAM (Static Random Access Memory) i const din ncrcarea informaiilor de configurare n memoria circuitului. Operaia de programare se refer la circuitele programabile bazate pe memorii nevolatile (cum sunt circuitele care conin antifuzibile). Aceast operaie se execut similar cu cea de configurare, dar informaiile de configurare sunt pstrate i dup ntreruperea tensiunii de alimentare.

La sfritul operaiilor de plasare i rutare, se genereaz un fiier care conine toate informaiile necesare pentru configurarea circuitului. Aceste informaii se refer att la configurarea blocurilor logice ale circuitului, ct i la specificarea interconexiunilor dintre blocurile logice. Fiierul n care se nscriu aceste informaii conine, n principiu, un ir de bii (bitstream), fiecare bit indicnd starea nchis sau deschis a unui comutator. Circuitele programabile conin un numr mare de asemenea comutatoare, un comutator fiind realizat sub forma unui tranzistor sau a unei celule de memorie. Un bit de 1 din irul de bii va determina nchiderea unui comutator i, deci, stabilirea unei conexiuni.

Biii din acest fiier de configurare sunt aranjai ntr-un anumit format pentru a realiza o coresponden ntre un bit i comutatorul corespunztor.

Coninutul fiierului de configurare se transfer la circuitul programabil, aflat de obicei pe o plac de circuit imprimat mpreun cu alte circuite. Comutatoarele circuitului se nchid sau rmn deschise n funcie de valorile biilor din irul de configurare. Dup terminarea configurrii, circuitul va funciona conform descrierii sistemului digital care a fost implementat.

Din cauza memoriei volatile, circuitul trebuie configurat din nou dup fiecare ntrerupere a tensiunii de alimentare. Informaiile de configurare pot fi pstrate ntr-o memorie nevolatil PROM (Programmable Read Only Memory), existnd posibilitatea configurrii automate a circuitului din aceast memorie nevolatil la aplicarea tensiunii de alimentare.

Configurarea sau programarea se pot realiza utiliznd interfaa paralel a calculatorului. Pentru aceasta, este necesar ca placa cu circuitul programabil s conin un conector pentru interfaa paralel, pentru transfer utilizndu-se un cablu paralel.

Exemplu de cablu paralel obinuit, care conine conectori cu 25 de contacte DB25.

O alt posibilitate este utilizarea unui cablu special i a unei metodologii de configurare propuse de organizaia JTAG (Joint Test Advisory Group). Aceast metodologie, cunoscut i sub numele de Boundary-Scan, a fost standardizat de institutele IEEE (Institute of Electrical and Electronic Engineers) i ANSI (American National Standards Institute) ca standardul 1149.1, reprezentnd un set de reguli de proiectare care faciliteaz configurarea sau programarea circuitelor, testarea i depanarea acestora. Un capt al cablului JTAG se conecteaz la interfaa paralel a calculatorului, iar cellalt capt se conecteaz la un numr de 5 pini speciali de pe placa circuitului programabil. Informaiile de configurare sunt preluate n paralel de la calculator i sunt transferate serial (bit cu bit) la circuitul programabil. Un asemenea cablu permite i testarea sistemului digital implementat prin citirea unor informaii (valori ale semnalelor sau coninutul unor locaii de memorie) de la circuitul programabil n timpul funcionrii, transferul acestora la calculator i vizualizarea lor pe ecran.

Exemplu de cablu JTAG al firmei Xilinx (Parallel Cable IV):

Exist mai multe variante de cabluri JTAG produse de aceast firm. Cablul MultiLINX poate fi conectat fie la interfaa serial RS232 a calculatorului, fie la interfaa USB, prin intermediul unui cablu serial sau al unui cablu USB. Dispozitivul MultiPRO poate fi utilizat att ca i cablu de configurare, ct i ca programator pentru memorii PROM i circuite CPLD CoolRunner II cu ajutorul unor adaptoare. Cablurile Parallel Cable III i Parallel Cable IV se conecteaz la interfaa paralel a calculatorului. Cablul Parallel Cable IV permite o rat de transfer superioar comparativ cu cablul Parallel Cable III (de pn la 5 MB/s fa de 500 KB/s).

Exemplu deconectare a unui cablu JTAG n modul JTAG (sau Boundary-Scan) la un sistem de dezvoltare coninnd unul sau mai multe circuite programabile. Firele de legtur se conecteaz cu un capt la pinii JTAG ai cablului, iar cu cellalt capt la pinii JTAG corespunztori ai plcii de dezvoltare. Un asemenea cablu poate fi utilizat fie pentru configurarea unui singur circuit programabil, fie a mai multor circuite conectate ntr-un lan Boundary-Scan. De menionat c un cablu JTAG poate fi utilizat de obicei i pentru configurarea circuitelor n alte moduri dect modul JTAG, cum sunt modurile Slave Serial sau Slave Parallel.

Depanarea sistemului

n aceast ultim etap a procesului de proiectare se verific funcionarea sistemului digital proiectat n condiii reale. O funcionare necorespunztoare se poate datora nerespectrii specificaiilor de proiectare, a specificaiilor circuitului utilizat pentru implementare, a unor aspecte legate de ntrzierea semnalelor etc. Depanarea poate fi simplificat dac circuitul se configureaz astfel nct s conin unele module speciale care permit citirea valorii unor semnale n timpul funcionrii i transferul acestor informaii la calculator, utiliznd un cablu JTAG i un program special pentru vizualizarea semnalelor dorite.

_1277992351.vsd