TOPICS

Training materials
Training materials are renowned as the most comprehensive and user friendly available. Their style, content and coverage is unique in the HDL training world and has made them sought after resources in their own right. Class fees include:
Fully indexed class notes creating a complete reference manual
Workbook full of practical examples to help you apply your knowledge
Golden Reference Guide for language, syntax, semantics and tips
Tour guides (to support the tools and technologies of your choice).

Structure and Content
Expert VHDL Design (Days 1-2)

RTL Synthesis and Synchronisation
Synchronous Design • Synthesis of combinational and sequential logic • Variables in clocked processes • How Many Registers? • Synchronous Design Rules • Static Timing Analysis • Non-Synchronous Features • Timing Analysis Exceptions • Asynchronous Inputs • Input Hazard • Metastability • Synchroniser in VHDL • Multiple Clock Domains • Transferring Data Between Clock Domains • Using a FIFO for Synchronisation • Controlling a Flag from Two Clock Domains • Clock Divider in VHDL • Clock Divider Timing • Synchronising Reset • Re-timing and Pipelining • Hierarchy and Optimisation •REGISTERED Ports

Introduction to VHDL 2008 (Design)
Status of VHDL 2008 • Overview of VHDL 2008 • “Convenience” Features • Example (Design) • Changes to port maps • Major Changes in VHDL 2008 • New Packages • Extended Generics • Generics on a Package • Type Generics • Subprogram generics • VHDL 2008 Operators • VHDL 2008 Types • Statements

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 • RepresentingREGISTER Maps • Accessing Individual Registers • Accessing the StatusREGISTER• Collecting Registers Together • Alias • Using Aliases with Vectors • Using Alias with a Bus • Other Uses of Alias • • Named Ranges

Writing for Synthesis
Using NUMERIC_STD • Numeric_std and Std_logic_vector • Conversions • Summary of NUMERIC_STD • Arithmetic WYSIWYG • Eliminating the Mux • Forcing an Implementation • Inference or Instantiation? • Synthesis Attributes • How Clever is Your Synthesis Tool? • Resource Sharing • Eliminating Loop Dependencies • Multiple Drivers • Tri-state Inference • Clocked Tri-states • Dynamic Indexing • Handling Unknowns • Don’t Cares • STD_MATCH • One-Hot Decoding

Writing For Re-Use
Re-use Tradeoffs • A Universal Re-use Methodology? • Language-Level Re-use • Reusing Code Fragments • Standard Component Re-use • IP Deliverables • Writing Re-usable RTL IP • Example of a Regular Structure • Regular Ports • Types and Subtypes • Using Generics • Parameterised Ports • Array Attributes • Parameterising Ranges • Unconstrained Array Ports • Regular Implementation Structure • Using Generate • Parameterised Regular Implementation • Generate or Loop? • Generating Instances • Generating Attribute Values • Regular Output Logic • Parameterised Output Logic • More Multiple Driver Issues • Longest Static Prefix • Optional Ports • Default On Component • Component Libraries

Advanced Coding Styles
Subprograms • Procedures • Destructive Register Reads • Read Procedure • Functions • Subprograms in Packages • Recursion • Recursive Function Example • Creating a Generic Counter • Recursive Instantiation • Recursive Component Declaration • Solving the Problem • Recursion – Synthesis Results • Arrays of Arrays • Multidimensional Arrays • Flattening Matrices • Re-use Revisited • Multidimensional Arrays of Ports • Getting and Setting Rows • Architecture Using 2D Arrays • Instancing The Design

Finite State Machine Synthesis
State Transition Diagrams • Finite State Machines • Two Process State Machine in VHDL • Timing in a Synchronous Design • One Process State Machine Description • State Machine Architecture • Comparison of Coding Styles • Separate Output Decoding • EasierREGISTERED Outputs • Registered Outputs Using Local Variables • State Encoding • Unreachable States • Controlling Unreachable States • No Output Decoding • Explicit One Hot Style • Hand Optimised One Hot Style • Collision Signal • Too Many States?

Expert VHDL Verification (Days 3-5)

Functional Verification
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 • Verification Resources • Design for Verification • Glass Box Testing • Analysis to Choose Tests • Boundary Conditions & Corner Cases • Analysis to Choose Tests • Black Box Testing • Regression Testing • Stress Testing • Different Sorts of Stimulus • Random Stimulus • Constraining Random Stimulus • Random Sequence of Valid Actions • Checking Results

Subprograms
Using Abstraction in a Testbench • Procedures • Parameter Class, Mode, and Type • Functions • Subprograms in Packages • Signal Parameters • Subprogram Overloading • What is a (VHDL) Transaction? • Wait Statements and Time

