EEC 281 - VLSI Digital Signal Processing
Winter 2024

Course Information

Course Readings

Read by Paper Comments
Th, Jan 11 Programmable DSP Architectures: Part I, Edward A. Lee, ASSP Magazine, October 1988. Easy to read article on the most notable features of programmable DSP processors. These first-generation DSP processors were more clearly distinguished from general-purpose processors than they are today. Note the publication date of 1988—many of the technical specifications are impressive only when considered in the context of the technology available at that time.
Reference Programmable DSP Architectures: Part II, Edward A. Lee, ASSP Magazine, January 1989. Easy to read article presenting an overview of issues of programming pipelined DSP processors with complex organizations.
When needed Notes on ECE Machines and Tool Setup
Notes on a few useful linux commands
Notes on Common Problems on ECE Machines
Make Frequent Backups of Your Work
Notes on ECE linux machines and your CAD tool environment setup
Notes on a few useful linux commands
When needed verilog: notes to run it
verilog: common pitfalls with suggestions
verilog: example code
Notes on running ncverilog here at UC Davis
When needed Quick Reference For Verilog, R. Madhavan [2up]
Verilog Quick Reference Guide, S. Sutherland, skim it
A very helpful and handy verilog reference.
Convenient and very nicely presented. Note that it covers aspects of verilog that shouldn't be used for sythesizable code such as signal strengths and primitives. [original]
When needed Notes on running Design Compiler
Notes and starter files for Synopsys' Design Compiler, and details on our standard cell library
Reference A Signed Binary Multiplication Technique, A. D. Booth, Quarterly Journal of Mechanics and Applied Mathematics, June 1951. Classic paper introduces the Booth Algorithm.
Reference High-speed Arithmetic in Binary Computers, O. L. MacSorley, Proceedings of the IRE, January 1961. Classic paper that introduces the Modified Booth's Algorithm which is commonly used in hardware implementations.
When assigned SPIM: A Pipelined 64 x 64-bit Iterative Multiplier, M. Santoro and M. Horowitz, IEEE Journal of Solid-State Circuits, April 1989. Classic paper is that apparently the first to describe the 4:2 adder. It certainly contributed to the popular use of the 4:2 and its use in adding multiplier partial products.
When needed matlab: notes for running
matlab: tips and functions for 281
Notes for running matlab here at UC Davis, and some functions and examples
Th, Feb xx
Skim.
An Algorithm for the Machine Calculation of Complex Fourier Series, James W. Cooley and John W. Tukey, Mathematics of Computation, April 1965. The paper that popularized FFTs.
Th, Feb xx
Skim.
Historical Notes on the Fast Fourier Transform, James W. Cooley, Peter A. W. Lewis, and Peter D. Welch; Proceedings of the IEEE, October 1967. Some notes on FFT history 2 years after the seminal Cooley & Tukey paper.
Reference Trends in Multicore DSP Platforms, Karam, AlKamal, Gatherer, Frantz, Anderson, Evans, IEEE Signal Processing Magazine, November 2009. A paper with a thorough and detailed survey of modern multicore DSP processors

Homework / Projects

Course Topics, Slides, Notes, and Handouts

Future details are tentative. Some slides will be updated during the quarter and marked .

