Designing with VHDL

Comprehensive Introduction to the VHDL Language

TechSource Systems Pte Ltd

Course
Highlights

This three-day course provides a thorough introduction to the VHDL language.

The emphasis is on:

  • Writing efficient hardware designs
  • Performing high-level HDL simulations
  • Employing structural, register transfer level (RTL), and behavioral coding styles
  • Targeting Xilinx devices specifically and FPGA devices in general
  • Utilizing best coding practices

What’s New for 2021.1

  • All labs have been updated to the latest software versions
TechSource Systems Pte Ltd

Who Should
Attend

Engineers who want to use VHDL effectively for modeling, design, and synthesis of digital designs.

TechSource Systems Pte Ltd

Course
Prerequisites

Basic digital design knowledge.

TechSource Systems Pte Ltd

Course
Benefits

After completing this comprehensive training, you will have the necessary skills to:

  • Implement the VHDL portion of coding for synthesis
  • Identify the differences between behavioral and structural coding styles
  • Distinguish coding for synthesis versus coding for simulation
  • Use scalar and composite data types to represent information
  • Use concurrent and sequential control structure to regulate
    information flow
  • Implement common VHDL constructs (finite state machines
    [FSMs], RAM/ROM data structures)
  • Simulate a basic VHDL design
  • Write a VHDL testbench and identify simulation-only constructs
  • Identify and implement coding best practices
  • Optimize VHDL code to target specific silicon resources within the Xilinx FPGA
  • Create and manage designs within the Vivado Design Suite
    environment

Partners

TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

TechSource Systems is MathWorks Authorised  Reseller and Training Partner

Upcoming Program

  • Please keep me posted on the next schedule
  • Please contact me to arrange customized/ in-house training

Course Outline

Introduction to VHDL

Objective: Discusses the history of the VHDL language and provides an overview of the different features of VHDL.

  • Describe the original intent of VHDL and how this intent has influenced the design of the language
  • Define key terms and concepts in relationship to VHDL
  • Describe the different coding styles that are available in VHDL
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

VHDL Design Units

Objective: Provides an overview of typical VHDL code, covering design units such as libraries, packages, entities, architectures, and configuration.

  • Describe the design units that are available in VHDL code
  • Define the library and packages and how they are declared
  • Explain entity and architecture syntax and declarations

VHDL Objects, Keywords, Identifiers

Objective: VHDL Objects, Keywords, Identifiers.

  • Use appropriate keywords in VHDL
  • Describe identifiers and the rules for writing identifiers
  • Comment a piece of VHDL code
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Scalar Data Types

Objective: Covers both intrinsic and commonly used data types.

  • Use appropriate data types when declaring ports and signals
  • List legal values for std_logic data types
  • Create scalar data types

Composite Data Types

Objective: Covers composite data types (arrays and records).

  • Describe what composite data types are
  • Create composite data types (array and record)
  • Declare one-dimensional and two-dimensional arrays
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

VHDL Operators

Objective: Reviews all VHDL operator types.

  • Analyze all the operators that are available in VHDL
  • Use these operators in VHDL code

Concurrency in VHDL

Objective: Describes concurrent statements and how signals help in achieving concurrency.

  • Describe what a signal is and how it behaves in a concurrent use
  • Describe how to define a constant and how it behaves
  • Define the event and transaction
  • Define the concept of data cycles
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Concurrent Assignments

Objective: Covers both conditional and unconditional assignments.

  • Define the types of concurrent statements
  • Use the generate statement in your code
  • Show how to make unconditional and conditional assignments

Processes and Variables

Objective: Introduces sequential programming techniques for a concurrent language. Variables are also discussed.
Objective: Covers both conditional and unconditional assignments.

  • Describe what a process is and why it is beneficial
  • Explain the purpose and proper implementation of a process sensitivity list
  • Show how to define variables and compare and contrast them to signals
TechSource Systems Pte Ltd

