GithubHelp home page GithubHelp logo

zeeshanrafique23 / rv32i-logisim Goto Github PK

View Code? Open in Web Editor NEW
16.0 1.0 10.0 101 KB

RV32I single cycle simulation on open-source software Logisim.

License: Apache License 2.0

logisim riscv rv32i processor

rv32i-logisim's Introduction

RV32I-Logisim

Introduction

Logisim allows you to design and simulate digital circuits. It is intended as an educational tool, to help you learn how circuits work. This is the implementation of RISC-V base ISA RV32I.

Pre-requisites

You need to install Logisim and Java Run-time Environment to run the simulation on logisim by running the following commands.

For Ubuntu run the following set of commands.

sudo apt install logisim; sudo apt install default-jre; java -version

Design

This implementation can help the beginners of RISC-V to get started. The circuit includes

  • PC
  • Register File
  • ALU
  • ALU Control
  • Control Unit
  • Immediate generation
  • Memories (data and inst)

Top level diagram

alt text

rv32i-logisim's People

Contributors

hadirkhan10 avatar uzair141 avatar zeeshanrafique23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

rv32i-logisim's Issues

Immediate generation double shifting.

I'm finding really helpful this project to understand a basic implementation of a RISC-V core but I'm having some trouble trying to understand the use of a shifter for the B-type and J-type instruction formats. The standard talks about "shifting" 1 bit at the time that the relocation of the bits is being done, thing that you also do.

The only difference between the S and B formats is that the 12-bit immediate field is used to **encode
branch offsets in multiples of 2 in the B format

And

Similarly, the only difference between the U and J formats is that the 20-bit immediate is shifted
left by 12 bits to form U immediates and by 1 bit to form J immediates.

The circuit on your project that I'm talking about:
imagen
Is doing a double shift an error or I am not seeing something?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.