Sunteți pe pagina 1din 57
Universitatea Transilvania Bra¸sov ˘ FACULTATEA DE INGINERIE ELECTRIC A S¸I S¸TIINT¸A CALCULATOARELOR ing. Traian

Universitatea Transilvania Bra¸sov

˘

FACULTATEA DE INGINERIE ELECTRIC A S¸I S¸TIINT¸A

CALCULATOARELOR

ing. Traian Tulbure

ARHITECTURI MICROELECTRONICE RECONFIGURABILE PENTRU TEHNOLOGII TIP STRUCTURED ASIC

MICROELECTRONIC RECONFIGURABLE ARCHITECTURES FOR STRUCTURED ASIC TECHNOLOGY

Rezumatul tezei de doctorat PhD thesis summary

Conduc˘ator ¸stiint¸ific Prof. dr. ing. Gheorghe Toac¸se

BRAS¸OV

2011

MINISTERUL EDUCAŢIEI, CERCETĂRII, TINERETULUI ŞI SPORTULUI

UNIVERSITATEA TRANSILVANIA DIN BRAŞOV

500036 BRAŞOV, B-DUL EROILOR NR. 29, TEL. 0040-0268-41300, FAX 0040-0268-410525 RECTORAT

Către

Vă aducem la cunoştinţă că în ziua de vineri, 21.10.2011, ora 11 00 , în sala N II 1, la Facultatea Inginerie Electrică şi Ştiinţa Calculatoarelor va avea loc susţinerea publică a tezei de doctorat intitulată:

ARHITECTURI MICROELECTRONICE RECONFIGURABILE PENTRU TEHNOLOGII TIP STRUCTURED ASIC” elaborată de s.l. ing. Traian TULBURE, în vederea obţinerii titlului ştiinţific de DOCTOR, în domeniul fundamental ŞTIINŢE INGINEREŞTI, domeniul INGINERIE ELECTRONICĂ ŞI TELECOMUNICAŢII

COMISIA DE DOCTORAT Preşedinte:

Conducător ştiinţific:

Referenţi:

- Prof.univ.dr.ing. Sorin Aurel MORARU Decanul Facultăţii I.E.S.C. - Prof.univ.dr.ing. Gheorghe TOACŞE Universitatea “Transilvania” din Braşov - Prof.univ.dr.ing. Gheorghe ŞTEFAN Universitatea Politehnică Bucureşti

- Conf.univ.dr.ing. mat. Ion Bebe BUCUR Universitatea Politehnică Bucureşti

- Prof.univ.dr.ing. Dan NICULA Universitatea “Transilvania” din Braşov

Vă invităm să luaţi parte la şedinţa publică de susţinere a tezei de doctorat. Aprecierile dvs. asupra rezumatului tezei de doctorat vă rugăm să le trimiteţi până cel târziu cu o zi înainte de data susţinerii, la unul din numererele de fax:

RECTORAT UNIVERSITATE:

0268-410525

CATEDRA DE ELECTRONICĂ ŞI CALCULATOARE:

0268-478705

Prefat¸˘a

Avansul tehnologic a oferit proiectant¸ilor o capacitate logic˘a din ce ˆın ce mai mare. Prin folosirea noilor

metologii de proiectare a sistemelor pe cip (SoC), de¸si se r educe din complexitate, este dificil s˘a se asigure

ˆ

proiectatarea ¸si testarea unui circuit care s˘a funct¸ion eze corect. In condit¸iile ˆın care costurile asociate fabricat¸iei circuitelor integrate sunt ˆın continu˘a cre¸stere, o posibil˘a solut¸ie a acestei probleme este ˆınglobarea unor blocuri reconfigurabile ˆın circuitele integrate pentru a asigura flexibilitate post-fabricat¸ie. Arhitectu- rile reconfigurabile pentru tehnologiile structured ASIC rezolv˘a acest˘a problem˘a, oferind posibilitatea de

reconfigurare ˆıntre rul˘ari succesive ale aplicat¸iei, ¸s i necesit˘a un minim de arie adit¸ional˘a.

ˆ

In acest˘a tez˘a se definesc arhitecturi microelectronice r econfigurabile pentru tehnologii de tip structured ASIC ¸si se dezvolt˘a metodologia de implementare ¸si de program are a acestora. Aceste noi arhitecturi sunt

fundamentate atˆat pe ideile care stau la baza dispozitivelor programabile comerciale actuale, cˆat ¸si pe cˆateva idei din domeniul de cercetare a calculului reconfigurabil, ˆın special legate de arhitecturile multi-context ¸si de virtualizarea hardware-ului, folosind tehnici de multiplexare ˆın timp. Ele sunt dezvoltate ˆıntr-o gam˘a larg˘a de dimensiuni ¸si de posibilit˘at¸i de configurare pentru a oferi utilizatorilor atˆat flexibilitate post-product¸ie pentru depanarea ¸si reproiectarea anumitor p˘art¸i ale aplicat¸iei, cˆat ¸si posibilitatea de configurare rapid˘a pentru a fi utilizate ˆın domeniul de calcul reconfigurabil. Astfel, su nt prezentate solut¸ii pornind de la o complexiate mic˘a

a circuitului specific˘a dispozitivelor PAL (Programmable Array Logic ), PLA (Programmable Logic Array)

pˆan˘a la arhitecturi tip CPLD (Complex Programmable Logic Device) sau FPGA (Field-Programmable Gate Array), pornind de la reconfigurarea static˘a pˆan˘a la reconfigurarea dinamic˘a ˆıntr-un singur tact de ceas al aplicat¸iei. Prin particularizarea acestor circuite pe tehnologiile structured ASIC, se combin˘a avantajele arhitecturale cu avantajele tehnologice, pentru a obt¸ine solut¸ii eficiente din punct de vedere al performant¸elor de arie, de timp ¸si de putere consumat˘a ¸si care, totodat˘a, permit reducerea efortului de implementare a circuitelor integrate odat˘a cu scalarea tehnologic˘a spr e tehnologii mult submicronice.

Arhitecturile reconfigurabile dinamic, multi-context, utilizeaz˘a o abordare atˆat spat¸ial˘a, cˆat ¸si temporal˘a

a capacit˘at¸ii logice a unui circuit. Acestea permit recon figurarea rapid˘a, ˆın timpul funct¸ion˘arii circuitului,

a unei aplicat¸ii sau a unei p˘art¸i a acesteia, prin stocarea a multiple configurat¸ii ˆın memoria de pe cip. Arhitecturile reconfigurabile dinamic multi-conext, pentru tehnologii structured ASIC, ofer˘a solut¸ii pentru m˘arirea capacit˘at¸ii logice, pentru reconfigurare rapid ˘a ¸si pentru emularea mai multor circuite ce comunic˘a ˆıntre ele ˆıntr-un sistem hardware virtual.

ˆ

In prezenta tez˘a se dezvolt˘a ˆın detaliu aceste arhitectu ri reconfigurabile pentru structured ASIC, se implementeaz˘a ¸si se analizeaz˘a comparativ performant¸ele de arie ¸si de timp cu cele ale dispozitivelor programabile comerciale la acela¸si nod tehnologic. Se investigheaz˘a aria suplimentar˘a necesar˘a pentru reconfigurare prin prisma raportului de arie per context, prin implementarea unei aplicat¸ii de test direct pe structured ASIC ¸si prin programarea corespunz˘atoare a arhitecturilor reconfigurabile. Se definesc extensii de test care m˘aresc semnificativ acoperirea de testare f˘ar a˘ a afecta performant¸ele de timp ¸si de arie ale circuitului.

Aceast˘a tez˘a nu ar fi ap˘arut f˘ar˘a sprijinul moral ¸si profesional al d-lui prof. dr. ing. Gheorghe Toac¸se. De aceea, ¸int s˘a ˆıi mult¸umesc ˆın mod deosebit pentru ˆın drumarea pe care mi-a oferit-o pe parcursul anilor de doctoratur˘a.

T¸in s˘a ˆımi exprim recuno¸stint¸a fat¸˘a de colegii din cadrul Catedrei de Electronic˘a ¸si Calculatoare pentru sprijinul acordat de-a lungul ˆıntregii perioade de desf˘a¸surare a stagiului de doctorat ¸si pentru sfaturile primite pentru finalizarea prezentei lucr˘ari.

De asemenea, multumesc colectivului de la eASIC Corporation care m-a ajutat cu sfaturi tehnice, mi-a pus la dispozitie materialul necesar ¸si mi-a oferit sponzorizari˘ ˆın cazul deplas˘arii la conferint¸ele din str˘ain˘atate.

Nu ˆın ultimul rˆand, a¸s vrea s˘a mult¸umesc familiei care m i-a fost al˘aturi ˆın aceast˘a perioad˘a solicitant˘a oferindu-mi ˆıncredere ¸si ˆıncuraj˘ari pentru a-mi ˆımplini visul.

Cuprins

1 Introducere

4

1.1 Obiectivele tezei

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.2 Planul lucr˘arii

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

2 Arhitecturi reconfigurabile

 

7

2.1 Circuite programabile comerciale

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

2.2 Arhitecturi programabile pentru sisteme pe cip (SoC)

 

9

2.3 Arhitecturi reconfigurabile multi-context

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

2.4 Concluzii

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

3 Tehnologii tip structured ASIC

 

14

3.1 Arhitectura platformelor de tip structured ASIC

 

14

3.2 Implementarea proiectelor pe platforme structured ASIC

 

17

3.3 Concluzii

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

4 Arhitecturi reconfigurabile pentru tehnologii tip struct ured ASIC

 

18

4.1 Arhitecturi SPLD .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

4.2 Arhitecturi CPLD

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

4.3 Arhitecturi FPGA

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

32

4.4 Contribut¸ii originale

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

36

5 Testabilitatea arhitecturilor reconfigurabile pentru st ructured ASIC

 

38

5.1 Gradul de acoperire a test˘arii pentru arhitecturile reconfigurabile

 

38

5.2 Optimizarea testabilit˘at¸ii pentru arhitecturile reconfigurabile

 

38

5.3 Contribut¸ii originale

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

6 Implementarea proiectelor pe arhitecturi reconfigurabil e pentru structured ASIC

 

42

6.1 Descrierea metodologiei de implementare .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

42

6.2 Studiu de caz

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

44

6.3 Contribut¸ii originale

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

47

7 Concluzii finale

 

48

7.1 Contribut¸ii originale

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

48

7.2 Direct¸ii viitoare de cercetare

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

50

 

3

1. Introducere

Legea lui Moore descrie o tendint¸˘a de lung˘a durat˘a ˆın pr ocesul de fabricat¸ie a circuitelor integrate,

ˆ

ce guverneaz˘a industria microelecronic˘a mai bine de jum˘atate de secol.

Moore, prin scalare ¸si ˆın consecint¸˘a prin cre¸sterea densit˘at¸ii de integrarea (dublare cam la fiecare doi ani), performant¸a circuitelor integrate cre¸ste aproape expon ent¸ial. Avantajele generate de scalarea tehnologic˘a sunt contrabalansate de un mare num˘ar de dezavantaje: tehn ologia devine din ce ˆın ce mai scump˘a, efortul de proiectare cre¸ste, num˘arul de defecte cre¸ste ¸si meto dologia de lucru se complic˘a. Pentru eliminarea acestor obstacole tehnologice, comunitatea proiectant¸ilor ¸si a fabricant¸ilor de circuite integrate, urmeaz˘a dou˘a direct¸ii principale: ˆımbun˘at˘at¸irea proceselor tehnologice de fabricat¸ie ¸si crearea de noi arhitecturi care s˘a diminueze efectele problemelor tehnologice asupra per formant¸elor circuitelor.

In conformitate cu legea lui

Tehnologiile de fabricare a circuitelor integrate cele mai utilizate ˆın ziua de ast˘azi sunt implementarea cu celule standard ¸si implementarea cu circuite programab ile tip FPGA (Field Programmable Gate Array).

ˆ

Tehnologia de celule standard domin˘a implementarea circu itelor integrate de mare performant¸˘a. Ins˘a, odat˘a cu avansul tehnologic, proiectarea ¸si fabricarea proiectelor ˆın tehnologie de celule standard a devenit extrem de scump˘a ¸si de complicat˘a. Circuitele FPGA nu pot intra ˆın competit¸ie, datorit˘a faptului c˘a la aceea¸si caracteristic˘a de proces tehnologic ocup˘a o arie de 30-40 ori mai mare, consum˘a de 12-14 ori mai mult˘a putere ¸si au frecvent¸a de lucru de 4-5 ori mai sc˘azut˘a [1]. Difer ent¸a mare de performant¸˘a ¸si de cost ˆıntre tehnologiile de celule standard ¸si FPGA, a determinat aparit¸ia tehnologiilor de tip structured ASIC. Acestea au cea mai mare parte a logicii prefabricat˘a, iar proiectant¸ii trebuie s˘a elaboreze o singur˘a masc˘a de metalizare pentru programarea circuitului. Realizˆand aceast˘a programare, ˆın ultima faz˘a de procesare a plachetei de siliciu, se diminueaz˘a inconvenientul pret¸ului ridicat al m˘a¸stilor tehnologice, dar se p˘astreaz˘a avantajul asupra circuitelor FPGA prin eliminarea nodurilor reprogramabile electric. Circuite de tip structured ASIC sunt disponibile comercial [2], [3], fiind o solut¸ie tot mai avantajoas˘a pentru implementarea proiectelor, pe m˘asur˘a ce costul de fabricat¸ie al m˘a¸stilor cre¸ste. Circuitele FPGA au ˆıns˘a avantajul flexibilit˘at¸ii, putˆand fi programate ¸si reprogramate de un num˘ar foarte mare de ori, pentru a rezolva o problem˘a ˆın proiectul implementat, pentru ad˘augarea de noi facilit˘at¸i sau chiar pentru a implementa un proiect complet nou.

Aceast˘a lucrare define¸ste arhitecturi reconfigurabile pe baza tehnologiilor tip structured ASIC. Prin acestea autorul readuce reconfigurabilitatea pierdut˘a prin folosirea unui nivel de metalizare ˆın realizarea configurat¸i- ilor de celule logice ¸si a interconexiunilor ˆın proiectele implementate pe structured ASIC. Aceste arhitecturi reconfigurabile permit reprogramarea unei p˘art¸i a aplica¸iei,t post-product¸ie, pentru a rezolva o problem˘a de proiectare, pentru a ad˘auga o nou˘a facilitate, pentru a implementa o nou˘a idee sau pentru utilizarea circuitelor ˆın domeniul de calcul reconfigurabil.

Conceptul utiliz˘arii acestor arhitecturi reconfigurabile, numite generic ePLD (embedded Programmable Logic Devices), este prezentat ˆın Figura 1-1. El presupune ˆınglobarea unor blocuri reconfigurabile, ce pot fi folosite ˆın implementarea unui sistem pe cip, SoC (System on Chip), pentru a permite proiectant¸ilor s˘a beneficieze de flexibilitatea caracteristic˘a circuitelor FPGA, numai ˆın modulele care chiar au nevoie de aceast˘a flexibilitate. Astfel se permite p˘astrarea unor p erformant¸e de timp ¸si arie specifice tehnologiei structured ASIC, pentru majoritatea modulelor ¸si, totodat˘a, se asigur˘a flexibilitatea de reprogramare post- product¸ie numai pentru modulele implementate pe arhitecturi reconfigurabile.

1.1 Obiectivele tezei

Principalul obiectiv al tezei ˆıl reprezint˘a dezvoltarea unor arhitecturi reconfigurabile, care adaug˘a flexi- bilitatea program˘arii post-fabricat¸ie a aplicat¸iilor implementate pe tehnologii structured ASIC. La acest

