Video Card Emulation

Overview

  • The goal of this project is to create a emulation software for Video Card

Planning

Goal of the project

The ultimate goal of this project is being able to emulate the video card from scratch (from creation of pulse generator to displaying the image file)

Basic Logic inside the Loop

  1. Create threads for all tasks that has to happen when each clock pulse is generated
  2. Run pulse generator on main thread
  3. Assign tasks to the threads
  4. Wait for all threads to finish

Programming

Day 1

Source Code Written on July 14th, 2020 on MacBook Pro 13” 2019, macOS 10.15.5 using Xcode

Day 2

This Code is made to study Multithreading in C language using pthread header.
Source Code Written on July 16th, 2020 on MacBook Pro 13” 2019, macOS 10.15.6 using Xcode

Problems, Bugs and Errors

Identifier

10MHz Pulse Generator

Problem ID: 2020071501
For this project, 10MHz pulse generator is needed for setting the correct timing of display rate. However, 10MHz Generator that I built has small delays. Since each pulse has to be generated by every 100 nano second, small delays are reasonable sources of potential problems.

Ideas to resolve problems

10MHz Pulse Generator

Problem ID: 2020071501
One possible solution for 10MHz P.G. problem is using multi-thread processing. Multi-thread processing is the method that allows multiple processes to run on the same time. By using this, We can process multiple tasks for each pulse much faster and efficiently.

Resources

Written Resources