deepelixir / EE2003-Computer-Organisation

5-stage Pipelined Implementation of RV32I ISA; includes single cycle implementation of the same and other assignments from EE2003 Computer Organisation (Fall 2020, IITM)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EE2003-Computer-Organisation

This repository contains the HDL models (verilog) of the components of a 5-stage Pipelined implementation of an RV32I (32-bit Integer riscv ISA) processor, along with the corresponding verilog testbenches. Also included is a single cycle implementation which was done as part of assignments for the EE2003 Computer Organisation Course in Fall 2020 at IITMadras.

assign_1: RTL model of a sequential (shift-and-add) multiplier for two 8-bit integers.

assign_2: riscv assembly code for computing the Nth Fibonacci number.

singlecycle_cpu: (Assignments 3, 5 and 6) Implementation of the ALU (Assign3), Load-Store (Assign5) and Branch Instructions (Assign6) of the RV32I instruction set.

Reference for hardware architecture: Computer Organization and Design, RISC-V Edition by David A. Patterson, John L. Hennessy

pipelinedCPU: Extension of the Single Cycle CPU for a 5-stage pipelined design, with Forwarding and Stalling to mitigate Data and Control Hazards.

periphIntfc: Includes bus interface unit, HDL model of a sample output peripheral and a C application for implementing the printf function, interfaced with the single cycle CPU implementation.

synthCPU: Includes tcl and yosys scripts for synthesising the single cycle CPU on a Xilinx Artix-7 class FPGA, along with minor modifications (without affecting functionality) in the HDL model for the register file.

About

5-stage Pipelined Implementation of RV32I ISA; includes single cycle implementation of the same and other assignments from EE2003 Computer Organisation (Fall 2020, IITM)

License:MIT License


Languages

Language:Verilog 98.7%Language:C 0.7%Language:Shell 0.3%Language:Assembly 0.2%Language:Tcl 0.1%