Analyse, dekomponering og rekonstruksjon av FPGA-konfigurasjoner for AHEAD: Ambient Hardware, Embedded Architectures on Demand
Abstract
Utvikling av maskinvare for (re)programmerbar mikroelektronikk har tradisjonelt vært basert på bruk av proprietære DAK-verktøy på alle abstraksjonsnivå. Den tradisjonelle designflyten forutsetter at alle utviklingsaktivitetene er unnagjort pre-kjøretid, og at ferdiggenererte, udelelige konfigurasjonsfiler brukes for å konfigurere brikkene. De fleste systemer som benytter FPGA-teknologi i dag har derfor et begrenset utvalg forhåndsgenererte konfigurasjoner å velge mellom for å løse en oppgave. I det siste har en del publikasjoner beskrevet systemer som åpner for sammensetting av FPGA-konfigurasjoner i kjøretid. Manipulasjonen av konfigurasjonsfilene foregår her uavhengig av verktøyene fra brikkeleverandøren, noe som bryter med den tradisjonelle designflyten. Ved å splitte opp konfigurasjoner i mindre fragmenter ( kjerner eller cores ), og gjøre det mulig for brukeren å definere hvordan en konfigurasjon skal settes sammen, kan fleksibiliteten til FPGA-baserte systemer økes. Denne masteroppgaven tar for seg en sett med problemstillinger i forbindelse med analyse, oppsplitting, manipulasjon og sammenføying av konfigurasjonsfiler for en brikke fra FPGA-familien Xilinx Spartan-3. Et verktøy med navnet BITAnalyse har blitt utviklet for å understøtte en ny designflyt som støtter analyse og generering av brukerdefinerte FPGA-konfigurasjoner. BITAnalyse fremstiller innholdet i en konfigurasjonsfil som en todimensjonal matrise med bits. For å manipulere innholdet i denne foreslås en metodikk basert på bruk av enkle bildebehandlingsverktøy. Ved å kombinere funksjonalitet fra BITAnalyse med detaljerte føringer for hvordan en kjerne skal implementeres, blir det vist hvordan funksjonelle kjerner i en bitstrøm kan byttes ut uavhengig av proprietære DAK-verktøy. Det blir også demonstrert hvordan en en strukturert kommunikasjonstopologi kan understøtte sammenføyingen av slike kjerner. Bruk av en spesiell type brikkenettverk, som har fått navnet Network of Cores (NoCo), blir drøftet nærmere i denne sammenhengen.