Conditional Statements in VHDL: if/else, case

Objective: Describes conditional statements such as if/else and case statements.

  • Enumerate control structures within a process
  • Use if/else and case statements in your code
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Sequential Looping Statements

Objective: Introduces the concept of looping in both the simulation and synthesis environments.

  • Describe the available looping structures in VHDL and where they can be used

Delays in VHDL: wait Statement

Objective: Describes conditional statements such as if/else and case statements.

  • Describe the delay types available in VHDL
  • Define the four types of the wait statement
  • List the key concepts for good coding style with respect to synchronous processes
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Introduction to the VHDL Testbench

Objective: Introduces the concept of the VHDL testbench to verify the functionality of a design.

  • Define a testbench
  • Write a simple testbench
  • Identify the basic components of a testbench

VHDL Assert Statements

Objective: Describes the concept of VHDL assertions.

  • Define a VHDL assertion and its syntax
  • Write an assert statement
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

VHDL Attributes

Objective: Describes attributes, both predefined and user defined.

  • Enumerate the three classes of “tic” attributes
  • Use signal attributes in VHDL code
  • Demonstrate how to locate and employ synthesis and implementation attributes

VHDL Subprograms

Objective: Covers the use of subprograms in verification and RTL code to model functional blocks.

  • Describe the use of subprograms in VHDL coding
  • Differentiate between functions and procedures
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

VHDL Functions

Objective: Describes functions, which are integral to reusable and
maintainable code.

  • Write functions in your VHDL code
  • Use function overloading in the code

VHDL Procedures

Objective: Describes procedures, common constructs that are also important for reusing and maintaining code.

  • Describe procedures and their syntax
  • Write procedures in your VHDL code
TechSource Systems Pte Ltd

VHDL Libraries and Packages

Objective: Demonstrates how libraries and packages are declared and used.

  • Enumerate the frequently used standard libraries and identify the relevant contents of each
  • Explain how to create packages and libraries
  • Describe the contents of a package and a library
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Interacting with Simulation

Objective: Describes how to interact with a simulation via text I/O.

  • Indicate the various points in the development flow appropriate for simulation
  • Explain the contents of the TextIO library (output capabilities only)

Finite State Machine Overview

Objective: Provides an overview of finite state machines, one of the more commonly used circuits.

  • Describe what a finite state machine is
  • Describe the basic VHDL considerations for a finite state machine
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Mealy Finite State Machine

Objective: Describes how to implement a Mealy state machine in which the output is dependent on both the current state and the inputs.

  • Describe what a Mealy finite state machine is

Moore Finite State Machine

Objective: Demonstrates how to implement a Moore state machine in which the output is dependent on the current state only.

  • Describe what a Moore finite state machine is
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

FSM Coding Guidelines

Objective: Describes the guidelines and recommendations for using one or more procedural blocks when coding a finite state machine.

  • Enumerate principle good programming practices when using state machines
  • List several mechanisms for implementing finite state machines

Vivado Simulator and Race Conditions in VHDL

Objective: Introduces the Vivado simulator simulation environment. Race conditions are also discussed.

  • Describe how the Vivado® simulator works
  • Using the Vivado simulator
  • Define race conditions in VHDL
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

Writing a Good Testbench

Objective: Explores how time-agnostic, self-checking testbenches can be written and applied.

  • Describe how a self-checking testbench can be constructed
  • Illustrate proper annotation techniques

Targeting Xilinx FPGAs

Objective: Focuses on Xilinx-specific implementation and chip-level optimization.

  • Describe the challenges of using an HDL approach for FPGA designs
  • Identify the factors that directly affect FPGA timing and performance
  • Identify the trade-offs and guidelines for logic inference and instantiation
  • Describe typical synthesis compiler options and their benefits
  • List synthesis considerations unique to Xilinx FPGAs
TechSource Systems Pte Ltd
QUICK ENQUIRY