obiectiv se adaug˘a studiul testabilit˘at¸ii arhitecturilor propuse ¸si recomandarea unor modific˘ari care s˘a m˘areasc˘a gradul de testabilitate. Obiectivul principal include ¸si definirea unor metodologii de implementare a proiectelor pe arhitecturile propuse, folosind instrumentele software specifice tehnologiilor structured ASIC

la care se adaug˘a unelte software dedicate program˘arii ar hitecturilor configurabile, dezvotate de autor.

ˆ

In cadrul efortului de cercetare, pentru atingerea obiectivului principal al tezei, s-au urm˘arit mai multe direct¸ii de cercetare care au identificat ¸si rezolvat prob leme specifice ale c˘aror solut¸ii converg c˘atre obiectivu l principal:

5

Planul lucr˘arii

5 Planul lucr˘arii Figura 1-1: Conceptul arhitecturilor reconfigurabile pentru structured ASIC 1. Dezvoltarea unor

Figura 1-1: Conceptul arhitecturilor reconfigurabile pentru structured ASIC

1. Dezvoltarea unor arhitecturi reconfigurabile pentru structured ASIC care s˘a ofere posibilitatea de programare post-fabricat¸ie a aplicat¸iilor de diferite d imensiuni. Modalit˘at¸ile de reconfigurare stu- diate includ reconfigurarea static˘a, reconfigurare dinamic˘a ¸si reconfigurare dinamic˘a multi-context. Selectarea dimensiunii circuitului ¸si a modalit˘at¸ii de reconfigurare se face ˆın funct¸ie de necesit˘at¸ile utilizatorilor.

2. Implementarea arhitecturilor reconfigurabile introduse pe structured ASIC. Arhitecturile propuse au fost implementate pe structured ASIC ¸si rezultatele de arie ¸si timp au fost analizate comparativ. De asemenea, s-au urm˘arit diferent¸ele de performant¸˘a ale unor aplicat¸ii implementate direct pe structured ASIC, respectiv implementate prin configurarea arhitecturilor introduse. Performant¸ele de arie ¸si de timp mai reduse, pentru aplicat¸iile implementate pe arhitecturile reconfigurabile propuse, reprezint˘a pret¸ul ce trebuie pl˘atit pentru a ad˘auga posibilitatea de reconfigurare pentru tehnologiile ce nu beneficiaz˘a intrinsec de ea.

3. Ad˘augarea de facilit˘at¸i de testare arhitecturilor reconfigurabile pentru structured ASIC. Platformele de tip structured ASIC ofer˘a circuite specializate de test (lant¸uri de bistabile scanabile) pentru blocurile logice folosite pentru implementarea proiectelor. Metodologia de testare ATPG (Automatic Test Pattern Generation), bazat˘a pe aceste lant¸uri de scanare este ˆıngreunat˘a ˆın cazul arhitecturilor reconfigurabile de posibilitatea de a avea bucle combinat¸ionale pentru arhitecturile neconfigurate. Pentru a se ment¸ine rata de observabilitate ¸si controlabilitate la un nivel ridicat, se propun modalit˘at¸i de dezactivare a acestor bucle combinat¸ionale ˆın timpul test˘arii de tip ATPG.

4. Definirea unei metodologii de implementare a proiectelor pe arhitecturile reconfigurabile propuse. Po- sibilitatea utiliz˘arii arhitecturilor reconfigurabile p entru structured ASIC, depinde de existent¸a unor unelte software pentru programarea acestora conform specificat¸iilor proiectant¸ilor. Metodologia de programare este dezvoltat˘a, folosind produsele software existente ¸si utilitare dedicate arhitecturilor reconfigurabile.

1.2 Planul lucr˘arii

Capitolul 2 al tezei face o trecere ˆın revist˘a a arhitectur ilor reconfigurabile existente ¸si a avantajelor ¸si a dezavantajelor acestora ˆın implementarea circuitelor integrate digitale. Se analizeaz˘a ¸si domeniul de cercetare al calculului reconfigurabil, arhitecturile reconfigurabile de granulat¸ie fin˘a ¸si granulat¸ie grosier˘a, arhitecturi multi-context, cu multiplexare ˆın timp ¸si pr incipalele aplicat¸ii ˆın care calculul reconfigurabil aduce beneficii majore.

Capitolul 3 realizeaz˘a o descriere succint˘a a arhitectur ilor de tip structured ASIC cu accent pe familia de circuite eASIC Nextreme, folosit˘a pentru implementarea arhitecturilor reconfigurabile propuse. Se prezint˘a ¸si metodologia curent˘a de implementare a aplicat¸iilor p e structured ASIC. De asemenea, se subliniaz˘a anumite ˆımbun˘at˘at¸iri ce pot fi aduse tehnologiei structured ASIC, pentru a putea implementa mai convenabil

1 Introducere

6

arhitecturi reconfigurabile.

Capitolul 4, capitolul principal al tezei, prezint˘a ˆın detaliu arhitecturile reconfigurabile pentru tehnologii tip structured ASIC. Acestea sunt structurate dup˘a tipul circuitului programabil, folosit drept model ¸si

ˆ

dup˘a modalit˘at¸ile de ˆınc˘arcare ¸si schimbare a configu rat¸iei ˆın mai multe categorii. In fiecare din aceste categorii se alege o configurat¸ie care are un reprezentant ˆın circuitele programabile comerciale, configurat¸ie care este implementat˘a ˆın tehnologia structured ASIC. Se analizez˘a comparativ rezultatele de arie ¸si de timp ˆıntre o aplicat¸ie de test implementat˘a pe: arhitecturile reconfigurabile, direct pe structured ASIC ¸si pe circuitele programabile comerciale existente. Pe baza rezultatelor obt¸inute ˆın urma implement˘arii se propun solut¸iile care ofer˘a cele mai bune peformant¸e de arie ¸si de timp pentru implementarea aplicat¸iilor ce necesit˘a

reconfigurare static˘a sau dinamic˘a.

ˆ

In capitolul 5 se prezint˘a extensii de test ale arhitecturilor reconfigurabile propuse. Se testeaz˘a, folosind lant¸urile de scanare ¸si metodologia ATPG, structurile reconfigurabile ¸si se identific˘a faptul c˘a buclele combinat¸ionale din structura neprogramat˘a contribuie la acoperirea redus˘a a test˘arii ATPG. Pentru a rezolva aceast˘a problem˘a se propune ˆıntreruperea buclelor comb inat¸ionale, cˆand circuitul este ˆın modul de testare prin inserarea de bistabile pe bucl˘a. Se evident¸iaz˘a c˘a acest˘a solut¸ie rezolv˘a problema acoperirii de testare reduse, f˘ar˘a a degrada performant¸ele de arie ¸si de timp ale circuitului. Implementarea acestei solut¸ii este complet transparent˘a pentru fluxul de implementare a proiectelor ˆın tehnologie structured ASIC.

Capitolul 6 descrie metodologia de implementare a proiectelor pe arhitecturile programabile, utilizˆand programe software EDA (Electronic Design Automation) dedicate pentru sintez˘a, plasare, rutare ¸si generare de vectori de test, precum ¸si utilitare software dedicate p entru programarea corespunz˘atoare a arhitecturilor reconfigurabile. Aceste utilitare au fost create ˆın regim p ropriu de autor, doar pentru arhitecturile tip PLA, pentru arhitecturile mai compexe urmˆandu-se aceea¸si metologie de lucru, dar algoritmii de mapare ¸si rutare vor fi mai complec¸si ¸si nu fac obiectivul acestei teze.

ˆ

In capitolul 7 sunt evident¸iate contribut¸iile originale ale autorului ¸si prezentate direct¸ii viitoare de cercetare

ce permit o mai bun˘a integrarea a acestor arhitecturi configurabile ˆın metodologia standard de implementare a circuitelor integrate.

2. Arhitecturi reconfigurabile

Circuitele programabile sunt dispozitive revolut¸ionare care combin˘a beneficiile celor dou˘a tehnici de implementare a unei aplicat¸ii, ˆın hardware, respectiv ˆın software. Ele sunt folosite pentru a implementa

circuite de procesare cu posibilitatea de efectuare a calcu lelor ˆın paralel, cu performant¸e de timp ¸si arie

similare tehnologiilor hardware, dar ofer˘a flexibilitate ˆın configurare similar˘a cu programarea software.

ˆ

Ins˘a aceast˘a flexibilitate are costul ei, implement˘arile pe circuite programabile, tipic pe FPGA (Field Programmable Gate Array), au performant¸e de timp, arie ¸si putere mai sc˘azute decˆat implemet˘arile ASIC (Application Specific Integrated Circuit) ce folosesc tehn ologiile de celule standard.

Figura 2-1 prezint˘a rezultatele de arie ¸si de putere consu mat˘a (exprimate ˆın mW/MOPS, respectiv MOPS/mm 2 ), obt¸inute de un grup de cercet˘atori [4] prin implementarea mai multor aplicat¸ii pe diverse tehnologii ¸si scalarea corespunz˘atoare a acestora la pro cesul CMOS de 130nm. Din Figura 2-1, se observ˘a c˘a aceste alternative au eficient¸a energetic˘a ¸si aria r˘asp anditeˆ pe o plaj˘a de cinci ordine de magnitudine. Din acest punct de vedere ˆıntre implement˘arile de tip FPGA ¸si implement˘arile tip celule standard se observ˘a un gol, deoarece tehnologiile tip structured ASIC nu au fost luate ˆın calcul ˆın acest studiu. Au fost analizate circuite din categoriile: procesoare de uz general (GP-Pro cessor), procesoare de semnal (DSP), procesoare cu set de instruct¸iuni specific aplicat¸iei (ASIP), implem ent˘ari FPGA, implement˘ari cu celule standard ¸si implement˘ari cu circuite full-custom. Dac˘a consider˘am flexibilitatea pentru modificare oferit˘a de aceste solut¸ii de implementare, exist˘a, de asemenea, o pr˘apastie ˆıntre circuitele de tip FPGA ¸si circuitele de tip celule standard. O solut¸ie arhitectural˘a de m˘arire a gradului de flexibilitate o reprezint˘a definirea unor blocuri reconfigurabile ce pot fi integrate ˆın implement˘ar ile de tip celule standard sau full-custom pentru a permite programarea unei p˘art¸i a aplicat¸iei implementate.

2.1 Circuite programabile comerciale

Dispozitivele programabile disponibile comercial sunt tipic ˆımp˘art¸ite ˆın trei categorii:

SPLD - Simmple Programmable Logic Device - circuite de tip PAL, PLA.

CPLD - Complex Programmable Logic Device - circuite ce cont¸in mai multe structuri de tip PAL sau PLA interconectate ˆıntre ele printr-o structur˘a programabil˘a de inteconexiune.

FPGA - Field Programmable Gate Array - circuite ce cont¸in celule programabile identice replicate

circuite ce cont¸in celule programabile identice replicate Figura 2-1: Eficient¸a energetic˘a ¸si de arie a

Figura 2-1: Eficient¸a energetic˘a ¸si de arie a posibilit˘at¸ilor de implementare actuale [5].

2 Arhitecturi reconfigurabile

8

sub forma de arie de port¸i cu interconexiuni programabile ˆıntre ele.

2.1.1 Circuite SPLD

Primele dispozitive electronice programabile, PLD (Progr ammable Logic Device), dezvoltate special pen- tru a implementa logic˘a digital˘a, au fost sub form˘a de matrice logic˘a programabil˘a PLA (Programmable Logic Array). Un circuit PLA const˘a ˆın dou˘a planuri programabile: un plan programabil de port¸i AND, urmat de un alt plan programabil de port¸i OR. O structur˘a PLA permite ca oricare dintre intr˘ari (¸si formele complementate ale acestora) s˘a fie conectate la nivelul AND programabil, fiecare ie¸sire din nivelul AND corespunde unui termen produs al intr˘arilor. Similar, utilizatorii pot programa nivelul OR s˘a produc˘a suma logic˘a a oric˘aror ie¸siri din nivelul OR. Avˆand aceast˘a structur˘a PLA-urile sunt potrivite pentru a implementa funct¸ii logice exprimate sub form˘a de sum˘a de produse.

Dispozitivele PAL au un singur nivel programabil, un plan AND programabil urmat de un plan fix de port¸i OR. Pentru a compensa lipsa de flexibilitate introdus˘a de nivelul fix de port¸i OR, dispozitivele PAL sunt produse ˆın diverse variante cu num˘ar diferit de intr˘ari ¸si de ie¸siri ¸si cu dimensiuni variate ale port¸ilor OR. Pentru a implementa circuite secvent¸iale dispozitivele PAL cont¸in ¸si bistabile de obicei conectate la ie¸sirea port¸ilor OR.

Introducerea circuitelor de tip PAL a schimbat profund proiectarea ˆın electronica digital˘a, ele sunt bazele unor arhitecturi mai complexe ce vor fi descrise ulterior. Variante ale arhitecturii PAL apar ˆın diferite

ˆ

circuite digitale cu diferite denumiri. In general se grupeaz˘a toate circuitele programabile de capacitate

mic˘a, incluzˆand aici PLA, PAL ¸si variante de PAL, ˆın categoria circuitelor programabile simple (Simple Programmable Logic Device - SPLD).

2.1.2 Circuite CPLD

Avansul tehnologic a dus la produse cu o capacitate mai mare d ecˆat cea a circuitelor PAL sau PLA. Dificultatea ˆın cre¸sterea capacit˘at¸ii unei arhitectur i SPLD o constituie faptul c˘a planul logicii programabile cre¸ste prea repede, pe m˘asur˘a ce cre¸ste num˘arul de intr ari.˘ Singura modalitate convenabil˘a pentru a genera dispozitive de capacitate mare, bazate pe arhitectura SPLD este de a interconecta programabil mai multe dispozitive SPLD pe un singur cip. Ast˘azi exist˘a mai multe produse cu aceast˘a structur˘a de baz˘a ¸si se numesc CPLD (Complex Programmable Logic Device). Altera a f ost un deschiz˘ator de drumuri pentru circuitele CPLD, ˆıntˆai prin circuitele EPLD ¸si apoi prin seria MAX 5000, 7000 ¸si 9000 [6]. Deoarece piat¸a de circuite programabile a crescut repede, alt¸i produc˘atori au dezvoltat dispozitive CPLD ¸si mai multe arhitecturi sunt disponibile. Circuitele CPLD tipic asigu r˘a capacit˘at¸i de aproximativ 50 de ori mai mari decˆat SPLD, cre¸sterea capacit˘at¸ii peste aceast˘a limit˘a devine dificil˘a ¸si necesit˘a o alt˘a abordare [7].

Exist˘a mai multe tipuri de CPLD bazate pe termeni produs (Altera a introdus ¸si CPLD cu logica implementat˘a ˆın LUT [8], [9]), dar toate au cˆateva elemente ˆın comun:

familiile de circuite mai mari au o matrice de interconectar e programabil˘a ˆıntre sub-blocuri mai mici numite macroblocuri

macroblocurile au tipic o implementare SPLD, pe dou˘a planu ri de tip AND-OR, fiind compuse din mai multe macrocelule

macrocelulele sunt structuri PLD ¸si prezint˘a bistabile p e ie¸sire care sunt conectate atˆat la intr˘arile structurii PLD, cˆat ¸si la matricea programabil˘a.

Circuitele CPLD au avantajul unor ˆıntˆarzieri predictibile prin logic˘a ¸si structura de interconectare. Dis- pozitivele CPLD nonvolatile sunt folosite ˆın special pentru configurarea ˆıntr-un sistem a dispozitivului programabil principal.

2.1.3 Circuite FPGA

Circuitele FPGA asigur˘a o capacitate logic˘a mai mare, prin replicarea sub forma unei matrici, a unor blocuri logice programabile ¸si resurse de interconectare, toate fiind configurabile de c˘atre utilizator. Introduse ˆın 1985 de Xilinx, acestea au cunoscut un succes deosebit atˆat la nivel comercial, cˆat ¸si la nivel academic, prin existent¸a a numeroase studii, c˘art¸i ¸si conferint¸e dedicate ˆın totalitate acestor arhitecturi.

