Universitetet i OSLO. Matrisemultiplikasjon i FPGA. Masteroppgave. Masterprogrammet for elektronikk og datateknologi. Geir Haug Andersen

Like dokumenter
Løsning øving 12 N L. Fra Faradays induksjonslov får vi da en indusert elektromotorisk spenning:

2-komplements representasjon. Binær addisjon. 2-komplements representasjon (forts.) Dagens temaer

! Dekoder: En av 2 n output linjer er høy, avhengig av verdien på n inputlinjer. ! Positive tall: Som før

TFY4104 Fysikk. Institutt for fysikk, NTNU. Høsten Øving 9. Veiledning: 18. oktober. Innleveringsfrist: 23. oktober kl 14.

Midtsemesterprøve onsdag 7. mars 2007 kl Versjon A

TFY4104 Fysikk. Institutt for fysikk, NTNU. Høsten Øving 10. Dersom ikke annet er oppgitt, antas det at systemet er i elektrostatisk likevekt.

TFY4104 Fysikk. Institutt for fysikk, NTNU. ving 9.

Pytagoreiske tripler og Fibonacci-tall

Modul 1 15 studiepoeng, internt kurs Notodden/Porsgrunn

Øving 6. Institutt for fysikk, NTNU TFY4155/FY1003: Elektrisitet og magnetisme. Veiledning: Uke 7 Innleveringsfrist: Mandag 19. februar.

TFY4104 Fysikk. Institutt for fysikk, NTNU. ving 10.

Kap. 23 Elektrisk potensial

EKSAMEN FAG TFY4160 BØLGEFYSIKK OG FAG FY1002/MNFFY101 GENERELL FYSIKK II Lørdag 6. desember 2003 kl Bokmål

Kap. 23 Elektrisk potensial

Løsning øving 9 ( ) ( ) sin ( )

Open #2. løp i norges største rc anlegg, stavanger Raceway

LØSNINGSFORSLAG TIL EKSAMEN MAI 2007

Oppgave 1 a)1 b)3 c)2 d)3 e)3 f)2 g)3 h)2 i)1 j)2 k)1 l)2

Slik bruker du pakken

Øving 1. Institutt for fysikk, NTNU Fag SIF 4012 Elektromagnetisme og MNFFY 103 Elektrisitet og magnetisme Høst 2002

Løsningsforslag kapittel 3

Utvalg med tilbakelegging

EKSAMENSOPPGAVE - Skoleeksamen. Institutt for Samfunnsøkonomi. Utlevering: Kl Innlevering: Kl

Fugletetraederet. 1 Innledning. 2 Navnsetting. 3 Geometriske begreper. Øistein Gjøvik Høgskolen i Sør-Trøndelag, 2004

Utvalg med tilbakelegging

MEK 4520 BRUDDMEKANIKK Løsningsforslag til obligatorisk øving 1.

Eneboerspillet. Håvard Johnsbråten

Hesteveddeløp i 8. klasse

Løsningsforslag til Øvingsoppgave 5

Oppgave 8.12 Gitt en potensialhvirvel med styrke K i origo. Bestem sirkulasjonen ' langs kurven C. Sirkulasjonen er definert som: ' /

Newtons lover i én dimensjon

AGENDA: Faste saker: Saksdokumente r

MIK 200 Anvendt signalbehandling, 2012.

Mandag E = V. y ŷ + V ẑ (kartesiske koordinater) r sin θ φ ˆφ (kulekoordinater)

Matematikk 3MX AA6524 / AA6526 Elever / privatister Oktober 2002

Forelesning 9/ ved Karsten Trulsen

b) 3 MATEMATISKE METODER I 1 ( ) ( ) ( ) ( ) ( ) ( ) Repetisjonsoppgaver Bruk av regneregler: 1 Regn ut: e) 0 x ) 4 3 d) 4 x f) 5y

Billige arboresenser og matchinger

Hva er tvang og makt? Tvang og makt. Subjektive forhold. Objektive forhold. Omfanget av tvangsbruk. Noen eksempler på inngripende tiltak

Matematikk Øvingsoppgaver i numerikk leksjon 8 Numerisk integrasjon

x 1, x 2,..., x n. En lineær funksjon i n variable er en funksjon f(x 1, x 2,..., x n ) = a 1 x 1 + a 2 x a n x n,

KAP. 5 Kopling, rekombinasjon og kartlegging av gener på kromosomenen. Kobling: To gener på samme kromosom segregerer sammen

Energi Norge v/ingvar Solberg og Magne Fauli THEMA Consulting Group v/åsmund Jenssen og Jacob Koren Brekke 5. februar 2019

Løsningsforslag til Obligatorisk oppgave 2

STATISTIKK, KOMBINATORIKK OG SANNSYNLIGHET

Nøtterøy videregående skole

1 Tallregning og algebra

Kap. 23 Elektrisk potensial. Eks. 1, forts. av: Hvor stor er 1 coulomb? Kap

Institutt for elektroteknikk og databehandling

1 Virtuelt arbeid for stive legemer

EKSAMEN I EMNE TFE 4120 ELEKTROMAGNETISME

Løsning midtveiseksamen H12 AST1100

Eksamen våren 2018 Løsninger

DEL 1 Uten hjelpemidler

! Brukes for å beskrive funksjoner i digitale kretser. ! Tre grunnleggende funksjoner: AND, OR og NOT

Praktiske opplysninger til rektor. Fag: MATEMATIKK 1TY for yrkesfag Fagkode: MAT1006 Eksamensdato: Antall forberedelsesdager: Ingen

MED SVARFORSLAG UNIVERSITETET I OSLO

Kombinatorikk. MAT0100V Sannsynlighetsregning og kombinatorikk. Multiplikasjonssetningen

trygghet FASE 1: barnehage

3.7 Pythagoras på mange måter

sosiale behov FASE 2: Haug barnehage

Eksamen høsten 2015 Løsninger

TFE4101 Krets- og Digitalteknikk Vår 2016

Brøkregning og likninger med teskje

Eks. 1, forts. av: Hvor stor er 1 coulomb? Kap. 23 Elektrisk potensial

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 13. desember HINDA / 98HINDB / 98HINEA ( 2DA / 2DB / 2EA ) TID:

R1 kapittel 7 Sannsynlighet. Kapitteltest. Oppgave 1. Oppgave 2. Oppgave 3. Del 1 Uten hjelpemidler. Løsninger til oppgavene i boka

M2, vår 2008 Funksjonslære Integrasjon

TFE4120 Elektromagnetisme

Andre funksjoner som NAND, NOR, XOR og XNOR avledes fra AND, To funksjoner er ekvivalente hvis de for alle input-kombinasjoner gir

Løsningsforslag til ukeoppgave 11

S1 kapittel 8 Eksamenstrening Løsninger til oppgavene i læreboka

Fasit. Oppgavebok. Kapittel 5. Bokmål

a 5 (2 + 8) d 5 (2 + 8) 4 g b 3 5 (2 + 8) e h 3 ( ) j Begrunn hvorfor du ikke får samme svar på oppgave b og g.

Magnetisk hysterese. 1. Beregn magnetfeltet fra en strømførende spole med kjent vindingstall.

Sem 1 ECON 1410 Halvor Teslo

Newtons lover i én dimensjon (2)

Fakultet for teknologi, kunst og design Teknologiske fag

8 Eksamens trening. E2 (Kapittel 1) På figuren er det tegnet grafene til funksjonene f og g gitt ved

BASISÅR I IDRETTSVITENSKAP 2010/2011. Utsatt individuell skriftlig eksamen. 1BA 111- Bevegelseslære 2. Mandag 22. august 2011 kl

Microsoft PowerPoint MER ENN KULEPUNKTER

Oppgave 1 Diagrammet nedenfor viser hvordan karakteren var fordelt på en norskprøve.

Måling av gravitasjonskonstanten

Tall i arbeid Påbygging terminprøve våren 2013

b) C Det elektriske feltet går radielt ut fra en positivt ladd partikkel.

Laboratorieøvelse i MNFFY1303-Elektromagnetisme Institutt for Fysikk, NTNU MAGNETISK HYSTERESE

Matematikk Øvingsoppgaver i numerikk leksjon 9 Numerisk integrasjon

Kapittel 4 Tall og algebra Mer øving

Newtons lover i to og tre dimensjoner

Tall i arbeid Påbygging terminprøve våren 2014

Eksempeloppgaver 2014 Løsninger

R1 kapittel 7 Sannsynlighet

Nytt skoleår, nye bøker, nye muligheter!

Løsningsforslag til avsluttende eksamen i HUMIT1750 høsten 2003.

Integralregning. Mål. for opplæringen er at eleven skal kunne

Fag: Matematikk 1T-Y for elever og privatister. Antall sider i oppgaven: 8 inklusiv forside og opplysningsside

Realstart og Teknostart ROTASJONSFYSIKK. PROSJEKTOPPGAVE for BFY, MLREAL og MTFYMA

Løsningsforslag til eksamen i INF2270

SRAM basert FPGA INF H10 1

DEL 1 Uten hjelpemidler

Transkript:

Univesitetet i OSLO Mstepogmmet fo elektonikk og dtteknologi Mtisemultipliksjon i FPGA Msteoppgve Gei Hug Andesen August 2005

SAMMENDRAG Denne ppoten omhndle mtisemultipliksjon i FPGA. Det e lget systeme fo multipliksjon v NxN mtise med støelse 4x4 og 12x12. Systemene e skevet i Händel C i dtvektøyet DK Design Suite 3.1 f Celoxic. Sentlt i systemene e sum v podukte opesjone. Opesjonene utføes v uvhengige posesseingsenhete som e eliset på to måte. Den føste typen enhete kn ukes uvhengig v mtisestøelse og uke lite essuse, men uke mnge steg på å eegne elementene i poduktmtisen. Den nde typen må tilpsses mtisestøelsen den skl ukes på og uke me essuse enn den føste typen, men eegne elementene poduktmtisen med fæe steg. Systemene e testet fo funksjon og om de få plss i FPGAen(Xilinx Vitex-II XC2V6000), videe testing v I/O, optimliseing v ytelse, etc. h måttet utgå pg tidsnød mot slutten v eidet med systemene. Systemene uke lite v essusene i FPGAen, i støelsesoden < 1 % med unntk v multipliksjonslokkene som utnyttes opptil 100 %. Systemene e smmenliknet med tidligee designede systeme fo mtisemultipliksjon og uke minde v essusene i FPGAen (fo design mot smme FPGA) og oppnå estimet ede ytelse enn tidligee design fo smme mtisestøelse. Tilslutt i ppoten skissees mulige utvidelse og foedinge v systemene.

4

Food Denne ppoten e esulttet v min msteoppgve ved Mstepogmmet fo Elektonikk og Dtteknologi, studieetning mikoelektonikk. Aeidet e gjennomføt ved Institutt fo Infomtikk ved Univesitetet i Oslo. Jeg vil i føste ekke tkke min hovedveilede Jim Tøesen fo ll hjelp og støtte. Mine medstudente fo godt eidsmiljø og innholdsike puse, ingen nevnt ingen glemt. Tidligee oveingeniø, nå Scientific Pogmme Håvd Kolle Riis fo utvist tålmodighet og hjelp med pogmve. Bukene v Händel C foumet på www.celoxic.com fotjene tkk fo hjelp med stoe og små poleme undt uken v Händel C og DK 3.1 Min kjæe Toill skl også h tkk fo kjælig omsog og støtte i den tiden jeg ikke v oppttt v nnet enn mtise og FPGA. Tilslutt vil jeg tkke fu Muphy fo hennes lov, som h væt til tøst nå ting ikke h gått ette plnen. Gei Hug Andesen, ugust 2005 5

6

