240 likes | 359 Views
Group M3 Jacob Thomas Nick Marwaha Craig LeVan Darren Shultz Project Manager: Zachary Menegakis. DSP 'Swiss Army Knife'. April 20, 2005. Overall Project Objective: General Purpose Digital Signal Processing Chip. MILESTONE 13 Short Final Presentation. Project Description.
E N D
Group M3 Jacob Thomas Nick Marwaha Craig LeVan Darren Shultz Project Manager: Zachary Menegakis DSP 'Swiss Army Knife' April 20, 2005 Overall Project Objective: General Purpose Digital Signal Processing Chip MILESTONE 13 Short Final Presentation
Project Description • We aimed to implement a “general discrete-signal network that appears, in various forms, inside many digital signal processing (DSP) applications.”[1] • Specifically, the circuit is a ‘comb’ filter followed by a second-order recursive network (referred to henceforth as a ‘biquad’).
Project Description (Huh?) • What does that mean? • ‘Comb’ = selective additive delay • ‘Biquad’ = Feedback loop with multiply and adds. • Overall effect is to implement 22 distinct functions based on the input coefficients.
Marketing • Motivation
Marketing –System Integration • How Does Our Circuit Fit Into the Bigger Picture? • Focus on Audio/Video Applications • Audio: • Digital Radios / MP3 Players (i.e. Motorola, Lucent, Texas Instruments) • Digital Music Synthesis / Sampling (i.e. Yamaha, Korg) • Noise Reduction (i.e. Dolby) • Video: • Comb Filter to separate color and brightness (i.e. Sony, Toshiba) • Others: • Motor Control Functions such as RPM (i.e. Ford, GE)
Design Process • How did you get from description to actual implementation?
Behavioral/AlgorithmicDescription • How exactly does it work?
Dataflow • Example of function 1 of 22: The Moving Averager • Our circuit implements a simple moving average over 8 or 16 data points. • An average is simply the sum of a data set divided by the number of data points. The moving average takes a set number of data points to be used and as new data comes in, old data "falls off" the end of the calculation. For example…
Dataflow A Moving Averager Smoothes a Signal to Reduce Noise
Dataflow A moving average over 8 data points: 1.0 1.125 1.375 2.25 3.0 3.0 3.625 4.75 4.125 4.75 4.625 4.25 0 4 1 6 3 9 5 0 6 7 2 1 8
Emulations - Soft-IP Top Level Verilog Verified Complex Function
Road to Verification – fp_mult verilog vs. schematic VSIM 1> run # x xxxxxx xxxxx * x xxxxxx xxxxx = x xxxxxx xxxxx # 0 000000 00000 * 0 000000 00000 = 0 000000 00000 # 0 011110 00000 * 1 011101 11000 = 1 011100 11000 # 0 100001 00100 * 0 100000 01000 = 0 100010 01101 # 0 100001 01110 * 0 100000 00001 = 0 100010 01111 # 0 100001 11100 * 0 100000 11110 = 0 100011 11010 # 0 100100 11110 * 0 100010 11000 = 0 101000 10110 # 1 100100 11110 * 1 100010 11000 = 0 101000 10110 # 0 100001 00010 * 0 100001 11110 = 0 100100 00000 # ** Note: $finish : fp_mult_tb0.v(41) # Time: 9 ns Iteration: 0 Instance: /tester
Road to Verification – fp_add verilog vs. schematic • VSIM 1> # x xxxxxx xxxxx + x xxxxxx xxxxx = x xxxxxx xxxxx # 0 000000 00000 + 0 000000 00000 = 0 000000 00000 # 0 011110 00000 + 1 011101 11000 = 0 011011 00000 # 0 100001 00100 + 0 100000 01000 = 0 100001 11000 # 0 100001 01110 + 0 100000 00001 = 0 100001 11110 # 0 100001 11100 + 0 100000 11110 = 0 100010 01101 # 0 100100 11110 + 0 100010 11000 = 0 100101 00110 # 1 100100 11110 + 1 100010 11000 = 1 100101 00110 # 0 100001 00010 + 0 100001 11110 = 0 100010 10000 # ** Note: $finish : fp_add_tb0.v(40) # Time: 9 ns Iteration: 0 Instance: /tester
Road to Verification – Top Level Structural • Verified all of the functions for the ‘Swiss Army Knife’ in Schematic. • Plotted outputs using custom made code & MatLab. • From plots it is evident that the accuracy is excellent.
Issues Encountered • Misunderstanding of DSP terms and main blocks represented in IEEE paper. • Booth encoding was time consuming and problematic. • Imaginary numbers proved less of a difficulty than we initially thought. • Issues correctly identifying the source of errors in analog simulation.
Specs • Pin Specs • Inputs (76 pins) • X[n] : 12 pins • a1, a2, b0, b1, b2: 5 * 12 = 60 pins • vdd, gnd, N, c1 : 4 * 1 = 4 pins • Outputs (12 pins) • Y[n] : 12 pins • TOTAL: 88 pins
Specs • Part Specs • Fp_add: • Transistors: 2,274 • Area: 103.5450μm x 124.200μm = 12,860.29μm2 • Density: 0.18 • Fp_mult: • Transistors: 2,464 • Area: 95.5450μm x 141.750μm = 13,543.50μm2 • Density: 0.18 • Comb: • Transistors: 6,290 • Area: 99.360μm x 151.290μm = 15,032.17μm2 • Density: 0.42
Specs • Chip Specs • Transistors: 34,564 • Area: 434.520μm x 395.460μm = 171,835.28μm2 • Density 0.20
Layout • Layer Masks • Full chip layout
Conclusions • Jake • Layout? • Nick • Layout / Sims? • Darren • Verilog / Matlab / C / DSP? • Craig • Verilog / schematic / layout?