6. implementări fpga ale automatelor celulare, aplicatii...

24
117 6. Implementări FPGA ale automatelor celulare, aplicatii in criptografie Ioana Dogaru, Radu Dogaru 6.1. Automate celulare ca generatoare de secvenţe pseudoaleatoare (număratoare haotice), descrierea în limbaj VHDL 6.1.1. Generalităţi Sunt circuite semiconductoare care pot fi reconfigurate în vederea dezvoltării unei aplicaţii specifice. Programarea circuitelor se poate face după ce acestea au fost montate, de aici şi numele de "field-programmable". Se pot folosi cu scopul de a implementa orice funcţie logică, la fel ca şi în cazul circuitelor de tip ASIC (Application-Specific Integrated Circuit), dar având marele avantaj al posibilităţii de a reconfigura circuitul cu logica care se doreşte a fi folosită. Alte avantaje care fac atractivă folosirea circuitelor de tip FPGA ar fi prototipizarea rapidă, scurtarea timpului (time to market) până la finalizarea produsului, abilitatea de a putea veri- fica şi depana in-system logica implementată, high performance computing (per- formanţe foarte bune de calcul), paralelizare. Un alt indicator îndeplinit prin folosirea circuitelor de tip FPGA este acela de a micşora costurile NRE (Non-recurring engineering). Aceste costuri se referă la ce- le raportate la cercetare, dezvoltare, proiectare, testare în vederea realizării unui produs nou. NRE este un parametru important în analiza rentabilităţii unui produs nou. Chiar dacă acest cost este plătit doar la început, acesta poate fi suficient de mare, astfel încât să se pună problema vanzării unei cantităţi mari din produsul respectiv pentru a acoperi acest cost şi de a fi profitabil pentru firma dezvoltatoare. Având în vedere aceste caracteristici ale circuitelor de tip FPGA, le vom utiliza pentru implementarea automatelor celulare cu anumite particularităţi, descrise în cele ce urmează. Automatele celulare sunt sisteme de calcul paralel masiv, unde funcţiile intere- sante pentru calcul apar într-o arie de celule identice (Ganguly et al, 2003). Fieca- re celulă este definită de o regulă locală, care de cele mai multe ori este o funcţie Booleană cu n intrări. Aceste intrări sunt conectate la alte celule învecinate, folo-

Upload: others

Post on 14-Feb-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

117

6. Implementări FPGA ale automatelor celulare, aplicatii in criptografie

Ioana Dogaru, Radu Dogaru

6.1. Automate celulare ca generatoare de secvenţe pseudoaleatoare (număratoare haotice), descrierea în limbaj VHDL

6.1.1. Generalităţi

Sunt circuite semiconductoare care pot fi reconfigurate în vederea dezvoltării unei aplicaţii specifice. Programarea circuitelor se poate face după ce acestea au fost montate, de aici şi numele de "field-programmable". Se pot folosi cu scopul de a implementa orice funcţie logică, la fel ca şi în cazul circuitelor de tip ASIC (Application-Specific Integrated Circuit), dar având marele avantaj al posibilităţii de a reconfigura circuitul cu logica care se doreşte a fi folosită. Alte avantaje care fac atractivă folosirea circuitelor de tip FPGA ar fi prototipizarea rapidă, scurtarea timpului (time to market) până la finalizarea produsului, abilitatea de a putea veri-fica şi depana in-system logica implementată, high performance computing (per-formanţe foarte bune de calcul), paralelizare.

Un alt indicator îndeplinit prin folosirea circuitelor de tip FPGA este acela de a micşora costurile NRE (Non-recurring engineering). Aceste costuri se referă la ce-le raportate la cercetare, dezvoltare, proiectare, testare în vederea realizării unui produs nou. NRE este un parametru important în analiza rentabilităţii unui produs nou. Chiar dacă acest cost este plătit doar la început, acesta poate fi suficient de mare, astfel încât să se pună problema vanzării unei cantităţi mari din produsul respectiv pentru a acoperi acest cost şi de a fi profitabil pentru firma dezvoltatoare.

Având în vedere aceste caracteristici ale circuitelor de tip FPGA, le vom utiliza pentru implementarea automatelor celulare cu anumite particularităţi, descrise în cele ce urmează.

Automatele celulare sunt sisteme de calcul paralel masiv, unde funcţiile intere-sante pentru calcul apar într-o arie de celule identice (Ganguly et al, 2003). Fieca-re celulă este definită de o regulă locală, care de cele mai multe ori este o funcţie Booleană cu n intrări. Aceste intrări sunt conectate la alte celule învecinate, folo-

