Skip to content

ferasaljoudi/ClassesSchedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Class Schedules

This is an individual lab project for the ENEL384 class. The requirement of the project is to design a synchronous circuit of reasonable complexity ( > 1 stage, < 100 stages), which means that the project can not be composed solely of combinational logic.

To design the chosen project (Class Schedules), I used VHSIC Hardware Description Language (VHDL), Vivado (a software for hardware description language designs) and the BASYS-3 FPGA Board.


Demo


Technologies Used

VHDL
Vivado
Basys3

Description

In the FPGA board, I used:

  • Four Switches to turn ON or OFF the 4 classes/subjects.
  • Five buttons to select what do we want to display
    • Left button for class
    • Center button for lab
    • Right button for seminar
    • Top button for midterm
    • Bottom button for final
  • Four 7-Segments to display class names, time and date.
  • The first 4 LEDs on the right of the FPGA to highlight which switch is corresponding to which class
  • The first 5 LEDs on the left of the FPGA to represent the weekdays (Monday to Friday)

To display 4 different letters/numbers on the four 7-segment displays where the anode of each 7- segment is driven from four transistors which have common 3.3V, I used a multiplexing technique. I created a clock which will switch between each display at intervals of 0.0025 seconds, which is too fast for the human eye to discern. I produce the illusion that all four displays are lighting simultaneously. This allowed me to represent different letters/numbers on each display.

Then I created a second clock which is for 3 seconds. When all 4 switches are OFF, this clock allows me to represent the pattern of the 4 LEDs on the right of the FPGA. Each LED is represented for 3 seconds and it highlights a class switch. Along with these LEDs, the 7 segment displays the name of the class for the corresponding led, and the 5 LEDs on the left will display the days that are occupied by the displayed class.

Then I used combinational logic (if, elsif, case) to determine the output (9 LEDs and 7 segment display) based on the input (4 switches and 5 buttons).


Resources

To view the YouTube video demonstrating the ClassesSchedule on the FPGA:

Note:

I only had to write the Enel384Project.vhd file. The Basys-3-Master.xdc is a general .xdc file for the Basys3, and it is essential to define the pins and constraints for the Basys3 FPGA board. To view the .xdc file on the Digilent website:

Click HERE then find the "Master XDC Files" link.

About

A classes schedule designed on BASYS3 (FPGA) using VHDL and Vivado

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published