Show simple item record

dc.contributor.advisorSjälander, Magnus
dc.contributor.authorMonsen, Kristoffer Venæs
dc.date.accessioned2020-02-19T15:00:30Z
dc.date.available2020-02-19T15:00:30Z
dc.date.issued2019
dc.identifier.urihttp://hdl.handle.net/11250/2642681
dc.description.abstractI denne masteroppgaven beskriver vi implementasjonen av et datasystem som baserer seg på RISC-V instruksjonssettet. Ved å gjenbruke eksisterende maskinvaremoduler fra Cobham Gaislers åpent tilgjengelige GRLIB IP core library og dets eksempeldatasystemer, klarer vi å konstruere en plattform med den eksisterende PicoRV RISC-V prosessoren, implementert på en FPGA på en Xilinx ZC702 utviklingsplattform. GRLIB er egentlig ment for SPARC V8 instruksjonssettet, som skaper noen utfordringer. Vi viser hvordan man løser hovedutfordringene på datamaskinarkitektursiden, spesifikt oppkobling mot systembussen, håndtering av systemvarsler ("interrupts"), og hvordan man korrekt håndterer variasjon i hvordan data lagres i hovedminnet ("endianness"). Vi viser også hvordan man kan teste og verifisere systemet under utvikling, og når man skal teste den endelige versjonen når alt kjører. For å vise hva datasystemet kan gjøre, har vi utviklet systemprogramvare for prosessoren basert på eksisterende verk. Programvaren kan initialisere GRLIB moduler i systemet, og kommunisere med brukeren gjennom systemets UART modul. For at en bruker skal kunne kommunisere med systemet, har vi også utviklet en JTAG applikasjon, som bruker utviklingsplattformens JTAG søkekjede for å kunne kommunisere med RISC-V systemet. Til slutt diskuterer vi mangler og forbedringer som kan gjøres i prosessen vår. Man bør tenkte grundig gjennom verifiseringsprosessen og dens metoder, da mangler på dette fører til en utviklingsprosess som skalerer dårlig med økt kompleksitet i maskinvaren man skaper. Dette er enda viktigere siden mengden åpne og offentlig tilgjengelige maskinvareutviklingsapplikasjoner er ganske liten, som fører til ekstra utfordringer i utviklingsprosessen. Vi tror at mengden applikasjoner vil forbedre seg over tid, nå som åpen og allmenn tilgjengelig maskinvare blir stadig mer aktuelt.
dc.description.abstractIn this thesis, we detail the implementation of a RISC-V ISA centered computing system. By reusing existing IP cores in Cobham Gaisler’s open-source GRLIB IP core library and its sample board designs, we successfully construct a computing platform with the existing PicoRV RISC-V processor, implemented on an FPGA on the Xilinx ZC702 development kit. The GRLIB IP core library is originally intended for the SPARC V8 ISA. which creates some architectural challenges. We show how to solve the main architectural issues, namely system bus interfacing, interrupt handling, and mixed-endian hardware. We also show how to verify and test the system during development, and during final prototyping. To drive the computing system, we have derived firmware for the target processor based on existing works. The firmware can initialize GRLIB IP peripherals on the system, and communicate with the user through the system’s UART module. For a user to communicate with the system, we develop a JTAG application, which uses the ZC702’s JTAG scan-chain in order to communicate with the RISC-V system. Finally, we discuss the shortcomings we identified in the process. Great care must be taken when designing the verification process and corresponding verification methods, as failing to do so will scale poorly as the design complexity increases. This is especially true when the open-source hardware development software situation is found to be rather lacking, which posed challenges in our development process. We believe that this tooling issue will improve over time, as we see a growing interest in open-source hardware.
dc.languageeng
dc.publisherNTNU
dc.titleChallenges and solutions in creating a RISC-V computing platform
dc.typeMaster thesis


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record