Coder Social home page Coder Social logo

franout / dlx_project Goto Github PK

View Code? Open in Web Editor NEW
4.0 0.0 0.0 135.42 MB

Deluxe RISC processor

License: GNU General Public License v3.0

VHDL 50.03% Assembly 0.03% Shell 0.03% Perl 0.02% TeX 0.12% SystemVerilog 0.27% Tcl 0.42% Stata 0.04% Python 0.01% Batchfile 0.13% Verilog 48.89%
hardware-designs dlx systemverilog microprocessor risc-processor simulation synthesis testbench computerarchitecture

dlx_project's Introduction

DeLuXe RISC processor project

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed. Build Status

RISC processor architecture designed by John L. Hennessy and David A. Patterson.

Microelectronic System course (MsC in Embedded Systems Engineering) @ Polythecnic of Turin, Italy

Table of Contents

Clone

Clone this repo to your local machine using and feel free to contribute!

$ git clone https://github.com/franout/DLX_project.git

Setup

You need to have installed a HDL simulator tool (for the simulation) and a synthesis tool (in case you want to synthesize the design). In this project Questa Sim 10.7 and Design Compiler have been used.

Architecture

The DLX is essentially a cleaned up (and modernized) simplified MIPS CPU. The DLX has a simple Big Endian 32-bit load/store pipelined architecture, somewhat unlike the modern MIPS CPU.

  • DLX top level entity architecture

  • Customizable hardware parameters (pre-synthesis)

    • IR size, bitwidth of Instruction Register
    • PC size, bitwidth of Program Counter

Software

For creating creating the hex dump file to be used in the simulation (loaded in the Instruction Data Ram):

  $ ./software/assembler.sh {ASM_FILE_PATH}

The produced hexadecimal file should be copied in the memories folder.

Moreover, in the memories folder it is present also a python script for generating random data suitable for the DRAM.

  $ ./hardware/dlx/test_bench/memories/generate_random_values_dram.py

Simulation

For exectuting the simulation of the DLX, it is necessary to execute:

  $ ./scripts/simulation.sh

It will compile the needed files for executing the simulation. Moreover, there are two types of simulations, one with the Universal Verification Methodology architecture and the other one with the normal configuration (IRAM-DLX-DRAM).

Simulation

Synthesis

For executing the synthesis of the DLX:

  $ ./scripts/synthesis.sh

It will execute different synthesis with different clocks (starting from unconstrained design) and area footprint. Moreover, it will be synthesized taking into account a possible Scan chain (DfT) for a further production phase.

Layout

For executing the physical design of the synthesized DLX:

  $ ./scripts/physical_design.sh gui/no_gui

It will execute the physical desing of differt design point ( for different clock values and area).

Tests

For functionally verify the microprocessor refers to the testbench in System Verilog. They are divided for each stage and control unit for regression test

  $ ./scripts/regression_test.sh

Documentation

For a more detailed information see Wiki's project.

Useful Link

Reach out to me at one of the following places!

License

GNU General Public License v3.0

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.