Mikroprosessorin suunnittelu ja toteutus FPGA:lle
Isola, Matti (2015-12-02)
Isola, Matti
M. Isola
02.12.2015
© 2015 Matti Isola. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-201512052257
https://urn.fi/URN:NBN:fi:oulu-201512052257
Tiivistelmä
Tässä työssä suunnitellaan yleiskäyttöinen mikroprosessori, joka toteutetaan FPGA:lle VHDL:llä. Nykyään on FPGA-piireille alkanut saada yhä enemmän niin kutsuttuja ”softcore”-prosessoreita. Tarkoitus on tutkia mitä tällaisen prosessorin suunnittelu alusta asti vaatii. Suunnittelun päätavoitteena on toteuttaa prosessorin arkkitehtuuri niin, että sitä on helppo muokata jälkikäteen. Tämä mahdollistaa, että prosessoria on nopea muokata sopimaan erilaisiin tehtäviin. Se on myös suunnittelun tärkein vaatimus.
Prosessorin ensimmäinen versio suunnitellaan piirikaaviopohjaisella Logisim-simulaattorilla, jossa sitä on hyvä hahmotella ennen VHDL:llä tapahtuvaa lopullista toteutusta. Prosessoriin suunnitellaan ja toteutetaan VHDL:llä lisäksi PS/2-portti näppäimistöä varten sekä VGA-näytönohjain tekstin tulostamiseksi näytölle. Prosessorin testaamista varten suunnitellaan ja toteutetaan kontrolliohjelma, joka sisältää komentotulkin ja 18 suoritettavaa käskyä (ohjelmaa). Kontrolliohjelman ohjelmointia varten toteutetaan Python-ohjelmointikielellä assembler-kääntäjä.
Tässä työssä tutustutaan myös avoimen lähdekoodin FPGA-laitteistosuunnitteluun keskittyvän OpenCores-sivuston prosessoritarjontaan. Tarkoitus on vertailla suunniteltua prosessoria sivuston prosessoreihin sekä miettiä hieman prosessorin jatkokehittelymahdollisuuksia. Pääpaino tässä työssä on kuitenkin prosessorin suunnittelussa ja toteutuksessa, jota tullaan käymään läpi erittäin tarkasti. Suunniteltuun prosessoriin on myös mahdollista tutustua osoitteessa: http://www.saunalahti.fi/~matisol/CPU/. The purpose of this Master’s thesis is to design and implement a general-purpose microprocessor in VHDL on FPGA. Nowadays, there are so called “softcore” microprocessors available for FPGAs. This thesis investigates how to design a softcore processor from scratch. The main goal is to design the processor architecture to be easily modified afterwards. This allows quick customizing of the processor for various tasks. That is also the most important design requirement.
The first version of the processor is designed in Logisim circuit simulator which provides a working prototype before final implementation in VHDL. Other hardware designed and implemented in VHDL are a PS/2 port for keyboard and a VGA controller for displaying text on a screen. To test the processor a control program is implemented which includes a command prompt and 18 executable commands (programs). A Python-based assembler is also implemented to compile the control program.
This thesis also investigates open source FPGA hardware development community OpenCores.org. The aim is to compare the implemented processor to other processors found from OpenCores and to think about some further development opportunities. The main focus however is in the processor design and implementation which is explained carefully in detail. Additionally, the designed processor can also be found at: http://www.saunalahti.fi/~matisol/CPU/.
Prosessorin ensimmäinen versio suunnitellaan piirikaaviopohjaisella Logisim-simulaattorilla, jossa sitä on hyvä hahmotella ennen VHDL:llä tapahtuvaa lopullista toteutusta. Prosessoriin suunnitellaan ja toteutetaan VHDL:llä lisäksi PS/2-portti näppäimistöä varten sekä VGA-näytönohjain tekstin tulostamiseksi näytölle. Prosessorin testaamista varten suunnitellaan ja toteutetaan kontrolliohjelma, joka sisältää komentotulkin ja 18 suoritettavaa käskyä (ohjelmaa). Kontrolliohjelman ohjelmointia varten toteutetaan Python-ohjelmointikielellä assembler-kääntäjä.
Tässä työssä tutustutaan myös avoimen lähdekoodin FPGA-laitteistosuunnitteluun keskittyvän OpenCores-sivuston prosessoritarjontaan. Tarkoitus on vertailla suunniteltua prosessoria sivuston prosessoreihin sekä miettiä hieman prosessorin jatkokehittelymahdollisuuksia. Pääpaino tässä työssä on kuitenkin prosessorin suunnittelussa ja toteutuksessa, jota tullaan käymään läpi erittäin tarkasti. Suunniteltuun prosessoriin on myös mahdollista tutustua osoitteessa: http://www.saunalahti.fi/~matisol/CPU/.
The first version of the processor is designed in Logisim circuit simulator which provides a working prototype before final implementation in VHDL. Other hardware designed and implemented in VHDL are a PS/2 port for keyboard and a VGA controller for displaying text on a screen. To test the processor a control program is implemented which includes a command prompt and 18 executable commands (programs). A Python-based assembler is also implemented to compile the control program.
This thesis also investigates open source FPGA hardware development community OpenCores.org. The aim is to compare the implemented processor to other processors found from OpenCores and to think about some further development opportunities. The main focus however is in the processor design and implementation which is explained carefully in detail. Additionally, the designed processor can also be found at: http://www.saunalahti.fi/~matisol/CPU/.
Kokoelmat
- Avoin saatavuus [31978]