An open API service indexing awesome lists of open source software.

https://github.com/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.
https://github.com/dopebiscuit/ieee-digital-ic-design

digital-design-and-computer-organization logic-design verilog-project

Last synced: 3 months ago
JSON representation

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.

Awesome Lists containing this project

README

        

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.**