Contents
Preface.
Acknowledgement
1 Overview
1.1 Introduction
1.2 Fueling the Innovation: Moore’s Law
1.3 Digital Systems
1.4 Examples of Digital Systems
1.5 Components of the Digital Design Process
1.6 Competing Objectives in Digital Process
1.7 Synchronous Digital Hardware Systems
1.8 Design Strategies
References
2. Using a Hardware Description Language
2.1 Overview
2.2 About Verilog
2.3 System Design Flow
2.4 Logic Synthesis
2.5 Using the Verilog HDL
2.6 Four Levels of Abstraction
2.7 Verification in Hardware Design
2.8 Example of a Verification Setup
2.9 SystemVerilog
Exercises
References
3. System Design Flow and Fixed-Point Arithmetic
3.1 Overview
3.2 System Design Flow
3.3 Representations and Numbers
3.4 Floating-point Format
3.5 Qn.m Format for Fixed-point Arithmetic
3.6 Floating-Point to Fixed-Point Conversion
3.7 Block Floating-Point Format
3.8 Digital Filters Forms
Exercise
References
4. Mapping on Fully Dedicated Architecture
4.1 Introduction
4.2 Discrete Real-Time System
4.3 Synchronous Digital Hardware Systems
4.4 Kahn Process Network (KPN)
4.5 Representation Methods of DSP systems
4.6 Performance Measures
4.7 Fully Dedicated Architecture
4.8 DFG to HW Synthesis
Exercise
References
5. Design Options for Basic Building Blocks
5.1 Introduction
5.2 Embedded Processors and Arithmetic Units in FPGAs
5.3 Instantiation of Embedded Blocks
5.4 Basic Building Blocks: Introduction
5.5 Adders
5.6 Barrel Shifter
5.7 Cary Save Adder and Compressors
5.8 Parallel Multipliers
5.9 Two’s Complement Signed Multiplier
5.10 Compression Trees for Multi-operand Addition
5.11 Algorithm Transformations for CSA
Exercises
References
6. Multiplier-less Multiplication by Constants
6.1 Introduction
6.2 Canonic Sign Digit Representation
6.3 Minimum Signed Digit Representation
6.4 Multiplication by Constant in Signal Processing Algorithm
6.5 Fully Dedicated Architecture for Direct-form FIR Filter
6.6 Transposed Direct Form FIR Filter
6.7 Complexity Reduction
6.8 Distributed Arithmetic
6.9 FFT Architecture using FIR Filter Structure.
Exercise
References
7. Pipelining, Retiming, Look-ahead Transformation and Polyphase Decomposition
7.1 Introduction
7.2 Pipelining and Retiming
7.3 Digital Design of Feedback Systems
7.4 C-slow Retiming
7.5 Look Ahead Transformation for IIR filters
7.6 Look-ahead Transformation for Generalized IIR Filters
7.7 Polyphase Structure for Decimation and Interpolation Applications
7.8 IIR Filter for Decimation and Interpolation
Exercise
References
8. Unfolding and Folding Architectures
8.1 Introduction
8.2 Unfolding
8.3 Sampling Rate Considerations
8.4 Unfolding Techniques
8.5 Folding Techniques
8.6 Mathematical Transformation for Folding
8.7 Algorithmic Transformation
Exercise
References
9.Designs based on Finite State Machines
9.1 Introduction
9.2 Examples of Time-shared Architecture Design
9.3 Sequencing and Control
9.4 Algorithmic State Machine Representation
9.5 FSM Optimization for Low Power and Area
9.6 Designing for Testability
9.7 Methods for Reducing Power Dissipation
Exercise
References
10. Micro-programmed State Machines
10.1 Introduction
10.2 Micro-programmed Controller
10.3 Counter-based State Machine
10.4 Subroutine Support
10.5 Nested Subroutine Support
10.6 Nested Loop Support
10.7 Examples
Exercises
References
11. Micro-Programmed-based Adaptive Filtering Applications
11.1 Introduction
11.2 Adaptive Filters Configurations
11.3 Adaptive Algorithms
11.4 Channel Equalizer using NLMS
11.5 Echo Canceller
11.6 Adaptive Algorithms with Micro-programmed State Machines
Exercise
References
12 CORDIC-based DDFS Architectures
12.1 Introduction
12.2 Direct Digital Frequency Synthesizer
12.3 Design of a Basic DDFS
12.4 CORDIC Algorithm
12.5 Hardware Mapping of Modified CORDIC Algorithm
Exercises
References
13. Digital Design of Communication Systems
13.1 Introduction
13.2 Top-level Design Options
13.3 Typical Digital Communication System
Exercises
References
Index
|