Date Lecture Handouts Topics
Tue, January 9
1 Course Introduction
Key attributes of DSP processors
Course introduction
DSP overview
Seven basic diagrams
Chip design methodologies,
Th, January 11 2 Basic diagramsJAN 16
Chip design methodologies
Quantization Noise and Word Size
the multiply-accumulator (MAC),
convolution, FIR, dot products
Quantization noise, word width, and SNR
Number representations: fixed-pt integer: unsigned
Tue, January 16 3 Sign Extension
Floating Point
Number representations: fixed-pt integer: signed
Sign extension for 2's complement
Number representations: fixed-pt fractional
Number representations: Floating point
Number representations: Block floating point
Number representations: Redundant (carry-save)
3:2 carry-save adders
Th, January 18
4 Float-Fixed conversion
Adders & subtractors
Adders: Efficient Multiple Input
4:2 carry-save adders
Fast carry-save addition
Floating pt to fixed pt conversion
Adders & subtractors
Adders: multiple-input
Tue, January 23
5 Lecture 5
Verilog 1: Overview
Verilog 2: Language basics
Verilog 3: Time and delay
Verilog 4: Common mistakes
Verilog 5: Testing
Verilog 6: Decoder example
Adders: Faster CPAs
Verilog Overview
Verilog Language basics
Verilog Time and delay
Verilog Common mistakes
Verilog Hardware vs. testing
Verilog decoder examples
Adders: faster carry-propagate
Carry-Select adders
Th, January 25 6 Lecture 6
Flip-flops and registers
Robust clock design
Carry-Lookahead adders
FFs, registers, and The 9 Rules
Robust clock design
  Tue, January 30
7 Critical timing relationships
Synthesis
Multipliers
Booth encoding
Critical timing relationships
Synthesis
Multipliers
Booth encoding of multipliers
Th, February 1 8 Example Multiplier
Squaring
Fixed Input Multiplication
Example multiplier
Read paper by M. Santoro
Squaring
Fixed-input multiplication
Tue, February 6
9 dB
Digital Filter Coefficient Design
dB
Digital filters
Time-domain convolution
Frequency-domain multiplication
Digital filter coefficient design
Parks-McClellan and remez()
Th, February 8
10 Estimating Spectral Magnitude
FIR filter hardware
Saturation
Seeing the freq. response of filters
Estimating spectral magnitude of signals
FIR filter hardware
FIR scaling
Saturation I
  Tue, February 13 11 Rounding
Saturation II
Compression
Rounding
Th, February 15 12 Drive Through Processing
Complex Arithmetic
Drive through processing
Complex addition, multiplication, rotation, format conversion
Tue, February 20
Quiz 1
13
Th, February 22
14 Complex Signal Magnitude Estimation
Multiplier Scaling
Complex magnitude estimation
Multiplication scaling
Tue, February 27
15 Control and counters
FSMs
Control circuits
Counters
Finite state machine design
Th, February 29
16 Gen Complex Functions
Memories
Generating complex functions
Memories: categories, structures, types
Tue, March 5 17 Signals in Time and Frequency

Memories: macros, synthesized, off-chip
Memories: using in standard-cell ASIC designs
Signals in time and frequency
Th, March 7
18 DFT & FFT Background
FFT Algorithms
Discrete Fourier transform (DFT)
fast Fourier transform (FFT)
FFT processor architectures
Tue, March 12
19 Lecture 19
Multi-rate signal processing
downsamp_movie.m
Nyquist Filters
Multi-rate processing
Upsampling, decimation
Nyquist filters
Nyquist filters with upsampling
Viterbi decoders
Th, March 14
Quiz 2
20 Ref: Viterbi Decoding
Ref:Variable-freq clocking HW
Ref:The RRI FFT
Ref:Multiple Access
Ref:DSSS
Ref:DSSS Spreadsheet

Topical Outline

I.      Digital signal processing overview
        A.      DSP workloads
        B.      Example applications  
        C.      Programmable processors
II.     Processor building blocks
        A.      Verilog hardware description language
        B.      Binary number representations
        C.      Carry-propagate adders
        D.      Carry-save adders
        E.      Multipliers
        F.      Fixed-input multipliers
        G.      Complex arithmetic hardware
        H.      Memories
III.    DSP algorithms and systems
        A.      FIR filtering
        B.      Processor control and datapath integration
        C.      Multi-rate signal processing
        D.      Example systems: FFT, Viterbi, DSSS, CDMA,.
IV.     Design optimization
        A.      Verilog synthesis to a gate netlist
        B.      Delay estimation and reduction
        C.      Area estimation and reduction
        D.      Power estimation and reduction


Last update: March 18, 2024