No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
alutest
my programs
riscvtestprogs @ b681691
.gitmodules
ALU project.circ
ALU.circ
README.md
cpu - Copy.circ
cpu.circ
crt0.s
memory-v1.circ
multiplexer.circ
regfile.circ
regfile2.circ
tty.circ

README.md

logisim RISC-V CPU

literally just a collection of logisim projects I've been working on.

goals:

The goal of these projects is to create a full datapath according to the RISC-V ISA.

background:

This is for a class I'm taking about computer architecture. (Taught by Sol Boucher)

Expanded Features:

This version features an interrupt controller, which handles clock interrupts as well as keyboard interrupts. The interrupts jump to a table at the beginning of memory, which has the addresses of the interrupt handlers.

It is possible to control the cpu clock interrupt timer delay, by running one of these commands: (binary)

  • 0x304B: Short
  • 0x204B: Medium-short
  • 0x104B: Medium-long
  • 0x004B: Long

Bugs:

  • Interupt return addresses are stored on the stack, and the pointer is incremented AFTER the interrupt is called, by the interrupt handler. This means that interrupts immediately subsequently can overwrite the return address of the first one.
  • The keyboard interrupt has a weird bug, where it repeatededly prints the last character for unknown reasons.
  • The stack pointer is defaulyed to 0x1000, so programs longer than 0x1000 lines need to set the stack pointer to be farther down.