9

Arhitecturi programabile pentru sisteme pe cip (SoC)

Elementele componente ale unei arhitecturi FPGA sunt:

celulele logice, alc˘atuite din elemete de tip LUT (Look-Up Table). Dimensiunea LUT-ului este dat˘a de num˘arul de intr˘ari. Exist˘a numeroase studii pentru selectarea unei dimensiuni care s˘a ofere arie ¸si frecvent¸˘a optime pentru o gam˘a variat˘a de aplicat¸ii [10]. Studiile au ar˘atat c˘a un LUT cu 4 intr˘ari reprezint˘a alegerea optim˘a, dar arhitecturile FPGA de ultim˘a generat¸ie folosesc LUT-uri mai mari pentru a evita ˆıntˆarzierile pe trasee ce devin partea dominant˘a a timpilor de propagare, odat˘a cu avansul tehnologic.

structura de interconectare programabil˘a ce permite interconectarea celulelor logice, este tipic una segmentat˘a, avˆand ˆın component¸˘a celule de interconectare ¸si celule de comutare ˆıntre trasee.

extensii ale logicii pentru realizarea circuitelor aritmetice, pentru implementarea memoriilor de mari dimensiuni ¸si chiar procesoare sunt ˆınglobate ˆın arhitecturile FPGA moderne.

Solut¸iile de programare ale elementelor FPGA folosesc mem orie SRAM, fuzibil, antifuzibil, tranzistor cu poart˘a flotant˘a (EPROM sau EEPROM) sau memorie flash. Cea mai r˘aspˆandit˘a metod˘a de programare este cea bazat˘a pe celule SRAM, deoarece ofer˘a reprogramare rapid˘a, posibilitatea de reprogramare dinamic˘a ¸si num˘arul de ciclii de programare fiind teoretic infinit. Datorit˘a faptului c˘a memoria SRAM este volatil˘a, aceste circuite necesit˘a o memorie extern˘a pentru a stoca configurat¸ia circuitului. La fiecare punere sub tensiune se face programarea circutului din aceast˘a memor ie extern˘a sau prin intermediul unui calculator, folosind interfat¸a JTAG (Joint Test Action Group) [11].

Flexibilitatea ˆın programare a f˘acut ca arhitecturi FPGA s˘a poat˘a fi ˆınglobate ˆın orice tehnologie de fabricat¸ie a circuitelor integrate. Numite eFPGA (Embedded Field Programmable Gate Array), ele sunt disponibile comercial [12], [13] fie sub form˘a de IP-core sintetizabil sau macro predefinit.

Vom utiliza arhitecturile dispozitivelor programabile actuale ˆın definirea noilor arhitecturi reconfigurabile pentru structured ASIC, deoarece comunitatea proiectant¸ilor este deja familiar izat˘a cu aceste dispozitive ¸si cu metodologia de implementare a proiectelor pe acestea.

2.2 Arhitecturi programabile pentru sisteme pe cip (SoC)

Pentru a putea folosi capacitatea ˆın exces, datorat˘a scalarii˘ tehnologice, ment¸inˆand un cost rezonabil al

ˆ

proiect˘arii ¸si al test˘arii, a ap˘arut metodologia de imp lementare a sistemelor pe cip (SoC) [14]. In aceast˘a metodologie, blocuri pre-proiectate ¸si pre-verificate, obt¸inute din surse interne sau tert¸i sunt combinate ˆıntr-

un singur cip. De¸si aceast˘a tehnic˘a atenueaz˘a part¸ial complexitatea circutului, este ˆınc˘a dificil˘a proiectar ea

ˆ

¸si testarea unui circuit integrat care s˘a funct¸ioneze corect. Intotdeauna vor exista cipuri proiectate, fabricate

¸si care apoi se dovedesc de nefolosit. Acest lucru se poate ˆıntˆampla din cauza erorilor de proiectare care scap˘a metodologiei de verificare sau pot fi cauzate de schimb ari˘ ˆın cerint¸ele proiectului.

O solut¸ie a acestei probleme este reducerea num˘arului de m anufactur˘ari al unui proiect, prin ad˘augarea

de flexibilitate post-product¸ie ˆın circuitele integrate, prin ˆınglobarea unor blocuri logice programabile. Blocurile reprogramabile pot avea o arhitecturi bazate pe termeni produs, similar ca ˆın cazul dispozitivelor programabile de tip SPLD, CPLD [15], [16] sau arhitecturi bazate pe LUT-uri, ca ˆın cazul circuitelor FPGA [12], [13].

2.2.1 Arhitecturi bazate pe termeni produs

O arhitectur˘a pe baz˘a de termeni produs este propus˘a de Yan ˆın [16]. Numit˘a arhitectur˘a PTB (Product

Term Based), ea a fost introdus˘a cu scopul de a ad˘auga posib ilitatea de a face schimb˘ari dup˘a fabricarea sistemelor integrate pe cip ˆın tehnologii de celule standard.

ˆ

In

Figura 2-2, se prezint˘a celula logic˘a a arhitecturii bazat˘a pe termeni produs ce a fost propus˘a de Yan

pentru definirea blocurilor programabile. Ea este practic un PLA; const˘a dintr-un plan AND ¸si un plan OR ce pot fi folosite pentru a implementa una sau mai multe func¸iit combinat¸ionale. Planul AND este un

generator de termeni produs; este format din planul AND prop riu zis ¸si planul de configurare (de selectare

a variabilelor ce intr˘a ˆın termenul produs); este folosit pentru crearea de termeni produs care pot fi utilizat¸i de planul OR. Planul OR, este format din planul OR propriu zis ¸si planul de configurare, este folosit pentru

a realiza suma de produse pentru a genera o anumit˘a funct¸ie boolean˘a. Dimensiunea unui PTB este dat˘a

de num˘arul de intr˘ari, de num˘arul de termeni produs (care este egal cu num˘arul de port¸i AND din planul

2 Arhitecturi reconfigurabile

10

AND) ¸si de num˘arul de ie¸siri (care este egal cu num˘arul de port¸i OR din planul OR). Ne putem referi la dimensiunea unui PTB folosind tripleta (i,p,o ), unde i este num˘arul de intr˘ari, p este num˘arul de termeni produs ¸si o este num˘arul de ie¸siri.

Bit¸ii de programare sunt implementat¸i cu bista- bile, ce sunt conectate ˆıntre ele serial ˆıntr-un lant¸ de scanare. Pentru a programa PTB-ul, ¸sirul de bit¸i de configurare (bitstream ) este trimis serial pe portul de intrare configure in. Valorile din bistabile sunt folosite pentru a masca semnalele de intrare ˆınainte de a fi aplicate planului AND. Semnalele de mascare controleaz˘a starea port¸ilor logice care alc˘atuiesc planurile AND ¸si OR.

port¸ilor logice care alc˘atuiesc planurile AND ¸si OR. Figura 2-2: Arhitectur˘a bazat˘a pe termeni produs (PTB)

Figura 2-2: Arhitectur˘a bazat˘a pe termeni produs (PTB)

[17]

2.2.2 Structura de interconectare direct¸ional˘a

Structura de rutare va fi una diferit˘a de cea a arhitecturilor comerciale CPLD existente, deoarece

se dore¸ste evitarea buclelor combinat¸ionale pentru

 

ˆ

orice configurat¸ie a circuitului.

In dispozitivele

comerciale, aceste bucle combinat¸ionale nu sunt o problem˘a, deoarece utilizatorul poate configura circuitul numai ˆın modalit˘at¸i ˆın care aceste bucle nu apar. Uneltele software de sintez˘a au probleme ˆın cazul circuitelor cu bucle combinat¸ionale. De¸si pot

ˆıntrerupe buclele combinat¸ionale prin ˆınl˘aturarea arbitrar˘a a unui arc de timp din bucl˘a, acest lucru va conduce deseori la rezultate proaste, deoarece unealta de sintez˘a nu poate ¸sti care c˘ai sunt false ¸si care sunt im portante ¸si trebuie optimizate.

Se propune astfel o arhitectur˘a direct¸ional˘a de rutare. Se folosesc multiplexoare ˆın structura de interco- nectare, intr˘arile pentru fiecare multiplexor pot veni doar de la intr˘arile primare ¸si de la ie¸sirile nivelului precedent. Ie¸sirile din fiecare nivel vor fi conectate la intr˘arile urm˘atorului nivel ¸si la ie¸sirile circuitului.

2.2.3 Arhitecturi secvent¸iale sintetizabile

Integrarea unui bistabil ˆın macrocelula de baz˘a nu va ajuta la implementarea circuitelor secvet¸iale. Folosirea unei structuri de interconectare direct¸ionale (cu semnale care pot circula doar de la stˆanga spre dreapta) la o arhitectur˘a ce cont¸ine bistabile nu este de d orit, deoarece nu va exista posibilitatea de a implementa buclele de stare atˆat de necesare implement˘ar ii automatelor de control. Ad˘augarea posibilit˘at¸ii de a realiza bucle de stare va impune o arhitectur˘a nedirect¸ional˘a, ce va putea cauza bucle combinat¸ionale. Solut¸ia propus˘a este ca din fiecare macrocelul˘a s˘a avem ie¸siri combinat¸ionale ¸si ie¸siri secvent¸iale ce vor fi interconectate separat. Ret¸eaua de interconectare a ie¸s irilor combinat¸ionale va fi una direct¸ional˘a, ˆın timp ce ret¸eaua de interconectare a ie¸sirilor secvent¸iale va putea conecta ie¸sirea fiec˘arei macrocelule la intr˘arile oric˘arei alte macrocelule, indiferent de nivelul pe care este situat˘a (Figura 2-3a). O astfel de arhitectur˘a se nume¸ste arhitectur˘a cu ret¸ea dual˘a de interconectare. Spre deosebire de arhitecturile comerciale, aceast˘a abordare necesit˘a dou˘a ret¸ele de interconectare fapt ce va m˘ari semnificativ aria circuitului. O solut¸ie ar fi ca numai un procent din macrocelule s˘a cont¸in˘a bistab ile, studiile au ar˘atat c˘a se obt¸ine un produs arie - ˆıntˆarziere optim, cˆand acest procent este 50% [17]. O alternativ˘a pentru arhitecturile secvent¸iale este ˆınlocuirea bistabilelor din macrocelule cu un bloc global de bistabile, dup˘a cum se prezint˘a ˆın Figura 2-3b. Toate ie¸sirile blocurilor logice se vor conecta la un num˘ar de registre globale printr-o matrice de multiplexoare. Ie¸sirile regi¸strilor se vor ˆıntoarce ap oi la intr˘arile tuturor macrocelulelor. F˘ar˘a a asocia un registru cu ie¸sirea unei macrocelule, utilizarea regis trilor va fi ˆımbun˘at˘at¸it˘a. Aceast˘a flexibilitate are ˆıns˘a costul unei arii mai mari pentru structura de interconectare. Implementarea unor circuite de test standardizate a demostrat c˘a produsul arie - ˆıntˆarziere este cu 8% mai bun pentru o arhitectur˘a decuplat˘a fat¸a de arhitectura cu ret¸ea dual˘a [17].

Arhitecturile programabile sintetizabile reprezint˘a o solut¸ie general valabil˘a pentru ad˘augarea flexibilit˘at¸ii

11

Arhitecturi reconfigurabile multi-context

11 Arhitecturi reconfigurabile multi-context Figura 2-3: Arhitecturi secvent¸iale: a) Arhitectur˘a cu ret¸ea

Figura 2-3: Arhitecturi secvent¸iale: a) Arhitectur˘a cu ret¸ea dual˘a; b) Arhitectur˘a decuplat˘a [16].

de programare ˆın scopul rezolv˘arii post-fabricat¸ie a un or probleme de proiectare sau de a aduce anumite ˆımbun˘at˘at¸iri aplicat¸iilor implementate ˆın tehnologii de celule standard. Fiind o solut¸ie general valabil˘a, ea are cˆateva limit˘ari:

limitarea datorat˘a inexistent¸ei unei celule de memorie ˆın bibliotecile de celule standard, fapt ce va impune folosirea bistabilelor ¸si va avea ca efect m˘arirea surplusului de arie necesar.

limitarea dat˘a de necesitatea utiliz˘arii unor ret¸ele de interconectare care s˘a nu prezinte bucle combina- ¸ionalet ˆın momentul sintezei arhitecturii neprogramate. Folosirea unor ret¸ele de interconectare duale sau decuplate va avea acela¸si efect de m˘arire a ariei ocupate de circuit.

Ambele dezavantaje pot fi eliminate prin particularizarea acestor arhitecturi pentru o anumit˘a tehnologie de fabricat¸ie ¸si folosirea unor descrieri stucturale ˆın locul descrierilor comportamentale, general valabile.

2.3 Arhitecturi reconfigurabile multi-context

ˆ

In cazul arhitecturilor reconfigurabile dinamic, timpul necesar schimb˘arii unei configurat¸ii de circuit, folosind transferul serial al datelor, poate fi un dezavanta j major ˆın folosirea acestora. O alternativ˘a poate fi asigurarea de spat¸iu de stocare pentru mai multe configurat¸ii de date ˆın acela¸si timp ˆın cadrul dispozitivului programabil, facilitˆand configurarea rapid˘a ¸si posibilitatea de suprapunere a etapei de schimbare a unei configurat¸ii cu etapa de funct¸ionare normal˘a a altei confi gurat¸ii. Un astfel de dispozitiv programabil este numit multi-context sau dispozitiv programabil cu multiplexare ˆın timp. Acesta cont¸ine stocate ˆıntr-o memorie mai multe planuri ale datelor de configurare, planuri numite ¸si contexte. In cazul arhitecturilor reconfigurabile multi-context trebuie f˘acut˘a distinct¸ia clar˘a ˆıntre configurat¸ia de circuit ¸si configurat¸ia d e date (numit˘a ¸si context) ce determin˘a o anumit˘a configur at¸ie de circuit. Mai multe arhitecturi FPGA cu multiplexare ˆın timp au fost propuse incluzˆand aici: TMFPGA (Time Multiplexed FPGA) [18], DPGA (Dynamic Programable Gate Array) [19, 20, 21] ¸si Dharma [22 ].

2.3.1 Conceptul de baz˘a

Folosind o arhitectur˘a FPGA standard, se poate cˆa¸stiga capacitate logic˘a prin reconfigurarea dinamic˘a a circuitului, prin ad˘augarea unor bit¸i de memorie SRAM, ˆın locul ad˘aug˘arii de noi elemente de procesare. Astfel, circuitul va avea o configurat¸ie activ˘a ¸si un num˘ar de configurat¸ii inactive stocate ˆın memoria de configurare. Memoria de configurare este distribuit˘a pe cip , fiecare punct programabil putˆand fi controlat de un num˘ar de bit¸i egal cu num˘arul maxim de configurat¸ii d e date (contexte) stocate pe cip.

Figura 2-4a) prezint˘a o astfel de arhitectur˘a FPGA multi-context, cu multiplexare ˆın timp. Se observ˘a ˆın Figura 2-4b) c˘a elementele logice de tip LUT ce implementeaz˘a logica combinat¸ional˘a se afl˘a sub controlul a uneia din cele n locat¸ii de memorie asociate planurilor de memorie, planuri de memorie numite contexte. Similar ¸si structura de interconectare va fi controlat˘a de un singur plan din cele n planuri disponibile pe cip.

2 Arhitecturi reconfigurabile

12

2 Arhitecturi reconfigurabile 12 Figura 2-4: FPGA cu multiplexare ˆın timp: a) Arhitectura FPGA; b) Celula

Figura 2-4: FPGA cu multiplexare ˆın timp: a) Arhitectura FPGA; b) Celula logic˘a cu microregi¸stri [22].

