|
Course
Description
Engineering innovation and creativity has been
and will always play pivotal role in the fast-pacing
high-tech economy. Among the engineering
disciplines, hardware design and software design
are two of the most interrelated areas. Hardware
engineers design new electronic circuits while
software engineers develop device drivers and
computer user interfaces.
However, hardware and software engineers often
do not understand benefits and limitations of their
counterparts. This often leads to poor collaboration
which may result in project delay as well as failure
to meet performance goals.
It is thus highly beneficial for hardware design
engineers to acquire crucial programming skills
such as writing low-level driver for device interface
and graphical Windows-based user interface.
After completing this practical workshop, you will
have the necessary skills to:
• Design hardware using FPGA (Field Programmable
Gate Array)
• Develop and test FPGA design using special
technique called Hardware-in-the-Loop
• Quickly and easily develop Windows-based
programs using C# programming language
• Add plug-in into C# program to perform advanced
plotting functions
• Write Windows-based user interface program that
performs low-level interface to your FPGA design
through USB
• Develop your own custom device driver by writing
.DLL (Dynamic Link Library)
Duration
2 days
Who Should Attend
Digital hardware designers who have basic FPGA design knowledge and want to a) learn about system-level FPGA design and testing techniques, b) learn more about Xilinx® design tools, and c) learn essential PC programming skills needed to complement and enhance their hardware design
Prerequisites
- Basic FPGA design knowledge,
- Basic programming skills, C or C++, will be useful but not compulsory
- Some basic knowledge of MATLAB will be useful but not compulsory
Course Outline
Day 1
•
Introduction to FPGA and Xilinx® FPGA design tools
• Introduction to MATLAB® and Simulink®
• Xilinx System Generator® for FPGA design
• FPGA design using Hardware-in-the-Loop
• Quick introduction to C++ and C# programming
languages
Day 2
•
Overview of Microsoft Visual C# Express 2008®
• Plotting functions in C# using Mitov Plotlab® plug-in
• How to access USB interface with C# program
through .DLL calls
• Develop your own FPGA-based USB oscilloscope
Lab Descriptions
• Lab 1: Overview of Xilinx ISE® 10.1 FPGA
design tools – a) HDL design flow, b) using
testbench, c) timing constraints, d) using
implementation options, and e) in-circuit
debugging using ChipScope® Pro
• Lab 2: MATLAB Simulink - a) use Simulink
tools to create a simple design, b) create a
subsystem and simulate using Simulink
• Lab 3: Xilinx System Generator - a) Xilinx
System Generator approach to FPGA design,
b) FPGA simulation using System Generator,
c) generate Xilinx FPGA bitstream, d) Create a
subsystem, and e) DSP functions using
System Generator
• Lab 4: DSP Design Tool and Hardware-inthe-
Loop – a) using FIR compiler to generate
filter coefficients, b) using System Generator
tools to generate filter coefficients, and c)
testing the filter design using Hardware-in-the-
Loop technique
• Lab 5: “Hello, World” in C# - use Microsoft
C# 2008 Express to write a simple Windows
program
• Lab 6: Stopwatch program - use timer as a
tool for controlling the program flow in C#
• Lab 7: Mitov PlotLab Plug-in for C# - a)
using Mitov PlotLab plug-in in C# to perform
plotting, and b) array in c#
• Lab 8: USB I/O Interface in C# - a) add DLL
module into C# program, and how to call its
library functions, b) calling FTDI DLL driver to
open and close the USB device, and c)
perform simple reading and writing real world
data (port) through USB
• Lab 9: Create your own USB Oscilloscope –
a) develop custom DLL device driver, b) add
oscilloscope FPGA design, and c) customize
the whole program to complete USB
oscilloscope |