/FPGA_VSDOpen21_Workshop

Digital Design on FPGA VSDOpen21 Workshop

Apache License 2.0Apache-2.0

Digital Design on FPGA VSDOpen21 Workshop

vsdopentutorial

Table of Contents

Introduction

FPGA also known as Field-Programmable Gate Array, is a hardware circuit board that executes hardware models. It is used for prototyping ASICs and Processors. This workshop is to learn and understand Digital Design using Virtual FPGA.

Virtual_FPGA

Benefits of Virtual FPGA

  1. Virtual demo FPGA visualizations
  2. Access to various kinds of Board
  3. Debug each & every cycle
  4. Open-source (Freely access to all)

The detailed information on Virtual FPGA Lab can be found here

Verilog

  • Hardware Description Language
  • Verification
    • Simulation
    • Timing Analysis
    • Test Analsis
    • Synthesis
  • Level of Abstraction
    • Behavioural Level
    • Register-Transfer Level
    • Gate Level

Makerchip

Makerchip is a free IDE which is used to develop Integrated Circuits, where you can design, compile, and simulate hardware using verilog all from your browser. It is available as https://makerchip.com/.

Screenshot from 2021-10-20 18-18-20

Interfacing LEDs

Snap-1

Assigning random values to the LEDs

snap-2

LED Binary Counter

counter-gif

Interfacing LED Lab

lab1

Seven Segment Display

seven-seg-display-prob

Design of Seven-Segment Display

design-7-display

Interfacing Seven Segment Display

Screenshot from 2021-10-20 13-00-03

Interfacing Seven Segment Display lab

lab-2

4-way Traffic Light Controller

Problem Statement

prob-statement

Finite State Machines

  • Abstract model of computation that is used to model logic
  • Based on the current state and a given input the machine performs state transitions and produces outputs.
  • Two basic types are Mealy and Moore mahines

fsm-model

Verilog Code for NORTH, SOUTH, EAST and WEST

NORTH :
                    begin                      
                       // Enable first seven segment and set to Green 
                       digit <= 4'b0111;
                       segment <= 7'b1110111;
                        /* TODO: 1. Keep the green NORTH signal active for 8 seconds 
                                2. Set state of signal to yellow NORTH after that 
                          HINT: Use if-else block
                        */
                       if(count==7) begin
                             assign state=NORTH_Y;
                        	  assign count=0;    
                          end
                       else assign count=count+1;   
                    end

Verilog Code for NORTH_Y, SOUTH_Y, EAST_Y and WEST_Y

NORTH_Y :
                    begin
                        // Enable first seven segment and set to Yellow
                        digit <= 4'b0111;
                        segment <= 7'b1111110;
                        /* TODO: 1. Keep the yellow NORTH signal active for 4 seconds 
                                2. Set state of signal to green SOUTH after that 
                        */
                      if(count==3) begin
                             assign state=SOUTH;
                        	  assign count=0;    
                          end
                       else assign count=count+1;
							end

Traffic Light Controller Lab

final-lab

References

Author

  • Mohammad Khalique khan, Bachelor of Technology (ECE), Aliah University.

Acknowledgement

  • Bala Dhinesh, Undergrad, IIT Madras
  • Kunal Ghosh, Co-founder, VSD Corp. Pvt. Ltd.
  • Anagha Ghosh, VSD Corp. Pvt. Ltd.