+ +
- -
Online Training
 
Calendar  Details
Operating Systems
 
Calendar  Details
Programming
Calendar  Details
Processors
 
Calendar  Details
Communication
 
 
 
Calendar  Details
+ +
> >
- -

 
ac6 >> ac6-training >> Online Training >> Programmable Logic >> VHDL Language basics Download Catalog Download as PDF Write us Printable version

oV1 VHDL Language basics

formateur
Objectives
  • Comprehend the various possibilities offered by VHDL language
  • Be able to write simple VHDL components
  • Discover the complete design flow
  • Understand the logical synthesis notions
  • Implementing combinational and sequential logic
Prerequisites
  • Knowledge of digital technology
  • Concepts of Boolean algebra
  • Some programming concepts are desirable (whatever language)
Course environment
  • Theoretical course
    • PDF course material (in English)
    • Course dispensed using the Teams video-conferencing system
    • The trainer to answer trainees’ questions during the training and provide technical and pedagogical assistance through the Teams video-conferencing system
  • Practical activities
    • Practical activities represent from 40% to 50% of course duration
    • They allow to validate or deepen the knowledge obtained during the theoretical course
    • One Online Linux PC per trainee for the practical activities
    • Xilinx Vivado IDE
    • Code examples, exercises and solutions
    • The trainer has access to trainees’ Online PCs for technical and pedagogical assistance.
    • Some practical activities may be continued between training sessions and are checked by the trainer during the following session
  • At the start of each session, a period is devoted to an interaction between the trainees and the trainer to ensure the course fit their expectations and adapt it if needed
Duration
  • Total: 18 hours
  • 3 sessions, 6 hours each (excluding break time)
  • From 40% to 50% of training time is devoted to practical activities
  • Some Labs may be completed between sessions and are checked by the trainer on the next session

First session
From the logic gate to the FPGAs
  • Reminder on digital electronic
    • Combinational Logic
    • Sequential (Synchronous) Logic
  • Schematics / Hierarchical representation
  • Structure of an Integrated Circuit
    • SSI (small scale integration), TTL
    • MSI (medium scale integration), PALs, GALs, PLDs
    • LSI (large scale integration), CPLDs
    • VLSI (very large scale integration), ASICs, ASSPs, FPGAs
  • Development of logical architectures
  • Technology constraints
    • Interconnection methods (SRAM, Fuse, AntiFuse, Flash)
    • Clock distribution
    • Logic element types
    • Look Up Table
    • Basic logic cell
    • I/O modules
    • Timing issues
  • VHDL Contributions
    • Benefits of VHDL programming
    • The VHDL Design Flow
    • Programming
    • Simulation
    • Synthesis
    • Mapping
    • Place and Route
    • Timing Analysis
    • Bitstream generation
VHDL Basic concepts
  • The Entity / architecture concept
    • Entity declaration
    • Ports
    • Different styles of architecture
  • Libraries and context
    • The “work” library
  • Component instantiation
    • Port map
  • Simulation flow and environment
    • The Testbench
  • Getting started with the IDE
  • Creating a project from scratch
  • Synthesis / Translate / Map / Place and Route (PAR) /BitGen
  • Report Analysis
  • Assigning I/O locations using Planahead (editing constraint file)
  • Schematics Views
  • Analyzing the placement
  • Flashing with Impact
Exercise:  Understanding the steps of design and programming
Exercise:  Getting started with the simulator, waveform generation and analysis
Second session
VHDL Syntax
  • Lexical items
    • Comments
    • Identifiers and keywords
    • Characters, Strings, Numbers, Bit strings
  • Constants
  • Signals
  • Variables and aliases
  • Data types
    • Scalar types
    • Integer
    • Real
    • Enumerated type
    • Physical types
    • Composite types
    • Array
    • Record
    • Special types
  • Library and Packages
    • Standard package
    • IEEE packages
    • Std_logic_1164 package
    • Multi-valued types
    • Multi-driver and resolved types
    • Numeric types
  • Type conversion
  • Aggregates
  • Attributes
    • Type attributes
    • Signal attributes
Exercise:  Getting started with the simulator, waveform generation and analysis
Third Session
Combinational logic in VHDL (1st part)
  • Concurrent instructions
    • Component instantiation
    • Signal affectation
    • Simple affectation
    • With… Select… When statement
    • When… Else statement
    • Unaffected keyword
    • Variable aggregates
    • Relational operators
    • Arithmetic operators
    • Concatenation / Slicing
Combinational logic in VHDL (2nd part)
  • Sequential instructions
    • Processes
    • Sensitivity list, Wait statement
    • Potential interpretation incoherencies between logical synthesis and simulation
    • Signal affectation
    • Transparent Latch
    • Use of variables
    • If… Then… Else statement
    • Case… When statement
    • Null statement
    • Iterative statements:
    • For loop
    • While loop
    • Conditional Iteration
  • Numeric_std / Numeric_bit packages
    • Defined Types and Operators
    • Conversion functions
  • Ambiguity about the types and the « use » clause
Exercise:  Coding, simulating and synthesizing a bounds enforcer
Exercise:  Designing a 7-segment decoder
Exercise:  Designing a 4-bit adder
Synchronous logic in VHDL
  • Limits of asynchronous designs
  • Synchronous Design, Registers and Timing
  • Pipeline notion
  • D Flip-flop description
  • Use of Variable for synchronous process
    • Variable Synthesis
  • Reset and Set management
  • Clock Enable
  • Tri-state buffers description
  • Synchronous design methodology
  • Memory Synthesis
    • Asynchronous RAM
    • Synchronous RAM
  • Single port
  • Double port
  • Pipelined
    • ROM
    • IP generator introduction
Exercise:  Designing a counter/decounter
Exercise:  Designing a FIFO