GithubHelp home page GithubHelp logo

ahmedhosny2024 / pipeline-processor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from basmaelhoseny01/pipeline-processor

0.0 0.0 0.0 38.48 MB

Harvard (separate memories for data and instructions), RISC-like, five-stages pipeline processor.

License: MIT License

C++ 5.93% Python 1.51% Verilog 70.01% Stata 22.39% Batchfile 0.17%

pipeline-processor's Introduction

Pipeline-Processor

Harvard (separate memories for data and instructions), RISC-like, five-stages pipeline processor.

Table of Content

Overview

Following this approach we built our processor incrementally adding small modules every time to run a new instruction type. But how can we gauraentee that runinng new instruction doesn't cause errors in previously implmeneted instructions ๐Ÿ™„๐Ÿ™„. Here we thought about the idea ๐Ÿ’ก๐Ÿ’ก๐Ÿ’ก of the Self Checking python script where we saved our previous results and every time we implment new instructions we run all test cases from the beginning to make sure no problem has occured. The new Results are compared to previously tested resukts as comparing text file (for Data memory and Register file). [test.py %NoOfTestCases]

All the above ideas need a too many scripts so a lot of commands are required to be types every time from compiling assembler file to running it for every test case to running modelsim to running python script to drawing reuslted wave to saving results. Too many commands ๐Ÿ˜ฑ๐Ÿ˜ฑ๐Ÿ˜ฑ. At this point we had a brilliant idea ๐Ÿงจ๐Ÿงจ of running only one batch including all of the above commnads which really helped us a lot in our journy ๐Ÿ”๏ธ๐Ÿ๏ธ of Design.

One command = Running about 10 commands = Saved Time โŒ› and Effort ๐Ÿค’

Get Started

  1. Clone the repository
    git clone https://github.com/BasmaElhoseny01/Pipeline-Processor.git
    
  2. Make New Folder for your testcase
    cd Phase2/TestCases
    mkdir TestCase%NoOfTestCase
    cd TestCase%NoOfTestCase
    
  3. Put your assembly code in assembly.txt
    type nul > assembly.txt
    
  4. Run All Test Cases :D
    cd ../..
    run.bat %NoOfTestCase
    

Instructions

nop - setc - clrc - not Rdst - inc Rdst - dec Rdst - out Rdst - in Rdst - mov Rsrc Rdst - add Rsrc Rdst - sub Rsrc Rdst - and Rsrc Rdst - or Rsrc Rdst - add Rsrc Rdst - shl immediateValue Rsrc - shr immediateValue Rsrc - push Rdst - pop Rdst - ldm immediateValue Rdst - ldd Rsrc Rdst - std Rdst - jz Rdst - jn Rdst - jc Rdst - jmp Rdst - call Rdst - ret - rti - reset - interrupt

Design

Design

Flow Diagram

Flow Diagram

Demo

2023-02-07.19-41-37.3.mp4

Contributors

Nour Ziad
Nour Ziad
Yasmine Ghanem
Yasmine Ghanem
Ahmed Hosny
Ahmed Hosny
Basma Elhoseny
Basma Elhoseny

License

This software is licensed under MIT License, See License for more information ยฉBasma Elhoseny.

pipeline-processor's People

Contributors

basmaelhoseny01 avatar nouralmulhem avatar yasmineghanem avatar ahmedhosny2024 avatar

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.