Page 2: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

118

sind un pattern similar pentru toate celulele. Programarea automatului celular constă în definirea unui set relativ mic de parametri, denumit genă (Chua, 1998). În cazul automatelor celulare Booleane (binare), gena este un vector

021 ,..., yyy NN Y care defineşte funcţia locală booleană pentru o celulă cu un număr de Nn 2log intrări. Reprezentarea zecimală a şirului este denumita şi folosita în cele ce urmează ca ID, care ales în mod optim realizează programarea automatului celular cu scop de a implementa o anumită funcţie.

Un caz particular studiat în cercetările noastre recente este cel al automatului celular definit de regula 101 şi varianta negată a acestuia (regula 154), cunoscut sub denumirea de automat celular hibrid (HCA). Într-o serie de lucrări (Dogaru et al, 2010a) (Dogaru et al, 2010b) (Dogaru, 2009a)(Dogaru, 2009b)(Dogaru et al, 2010c) s-au făcut cercetări în ceea ce priveşte sincronizarea binară în automatele celulare elementare şi s-a demonstrat că acest tip de automat celular hibrid este generator de numere aleatoare cu proprietăţi adiţionale de sincronizare binară, având capabilităţi de a reduce complexitatea în sistemele de transmisie.

În (Dogaru, & al, 2010d) a fost detaliat modul de implementare in circuite de tip FPGA pentru automatul celular. De asemenea s-a prezentat descrierea în limbaj VHDL a numărătorului HCA pentru un număr arbitrar de n celule. Concluzia în ceea ce priveşte complexitatea hardware este că aceasta este de câteva zeci de ori mai mică decât în cazul altor generatoare de numere aleatoare raportate în literatu-ra de specialitate. Folosind acest cod descris în VHDL, în (Dogaru & Doga-ru,2010e) s-a propus o metodologie bazată pe reprezentarea folosind forma alge-brică normală şi un program care să automatizeze generarea codului VHDL care să permită descrierea oricărui tip de automat elementar hibrid cu parametri arbi-trari. Aceşti parametri se referă la regula locală, numărul de celule şi masca care sunt specifici pentru automatele celulare hibride. Rolul acestui software este de a conduce la o reprezentare rapidă în cod VHDL a mai multor de automate celulare care pot fi folosite în diferite tipuri de aplicaţii. În aceeaşi lucrare se verifică func-ţionalitatea codului generat automat prin implementarea unui generator de numere aleatoare. Avantajul este dat de faptul că nu mai este necesară o codare manuală, fişierul cu extensia *.vhd în care este descris automatul fiind generat automat.

6.1.2. Reprezentarea regulii locale folosind forma algebrică normală (ANF – algebric normal form)

Dinamica automatelor celulare elementare hibride cu M celule este dată de ur-mătoarea ecuaţie de stare în timp discret, şi care se aplică în mod sincron la toate celulele. O celulă este definită de un index spaţial Mi ,..1 având o stare iniţială specificată 0ix pentru toate celulele automatului:

Page 3: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

119