INNHOLDSFORTEGNELSE 1 INNLEDNING...9 1.1 OVERSIKT OVER TEMA I OPPGAVEN...9 1.2 KAPITTELOVERSIKT...9 2 BAKGRUNN...11 2.1 MATRISER...11 2.2 MATRISEMULTIPLIKASJON...11 2.3 FIELD PROGRAMMABLE GATE ARRAY...12 2.3.1 I/O lokke...14 2.3.2 Blokk RAM...16 2.3.3 18 it Multipliksjonslokk...18 2.3.4 Konfigue Logisk Blokk (CLB)...18 2.3.5 ADM-XRC-II...21 2.4 HÄNDEL C...21 2.5 TIDLIGERE ARBEID...23 3 PARALLELL MATRISEMULTIPLIKASJON I FPGA...31 3.1 FELLES FOR SYSTEMENE...31 3.1.1 Ogniseing v mtise...31 3.1.2 Sum v podukte...33 3.1.3 Univesell SAP...33 3.1.4 Tilpsset SAP...34 3.1.5 Multipliksjonslokk...35 3.1.6 Addisjonslokke...35 3.1.7 Vlgte mtisestøelse...36 3.1.8 I/O...37 3.1.9 Begensinge fo systemene...37 3.2 MULTIPLIKASJON AV 4X4 MATRISER...39 3.2.1 Univesell SAP...39 3.2.2 Tilpsset SAP...47 3.3 MULTIPLIKASJON AV 12X12 MATRISER...53 3.3.1 Univesell SAP...53 3.3.2 Tilpsset SAP...59 4 RESULTATER...65 4.1 RESULTATER FOR SYSTEMER FOR MULTIPLIKASJON AV 4X4 MATRISER...65 4.2 RESULTATER FOR SYSTEMER FOR MULTIPLIKASJON AV 12X12 MATRISER....71 4.3 DISKUSJON...77 5 VIDERE ARBEID...81 5.1 FORSLAG TIL UTVIDELSER OG FORBEDRINGER...81 6 OPPSUMMERING...87 7

8

1 INNLEDNING 1.1 Ovesikt ove tem i oppgven Mtisemultipliksjon e kjenen i lgoitme innen signl-, ildeehndling og dtgfikk. Å gjøe mtisemultipliksjon me effektiv vil kunne id til å gjøe disse lgoitmene me effektive. Gunnopesjonen i mtisemultipliksjon e sum v podukte(sap). SAP estå v multipliksjone og kkumulsjon v poduktene. Antll multipliksjone som tengs fo å eegne et element i poduktmtisen e poposjonlt med mtisestøelsen. Fo stoe mtisestøelse vil ntll multipliksjone li så stot t uk v pllellposesseing e ktuelt. FPGA ketse e et ltentiv fo å utføe mtisemultipliksjon med pllellposesseing. I denne oppgven e det utviklet systeme fo pllell multipliksjon v mtise med univeselle og tilpssede enhete som utføe SAP opesjonen. Systemene e lget fo 4x4 og 12x12 mtise. Mtisemultipliksjon, FPGA kitektu og tidligee eide innen FPGA og mtisemultipliksjon pesentees kot fø systemene fo multipliksjon v 4x4 og 12x12 mtise eskives. Deette li esulttene fo systemene pesentet fø foslg til videe eid og konklusjon. 1.2 Kpittelovesikt Kpittel 1 Innledning: pesentee temet i ppoten Kpittel 2:Bkgunn fo ppoten, mtise, mtisemultipliksjon. Beskivelse v FPGA som systemene i kpittel 3 e utviklet fo. Pesentsjon v pogmmeingsspåket Händel C som systemene e skevet i. Tidligee eid innen mtisemultipliksjon på FPGA. Kpittel 3: Systemene som e lget fo ppoten med eskivelse v felles løsninge. Kpittel 4: Resultte og diskusjon v esulttene fo systemene i kpittel 3 Kpittel 5: Videe eid med systemene i kpittel 3 og foslg til utvidelse og foedinge Kpittel 6: Konklusjon 9

10

2 BAKGRUNN 2.1 Mtise Definisjon En mtise e et ektngulæt skjem elle tell som inneholde tll elle symole. Eksempel: M i Likning 2-1 e en mtise. M h to de og te kolonne og klles en 2x3 mtise. 2x3 klles også mtisens støelse[1]. I denne ppoten ehndles kun NxN mtise d e c f Likning 2-1Eksempel på mtise Mtisenotsjon Elementene i mtise identifisees ut f posisjonen i mtisen. Eksempel: om elementet i l nde d og tedje kolonne i 3x3 mtisen L i Likning 2-2 ukes notsjonen 23 l L = l l 11 21 31 l l l 12 22 32 l l l 13 23 33 Likning 2-2: 3x3 mtisen L I NxN mtise e ntll elemente i d/kolonne lik N. 2.2 Mtisemultipliksjon Fo t to mtise skl kunne multiplisees må poduktmtisen væe definet. Antll kolonne i føste mtise må væe likt ntll de i nde mtise. Antll de i føste mtise og ntll kolonne i nde mtise gi dimensjonene fo poduktmtisen [1]. A = 11 21 31 12 22 32 13 23 33 =, B 11 21 31 12 22 32 13 23 33 = =, R A B Likning 2-3: Mtisemultipliksjon I denne ppoten ehndles e NxN mtise så R e lltid definet d ntll de/kolonne e likt i egge mtisene, se Likning 2-3. 11 21 31 12 22 32 13 23 33 11

Rd-kolonne egelen fo mtise multipliksjon Hvis R e definet e elementet i i te d og j te kolonne i R ( ) summen v poduktene v de koespondeende elementene f d i i mtise A og kolonne j i mtise B [1], se Likning 2-4. ij ij n = k =1 ik kj Likning 2-4: mtiseelement som sum v podukte Så poduktmtisen kn epesentees som i Figu 2-4 R = n k = 1 n k = 1 n k = 1 ik ik ik kj kj kj n k = 1 n k = 1 n k = 1 ik ik ik kj kj kj n k = 1 n k = 1 n k = 1 ik ik ik kj kj kj Likning 2-5: Elementene i poduktmtisen R som summe v podukte Anvendelse v mtisemultipliksjon Mtise og lineæ lge nvendes i mtemtikken fo løsning v lineæe likninge og systeme v lineæe likninge. Mtisemultipliksjon nvendes innen dtgfikk fo modelleing v 3D ojekte og dees evegelse, innen digitl signlehndling til signl tnsfomsjon og filteing (FIR/IIR) og innen ildeehndling til kompesjon (jpeg/mpg) og filteing. 2.3 Field Pogmmle Gte Ay Field Pogmmle Gte Ay (FPGA) e ekonfiguee digitle ketse. FPGA ketse inneholde en kjene v logiske celle og kommuniksjonsknle i et utenett[2]. Kommuniksjonsknlene knytte smmen de logiske cellene og foinde dem med IO lokkene som ligge lngs knten v ketsen, se Figu 2-1. Innholdet i FPGAen (funksjonen) lges i SRAM og kn endes et uendelig ntll gnge ette t ketsen e poduset ved å ende innholdet i SRAMen. Funksjonen e egenset til komintoisk og digitl logikk. 12

Figu 2-1: Innholdet i en Xilinx Vitex-II FPGA[3] Innholdet i en FPGA, eksempel, se Figu 2-1 kn deles inn i følgende ktegoie 1 I/O lokke (Pogmmle I/O) 2 Blokk RAMe (Block Select RAM) 3 Logiske celle (CLB) Xilinx Vitex-II FPGAe inneholde i tillegg intene multipliksjonsketse (Multiplie) og digitle klokke multipleksee (DCM). I fotsettelsen vil de logiske essusene nevnt ove eskives med innholdet i Xilinx Vitex- 2 XC2V6000 som eksempel. Logiske celle 8 448 BRAM (Kit) 2 592 18it Multipliksjonslokke 144 Distiuet RAM (Kit) 1 056 IO pinne (tilgjengelig fo uke) 824 13

2.3.1 I/O lokke En Vitex-II XC2V6000 FPGA i FF1152 pkke h 824 I/O pinne tilgjengelig fo uke I/O. Hve I/O pinne e kolet til en I/O lokk, se Figu 2-2 Figu 2-2: Vitex-II IO lokk[3] I/ O lokkene i FPGAen h støtte fo 19 I/O stndde, åde single ended som PCI og PCI-X og diffeensielle som LVDS og BLVDS. 14

Figu 2-3: Doel dtte egiste i Vitex-II I/O lokk[3] Doel dtte oppnås ved t egistene på hve tnsmisjonslinje klokkes med klokke f to foskjellige klokkenett. De to klokkesignlene geneees v en DCM, se Figu 2-7 og må væe 180 fsefoskjøvet i fohold til hvende som vist i Figu 2-3. 15

2.3.2 Blokk RAM XC2V6000 innehol de 144 18Kit Block Select RAMe på til smmen 2654208 it. Hve RAM h to funksjonelt identiske, uvhengig kontollet og klokkede synkone pote, se Figu 2-4. Potene h tilgng til et felles 18Kit lgingsomåde[3]. Figu 2-4: Xilinx Vitex-II 18 Kit Blokk RAM i topots modus[3] Hvis egge potene e konfiguet likt e hele RAMen tilgjengelig f egge potene. E potene konfiguet ulikt e hele 18Kit omådet tilgjengelig f den ene poten, mens den nde poten h tilgng til et undeomåde v RAMen tilsvende 16Kit, se Tell 2.1 16

pot A 16K x 1 16K x 1 16K x 1 16K x 1 16K x 1 16K x 1 pot B 16K x 1 8K x 2 4K x 4 2K x 9 1K x 18 512 x 36 pot A 8K x 2 8K x 2 8K x 2 8K x 2 8K x 2 pot B 8K x 2 4K x 4 2K x 9 1K x 18 512 x 36 pot A 4K x 4 4K x 4 4K x 4 4K x 4 pot B 4K x 4 2K x 9 1K x 18 512 x 36 pot A 2K x 9 2K x 9 2K x 9 pot B 2K x 9 1K x 18 512 x 36 pot A 1K x 18 1K x 18 pot B 1K x 18 512 x 36 pot A 512 x 36 pot B 512 x 36 Tell 2-1:topots konfigusjone fo 18Kit lokk RAM [3]. 17

2.3.3 18 it Multipliksjonslokk FPGAen inneholde 144 18it multipliksjonslokke. Multipliksjonslokkene e 18it 2 s komplement multipliksjonsketse. Hve lokk h to 18its inngnge og en 36it utgng, se Figu 2-5. Figu 2-5:Vitex-II 18it multipliksjonslokk[3] Multipliksjonslokkene og lokk RAMene i ketsen dele foindelse (inteconnect) mot esten v ketsen. Denne foindelsen e optimliset med tnke på t RAMene skl fo syne multipliksjonslokkene, men RAM og multipliksjonslokke kn ukes uvhengig v hvende og smtidig. 2.3.4 Konfigue Logisk Blokk (CLB) CLBene ukes til å elisee komintoisk og digitl logikk i FPGAen. Hve CLB e knyttet til det intene utenettet i FPGAen. En CLB estå v fie slices som e ogniset i to kolonne, se Figu 2-6. En CLB inneholde elle kn implementee følgende logiske essuse/funksjone. Slice 4 LUTe 8 vippe 8 mentekjede 2 Sum v podukte (SOP) kjede 2 Distiuet Select RAM (it) 128 Skiftegiste (it) 128 MULT_AND 8 18

