Seminars and Training
BDTI
HOME << SERVICES << BDTI

 

DSP Software Development

A full-day BDTI seminar

AVAILABLE ON-SITE OR ONLINE

Contents

Overview

This class discusses the unique requirements of software development for DSP applications. Issues such as floating-point to fixed-point migration, when to use a high-level language and when to use assembly language, features and capabilities of current DSP software development tools and how to use them effectively, and DSP software optimization techniques are covered.

Outline

    What's special about DSP software?
    • Computational demands
    • Algorithm attributes
    • Data access attributes
    • Memory bandwidth requirements
    • Resource constraints
    • Numeric fidelity requirements
    • Standards
    • Real-time aspects
    • Reliability
    • Processor and tool characteristics

    An overview of a DSP software development process

    • Process, tools, and techniques
      • Definition of requirements
      • Specification
      • Prototyping
      • Floating-point to fixed-point migration
      • Implementation
      • Optimization
      • Testing
    • Integration

    Floating-point to fixed-point migration

    • Why do it?
    • Approaches and techniques

    Managing numeric fidelity

    • Scaling
    • Rounding
    • Floating-point emulation
    • Block floating-point
    • Multi-precision fixed-point

    High-level languages vs. assembly language

    • Advantages, disadvantages of each
    • Compiler capabilities and limitations
    • How to decide when to use an HLL and when to use assembly

    Development tools, other resources

    • Key features, capabilities, limitations, and performance of tools
      • Baseline tools
        • C compilers
        • Assemblers
        • Linkers
        • Simulators
        • Development boards
        • Profiling tools
        • Emulators
      • Advanced tools
        • Assembly optimizers
        • System-level design tools
      • Integrated development environments (IDEs)
      • HDL simulators
      • Software libraries
      • RTOS
    • Using development tools effectively

    DSP software optimization techniques

    • Profiling and performance measurement
    • Optimizing for...
      • Speed
      • Energy consumption
      • Memory use
    • Optimizing with...
      • High-level languages
      • Assembly languages
      • Application profiling
      • Compiler intrinsics
      • Language extensions
      • Loop optimization
      • Algorithmic transformations
        • Unrolling across outer loops
        • Arranging data in memory
        • Identifying redundant operations
        • Unconventional use of execution units
      • Scheduling techniques
        • Loop unrolling
        • Software pipelining

    Using off-the-shelf DSP software components

    DSP software debugging

    • Key features of debuggers, on-chip debug support
    • Debugging real-time applications

    Miscellaneous techniques

    • Developing software for multi-channel applications
    • Bootstrapping
    • Overlays
    • Interrupt handlers
      • Fast interrupts
    • RTOS
    • Smart peripherals
    • DMA

    Trends and conclusions

    • Processors
    • Tools
    • Techniques
    • Languages

About BDTI

Berkeley Design Technology, Inc (BDTI) is a technical services and software company focused on DSP technology. BDTI is well-known for developing the only vendor-independent set of DSP benchmarks, the BDTI Benchmarks™, which it has implemented on nearly every processor used in DSP today. BDTI provides DSP software development and optimization services, published reports on DSP technology, and DSP technical advisory services.

For more information

For more information about this and other BDTI training classes, including availability of online versions and schedules for public presentations, please register with BDTI.


Top of page