Global training solutions for engineers creating the world's electronics

Expert VHDL (Inklusive OSVMM & UVV)

Advanced Level - 5 Tage

view dates and locations
In English

Expert VHDL Expert VHDL ist ein intensives 5-tägiges Fortgeschrittenentraining. Entwickler steigern mit diesem Training die Produktivität durch Ausbau von VHDL-Codierungs- und -anwendungsfähigkeiten. Der Fokus in den zwei unabhängigen Modulen liegt auf Sprache und Synthese, Wartbarkeit und Wiederverwendbarkeit des Designcodes, Testbenches und den neuesten Verifikationstechniken - incl. einer Einführung in OVL/PSL und OSVMM und UVVM.

  • Expert VHDL Design (2 Tage) ist für Design-Ingenieure, die ihre Kenntnisse in der RTL-Synthese mit VHDL vertiefen sowie ihren VHDL-Codierungsstil mit Blick auf Wartbarkeit und Wiederverwendbarkeit des Design-Codes verbessern möchten. Dieser Teil enthält auch die Einführung zu OVL/PSL.

  • Expert VHDL Verification (3 Tage) ist für Design- und Verifikationsingenieure, die Testbenches in VHDL oder Verhaltensmodelle für die funktionale Verifikation entwickeln. Fortgeschrittene VHDL-Sprachkonstrukte werden anhand einer praktischen Testbench-Methode dargestellt. Die alternativen OSVMM und UVVM Methoden werden dann eingeführt und alle drei verglichen und gegenübergestellt.


Die Module können als Komplettkurs oder einzeln besucht werden. Sie bauen auf dem Doulos Industriestandard-Kurs "Comprehensive VHDL" auf. Sorgfältig entwickelte praktische Übungen machen ca. 50 % des Trainings aus und verfestigen das Erlernte im Kontext der aktuellsten Tools, Verfahren und Methoden.

Simulation
  • Aldec Active HDL™ & Riviera-PRO™
  • Cadence Incisive®
  • Mentor Graphics ModelSim® & Questa®
  • Synopsys VCS®
Synthesis
  • Synopsys Synplify Pro®
  • Synopsys Design Compiler®
  • Mentor Graphics Precision® RTL


Die verfügbaren Tools für einen geplanten Kurs können variieren. Präferenzen können im Buchungsprozess ausgewählt werden. Oder wenden Sie sich bitte an Doulos, um spezifische Anforderungen zu besprechen.

Zielgruppe

  • Designingenieure, die die Effizienz ihrer Hardwaredesigns verbessern und die Produktivität erhöhen möchten.
  • Design- und Verifikationsingenieure, die effektive Testumgebungen zur Verifikation von komplexen Designs und Systemen strukturieren möchten.

 

Kursinhalte

  • Funktionen der Sprache VHDL, über das Erlernte in einem Grundlagenkurs hinaus
  • Ein tieferes Verständnis der Sprache und Anwendung von VHDL zur mühelosen Fehlerbehebung bei VHDL-Simulations- und -Syntheseproblemen
  • Ermöglicht die Wiederverwendung von Code
  • Die Prinzipien und Details, wie das Problem der Designverifikation mit VHDL angegangen werden kann
  • Wie strukturiert und schreibt man große und komplexe VHDL-strukturierte Verifikationsumgebungen
  • Die OSVVM- und UVVM-VHDL-Verifizierungsmethoden

 

Voraussetzungen

Um den größten Nutzen aus diesem Fortgeschrittenentraining ziehen zu können, ist die Teilnahme an Doulos Comprehensive VHDL oder vergleichbarem Training sowie mindestens 6-monatige Erfahrung mit VHDL erforderlich. Teilnehmer am Expert Design-Modul benötigen Vorkenntnisse in RTL-Codierung und Synthese mit VHDL.

Kursunterlagen

Die Doulos-Kursunterlagen sind für ihren umfassenden Informationsgehalt und die benutzerfreundliche Präsentation allgemein bekannt. In ihrem Aufbau, Inhalt und ihrer Themenbehandlung sind sie einzigartig im HDL-Trainingsbereich, was sie zu begehrten Nachschlagewerken hat werden lassen. In den Kursgebühren sind enthalten:

  • Kursskripte mit vollständigem Stichwortverzeichnis, die ein komplettes Referenzhandbuch darstellen
  • Arbeitsbuch mit nützlichen Beispielen zur praktischen Anwendung
  • Doulos VHDL Golden Reference Guide für Sprache, Syntax, Semantik und Tipps
  • Tour Guides (zur Unterstützung der Tools und Technologien Ihrer Wahl)

 

Struktur und Inhalt

Expert VHDL Design (Days 1-2)

 

RTL Synthesis and Synchronisation