Reconfigurarea dinamic˘a a circuitului se nume¸ste schimbarea contextului ¸si se face prin intermediul unui semnal global, astfel ˆıncˆat toate elementele logice schimb˘a contextul ˆın acela¸si timp.

Dac˘a pentru implementarea de logic˘a combinat¸ional˘a circuitul poate utiliza multiplexarea ˆın timp, pentru a implementa succesiv mai multe funct¸ii logice folosind acela¸si hardware, nu acela¸si lucru se poate afirma despre implementarea logicii secvent¸iale. Starea circuitului va trebui salvat˘a automat de fiecare dat˘a cˆand se schimb˘a configurat¸ia circuitului ¸si, respectiv, restaurat˘a la reactivarea configurat¸iei, pentru ca aceast˘a schimbare de context s˘a fie transparent˘a din punct de veder e a aplicat¸iei utilizatorului. Solut¸ia este multiplicarea registrului de stare din celula logic˘a de n ori (n este num˘arul de contexte), iar denumirea folosit˘a pentru acest spat¸iu de stocare este de microregi¸stri.

2.3.2 Moduri de operare

Circuitele reconfigurabile multi-context pot funct¸iona ˆın 3 moduri propuse de Trimberger ˆın [18]: automat logic, partajat ˆın timp ¸si static.

ˆ

1. In modul automat logic (AL), circuitul folose¸ste capabilit˘at¸ile de multiplexare ˆın timp pentru a emula un singur sistem complex. Proiectul este implementat ca un automat de stare de tip Mealy. Logica combinat¸ional˘a prime¸ste semnale de la intr˘ari ¸si de la bistabile; genereaz˘a semnale de ie¸sire din logica combinat¸ional˘a ¸si bistabile. Logica combinat¸ional˘a poate fi ˆımp˘art¸it˘a ˆın subblocuri ¸si calculul ie¸sirilor

acestor blocuri va fi multiplexat ˆın timp.

Cˆand opereaz˘a ˆın modul automat logic proiectul trece printr-o secvent¸˘a de configurat¸ii numite micro-

ˆ

cicli . Secvent¸ele de microcicli sunt sincronizate cu ceasul utilizatorului. In acest mod, dispozitivul

este reconfigurat de mai multe ori ˆıntr-un ciclu utilizator - ceasul de configurare fiind mai rapid decˆat

ceasul utilizator. Rezultatele part¸iale ale unei configur at¸ii trebuie stocate ¸si trimise la configurat¸iile urm˘atoare. Spat¸iul de stocare trebuie prev˘azut pentru b istabile, ele nu pot fi multiplexate ˆın timp,

deoarece toate valorile din bistabile sunt necesare pentru momentele urm˘atoare.

ˆ

2. In modul partajat ˆın timp (PT), circuitul emuleaz˘a mai multe sisteme independente care comunic˘a ˆıntr- un sistem hardware virtual. Dispozitivul r˘amˆane ˆıntr-o configurat¸ie pentru mai multe ceasuri utilizator

- ceasul de reconfigurare fiind mai lent decˆat ceasul utilizatorului. Circuitul se reconfigureaz˘a la intervale neregulate sau la ˆıntreruperi. Pentru a modela u n sistem hardware virtual, valorile calculate ˆıntr-o configurat¸ie trebuie stocate ¸si partajate cu logica din alte configurat¸ii. La reˆınc˘arcarea unei

configurat¸ii, starea sistemului trebuie ref˘acut˘a ca ¸si cˆand aceasta configurat¸ie nu ar fi fost schimbat˘a.

ˆ

13

Concluzii

implementarea logicii care trebuie sa fie mereu activ˘a - de exemplu, pentru logica care controleaz˘a partajarea ˆın timp sau secvent¸ele de configurat¸ii sau pentru logic˘a asincron˘a. Logica static˘a se implementeaz˘a prin programarea identic˘a a celulelor de m emorie corespunz˘atoare din toate planurile de configurare.

Cele trei moduri de operare pot fi mixate pentru obt¸inerea fu nct¸ionalit˘at¸ii dorite de utilizator. O singur˘a aplicat¸ie poate avea logica ˆımp˘art¸it˘a ˆın logic˘a static˘a, logic˘a multiplexat˘a ˆın timp sau logic˘a partajat˘a ˆın timp.

Circuitele multicontext ofer˘a o abordare temporal˘a a dispozitivelor programabile prin posibilitatea de a implementa mai multe funct¸ii logice folosind acelea¸si port¸i logice la diferite momente ˆın timp. Avantajele acestor circuite sunt date de posibilitatea de a schimba con figurat¸ia activ˘a ˆıntr-un singur tact de ceas ¸si de posibilitatea de ˆınc˘arcare pe fundal a configurat¸iilor ˆın timpul funct¸ion˘arii circuitului.

Unul din dezavantajele circuitelor multi-context e dat de aria suplimentar˘a necesar˘a stoc˘arii tuturor configurat¸iilor, arie ce ar putea fi folosit˘a pentru a implementa alte port¸i logice ¸si structuri de interconectare. Alt dezavantaj este o consecint¸a direct˘a a posibilit˘at¸ii de a schimba configurat¸ia ˆıntregului circuit ˆıntr-un singur tact de ceas, fiind puterea dinamic˘a consumat˘a ˆın m omentul schimb˘arii configurat¸iei.

De¸si aceste idei de reconfigurare rapid˘a a circuitelor nu s unt noi, prima companie care ˆıncearc˘a s˘a aduc˘a pe piat¸a aceste tehnologii este Tabula, prin produsul 3PLD [23], ce permite reconfigurarea rapid˘a a unui circuit programabil cu 8 contexte. Prin continua scalare tehnologic˘a, conform legii lui Moore, este posibil˘a cre¸sterea num˘arului de contexte ¸si a frecvent¸ei maxime la care se face schimbarea acestora, ceea ce poate oferi acestor noi tehnologii posibilitatea de a cre¸ste cap acitatea logic˘a chiar la o rat˘a mai mare decˆat cea prezis˘a de legea lui Moore.

2.4 Concluzii

Dispozitivele programabile au schimbat semnificativ posib ilit˘at¸ile de implementarea a unei aplicat¸ii fo- losind un circuit integrat digital prin oferirea avantajelor legate de flexibilitate, de costuri ¸si de timp de implementare. Datorit˘a dezavantajelor legate de frevent¸a de funct¸ionare, de aria ocupat˘a ¸si de puterea con- sumat˘a, comunitatea proiectant¸ilor a dezvoltat arhitecturi similare cu cele ale dispozitivelor programabile, ce pot fi ˆınglobate ˆın aplicat¸iile implementate ˆın tehnologii de celule standard, pentru a putea beneficia de acest˘a flexibilitate numai ˆın anumite blocuri funct¸ionale. Deoarece dispozitivele programabile actuale nu sunt optimizate pentru calcul reconfigurabil, s-au urm˘arit cˆateva metode de a le eficientiza din punct de vedere al posibilit˘at¸ii de schimbare rapid˘a a configur at¸iei ¸si de multiplexare ˆın timp. Din descrierea circuitelor din cadrul acestui capitol am identificat urm˘atoarele idei ce vor fi folosite pentru crearea unor arhitecturi reconfigurabile dedicate tehnologiilor tip structured ASIC :

1. Arhitecturile caracteristice dispozitivelor programabile comerciale vor fi folosite pentru crearea noilor

arhitecturi reconfigurabile, deoarece comunitatea proiectant¸ilor de circuite integrate este familiarizat˘a cu

acestea ¸si exist˘a ˆın mediul academic unelte software de d omeniu public pentru a facilita implementarea proiectelor.

2. Arhitecturile programabile pentru SoC ofer˘a modalitatea de programare dinamic˘a necesar˘a imple- ment˘arii unor arhitecturi bazate pe termeni produs. Acestea reprezint˘a totodat˘a ¸si o solut¸ie general valabil˘a pentru ad˘augarea flexibilit˘at¸ii ˆın orice tehnologie de fabricat¸ie ¸si vor fi implementate pe structured ASIC pentru a avea un termen de comparat¸ie cu restul arhitecturilor introduse.

3. Arhitecturile reconfigurabile multi-context introduc ideea de multiplexare ˆın timp ¸si posibilitatea d e

a considera capacitatea logic˘a a circuitelor, luˆand ˆın calcul atˆat aspectul spat¸ial, cˆat ¸si aspectul temporal.

Acestea vor sta la baz˘a arhitecturilor cu reconfigurare din amic˘a, eficiente din punct de vedere al ariei necesare per configurat¸ie, descrise ˆın capitolele urm˘atoare.

Arhitecturile reconfigurabile pentru structured ASIC descrise ˆın aceast˘a tez˘a utilizeaz˘a caracteristicile dis- pozitivelor programabile comerciale, ˆımbun˘at˘at¸ite cu facilit˘at¸i de reconfigurare dinamic˘a ¸si de multiplexare ˆın timp. Implementarea acestora pe tehnologia structured ASIC este realizat˘a astfel ˆıncˆat sa se reduc˘a, pe cˆat posibil, surplusul de arie necesar ¸si s˘a se eficientizeze performant¸ele de timp ¸si respectiv de arie per configurat¸ie.

3. Tehnologii tip structured ASIC

Tehnologiile tip structured ASIC au ap˘arut pentru a umple golul dintre modul tradit¸ional de fabricare a circuitelor integrate specifice unei aplicat¸ii, ASIC (App lication Specific Integrated Circuit), folosind celule standard ¸si tehnologiile programabile tip FPGA (Field Programmable Gate Array) [1]. Acestea ofer˘a o alternativ˘a la tehnologiile de tip celule standard pentru proiectele ce necesit˘a costuri reduse de fabricat¸ie ¸si de asemenea o alternativ˘a pentru circuitele FPGA care necesit˘a ˆımbun˘at˘at¸irea performant¸elor de timp, arie ¸si putere consumat˘a pentru un volum de product¸ie de nivel mediu. Odat˘a cu scalarea tehnologic˘a, diferent¸a de performant¸˘a ˆıntre tehnologiile ASIC implementate cu celule standard ¸si FPGA cre¸ste (tehnologiile ASIC sunt favorizate) ¸si similar cre¸ste ¸si diferent¸a de costuri de fabricat¸ie (tehnologiile FPGA sunt favorizate). Acest gol ˆıntre cele dou˘a moduri de fabricat¸ie a circuitelor integrate, pentru aplicat¸ii ce necesit˘a un volum mediu de product¸ie cu performant¸e medii ˆın ceea ce prive¸ste frecvent¸a de lucru, aria ocupat˘a ¸si puterea consumat˘a, se adˆance¸ste ¸si creeaz˘a oportunitatea dezvolt˘arii acestei noi clase de tehnologii de fabricat¸ie a circuitelor integrate.

ˆ

In domeniul academic exist˘a mai multe studii referitoare la tehnologiile de fabricat¸ie structured ASIC [24],

[25], [26], iar ˆın domeniul comercial exist˘a mai multe imp lement˘ari ce folosesc ˆıntre un nivel de metalizare

ˆ

¸si ¸sase nivele de metalizare. In ultimii ani au r˘amas pe piat¸˘a doar cˆateva implement˘ari comerciale de tip

structured ASIC, dintre care amintim Altera Hardcopy IV [27] ¸si platformele eASIC Nextreme produs˘a ˆın tehnologie de 90nm [28], respectiv eASIC Nextreme 2 produs˘a ˆın tehnologie de 45nm [29]. Produsele oferite de firma eASIC sunt singurele implement˘ari care folosesc un singur nivel de metalizare pentru configurare, motiv pentru care le vom folosi pentru dezvoltarea arhitecturilor reconfigurabile pentru structured ASIC descrise ˆın urm˘atoarele capitole.

3.1 Arhitectura platformelor de tip structured ASIC

Platformele de tip structured ASIC sunt obt¸inute prin integrarea unor blocuri logice ¸si a unor blocuri de memorie ˆıntr-o structur˘a de interconectare, similar ca ˆın cazul circuitelor FPGA. Blocurile logice cont¸in elemente de procesare pentru implementarea logicii combin at¸ionale ¸si bistabile pentru implementarea logicii secvent¸iale. Structura de rutare permite orice interconectare aleatoare a blocurilor logice, astfel acestea pot fi conectate conform oric˘arei cerint¸e a utilizatorilor. S tructura platformei structured ASIC dezvoltate de firma eASIC este prezentat˘a ˆın Figura 3-1

Elementele prefabricate ˆın nivelele de baz˘a ale tehnologiilor structured ASIC permit o implementare rapid˘a

structured ASIC permit o implementare rapid˘a Figura 3-1: Arhitectura platformelor de tip structured

Figura 3-1: Arhitectura platformelor de tip structured ASIC [2].

15

Arhitectura platformelor de tip structured ASIC

15 Arhitectura platformelor de tip structured ASIC Figura 3-2: Arhitectura Nextreme : a) Blocul logic al

Figura 3-2: Arhitectura Nextreme : a) Blocul logic al platformei Nextreme ; b) Celula logic˘a Nextreme [2].

a proiectelor pe aceste noi tehnologii. Testarea este, de as emenea, mult simplificat˘a prin faptul c˘a toate

bistabile platformei sunt connectate ˆın lant¸uri de scanare, iar padurile de intrare ie¸sire sunt controlabile prin intermediul intefet¸ei JTAG.

3.1.1 Blocuri logice

Macroblocurile logice ale tehnologiei eASIC, se numesc eCore ¸si formeaz˘a un grup ˆımpreun˘a cu o memorie bloc, numit˘a bRAM . Aceste grupuri sunt repetate de un anumit num˘ar de ori, ˆın funct¸ie de aceasta rezultˆand capacitatea logic˘a a platformelor structured ASIC. Blocurile logice au o structur˘a ierahic˘a, fiind alc˘atuite din 8 unit˘at¸i logice, numite eUnit ¸si fiecarea eUnit este o matrice de 16 pe 16 celule logice, numite eCell. Aceast˘a organizare ierarhic˘a a elemetelor logice ale arh itecturii structured ASIC este prezentate ˆın Figura

3-2a.

Celula logic˘a de baz˘a, eCell, este prezentat˘a ˆın Figura 3-2b. Structura celulei de baza,˘ este similar˘a cu cea a arhitecturilor FPGA, cont¸ine elemente logice cu func¸iet fix˘a (port¸i logice, multiplexoare, bistabile, bufere) ¸si elemente logice cu funct¸ie programabil˘a de tip LUT (Look-Up Table) care pot implementa funct¸ii combinat¸ionale sau memorii SRAM, numite eRAM , a c˘aror l˘at¸ime ¸si adˆancime este configurabil˘a prin via. Pe lˆang˘a posibilitatea de configurare a LUT-urilor, datorat˘a implement˘arii acestora cu memorie SRAM, elementele celulei de baz˘a pot fi programabil interconectate ˆıntre ele prin trasee de metalizare, numite jumperi, a c˘aror programare se face, bineˆınt¸eles, folos ind acela¸si unic nivel de metalizare via. Avˆand un buffer thres-state ˆın component¸˘a, celula de baz˘a poate fi configurat˘a s˘a implementeze o memorie de dimensiune 16x1 ca parte a unei memorii SRAM distribuite.

Pe baza componentelor celulei logice de baz˘a se pot implementa funct¸ii combinat¸ionale simple de 2-3 intr˘ari folosind LUT-urile, NAND-urile sau multiplexorul, funct¸ii de 4-6 intr˘ari folosind LUT-urile ¸si NAND-urile

¸si ˆın cazuri foarte rare se pot implementa chiar funct¸ii d e 9 intr˘ari, folosind ambele LUT-uri, ambele port¸i

NAND ¸si multiplexorul.

3.1.2 Blocuri de memorie

Pe platforma structured ASIC prezentat˘a exist˘a dou˘a posibilit˘at¸i de implementare eficient˘a a memoriilor, ambele descrise ˆın cadrul Figurii 3-2a. Acestea sunt:

folosirea memoriilor bloc, bRAM , memorii de 32 kilobit¸i cu un singur port de scriere/citire ce pot fi configurate prin via ca 32Kx1, 16Kx2, 8Kx4, 4Kx8, 2Kx16 ¸si 1Kx32. Aceste memorii sunt plasate lˆang˘a fiecare bloc logic pentru a se putea asigura funct¸ionarea lor la frecvent¸˘a ridicat˘a.

folosirea memoriilor distribuite, eRAM , presupune configurarea unui grup de celule logice pentru a

3 Tehnologii tip structured ASIC

16

ˆındeplini funct¸ia de memorie SRAM cu dou˘a porturi. Aceste memorii sunt configurabile prin via ¸si pot avea l˘at¸imi ˆıntre 1 ¸si 16 bit¸i ¸si adˆancime ˆıntre 16 ¸si 256 de locat¸ii. Folosind mai multe instante de eRAM , se pot modela ¸si memorii cu dimensiuni mai mari decˆat 256x 16, dar exist˘a limitarea unei singure instant¸e de memorie per unitate logic˘a, eUnit. Memoriile eRAM au avantajul de a putea fi ˆınglobate ˆın acela¸si bloc ˆımpreun˘a cu logica asociat˘a, pentru a se asigura o frecvent¸a de functionare ridicat˘a.

Ambele tipuri de memorii ce pot fi folosite pe platforma structured ASIC ofer˘a posibilitatea de a stoca efi- cient informat¸ia de configurare necesar˘a arhitecturilor reconfigurabile dinamic, multicontext. Constrˆangerea l˘at¸imii maxime a unui eRAM la 16 bit¸i ¸si imposibilitatea de a plasa mai multe instant¸e per eUnit pot fi limit˘ari ˆın folosirea eficient˘a a memoriilor distribuite.

3.1.3 Structura de interconnectare

Structura de interconectate reprezint˘a avantajul central al acestei noi tehnologii, este principala diferent¸˘a ˆıntre tehnologia structured ASIC ¸si FPGA. Folosind aceast˘a metodologie se poate fabrica ˆıntreaga platform˘a ca un circuit neprogramat, reducˆandu-se substant¸ial costurile de product¸ie prin fabricarea unui singur set de m˘a¸sti pentru toate circuitele ce vor fi implementate ulterior pe aceast˘a platform˘a. Ulterior, conform proiectului utilizatorului se va configura un singur nivel de metalizare via pentru a realiza configurarea celulelor logice, a memoriilor, a padurilor de intrare-ie¸sire ¸si a tuturor conexiunilor dintre acestea.

ˆ

In Figura 3-3 se prezint˘a nivelele de metalizare ale tehnologiei eASIC Nextreme cu reliefarea nivelului de via programabil dintre nivelele de metalizare 6 ¸si 7. Progra- marea singurului nivel de metalizare se poate face prin crearea unei singure m˘a¸sti de fabricat¸ie sau chiar ˆın cazul

volumelor reduse de fabricat¸ie prin intermediul tehnologiei eBeam, ce nu necesit˘a nici o masc˘a.

Programarea prin via a acestor elemente ale tehnologi- ilor structured ASIC are avantaje mari ˆın ceea ce prive¸ste reducerea ariei ocupate ¸si a puterii consumate precum ¸si prin crest¸erea frecvent¸ei de funct¸ionare comparativ cu cir- cuitele FPGA, dar elimin˘a posibilitatea de reconfigurare. Cu ajutorul LUT-urilor bazate pe memorie SRAM, se pot, ˆın anumite cazuri, dezactiva anumite p˘art¸i cu probleme ale circuitelor implementate, dar nu se pot modifica funct¸iile logice pentru depanarea ¸si rezolvarea anumitor deficient¸e ˆın proiectare.

3.1.4 Structuri de testare

deficient¸e ˆın proiectare. 3.1.4 Structuri de testare Figura 3-3: Nivelele de metalizare Nextreme [2]. Pentru

Figura 3-3: Nivelele de metalizare Nextreme [2].

Pentru testare, tehnologiile structured ASIC folosesc metologiile standard de testare a circuitelor integrate, existˆand elemente logice dedicate test˘arii ATPG (Automatic Test Pattern Generation), JTAG (Joint Test Action Group) ¸si BIST (Built-In Self Test).

Pentru testarea logicii se folose¸ste metodologia ATPG, plaftformele eASIC avˆand lant¸urile de scanare implementate ˆın nivelele de baz˘a ale tehnologiei. Acestea folosesc multiplexat anumite paduri de intrare ie¸sire pentru introducerea, respectiv citirea datelor din lant¸u rile de scanare, ¸si dou˘a paduri dedicate (SCANMODE, SCANMODEDR) pentru trecerea platformei ˆın diferite moduri de test.

Testarea tuturor elementelor platformei structured ASIC poate fi f˘acut˘a ¸si folosind interfat¸a serial˘a standardizat˘a JTAG. Aceasta folose¸ste 4 paduri dedicate semnalelor TCK, TDI, TMS ¸si TDO ¸si este folosit˘a ˆın special pentru verificarea padurilor de intrare-ie¸sire, a generatoarelor de ceas ¸si a conexiunilor circuitului montat pe cablajul imprimat.

Pentru testarea memoriilor exist˘a blocuri logice dedicate ce folosesc algoritmi de tip BIST, pentru o verificare exaustiv˘a a tuturor locat¸iilor de memorie.

17

Implementarea proiectelor pe platforme structured ASIC

Toate aceste elemente de testare inserate pe platformele structured ASIC simplific˘a mult proiectarea, testarea ¸si verificarea proiectelor implementate pe aceste noi tehnologii.

3.1.5 Configurarea platformei

Un proiect este complet definit de nivelul de metalizare prin via ¸si de valorile tuturor LUT-urilor de pe platforma structured ASIC. Valorile LUT-urilor sunt programate prin ˆınscrierea unor valori init¸iale dintr-o memorie serial˘a extern˘a, ce folose¸ste standard ul SPI (Serial Peripheral Interface Bus). Responsabil de aceast˘a configurare init¸ial˘a este procesorul, numit eMu , care foloseste doi pini dedicat¸i (EMUCLK, EMURESET) ¸si poate semnaliza sfˆar¸situl operat¸iei de configurare a platformei printr-un semnal optional (INITDONE). Durata procesului de configurare depinde de m˘arimea platformei ¸si de num˘arul elementelor ce necesit˘a init¸ializare ¸si este ˆıntre 170 ms ¸si 1370 ms , ˆın cazul folosirii unui ceas de 100MHz.

Posibilitatea de reconfigurare a LUT-urilor de pe platformele structured ASIC la fiecare punere sub tensiune ofer˘a posibilitatea cre˘arii unor arhitecturi cu reconfigurare static˘a ce ˆı¸si ˆınmagazineaz˘a informat¸ia de programare doar ˆın elemente de tip LUT. Aceasta va fi folosit˘a de autor pentru definirea tuturor arhitecturilor cu reconfigurare static˘a, deoarece ofer˘a cel mai bun rapor t ˆıntre aria ocupat˘a de o aplicat¸ie implementat˘a direct pe structured ASIC ¸si aceea¸si aplicat¸ie implementat˘a pe arhitecturi reconfigurabile.

3.2 Implementarea proiectelor pe platforme structured ASIC

Pentru implementarea unui proiect pe platformele structured ASIC se folosest¸e o metodologie similar˘a cu cea a circuitelor FPGA, dar la care se adaug˘a ¸si cˆateva din etapele folosite ˆın cazul implement˘arilor de celule standard. Pentru familia de circuite, eASIC Nextreme metodologia de lucru este bazat˘a pe mediul integrat de lucru Magma BlastCreate SA [30], dar sunt folosite ¸si unelte software dezvoltate de firma eASIC.

3.3 Concluzii

Tehnologiile tip structured ASIC ofer˘a o alternativ˘a proiectelor implementatate ˆın tehn ologii de celule standard care vor s˘a reduc˘a costurile ¸si proiectelor imp lementate pe FPGA ce vor s˘a ˆısi ˆımbun˘at˘at¸easc˘a performant¸ele de arie, putere ¸si frecvent¸a de lucru. Avantajul dat de configurarea interconexiunilor circu- itului prin intermediul unui singur nivel de metalizare, elimin˘a posibilitatea de reconfigurare a aplicat¸iilor implementate pe structured ASIC. Sunt ˆıns˘a cˆateva caracteristici care apropie circuitele structured ASIC de FPGA, caracteristici pe care le putem folosi pentru definirea unor arhitecturi reconfigurabile:

LUT-urile implementate cu memorie SRAM, ofer˘a posibilitatea de schimbare a funct¸iei logice imple- mentate ˆın acestea la fiecare punere sub tensiune. Putem folosi aceast˘a facilitate pentru definirea unor arhitecturi reconfigurabile static f˘ar˘a a necesita un sur plus de arie foarte mare.

configurat¸ia celulei de baz˘a permite implementarea unor f unct¸ii AND, OR de pˆan˘a la 8 intr˘ari per celul˘a logic˘a pentru arhitecturile bazate pe termeni produs. Fiind similar˘a cu celula de baz˘a a FPGA permite definirea unei celule FPGA bazat˘a pe LUT4 ¸si bistabil ce va n ecesita o ret¸ea dual˘a de interconectare.

posibilitatea de a descrie structural arhitecturile recon figurabile, folosind anumte configura;tii ale celulei de baz˘a, va ˆımbun˘at˘at¸i rezultatele de arie ¸si timp ale acestora

regularitatea arhitecturii permite dezvoltarea simpl˘a a unor macroblocuri ce pot fi repetate de un num˘ar mare de ori ¸si preplasate pentru a obt¸ine rezultate de arie ¸si timp optime.

integrarea memoriilor ˆın ret¸eaua de blocuri logice permite definirea unor arhitecturi reconfigurabile dinamic, multi-context sau cu multiplexare ˆın timp ce asigur˘a schimbarea configurat¸iei circuitului chiar ˆıntr-un tact de ceas.

Exist˘a ˆıns˘a ¸si aspecte ale tehnologiei structured ASIC care constituie limit˘ari ˆın folosirea ei ca suport pentru arhitecturile reconfigurabile. Astfel, limitarea l˘at¸imii memoriei eRAM ¸si imposibilitatea de a defini mai multe instant¸e de memorie distribuit˘a per unitate logic˘a va afecta ˆın mod negativ plasarea unei arhitecturi bazate pe memoria distribuit˘a. Imposibilitatea de a folosi bufferul three-state pentru configurat¸ii logice, nu va permite trasee de interconectare bidirect¸ionale, ceea ce va afecta probabil utilizarea arhitecturilor definite. Aceste limit˘ari pot fi eliminate prin modificarea layout-ului, ˆın viitoare implement˘ari ale tehnologiilor structured ASIC pentru a se asigura un suport optim pentru implementarea arh itecturilor reconfigurabile.

4. Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

Circuitele de tip structured ASIC au avantaje majore fat¸a de circuitele tip FPGA: aria ocupata˘ mai mic˘a, timpi de propagare mai mici ¸si putere consumat˘a mai mic˘a. Toate aceste avantaje vin din faptul c˘a se folose¸ste un singur nivel de metalizare tip via pentr u realizarea configurat¸iilor celulelor logice ¸si interconexiunilor dintre acestea. Circuitele tip FPGA au ˆıns˘a avantajul de a putea fi programate ¸si reprogramate de c˘atre proiectant¸i pentru a modifica funct¸ionarea proiectului implementat. Reprogramarea poate fi f˘acut˘a pentru a rezolva o problem˘a ˆın logica proiectului, pentru a ad˘auga o nou˘a facilitate sau chiar pentru a implementa un proiect complet nou folosind acela¸si circuit FPGA. Aceast˘a flexibiltate a circuitelor de tip FPGA de a putea fi reprogramate este pierdut˘a ˆın cazul circuitelor de tip structured ASIC prin folosirea unui nivel de metalizare ˆın programarea circuitului.

ˆ

In acest capitol se propun arhitecturi reconfigurabile ce pot fi implementate pe tehnologii de tip structured ASIC pentru a ad˘auga reprogramabilitatea pierdut˘a ˆın configurat¸iile celulelor logice ¸si interconexiunilor prin folosirea unui nivel de metalizare. Prezentate ˆın Tabelul 4-1, acestea vor fi descrise ˆın detaliu ˆın continuare, implementate folosind tehnologia eASIC Nextreme ¸si analizate din punct de vedere al ariei necesare per poart˘a logic˘a echivalent˘a ¸si a frecvent¸ei maxime de fu nct¸ionare.

4.1 Arhitecturi SPLD

Arhitecturile SPLD sunt cele mai simple arhitecturi programabile, bazate pe dou˘a planuri programabile de tip AND ¸si respectiv de tip OR. Ele pot fi folosite pentru implement˘ari reprogramabile ale unor aplicat¸ii de dimensiune redus˘a fiind potrivite pentru a realizarea funct¸iilor logice exprimate sub forma de sum˘a de produse, dar datorit˘a simplit˘at¸ii lor pot fi implementate pe tehnologiile tip structured ASIC cu un surplus minim de arie adit¸ional˘a.

4.1.1 ePAL - Arhitectur˘a PAL programabil˘a static

Pentru tehnologia eASIC Nextreme , o arhitectur˘a programabil˘a ˆın mod static folose¸ste pentru a stoca informat¸ia de programare elementele logice configurabile de tip LUT, care pot implementa funct¸ii combi- nat¸ionale de pan˘a la trei intr˘ari. Informat¸ia ˆınscris˘a ˆın elementele de tip LUT poate fi modificat˘a doar la init¸ializarea circuitului, fapt care permite reconfigurarea aplicat¸iei implementate doar ˆıntre dou˘a execut¸ii succesive ale acesteia. Posibilitatea de a reprograma un circuit folosind informat¸ia ˆınscris˘a ˆın elementele logice de tip LUT a fost introdus˘a pentru tehnologiile tip structured ASIC ˆın [31].

Pentru a implementa o arhitectur˘a de tip PAL ˆın tehnologie structured ASIC vom folosi mai multe nivele de realizare, fiecare nivel de realizare fiind implementat ˆıntr-o celul˘a logic˘a, eCell, dup˘a cum este descris ˆın Figura 4-1. Astfel pentru cele dou˘a nivele logice ale structurii PAL vom avea pˆan˘a la 5 nivele de realizare ˆın structura ePAL .

Primul nivel realizeaz˘a o funct¸ie AND programabil˘a, de aceea va fi implementat ca o funct¸ie de maxim 6 intr˘ari ¸si va ap˘area ˆın orice configurat¸ie de ePAL . Nivelele 2, 3 ¸si 4 realizeaz˘a funct¸ii fixe, pot fi implementate ca funct¸ii de maxim 8 intr˘ari folosind pe lˆang˘a cele dou˘a LUT3 ¸si portile NAND2 ¸si eventual inversoarele. Structura nivelului 2 difer˘a ˆın funct¸ie de num˘arul de intr˘ari, putˆand realiza o funct¸ie OR de 8 intr˘ari, combinat¸ii de funct¸ii AND-OR de 8 intr˘ari ¸si funct¸ia AND de 8 intr˘ari. Nivelul este opt¸ional, poate lipsi

Tabelul 4-1: Arhitecturi reconfigurabile pentru structured ASIC

Tip Num˘ar Modalitate Tip circuit de de modificare configurare contexte context SPLD CPLD FPGA Static˘a
Tip
Num˘ar Modalitate
Tip circuit
de
de
modificare
configurare contexte
context
SPLD
CPLD
FPGA
Static˘a
1
Bitstream
ePAL
eCPLD
eFPGA
1
Serial˘a
eSLPLA
eSLCPLD
-
Dinamic˘a
n
Paralel˘a
eTMPLA v1 eTMCPLD v1
-
n
Secvent¸ial˘a eTMPLA v2 eTMCPLD v2
-

