Learn the Fundamentals of VHDL and FPGA Development
What you'll learn
- Understand the design process for implementing a digital design onto a FPGA
- Learn how to simulate a design in Altera’s ModelSim and Vivado SImulator
- Learn how to use Xilinx Vivado tool to program FPGA
- Simulate a VHDL design using ModelSim
- Familiarize yourself with Altera and Xilinx tools
- Basic understanding of Binary Notation
- Basic understanding of Hexadecimal Notation
- Basic understanding of Logic Gates
- Basic understanding of Vivado / Quartus
How will you learn?
You will learn by doing the real programming. All the code and examples are explained in tutoring videos. After you adjust the existing code or you create your own, you will run simulations to verify it. If you are interested to run your code on a real hardware (not required, but much more fun), we recommend Altera or Xilinx boards.What you will learn about
What will you learn?
Learn the Essentials of VHDL and FPGA Development is course that will teach you the fundamentals and basics of VHDL design. In this course you will be working through various projects that will require you to go through the entire FPGA development process. You will be guided through the coding of the actual VHDL to the synthesis using either Xilinx’s development tool, Vivado or Altera development tool Quartus. There are 8 projects in this course:
- Buttons & LEDs
A project that is designed to teach students the very basics of VHDL as well as how to make specific pins on an FPGA inputs (buttons) and outputs (LEDs).
- Blinky LEDs
Students will learn how to create a counter in VHDL in order to simultaneously turn multiple LEDs on and off in unison.
- LED Brightness
This project will have students create 3 VHDL designs, a PWM design to control the brightness of the LEDs, a counter to vary the duty cycle, and a top level design to pull everything together.
- UART Demonstration
Students will be introduced to softcore processors and use them to display a “Hello World” message on a serial port terminal.
- UART I/O
In the project students will build upon the ability to transmit messages using the softcore processor to read messages. Students will learn how to interpret messages coming from the computer to the FPGA in order to read the status of various peripherals on the board.
- AD Processing
This project will have students perform an analog to digital conversion. As en example, they sense the temperature.
- SPI Interface (Arty A7 Only)
In this project students will learn how to work with SPI interface. They will load existing designs onto the external flash memory chip to have the FPGA configure itself through the SPI interface.
- I2C Interface (DE10 Nano Only)
In this project students will learn how to work with I2C. They will load an embedded Linux operating system onto the DE10 Nano development board. They will then run a program that interfaces with the onboard accelerometer to display the g forces the sensor reads.
All of the required background and knowledge to complete each project will be explained prior to completing the project. There are demonstration videos and walk-throughs for each project so that you can have a deep understanding of how the project works.
Who this course is for:
- Engineering Students
- Engineering Managers
- Individuals pursuing Electrical Engineering
- Anyone who wants to take it for fun!
- Anyone wanting to learn about FPGA's and the development process
A graduate from the University of Dayton with his Bachelor's degree in Electronic and Computer Engineering Technology. He also graduated from UD with his Master's degree in Electrical Engineering. He currently has a patent pending for an electronic monitoring device. He has strong knowledge in FPGA (Field Programmable Gate Array) development, Digital Electronics, Circuit Board design, and VHDL design and modeling of hardware systems. His focus of study in school was embedded systems which involves circuit design, firmware development, implementation of computer hardware, and the interfacing of computer operating systems. His hobbies include mobile application development, layout and assembly of PCB's (Printed Circuit Boards), computer application programming, and anything related to electrical engineering.