Synthesis of Combinational Logic • Synthesis of Sequential Logic • Combinational and Sequential Together • Variables in Clocked Processes • How Many Registers? • Resolution Functions and Drivers • Unresolved Types • Synchronous Design • Synchronous Design Rules • Non-Synchronous Features • How Clever is Your Synthesis Tool? • Resource Sharing • Synthesizing Arithmetic - WYSIWYG • Eliminating the Mux • Shift Left/Right • Forcing an Implementation • Synthesis Attributes • Inference or Instantiation? • Static Timing Analysis • Timing Analysis Exceptions • Re-timing and Pipelining • Timing Analysis Exceptions • Hierarchy and Optimization • Registered Ports • Asynchronous Inputs • Input Hazard • • Metastability • Synchronizer in VHDL • Multiple Clock Domains • Transferring Data Between Clock Domains • Using a FIFO for Synchronisation • Synchronising Reset

Writing Readable Designs


VHDL Features for Abstraction • Record Types • Using Record Fields • Aggregates • Using Records for Wiring • Connecting Records • Inside a Peripheral • Multiplexed Bus Structure • Multiplexing Records • Representing Register Maps • Accessing Individual Registers • Accessing the Status Register • Collecting Registers Together • Alias • Using Aliases with Vectors • Using Alias with a Bus • Other Uses of Alias • Named Ranges • Using Named Ranges • Summary

Writing For Re-Use


Language-Level Reuse • Reusing Code Fragments • Standard Component Reuse • Procuring IP • Writing Reusable RTL IP • Reuse Tradeoffs • Example of a Regular Structure • Arrays of Arrays • Generics • Type Generics • Array Attributes • Generate Statement • More on Generate Statements • VHDL-2008 Generate Statements • Implementing the Behavior • Unconstrained Array Ports • Parameterizing the Data Width • VHDL-2008 Arrays • Multidimensional Arrays • Flattening Matrices • Multidimensional Arrays of Ports • Getting and Setting Rows • Architecture Using 2D Arrays • Instancing The Design • Optional Ports • Default On Component

Advanced Coding Styles


Subprograms • Procedures • Parameter Class, Mode, and Type • Subprogram Overloading • Signal Parameters • Synthesizing Procedures • Destructive Register Reads • Read Procedure • Procedure in FSM • Functions • Recursion • Recursive Function Example • Creating a Generic Counter • Creating a log2 Circuit • Recursive Instantiation • Recursive Component Declaration • Solving the Problem • Solving the Problem (VHDL-2008) • Synthesis Results

Finite State Machine Synthesis


State Transition Diagrams • Finite State Machines • A Simple Two Process Style • Another Two Process Style • One Process Style • State Machine Architecture • Comparison of Coding Styles • Easier Registered Outputs • Registered Outputs Using Local Variables • State Encoding • No Output Decoding • Unreachable States • Controlling Unreachable States • Explicit One Hot Style • Hand Optimised One Hot Style • Collision Signal • Too Many States? • FSM Summary

Packages and Configurations


Packages • Subprograms in Packages • Deferred Constants • VHDL-2008 Packages • Generics on a Package • Float Package • Fixed Package • Fixed Point Example • Use Clause Scope • Component Declaration and Instantiation • Component Declarations in a Package • Configuration • Default Binding Rules • Hierarchical Configurations • Nested Configurations • Port Name Changes • Type Conversions • Setting Generics • Configurations with Generate Statements

Properties and Assertions


Property versus Assertion • Applying Properties • Who Writes Properties? • Observability • A Simple Assertion • Simulation Checker or Monitor • Properties and the Specification • The Story So Far... • OVL • Using OVL with VHDL • OVL Packages • OVL Configuration • Instancing an Assertion • OVL VHDL Assertions • Example Assertions • PSL • The Elements of a Property • PSL Basics • The Structure of PSL • The Boolean Layer • Clocks and Default Clocks • Holds and Implication • next • The Temporal Layer • The Verification Layer • Verification Units • Modelling Layer • Using PSL with an HDL • Simulation of Temporal Properties • Summary of Benefits

Expert VHDL Verification (Days 3-5)

 

Functional Verification Methodology


What Is Verification? • Approaches to Verification • Verification Strategy • What to Verify? • Towards a Verification Plan • Don't Plan Everything • Identify Testcases • Verification Metrics • Coverage • Including Functional Coverage • Coverage Driven Verification • From Features to Tests • Checking • Verification Planning Revisited • The Basic Testbench • Verification Environment • Verification Methodologies • VHDL Methodology • Design for Verification • Glass Box Testing • Analysis to Choose Tests • Boundary Conditions & Corner Cases • Black Box Testing • Regression Testing • Stress Testing • Different Sorts of Stimulus

Subprograms and Protected Types


Using Abstraction in a Testbench • Subprograms • Procedures • Parameter Class, Mode, and Type • Subprogram Overloading • Signal Parameters • Functions • Subprograms in Packages • Impure functions • Protected types • Protected type body • Declaring a Shared Variable

More on File IO


The Basic Testbench • TEXTIO Output • Procedure READ • When READ Goes Wrong • Converting Values to Text Strings • Opening and Closing Files • Testing the File Open Status • Managing Text Files • Package STD_LOGIC_TEXTIO • Using Built-in Files • Reading Variable Length Data • Files Without Textio • Binary Files • VHDL-2008 File IO

Transaction Level Verification


