Learn VHDL Design for use in FPGA and ASIC Digital Systems

VHDL Design and Modeling Tutorial for both the beginner and experienced Programmer using a Xilinx FPGA Development Board
3.5 (50 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,515 students enrolled
92% off
Take This Course
  • Lectures 12
  • Length 4 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2014 English

Course Description

Teach yourself the analysis and synthesis of digital systems using VHDL to design and simulate FPGA and ASIC digital systems. Participants learn the fundamental concepts of VHDL and practical design techniques using a Xilinx FPGA Development Board and ModelSim simulation software for hands-on experience. The VHDL methodology and design flow for logic synthesis addresses design issues related to component modeling, data flow description in VHDL and behavioral description of hardware. An emphasis is placed on understanding the hardware description language, VHDL design techniques for logic synthesis, design criteria, and VHDL applications.

At the end of this course, participants will be able to accomplish the following:

  • Describe and explain VHDL syntax and semantics
  • Create synthesizable designs using VHDL
  • Use Xilinx FPGA development board for hand-on experience
  • Use the Xilinx ISE toolset
  • Use ModelSim simulation software
  • Design simple and practical test-benches in VHDL
  • Design and develop VHDL models


  • Familiarity with digital logic design, electrical engineering, or equivalent experience.

Even if you're now already familiar with VHDL but you've:

  • Never used an attribute other than ‘event?
  • Never used variables?
  • Always used a process where a single concurrent statement would have sufficed?
  • Never used assert or report statements except (maybe) in a test-bench?
  • Never used an unconstrained vector or array?
  • Never used a passive process inside of an entity?
  • Never used a real or the math_real library package in synthesizable code?
  • Always used a single process per signal assignment?

then this course will definitely have something for you as well. You will learn finite state machine design, the two-process design methodology, test-bench design, combinatorial and sequential logic, and extensible synthesizable designs that are reusable.

What are the requirements?

  • Familiarity with digital logic design, electrical engineering, or equivalent experience

What am I going to get from this course?

  • Describe and explain VHDL syntax and semantics
  • Create synthesizable designs using VHDL
  • Use Xilinx FPGA development board for hand-on experience
  • Design simple and practical test benches in VHDL
  • Use the Xilinx Vivado toolset
  • Design and develop VHDL models
  • Use ModelSim simulation software

Who is the target audience?

  • Engineers
  • Hobbyists
  • Makers
  • Engineering Students
  • Engineering Managers

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Basics

Chapter 1 - Fundamental Concepts (pages 1 - 30)
Modeling Digital Systems
Domains and Levels of Modeling
Modeling Languages
VHDL Modeling Concepts
Learning a New Language: Lexical Elements and Syntax

Quiz 1
10 questions
Software Tool Installation
Section 2: Data types & operations

Chapter 2 - Scalar Data Types and Operations (pages 31 – 64)
Chapter 4 - Composite Data Types and Operations (pages 95 – 135 / 95 - 136)
Constants and Variables
Scalar Types
Type Classification
Attributes of Scalar Types
Expressions and Operators
Unconstrained Array Types
Array Operations and Referencing

Demonstration #1
Quiz 2
10 questions
Section 3: Concurrent statements

Chapter 5 - Basic Modeling Constructs (pages 135 – 200 / 137 - 206)
Entity Declarations and Architecture Bodies
Behavioral Descriptions
Structural Descriptions
Design Processing

Quiz 3
10 questions
Section 4: Sequential statements

Chapter 3 - Sequential Statements (pages 65 - 94)
If Statements
Case Statements
Null Statements
Loop Statements
Assertion and Report Statements

Quiz 4
10 questions
Section 5: Processes

Combinatorial Processes
Sequential Processes
Clock Enables
Two Process Method
State Machines

Quiz 5
10 questions
Section 6: Subprograms

Chapter 6 – Subprograms (pages 201 – 238 / 207 – 244)
Chapter 8 - Resolved Signals (pages 261 - 286)
Procedure Parameters
Concurrent Procedure Call Statements
Visibility of Declarations
Basic Resolved Signals
Resolved Signals, Ports, & Parameters

Quiz 6
10 questions
Section 7: Packages

Chapter 7 - Packages and Use Clauses (pages 239 – 260 / 245 – 266)
Chapter 9 – Predefined and Standard Packages (pages 287 – 314 / 293 – 336)
Chapter 12 / 13 - Components and Configurations (pages 335 – 358 / 417 - 448)
Package Declarations
Package Bodies
Use Clauses
The Predefined Packages standard and env
IEEE Standard Packages
Configuring Component Instances
Configuration Specifications

Quiz 7
10 questions
Section 8: Design for synthesis

Chapter 14 / 21 – Design for Synthesis (pages 375 – 411 / 633 – 667)
Synthesizable Subsets
Use of Data Types
Interpretation of Standard Logic Values
Modeling Combinatorial Logic
Modeling Sequential Logic
Modeling Memories
Synthesis Attributes

Quiz 8
10 questions
Section 9: Advanced topics

Chapter 10 / 11 Aliases (pages 315 – 323 / 355 – 363)
Chapter 11 / 12 Generic Constants (pages 325 – 332 / 365 – 372)
Chapter 13 / 14 Generate Statements (pages 359 – 372 / 449 - 473)
Aliases for Data Objects
Aliases for Non-Data Items
Generic Constants
Generate Iterative Structures
Conditionally Generating Structures

Quiz 9
10 questions
Section 10: Additional libraries

Additional libraries

Quiz 10
5 questions

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Clyde R. Visser, P.E., Embedded Systems and FPGA Engineer, UCI Extension Instructor

Clyde R. Visser, P.E. is a senior electronics engineer at Physical Optics Corporation. He has a Bachelor of Science degree in Electrical Engineering (BSEE) with emphasis in Computer Engineering received from the California Polytechnic University at Pomona. He has over 30 years engineering experience in the telecommunication, data communication, medical, and power conversion systems industries using embedded systems. He holds one patent, is a licensed electrical engineer, and holds a Technician class amateur radio license. He is also a Senior Member of the Institute of Electrical and Electronic Engineers (IEEE) and is licensed to pratice electrical engineering in the state of California.

Mr. Visser has been designing with FPGAs (Field Programmable Gate Arrays) and PLDs (Programmable Logic Devices) for the majority of his career. He has been designing FPGA logic using VHDL for the past 15 years. He has also taught courses in Embedded Systems Architecture, VHDL Design and Modeling of Digital Systems, and Digital Signal Processing with FPGA's at UC Irvine Extension for the past nine years.

Ready to start learning?
Take This Course