19

Arhitecturi SPLD

pentru configurat¸ii mici. Nivelele 3 ¸si 4 sunt fixe ¸si realizeaz˘a ˆıntotdeauna funct¸ia OR de 8 intr˘ari. Nivelele 3 ¸si 4 sunt nivele optionale, pot lipsi ˆın funct¸ie de num˘arul de intr˘ari ¸si de termeni produs. Nivelul 5 sau nivelul de ie¸sire este programabil permit¸and selectarea ie¸sirii combinat¸ionale sau din registru. Nivelul va ap˘area ˆın orice configurat¸ie de ePAL .

Pe lˆang˘a registru ¸si selectarea ie¸sirii nivelul 5 rea- lizeaz˘a un OR de 4 intr˘ari, folosind perechea LUT- NAND r˘amas˘a nefolosit˘a, lucru care permite ca nivelele 2, 3 ¸si 4 s˘a lipseasc˘a ˆın anumite configurat¸ii ˆın funct¸ie de num˘arul de intr˘ari ¸si de termeni produs.

Nivelul 1 - realizeaz˘a o funct¸ie AND programabil˘a. Pe un eCell se implementeaz˘a atˆat inversoarele pentru intr˘ari, nodurile programabile ¸si o parte a

funct¸iei AND de pe nivelul 1.

In Figura 4-2 se

prezint˘a implementarea unei funct¸ii AND3 progra- mabile folosind un LUT cu trei intr˘ari, LUT3.

Un eCell cont¸ine dou˘a LUT3, deci va putea im- plementa, folosind ¸si multiplexorul, o funct¸ie AND6 programabil˘a prin modificarea cont¸inutului celor dou˘a LUT-uri.

Nivelul 2 - este un nivel fix, ˆın funct¸ie de num˘arul de intr˘ari realizeaz˘a urm˘atoarele funct¸ii de 8 intr˘ar i folosind cele dou˘a LUT3 ¸si cele dou˘a NAND2, astfel:

OR8 - dac˘a num˘arul de intr˘ari este mai mic sau egal cu 6 ( n 6 )

AND2 + OR4 - dac˘a num˘arul de intr˘ari este ˆıntre 7 ¸si 12 ( 6 < n 12 )

AND4 + OR2 - dac˘a num˘arul de intr˘ari este ˆıntre 13 ¸si 24 ( 12 < n 24 )

AND8 - dac˘a num˘arul de intr˘ari este ˆıntre 25 ¸si 48 ( 24 < n 48 )

Nivelul 3 - este un nivel fix, realizeaz˘a o funct¸ie OR de 8 intr˘ari. Nivelul poate lipsi, ˆın cazul ˆın care funct¸ia OR ce ˆınsumeaz˘a termenii produs este realizat˘a pe nivelul 2 sau pe nivelul de ie¸sire.

Nivelul 4 - este un nivel fix, realizeaz˘a o funct¸ie OR de 8 intr˘ari identic ca nivelul 3.

Nivelul 5 - este un nivel ce realizeaz˘a o funct¸ie OR

de 4 intr˘ari, un bistabil cu reset asincron ¸si set sau reset sincron. Poate fi programat pentru a genera ie¸sirea combinat¸ional˘a sau din registru folosind pentr u aceasta un LUT a c˘arui configurat¸ie selecteaz˘a ie¸sirea.

Bistabilul are posibiltate de reset asincron ce permite imp lementarea facilit˘at¸ii de reset sau set asincron.

ˆ

Figura 4-2: Implementarea funct¸iei AND3 cu intr˘ari programabile pe LUT3

Intrari si bucle de stare

nod programabil In[0] In[1] In[n] nod fix Iesiri dff Out[0] clk dff Out[1] clk dff
nod programabil
In[0]
In[1]
In[n]
nod fix
Iesiri
dff
Out[0]
clk
dff
Out[1]
clk
dff
Out[m]
clk
Nivelul 1
Nivelul 2
Nivelele
Nivelul 5
3−4
de iesire

Figura 4-1: ePAL : o structur˘a pe 5 nivele de realizare

A

B

C

Y LUT3
Y
LUT3

nod programabil

nod fix

ˆ

In caz de set asincron, se vor folosi dou˘a inversoare ˆınainte ¸si dup˘a bistabil ce vor trebui integrate ˆın logica implementat˘a pe nivelele AND-OR. Acest lucru complic˘a implementarea programelor EDA pentru implementarea circuitele tip ePAL . Pentru a elimina acest neajuns, se pot folosi facilit˘at¸ile de set ¸si reset sincron. Bistabilul are posibilitatea de a fi resetat sau setat sincron folosind un LUT extern celulei de ie¸sire.

4.1.1.1 Rezultatele implement˘arii ePAL22v10 pe structured ASIC

Pentru a valida din punct de vedere al ariei ¸si al timpului de propagare arhitectura reconfigurabil˘a propus˘a s-a ales implementarea unei structuri PAL22v10, cea mai folosit˘a configurat¸ie de PAL. Structura PAL22v10 are 22 de intr˘ari ¸si 10 ie¸siri, tipic din cele 22 de intr˘ar i 10 sunt interconectate cu cele 10 ie¸siri prin intermediul

4 Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

20

Tabelul 4-2: Rezultate de arie pentru aplicat¸ia XOR22v10 implementat˘a pe ePAL22v10

Implementare Aria NX750 NX1500 NX2500 NX4000 NX5000

 

[eCell]

[%]

[%]

[%]

[%]

[%]

Nextreme

150

0,271

0,149

0,088

0,054

0,041

ePAL22v10

688

1,244

0,685

0,404

0,248

0,191

unor buffere tree-state din macrocelula de ie¸sire. Aceast˘a structur˘a generic˘a asigur˘a flexibilitatea maxim˘a ˆın proiectare, permit¸ˆand configurarea macrocelulelor d e ie¸sire (OLMC - Output Logic MacroCell) de c˘atre utilizator. PAL22V10 are un num˘ar variabil de termeni produs per macrocelul˘a de ie¸sire (OLMC). Din cele zece OLMC disponibile, dou˘a OLMC au acces la opt termen i produs (pinii 14 ¸si 23), dou˘a au zece termeni produs (pinii 15 ¸si 22), dou˘a au doisprezece termeni produs (pinii 16 ¸si 21), dou˘a au paisprezece termeni produs (pinii 17 ¸so 20) ¸si dou˘a OLMC au ¸saisprezece termeni produs (pinii 18 ¸si 19). Polaritatea ie¸sirii fiec˘arui OLMC poate fi programat˘a individual pentru a fi neinversat˘a sau inversat˘a, ie¸sirea poate fi programat˘a s˘a funct¸ioneze ˆın mod combinat¸ional sau secvent¸ial.

Pentru a determina cantitativ performant¸ele circuitului reconfigurabil ePAL22v10 propus, din punct de vedere al ariei ocupate ¸si al frecvent¸ei de funct¸ionare, s-a implementat circuitul folosind tehnologia eASIC Nextreme pe platforma NX750 ˆın tehnologie Fujitsu de 90 nm. Circuitu l a fost descris folosind limbajul de descriere hardware Verilog, versiunea 2001, ce permite b ucle pentru generarea automat˘a a instant¸elor necesare, conform algoritmului descris anterior. Fi¸sier ul Verilog este unul complet structural descrierea circuitului fiind f˘acut˘a numai cu instant¸e de eCell -uri configurate ¸si interconectate corespunz˘ator. Pentr u a avea un termen de comparat¸ie ˆıntre o aplicat¸ie implementat˘a pe ePAL22v10 cu posibilitatea de reconfigurare static˘a ¸si acceasi aplicat¸ie implementat˘a f˘ar˘a posibiltate de reconfigurare, s-a ales implementarea unei aplicat¸ii de test, numit˘a XOR22v10, care folose¸ste toate intr˘arile, tot¸i termenii produs, toate bistabilele ¸si toate ie¸sirile circuitului. Implementarea aplicat¸iei de test, atˆat direct pe eASIC Nextreme cˆat ¸si prin configurarea structurii ePAL22v10 ¸si implementarea ulterioar˘a pe eASIC Nextreme , s-a f˘acut folosind solut¸ia integrat˘a oferit˘a de Magma Design Automation [30] numit˘a BlastCreate SA.

Tabelul 4-2 prezint˘a rezultatele de arie obt¸inute ˆın urma implement˘arii aplicat¸iei de test pe eASIC Nextreme . Se observ˘a faptul c˘a aplicat¸ia implementat˘a este de mici dimensiuni (c˘ateva sute de port¸i echivalente). Raportul de arie ˆıntre implementarea aplicat¸iei pe arhitectura programabil˘a ePAL22v10 ¸si implementarea direct˘a ˆın structured ASIC este de aproxim ativ 4,5 la 1. Dac˘a consider˘am ca ˆın medie putem imlplementa ˆıntre 8 ¸si 12 port¸i echivalente pe un eCell, atunci putem estima faptul c˘a folosind arhitectura ePAL putem implementa 2 port¸i echivalente per eCell.

Tabelul 4-3 prezint˘a rezultatele obt¸inute ˆın urma analizei statice de timp asupra celor dou˘a circuite:

implementarea direct˘a ˆın structured ASIC ¸si implementare folosind arhitectura programabil˘a ePAL22v10.

S-a realizat analiza de timp ˆın condit¸iile Worst Case, 85 C pentru tehnologie standard (STD - 1,2V) ¸si

ˆınalt˘a performant¸˘a (HP - 1,3V).

Timpul ˆın care se face schimbarea configurat¸iei pentru un ePAL este fix, nu depinde de structura im-

plementat˘a, deoarece nu este permis˘a reconfigurarea

Tabelul 4-3:

Rezultate de timp pentru aplicat¸ia

XOR22v10 implementat˘a pe ePAL22v10

Implementare HP 1,3V STD 1,2V

[ns]

[ns]

Nextreme

ePAL22v10

1,813

1,995

2,590

2,851

ˆ

unei port¸iuni a platformei eASIC Nextreme . In acest

caz timpul de configurare este fix, fiind dat doar de

m˘arimea platformei alese pentru implementare fiind ˆıntre 253ms pentru NX750 ¸si putˆand ajunge pˆan˘a la 2057ms pentru NX5000 [28].

Arhitecturile reprogramabile static de tip ePAL ofer˘a posibilitatea de reconfigurare post-product¸ie a aplicat¸iilor de dimensiune mic˘a implementate pe structured ASIC. Folosind ca memorie de configurare chiar LUT-urile bazate pe memorie SRAM; ele permit schimbarea con figurat¸iei active doar ˆıntre dou˘a execut¸ii succesive ale aplicat¸iei. Totodat˘a, folosirea LUT-urile implementate cu memorie SRAM, ca element de configurare, are ca avantaj o bun˘a utilizare a ariei permit¸ˆand implementarea a aproximativ dou˘a port¸i echivalente per eCell. Implementarea unei structuri ePAL22v10 a demonstrat c˘a arhitectura propus˘a poate funct¸iona la frecvent¸˘a ridicat˘a f˘ar˘a a afecta frecvent¸a maxim˘a de funct¸ionare a aplicat¸iei.

21

Arhitecturi SPLD

4.1.2 eTMPLA - Arhitectur˘a PLA cu multiplexare ˆın timp

Flexibilitatea dispozitivelor programabile este dat˘a de posibilitatea de a fi configurate pentru a realiza o gam˘a larg˘a de aplicat¸ii. Procesul de reconfigurare dinamic˘a, ˆın timpul execut¸iei aplicat¸iei, poate introduce

o latent¸˘a suplimentar˘a, datorit˘a reconfigur˘arii aplicat¸iei. Pentru aplicat¸iile ce necesit˘a reconfigurarea ˆın timpul execut¸iei aceast˘a latent¸˘a poate fi prohibitiv˘a. O alternativ˘a este de a asigura spat¸iu de stocare pentru mai multe configurat¸ii simultan, facilitˆand recon figurarea rapid˘a. Un dispozitiv cu mutiplexare ˆın timp (numit ¸si multi-context) cont¸ine planuri multiple (contexte) de configurat¸ii. Fiecare nod configurabil

al

circuitului este controlat de un multiplexor, ce selecteaz˘a o configurat¸ie din planul de contexte.

M˘arimea unui proiect este m˘asurat˘a convent¸inal folosind metrica num˘arului de port¸i logice folosite pentru

a

rezolva o problem˘a. Aceast˘a metric˘a a num˘arului de por¸it echivalente, nu ¸inet cont de aspectul temporal

al

utiliz˘arii port¸ilor logice. Pot exista cazuri ˆın care o poart˘a este folosit˘a doar o scurt˘a fract¸iune din timpu l

utiliz˘arii circuitului. DeHon propune ˆın [19] s˘a se considere ¸si aspectul temporal al utiliz˘arii port¸ilor logice

definind o l˘at¸ime de band˘a a port¸ii logice. Structurile cu multiplexare ˆın timp ˆıncearc˘a s˘a optimizeze tocmai aceast˘a l˘at¸ime de band˘a a port¸ii logice. Pentru FPGA, m ai multe arhitecturi multi-context au fost propuse:

TMFPGA (Time Multiplexed FPGA) [18], DPGA (Dynamic Programable Gate Array) [19, 20, 21], Dharma [22] ¸si Morphosys [32].

Pentru structured ASIC, prima arhitectur˘a reconfigurabil˘a multicontext, eRECOP [33], a fost propus˘a de Dene¸s ¸si comparat˘a cu structura de PAL22V10 ˆın [34] f˘ar a˘ a fi testat˘a implementarea ei pe structured ASIC, deoarece necesita modificarea layout-ului pentru familiile structured ASIC existente. Ideile lui Dene¸s au stat la baza dezvolt˘arii arhitecturii eTMPLA , prin ad˘augarea de suport real pentru multiplexarea ˆın timp [35] ¸si optimizarea ariei ocupate [36].

4.1.2.1 Matricea AND-OR

Pentru a implementa un PLA programabil dinamic este nevoie ˆın primul rˆand de implementarea unor noduri programabile. Ideea care st˘a la baza obt¸inerii unor noduri reprogramabile ˆın tehnologia structured ASIC, este folosirea elementului neutru pentru funct¸iile logice AND ¸si OR.