Structuring Testbenches • Build the Complete Testbench • Monolithic Testbenches are Inflexible • Hide DUT Interface from Testcase • Layered Architecture • Transaction Level Testcase • Making a Transaction in VHDL • Accessing the Fields • Communicating Transactions • A Simple Example • What is a (VHDL) Transaction? • Interfacing Without Events • Generating Transactions • Using Procedures with Signals • A Systematic Approach • Non-blocking Procedures • Bus Functional Modelling • Bus Functional Model • Bus Functional Model Using Get • Synchronization • Synchronization Channel • Summary

More on BFMs - Time in Testbenches


Bus Functional Modelling • Wait Statements • Wait Statements and Time • Inspecting the Event Queue • Example SRAM Timing • Setup Time Check • Hold Time Check • Combined Setup / Hold Time Check • Pulse Width Check • Entity Declarations • Passive Processes • Using Vital Packages • Setup/Hold Check With Vital • What About Transactions? • Concurrent Signal Assignments • Drivers • How to "See" Drivers • Multiple Driver Issues • Longest Static Prefix • Sequential Signal Assignments • Inertial Delay • Identical Successive Assignments • Inertial Delays • Inertial and Transport Delays • Sampling Data - RTL • Postponed Processes

Behavioral Modelling and Checkers


Checking Results • Variable Latency • Arrays of Records • Queues • VHDL Queue Implementation • Using Queues • Coping with Out-of-Order Completion • Scoreboarding • Dynamic Memory Allocation • Access Types • Allocators • Deallocating Memory • Writing to a FIFO • Rrading from a FIFO • Pointer Problems • Behavioural Modelling Example • Modelling the 2-wire Bus • Two Wire Slave Model • Protocol Implementation • Data Generation • Slave Procedure • Modelling State

Random Testing and Coverage


Verification - Reminder • Random Stimulus • Constraining Random Stimulus • Random Sequence of Valid Actions • Functional Coverage • Where Am I? • Concurrent Procedures • Coverage Procedure • Calling Coverage Procedures • Why Use Path Parameter?

Other Testbench Features


Completing our Methodology • Monitoring Internal Signals • Monitoring Internal Signals - VHDL-2002 • External Names • Monitoring Internal Signals - VHDL-2008 • Force and Release • The Objection Mechanism • Implementing Objection • Resolution Functions • Implementing Custom Objections • The Stop and Finish Procedures • Run-time Configuration • Implementing Run-time Configuration

Introduction to OSVVM


What is OSSVVM? • Randomization • Seed Management • Functional Coverage • Sampling • Specifying Bins • Specifying a Minimum Hit Count Per-Bin • Specifying Cross Bins • Specifying Ignore Bins • Displaying Coverage • Non-Repeating Randomize • Defining Explicit Weights • Weight by Coverage Shortfall • Logging • Redirecting to a Log File • Alerts • Stop Count • Disabling Alerts • Conditional Alerts • Hierarchical Alerts • Other Packages

Introduction to UVVM


What is UVVM? • Utility Library • Logging and Verbosity Control • Outputting Log Messages • Controlling Log Messages • Message IDs • Redirecting Log Messages • Alerts • Controlling Alerts • Reporting Alerts • Checks • Awaits • String Handling • Randomization • Signal Generators • Synchronization • BFM Common Package • Warnings • UVVM VVC Framework • UVVM Structure • UVVM Test Harness • UVVM Test Bench • Test Sequencer • UVVM Command Distribution • Example Command Distribution Methods • UVVM VHDL Network Model • VIP • Feature Comparison

Course Dates:
June 3rd, 2019 Munich, DE   Enquire
June 17th, 2019 Ringwood, UK   Enquire
July 8th, 2019 Ankara, TR   Enquire
July 29th, 2019 San Jose, CA   Enquire
September 23rd, 2019 Ringwood, UK   Enquire
October 7th, 2019 Munich, DE   Enquire
October 7th, 2019 Ankara, TR   Enquire
November 12th, 2019 Boston, MA   Enquire
November 12th, 2019 Columbia, MD   Enquire
December 9th, 2019 San Jose, CA   Enquire
indicates CONFIRMED TO RUN courses.

Looking for team-based training, or other locations?
Complete an on-line form and a Doulos representative will get back to you »

 

Upcoming Live Webinars

Image 1

What is an SBOM and why should I care?

Wednesday December 11 2024

1 hour session (All Time Zones)

In this webinar we are going to explain in as few words as possible what a Software Bill Of Materials (SBOM) is and why we need to know about them in embedded systems development.

Register Now

Image 1

The Keys to SystemC & TLM-2.0

Friday December 13 2024

1 hour session (All Time Zones)

This webinar is aimed at hands-on hardware or software engineers who might know Verilog or C but have no previous experience of SystemC. It will explain what you need to know to be successful with SystemC.

Register Now

Image 1

Designing with AMD Kria SOMs

Tuesday December 17 2024

1 hour session (All Time Zones)

This webinar will walk through the design process for using AMD Kria SOMs, including the use of Vivado and Vitis.

Register Now

Image 1

C/C++ Memory Management: Design and Debugging

Wednesday December 18 2024

1 hour session (All Time Zones)

This webinar explores best practices for avoiding memory issues in design and debugging memory usage issues in C and C++.

Register Now