IDtxtxtxCellmtx iiiii ,)),(,)1( 11 (1)

unde

IDuuuCelly j ,3,2,1 (2)

reprezintă tabela de adevăr a regulii locale pentru o vecinătate dată de n=3 ce-

lule. Se presupune condiţia de margine ca fiind de tip periodic, în aşa fel încât pentru i=1 (celula cea mai din stânga) vecinătatea sa din stânga este determinată de indicele i=M, M-1.

Funcţia locală este complet specificată de vectorul care descrie gena 021 ,..., yyy NN Y , sau de ID-ul asociat, adică reprezentarea decimală a vecto-

rului Y. Pentru automate celulare elementare, N=23=8. Indexul j în formula (2) es-te reprezentarea zecimală a cuvântului binar 1,2,3 uuu . Pentru automatele celulare hibride caracterizate de m = 1 se determină o versiune inversată a regulii locale definite de ID. De exemplu, pentru ID = 101 pentru celu-lele cu 0im , va deveni ID = 154 pentru celulele cu 1im . Alegând corespun-zător un vector de mascare m Mi mmm ,..,...,1 putem îmbunătăţi caracteristicile automatului celular (ca de exemplu lungimea secvenţei pseudo generatorului de zgomot).

Pentru implementarea folosind circuite de tip FPGA, este necesară descrierea automatului celular folosind un limbaj de descriere hardware, în cazul nostru vom folosi codul descris în VHDL. Un caz particular pentru un automat celular ID = 101 cu M=7 celule este descris în cod VHDL după cum urmează: mask := "1100010"; REG<= a xor (b and c) xor mask; unde REG – este un registru de semnal asociat stării actuale a automatului celular; a - reprezintă starea celulei din vecinătatea din stânga (corespunzătoare variabilei u1 din ecuaţia (2) ); b - reprezintă starea asociată celulei din mijloc (corespunzătoare variabilei u2 din ecuaţia (2) ); c - reprezintă starea celulei din vecinătatea din dreapta (corespunzătoare variabilei u3 din ecuaţia (2) ); Pentru a realiza o unealtă de dezvoltare care să fie utilă pentru testarea diferitelor automate celulare cu ID-uri diferite sau pentru prototipizare rapidă, este necesar să se determine o expresie generală care să permită descrierea automatului plecând de la ID-ul corespunzător.

Page 4: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

120

Tabela de adevăr s-a dovedit (Chua, 1998) a nu fi potrivită pentru o astfel de for-mulă. O alternativă la descrierea folosind funcţiile de tip Boolean este reprezenta-rea folosind forma algebrică normală (Ronjom et al, 2007) (Algebric Normal Form - ANF). Pentru automate celulare elementare (cu 3 intrări) reprezentarea al-gebrică ANF este după cum urmează:

32171363252143322110 uuukuukuukuukukukukky (3)

Forma algebrică operează într-un grup Galois (modulo 2). Dacă 7654 ,,, kkkk

sunt 0, funcţia logică definită de relaţia (3) este liniară şi se foloseşte în criptogra-fie (registru liniar de deplasare LFSR în automate celulare hibride cu regula 90/150). Operatorul produs din relaţia (3) corespunde funcţiei logice AND în timp ce operatorul corespunde funcţiei logice XOR. În (Ronjom, & al, 2007) este prezentat un algoritm care permite cu ușurință calcu-larea vectorului k= 110 ,..,, Nkkk din reprezentarea algebrică pentru orice repre-zentare din tabelul de adevăr caracterizat de vectorul pentru ID,

021 ,..., yyy NN Y . Plecând de la un ID dat, se foloseşte forma algebrică normală, reţinând numai termenii pentru care 1jk . Exemplu 1: Un automat celular definit de un număr de M=7 celule, un vector de mascare (1100010) şi ID = 101. Linia de cod VHDL este după cum urmează: . REG<= “1111111” xor c xor a xor (b and a) xor mask; Această descriere corespunde formei particulare a ecuaţiei (3) pentru reprezenta-rea formei algebrice normale 12131 uuuuy Exemplul 2: ID = 90, linia de cod VHDL: REG<= c xor a xor mask; Această descriere corespunde formei particulare a ecuaţiei (3) pentru reprezenta-rea formei algebrice normale 13 uuy

Page 5: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

121

6.1.3. Descrierea software-ului pentru generarea automată a codului VHDL

Diagrama sistemului realizat pentru prototipizarea rapidă a automatelor celulare elementare hibride cu implementare în FPGA este prezentată în figura 1.

Fig. 1. Diagrama logică a sistemului pentru prototipizare rapidă

În exemplul de mai sus, codul VHDL generat este cel pentru automatul celular descris de regula ID = 101 cu M=7 celule. Starea iniţială şi masca sunt parametri de asemenea programabili şi în acest exemplu sunt “1100010” şi corespunzător pentru starea iniţială “0000000”. Codul VHDL este generat într-un fişier care va fi folosit în continuare într-un proiect pentru implementare în circuite de tip FPGA. Acest tip de circuit este ales ca ţintă a implementării hardware datorită performan-ţelor bune, paralelismului şi a consumului scăzut.

Ca implementare practică folosim circuite de la Altera (Cyclon II) şi respectiv unealta de dezvoltare este Altera Quartus II ediţia web. Fişierul VHDL se introdu-ce într-un proiect care va fi compilat, rezultând un fişier de programare a circuitu-lui plăcii de dezvoltare DE2 University Program de la Altera. Circuitul FPGA es-te Cyclone II EP2C35F672C6, tensiune 1.2V, şi 33216 elemente logice - Logic Elements (LE).

Page 6: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

122

Fig. 2. Interfaţa utilizator. Se permite introducerea parametrilor programabili pentru de-scrierea automatelor celulare hibride. Se localizează fişierul care conţine codul VHDL şi se poate previzualiza.

6.1.4 Rezultate experimentale obţinute în urma folosirii programului de generare automată a codului VHDL

Folosind programul de generare automată a codului VHDL, obţinem descrierea

automatului celular având ID 101 şi 7 celule. Rezultatele sunt comparate cu mo-delul dezvoltat în Matlab pentru acelaşi automat, care îndeplineşte funcţia de ge-nerator de numere aleatoare cu sincronizare. De asemenea, am testat şi alte ID-uri

Page 7: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

123

cu diverşi pamateri şi s-au confruntat rezultatele cu cele obţinute prin modelarea Matlab.

Fişierul VHDL este introdus într-un proiect generat în softul de dezvoltare pen-tru circuitele de tip FPGA de la Altera. Aceasta este versiunea gratuită a progra-mului Quartus II. Orice altă familie de circuite FPGA sau software de dezvoltare a proiectelor pentru FPGA se poate folosi pentru implementare hardware.

Testarea funcţională s-a realizat folosind o placă de dezvoltare DE2 de la firma Altera (Altera University Program).

În figura 3 se observă formele de undă obţinute în urma simulării numărătoru-lui haotic ca funcţie a automatului celular cu regula 101 având un număr de 7 ce-lule

Fig.3. Forme de undă obţinute în urma simulării numărătorului haotic ca funcţie a auto-matului celular cu regula 101 având un număr de 7 celule

Stările automatului celular sunt vizualizate folosind LED-urile de pe placa de dez-voltare. Resursele folosite în cazul circuitului FPGA sunt reprezentate în tabelul 1.

Total elemente logice (Logic Elements – LE): 7 / 33,216 ( < 1 % )

Funcţii combinaţionale: 7, Regiştri logici: 7 Pini: 9/475 (2%) Biţi de memorie: 0 / 483,840 ( 0 % ) Înmulţitoare integrate de 9 biţi 0 / 70 ( 0 % )

Tabel 1. Alocarea resurselor pentru implementarea automatului celular hibrid folosind circuitul de tip FPGA Cyclone II - EP2C35F672C6

Din datele prezentate în Tabelul 1, se observă că automatul celular a fost sinte-tizat corect iar codul VHDL folosit a fost optimal, ceea ce conduce la folosirea ju-dicioasă a resurselor circuitului. Codul VHDL obţinut este prezentat în figura 4. Este posibil folosind acest circuit să implementăm automate celulare cu până la 33216 celule. Rezultate similare s-au obţinut pentru orice ID şi orice valori pentru parametri stare iniţială şi respectiv număr de celule.

Page 8: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

124

Fig 4. Codul VHDL generat automat pentru automatul celular cu regula ID=101 şi M=7 ce-lule (numărător haotic)

6.2. De la idee la implementare, etape specifice proiectarii cu FPGA

Fluxul de proiectare va consta din următoarea secvență:

1) Se alege familia de circuite care va fi folosita pentru dezvoltarea de pro-

