Advanced VHDL Course Syllabus
·
After
completing the course the student will:
·
Be
able to design in VHDL towards effective synthesis results.
·
Be
able to find differences between High-Level and Low-Level simulation results.
·
Understand
the semantics of synthesis attributes and directives.
·
Program
an FPGA while injecting real signals.
The course is composed of:
·
The
theory.
·
Workshops
in which the process of analyzing given designs and understanding their
semantics, is performed.
·
Practical
exercising using VHDL tools.
·
This
document describes:
·
The
subjects and the exercises to be given course.
·
Allocation
of hours.
·
Review
of Sequential and Concurrent statements.
·
Sequential
Statements:
·
Assignment
statements
·
Conditional
statements.
·
Loop
statements.
·
Synthesis
semantics of conditional and While/Loop statements.
·
Races
and hazards.
Given 4 high
level architectures, those find the minimum of two numbers. Only two give the same results after being
synthesized. Analyze these architectures and their performance (timing versus
space).
·
Design
an ALU.
·
Resolving
a bit.
·
Given
several high level architectures to resolve the first bit on:
·
Serial
operation.
·
Parallel
operation.
·
Races
and Hazards.
·
Synthesizing
and implementation of a design in an FPGA.
·
Comparing
High-Level and Low Level simulation results.
·
Combinational
networks.
·
·
Melay machine.
·
·
FSM
coding styles.
·
State
Encoding: Binary, Grey, One-Hot.
·
Synthesis
results:
·
Reports.
·
Critical
path
·
The
example is composed of: 1) a µprocessor, 2) its associated peripherals
and 3) System Bus Controller (SBC). The
design of the SBC will be presented including the problems in the synthesis
process.
·
UART.
·
Write
a state machine.
·
Write
and run a test program.
·
Synthesize,
and run the gate-level on the simulator.
·
Compare
the high-level and low -level simulation results.
·
VHDL
Attributes.
·
Synthesis
Attributes
·
Clock
·
Timing
Constrains.
·
Hierarchy.
·
Buses
·
Synthesis
Directives:
·
Translate/Translate-off
·
Black
Box.
·
Shared
resources.
·
Encoding
states and Enumeration type.
1. Given several
architectures corresponding to the same ENTITY, we have to find the differences
in high level design and low level design when using:
·
Clock.
·
Timing
constraints.
·
Shared
resources.
·
Encoding
states and enumeration type.
The differences
will be found by:
·
Structural
analysis of the synthesized design.
·
Comparing
the high-level and low-level simulation results.
2. Adding constraints to a design and checking
whether the design meets the constraints.
·
Synthesize,
and run the gate-level on the simulator using different attributes and
directives.
·
Compare
the high-level and low -level simulation results.
·
Program
an FPGA and inject real signals.
·
Managing
shared libraries. Testing and verification.
·
Organizing
the design.
|
Subject |
Lecture |
Workshop |
Exercising in class |
Total Hours |
|
Behavioral
description towards Synthesis |
2 |
8 |
4 |
14 |
|
Synthesis
of State Machine |
4 |
4 |
4 |
12 |
|
Synthesis
process |
4 |
4 |
4 |
12 |
|
Software
Engineering with VHDL |
2 |
0 |
0 |
2 |
|
Total |
12 |
16 |
12 |
40 |
[Chang97] K.C. Chang, Digital Design and Modeling with VHDL
and Synthesis,
IEE Computer Society
Press, ISBN 0-816-7716-3.
[Navami] Zainalabedin Navami VHDL Analysis and modeling of Digital Systems.
McGraw-Hill
series in electrical and computer engineering, ISBN 0-07-046472-3.
[DoPer90] Douglas
L. Perry, VHDL second edition. McGraw-Hill series on
Computer
Engineering, ISBN 0-07-049434-7, McGraw-Hill, 1990.
[LRM88] IEEE
Standard VHDL Language Reference Manual- std
1076-1987.
[Ams88] James. R Amstrong. Chip level Modeling
with VHDL.
Cliffs, NJ:
Prentice Hall, 1988.
[Coh89] David
Cohelho. A First course in VHDL.
1989.
[LipSc89] Roger
Lipsett, Carl Schaefer,
Description and Design.
[Carison91] Steve Carison,
Introduction to HDL-Based DESIGN Using VHDL.
Synopsys Inc, 1991.