DSP Software Development
A full-day BDTI seminar
AVAILABLE ON-SITE OR ONLINE
Contents
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.
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
- RTOS
- Smart peripherals
- DMA
Trends and conclusions
- Processors
- Tools
- Techniques
- Languages
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 about this and other BDTI
training classes, including availability of online
versions and schedules for public presentations, please
register with BDTI.
|