iecte (această decizie va fi luată după ce se vor studia resursele circuitelor existente raportate la cerinţele proiectului, cost etc.). În această lucrare vom folosi circuite FPGA de la Altera 1 din familia Cyclone II. Pentru a beneficia de resursele puse la dispoziţie de firmă trebuie sa avem un cont de utilizator user-password.

2) Se instalează programul de dezvoltare – Quartus II web edition (Altera, Quartus II web edition) împreună cu ModelSim şi programele de dezvol-tare pentru procesorul software Nios II daca se dorește dezvoltarea unui proiect care folosește un astfel de procesor.

3) Se alege modul de dezvoltare – prin limbaj de dezvoltare hardware (Verilog sau VHDL) sau prin modul schematic.

4) Se realizează un proiect folosind familia de circuite aleasă la pasul 1.

Page 9: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

125

5) Se programează placa de dezvoltare cu fișierul de configurare obţinut la pasul 4. În aceasta lucrare se va folosi placa DE2 de la Altera echipată cu circuitul FPGA din familia Cyclone II.

6.2.1. Exemple de familii de circuite de tip FPGA și CPLD de la firma Altera

Circuite FPGA de la firma producătoare ALTERA:

Seria de circuite de cost redus CYCLONE: Cyclone IV, Cyclone III, Cy-clone II ► ideal pentru aplicaţii pe scală largă şi de cost mic. Un astfel de circuit poate fi folosit ca un processor de semnal digital, sau pentru soluţii inte-grate.

Seria de circuite STRATIX (High-End FPGA): Stratix V, Stratix IV,

