Duration | Requirements | Agenda
| Scheduled Classes... |
|
Contact Esperan for more information or to request an on-site class. |
Testimonials
"Your trainer did a fantastic job with a tough group."
Introduction
There is increasing pressure on Hardware Designers to become bi-lingual. Design reuse, commercial Intellectual Property and distributed design teams are creating language neutral design methodologies, where an engineer may use VHDL for writing testbenches; Verilog and VHDL for RTL design and Verilog for gate level simulation.
Overview
VHDL for Verilog is an intensive course in VHDL for engineers who already have experience of Verilog. Based on Esperan's high-quality VHDL language and application training and delivered by trainers especially chosen for their in-depth knowledge of both languages, this course is the fastest and most effective method for Verilog engineers to understand the intricacies of VHDL and become proficient in the language.
Verilog and VHDL are close enough to be familiar, but can be frustratingly different in the detail. This course will explain the key language differences. For example, in VHDL:
- Both concurrent and procedural assignments can be made to the same object.
- Different objects are needed for the targets of blocking and non-blocking assignments.
- Case statements must be full and parallel by design.
- There are 9 logic values, but they are not part of the main VHDL standard! Neither are arithmetic operators for vectors!
Objectives
- To provide a complete understanding of the essential concepts of VHDL and how these differ from Verilog.
- To give you practical experience of writing VHDL for synthesis and verification.
- To give you the knowledge to approach your VHDL or dual language design project with confidence.
Duration
The course is based around a 3-day agenda, covering language basics; synthesis coding styles and testbench creation. We can also offer standard or customized versions of this course onsite or at the location of your choice.
Requirements
This course assumes prior knowledge of Verilog, for example from attendence at Esperan's Master Verilog Effectively training.
Description
This course covers:-
Language Basics
Language concepts and constructs, including use of high level data-types; issues with arithmetic operators and use of signals versus variables.
Synthesis Coding Styles
VHDL templates for inferring combinational and registered logic, and a thorough explanation of the rules for writing high quality, reusable RTL.
Advanced Constructs and Verification Issues
Use of subprograms and advanced constructs such as generics and generates. Language techniques for testbench design are also covered, including File IO.
Agenda
- VHDL language introduction
- Entity; architecture; hierarchy; configurations; processes; types; packages; libraries; comments; compilation order; language rules.
- Signals and Data-types
- Types; signal assignments; arrays; records; logic value sets.
- VHDL Operators
- Logical and relational operators; concatenation; array slices.
- Sequential Statements
- Process; if and case syntax; for loops; Multiple concurrent & sequential assignment statements; conditional and selected signal assignment.
- Sequential Statements and the Simulation Cycle
- Simulation cycle; wait statement; variables; loops
- Arithmetic Operators
- Operators; vendor arithmetic packages
- Definition of RTL Code
- Rules for describing combinational and registered logic in VHDL
- Synthesis Coding Styles
- State machine descriptions; if and case synthesis; initialization
- Advanced Synthesis Coding Styles
- Synthesis of variables; state vector encoding; synthesis directives; tri-states
- Functions & Procedures
- Function declaration and call; procedure declaration and call; parameter classes and modes; type qualification; resolution functions
- Advanced Concurrent VHDL
- Generics; generates
- Advanced Data Types
- Multi-dimensional arrays; type conversion and closely related types; subtypes; aliases
- Testbench Coding Styles
- Simple stimulus; assertions; clocks and resets; textio; pseudo-code based example
Course Labs
The labs have been designed to follow on from each other over the course of the training, building on code developed in each lab to create an overall design project.
The lab sessions include
- Familiarization with simulation and synthesis tools
- Describing and verifying combinatorial logic
- Creating registered logic
- Using vector arithmetic packages
- Structural design and hierarchy
- Verification using visualization of results
- State machine design
- Verification using script driven, self-checking testbenches
- Integration and verification of a third-party IP model
