You are browsing as a guest. Sign up (or log in) to start making projects!

RISC-V 32bit CPU

  • 5 Devlogs
  • 15 Total hours

A simple RV32I CPU implementation with video output, for use on the icepi-zero FPGA board.

Ship #1 Pending review

This was my second attempt at making a working RISC-V CPU, I'm really happy with where the project is currently. The most difficult part so far has been trying to debug it when it isn't working, but I've managed to get assembly to run on it with video output, and also keyboard input. Next, I think I want to work on adding more extensions to the base ISA and writing more complex programs for it.

  • 5 devlogs
  • 15h
Try project → See source code →
Open comments for this post

1h 36m 38s logged

Worked some more on other typical features of a VGA text mode, such as highlighted text and blinking.

Worked some more on other typical features of a VGA text mode, such as highlighted text and blinking.

Replying to @captaintriton10

0
4
Open comments for this post

5h 10m 41s logged

As you can see below, I got keyboard input to work, so now I can write programs that use keyboard input.

New features:

  • Character colours
  • UART input (keyboard input)

It’s pretty cool that I can also write the devlog on the CPU with the custom assembly code I wrote!

As you can see below, I got keyboard input to work, so now I can write programs that use keyboard input.

New features:

  • Character colours
  • UART input (keyboard input)

It’s pretty cool that I can also write the devlog on the CPU with the custom assembly code I wrote!

Replying to @captaintriton10

0
2
Open comments for this post

1h 34m 45s logged

I finally fixed the branch logic, and proved that it works with this simple counter that uses the conditional BGE (branch if greater than or equal) instruction.

I finally fixed the branch logic, and proved that it works with this simple counter that uses the conditional BGE (branch if greater than or equal) instruction.

Replying to @captaintriton10

0
3
Open comments for this post

4h 19m 52s logged

Currently working on debugging conditional branch instructions, as the wrong branch address is being targetted. Fortunately, I managed to fix the JAL and JALR jump instructions.

Currently working on debugging conditional branch instructions, as the wrong branch address is being targetted. Fortunately, I managed to fix the JAL and JALR jump instructions.

Replying to @captaintriton10

0
3
Open comments for this post

2h 26m 13s logged

This is a project I’ve been working on already a fair bit, trying to make a half-decent RISC-V CPU for use on the icepi-zero FPGA board (that I got from the previous Flavourtown event :D). This is a testbench I’m running, currently trying to debug jump and branch instructions not working. My next step is adding keyboard input through the UART protocol (universal asynchronous receiver-transmitter)

This is a project I’ve been working on already a fair bit, trying to make a half-decent RISC-V CPU for use on the icepi-zero FPGA board (that I got from the previous Flavourtown event :D). This is a testbench I’m running, currently trying to debug jump and branch instructions not working. My next step is adding keyboard input through the UART protocol (universal asynchronous receiver-transmitter)

Replying to @captaintriton10

0
6

Followers

Loading…