Stratix III, Stratix II ► sunt circuite cu densităţi mari, de mare performanţă, cu productivitate înaltă. Înclud până la 24 transceiver care suportă până la 11.3 Gbps, ceea ce permite transfer de date de frecvenţă mare. (Aceste circuite se folosesc în aplicaţii pentru transmisii de date).

Seria de circuite Arria (Low-Cost Transceivers-Based FPGA): Arria II,

Arria GX ► optimizate pentru aplicaţii bazate pe transceiver, cu un set de funcţii îmbunătăţit (memorie, logică, DSP). Se pot integra mai multe funcţii şi se poate maximiza laţimea de bandă a sistemului (până la 16 transceivere care functionează la 3.75 Gbps). Costul este optimizat în raport cu faptul că se obţin toate cerinţele de procesare digitală a semnalelor pentru stan-dardele wireless cum ar fi 3G sau LTE (long-term evolution)

Circuite CPLD de la firma producătoare ALTERA:

Seria de circuite de cost redus MAX În cele ce urmeză vom prezenta pe scurt resursele de care dispunem în vederea re-alizării proiectelor hardware – în ceea ce priveşte circuitele FPGA, softul de dez-voltare şi a plăcii de testare. Pentru aprofundare se va putea consulta documentaţia de firma pusă la dispoziţia utilizatorului pe pagina web a firmei Altera.

Page 10: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

126

6.2.2 Placa de dezvoltare ALTERA DE2 Board – descrierea resurselor disponibile

Fig 5. Placa de dezvoltare DE2 (Altera, DE2 User Manual)

În figura 5 este prezentată placa de dezvoltare conform documentației de firmă şi se pot remarca resursele care se pot utiliza în vederea dezvoltării aplicaţiilor. Re-sursele de care dispunem conduc la concluzia ca putem implementa o gamă largă de aplicaţii, plecând de la cele mai simple până la cele mai complicate din dome-niul multimedia.

Resurse disponibile: Circuit FPGA Altera Cyclone® II 2C35 Circuitconfigurare serială Altera - EPCS16 USB Blaster (on board) – pentru programare şi control JTAG şi Active Serial 512-Kbyte SRAM 8-Mbyte SDRAM 4-Mbyte Flash SD Card socket 4 pushbutton switches 18 toggle switches 18 LED-uri de culoare roşie 9 LED-uri de culoare verde surse de clock de 50-MHz şi respectiv de 27-MHz 24-bit CD- audio CODEC VGA DAC (10-bit high-speed triple DACs) şi connector de ieşireVGA

Page 11: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

127

Decodor TV (NTSC/PAL) şi conector de intrare TV 10/100 Ethernet Controller USB Host/Slave Controller şi conectori USB tip A şi tip B RS-232 transceiver şi conector de 9 pini PS/2 mouse/tastatură IrDA transceiver Cyclone II FPGA – este famila de circuite de cost redus de la firma Altera. Tehnologia de realizare este de tip SRAM 1.2-V, 90-nm, cu densităţi de peste 68K elemente logice (LE) şi până la 1.1 Mbits memorie RAM integrată. Circuitele se pot folosi la aplicaţii DSP, având capabilităţi de tipul PLL pentru gestionarea semnalului de ceas, înmulţitoare integrate şi interfeţe pentru memorii externe de viteză mare. Circuitele sunt recomandate pentru producţie de serie ma-re, datorită costului redus. Standardele de intrare-ieşire (I/O) suportate de circuit sunt de tip diferenţial şi single-ended. Altera oferă circuite de cost redus pentru configurarea circuitelor din familia Cyclone II.

Cyclone II 2C35 FPGA

33,216 Les (blocuri logice) 105 M4K blocuri RAM 483,840 total RAM bits 35 inmultitoare 4 PLLs 475 pini de intrare/iesire capsula BGA 672-pini

Pentru a putea utiliza în proiecte aceste circuite trebuie să cunoaștem arhitectura circuitului, resurse, pini, caracteristici referitoare la tensiuni, timpi etc. În cele ce urmează vom prezenta pe scurt câteva dintre aceste caracteristici.

Arhitectura circuitului

După cum se observă circuitul are o arhitectură bazată pe linii si coloane şi conține elemente după cum urmează:

LAB – Logic Array Blocks – blocuri de arii logice – sunt alcătuite din

câte16 elemente logice LE (Logic Element). Un element logic este cea mai mică unitate care permite implementarea eficientă a funcţiilor logice. LAB-urile sunt grupate în linii şi coloane. Densitatea circuitului este dată

