DopeBiscuit / IEEE-Digital-IC-Design

This repo is for my IEEE ASU Student Branch Digital IC Design workshop, an introduction to digital design using Verilog, this is a documentation of my tasks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IEEE ASUSB logo

IEEE-Digital-IC-Design

This repo is for my IEEE Digital IC Design workshop, an introduction to digital design using verilog, and this is a documentation of my tasks, all folders include pdf with the task's requirements.

Lecture 1 - Intro to:

  • Introduction to verilog and it's concurrent behaviour.
  • Syntax, logical operators, arithmetic operators and modules.
  • Gate-level design.
  • Structural design.

Task 1:

  • Basic Logic circuits using Gate-level and Structural design

Lecture 2 - Intro to:

  • Sequential blocks (always, initial), how to use them, what is the senstivity list.
  • Behavioural desgin.
  • Testbench files
  • .do file / scripting.
  • Basic logic units using behavioural desing (Mux, decoders, ALU).
  • Parameters.

Task 2:

  • Create a 3->8 Decoder with enable.
  • N-bit comparator with 3 inputs, there are 2 (2*N) Outputs, outputs are decided according to the task pdt attached.

Lecture 3 - Intro to:

  • Sequential circuits.
  • Using (posedge, negedge).
  • Video Graphics Array standards.
  • Basic sequential Logic units (D-Latch, D-Flip Flop, T-Flip Flop, 4-bit register with load, up down load coutner).

Task 3:

  • Creating a VGA Controller, with 640 * 480 @ 60Hz industry standard, this interfaces with the VGA connector forcing a color to the whole screen pixel array using a parameter.

Lecture 4 - Intro to:

  • Universal Asynchronous Receiver / Transmitter (UART) protocol.
  • Generating required baud rate using counter and master clock.
  • Design of the transmitter module using MUX and Counters.
  • Basics of Static Time Analysis (STA).
  • FPGA Intellectual Properties (IP) and Phase-Locked Loop (PLL).

Task 4:

  • Implement the transmitter module discussed in the session.
  • Design the architecture for a receiver module and implement it with the same baud rate.
  • Create a top-level UART module that instantiates both Tx and Rx modules making proper communication
  • Make a testbench for the UART module to prove functionality

Lecture 5 - Intro to:

  • Finite State Machines (FSM).
  • Mealy and Moore machines and their corresponding state diagrams.
  • Implementation of FSM in Verilog using structured steps:
    • Accurate machine description
    • Creating the State Diagram. (Define both States and Transitions)
    • Synthesize the logic. (Implement State memory, Next State logic, Output Logic)
  • Hands-on lab to implement a Sequence Detector that supports overlapping and increments a counter every time the sequence is detected.

Task 5:

No Task for session 5


Lecture 6 (Final Lecture) - Intro to:

  • Memory addressing.
  • Designing addressing schemes.
  • Using the previously built VGA Controller with active memory to pull pixel RGB values from the memory to display live images.
  • Rescaling VGA standard resolution without affecting timing to overcome memory limitations.
  • RISC-V open-source processor architecture.
  • Assembly code and how a RISC-VI interprets it.

Final Project:

Implement a basic Single Cycle RISC-V processor using Verilog, which interprets Binary Assembly code according to the RISC-V architecture and performs the corresponding operation on the operands.

About

This repo is for my IEEE ASU Student Branch Digital IC Design workshop, an introduction to digital design using Verilog, this is a documentation of my tasks.

License:MIT License


Languages

Language:Verilog 79.5%Language:HTML 17.1%Language:Stata 2.7%Language:Standard ML 0.6%Language:Scheme 0.1%