Signal Processing Using Digital Technology
Jeremy Barsten Jeremy Stockwell May 6, 2003 Advisors:
- Dr. Thomas Stewart
- Dr. Vinod Prasad
Signal Processing Using Digital Technology Jeremy Barsten Jeremy - - PowerPoint PPT Presentation
Signal Processing Using Digital Technology Jeremy Barsten Jeremy Stockwell May 6, 2003 Advisors: Dr. Thomas Stewart Dr. Vinod Prasad Digital Signal Processor Project Description Design and Simulation of VLSI Processor Design and
Project Description Design and Simulation of VLSI
Design and Simulation of the VHDL
FPGA Problems.
All purpose digital signal processor
Useable for a variety of applications:
Audio and Video Cellular Technology
Adapted depending on the application.
High-level Block Diagram:
Input Processed Signal Signal
DIGITAL SIGNAL PROCESSOR
Manipulating a digital input utilizing
Direct Form II realization of an IIR
X(n) w(n) b0 y(n)
b1
b2 w(n-1) w(n-2)
Z-1 Z-1
W(n)=X(n)-a1W(n-1)-a2W(n-2) Y(n)=b0W(n)+b1W(n-1)+b2W(n-2)
Each signal will be analog in nature. Requires an analog-to-digital converter
Tried to use the 8-bit A/D and D/A
Any basic signal processor consists of
A n-bit by n-bit multiplication will take
This answer will be added to previous
Cellular Multiplication:
a3 a2 a1 a0 b0 b1 b2 b3 p7 p6 p5 p4 p3 p2 p1 p0
For 2’s complement addition and
2’s Complement Block
2’s B L O C K
2’s Complement Block
Need to add circuitry to make the multiplier
The values from the converter will always be
Need blocks on both inputs and the output of
Special case: input of 10000 and output of
Basic cell for the adjustment 2’s
Cin Ai Sout Bi Cout SELECT D1 Q D0
ai '1'
Cell 1 Cell 2 Cell 3 Cell 4
a0 1 a1 a2 a3 select i0 i1 i2 i3 cout
The blocks on the previous slide will be
The select bit for the input will be the
The select bit for the output will be the
11 different stages that the VLSI
Used 12 D-type flip-flops to created the
ω(n) -> ω(n-1)
11
ω(n-1) -> ω(n-2)
10 Yout Rmult Radd 9 Rmult
ω(n-2)
b2 8 Radd Rmult Rtemp 7 Rmult
ω(n-1)
b1 6 Rtemp
ω(n)
b0 5 Rmult Radd 4
ω(n) ω(n-2)
a2 3 Radd Rmult x(n) 2 Rmult
ω(n-1)
a1 1 Sum Product Add2 Add1 Mul2 Mul1 Cycle
Needed to add overflow protection for
Investigate the speed of the entire
* 16-bit ripple carry adder will have 34 gate delays
* 16-bit CLA adder will have 10 gate delays
Implemented serial and parallel
Area Delay Area Delay Area Delay Serial Multiplier 7.14% 96.88ns 13.52% 210.8ns 24.49% 503.68ns Parallel Multiplier 10.71% 27.41ns 28% 38.76ns 68.50% 75.12ns
To increase the speed a Modified
For (X)*(Y)
Bit Operation Yi+1 Yi Y add zero 1 add X 1 add X 1 1 add 2X 1 subtract 2X 1 1 Subtract X 1 1 Subtract X 1 1 1 Subtract 0
For example (X*Y)= 4 (0100) * -3(1101) If it isn’t an odd number of bits add a 0 to Y Segment multiplier (Y): 11010
A N-bit multiplier requires N/2 adds Results in a 60 ns delay for a 16 bit
Data Management is necessary to load
W(n)=X(n)-a1W(n-1)-a2W(n-2)
To accomplish this I used 6 cycles
Mult Adder Temp Reg
W(n-1) X(n)
Cycle 1
Mult Adder W(n)
W(n-2)
Cycle 2
Temp Reg
Mult Adder Temp Reg b2 W(n-2)
Cycle 3
Mult Adder Temp Reg b1 W(n-1)
Cycle 4
Temp Reg
Mult Adder Y(n) (Output) b0 W(n)
Cycle 5
Temp Reg
Cycle 5 Cycle 6
Temp Reg W(n-1) W(n-2) W(n-1) W(n)
Three 3-input multiplexers were used to
Cycle Mul1 Mul2 Add 000 This cycle is used to trigger the A/D convertor 001 a1 W(n-1) X(n) 010 a2 W(n-2) Temp Reg 011 b2 W(n-2) 100 b1 W(n-1) Temp Reg 101 b0 W(n) Temp Reg W(n-1) =>W(n-2) 110 W(n) => W(n-1)
Simulated DSP on Modelsim using
Checked the results with the same filter
Matlab DSP 0.905 0.905
0.5938 0.594
0.3896 0.3895
0.2556 0.2555
0.1677 0.1676
0.11 0.11
Multiplier was occasionally producing an
FPGA clocks Impulse response degradation