Challenges and solutions in creating a RISC-V computing platform
Master thesis
Permanent lenke
http://hdl.handle.net/11250/2642681Utgivelsesdato
2019Metadata
Vis full innførselSamlinger
Sammendrag
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. In this thesis, we detail the implementation of a RISC-V ISA centered computingsystem. By reusing existing IP cores in Cobham Gaisler’s open-source GRLIB IP corelibrary and its sample board designs, we successfully construct a computing platform withthe existing PicoRV RISC-V processor, implemented on an FPGA on the Xilinx ZC702development kit.
The GRLIB IP core library is originally intended for the SPARC V8 ISA. which createssome architectural challenges. We show how to solve the main architectural issues, namelysystem bus interfacing, interrupt handling, and mixed-endian hardware. We also show howto verify and test the system during development, and during final prototyping. To drivethe computing system, we have derived firmware for the target processor based on existingworks. The firmware can initialize GRLIB IP peripherals on the system, and communicatewith the user through the system’s UART module. For a user to communicate with thesystem, we develop a JTAG application, which uses the ZC702’s JTAG scan-chain in orderto communicate with the RISC-V system.
Finally, we discuss the shortcomings we identified in the process. Great care must betaken when designing the verification process and corresponding verification methods, asfailing to do so will scale poorly as the design complexity increases. This is especiallytrue when the open-source hardware development software situation is found to be ratherlacking, which posed challenges in our development process. We believe that this toolingissue will improve over time, as we see a growing interest in open-source hardware.