Title: Development and Verification of Parameterized Digital Signal Processing Macros for Microelectronic S
1Development and Verification of Parameterized
Digital Signal Processing Macros for
Microelectronic Systems
2Overview
- Introduction
- Background Information
- Implementation
- Results
- Conclusions and Future Work
31.1 Digital Systems
- Speed and Capacity
- Increasing Complexity
- Longer Design Times
- Increased Costs
- Time to Market
41.1 Digital Systems, cont.
- Engineers per Project
- Design for Reuse
- Build on Existing Designs
- Flexible Designs
- Library of Designs
51.2 Verification
- Testing
- Every Step of Design Process
- Reduce Errors
- Reduce Time Spent Correcting Errors
61.3 Digital Signal Processing
- Sampling
- Time Domain Representation
- Converting to Frequency Domain
- Fast Fourier Transform (FFT)
- Frequency Domain Representation
71.4 Research Goals
- Develop a Parameterized FFT
- Verification
- Rounders as Simple Example
82. Background
- Design for Reuse in VHDL
- DSP
- Verification
92.1 Design for Reuse in VHDL
- generic Statement
- generate Statement
- Conditional generates
- Loop generates
102.1 Design for Reuse, cont.
- generic example
- entity shiftregN is
- generic( data_width integer 25
- n integer 4)
- port( clock, resetn in std_logic
- write_data in std_logic_vector(data_width-1
downto 0) - read_data out std_logic_vector(data_width-1
downto 0))
112.1 Design for Reuse, cont.
- Conditional Generate Example
- assign_a if a_in1 generate
- YltA
- end generate assign_a
- assign_b if a_in/1 generate
- YltB
- end generate assign_b
122.2 DSP Overview
- Digital Signal Processing (DSP)
- Sampling
- Time Domain vs. Frequency Domain
- Fast Fourier Transform
132.3 Butterfly Structure
2-point input
2-point output
xS
142.4 Verification
- Bit-True Modeling
- Time to Develop
- Algorithm Errors
- Exact Match
- Approximate
- Comparison, Results Not Exact
- Shorter Time to Develop
- Already Existing
152.4 Verification, cont.
- Simulation
- Event Driven
- Timing Driven
- Testing
- External Hardware
- On-chip, BIST
162.4 Verification, cont.
173.1 Rounder Implementation
- Three Levels of Hierarchy
- Output Gain Stage Highest Level
- Configurable Rounder
- Fixed Rounder Lowest Level
- Increasing Functionality
- Parameterized to Increase Flexibility
183. Implementation
- Fixed Rounder
- Configurable Rounder
- Output Gain Stage
- FFT
193.2 Fixed Rounder
- Parameters
- input_width
- output_width
- fr_rad_pos
- ri, ro, and rt
- Functionality
- Signed Numbers
- Overflow
203.3 Configurable Rounder
- Parameters
- input_width
- output_width
- rndr_sel_width
- cr_rad_pos
- ri, ro, rc, and rt
- Functionality
- Shifting Input
- Signals
- d_in
- q_out
- cr_rndr_sel
213.4 Output Gain Stage
- Additional Parameters
- gain_width
- fr_rad_pos
- pr
- Functionality
- Configurable Rounder ? Multiplier ? Fixed Rounder
- Signals
- d_in
- q_out
- cr_rndr_sel
- gain
223.5 FFT Overview
- Radix 22 Single-path Delay Feedback (SDF)
- 2 Butterfly Types BF2I, BF2II
- Natural Order Input, Complex
- Bit-Reversed Order Output, Complex
- Parameters
- N
- input_width
- twiddle_width
233.6 Butterflies
- BF2I
- Passing Mode
- Active Mode
- Used in odd-numbered stages
- BF2II
- Passing Mode
- Active Mode
- t0
- t1
- Used in even-numbered stages
- Feeds into Complex Multiplier if not the last
stage
243.6 Stage Types
clock reset
clock reset
address
Last Stage
Shift Register
Shift Register
Twiddle ROM
BF2I
BF2II
Twiddle Multiply
prvs
to_next
prvs
to_next
s
t s
(i) BF2I stage stage_I
(ii) BF2II stage stage_II
253.6 Twiddle Factors
- Different for each N
- Used to replace the xS in the normal Butterfly
Structure - MATLAB
- Generates only needed ROMS
263.7 FFT Generation
- Loops for the Number of Stages -log2(N)
- Places each Stage
- Connects Multiplier to Correct ROM
- Connects Last Stage to Output
274. Results
- Rounder Results
- FFT Results
284.1 Fixed Rounder Results
294.2 Configurable Rounder Results
304.3 Output Gain Stage Results
314.4 FFT Presynthesis
324.5 FFT Prelayout
334.6 FFT Results, N8
344.7 FFT Results, N64
354.8 FFT Results, N256
364.9 FFT Results, N1024
374.10 FFT Layout, N64
384.11 Layout Results
- 64-point FFT
- 610.5 µm x 610.4 µm, 372649.2 µm2
- 159,074 Transistors
- 256-point FFT
- 455,305 Transistors
- 1024-point FFT
- 1,268,238 Transistors
395.1 Conclusions
- FFT simulated successfully
- 64-point
- Varying N
- Rounders simulated successfully. Fixed Rounder
parameters varied.
405.2 Future Work
- FFT Flexibility
- Pipelining
- Automatic Growth
- Twiddle Factor Generation
- Comparative study of FFT algorithm vs. others
- Additional Parameterized Macros and Test Benches