Skip to content

Welcome to the Virtual CPU Emulator project! This project aims to build an emulation of a virtual CPU from the ground up, over the span of 10 weeks. Each week we will focus on different tasks to incrementally build and refine our emulator. Made By Bangladeshi Students. πŸ‡§πŸ‡©

Notifications You must be signed in to change notification settings

binarysleuth247/Project-vCPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Virtual CPU Emulator

Project Description πŸ“

Welcome to the Virtual CPU Emulator project! This project aims to build an emulation of a virtual CPU from the ground up, over the span of 10 weeks. Each week we will focus on different tasks to incrementally build and refine our emulator. Made By Bangladeshi Students. πŸ‡§πŸ‡©

Group Members πŸ‘₯

Course Details 🏫

  • Course Name: Computer Architecture
  • Course Code: 3101
  • Section: 5D
  • Department: Computer Science & Engineering
  • Instructor: Vashkar Kar (Lecturer)
  • Institute: Northern University of Business & Technology, Khulna
  • Website: www.nubtkhulna.ac.bd

Scope πŸ”

The project will simulate a basic CPU architecture, complete with an instruction set, memory management, and execution pipeline. The emulator will be designed to handle a set of predefined instructions and will be tested using a suite of assembly programs.

Objective 🎯

The primary objective is to gain a thorough understanding of CPU design and operation by implementing a virtual emulator. This includes:

  • Designing an Instruction Set Architecture (ISA)
  • Implementing an assembler to convert assembly code to machine code
  • Simulating the execution of machine instructions within the virtual CPU

Technologies Used πŸ’»

  • Programming Language: C++
  • Version Control: GitHub
  • Assembler: Custom assembler for converting assembly code to machine code
  • Development Environment: Any C++ IDE or text editor with C++

Weekly Tasks Overview πŸ—“οΈ

  • Objective: Define project scope, gather resources, set up development environment.
  • Tasks:
    • Outline the features of the virtual CPU.
    • Choose a programming language (Python/C++) and tools.
    • Set up version control (e.g., GitHub).
  • Objective: Design the ISA for the virtual CPU.
  • Tasks:
    • Define basic instructions (ADD, SUB, LOAD, STORE, etc.).
    • Document the instruction formats.
    • Create a simple assembler to convert assembly code into machine code.
  • Objective: Implement core components of the CPU.
  • Tasks:
    • Build the ALU (Arithmetic Logic Unit).
    • Implement general-purpose registers.
    • Create the program counter and instruction register.
  • Objective: Develop the instruction fetch-decode-execute cycle.
  • Tasks:
    • Implement the instruction fetching mechanism.
    • Decode instructions and execute them using the ALU and registers.
    • Test with simple programs.
  • Objective: Implement memory management for the virtual CPU.
  • Tasks:
    • Set up a simulated memory space.
    • Implement memory read/write operations.
    • Handle address mapping and memory segmentation.

Week 6: I/O Operations

  • Objective: Enable basic input/output operations.
  • Tasks:
    • Implement simulated I/O devices (keyboard, display).
    • Create I/O instructions and integrate them with the CPU.
    • Test with I/O-intensive programs.

Week 7: Advanced Features

  • Objective: Add advanced CPU features.
  • Tasks:
    • Implement branching and control flow instructions.
    • Add support for subroutines and interrupts.
    • Integrate a simple pipeline mechanism.

Week 8: Performance Optimization

  • Objective: Optimize the emulator for better performance.
  • Tasks:
    • Profile the emulator to identify bottlenecks.
    • Optimize critical code paths.
    • Enhance the assembler for better instruction encoding.

Week 9: Final Testing & Debugging

  • Objective: Thoroughly test and debug the emulator.
  • Tasks:
    • Test with a variety of assembly programs.
    • Debug and fix any issues.
    • Validate performance against benchmarks.

Week 10: Documentation & Presentation

  • Objective: Document the project and prepare for presentation.
  • Tasks:
    • Write comprehensive documentation.
    • Prepare a project report and presentation slides.
    • Conduct a demo session.

Setup Instructions

  1. Clone the repository:
    git clone https://github.com/yourusername/virtual-cpu-emulator.git
    
    
    

Setup Instructions

Coming Soon.

License πŸ› οΈ

Open License. Feel Free to use & Modify

<<<<<<< HEAD Primary Contact: πŸ“¬ MD. Rohan, Mail: mdrohansheikh1000@gmail.com

Primary Contact: πŸ“¬ MD. Rohan, Mail: mdrohansheikh1000@gmail.com

c70d70303a5d72c4a39d48491cf8e55b7bd81225

About

Welcome to the Virtual CPU Emulator project! This project aims to build an emulation of a virtual CPU from the ground up, over the span of 10 weeks. Each week we will focus on different tasks to incrementally build and refine our emulator. Made By Bangladeshi Students. πŸ‡§πŸ‡©

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published