Page 12: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

128

de numărul de elemente logice LE. Pentru circuitul Cyclone II, avem o densitate de la 4,608 până la 68,416 LE.

Memorii încapsulate Înmulţitoare încapsulate (embedded multipliers)

Fig 6. Cyclone II EP2C20 – Diagrama bloc

Circuitul prezintă o reţea de clock globală şi până la 4-bucle cu calare de fază

(PLL phaselocked loops). Reţeaua globală este alcătuită din până la 16 linii de clock globale care strabat întreg circuitul. Rolul acestora este acela de a furniza semnalulul de ceas pentru toate tipurile de resurse, cum ar fi elementele de intrare-ieşire (IO), elementele logice (LE), înmulţitoarele şi blocurile de memorie integra-te. Blocurile de memorie M4K – sunt memorii dual-port cu 4Kb de memorie şi pa-ritate (4,608 bits). Înmulţitoarele integrate – pot implementa până la două 9 × 9-bit sau un singur înmulţitor 18 × 18-bit până la o frecvenţă de lucru de 250 MHz. Numărul de blocuri de memorie, înmulţitoare integrate, bucle PLL, linii şi coloane diferă în funcţie de tipul de circuit din familia analizată. Comparativ, aceste resur-se sunt prezentate in Tabelul 2 pentru circuite din familia Cyclone II.

Tabel 2. Familia de circuite Cyclon II

Circuit Coloane LAB

Rânduri LAB

LE PLL Blocuri de memorie M4K

Înmulţitoare Integrate

EP2C5 24 13 4,608 2 26 13 EP2C8 30 18 8,256 2 36 18 EP2C20 46 26 18,752 4 52 26 EP2C35 60 35 33,216 4 105 35 EP2C50 74 43 50,528 4 129 86 EP2C70 86 50 68,416 4 250 150

Page 13: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

129

Elementele logice

Cea mai mică unitate logică din arhitectura Cyclone II este elementul logic (LE). Fiecare astfel de element este constituit din următoarele:

tabelă de căutare cu 4 intrări (LUT - look-up table), care este un genera-tor de funcţii care poate implementa orice funcţie de 4 intrări

un registru programabil lanţ de transport (carry chain connection) registru pentru lanţ de transport (register chain connection) abilitatea de a gestiona toate tipurile de interconexiuni, cum ar fi cele lo-

cale, pe rânduri, pe coloane sau directe.

Blocuri de arii logice LAB

Fiecare LAB constă din următoarele componente: 16 LE semnale de control: 2 semnale de clock, 2 semnale de enable clock, 2

semnale de clear de tip asincron, 1 semnal de clear sincron si un semnal de încărcare sincron.

lanţ de transport LE registru lanţ de transport – transferă ieşirea unui registru LE către regis-

trul unui LE adiacent din cadrul unui LAB interconexiuni locale – rolul acestora este de a transfera semnale între

elementele logice din cadrul aceluiaşi LAB.

Page 14: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

130

Fig. 7 Structura LAB – Logic Array Blocks

Fig 8. Diagrama bloc pentru placa DE2

Page 15: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

131

6.2.3 Unelte de dezvoltare de la firma Altera - Quartus II web edition software

Quartus II web edition este versiunea gratuită care se poate descărca de pe pagina de Internet a firmei Altera. Această versiune se poate folosi pentru următoarele familii de circuite:

Cyclone, Cyclone II, Cyclone III, Cyclone IV şi Arria GX. (Circuite de

tip FPGA) MAX (circuite de tip CPLD) Arria II GX (circuite FPGA=: EP2AGX45) Stratix III (circuite FPGA=: EP3SE50, EP3SL50, EP3SL70) Stratix II şi Stratix II GX (circuite FPGA): EP2S15, EP2SGX30) Stratix (circuite FPGA): EP1S10

Uneltele care se pot folosi sunt cele de introducere design, sinteză, verificare şi optimizare. Varianta completă a programului se referă la faptul că se pot dezvolta proiecte şi pentru circuitele performante ale firmei, timpul de compilare este mai mic şi este asigurat şi suportul pentru aplicaţiile multiprocessor, (Full license to Altera intellectual property (IP) base suite MegaCore® functions). După lansarea programului Quartus II, se parcurg paşii care sunt necesari în vede-rea generării unui nou proiect și pe care îi vom prezenta în cele ce urmează.

Page 16: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

132

Wizzard-ul de definire a proiectului constă din 5 pași:

