You are previewing Digital Design of Signal Processing Systems: A Practical Approach.
O'Reilly logo
Digital Design of Signal Processing Systems: A Practical Approach

Book Description

Digital Design of Signal Processing Systems discusses a spectrum of architectures and methods for effective implementation of algorithms in hardware (HW). Encompassing all facets of the subject this book includes conversion of algorithms from floating-point to fixed-point format, parallel architectures for basic computational blocks, Verilog Hardware Description Language (HDL), SystemVerilog and coding guidelines for synthesis.

The book also covers system level design of Multi Processor System on Chip (MPSoC); a consideration of different design methodologies including Network on Chip (NoC) and Kahn Process Network (KPN) based connectivity among processing elements. A special emphasis is placed on implementing streaming applications like a digital communication system in HW. Several novel architectures for implementing commonly used algorithms in signal processing are also revealed. With a comprehensive coverage of topics the book provides an appropriate mix of examples to illustrate the design methodology.

Key Features:

  • A practical guide to designing efficient digital systems, covering the complete spectrum of digital design from a digital signal processing perspective

  • Provides a full account of HW building blocks and their architectures, while also elaborating effective use of embedded computational resources such as multipliers, adders and memories in FPGAs

  • Covers a system level architecture using NoC and KPN for streaming applications, giving examples of structuring MATLAB code and its easy mapping in HW for these applications

  • Explains state machine based and Micro-Program architectures with comprehensive case studies for mapping complex applications

The techniques and examples discussed in this book are used in the award winning products from the Center for Advanced Research in Engineering (CARE). Software Defined Radio, 10 Gigabit VoIP monitoring system and Digital Surveillance equipment has respectively won APICTA (Asia Pacific Information and Communication Alliance) awards in 2010 for their unique and effective designs.

Table of Contents

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