Documente Academic
Documente Profesional
Documente Cultură
Program
Morning
Introduction to DSP
What is DSP? How is it done?
Program
Afternoon
Intro to Xilinx System Generator
Xilinx Sysgen and its interaction with Matlab, Simulink & ISE.
Examples
Additional Topics
Other tools and additional comments
References
On the Roots of Digital Signal Processing, Parts 1 & 2, IEEE Circuits and Systems Magazine,
Vol. 7 Number 1 and 4
etc.
What is DSP?
From wikipedia
Digital signal processing (DSP) is the study of signals in a digital
representation and the processing methods of these signals. DSP
and analog signal processing are subfields of signal processing.
DSP includes subfields like: audio and speech signal processing,
sonar and radar signal processing, sensor array processing,
spectral estimation, statistical signal processing, digital image
processing, signal processing for communications, biomedical
signal processing, seismic data processing, etc.
What is DSP?
Digital Signal Processing (not Processors)
DIGITAL: Digital domain, as opposed to
analog. Everything is digital nowadays
SIGNAL: A physical quantity that changes
over time.
PROCESSING: Do something with the
signal, manipulate it in useful ways.
What is DSP?
We have always processed signals
to communicate
to understand and summarize scientific data
for entertainment
... etc.
Now we do it digitally, research new methods and algorithms and
constantly find new challenging and complex applications.
Many of the mathematical methods and algorithms used for signal
processing are well known, and were developed within other contexts.
Refer to the Circuits and Systems magazine series On the Roots of DSP, by
Andreas Antoniou for a history of DSP.
What is DSP?
So
We take them into the digital domain because it makes life easier
for us.
What is DSP?
Real signals
Digital domain
Processing
What is DSP?
DSP is made possible by mathematical research, the
digital computer and IC technology
How is
DSP Done?
DSP algorithms
Filters
FIR
IIR
How is
DSP Done?
DSP algorithms
Direct Digital
Synthesis (DDS)
Digital Up-converter
How is
DSP Done?
DSP algorithms
How is
DSP Done?
DSP applications
(DSPs: Back to the Future, ACM Queue article)
How is
DSP Done?
DSP algorithms shape DSP architectures
Efficient Looping
Zero overhead looping, addressing and calculations in parallel
Data formats
Diverse precisions, accumulator guard bits. Support for rounding, saturation and shifting.
Speed, cost & power-> Fixed point, Numeric fidelity-> floating point
How is
DSP Done?
What else does wikipedia say
DSP algorithms have traditionally run on specialized processors
called digital signal processors (DSPs). Algorithms requiring more
performance than DSPs could provide were typically implemented
using application-specific integrated circuit (ASICs). Today however
there are a number of technologies used for digital signal
processing.
These include more powerful general purpose microprocessors,
field-programmable gate arrays (FPGAs), digital signal controllers
(mostly for industrial apps such as motor control), and stream
processors, among others.
How is
DSP Done?
Nowadays there are several options for DSP applications
DSP
How is
DSP Done?
How do we choose?
Reading
Salvador Dali, 1981
FPGA Overview
An FPGA is a sea of gates. Lots of logic that
can be connected together to form different
combinational and sequential digital circuits.
An FPGA inside
DSP functions!!!
FPGA Overview
Xilinx Spartan 3 FPGA General FPGA Architecture
FPGA Overview
Xilinx Spartan 3 FPGA
CLB Structure
FPGA Overview
Xilinx Spartan 3 Memory
FPGA Overview
Xilinx Spartan 3 Clock Management
FPGA Overview
Xilinx Spartan 3 Routing
FPGA DSP
Functions
High end FPGAs Function generators & registers
Xilinx Virtex 5
FPGA DSP
Functions
DSP: Low cost FPGAs
FPGA DSP
Functions
DSP: Low cost FPGAs
LatticeECP-DSP
FPGA DSP
Functions
DSP: Low cost FPGAs
FPGA DSP
Functions
DSP: Low cost FPGAs
FPGA DSP
Functions
DSP: High end FPGAs
Xilinx and Altera both have High End FPGAs
with DSP enhancements
Barrel shifter
FPGA DSP
Functions
DSP: High end FPGAs
FPGA DSP
Functions
DSP: High end FPGAs
Tower of Enigmas
Salvador Dali, 1981
FPGA Overview
Remember a DSP is essentially a sequential
processing machine, with support to execute
(although most DSP do several things in parallel)
FPGA Overview
but some are very powerful processing
machines!
TIs C6712
ADs Blackfin
When to use
FPGAs
When do we choose FPGAs to do DSP?
FPGAs are good for
When to use
FPGAs
When do we choose FPGAs to do DSP?
FPGAs are not that good for
What else?
When to use
FPGAs
From Xilinx slides..
When to use
FPGAs
FPGA vs DSP
From an ACMQueue article
Time to Market
Performance
Price
Ease of Use
Power
Flexibility
ASIC
Longest
High
Low
Hardest
Low
Low
ASSP
Shortest
High
Low
Easiest
Low
Low
DSP
Short
High
Low
Easy
Low
High
FPGA
Short
High
High
Hard
High
High
MCU
Short
Lowest
Low
Easy
Low
High
RISC/GPP
Short
Low
High
Easy
High
High
When to use
FPGAs
FPGA vs DSP
From FPGA vendor (Altera at FPGA-DSP.com article)
When to use
FPGAs
FPGA vs DSP
From FPGA vendor (Xilinx at DSP Engineering article)
When to use
FPGAs
FPGA vs DSP and other options
DSP
GPP and MCUs with DSP enhancements (dsPIC, ARM DSP extensions)
High end CPUs (Intel, AMD doing processing for audio and images)
Comments?
Opinions?
Other issues?
Implementation
Issues
Issues that affect the implementation on an FPGA
Implementation
Issues
Frequencies
Implementation
Issues
Sampling frequency
Implementation
Issues
Sampling frequency
Implementation
Issues
Clock frequency
Implementation
Issues
Clock frequency
Implementation
Issues
Data rate
Implementation
Issues
Clock frequency and sample rate
Data at clock rate
Filter result available
every on clock cycle
Data at CE rate
Filter result takes
several clock cycles
to complete
Implementation
Issues
Clock frequency and sample rate
Clock at high speed
Data at CE rate
(sample frequency)
Each coefficient
is multiplied at
CE2 rate
Multiplication is
implemented with
shift-add logic, and
takes several cycles
to complete
Filter result takes
several clock cycles
to complete
Implementation
Issues
Clock frequency and sample rate
In the filter shown, timing between all signals must be synchronized to
achieve results
Use SYNCHRONOUS logic, as recommended for FPGAs
Different CE signals control what parts of the process are activated by enabling FFs
Implementation
Issues
Number representation, Bits and Word Widths
Operations on the data will change the word size to maintain full
precision
Scaling
Implementation
Issues
Number systems for binary representations
Fixed point
Traditional
Non traditional
Twos complement
Ones complement
Sign-Magnitude
Diminshed-1
Signed digit
RNS
Fixed point numbers on FPGAs (For now! High end FPGAs have support for
some floating point operations)
Implementation
Issues
Fixed point binary numbers
Implementation
Issues
Operation results have longer word lengths
Implementation
Issues
Overflow, saturation, rounding & scaling
Implementation
Issues
Overflow
An extra bit for the result will give the correct answer
Sign extension: 0011 + 0010 = 0101 (4 bit number = 5)
Implementation
Issues
Saturation
Implementation
Issues
Rounding
Implementation
Issues
Rounding
Implementation
Issues
Arithmetic Operations and Implementation Structures
Operations can be done using different approaches
Required precision
Implementation
Issues
Arithmetic Operations: Some multipliers
(from Andrakas web site, www.andraka.com)
Scaling Accumulator
Ripple-Carry Array
Implementation
Issues
Structures, Calculations and Optimizations
Filter structures
Pipelining
Power of 2 operations
Cordic algorithms
Resource sharing
Etc.
Implementation
Issues
Filter Structures (from Peled and Liu paper)
Implementation
Issues
Pipelining
Implementation
Issues
Operations and Structures
Refer to papers and articles:
FPGAs: the high end alternative for DSP applications, Chris Dick,
DSP Engineering
Etc.
Implementation
Issues
Typical DSP design flow
Task
Work on
Design Simulate
Models
Platform
Implementation
Issues
Possible design flows
Code-based
Model-based
Mixed
Tools?
Three Apparitions
of the Visage of Gala
Salvador Dali, 1945