Vector Based Testing
The Basic Testbench • TEXTIO Output • Opening and Closing Files • TEXTIO Input • Testing the File Open Status • Managing Text Files • Procedure READ • When READ Goes Wrong • Package STD_LOGIC_TEXTIO • Converting Values to Text Strings • Checking Expected Results • Using Built-in Files • Reading Variable Length Data • Files Without Textio • Binary Files • Testbench Start • Stopping A Testbench

Comparing Models
Comparing Results • Configuration • Default Configuration • Hierarchical Configurations • Nested Configurations • Checking RTL Vs. Gate Level • Sampling Data – RTL • Postponed Processes • Sampling Data – Gate Level • Interfacing Design Entities • Type Conversions • Strength Strippers • VHDL Netlist • Simulating the Netlist • VHDL Configuration • Using a Signature Register • Signature Analysis • Signature Analysis Improvements

Time In Testbenches
Inspecting the Event Queue • Example SRAM Timing • Setup Time Check • Hold Time Check • Combined Setup / Hold Time Check • Pulse Width Check • ‘0’ to ‘1’ Change • Entity Declarations • Passive Processes • Using Vital Packages • Setup/Hold Check With Vital • What About Transactions? • Concurrent Signal Assignments • Drivers • How to “See” Drivers • Sequential Signal Assignments • Inertial Delay • Identical Successive Assignments • Transport Delays

Coping With Latency
Variable Latency • Record Types • User Defined Array Types • Arrays of Records • Queues • VHDL Queue Implementation • Using Queues • Coping with Out-of-Order Completion • Scoreboarding • Shared Variables • Impure functions • Protected types • Protected type body • Declaring a Shared Variable

Properties and Assertions
Property versus Assertion • Applying Properties • Who Writes Properties? • Observability • A Simple Assertion • Simulation Checker or Monitor • Properties and the Specification • 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

Modelling Techniques
Modelling Components • Behavioural Modelling Example • Modelling the 2-wire Bus • Model Structure • Two Wire Slave Model • Protocol Implementation • Data Generation • Slave Procedure • Modelling State • A/D and D/A Models • Sampled Analogue Circuits • Dynamic Memory Allocation • Access Types • Allocators • Deallocating Memory • Writing to a FIFO • Reading from a FIFO • Pointer Problems

Transaction Level Verification
Structuring Testbenches • Transaction Level Testcase • Making a Transaction in VHDL • Communicating Transactions • A Simple Example • Generating Transactions • Using Procedures with Signals • A Systematic Approach • Non-blocking Procedures • Bus Functional Modelling • Interfacing Without Events • Bus Functional Model • Bus Functional Model Using get • Synchronization • Synchronization Channel • Synchronization Channel Details

Testbench Architecture
Verification – Reminder • Completing our Methodology • Monitoring Internal Signals • The Objection Mechanism • Implementing Objection • Run-time Configuration • Path Name • Implementing Run-time Configuration • Functional Coverage • Coverage Using Concurrent Procedures • Coverage Procedure • Calling Coverage Procedures • Why Use Path Parameter? • Verification Recommendations • Package Useful Functionality • Build the Complete Testbench • Monolithic Testbenches are Inflexible • Hide DUT Interface from Testcase • Layered Architecture • Interface Between Layers • Separate Top-Level Entities • Creating Multiple Instances

Appendix – Co-simulation
Embedded Systems • Logic Simulation • Instruction Set Simulation (ISS) • Native Compiled Software • Co-simulation Tools • Simulating Software Execution • Modelling Memory Systems • Synchronisation • Requirements for ISS • Hardware/Software Co-simulation Benefits • Foreign Language Interfacing • Requirements of a FLI • FLI Implementation • Interfacing to a C program • Foreign Architecture • Foreign Subprograms • Foreign Architecture Example • VHPI Example • VHPI Callback • VHPI Elaboration Code

Appendix – Advanced VHDL Language
Run-time Configuration Example • User API • Protected Type Declaration • Deferred Constants • Protected Type Body • getConfigInfo “Helper” Function • Text Processing • Protected Type Method • Avoiding Protected Types • Modified tbpack • A further simplification

Appendix – Introduction to VHDL 2008 (Verification)
Status of VHDL 2008 • Overview of VHDL 2008 • “Convenience” Features • Example (Design) • Example (Verification) • Improved IO • Changes to port maps • Major Changes in VHDL 2008 • New Packages • Extended Generics • Generics on a Package • Type Generics • Subprogram generics • VHDL 2008 Operators • VHDL 2008 Types • Statements.

  • PRIVATE
  • 10 Days
  • 0 Units
  • 0 Hrs

Select Your Currency

WOOCS 1.1.8
Drop Us A Query
[contact-form-7 id="5639" title="Drop Us A Query"]
© 2016, ALL RIGHTS RESERVED.
Create an Account