Figu 2-6: Vitex-II CLB [3] SLICE En slice inneholde, se Figu 2-11. 2 Funksjonsgenetoe (F og G) (*) 2 Lgingselemente (#) Aitmetisk logiske pote ($) Multipleksee ( ) Cy logikk ( ) Lgingselementene kn ukes som flnkestyte D-vippe elle nivåsensitive ltche. Funksjonsgenetoene e fie inngngs Look Up Tles (LUT) og kn ukes som 16it RAM elle skifteegiste i tillegg til LUT. 19

Figu 2-7: Vitex-II slice [3], øve del v figuen vise øve hlvdel v slicen i nede del 20

LOOK UP TABLE (LUT) Funksjonsgenetoene i slicene e fie inngngs Look Up Tles (LUT). Disse kn enyttes som 16it RAM elle 16it skiftegiste i tillegg til LUT, men e som en v de te v gngen. En LUT kn elisee oolske funksjone med fie inngnge. Ved å uke en v multipeksene i slicen, se Figu 2-7, kn funksjone med opptil åtte inngnge elisees. Ved å kominee to elle flee slice kn en CLB elisee funksjone med 32 inngnge. CLBe kn kominees fo å lge funksjone med me enn 32 inngnge. 2.3.5 ADM-XRC-II Xilinx Vitex-II XC2V6000 FPGAen sitte på et RC2000 FPGAkot f Celoxic, kotet e poduset v Alphdt (klles ADM-XRC-II v Alphdt), se Figu 2-8. Kotet e et PMC (PCI Mezznine Cd) kot som fouten FPGAen h 6 minnenke fo ZBT ( Zeo Bus Tunound ) RAM og opptil 146 I/O pinne fo uke I/O med en mksiml oveføingste på 40 G/S [4]. Kotet kn utvides med inntil 512 MB DDR(doule dt te) RAM. Figu 2-8: RC2000 PMC FPGAkot 2.4 Händel C Systemene i denne ppoten e lget med dtvektøyet DK 3.1 f Celoxic. DK 3.1 e set på pogmmeingsspåket Händel C. 21

Händel C e set på C og uke C syntks[5], men e utvidet med instuksjone fo pllell kjøing v pogmgene og kommuniksjon mellom pllelle pogmgene. Händel C inneholde ltså instuksjone fo å spesifisee mskinve, så posessooientete instuksjone som pekee og flyttllsitmetikk e uteltt. Pllell kjøing spesifisees ved å uke instuksjonen p. Fo å kjøe to pogmgene pllelt ukes p som i eksempelet unde. Eksempel: pllelle pogmgene P { Pogmgen1; Pogmgen2; } Om Händel C smmenliknes med VHDL som e et svæt utedt spåk fo å konstuee hdmskinve femkomme det t de to spåkene h foskjellig fokus. Händel C skille seg f tdisjonelle spåk fo mskinve spesifiksjon som VHDL og veilog ved t det e lget fo å elisee lgoitme i mskinve uten å h ehov fo detljet kunnskp om mskinven, mens VHDL fokusee på å spesifisee digitl elektonikk på potnivå. VHDL e spåket fo hdwe ingeniøen som eide med spesifiksjon v enkelt pote og fosinkelsen gjennom dem. Händel C e lget fo pogmmeee uten detljkunnskpe om hdwe[6]. 22

2.5 Tidligee eid Mtiseopesjone og sælig mtisemultipliksjon h en ekke nvendelse i lgoitme innen dtgfikk, signl-, og ildeehndling. Eksemple e Disket Cosinus Tnsfom (DCT) som ukes i ildefomtet jpeg og videofomtet mpg[7] og Disket Fouie Tnsfom (DFT) som ukes i signlnlyse og dtkompesjon[8]. Fo å oppnå ede ytelse fo systeme med mtisemultipliksjon som sis e det eidet med å lge effektive løsninge fo mtisemultipliksjon. FPGA ketse kn enyttes fo å lge slike løsninge på gunn v: stoe logikk essuse som kn nvendes i pllell, sto lgingskpsitet. Fo å oppnå økt ytelse fo mtisemultipliksjonssysteme kn flee metode enyttes. Lge me effektive multipliksjonsenhete. Å ognisee mtisemultipliksjonen me effektivt. Aeidet e ofte ettet mot en nvendelse v mtisemultipliksjon og kominee egge metodene ved åde å lge effektive multipliksjonsenhete og å ognisee uken v dem på en effektiv måte. Fo å lge effektive multipliksjonsenhete kn enhetene lges f unnen v (i LUT) elle å utnytte intene multipliksjonslokke i FPGA til å lge multipliksjonsenhete. Ogniseing v multipliksjonen e gjot ved å lge systoliske kitektue [9]. Systoliske kitektue e kitektue hvo hve del v kitektuen gjø en del v eegningsoppgven og sende esulttet videe i kitektuen hvo det ukes v neste del i kitektuen. Akitektuene ognisees ette lgoitme, eksempel på en slik lgoitme e Bugh-Wooley s lgoitme [10]. Multipliksjonen kn også ognisees ved å lge systeme som estå v enhete som eide pllelt, men i motsetning til enhetene i en systolisk kitektu utføes hele multipliksjonen i en enhet uvhengig v de nde enhetene, et eksempel e distiuet itmetikk i [11]. I [12] pesentee Ami et. l en systolisk kitektu[9] fo multipliksjon v NxN mtise, se Figu 2-9. Det oppgis ikke i tikkelen om kitektuen e skevet i VHDL elle lget med nnet vektøy. Akitektuen estå v multipliksjonsenhete lget f unnen v og ukes i en systolisk kitektu. 23

Figu 2-9: systolisk kitektu fo multipliksjon v 3x3 mtise[12] Akitektuen e testet fo N =2,3,4,5 og 8, lle med åtte it mtiseelemente. Akitektuen estå v N 2 posesseingselemente (PE) og uffee fo inn-/utlesing v dt. PEene estå v en multipliksjonsenhet lget fo Bugh-Wooley s lgoitme, se Figu 2-10, en vippe fo lging v mente og en ddisjonsenhet (fulldde) fo ddisjon v delpodukte, se Figu 2-9. Figu 2-10: Bugh-Wooley multipliksjonsenhet[12] 24

Multipliksjonene e ogniset ette Bugh-Wooleys lgoitme og systemet inneholde PEe lget fo uk med Bugh-Wooley s lgoitme. PEene inneholde en Bugh-Wooley multipliksjonsenhet som multiplisee mtiseelementene itvis, se Figu 2-11. Figu 2-11: Bit nivå multipliksjon ette Bugh-Wooley s lgoitme på tellfom[12] Fo å illustee hvodn kitektuen i Figu 2-9 fungee skl vi se på hvodn poduktelementet c11 eegnes. c11 eegnes v PEene PE11, PE12 og PE13. Disse h elementene 11, 12 og 13 f mtise A liggende fst. Elementene 11, 21 og 31 mtes inn i PEene f inngngsuffeet. PE13 multiplisee 13 og 31, PE12 multiplisee 12 og 21 og PE11 multiplisee 11 og 11. Poduktet i PE13 sendes til PE12 og legges smmen med poduktet de fø summen v de to poduktene sendes til PE11 og legges smmen med poduktet de. Denne summen e element c11. De nde elementene i poduktmtisen eegnes på tilsvende måte ved t elementene som ligge fst i PEene multiplisees med elemente f inngngsuffeet og poduktene legges smmen. Akitektuene fo nde vedie på N fungee tilsvende, men med N 2 PEe. Akitektuen fo N=4 oppnå 50MHz og uke 80 slice i en Xilinx XCV1000E FPGA. I [11] pesentee Ami og Bensli et system fo mtisemultipliksjon hvo mtisestøelse, ntll it i elementene og kitektu kn definees v uke. Systemet e lget i VHDL. Akitektuene som kn velges v ukeen e systolisk kitektu som i [12] og kitektu set på distiuet itmetikk. De systoliske kitektuene i systemet fungee på smme måte som kitektuene i [12] og systemet genee VHDL kode fo nye kitektue set på ukeens ehov, mtisestøelse og ntll it p element. En systolisk kitektu fo multipliksjon v 6x6 mtise med åtte it p element oppnå 25MHz og uke 300 CLB. Akitektuene set på distiuet itmetikk uke ROMe fo å implementee konstnt koeffisient multipliksjonsenhete[13] og kkumultoe fo å implementee en sum v podukte opesjon. Innholdet i ROMen vhenge v elementene i mtise A. Hve 25

multipliksjonsenhet multiplisee to mtiseelemente (et f hve mtise) og kkumulee poduktet. Nå lle elementene e multipliset og poduktene kkumulet e elementet i poduktmtisen eegnet. Et eksempel på en kitektu set på distiuet itmetikk fo multipliksjon v 3x3 mtise e vist i Figu 2-12. Atikkelen oppgi ikke esultte fo denne kitektuen, men distiuet itmetikk fo multipliksjon v 4x4 mtise med åtte it elemente oppnå 166.47 MHz og uke 57 slice. Systemet e lget fo implementsjon v systemene på en Xilinx XCV2000E FPGA. Figu 2-12: kitektu set på distiuet itmetikk fo multipliksjon v 3x3 mtise[11] Jinwen og Chuen pesentee i [14] posesseingselemente (PE) som enytte Xilinx Mc Coe, se Figu 2-13. PEene e lget i VHDL. Mc Coe uke de intene multipliksjonsenhetene i en Xilinx Vitex-II FPGA fo å utføe multipliksjon. PEene ukes uvhengig v hvende. I tikkelen fomulees også te setninge om kv til essuse til mtisemultipliksjon, de to føste pesentees he mens 3. setning som omhndle uk v fæe enn N multipliksjonsenhete ikke e ktuell fo denne ppoten. 26

Figu 2-13:Posesseingselement som enytte Xilinx Mc Coe[14] PEene som pesentees inneholde en MC coe, et egiste, en lokk RAM (på minst 2N loksjone à støelse på mtiseelementene) og en I/O pot. PEene e testet fo multipliksjon v NxN mtise med N= 3,6,9,12,15,24 og 48 og uke f 110 til 1798 slices. Oppnådd opesjonsfekvens e 74 MHz. PEene e testet ut på en Xilinx Vitex-II FPGA. 1. setning: minimum ntll multipliksjone som tengs fo å multiplisee NxN mtise med N multipliksjonsenhete e N 2, med en multipliksjonsenhet tengs N 3. Bevis: En NxN mtise inneholde N 2 elemente. Fo å eegne et element i podukt mtisen tengs N multipliksjone (v elementene i d/kolonne á N elemente). Fo å eegne N 2 elemente med en multipliksjonsenhet tengs d N 2 x N = N 3 multipliksjone. 3 2 Med N multipliksjonsenhete tengs N /N = N multipliksjone. Dette e minimum ntll multipliksjone som tengs. Komment: Denne setningen omhndle multipliksjon v NxN mtise geneelt og e tolig kjent f fø, selv om jeg ikke h kunnet finne efense til den. 27

2. setning: Fo multipliksjon v NxN mtise med PEe estående v en Mc, et egiste, en lokk RAM (inneygd i FPGAen) på 2N loksjone og en I/O pot, se 2 Figu 2-13, tengs N +N sykle med N PEe. Komment: PEene inneholde en kolonne f mtise B hve og elementene i dene i mtise A lstes inn utenf. Bevis: He foutsettes t PEene e ogniset slik t elementene i mtise A mtes inn i PEene en ette en slik t føste element i A nå siste PE ette N sykle slik t denne egynne å multiplisee ette N sykle, defo tillegg på N sykle. I [15] pesentee Zhuo og Psnn to lgoitme fo mtisemultipliksjon v NxN mtise med flytllselemente. Algoitmene e lget i VHDL. De to lgoitmene uke PEe (multipliksjonsenhete) som enytte intene multipliksjonslokke i FPGA i en kitektu med uvhengige enhete. Føste lgoitme see seg på å dele den ene mtisen i to undemtise med støelse N/2xN og den nde mtisen i fie kolonne, se Figu 2-14. Elementene i poduktmtisen eegnes v 2N posesseingselemente (PE). Hve PE multiplisee elementene i en v undemtisene med elementene i en kolonne f den nde mtisen. De fie føste PEene multiplisee elementene i den føste undemtisen med elementene kolonnene i den nde mtisen og de fie siste PEene multiplisee elementene i den nde undemtisen med elementene i kolonnene den nde mtisen. Hve PE eegne N/2 elemente i poduktmtisen. Figu 2-14:Illustsjon v lgoitme 1[15] 28

Den nde lgoitmen dele hve mtise i to, den føste i to undemtise med støelse NxN/2 og den nde mtisen i to undemtise med støelse N/2/N, se Figu 2-15. Elementene i poduktmtisen eegnes v N PEe, hve PE eegne N elemente i poduktmtisen i fom v en N/2xN/2 undemtise v poduktmtisen. Elementene eegnes ved t kolonnene i undemtisen v føste mtise og dene i undemtisen v nde mtise som e tilknyttet hve PE multiplisees og poduktene legges smmen. Figu 2-15: Illustsjon v lgoitme 2[15] Føste lgoitme oppnå 182 MHz og uke 19045 slices. Ande lgoitme oppnå 135 MHz og uke 33589 slices. Det e også lget et Händel-C pogm fo flyttlls mtisemultipliksjon, dette pogmmet oppnå 12.6 MHz og uke 22059 slices. Alle te systemene e implementet i en Xilinx XC2VP125 FPGA I [16] pesentees implementsjon v Multiply Accumulte (Sum v podukte (SAP)) i Xilinx FPG A. SAP kn implementees på flee måte, pllell som uke en multipliksjonsenhet p d/kolonne element og ddisjonslokke som legge smmen delpoduk tene, semi-pllell, som uke to multipliksjonslokke, en ddisjonslokk og en kkumulto, se Figu 2-16. Til slutt kn SAP implementees seielt med en multipliksjonslokk og en kkumulto. 29

Figu 2-16: foskjellige mulighete fo implemen tsjon v sum v podukte[16] Aeidet i tiklene som e esk evet i dette kpittelet e utgngspunkt fo mine egne fosøk innen uk v FPGA til mtisemultipliksjon. Selv om tiklene omhndle uk v nde FPGA kets e og de t en v tiklene omhndle flyttll h konseptene som e pesen tet i dem og den inspisjonen d e h gitt væt vgjøende i mitt eget eid. 30

3 PARALLELL MATRISEMULTIPLIKASJON I FPGA I dette kpittelet eskives systemene fo multipliksjon v 4x4 og 12x12 mtise. 3.1 Felles fo systemene Tnken k systemene i dette kpittelet e t dene og kolonnene i mtisene som skl multiplisees skl lges e en gng i FPGAen fo å spe plss og unngå poleme med flee utgve v d/kolonne. Systemene e set på metodene ukt i og inspiet v eidene omtlt i kpittel 2.5. Sentlt i systemene e sum v Podukte (SAP) enhete. SAP enhetene e lget på to måte univesell som e set på seil multiply-ccumulte i [16] og tilpsset som e set på pllel multiply-ccumulte i [16]. SAP enhetene e som PEene i [14] ygget opp undt intene multipliksjonslokke i FPGAen. Ogniseingen v SAP enhetene e set på Ami og Bensli s kitektu med distiuet itmetikk i [11]. Hve SAP enhet i systemene skl væe uvhengig v de nde SAP enhetene i systemet. Ogniseingen v mtisene ygge på Zhuo og Psnn s oppdeling v mtisene i [15], men e i motsetning til dees oppdeling finee og dele mtisene i de/kolonne. Oppdelingen smsve med d-kolonne egelen i 2.2. Systemene skille seg f systemet i [15] ved t mtisene deles inn i enkelt de/kolonne, mens de i [15] deles inn i undemtise og kolonne. Systemene skille seg og f systemene i [14] ved t mtisene ehndles i de/kolonne og ikke i elemente. Systemene uke en ogniseing tilsvende den som ukes i [12], men skille seg f systemet i [12] ved t mtisemultipliksjonene utføes ved hjelp v intene multipliksjonslokke i FPGAen. 3.1.1 Ogniseing v mtise Systemene eegne poduktmtisen R ved å multiplisee to mtise A og B. I systemene fo multipliksjon v 4x4 e A, B og R 4x4 mtise, se Figu 3-1. Mtisene A og R deles i fie de hve og lges i RAMene A0-A3 (mtise A) og R0-R3 (mtise R), mtise B deles i fie kolonne og lges i RAM B0-B3 (mtise B), se Tell 3-1, Tell 3-2 og Tell 3-3. I systemene fo multipliksjon v 12x12 mtise e A 12x12 mtise. Mtise A og R deles i 12 de hve og lges i RAMene A0-A11 (mtise A) og R0-R11 (mtise R), mtise B deles i 12 kolonne som lges i RAMene B0-B11, se vedlegg A. 31

Poduktmtisen R eegnes i de, hve d lges i en RAM, se Tell 3-3. Det eegnes et element p d v gngen. = A 11 21 31 12 22 32 13 23 33 14 24 34 = B 11 21 31 12 22 32 13 23 14 24 = = R AB 41 42 43 44 41 42 43 44 41 42 43 44 Figu 3-1: 4x4 mtisene A, B og R. Fo å foenkle pogmmeingseidet e indeksene vist i Figu 3-2 enyttet fo å identifisee elementene i mtisene. 33 34 11 21 31 12 22 32 13 23 33 14 24 34 A = 11 21 31 41 12 22 32 42 13 23 33 43 14 24 34 44 0 = 4 8 12 1 5 9 13 2 6 10 13 3 7 11 15 B = 11 21 31 41 12 22 32 42 13 23 33 43 14 24 34 44 0 = 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 R = 11 21 31 41 12 22 32 42 13 23 33 43 14 24 34 44 0 = 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 Figu 3-2: Indekse enyttet i systemene RAM Adesse A0 A1 A2 A3 0 0 4 8 12 1 1 5 9 13 2 2 6 10 14 3 3 7 11 15 Tell 3-1: Elementene i mtise A i RAMene A0-A3. 32

RAM Adesse B0 B1 B2 B3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 Tell 3-2:Elementene i mtise B i RAMene B0-B3 RAM Adesse R0 R1 R2 R3 0 1 o 4 8 12 1 5 9 13 2 2 6 10 14 3 3 7 11 15 Tell 3-3: Elementene i poduktmtisen R i RAMene R0-R3 3.1.2 Sum v podukte Elementene i poduktmtisen e en sum v podukte v dene og kolonnene i mtisene som multiplisees, se vsnitt 2.2. Sum v podukte (SAP) (engelsk: multiply ccumulte) e en kjent teknikk f digitl signlehndling [16]. SAP estå v å multiplisee elemente til delpodukte og legge smmen delpoduktene til endelige podukte. SAP e eliset på to måte; univesell og tilpsset. 3.1.3 Univesell SAP Univesell SAP e set på seil multiply-ccumulte i [16] og elisees med en multipliksjonslokk og en kkumulto, se Figu 3-3. Multipliksjonslokk multiplisee et element f den med et f kolonnen som skl multiplisees om gngen og esulttene kkumulees i kkumultoen. Ette siste kkumulsjon e et element i poduktmtisen 33

eegnet. Elementet ligge i smme d/kolonne som det e poduktet v. Fo å eegne et element i poduktmtisen tengs N multipliksjone og N kkumulsjon d ntll elemente i d/kolonne e N. Et element i en 4x4 mtise eegnes med fie multipliksjone og fie kkumulsjone, mens et element i en 12x12 mtise keve 12 multipliksjone og 12 kkumulsjone. Figu 3-3: Univesell SAP Denne måten å elisee SAP opesjonen kn ukes fo lle NxN mtise uten tilpssning. 3.1.4 Tilpsset SAP Tilpsset SAP e set på og pllel multiply-ccumulte i [16] og skille seg f univesell SAP ved t lle elementene multiplisees smtidig i pllell istedenfo to og to seielt. Dette keve N multipliksjonslokke (en p element i d/kolonne) og N-1 ddisjonslokke i en testuktu fo å ddee poduktene se Figu 3-4. Testuktu ukes fo å unngå t ddisjonen implementees som sto og teg logikk [5]. Elemente f smme desse i A og B RAMene multiplisees i smme multipliksjonslokk. 34

Figu 3-4: Tilpsset SAP fo multipliksjon v 3x3 mtise. Tilpsset SAP må tilpsses støelsen på mtisene som skl multiplisees. Fo NxN mtise tengs N multipliksjonslokke og N-1 ddisjonslokke. Antll ddisjonslokke vgjøes v ntll multipliksjonslokke. Addisjonslokkene ognisees i en testuktu hvo ntll ddisjonslokke i hvet nivå e hlvpten v ntllet i foige nivå, ntllet i føste nivå e hlvpten v ntllet multipliksjonslokke. 3.1.5 Multipliksjonslokk Multipliksjonslokkene i åde univesell og tilpsset SAP e intene 18 its multipliksjonslokk e i FPG Aen. Multipliksjonslokkene e næmee eskevet i 2.3.3. 3. 1.6 Addisjonslokke I u nivesell SAP ukes en kkumulto som den i Figu 3-5. En kkumulto e en dde med utgngen kolet tilke til den ene inngngen slik t vediene som mtes inn på den fie inngngen legges smmen med vedien f foige kkumulsjon. 35

Figu 3-5: 36 its kkumulto I tilpsset SAP ukes ddee, lik den i Figu 3-6 i en testuktu som vist i Figu 3-4. Figu 3-6: 36 its dde Både kkumultoe og ddee e implementet med LUTe og vippe i FPGAens CLBe. 3.1.7 Vlgte mtisestøelse Det e lget løsninge fo 4x4 og 12x12 mtise. Fo å komme i gng egynte jeg å eide med 4x4 mtise pg liten støelse som medføe fæe SAP opesjone og minde kompleksitet. Multipliksjon v 4x4 mtise ukes til å tnsfomee nod-øst koodinte til x-y koodinte[17] og i 3D-pogmmeing fo å kontollee et ojekts evegelse om ksene[18]. 12x12 mtise le vlgt med utgngspunkt i hvilke essuse som e tilgjengelig i FPGAen løsningene e utviklet mot. Med 12x12 mtise utnyttes essusene i denne mksimlt. FPGAen innholde 144 multipliksjonslokke[3] og ved å enytte tilpsset SAP vil 12x12 mtise væe mksiml mtise støelse som kn enyttes. 12x12 mtise dvs. 12 mtiseelemente p d/kolonne og 12 de/kolonne p mtise og med en multipliksjonslokk p element i d/kolonne keves d 144 multipliksjonslokke fo å elisee systemet. Å finne en nvendelse fo multipliksjon v 12x12 mtise h væt vnskelig, men 12x12 mtise nvendes i HDTV fo koding/dekoding v signl [19]. 36

3.1.8 I/O Fo å kunne eegne poduktmtisen R v mtisene A og B må A og B oveføes til RAMe inne i FPGAen. Fo å unngå t denne oveføingen li en flskehls i systemet e det nødvendig å finne gode løsninge fo oveføsel v elementene i mtisene A, B og R. To ltentive fo å løse I/O polemet Vitex-II FPGAen sitte på et pci mezznine cd (pmc)[4]. Ved å uke PCI stndden kn dt oveføes til FPGAen med oveføingste på opptil 528 M/s[20]. Å enytte denne I/O løsningen vil keve 724 LUTe og 89 I/O lokke [20]. XC2V6000 FPGAen inneholde 67584 LUT [3]. Det støste v systemene (12x12 multipliksjon med tilpsset SAP) keve 170 LUTe, se kpittel 4.2, så det e plss til å implementee løsningen i FPGAen. Om uk v PCI I/O ikke gi høy nok oveføingste kn det lges et ketskot til FPGAen f unnen og enytte Low Voltge Diffeentil Signlling (LVDS) I/O[21]. Ved å enytte LVDS kn oveføingste på 10G/s fo 16it oveføsel elle 2.5 G/s fo 4it[22]. Denne løsningen vil gi svæt høy oveføingste, men den ulempen t det må lges et ketskot f unnen fo å uke LVDS. Ketskotet må møte LVDS stnddens kv til fosinkelse, lengden på tnsmisjonslinjene og plsseingen v disse på ketskotet må vveies nøye [22]. 3.1.9 Begensinge fo systemene Begepet omgng enyttes fo å eskive eegningen v et element i poduktmtisen. En omgng e det ntll opesjone (multipliksjone og ddisjone/kkumulsjone) som tengs fo å eegne et element. Geneelt fo mtisemultipliksjon med SAP enhete (univeselle og tilpssede) gjelde følgende. Multipliksjon v to NxN mtise kn ikke utføes i løpet v minde enn N omgnge med N SAP enhete. Komment: En NxN mtise inneholde N 2 elemente. Med N SAP enhete som hve eegne et element i løpet v en omgng eegnes poduktmtisen i løpet v N omgnge. Fo de univeselle SAP enhetene estå en omgng v N seielle multipliksjone og N kkumulsjone. Totlt 2N steg. Fo de tilpssede SAP enhetene e lengden på omgngen vhengig v mtisestøelsen den enkelte SAP enheten e tilpsset. 37

I denne ppoten e det ukt tilpssede SAP enhete fo 4x4 og 12x12 mtise. Fo SAP enhet tilpsset 4x4 mtise estå en omgng v fie pllelle multipliksjone ettefulgt v te ddisjone i to steg. Føst fie delpodukte til to delesultte og tilslutt to delesultte til ett poduktelement. En omgng = et steg multipliksjone + to steg ddisjone = te steg. Fo SAP enhet tilpsset 12x12 mtise estå en omgng v et steg som estå v 12 pllelle multipliksjone ettefulgt v 11 ddisjone i fie steg. En omgng = et steg multipliksjone + fie steg ddisjone = fem steg. I systemene med åde univesell og tilpsset SAP lges åde mtisene som skl multiplisees og poduktmtisen i RAMe i FPGAen. Mtisestøelsen NxN vgjø hvo mnge loksjone RAMene m å h. Hve RAM må væe på N loksjone á 18 it fo mtisene som skl multiplisees (18 it fodi det ukes 18it multipliksjonslokke i systemene) og N loksjone á 36 it fo poduktmtisen (36 it fodi multipliksjonslokkene i systemene h 36 it utgng). 38

3.2 Multipliksjon v 4x4 mtise. Det e lget løsninge fo å multiplisee 4x4 mtise med åde univesell og tilpsset SAP. 3.2.1 Univesell SAP Figu 3-7: Sy stem fo multip liksjon v 4x4 mtise med univesell SAP. Systemet i Figu 3-7 eegne poduktm tisen R ved å multiplisee 4x4 mtisene A og B. M tisene A og B lges i RAMene A0-A3 og B0-B3. Elementene i R eegnes v univeselle SAP enhete, se vsnitt 3.1.3, og lges i RAMene R0-R11. Ogniseingen v mtisene A, B og R e eskevet i vsnitt 3.1.1. En univesell SAP enhet kn eegne et element i R v gngen. De fie SAP enhetene i systemet eegne til smmen fie elemente (en d) i R v gngen. Hele R kn defo ikke eegnes smtidig, men må eegnes i omgnge. I hve omgng eegnes et element v hve SP enhet til smmen fie elemente. En omgng fo univeselle SAP enhete e eskevet i 3.1.9. De 16 elementene i R eegnes i løpet v fie omgnge, se Tell 3-4. Multipliksjonene styes v to kontollenhete, RAM dessekontoll og omgngskontoll. RAM dessekontoll kontollee hvilke desse som leses v SAP enhetene f RAM A0-A3 og B0-B3. Omgngskontoll kontollee hvilken B RAM som e tilknyttet hvilken SAP enhet. Kildekoden fo systemet finnes i vedlegg B.1. 39

Omgng Element i R 1 0 4 8 12 2 1 5 9 13 3 2 6 10 14 4 3 7 11 15 Tell 3-4: Beegning v elementene i R SAP FUNKSJON SAP enhetene i systemet i Figu 3-7 e tilknyttet en A RAM, en B RAM og en R RAM. A RAMen inneholde en d f mtise A og B RAMen inneholde en kolonne f B. I R RAMen lges de elementene i poduktmtisen R som eegnes v SAP enheten. Figu 3-8 vise SAP0 i systemet med tilknyttede RAMe og kontollenhete. Figu 3-8: SAP0 f Figu 3-7 Fo å vise hvodn SAP enhetene eegne elementene i R se vi på SAP0 og hvodn den fungee, se Figu 3-8. SAP0 e fst tilknyttet RAMene A0 og R0, se Tell 3-5 og tilknyttes en ny RAM som inneholde en kolonne f mtise B fo hve omgng, se Tell 3-8. Fo hve omgng lge SAP0 poduktet v SAP opesjonen i RAM R0. Adessen elementet lges i vgjøes v hvilken omgng systemet e i, se Tell 3-9. 40

RAM SAP A RAM R RAM 0 A0 R0 1 A1 R1 2 A2 R2 3 A3 R3 Tell 3-5: Fst tilknyttede RAMe SAP0 eegne elementene 0, 4, 8 og 12 i R, se Tell 3-4. Elementene eegnes ved t innholdet i smme desse i A0 og B RAMen som e tilknyttet fo omgngen multiplisees og poduktet legges smmen med poduktet v innholdet i esten v dessene i RAMene. Fo å illustee hvodn elementene eegnes skl vi se på hvodn element 8 i R eegnes, se Figu 3-9. Element 8 eegnes i omgng 3, se Tell 3-4. SAP0 e fst tilknyttet A0. I omgng 3 e SAP0 tilknyttet B RAMen B2, se Tell 3-8. 8 lges i R0[2], se Tell 3-9. Innholdet i føste desse i A2 og B0 multiplisees i SAP enhetens multipliksjonslokk og poduktet legges inn i SAP enhetens kkumulto. Innholdet i de to neste dessene multiplisees og legges til esulttet i kkumultoen. Dette gjents til innholdet i lle fie RAM dessene e multipliset og lgt smmen. Nå e 8 eegnet og kn lges i RAM R0 desse 2 (R0[2]), se Figu 3-9. 0 4 8 12 1 5 13 2 6 14 3 7 15 1 5 9 13 2 6 10 14 3 0 7 = 4 11 15 12 1 5 9 13 2 6 10 14 3 7 11 15 Figu 3-9: Beegning v elementet 8 i poduktmtisen 8 = 8 0 + 9 4 + 10 8 + 11 12 = A3 0 R0 2 [ ] B0[ 0] + A31 [] B0[] 1 + A3[ 2] B0[ 2] + A3[ 3] B0[ 3] 3 [ ] = A0[] i B2[] i i= 0 41

SYSTEM FUNKSJON Elementene i poduktmtisen R eegnes som elementet 8. I hve SAP enhet multiplisees elementene i en d f mtise A med elementene i en ny kolonne f mtise B i hve omgng. Tell 3-6 vise hvilke elemente i R som eegnes v hvilken SAP enhet i hvilken omgng. SAP0 SAP1 SAP2 SAP3 Omgng1 0 4 8 12 Omgng2 1 5 9 13 Omgng3 2 6 10 14 Omgng4 3 7 11 15 Tell 3-6: Elemente R som eegnes v de ulike SAP enhetene. Systemet i Figu 3-7 estå v fie univeselle SAP enhete som eide i pllell, dvs de lese f RAM smtidig, multiplisee innholdet i RAMene og kkumulee poduktene smtidig og de lge sluttpoduktene (elementene i R) smtidig. Oppygning RAM RAMene i systemet e Blokk RAM, disse e eskevet i vsnitt 2.3.2. A og B RAMene h 4 loksjone á 18it og R RAMene e 4 loksjone á 36it. Loksjonene h desse f 0-3. RAM dessekontoll RAM dessekontollen kontollee hvilke RAM desse i RAM A0-A3 og B0-B3 som leses v SAP enhetene. Adessekontollen e set på vielen i. Vedien på i vgjø hvilken desse som leses, se Tell 3-7. i Adesse 00 Adesse 0 01 Adesse 1 10 Adesse 2 11 Adesse 3 Tell 3-7: RAM desse vhengig v vielen i. 42

Omgngskontoll Omgngskontollen e en 2-4 dekode. Omgngskontollen stye skiftet mellom omgnge set på vedien til vielen j. Fo hve omgng tilknyttes hve SAP enhet en ny B RAM og en ny desse i R RAMen den e tilknyttet fo lging v det eegnede elementet, se Tell 3-8 og Tell 3-9 SAP enhet Omgng j 0 1 2 3 1 00 B0 B1 B2 B3 2 01 B1 B2 B3 B0 3 10 B2 B3 B0 B1 4 11 B3 B0 B1 B2 Tell 3-8: Snnhetstell fo omgngskontoll, tilodning v B RAM SAP enhet Omgng j 0 1 2 3 1 00 R0[0] R1[0] R2[0] R3[0] 2 01 R0[1] R1[1] R2[1] R3[1] 3 10 R0[2] R1[2] R2[2] R3[2] 4 11 R0[3] R1[3] R2[3] R3[3] Tell 3-9: Snnhetstell omgngskontoll, R RAM desse SAP enhete SAP enhetene e univeselle SAP enhete, se 3.1.3 fo eskivelse. 43

Flyt fo systemet Figu 3-10: Flytskjem fo systemet i Figu 3-7 Hve SAP enhet i Figu 3-7 e tilknyttet en A og en R RAM, Tell 3-5 vise hvilke RAMe som e tilknyttet hvilken SAP enhet. I hve omgng tilknyttes hve SAP enhet en ny B RAM. Hvilken omgng systemet e i vhenge v vedien til vielen j. Systemet egynne i omgng en og eegne elementene som vist i Tell 3-4. Nå elementene e eegnet og lget gå systemet videe til neste omgng hvo nye elemente eegnes. Dette gjents til omgng fie e gjennomføt og R e eegnet, se Figu 3-10. 44

Komment Systemet eegne poduktmtisen med univeselle SAP enhete. Univeselle SAP enhete keve lite essuse og kn ukes fo vilkålige NxN mtise, men uke N opesjone fo å eegne et element i poduktmtisen. Estimet tidsfouk fo systemet F 3.1.9 ntll steg p omgng fo et system med univeselle SAP enhete e 2N. I dette systemet e N = 4. Antll steg li d 8 p omgng. Systemet eegne poduktmtisen i løpet v fie omgnge, så totlt ntll steg fo å eegne poduktmtisen li 8*4 =32 steg. Mek Dette estimtet inkludee ikke tid som gå med til I/O 45

46

3.2.2 Tilpsset SAP Figu 3-11: System fo multipliksjon v 4x4 mtise med tilpsset SAP Systemet i Figu 3-11 eegne poduktmtisen R v to 4x4 mtise A og B som systemet i vsnitt 3.2.1. Men i dette systemet eegnes elementene i R v tilpssede SAP enhete, se vsnitt 3.1.4. Mtisene A, B og R e delt i fie de/kolonne og ogniset i RAMe som i systemet i vsnitt 3.2.1. R må som i systemet i kpittel 3.2.1 eegnes i omgnge fodi hve tilpsset SAP enhet e kn eegne et element i R v gngen. De fie SAP enhetene eegne fie elemente i en omgng. R inneholde 16 elemente og må eegnes i fie omgnge Multipliksjonene i systemet styes v omgngskontoll. Omgngskontoll stye hvilken omgng systemet efinne seg i. Fo hve omgng tilknyttes hve SAP enhet en ny B RAM og elementet SAP enheten eegne lges i en ny desse på smme måte som i vsnitt 3.2.1. Kildekoden fo systemet finnes i vedlegg B.2. 47

Funksjon fo SAP enheten Fo å vise hvodn de tilpssede SAP enhetene fungee skl vi se på hvodn SAP0 i Figu 3-12 vike. Som i systemet i 3.2.1 e hve SAP enhet fst tilknyttet en A RAM og en R RAM, se Tell 3-5 og tilknyttes en ny B RAM fo hve omgng, se Tell 3-8. SAP enhetene lese innholdet i RAMene desse fo desse. Multipliksjonslokk A desse B desse 0 A0[0] B 1 [0] 1 A0[1] B[1] 2 A0[2] B[2] 3 A0[3] B[3] Tell 3-10: Tilodning v RAM innhold i SAP0 Elementene i R eegnes på tilsvende måte som systemet i 3.2.1, men lle elementene multiplisees pllelt og poduktene legges smmen til elementet som eegnes nå multipliksjonene e uføt. Innholdet i RAM dessene multiplisees i multipliksjonslokkene og poduktene ddees v ddisjonslokkene. Addisjonene utføes i to tinn. I føste tinn ddees poduktene f multipliksjonslokk 0 og 1 og 2 og 3. I nde tinn ddees esulttene v ddisjonene i føste tinn. Resulttet v den siste ddisjonen e elementet som eegnes. Figu 3-12: SAP0 med tilknyttede RAMe 1 SAP enhetene e tilknyttet en ny B RAM i hve omgng. 48

Funksjon fo systemet Systemet inneholde fie tilpssede SAP enhete som eegne elementene i R i pllell, fie elemente p omgng. SAP enhetene lese innholdet de tilknyttede A og B RAMene, se Figu 3-12, en desse v gngen. Deette multiplisees elementene pllelt i multipliksjonslokkene fø poduktene v multipliksjonene ddees til fie elemente i R i to steg. Systemet eegne R i fie omgnge, skifte mellom omgngene styes med vielen j, se Figu 3-14. OPPBYGNING RAM RAMene i systemet e Blokk RAM, se 2.3.2. A og B RAMene h 4 loksjone 18it og R RAMene e 4 loksjone à 36it. Loksjonene h desse f 0-3. Omgngskontoll Omgngskontollen stye skifte mellom omgngene. Fo hve omgng li SAP enhetene tilknyttet en ny B RAM og en ny desse i den tilknyttede R RAMen fo lging v det eegnede R elementet. Omgngskontollen e en to til fie dekode set på vielen j, vedien på j vgjø hvilken omgng systemet efinne seg. Tilpsset SAP enhet SAP enhetene e tilpssede SAP enhete, se 3.1.4 Figu 3-13: SAP0 f systemet i Figu 3-11 49

SAP enhetene i systemet i e ygd opp som SAP0 i Figu 3-13. SAP enhetene e tilpsset multipliksjon v 4x4 mtise og estå v fie multipliksjonslokke og te ddisjonslokke, se 3.1.5 og 3.1.6. Flyt fo systemet Figu 3-14: Flytskjem fo systemet i Figu 3-11 En A RAM og en R RAM, se Tell 3-5, e tilknyttet hve SAP enhet. Fo hve omgng knyttes en ny B RAM, se Tell 3-8 til hve SAP enhet. I hve omgng lese hve SAP enhet innholdet (elementene i mtise A og B) i lle dessene i de tilknyttede A og B RAMene fø elementene multiplisees. Deette ddees poduktene v multipliksjonene i hve SAP enhet til elemente i R, se Figu 3-14. Deette lges elementene fø systemet gå til neste omgng hvo SAP enhetene tilknyttes en ny B RAM, se Tell 3-8 og fie nye elemente i R eegnes. Dette gjents til lle elementene i R e eegnet, nå omgng fie e fullføt. 50

Kommente Dette systemet eegne esulttmtisen med tilpssede SAP enhete. Tilpssede SAP enhete keve me essuse enn univeselle. SAP enhetene i dette systemet estå v fie multipliksjonslokke og te ddisjonslokke mot univeselle SAP enhete som keve en multipliksjonslokk og en kkumulto. Som systemet i 3.2.1 eegnes poduktmtisen i fie omgnge. Estimet tidsfouk F 3.1.9, en omgng fo en tilpsset SAP enhet fo 4x4 mtise estå v te steg. Totlt ntll steg fo å eegne poduktmtisen li d te steg / omgng * fie omgnge = 12 steg. Mek Dette estimtet inkludee ikke tid som gå med til I/O 51

52

3.3 Multipliksjon v 12x12 mtise. Det e lget systeme fo 12x12 mtise med univesell og tilpsset SAP. 3.3.1 Univesell SAP Figu 3-15: System fo multipliksjon v 12x12 mtise med univeselle SAP enhete Systemet i Figu 3-15 eegne poduktmtisen R ved å multiplisee 12x12 mtisene A og B. Systemet e set på systemet i vsnitt 3.2.1. Mtisene A og B lges i RAMene A0-A11 og B0-B11. Elementene i R eegnes v univeselle SAP enhete og lges i RAMene R0-R11. Ogniseingen v mtisene e eskevet i vnitt 3.1.1. Som i systemet i kpittel 3.2.1 kn hve SAP enhet e eegne et element i R v gngen. De 12 SAP enhetene i systemet eegne til smmen 12 elemente v R v gngen. Hele R, som estå v 144 elemente må defo eegnes i løpet v 12 omgnge. En omgng fo en univesell SAP enhet e eskevet i vsnitt 3.1.9. 53

Multipliksjonene styes v to kontollenhete, RAM dessekontoll og omgngskontoll. RAM dessekontoll kontollee hvilke desse som leses v SAP enhetene f RAMene A0-A11 og B0-B11. Omgngskontoll kontollee hvilken B RAM som e tilknyttet hvilken SAP enhet og i hvilken desse i R RAM elementene som e eegnet i omgngen lges, se vedlegg A. Kildekoden fo systemet finnes i vedlegg B.3 Funksjon SAP enhet SAP enhetene e univeselle SAP enhete, se 3.1.3 og fungee på smme måte som SAP enhetene i 3.2.1. Men siden mtisene som skl multiplisees h 12 elemente i d/kolonne må hvet element i poduktmtisen eegnes med 12 multipliksjone og 12 kkumulsjone. Figu 3-16: SAP0 i Figu 3-15 Fo å illustee hvodn SAP enhetene fungee skl vi se på hvodn elementet 0 i poduktmtisen eegnes. 0 eegnes v SAP0, se Figu 3-16, ved å multiplisee innholdet i RAM A0 med innholdet i RAM B0, se vedlegg A. Innholdet i RAMene multiplisees desse fo desse og delpoduktene legges smmen til 0 som lges i RAM R0 i desse 0. 0 = R0 0 11 [ ] = A0[] i B0[] i i= 0 F tell 1-1 og 1-2 vedlegg A, RAM A0 inneholde føste d i mtise A, RAM B0 føste kolonne i mtise B A0= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 B0= 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132 54

0 = 0 0 + 1 12 + 2 24 + 3 36 + 4 48 + 5 60 + 6 72 + 7 84 + 8 96 + 9 108 + 10 120 + 11 132 Funksjon fo systemet Systemet i Figu 3-15 fungee på tilsvende måte som systemet i kpittel 3.2.1, men e utvidet fo å multiplisee 12x12 mtise og eegne 12 elemente v R i hve omgng. Oppygning RAM RAMene i systemet e Blokk RAM som i systemet i kpittel 3.2.1, men A og B RAMene inneholde 12 loksjone á 18 it og R RAMene 12 loksjone à 36 it. Loksjonene h desse f 0 til 11. RAM dessekontoll RAM dessekontoll e set på vielen i. Vedien på i estemme hvilken desse i A og B RAMene som leses v SAP enhetene, se Tell 3-11. Adesse i vedi 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 Tell 3-11: RAM desse fo i-vedie Omgngskontoll Omgngskontollen e en 4-12 dekode set på vielen j. Vedien på j vgjø hvilken omgng systemet e i. Hvilken omgng systemet e i vgjø hvilke B RAMe som 55

tilknyttes hvilke SAP enhete og i hvilken desse i R RAMene elementene som eegnes i omgngen lges, se tell 1.4 og 1.7 i vedlegg A. SAP enhete SAP enhetene e univeselle SAP enhete, se 3.1.3. Flyt fo systemet Figu 3-17: Flytskjem fo systemet i Figu 3-15 Hve SAP enhet e fst tilknyttet en A Rm og en R RAM, se Figu 3-15. SAP enhetene tilknyttes en B RAMen fo hve omgng. Vielen j kontollee hvilken omgng systemet efinne seg i. I hve omgng lese SAP enhetene inn innholdet i den føste dessen f A og B RAMene som e tilknyttet i omgngen og multiplisee dem fø 56

poduktet v multipliksjonen kkumulees, se Figu 3-17. Dette gjents til innholdet i lle 12 RAM dessene e lest inn, multipliset og poduktene kkumulet til elemente i R som lges i R RAMene i dessen estemt v vedien på vielen j. Komment Dette systemet e set på systemet i 3.2.1. Men e utvidet fo å multiplisee 12x12 mtise. Systemet eegne poduktmtisen i løpet v 12 omgnge. Estimet tidsfouk F 3.1.9 en omgng fo et system med univeselle SAP enhete e på 2N steg. Med N = 12 li ntll steg p omgng lik 24. Totlt ntll steg fo å eegne esulttmtisen li 24 steg/omgng*12 omgnge = 288. Mek Dette estimtet inkludee ikke tid som gå med til I/O 57

58

3.3.2 Tilpsset SAP Figu 3-18: System fo multipliksjon v 12x12 mtise med tilpssede SAP enhete Systemet i Figu 3-18 eegne poduktmtisen R ved å multiplisee to 12x12 mtise A og B. Systemet e set på systemet i vsnitt 3.2.2, men e utvidet fo å multiplisee 12x12 mtise. Mtisene A, B og R e delt i 12 og lges på smme måte som i vsnitt 3.3.1. Systemet inneholde 12 tilpssede SAP enhete, disse e tilpsset multipliksjon v 12x12 mtise. R inneholde 144 elemente og må eegnes i 12 omgnge som i systemet i 3.3.1. Multipliksjonene styes v omgngskontoll. Omgngskontoll stye hvilken B Rm som e tilknyttet hvilken SAP enh et og i hvilken desse i R RAMen det eegnede elementet lges, se vedlegg A. Kildekoden fo systemet finnes i vedlegg B.4 59

Funksjon fo SAP enhetene Figu 3-19: SAP0 i Figu 3-18 Fo å illustee hvodn SAP enhetene i systemet i Figu 3-18 fungee skl vi se på hvodn elementet 0 i poduktmtisen eegnes. 0 eegnes v SAP0 Figu 3-19. Systemet eegne 0 på smme måte som systemet i 3.3.1, men multipliksjonene utføes pllelt fø delpoduktene legges smmen. Hve multipliksjonslokk lese innholdet i en desse f A0 og B0, se Tell 3-12. Innholdet i dessene multiplisees til 12 delpodukte som legges smmen i ddisjonslokkene til 48. 0 = 0 0 + 1 12 + 2 24 + 3 36 + 4 48 + 5 60 + 6 72 + 7 84 + 8 96 + 9 108 + 10 120 + 11 132 Addisjonene utføes v ddee i en testuktu. Multipliksjonslokk 0 1 2 3 4 5 6 7 8 9 10 11 desse A0 0 1 2 3 4 5 6 7 8 9 10 11 desse B0 0 1 2 3 4 5 6 7 8 9 10 11 Tell 3-12: Hvilken multipliksjonslokk lese hvilken RAM desse 60

Hve SAP enhet e tilknyttet te RAMe, en A RAM med en d f mtise A, en B RAM med en kolonne f mtise B, denne skiftes fo hve omgng og en R RAM fo lging v eegnede R elemente. Elementene i R eegnes på tilsvende måte som fo systemet i 3.3.1, men innholdet i lle RAM dessene leses til multipliksjonslokkene fø de multiplisees i pllell. Deette ddees poduktene til R elementet. Funksjon fo systemet Systemet eegne elementene i poduktmtisen R ved å multiplisee 12x12 mtisene A og B. R eegnes med 12 SAP enhete tilpsset multipliksjon v 12x12 mtise. Systemet inneholde 12 SAP enhete som hve e fst tilknyttet en A RAM, som inneholde en d f mtise A, og en R RAM hvo elementene som eegnes v SAP enheten lges. Poduktmtisen R estå v 144 elemente (12x12), systemet kn eegne en d (12 elemente) v R i hve omgng. Dette medføe t R må eegnes i 12 omgnge. Systemet skifte hvilken B RAM som e tilknyttet hvilken SAP enhet vhengig v vedien fo vielen j, se vedlegg A. Oppygning RAM RAMene e Blokk RAM, se 2.3.2, som i systemet i 3.2.1, men A og B RAMene inneholde 12 loksjone 18 it og R RAMene 12 loksjone à 36 it. Loksjonene e desset f 0-11 SAP enhete SAP enhetene e tilpssede SAP enhete, se kpittel 3.1 Tilpsset SAP enhet og 3.3.2 Tilpsset SAP enhet, se Figu 3-19. Omgngskontoll Omgngskontollen e set på vielen j. vedien på j vgjø hvilken omgng systemet efinne seg i og hvilken desse i R RAMene R elementet eegnet i omgngen lges i. Resulttelementene lges i 12 RAMe à 12x36it. Tell 3.14 vise hvodn elementene ognisees i RAMene. Tilpsset SAP enhet SAP enhetene e tilpssede SAP enhete, se 3.1.4. SAP enhetene e ygd opp som vist i Figu 3-20. Blokkene M0-M11 e 18it multipliksjonslokke, se og lokkene A0-A10 e 36 its ddisjonslokke, se 3.1.6. 61

Figu 3-20: Tilpsset SAP enhet fo multipliksjon v 12x12 mtise. SAP enhetene i systemet i e ygd opp som SAP0 i Figu 3-18 SAP enhetene e tilpsset multipliksjon v 12x12 mtise og estå v 12 multipliksjonslokke og 11 ddisjonslokke, se Figu 3-20. 62

Flyt fo systemet Figu 3-21: Flytskjem fo systemet i Figu 3-18. I hve omgng lese enhetene innholdet i dessene i A og B RAMene til multipliksjonslokkene. Innholdet i føste desse leses v føste multipliksjonslokk, innholdet i nde desse v nde lokk osv. Innholdet i RAMene multiplisees til delpodukte i multipliksjonslokkene fø de legges smmen til elementet i R som eegnes v enheten i ddisjonslokkene. Resulttet v ddisjonene, poduktelementet lges i den tilknyttede R RAMen i desse smsvende med omgngen systemet efinne seg i, se Figu 3-21. Dette gjents til lle elementene i poduktmtisen e eegnet. Kommente Dette systemet eegne esulttmtisen med tilpssede SAP enhete. Poduktmtisen eegnes i løpet v 12 omgnge som fo systemet i 3.3.1. Estimet tidsfouk En omgng fo SAP enhete tilpsset 12x12 mtise inneholde fem steg, se 3.1.9. Totlt ntll steg fo å eegne poduktmtisen li d: fem steg/omgng*12 omgnge = 60 steg. Mek Dette estimtet inkludee ikke tid som gå med til I/O 63

64

4 RESULTATER Systemene i kpittel 3 e lget fo en XC2V6000 FPGA. Det e kun foettt test v funksjon og om systemene få plss på FPGAen. Gunnet tidsnød i slutten v posjektet og poleme med pogmve e I/O fo systemene ikke implementet og testet. Systemene helle ikke testet mot mikoposesso som kjøe et C pogm fo multip liksjon v mtise. Resulttene som pesentees he e fouk v essuse i FPGAen mot totle tilgjengelige essuse. F 2.3 essuse i XC2V6000 FPGA LUT Vippe Block RAM 67584 stk 67584 stk 2654208 it Multipliksjonslokke 144 stk Mx hstighet 2 180 MHz I kpittel 4.1 pesentees esulttene fo systemene i kpittel 3.2. Og i 4.2 pesentees esulttene fo systemene i 3.3. Resulttene diskutees i kpittel 4.3. Mek Fouket v essuse fo systemene e svæt lvt og det ts foehold om t dele v systemene e litt ote unde kompileing. Mek Det eegnede tidsfouket inkludee ikke tidsfouk til I/O. I/O vil tolig keve me tid enn selve eegningen v elementene i poduktmtisen. Men d I/O ikke e implementet og testet e tidsfouk til I/O ikke ttt med i estimet tidsfouk. 4.1 Resultte fo systeme fo multipliksjon v 4x4 mtise Ressusfouket fo systemene i 3.2 pesentees i Tell 4-1 LUT vippe fosinkelse(ns) RAM(it) 4x4 univesell SAP 19 52 8.53 1152 4x4 tilpsset SAP 31 181 10.91 1152 Tell 4-1: Fouk fo 4x4 systemene 2 Gjelde multipliksjonslokke i XC2V6000-4 (speed gde 4) 22. Xilinx, High-Speed Dt Seiliztion nd Deseiliztion (840 M/s LVDS), N. Swye, Edito. 2002. 65

Tidsfouk Wost Cse" tidsfouk fo 4x4 systemene kn estimees ved å uke fosinkelsene i Tell 4-1 (disse e mksiml fosinkelse i systemet) og ntll steg som tengs fo å eegne poduktmtisen fo systemene. Fo univesell SAP 32 steg og tilpsset SAP 12 steg. Tidsfouk fo univesell SAP li d 32*8.53 ns = 272.6 ns og fo tilpsset SAP 12*10.91 ns = 130.1 ns. wost cse tidsfouk 300 272,6 250 200 ns 150 130,1 100 50 0 4x4 univesell 4x4 tilpsset Figu 4-1:Wost cse tidsfouk fo 4x4 systemene 66

LUT fouk LUT fouk 35 31 30 25 ntll LUT 20 15 19 10 5 0 4x4 univesell 4x4 tilpsset Figu 4-2:LUT fouk fo systemene i kpittel 3.2 Systemet med univeselle SAP enhete uke 0,03 % og systemet med tilpssede SAP enhete0,045 % v totlt ntll LUT i FPGAen. 67

Vippefouk Vippefouk 200 180 181 160 140 ntll vippe 120 100 80 60 52 40 20 0 4x4 univesell 4x4 tilpsset Figu 4-3:Vippe fouk fo systemene i kpittel 3.2 Systemet med univeselle SAP enhete uke 0,076 % og systemet med tilpssede SAP enhete 0,3 % v totlt ntll vippe i FPGAen. 68

Fouk v multipliksjonslokke Fouk v multipliksjonsenhete 18 16 16 ntll multipliksjonsenhete 14 12 10 8 6 4 4 2 0 4x4 univesell 4x4 tilpsset Figu 4-4: Fouk v multipliksjonslokke fo systemene i kpittel 3.2 Systemet med univeselle SAP enhete uke 2,8 % og systemet med tilpssede SAP enhete 11 % v totlt ntll multipliksjonslokke i FPGAen. 69

Mksiml opesjonsfekvens Mksiml opesjonsfekvens 140 120 117,2 100 91,7 80 MHz 60 40 20 0 4x4 univesell 4x4 tilpsset Figu 4-5:Mksiml opesjonsfekvens fo systemene i 3.2 Disse opesjonsfekvensene e innenfo mksiml ytelse fo multipliksjonsenhetene i FPGAen [23]. 70

4.2 Resultte fo systeme fo multipliksjon v 12x12 mtise. LUT vippe dely (ns) RAM (it) 12x12 univesell 80 88 28,91 10368 12x12 tilpsset 170 690 50,29 10368 Tell 4-2: Fouk fo 12x12 systemene Tidsfouk Wost Cse tidsfouk fo 12x12 systemene kn estimees ved å uke fosinkelsene i Tell 4-2 (mksimle fosinkelse i systemene) og ntll steg som tengs fo å eegne poduktmtisen fo systemene f vsnitt 3.3.1 og 3.3.2. Antll steg fo univesell SAP 288 steg og fo tilpsset SAP 60 steg. Tidsfouk fo univesell SAP li d 288*28,91 ns = 8323,2 ns (8,32 µs) og fo tilpsset SAP 60*50,29 ns = 3017.4 ns (3.02 µs). Wost cse tidsfouk 9 8,3232 8 7 6 5 µs 4 3 3,0174 2 1 0 12x12 univesell 12x12 tilpsset Figu 4-6: Wost cse tidsfouk fo 12x12 systemene 71

LUT fouk LUT fouk 180 170 160 140 120 ntll LUT 100 80 80 60 40 20 0 12x12 univesell 12x12 tilpsset Figu 4-7: LUT fouk fo systemene i kpittel 3.3 Systemet med univeselle SAP enhete uke 0,11 % og systemet med tilpssede SAP enhete 0,25 % v totlt ntll LUT i FPGAen. 72

Vippe fouk Vippe fouk 800 700 690 600 500 ntll vippe 400 300 200 100 88 0 12x12 univesell 12x12 tilpsset Figu 4-8:Vippe fouk fo systemene i kpittel 3.3 Systemet med univeselle SAP enhete uke 0,13 % og systemet med tilpssede SAP enhete 1 % v totlt ntll vippe i FPGAen. 73

Fouk v multipliksjonslokke Fouk v multipliksjonsenhete 800 700 690 ntll multipliksjonsenhete 600 500 400 300 200 100 88 0 12x12 univesell 12x12 tilpsset Figu 4-9: Fouk v multipliksjonslokke fo systemene i kpittel 3.3 Systemet med univeselle SAP enhete uke 8,3 % og systemet med tilpssede SAP enhete 100 % v totlt ntll multipliksjonslokke i FPGAen. 74

Mksiml opesjonsfekvens Mksiml opesjonsfekvens 40 35 34,6 30 25 z MH 20 19,9 15 10 5 0 12x12 univesell 12x12 tilpsset Figu 4-10: Mksiml opesjonsfekvens fo systemene i 3.3. 75

76

4.3 Diskusjon Systemene i kpittel 3 e konstuet fo multipliksjon v NxN mtise med støelse 4x4 og 12x12. I systemene e det enyttet to metode fo å eegne elementene i poduktmtisen, univesell og tilpsset SAP. Som emeket i egynnelsen v kpittel 4 e esulttene fo systemene i kpittel 3 pesentet med ll mulig foehold om t dele v systemene e flt ot unde kompilsjon og t tidsfouk fo I/O ikke e ttt med i det estimete tidsfouket. Det må og emekes t en omgng fo Systemet fo multipliksjon v 4x4 mtise med univeselle SAP enhete uke lite v essusene i FPGAen. Av LUT og vippe ukes 0,028 og 0,077 %, v intene multipliksjonslokke 2,78 % og 0,043 % v Blokk RAM. Systemet oppnå en mksiml opesjonsfekvens på 117,2 MHz og estimet tidsfouk fo å eegne poduktmtisen på 272,6 ns. Smmenliknes esulttene fo systemet med esulttene fo systemene i [11] og [12] fo multipliksjon v 4x4 mtise oppnå dette systemet høyee opesjonsfekvens enn systemet [12], men lvee enn systemet i [11]. Disse systemene oppnå opesjonsfekvense på 60 og 166.5 MHz. At systemet oppnå høyee opesjonsfekvens enn systemet i [12] e tolig gunnet uk v nyee FPGA og intene multipliksjonslokke. At systemet oppnå lvee opesjonsfekvens enn systemet i [11] kn tilskives flee fktoe, systemet multiplisee mtise med støe itedde p element (8 Vs 18 it elemente)og t systemet e skevet i Händel C og defo tolig kn optimlisees ved konveteing til VHDL elle liknende. Systemet fo multipliksjon v 4x4 mtise med tilpssede SAP enhete uke noe me v essusene i FPGAen enn systemet som uke univeselle SAP enhete, men uke 0,046 % v LUT i FPGAen og 0,27 % v vippe, 11,1 % intene multipliksjonslokke og 0,043 % v Blokk RAM. Systemet oppnå en mksiml opesjonsfekvens på 91,7MHz og estimet tidsfouk fo å eegne poduktmtisen e 130,1 ns. Om systemet smmenliknes med systemet fo multipliksjon v 4x4 mtise med univeselle SAP enhete uke dette systemet 4 gnge så mnge intene multipliksjonslokke, men eegne poduktmtisen med 20 fæe steg. Smmenliknes systemet med systemene i [11] og [12] oppnå systemet i likhet med systemet med univeselle SAP enhete høyee opesjonsfekvens enn systemet i [12] og 77

lvee enn systemet i [11]. Gunnene til dette e de smme som fo systemet med univeselle SAP enhete d egge systemene e lget fo smme FPGA i smme vektøy (DK 3.1). Tidsfouket fo systemene e ikke smmenliknet med systemene i [11] og [12] fodi detlje om tidsfouket ikke e oppgitt fo disse systemene. Systemet fo multipliksjon v 12x12 mtise med univeselle SAP enhete uke som systemene fo multipliksjon v 4x4 mtise lite v essusene i FPGAen. Av LUTe ukes 0,12 % og v vippe ukes 0,13 %, multipliksjonsenhetene 8,3 % og 0,39 % v Blokk RAM. Systemet oppnå en mksiml opesjonsfekvens på 34,6MHz og estimet tidsfouk fo å eegne poduktmtisen e 8,3 µs. Om systemet smmenliknes med systemet i [14] fo multipliksjon v 12x12 mtise oppnås lvee opesjonsfekvens (34,6 mot 74 MHz). Estimet tidsfouk fo systemet e lvee enn fo systemet i [14] (307,2 µs mot 8,3 µs). Fouk v LUT e også lvee (80 mot 223). Systemet fo multipliksjon v 12x12 mtise med tilpssede SAP enhete uke me v essusene i FPGAen enn systemet med univeselle SAP enhete. Systemet uke 0,25 % v LUT, 1,02 % v vippe, 100 % v intene multipliksjonslokke og 0,39 % v Blokk RAM. Systemet oppnå en opesjonsfekvens på 19,9 MHz og estimet tidsfouk fo å eegne poduktmtisen e 3,02 µs. Om systemet smmenliknes med systemet fo multipliksjon v 12x12 mtise med univeselle SAP enhete uke dette systemet 12 gnge flee intene multipliksjonslokke, men eegne poduktmtisen med 228 fæe steg. Om systemet smmenliknes med systemet i [14] oppnå det lvee opesjonsfekvens (19,9 mot 74MHz), men estimet tidsfouk e lvee enn fo systemet i [14] (307,2 µ s mot 3,02 µs). Fouket v LUT e også lvee (170 mot 223). Opesjonsfekvensene fo lle systemene i kpittel 3 smsve med [23] hvo de intene multipliksjonsenhetene i en Vitex-II XC2V6000-4 (speed gde 4) oppnå en mksiml opesjonsfekvens på 180 MHz fo 18x18 it multipliksjon med mksiml "pipelining". Fouket v essuse i FPGAen e fo lle systemene lvt, på det meste 1 og 4 % fo LUT og vippe. Systemene uke lite v den tilgjengelige Blokk RAMen i FPGAen 0,4 og 4 fo 4x4 og 12x12 systemene. Men det må igjen emekes t essusfouket i systemene kn væe så lvt som det e på gunn v t dele v systemene kn h flt ot unde kompilsjon og t det estimete 78

tidsfouket fo systemene ikke inkludee tidsfouk fo I/O. Det fktiske tidsfouket vil snnsynligvis væe høyee. En gunn til t opesjonsfekvensene e i den støelsesoden de e kn væe t systemene e lget med Händel C. I [15] smmenliknes to like systeme fo mtisemultipliksjon, et lget i Händel C og et lget i VHDL. Systemet lget i VHDL h omlg 15 gnge høyee opesjonsfekvens (182MHz mot 12.6 MHz) enn systemet lget i Händel C. Det må emekes t systemet i [15] e lget i en tidlig utgve v Händel C, mens systemene i denne ppoten e lget i nest siste utgve v Händel C. Men uken v Händel C nts å h htt innvikning på ytelsen fo systemene. 79

80

5 VIDERE ARBEID Aeidet med uk v FPGA til mtisemultipliksjon e fo min del vsluttet, men lngt f fedig. I dette kpittelet skissees noen mulige utvidelse og foedinge v systemene i kpittel 3. Jeg vil femheve t dette på ingen måte e en komplett liste ove de foedinge som e mulige, men håpe de gi en ovesikt ove mulige utvidelse og foedinge. Det føste som ø gjøes e å implementee en effektiv I/O løsning, dette e ikke gjot pg tidsnød i vslutningen v oppgven og poleme med pogmven som e ukt. Med I/O løsningen på plss kn tidsfouket fo mtisemultipliksjonen måles og smmenliknes med tidsfouket fo mtisemultipliksjon v mtise med smme støelse i en mikoposesso. 5.1 Foslg til utvidelse og foedinge VHDL Fo å kunne optimlisee ytelsen fo systemene e det ønskelig å konvetee dem til VHDL. En slik konveteing vil gi støe kontoll ove systemets oppygning og støe mulighete til å justee systemets ytelse. Ulempen med å konvetee systemene til VHDL e t fokuset flyttes f oveodnet nivå (dtflyt og multipliksjonsopesjonen) til konsekvense v endinge gjot på lvt (pot) nivå i FPGAen. Bytte ut RAM med egiste i systemene med tilpsset SAP Systemene med tilpsset SAP lese inn lle elementene i d/kolonne som skl multiplisees fø elementene multiplisees. Nå RAM ukes må elementene i d/kolonne leses et og et inn i SAP enhetene. Om RAM yttes ut med egiste hvo elle elementene kn leses smtidig som vist i Figu 2-1 kn tidsfouket fo innlesing v elementene edusees. 81

Figu 5-1:System fo multipliksjon v 4x4 mtise med tilpssede SAP enhete hvo RAM e yttet ut med egiste Om elementene lges i egiste kn lle elementene leses inn smtidig istedenfo å lese elementene et og et Flyttll Flyttlsmultipliksjon v mtise e en gunnleggende opesjon i mnge vitenskplige klkulsjone [15]. Å konvetee systemene til å kunne multiplisee mtise med flyttllselemente vil medføe t elementene må lges på en nnen måte, de vil keve me plss p element og SAP enhetene må endes fo å håndtee flyttll. Utvidelse v system fo multipliksjon v 4x4 mtise med tilpssede SAP enhete Systemet fo multipliksjon v 4x4 mtise med tilpssede SAP enhete i kpittel 3.2.2 kn utvides f fie SAP enhete til 16, se Figu 5-2. Systemet vil d inneholde en SAP enhet p element i poduktmtisen og denne kn eegnes i løpet v en omgng. 82

Figu 5-2: Mulig utvidelse v system fo multipliksjon v 4x4 mtise Effektiv I/O li vgjøende fo om systemet kn ukes effektivt. Buk v LVDS elle PCI-X I/O som skisset i vsnitt 3.1.8 ø kunne oppnå høy nok oveføingste til t I/O ikke li en fo sto flskehls i systemet. Å implementee multipliksjon v NxN mtise på denne måten vil keve mye essuse. Hve SAP enhet inneholde N intene multipliksjonslokke og systemet inneholde N 2 SAP enhete. Totlt vil systemet inneholde N 3 intene multipliksjonslokke. Systemet vil også keve 2N RAMe som hve inneholde N loksjone fo mtisene som skl multiplisees og N 2 RAMe som hve inneholde 2N loksjone fo poduktmtisen. Utvidelse v system fo multipliksjon v 12x12 mtise med univeselle SAP enhete Systemet fo multipliksjon v 12x12 mtise med univeselle SAP enhete kn utvides på smme måte som det foeslåtte systemet i Figu 5-2 til å eegne poduktmtisen i løpet v en omgng. Systemet vil inneholde en univesell SAP enhet p element i poduktmtisen. 83

Figu 5-3: Mulig utvidelse v system fo multipliksjon v 12x12 mtise med univeselle SAP enhete Å implementee multipliksjon v 12x12 mtise på denne måten enytte lle de intene multipliksjonsenhetene i FPGAen. Fo lging v mtisene som skl multiplisees og poduktmtisen tengs det som fo systemet i Figu 5-2 2N + N 2 RAMe. Med N=12 vil systemet tenge 24+144 RAMe hve med 144 loksjone. FPGAen inneholde 144 18Kit RAMe, hve RAM h to pote Utvidelse fo å kunne multiplisee 144x144 mtise Systemet fo 12x12 mtise med univeselle SAP enhete kn utvides til å multiplisee 144x144 mtise. Denne mtisestøelsen e den støste som kn ehndles i FPGAen og smtidig h egge mtisene som skl multiplisees i FPGAen. Poduktmtisen vil d måtte eegnes i løpet v 144 omgnge tilsvende som fo systemene med univeselle SAP enhete i vsnitt 3.2.1 og 3.3.1. Hve omgng vil inneholde 144 multipliksjone og 144 kkumulsjone til smmen 288 opesjone (steg). 84

Utvidelse fo å kunne multiplisee NxN mtise med N>144 Mtisene som skl multiplisees deles opp i de og kolonne som i systemene i kpittel 3. Poduktmtisen deles opp i undemtise og eegnes en undemtise v gngen. Fo å eegne en undemtise lstes de dene og kolonnene som tengs fo å eegne denne inn i FPGAen. 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 0 4 8 12 1 5 9 13 2 6 10 14 3 0 7 = 4 11 8 15 12 1 5 9 13 2 6 10 14 3 7 11 15 Figu 5-4: Inndeling v poduktmtise i undemtise Metoden e skisset i Figu 5-4. Fo å eegne elementene i undemtisen som estå v elementene 0, 1, 4, 5 tengs dene 0,1, 2, 3 og 4, 5, 6, 7 og kolonnene 0,4,8, 12 og 1,5, 8, 13. Mtise med nde støelse kn deles opp på tilsvende måte og elementene i undemtisene eegnes v de tilhøende de/kolonne. Fo å kunne lge et slikt system tengs meknisme fo innlesning v de/kolonne til RAM og utlesning v eegnede poduktelemente i tillegg til den delen som foestå selve eegningen v elementene i poduktmtisen. I Figu 5-5 e et slikt system skisset. Systemet e set på univeselle SAP enhete, d uk v tilpsset SAP vil medføe t de/kolonne må deles opp fo å eegne poduktelementene, dette fodi tilpssede SAP enhete inneholde en multipliksjonslokk p element i d/kolonne. Inn- og utlesing v de/kolonne og elementene i poduktmtisene gjøes med d/kolonne innlesing og poduktelement utlesing. Kontoll v inn-/utlesing gjøes med inn-/utlesingskontoll. 85

Figu 5-5:Mulig system fo multipliksjon v NxN mtise med N>144 86