Un astfel de nod reprogramabil este format dintr-un multiplexor, ¸si un element de memorie (sau element de configurare) care stocheaz˘a bitul de select¸ie pentru multiplexor (Figura 4-3). Pentru un nod programat, bitul de select¸ie ˆınscris in elemetul de configurare (bitul C din Figura 4-4a va

permite conectarea intr˘arii dorite la nivelul AND, sau con ectarea termenului

Neutral Element Config 0 1 Bit Figura 4-3: eNode - nod confi- gurabil ˆın structured
Neutral
Element
Config
0
1
Bit
Figura 4-3: eNode - nod confi-
gurabil ˆın structured ASIC [33]

ˆ

produs dorit la nivelul OR. In cazul nodului neprogramat, multiplexorul va conecta elemetul neutru ( 1 pentru AND, ¸si 0 pentru OR) la nivelul AND

¸si respectiv la nivelul OR.

Implementarea sistemelor digitale sincrone presupune ad˘augarea unor registre pe ie¸sirea submodulelor. Structura din Figura 4-4a permite ie¸siri combinat¸ionale sau secvent¸iale, ˆın funct¸ie de nevoile utilizatorilor. Posibilitatea folosirii ie¸sirilor secvent¸iale sau comb inat¸ionale are ca efect cre¸sterea num˘arului de bit¸i de configurare, cre¸sterea ariei alocate pentru stocarea confi gurat¸iei ¸si implicit sc˘aderea num˘arului de eCell -uri alocate pentru logica propriu-zis˘a.

Ideea de baz˘a ˆın multiplexrea ˆın timp o constituie suprap unerea a n planuri, rezultˆand o utilizare mai eficient˘a a logicii. Avˆand ˆın vedere c˘a un eCell poate implementa o celul˘a de eRAM de 16-bit¸i, putem considera n = 16. Memoria de configurare, distribuit˘a sau grupat˘a ˆıntr-un eRAM , va stoca 16 bit¸i de configurare pentru fiecare nod din structura eTMPLA . Astfel, memoria de configurare poate fi vazut˘a ca 16 plane de configurare. La punerea sub tensiune, toti bit¸ii din logic˘a (nivelele AND ¸si OR) ¸si din aria de interconectare (noduri) sunt ˆınc˘arcat¸i simultan.

4.1.2.2 Microregi¸strii

Dac˘a logica combinat¸ional˘a poate fi multiplexat˘a ˆın timp ˆıntre mai multe configurat¸ii, valorile de stare nu pot fi multiplexate. Ele trebuie stocate pentru a fi disponibile pentru logic˘a din configurat¸iile urm˘atoare.

Solut¸ia este ad˘augarea unor microregi¸stri la fiecare ie¸sire din structura eTMPLA (Figura 4-4a). Un

4 Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

22

Input C Function (k,l) 1 X0 1 X1 ’1’ 1 0 0 Xn−1 Node (k,l)
Input
C
Function
(k,l)
1
X0
1
X1
’1’
1
0
0
Xn−1
Node
(k,l)
(k,l) 1 X0 1 X1 ’1’ 1 0 0 Xn−1 Node (k,l) ’0’ Function C (m,n)

’0’

Function

C (m,n)

Output cell (m,n)

X0

0 0

1

X1 ’1’ 1 0 0 Xn−1 Node (k,l) ’0’ Function C (m,n) Output cell ( m
C (m,n) Output cell ( m , n ) X0 0 0 1 X1 1 micro
X1 1 micro registers C (m,n) Xn−1 1 X0 0 0 X1 1 1 Node
X1
1
micro registers
C
(m,n)
Xn−1
1
X0
0
0
X1
1
1
Node
(m,n)
Xn−1
1
1
D
Q
Output
CK
(a)
1
0
1 X1 1 micro registers C (m,n) Xn−1 1 X0 0 0 X1 1 1 Node
1 X1 1 micro registers C (m,n) Xn−1 1 X0 0 0 X1 1 1 Node
ePLA Structure (AND/OR levels) Config Memory C (m,n) C (k,l)
ePLA Structure
(AND/OR levels)
Config Memory
C
(m,n)
C (k,l)

(b)

Function X0

context

Function Xn−1

context

Figura 4-4: Arhitectura eTMPLA: a)Matricea AND-OR cu microregi¸stri; b)Memoria de configurare.

microregistru stocheaz˘a ie¸sirea PLA (combinat¸ional˘a sau secvent¸ial˘a), cˆand circuitul schimb˘a configurat¸ia. Salvarea st˘arii este f˘acut˘a automat, folosind acela¸si semnal de ceas ca pentru logica implementat˘a ˆın arhitectura reconfigurabil˘a. Logica implementat˘a pe platform˘a poate accesa valorile stocate ˆın microregi¸strii pentru orice configurat¸ie. Pe lˆang˘a ie¸sirea PLA, arhitectura propus˘a export˘a o interfat¸˘a de acces la microregistri.

ˆ

In modul automat logic , prezentat ˆın sect¸iunea 2.3.2 de la pagina 12, microregi¸strii stocheaz˘a valorile intermediare ¸si valorile bistabilelor. Aceasta este o fun ct¸ie esent¸ial˘a. Dac˘a circuitistica combinat¸ional˘a poate fi multiplexat˘a ˆın timp ˆıntre mai multe funct¸ii, in format¸ia de stare nu poate fi multiplexat˘a.

ˆ

In modul partajat ˆın timp, prezentat ˆın sect¸iunea 2.3.2 de la pagina 12, microregi¸strii sunt folositi pentru a transmite date de la o configurat¸ie la alta ¸si pentru a salva starea unei configurat¸ii, cˆand este dezactivat˘a. La reactivarea configurat¸iei, circuitul va restaura starea tuturor regi¸strilor folosind valorile din microregi¸stri.

4.1.2.3 Memoria de configurat¸ii

Memoria de configurat¸ii, prezentat˘a ˆın Figura 4-4b, serve¸ste pentru p˘astrarea celor n configurat¸ii ale circuitului ¸si ideal ar fi s˘a permit˘a schimbarea configura¸ieit active ˆıntr-un singur tact de ceas.

Pentru tehnologii de tip structured ASIC trebuie sa folosim una din metodele existente de a implementa memorie RAM:

implementarea cu bistabile D este o solut¸ie care permite plasarea bistabilelor aproape de nodurile controlate, dar are marele dezavantaj de a fi mare consumatoare de resurse. De exemplu, pentru 16 contexte vor trebui utilizate cel put¸in 16 celule logice, eCell.

implementarea cu memorii distribuite de tip eRAM e o solut¸ie foarte bun˘a, deoarece permite ca memoria s˘a fie integrat˘a cu logica controlat˘a. Aria neces ar˘a pentru a implementa o memorie 16x1 ˆın tehnologie eASIC este de doar 1 eCell, cel put¸in de 16 ori mai mic˘a decˆat cea implementat˘a cu bistabile. Singurele dezavantaje sunt date de faptul c˘a nici nu se pot implementa memorii mai late de 16 bit¸i ¸si nici nu se poate implementa mai mult de o instan¸˘ta de eRAM pe un eUnit (matrice de 16x16 eCell -uri). Acest lucru va duce la un layout ˆımpr˘a¸stiat pe platform˘a, ce va afecta negativ aria ¸si frecvent¸a maxim˘a a aplicat¸iilor implementate pe arh itectura cu multiplexare ˆın timp.

implementarea cu memorii bloc, bRAM , este o solut¸ie pentru aplicat¸iile care nu necesit˘a schimbarea contextului ˆıntr-un singur tact de ceas. Acest lucru este d at de faptul c˘a adˆancimea minim˘a a blocului bRAM este de 1024 de locat¸ii, iar l˘at¸imea maxima este de 32 de bi¸i.t Considerˆand un dispozitiv cu 16 contexte, un bRAM poate asigura memoria necesar˘a pentru 2048 de noduri recon figurabile, iar reconfigurarea celor 2048 de noduri va dura 64 de tacte ale sem nalului de ceas. Aceast˘a solut¸ie este preferat˘a deoarece memoriile bRAM fiind cu un singur port de scriere - citire, sunt put¸in folosite de aplicat¸iile implementate pe structured ASIC.

23

Arhitecturi SPLD

X
X

nod neprogramat23 Arhitecturi SPLD X nod programat a) X Element Neutru ctx_bit[0] 0 1 Element Neutru 00

nod programat23 Arhitecturi SPLD X nod neprogramat a) X Element Neutru ctx_bit[0] 0 1 Element Neutru 00

a)

X Element Neutru ctx_bit[0] 0 1 Element Neutru 00 11 ctx_bit[1] b)
X
Element
Neutru
ctx_bit[0]
0
1
Element
Neutru
00
11
ctx_bit[1]
b)
X Element Neutru ctx_bit[0] 0 1 ctx_bit[1] c)
X
Element
Neutru
ctx_bit[0]
0
1
ctx_bit[1]
c)

Figura 4-5: Optimizarea num˘arului de noduri programabile: a) Noduri programabile PLA; b) Structura init¸ial˘a cu dou˘a eNode -uri pe intrare; c) Structura optimizat˘a cu un singur eNode pe intrare.

4.1.2.4 Optimizarea ariei pentru arhitectura eTMPLA

Structura din Figura 4-4a, pentru o configurat¸ie de trei intr˘ari necesit˘a port¸i AND cu num˘ar dublu de intr˘ari deoarece se propag˘a atˆat varianta negat˘a ¸si varianta nenegat˘a pentru fiecare intrare. De asemenea, num˘arul de eNode -uri necesar este dublat de necesitatea program˘arii variabilei negate ¸si nenegate. Acest lucru poate fi optimizat, pentru c˘a un termen produs nu poate folosi ˆın acela¸si timp varianta negat˘a ¸si varianta nenegat˘a a unei intr˘ari. Figura 4-5a prezint˘a nodurile programabile din structura PLA, Figura

4-5b prezint˘a structura init¸ial˘a folosit˘a pentru selectarea unei intr˘ari iar Figura 4-5c propune comasarea

celor

dou˘a eNode -uri ˆıntr-unul singur cu urm˘atoarele avantaje:

aria ocupat˘a de un eNode r˘amˆane aceea¸si, fiind de un LUT cu trei intr˘ari atˆat pentru varianta initial˘a [34], cˆat ¸si pentru varianta optimizat˘a.

eNode -ul modificat folose¸ste ˆıntreg LUT-ul fiind o funct¸ie de tr ei intr˘ari, varianta init¸ial˘a folosea LUT- ul suboptimal pentru implementarea unei funct¸ii de dou˘a intr˘ari.

num˘arul de eNode -uri este redus la jum˘atate.

num˘arul de intr˘ari necesar ˆın poarta AND este de asemenea redus la jum˘atate.

inversoarele pentru intr˘ari nu mai sunt necesare, fiind integrate ˆın eNode ¸si implementate ˆın acela¸si LUT cu nodul programabil.

ˆ

num˘arul de bit¸i de configurare r˘amˆane acela¸si, semnificat¸ia lor fiind diferit˘a. In varianta init¸ial˘a, bitul

zero selecta dac˘a variabila nenegat˘a este folosit˘a ˆın p oarta AND, iar bitul unu selecta dac˘a variabila

ˆ

negat˘a este folosit˘a. In versiunea optimizat˘a, bitul zero selecteaz˘a dac˘a var iabila este folosit˘a ˆın poarta

AND, iar bitul unu selecteaz˘a dac˘a variabila este folosit˘a negat˘a sau nenegat˘a.

Funct¸ia de trei intr˘ari a eNode -ului modificat va necesita un LUT, a¸sadar vom putea implementa dou˘a

eNode -uri

ˆıntr-un singur eCell.

4.1.2.5

Rezultatele implement˘arii eTMPAL22v10 pe structured ASIC

Folosind arhitectura propus˘a anterior pentru eTMPLA s-a generat o structur˘a clasic˘a de PAL22V10 cu dou˘a modalit˘ati de implemntare a memoriei de contexte (de configurare):

eTMPAL22v10 v1 are memoria de contexte implementat˘a cu memorie distribuit˘a eRAM

eTMPAL22v10 v2 are memoria de contexte implementat˘a cu memorie bloc bRAM

Num˘arul de contexte ales pentru implementare a fost 16, deoarece cea mai mic˘a adˆancime posibil˘a pentru memoria eRAM este 16.

Nodul programabil, eNode , necesit˘a un LUT pentru implementare, ˆın structura eCell -ului avem dou˘a LUT- uri, deci vom putea implementa dou˘a eNode per eCell. Pentru varianta ˆın care memoria de configurare este implementat˘a cu bRAM , avem nevoie de posibilitatea de a stoca local cei doi bit¸i d e configurare, deoarece schimbarea unei configurat¸ii se face secvent¸ial. Avˆand n evoie de dou˘a bistabile, structura aceasta de eNode va necesita dou˘a eCell -uri.

4 Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

24

Tabelul 4-4: Rezultate de arie pentru aplicat¸ia XOR22v10 implementat˘a pe eTMPAL22v10

Implementare

Aria [eCell] [eRAM] [bRAM]

NX750 NX1500 NX2500 NX4000 NX5000

[%]

[%]

[%]

[%]

[%]

Nextreme

150

0

0

0,271

0,149

0,088

0,054

0,041

eTMPAL22v10 v1 11839 eTMPAL22v10 v2 7863

334

0

-

11,324

6,685

4,110

3,170

2

3

14,219

7,835

4,625

2,843

2,293

Tabelul 4-5: Rezultate de timp pentru aplicat¸ia XOR22v10 implementat˘a pe eTMPAL22v10

Implementare

HP 1,3V

 

STD 1,2V

 

clk

cclk

durat˘a config.

clk

cclk durat˘a config.

[ns]

[ns]

[ns]

[ns]

[ns]

[ns]

Nextreme

1,813

-

-

1,995

-

-

eTMPAL22v10 v1

5,579 6,830

6,830

6,137 7,494

7,494

eTMPAL22v10 v2

3,765 4,355

252,590

4,146 4,794

278,052

Arhitectura cu multiplexare ˆın timp propus˘a a fost modelat˘a ˆın Verilog 2001 folose¸ste o abordare generic˘a cu parametrii pentru num˘arul de intr˘ari ¸si pentru num˘arul de termeni produs. S-au generat dou˘a descrieri, una, eTMPAL22v10 v1, care folose¸ste memoria distribuit˘a ¸si a doua, eTMPAL22v10 v2 folose¸ste memoria bloc. Ambele modele de memorie au fost configurate de l˘at¸im e maxim˘a, adˆancimea este egal˘a cu num˘arul de contexte pentru memoria eRAM , iar pentru memoria bRAM folosim adˆancimea maxim˘a. A¸sadar memoriile eRAM utilizate sunt configurate 16x16, ˆın timp ce memoriile bRAM sunt configurate ca fiind de 1024x32. Folosind aceste configurat¸ii o memorie eRAM asigur˘a bit¸ii de context pentru 8 eNode -uri, iar o locat¸ie din memoria bRAM asigur˘a bit¸ii de context pentru 16 eNode -uri.

Tabelul 4-4 prezint˘a comparativ rezultatele de arie pentr u cele dou˘a solut¸ii de eTMPAL22v10 propuse. eTMPAL22v10 v1 va genera un layout r˘aspˆandit pe platforma NX1500, lucru ce afecteaz˘a rezultatele de arie ¸si de timp. Problema este dat˘a de faptul c˘a putem implementa doar o singur˘a memorie distribuit˘a pe un eUnit, iar l˘at¸imea magistralelor de date este maxim 16. Se obser v˘a ˆın Tabelul 4-4 num˘arul mare de instant¸e de memorie eRAM , care face ca eTMPAL22v10 v1 s˘a nu poat˘a fi implementat pe eASIC Nextreme NX750, de¸si num˘arul de eCell -uri ar permite acest lucru. Solut¸ia care ar rezolva aceasta˘ problem˘a este modificarea layout-ului structured ASIC pentru a permite definirea de memorii distribuite de l˘at¸ime mai mare. De exemplu, un eRAM poate implementa actual o memorie 256x16, dar nu poate fi confi gurat ca 16x256. Posibilitatea de a implementa memorii cu l˘at¸ime m are a magistralelor de date sau posibilitatea de a implementa multe memorii mici este critic˘a pentru arhitecturile reconfigurabile ˆıntr-un singur tact de ceas.

Tabelul 4-5 prezint˘a rezultatele obt¸inute pentru aplica¸iat de test, XOR22v10, implementat˘a pe eTM- PAL22v10 comparativ cu aceea¸si aplicat¸ie implentat˘a direct ˆın structured ASIC. Rezultatele de timp relev˘a fapul c˘a un layout r˘aspˆandit, pentru eTMPAL22v10 v1, afecteaz˘a negativ ¸si c˘aile de timp. O plasare inadecvat˘a poate afecta ¸si restul logicii implementate p e structured ASIC, ceea ce face ca arhitectura reconfigurabil˘a ˆıntr-un singur tact de ceas s˘a fie o solut¸ie doar pentru configurat¸ii mici de PAL. Arhitectura bazat˘a pe memorie bloc ofer˘a performant¸e mai bune ˆın ceea ce prive¸ste aria ¸si frecvent¸a maxim˘a de funct¸ionare. Cu un timp de reconfigurare de ordinul sutelor de nanosecunde, eTMPAL22v10 ve reprezint˘a o solut¸ie optim˘a din punct de vedere al performant¸elor pentru arhitecturile cu multiplexare ˆın timp.