Page 17: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

133

a) se specifică directorul unde se va salva proiectul şi de asemenea numele şi entitatea de nivel înalt top-level entity.

b) Se specifică fişierele proiectului c) Se alege circuitul pentru care se va face implementarea d) Se specifică alte unelte EDA care se vor folosi în acest proiect. e) Se revizuiesc setările făcute la paşii precedenți.

La pasul 3 se alege tipul de circuit pentru care se va realiza proiectul după cum urmează:

.

Setările obținute se afișează în pasul 5:

Page 18: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

134

Se validează setările proiectului folosind butonul Finish. Proiectul este în acest moment finalizat și urmează adăugarea fișierelor componente. Se utilizează opțiunea Project și Add/Remove Files in Project daca se dorește adăugarea de fișiere în proiect. Dacă dorim introducerea unui nou fișier, folosim opțiunea File/New/ - VHDL file. Implicit se deschide un fișier cu numele Vhdl1.vhd. Acesta se poate salva sub denumirea chaotic_counter.vhd. Următorul pas este acela de a defini un nou fișier de tip VHDL care va fi salvat sub denumirea chaotic_counter_top.vhd care reprezintă entitatea top level a pro-iectului.

În proiect se mai adaugă fișierele leddcd.vhd, counter.vhd și DE2_CLOCK.vhd care conțin descrierea în cod VHDL pentru funcționarea led-urilor de pe placa, de-finirea unui numărator pe 32 de biți și respectiv generarea semnalului de clock. Fișierul top-level va conține codul VHDL corespunzător interconectării acestor entități pentru a realiza design-ul dorit. (Se folosesc noțiunile de component și de port map pentru mapare a porturilor) În pasul urmator se compilează designul folosind opțiunea Processing/Start Com-pilation – în acest moment se parcurge întreg fluxul de proiectare. La sfarșitul acestui proces se va afișa un raport care conține date referitoare la numărul de

Fișierul scris în cod VHDL va conține:

Fișiere de tip header library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

Definirea entității în care se introduc porturile de intrare/ieșire entity chaotic_counter is Port ( CLK, LOAD : in std_logic; -- load pentru incarcare stare pornire DOUT : out std_logic_vector(6 downto 0)); end chaotic_counter;

Arhitectura (comportamentul modulului) - În cadrul blocului process – condiționarea se face de către semnalul de CLK și respectiv semnalul de LOAD. În acest bloc, instrucțiunile se execută secvențial.

Page 19: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

135

elemente logice care se folosesc, numărul de pini și respectiv procentul din numă-rul total de resurse. Rezultatul va fi un fișier de configurare – cu extensia *.sof.

Folosind opțiunea Tools/Netlist Viewers/ RTL Viewer se poate vizualiza schema corespunzătoare proiectului implementat. La pasul următor vom mapa pinii corespunzător plăcii de dezvoltare DE2 (care se obțin din documentația Altera referitoare la placa DE2 – fișierul DE2_pin_assignments.csv). Pentru aceasta folosim comanda Assignments/Pins.

După completarea locațiilor pinilor, se recompilează proiectul, obținând un nou fi-șier de configurare care poate fi testat pe placă.

Page 20: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

136

Simularea design-ului

Se introduce în proiect un nou fișier de tip Vector Waveform File. Acesta se va salva sub denumirea chaotic_counter_top.vwf.

Se face click dreapta pe opțiunea Name. Se alege opțiunea Insert/Insert Node or Bus si vom obține următoarea fereastră:

Cu opțiunea Node Finder…obținem următoarea fereastră:

Page 21: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

137

Pentru a popula lista Nodes Found folosim opțiunea List

Se selectează și apoi se validează lista semnalelor.

Pentru simularea modulului de counter haotic, se selectează ca top level modu-lul chaotic_counter.vhd.

Se selectează semnalele CLK, LOAD și respectiv DOUT după care urmează procedeul de simulare cu opțiunea Start Simulation. (Se schimbă valorile semnale-lor de CLK cu click dreapta Value/CLK și respectiv pentru semnalul de LOAD se generează un semnal cu 1 – pentru inițializare și apoi cu valoarea logică 0 pentru a calcula datele de ieșire conform codului VHDL)

Page 22: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

138

Modul de afișare se poate schimba, astfel încât mărimile afișate să fie în format ASCII, binar, hexazecimal, binar, octal, zecimal cu semn și fără semn, etc. Rezultatul simulării este după cum urmează în figura de mai jos:

În această figură se poate observa funcționarea numărătorului haotic, prin afișarea rezultatelor pentru semnalul DOUT.

Pentru verificarea designului trebuie încărcat fișierul chaotic_counter_top.sof pe placa de test DE2, folosind portul USB. Se folosește opțiunea Tools/Programmer, având placa conectată la calculator prin intermediul portului USB.

Page 23: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

139

Se folosește portul USB-Blaster care permite configurarea circuitului FPGA prin intermediul cablului USB. Se folosește butonul Start care pornește procesul de configurare.

Când bara de Progress a ajuns la 100%, circuitul FPGA a fost programat. Pe primul LED de pe placa de dezvoltare se vor afișa valorile (în hexazecimal) pentru număratorul haotic. Se va reseta numărarea folosind butonul KEY 3 de pe placa de dezvoltare. Starea inițială este dată de valoarea 78 în hexazecimal.

Bibliografie

(Altera, DE2 User Manual) - DE2_UserManual.pdf - http://www.terasic.com.tw/cgi-

bin/page/archive.pl?Language=English&CategoryNo=53&No=30 (Altera, Quartus II web edition) - http://www.altera.com/products/software/quartus-ii/web-

edition/qts-we-index.html (Altera, Quick Start) http://www.altera.com/literature mnl_qts_quick_start.pdf - Quick Start

Guide for Quartus II Software (Chua, 1998) L.O. Chua, CNN: A paradigm for complexity, World Scientific, Singapore,

1998. (Dogaru, 2009a) R. Dogaru, “Hybrid Cellular Automata as Pseudo-Random Number

Generators with Binary Synchronization Property”, in Proceedings of the International Symposium on Signals Circuits and Systems (ISSCS’09), Iasi Romania, July 2009, pp. 389-392.

Page 24: 6. Implementări FPGA ale automatelor celulare, aplicatii ...atm.neuro.pub.ro/radu_d/html/09_10/IISC_TAPMS/curs_Cap6.pdf · le raportate la cercetare, dezvoltare, proiectare, testare

140

(Dogaru, 2009b) R. Dogaru, “Hybrid Cellular Automata as Pseudo-Random Number

Generators with Binary Synchronization Property”, in Proceedings of the International Symposium on Signals Circuits and Systems (ISSCS’09), Iasi Romania, July 2009, pp. 389-392

(Dogaru & Dogaru,2010e) I. Dogaru, R. Dogaru - Algebraic Normal Form for Rapid

Prototyping of Elementary Hybrid Cellular Automata in FPGA in Proceedings of ISEEE2010, 3th International Symposium on Electrical and Electronics Engineering, Galati, Romania, September 16-18 2010, Vol. 1, pp. 277-280

(Dogaru et al, 2010a) Dogaru, R.; Dogaru, I.; Hyongsuk Kim; Sungsik Shin; Oubong

Gwun; "Binary synchronization of chaos in hybrid cellular automata for low complexity image compression and transmission",In Proceedings of 2010, 12th International Workshop on Cellular Nanoscale Networks and Their Applications (CNNA), Page(s): 1 - 7.

(Dogaru et al, 2010b) R. Dogaru, I. Dogaru, and H. Kim, “Binary chaos synchronization

in elementary cellular automata”, Int. J. Bifurcation and Chaos, vol. 19, September 2009, Vol. 19, pp. 2871-2884.

(Dogaru et al, 2010c) R. Dogaru, I. Dogaru, H. Kim, “Chaotic Scan: A Low

Complexity Video Transmission System for Efficiently Sending Relevant Image Features”, in IEEE Trans. on Circuits and Systems for Video Technology, Vol.20, February 2010, pp. 317-321.

(Dogaru et al, 2010d) I. Dogaru, R. Dogaru, C. Damian - FPGA Implementation Of

Chaotic Cellular Automaton with Binary Synchronization Property in Proceedings of COMM2010, 8th Intl. Conference on Communications, Bucharest, June 10-11 2010, Vol. 1, pp. 45-48

(Ganguly et al, 2003) N. Ganguly, B. Sikdar, A. Deutsch, G. Canright, and P.

Chaudhuri, “A Survey on Cellular Automata,” Centre for High Performance Computing, Dresden University of Technology, Tech. Rep. 9, 2003.

(Ronjom et al, 2007) S. Ronjom, M. Abdelraheem and L. E. Danielsen, "TT and ANF

Representations of Boolean functions", in Online Database of Boolean Functions, 2007. Available: http://www.selmer.uib.no/odbf/help/ttanf.pdf