dc.contributor.advisor | Själander, Magnus | |
dc.contributor.author | Monsen, Kristoffer Venæs | |
dc.date.accessioned | 2020-02-19T15:00:30Z | |
dc.date.available | 2020-02-19T15:00:30Z | |
dc.date.issued | 2019 | |
dc.identifier.uri | http://hdl.handle.net/11250/2642681 | |
dc.description.abstract | I 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.abstract | In 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.language | eng | |
dc.publisher | NTNU | |
dc.title | Challenges and solutions in creating a RISC-V computing platform | |
dc.type | Master thesis | |