4.1.3 Analiza comparativ˘a a arhitecturilor SPLD propuse

Cele trei arhitecturi reconfigurabile de tip SPLD propuse au urm˘atoarele caracteristici:

ePAL este o arhitectur˘a reconfigurabil˘a static pe baza flexibilit˘at¸ii implement˘arii logicii ˆın LUT-uri

eSLPLA este o arhitectur˘a reconfigurabil˘a dinamic, programarea se face ˆın mod serial folosind bistabile ˆınseriate ˆıntr-un lant¸ de scanare

eTMPLA este o arhitectur˘a reconfigurabil˘a dinamic cu multiplexare ˆın timp ce permite schimbarea rapid˘a a configurat¸iei, prin folosirea memoriei dedicate pentru stocarea a mai multor contexte.

25

Arhitecturi SPLD

Tabelul 4-7: Rezultate de timp pentru arhitecturile tip SPLD

 

ˆ

Circuit

Perioada Perioada

Inc˘arcare configurat¸ie

Schimbare configurat¸ie

clk

cclk

[ns]

[ns]

[ns]

[ns]

GAL22V10 COM/IND-4

5

-

XOR22v10

1,813

-

cˆateva sec. - 250 10 6 2050 10 6

cˆateva sec. - 250 10 6 2050 10 6

ePAL22v10

2,590

-

eSLPAL22v10

3,725

0,871

4703,400

4703,400

eTMPAL22v10 v1 eTMPAL22v10 v2

5,579

6,830

2342,690

6,830

3,765

4,355

252,590

252,590

Implementarea unei aplicat¸ii de test, direct pe structured ASIC ¸si indirect folosind aceste arhitecturi reconfigurabile, a evident¸iat costurile ce trebuie pl˘atite pentru a beneficia de posibilitatea de a reprograma funct¸ia unui circuit. Datele din Tabelul 4-6 arat˘a faptul c˘a arhitectura cu reconfigurare static˘a are cea mai mic˘a arie, dar dac˘a se consider˘a raportul ˆıntre aria ocupat˘a ¸si num˘arul de configurat¸ii posibil de realizat ˆın acela¸si timp, arhitectura cu multiplexare ˆın timp ce folose¸ste memoria bloc are cel mai bun rezultat. Posibilitatea de a maximiza capacitatea logic˘a pentru dispozitivele multi-context depinde mult de capacitatea uneltelor software de a folosi optim toate confi gurat¸iile disponibile.

Se poate realiza o comparat¸ie apro- ximativ˘a ˆıntre o implementare pe arhitecturile propuse ¸si un circuit comercial, GAL22V10 [37]. Pen- tru comparat¸ie s-a ales dispozitivul GAL22V10 COM/IND-4 realizat ˆın tehnologie E 2 CMOS (high performance CMOS process with Electrical Erasable floating gate technology). Rezultatele comparat¸iei sunt sintetizate ˆın Tabelul

4-7. Arhitectura cu ˆınc˘arcare serial˘a, eSLPAL cu versiunea eSLPAL22v10, este descris˘a detaliat doar ˆın varianta complet˘a a tezei. Se observ˘a c˘a solut¸iile propuse au rezultate de timp mai bune decˆat solu¸iat comercial˘a specificat˘a. Timpul de ˆınc˘arcare a configurat¸iei de ordinul a cˆateva secunde pentru GAL22V10 COM/IND-4, este mult redus ˆın cazul arhitecturilor reconfigurabile propuse, fiind maxim de aproxativ 4,7 µs pentru eSLPAL22v10. Timpul de schimbare a configurat¸iei active este de asemenea mult redu s prin stocarea mai multor contexte, configurat¸ia activ˘a putˆand fi schimbat˘a chiar ˆıntr-un tact de ceas. Pentru arhitecturile multi-context se permite ˆın plus suprapunerea funct¸ion˘arii normale pe baza unei configura¸iit active cu ˆınc˘arcarcea altor configurat¸ii ˆın paralel.

Tabelul 4-8 prezint˘a estimarea puterii consumate de arhitecturile reconfigurabile de tip SPLD ¸si a puterii consumate de aplicat¸ia de test implementat˘a direct ˆın structured ASIC, ˆın condit¸ii tipice, la un factor de comutare de 30%. Dac˘a estim˘am puterea per configurat¸ie logic˘a, se observ˘a c˘a arhitecturile cu multiplexare ˆın timp au rezultate mai bune cu aproximativ un ordin de m˘arime, ˆın cazul folosirii celor 16 configurat¸ii, datorit˘a ˆımp˘art¸irii puterii con- sumate ˆın regim static la num˘arul de configurat¸ii.

Arhitecturile reconfigurabile de tip SPLD propuse permit implementarea ˆın tehnologii tip structured ASIC a unor aplicat¸ii reprogramabile de dimensiune relativ mic˘a. Selectarea unei solut¸ii din cele prezentate depinde de necesitatea de reconfigurare static˘a sau dinamic˘a, de aria avut˘a in vedere pentru implementarea circuitului ¸si de timpul ˆın care este necesar s˘a se fac˘a reconfigurarea circuitului.

Tabelul 4-6: Rezultate de arie pentru arhitecturile tip SPLD

Circuit

Aria

Logic˘a per

configurat¸ie

 

[eCell] [eRAM] [bRAM]

[eCell]

XOR22v10

150

0

0

150

ePAL22v10

688

0

0

688

eSLPAL22v10 6058 eTMPAL22v10 v1 11839

0

0

6058

334

0

739,93

eTMPAL22v10 v2 7863

2

3

491,43

Tabelul 4-8: Estimarea puterii consumate de arhitecturile tip SPLD

Circuit

Putere consumat˘a STD (1,2V) HP (1,3V)

 

[mW]

[mW]

XOR22v10

51

56

ePAL22v10

59

59

eSLPAL22v10

85

99

eTMPAL22v10 v1 eTMPAL22v10 v2

117

139

100

118

4 Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

26

ePLD ePLD Dynamic connect matrix (eConnect) ePLD
ePLD
ePLD
Dynamic
connect
matrix
(eConnect)
ePLD

a)

’1’ 1 0 Cp=1 dff Ci=0 programmed noninverting node ’1’ 1 0 Cp=1 Ci=1 programmed
’1’
1
0
Cp=1
dff
Ci=0
programmed
noninverting
node
’1’
1
0
Cp=1
Ci=1
programmed
inverting
node
dff
’1’
1
0
Cp=0
Ci=x
node
not
programmed

b)

Figura 4-6: Arhitectura CPLD: a) Organizare CPLD; b) Organizare ePLD [3 9].

4.2 Arhitecturi CPLD

Avansul tehnologic a dus la produse cu o capacitate mai mare d ecˆat cea a circuitelor PAL sau PLA. Numite CPLD aceste circuite cont¸in mai multe structuri PLA programabile interconectate de o singur˘a structur˘a de rutare central˘a. O diagram˘a a unei astfel de arhitectur i este prezentat˘a ˆın Figura 4-6a. Structura PLD, numit˘a ¸si macrobloc, (Figura 4-6b) este de obicei de l˘at¸ime ˆıntre 8 ¸si 32 de bit¸i, cu mai mult¸i bit¸i de intrare decˆat bit¸i de ie¸sire. Ie¸sirile sunt de obicei din bistabile, dar pot fi ¸si combinat¸ionale. De obicei, toate intr˘arile ˆıntr-un macrobloc se conecteaz˘a la tot¸i termenii produs de la toate macrocelulele ˆımpreun˘a cu intr˘ari adit¸ionale de react¸ie ¸si pentru structura de interconectare. Pot fi definit¸i ¸si termeni de expansiune ai structurii (similar cu cei definit¸i pentru familia de circuite Altera Max [6]).

Matricea de interconectare se folose¸ste pentru rutarea semnalelor ˆıntre structurile PLD sau ˆıntre structurile

PLD ¸si porturile de intrare-ie¸sire. Tipic, se folose¸ste o singur˘a structur˘a de interconectare plasat˘a central ¸si ˆınconjurat˘a de structuri PLD. Aceast˘a structur˘a este suficient˘a pentru dispozitivele CPLD, deoarece

ˆ

macroblocurile ˆıncapsuleaz˘a toat˘a logica iar majoritatea conexiunilor sunt interne. Inseamn˘a c˘a este necesar un num˘ar relativ mic de interconexiuni ˆıntre structuri PLD (macroblocuri). Avantajul unei structuri centrale de interconectare este dat ¸si de faptul c˘a majoritatea sem nalelor se propag˘a pe c˘ai similare, ceea ce face u¸sor de prezis performant¸ele de timp ale circuitului. De asemen ea, alt avantaj al structurii de rutare centrale este reducerea puterii consumate fat¸˘a de arhietecturile bazate pe rutare segmentat˘a ([38]).

Arhitectura reconfigurabil˘a este alc˘atuit˘a din mai multe matrici AND-OR configurabile (numite generic ePLD ¸si o singur˘a structur˘a de interconectare reconfigurabila˘ (numit˘a generic eConnect ).

4.2.1 eCPLD - Arhitectur˘a CPLD programabil˘a static

Tehnologiile structured ASIC care au LUT-urile implementate cu memorie SRAM, beneficiaz˘a de posi- biliatea ˆınc˘arc˘arii altor funct¸ii logice ˆın LUT-uri la fiecare punere sub tensiune. Pentru a utiliza aceast˘a facilitate, au fost create unelte software pentru generarea de circuite programabile ePLD (eGenPLD ) ¸si structuri de interconectare programabile (eGenConnect ). Modelele generate cu aceste programe puteau fi ˆınglobate ˆın proiectele utilizatorilor, pentru a beneficia de o flexibilitate ˆın programare similar˘a circuitelor FPGA. Folosind aceste resurse, a fost propus˘a o prim˘a arhitectur˘a CPLD [40] ce permite reprogramarea static˘a prin posibilitatea ˆınc˘arc˘arii unei noi configu rat¸ii la fiecare punere sub tensiune.

27

Arhitecturi CPLD

Tabelul 4-9: Rezultate de arie pentru aplicat¸ia XOR24v64 implementat˘a pe eCPLD64

Implementare Aria NX750 NX1500 NX2500 NX4000 NX5000

 

[eCell]

[%]

[%]

[%]

[%]

[%]

Nextreme

616

1,11

0,61

0,36

0,22

0,17

eCPLD64

3680

6,65

3,66

2,06

1,33

1,02

4.2.1.1 ePLD - Structura blocului logic eCPLD

Dimensionarea structurii (ePLD ), a structurii AND-OR programabile din aceasta ¸si a structurii de interconectare (eConnect ) s-a f˘acut pe baza caracteristicilor tehnologiei eASIC Nextreme folosit˘a pentru implementare. Structura ePLD a fost configurat˘a cu 16 intr˘ari ¸si 8 ie¸siri, cea mai mic˘a configurat¸ie, cu un num˘ar de intr˘ari dublul num˘arului de ie¸siri. Num˘arul de intr˘ari, dublul num˘arului de ie¸siri, a fost ales pentru a putea benificia de o matrice de interconectare d e form˘a p˘atratic˘a (num˘arul intr˘arilor egal cu num˘arul ie¸sirilor).

Num˘arul de termeni produs per bistabil este de trei, funct¸ia OR de trei intr˘ari fiind implementabil˘a ˆıntr-un singur LUT. Cel˘alalt LUT din celul˘a va fi folosit pentru a implementa termenul de extensie. Pentru fiecare bit de ie¸sire din celul˘a sunt alocate dou˘a intr˘ari ¸si tr ei bucle asociate ie¸sirilor combinat¸ionale, secvent¸ial ¸si a termenului de extensie. Cu 5 intr˘ari asociate fiec˘arei ie¸siri ¸si cu 8 ie¸siri ˆıntr-o structur˘a PLD, avem un num˘ar de 40 de intr˘ari in fiecare termen produs dac˘a funct¸iile AND de pe primul nivel sunt complet populate (Figura 4-7b). Se poate opta pentru o structur˘a incomplet p opulat˘a (de exemplu, ar fi rezonabil ca primii doi termeni produs s˘a fie funct¸ii de 16 intr˘ari, ultimul termen produs ¸si termenul de extensie s˘a fie funct¸ii de 32 de intr˘ari) ˆın scopul reducerii ariei, dar arhitectura propus˘a folose¸ste structura complet populat˘a ˆın scopul simplific˘arii uneltelor softwtare ce vor folosi arh itectura CPLD.

4.2.1.2 eConnect - Structur˘a de interconectare programabil˘a static

Num˘arul de structuri ePLD , N ePLD dintr-un CPLD va da dimensiunea matricii de interconectare ca fiind

de (N ePLD *N Intrari )x(N ePLD *N Intrari ). Deoarece ˆın mod static un LUT

3:1, iar o celul˘a logic˘a poate implementa cel mult un multiplexor 6:1, folosind mai multe celule putem implementa multiplexoare 18:1 ¸si 36:1. Cea mai bun˘a configurat¸ie pentru o matrice de interconectare de dimensiune mic˘a ar fi 144x144 avˆand parametrul N ePLD egal cu 9. Din motive de compatibilitate cu arhitecturile CPLD cu multiplexare ˆın timp, descrise ulterior, vom alege o arhitectur˘a cu 8 ePLD - uri, 64 de macrocelule, pentru a putea face o comparat¸ie ˆıntre ariile celor dou˘a circuite. Matricea de conectare implementat˘a ˆın acest caz va fi de 144x144, dar folosit˘a ca 128x128. Figura 4-7a prezint˘a o configurat¸ie a arhitecturii eCPLD propuse cu 8 macrocelule. Pentru orice implementare practic˘a a eCPLD , este recomandat ca num˘arul de structuri ePLD s˘a fie multiplu de 3 pentru folosirea complet˘a a structurii de interconectare programabil˘a.

poate implementa un multiplexor

Matricea de interconectare programabil˘a nu este una complet interconectat˘a, ci s-a optat pentru gruparea semnalelor ˆın magistrale de 8 bit¸i ¸si interconectarea acestora. Acest˘a opt¸iune de a utiliza multiplexarea pe magistrale de 8 bit¸i reduce aria ¸si timpii de propagare ai semnalelor ˆın matricea de intreconectare, dar complic˘a uneltele software pentru implementarea circuitelor pe arhitectura prezentat˘a.

4.2.1.3 Rezultatele implement˘arii eCPLD pe structured ASIC

Arhitectura eCPLD cu reconfigurare static˘a, a fost implementat˘a pe platform a eASIC Nextreme NX750, folosind mediul oferit de Magma BlastCreate SA pentru tehnologia Fujitsu de 90nm. Tabelul 4-9 prezint˘a comparativ rezulatele implement˘arii unei aplicat¸ii de test, numit˘a XOR24v64, direct pe structured ASIC ¸si indirect prin intermediul arhitecturii eCPLD . Aplicat¸ia de test aleas˘a, numit˘a XOR24v64, folose¸ste doar 24 din cele 40 de intr˘ari programabile ale planului AND, pentru a evita buclele combinat¸ionale.

Datele din Tabelul 4-9 arat˘a c˘a aria necesar˘a implement˘arii unei arhitecturi eCPLD cu reconfigurare static˘a este de aproximativ de 6 ori mai mare decˆat ˆın cazu l implement˘arii directe pe structured ASIC. Considerˆand posibilitatea de a implementa ˆıntre 8 ¸si 12 p ort¸i logice echivalente per eCell estim˘am c˘a

4 Arhitecturi reconfigurabile pentru tehnologii tip structured ASIC

28

   
8

8

8

8

8
8 16 ePLD   8

16

16

ePLD

 

8

8
 
8

8

 
 
 

8

8
8 16     8

16

16
16
   

8

8
   

ePLD

   
 
8

8

 
 
 

8

8

128

16

16

ePLD

 

8

8
8 128 16 ePLD   8
 

x