Creation of a software programmable hardware interface
Abstract
Gjennom arbeidet med denne oppgaven ble det laget to forskjellige maskinvaredesign. Den første var en konfigurerbar komponent som implementerteb˚ade UART, SPI og I2C. Denne ble laget for ˚a finne ut hvorvidt dette kunneha noen fordeler over ˚a bruke separate komponenter, med fokus p˚a størrelse,strømforbruk og pin-bruk. Det foresl˚atte designet har en liten forbedring iestimert strømforbruk fra Vivado-rapporter, men størrelsen er litt større ennsummen av tre separate komponenter. I tillegg gjør begrensninger i designetat kun I2C er støttet i sin helhet. B˚ade UART og SPI har begrensninger somikke finnes i de alternative, separate komponentene. Basert p˚a dette, samt littujevne m˚alinger (I/O-busskommunikasjon var ikke inkludert i rapportene omden konfigurerbare komponenten), konkluderer forfatteren med at eventuellefordeler med dette spesifike designet ikke er nok til ˚a kalle dette en forbedringfra ˚a bruke separate komponenter.Det andre designet er GenIE, eller Generic Interface Engine. Dette er en fulltprogrammerbar grensesnitt-kontroller som kan implementere vilk˚arlige grensesnitt ved ˚a omprogrammeres. GenIE er implementert som en ASIP, applicationspecific instruction set-prosessor. Den ble laget for ˚a finne ut hvorvidt en programmerbar komponent hadde noen videre fordeler kontra den konfigurerbarekomponenten. Med hensyn til fokusomr˚adene for evalueringen av den konfigurerbare komponenten ble det ikke funnet noe definitivt svar. Dette i hovedsakfordi GenIE er avhengig av eksternt minne, som ikke ble regnet med i omfangetav denne oppgaven. Likevel er GenIEs økte fleksibilitet, med mulighetene til˚a implementere forskjellige grensesnitt ved ˚a endre programmeringen, en fordelover mer l˚aste komponenter, da dette muliggjør bruk av grensesnitt som ikkeopprinnelig er støttet av systemet. During the work with this thesis, two separate hardware designs were created.The first, a configurable component implementing both UART, SPI and I2C,was created to see whether this would gain any advantage over separate components in core size, power usage or pin usage. The suggested design does gaina small improvement in estimated power usage from Vivado reports, howeverthe core size is in fact a bit larger than three separate components combined.In addition, limitations of the design means that I2C is the only interface fullysupported, with both UART and SPI having limitations not present in the alternative, separate cores. With this taken into account, as well as somewhatuneven measurement grounds (I/O bus communications were not included inthe configurable core reports), the author concludes that any advantage of thisspecific design is not enough to call this an improvement over using separatecomponents.The second hardware design is the GenIE, or generic interface engine, a fullyprogrammable interface controller able to implement arbitrary interfaces by reprogramming. The GenIE is implemented as an ASIP, or application specific instruction set processor. This was created to see whether or not a programmablecomponent could gain any further advantages over the configurable component.With regards to the metrics focused on for the configurable component, nodefinitive answer was arrived at. This was mainly because the programmablecore uses an external memory, which was not considered in the scope of thisthesis. However, the increased flexibility of the GenIE, with the ability to implement different interfaces by changing its program, is an advantage over morefixed components, as this makes it possible to use interface not originally available on the system.