FPGA Co-Processing for DSP

Embed Size (px)

Citation preview

  • 8/14/2019 FPGA Co-Processing for DSP

    1/38

  • 8/14/2019 FPGA Co-Processing for DSP

    2/38

    FPGA Co-Processing

    for DSP

    FPGA Co-Processing

    for DSP

  • 8/14/2019 FPGA Co-Processing for DSP

    3/38

    AgendaAgenda

    Applications of FPGA-Based Co-Processors for

    DSP

    Development Tools & Methodologies Availablefrom Altera to Build Co-Processors

    SOPC Builder

    DSP Builder

    FPGA Co-Processor Development Examples

    QAM Modulator FIR Filter

  • 8/14/2019 FPGA Co-Processing for DSP

    4/38

    Growing Demand for MIPS &

    Memory Bandwidth

    Growing Demand for MIPS &

    Memory Bandwidth Growth Drivers

    Algorithm Complexity

    Security

    Multiple Users

    DigitalS

    ignal

    Processing(D

    SP)MIPS&

    MemoryBa

    ndwidth

    Time

    Digital Signal

    Processors

    Application

    Requirements

  • 8/14/2019 FPGA Co-Processing for DSP

    5/38

    Dedicated HardwareArchitecture

    DSP System Architecture OptionsDSP System Architecture Options

    Performanc

    e(MACs/S

    ec)

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    Processor ArrayStand-AloneProcessor

    DSP

    Processor +Co-Processor

    DSP

  • 8/14/2019 FPGA Co-Processing for DSP

    6/38

    Exploring the DSP Design SpaceExploring the DSP Design Space

    Digital Signal

    ProcessorFarm

    Digital SignalProcessor

    withCo-Processor

    ConventionalProcessor

    AlteraFPGA

    Co-Processor

    AlteraFPGA with

    Nios &Co-Processor

    Digital Signal

    Processor

    Altera

    FPGACo-Processor

    AlteraFPGAAlgorithm

    in Hardware

    TheFlexibilityZone

    CustomASIC

    Performance

    Digital SignalProcessor Conventional

    Processor

    Flexibility

  • 8/14/2019 FPGA Co-Processing for DSP

    7/38

    Co-Processing on FPGAsCo-Processing on FPGAs

    FIRFIR

    NCO

    IQMap

    Processor External to FPGAProcessor External to FPGAProcessor on FPGAProcessor on FPGA

    MemoryMemory

    FPGAFPGA

    MemoryMemoryNCO

    FPGA

    IQMap

    MemoryMemory

    Processor

    Processor

  • 8/14/2019 FPGA Co-Processing for DSP

    8/38

    Off-Loading Algorithms to Co-Processor ReducesNumber or Cost of Digital Signal Processors

    Applications Algorithms with Large Amount of Digital Signal Processing &

    Small Amount of Control Processing

    When Do FPGA Co-Processors

    Reduce System Cost?

    When Do FPGA Co-Processors

    Reduce System Cost?

    Expensive Array

    to DSP + FPGA

    Expensive DSP to

    Inexpensive DSP + FPGA

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    DSP DSP DSP DSP

    FIR

    NCO

    IQMap

    MemoryMemory

    DSP

    MemoryMemory

    DSP

    $$$

  • 8/14/2019 FPGA Co-Processing for DSP

    9/38

    FPGA Co-Processor ApplicationsFPGA Co-Processor Applications

    Wireless

    2.5-G EDGE Equalization

    3-G Baseband Processing

    HSDPA

    1xEVDV

    3-G RF Linearization

    Consumer Broadcast - Studio & Cable

    Plant

    Digital Entertainment

    MPEG2 & MPEG4

    Medical

    Imaging

    Wireline Communications

    Encryption

    Framer

    Traffic Management

    TCP/IP

    Computer & Storage

    Data Analysis & RoutingEngine

    Digital Imaging

    Military & Aerospace Security

  • 8/14/2019 FPGA Co-Processing for DSP

    10/38

    DSP Development

    Tools & DesignMethodology

    DSP Development

    Tools & DesignMethodology

  • 8/14/2019 FPGA Co-Processing for DSP

    11/38

    FPGA Co-Processor Design ToolsFPGA Co-Processor Design Tools

    Dedicated HardwareArchitecture

    Stand-AloneProcessor

    Processor + Co-Processor

    DSP BuilderDSP BuilderSOPC BuilderSOPC Builder

  • 8/14/2019 FPGA Co-Processing for DSP

    12/38

    CreatesHDL Code

    DSP BuilderDownloadDesign to

    DevelopmentBoard

    CreatesSimulation Test Bench

    Verifyin

    Hardware

    CreatesProcessor

    Plug-In

    HDLSynthesis

    DSP Builder OverviewDSP Builder Overview

  • 8/14/2019 FPGA Co-Processing for DSP

    13/38

    DSP Builder Library ComponentsDSP Builder Library Components

    Arithmetic

    Bus Manipulation

    Complex Signals

    Logical Components

    SOPC Ports

    Storage

    MegaCore IP Rate Change

    State Machine

    Altera Library DSP Board

  • 8/14/2019 FPGA Co-Processing for DSP

    14/38

    MegaCore IP in DSP BuilderMegaCore IP in DSP Builder

    DSP BuilderMegaCoreFunctions

    FIR FFT Viterbi Turbo Reed Solomon NCO

    DSP BuilderMegaCoreFunctions

    FIR FFT

    Viterbi Turbo Reed Solomon NCO

  • 8/14/2019 FPGA Co-Processing for DSP

    15/38

    DSP Builder Support for Multiple

    Clock Domains

    DSP Builder Support for Multiple

    Clock Domains Inherit Sampling Frequency (FS)

    Adhere to Clock Design Rules All Sample Times Match One of

    Phase-Locked Loops (PLLs)

    Output Clock Periods

    Simplify Analysis &

    Implementation of

    Multi-Rate System

    Up Sampling

    Down Sampling

  • 8/14/2019 FPGA Co-Processing for DSP

    16/38

    State Machine BuilderState Machine Builder

  • 8/14/2019 FPGA Co-Processing for DSP

    17/38

    Sub-System BuilderSub-System Builder

    Import Existing VHDL Design into Simulink

    Simulink Simulation Options

    Convert into DSP Builder Blocks or MATLAB Functions

    Treat VHDL Design as Black Box

  • 8/14/2019 FPGA Co-Processing for DSP

    18/38

    Signal CompilerSignal Compiler

    Generates VHDL Design Files

    Generates Tool

    Command Language

    (Tcl) Scripts

    Generates Testbench

    Enables Parameterization

    of IP Blocks

    Launch Hardware

    Compilation from

    Simulink Cockpit

  • 8/14/2019 FPGA Co-Processing for DSP

    19/38

    Stratix DSP Development BoardStratix DSP Development Board

    AlteraNios

    Expansion

    PrototypeConnector

    80-Pin I/O Connector

    14-Bit,165-MHz D/A

    PrototypingArea

    12-Bit,125-MHz A/D Push-Button

    SwitchesSMAConnector

    9-Pin RS232Connector5-V PowerSupply

    Texas Instruments Connectors CanBe Found on Underside of Board40-Pin Connector for AnalogDevices Evaluation Boards LEDs

  • 8/14/2019 FPGA Co-Processing for DSP

    20/38

    Altera DSP Development KitsAltera DSP Development Kits

    Contains Everything You Needto Develop High-Performance DSP

    Designs on FPGAs

    30-Day EvaluationVersion

    System ReferenceDesigns

  • 8/14/2019 FPGA Co-Processing for DSP

    21/38

    QAM Modulator Co-

    Processor DesignExample

    QAM Modulator Co-

    Processor DesignExample

  • 8/14/2019 FPGA Co-Processing for DSP

    22/38

    Modem Reference DesignModem Reference Design

    Installed with Code Composer Studio As a Tutorial

    C:\ti\tutorial\dsk6711\modem

    Used to Demonstrate

    CCS Functionality

    16 QAM TX Modem

  • 8/14/2019 FPGA Co-Processing for DSP

    23/38

    Modem Design Code ProfileModem Design Code Profile

  • 8/14/2019 FPGA Co-Processing for DSP

    24/38

    Modem Design Hardware/ Software

    PetitionMain100%

    Initialize

    3%Add Noise Signal

    0.5%

    Shaping Filter82%

    Modulation 8%

    Sine Lookup 2.5%

    Cosine Lookup 2.5%

    HardwareAccelerator

    Modem Design Hardware/ Software

    Petition

    ModemTransmitter

    96.5%

  • 8/14/2019 FPGA Co-Processing for DSP

    25/38

    Modulator Co-ProcessorModulator Co-Processor

    DSP Builder Used to Build Hardware DSP Data Path

  • 8/14/2019 FPGA Co-Processing for DSP

    26/38

    Avalon Interface in SOPC BuilderAvalon Interface in SOPC Builder

    DSP B ild SOPC B ild I t

  • 8/14/2019 FPGA Co-Processing for DSP

    27/38

    Import DSP Builder Generated Co-Processorinto SOPC Builder

    DSP Builder SOPC Builder ImportDSP Builder SOPC Builder Import

    SOPC B ild I t ti

  • 8/14/2019 FPGA Co-Processing for DSP

    28/38

    SOPC Builder IntegrationSOPC Builder Integration

    Modem Co-Processor (fir_comp)Integrated with TI EMIF I/F (TIMaster)

  • 8/14/2019 FPGA Co-Processing for DSP

    29/38

    FIR Filter Co-ProcessorDesign Example

    FIR Filter Co-ProcessorDesign Example

    D i i D S t C tD i i D S t C t

  • 8/14/2019 FPGA Co-Processing for DSP

    30/38

    Driving Down System CostsDriving Down System Costs

    Digital Signal Processor +

    FPGA Co-Processor

    Digital Signal Processor +

    FPGA Co-Processor

    Multi-Processing

    DSP

    DSP DSP

    DSP DSPDSP DSPDSP DSP

    FPGA

    DSP

    MemoryMemory

    FPGA

    FIRFIR

    FIR C P D iFIR C P D i

  • 8/14/2019 FPGA Co-Processing for DSP

    31/38

    FIR Co-Processor Design

    Example

    FIR Co-Processor Design

    Example FIR Parameters

    128-Tap

    16-Bit Data, 14-Bit Coefficients

    Four FIR Implementations for Comparison

    TI C6711-Optimized TI DSPLib Function

    TI C6416-Optimized TI DSPLib Function

    Altera Eight-Cycle FIR Co-Processor

    Altera One-Cycle FIR Co-Processor

    TI Filt i Lib (DSP Lib)TI Filt i Lib (DSP Lib)

  • 8/14/2019 FPGA Co-Processing for DSP

    32/38

    TI Filtering Library (DSP Lib)TI Filtering Library (DSP Lib)

    C-Callable Optimized Assembly Routines

    TI C67x DSPLib: Fir Filter (Radix 8)

    Formula: Nh * Nr /2 + 13

    Nh = Number of Coefficients

    Nr = Number of Samples

    ~1 Sample/ 64 Cycles (128 Tap Filter)

    TI C64x DSPLib: FIR Filter (Radix 8)

    Formula: Nh * Nr/4 + 17

    ~ 1 Sample/ 32 Cycles (128 Tap Filter)

    Filt C P D iFilter Co Processor Design

  • 8/14/2019 FPGA Co-Processing for DSP

    33/38

    Filter Co-Processor Design

    Example

    Filter Co-Processor Design

    Example Current Implementation

    100 MHz, 32-Bit, Asynchronous EMIF on DSK

    TI Writes 300 Samples to Co-Processor (Input Data)

    Filter & Send Output to TI

    C6000

    DigitalSignalProcessor

    External

    MemoryI/

    F

    FPGA Co-Processor

    TII/FCore

    QDMA

    In

    putFIFO

    FIR

    C

    ompiler

    FIR Filter Example* 16XFIR Filter Example* 16X

  • 8/14/2019 FPGA Co-Processing for DSP

    34/38

    FIR Filter Example 16XCost/Performance ImprovementFIR Filter Example 16XCost/Performance Improvement

    1-Cycle***at 170 MHz

    7-Cycles***at 200 MHz

    32-Cycles**at 600 MHz

    64-Cycles**at 200 MHz

    Solution

    $84

    $14

    $160

    $24.59

    DeviceCost****

    170

    28

    18.75

    3.125

    FIR Performance(MHz)

    AlteraEP1C12-8

    AlteraEP1C3-8

    TI C6416-600

    TI C6713-200

    Device

    $0.50

    $0.49

    $8.53

    $7.87

    Cost perFIR MHz

    * FIR 128 Tap, 16-Bit Data, 14-Bit Coefficients

    ** DSPLib Optimized Assembly Libraries from Texas Instruments

    *** Optimized MegaCore FIR Compiler from Altera

    **** Pricing in Quantity of 100 at Arrow 6/25/03

    * FIR 128 Tap, 16-Bit Data, 14-Bit Coefficients

    ** DSPLib Optimized Assembly Libraries from Texas Instruments

    *** Optimized MegaCore FIR Compiler from Altera

    **** Pricing in Quantity of 100 at Arrow 6/25/03

    14X Reduction in System Costs14X Reduction in System Costs

  • 8/14/2019 FPGA Co-Processing for DSP

    35/38

    14X Reduction in System Costs14X Reduction in System Costs

    DSP DSPDSP DSP

    DSP DSPDSP DSP

    FPGA

    DSP

    MemoryMemory

    FPGA

    FIRFIR

    173

    167

    Total FIRPerformance

    (MHz)

    $84 +$25

    9 *

    $160

    DeviceCosts

    $110

    $1,440

    TotalCost

    170 + 3

    9 * 18.75

    FIRPerformance

    (MHz)

    Altera EP1C12-8 +1 TI c6713-200

    9 * TI C6416-600

    Architecture

    SummarySummary

  • 8/14/2019 FPGA Co-Processing for DSP

    36/38

    SummarySummary

    FPGA Co-Processors for DSP Offer ManyAdvantages 10X Performance Boost

    More Channels

    More Complex Algorithms

    Increased System Throughput

    10X Cost Reduction Fewer Components

    Complementary to DSP-Based SystemsOffloads Existing DSP Integrates Into Existing DSP IDE

    Evolution Not Revolution

    Altera Code: DSP SolutionsAltera Code: DSP Solutions

  • 8/14/2019 FPGA Co-Processing for DSP

    37/38

    Altera Code: DSP SolutionsAltera Code: DSP Solutions

    FPGAs Stratix, Stratix GX, Cyclone

    Development Tools

    DSP Builder, SOPC Builder

    Intellectual Property FIR, FFT, Viterbi, Turbo, Reed Solomon, NCO

    AMPP Third-Party Partners

    Development Kits Altera

    Third-Parties

    Design Services ACAP Third-Party Partners

    Training

  • 8/14/2019 FPGA Co-Processing for DSP

    38/38