Go to file
Yannick Reiß 59cb94480e
Reset in Register
2024-08-08 08:04:29 +02:00
src Reset in Register 2024-08-08 08:04:29 +02:00
tb Implement reset of the processor 2024-08-08 06:05:54 +02:00
.gitignore add compiled modules to gitignore 2024-08-07 18:56:31 +02:00
Makefile Working version 2024-08-07 18:30:30 +02:00
README.md init 2024-01-29 19:13:01 +01:00
constrainits.xdc Working version 2024-08-07 18:30:30 +02:00
ripestohex.py init 2024-01-29 19:13:01 +01:00
test.S Working version 2024-08-07 18:30:30 +02:00

README.md

RISC-V Prozessor

Requirements

  • make
  • ghdl
  • gtkwave (optional)

Build Instructions

To analyze, elaborate and run all entity testbenches use

make all

To build just one specific testbench use

make <entity>

with entity being one of ram, regs, alu, imm, decoder and cpu at the moment.

Make sure to clean the project by using the command

make clean

before commit or push to the repository.


Config / structure

Ram size: 4096b => 4kb divided in 1kb Instruction, 3kb Data
Instruction set: 32i Base Instructions (currently R | I | S implemented)

Git

Branches

Open new Branch when

  • you start working on more than one file or
  • you do more than minor changes to existing code
  • you plan on improving already finished parts
  • you want to make changes for testing

Commits

  • Commit after every major change
  • If creating a new file do
git commit

for only this file

  • Give a brief and precice description of your changes
  • Use ERROR/WARNING/BUG to indicate a problem in your commit
  • Make sure to only commit important files

Merges

  • Only merge, if your branch is worked out
  • Don't merge branches with errors, or bugs, unless we merge all branches together
  • If filestructure was changed, do a rebase instead

Code

Comments

  • Comment every entity/architecture/process/etc.
  • Comments should be less than one sentence
  • No comments for single statements

Naming and Style

  • avoid meaningless names for signals, ports, variables
  • use 2 spaces or tabsize 2 intendation
  • name every process, entity, ...
  • FORMAT FILE WITH EMACS (C-c + C-b)

Programming conventions

  • reduce the use of programming control structures as far as possible
  • if possible use switch case instead of if
  • use if statements instead of index access to vectors (avoiding latches)