Design and Verify
Embedded Signal Processing Systems
Using MATLAB and Simulink
Giorgia Zucchelli, Application Engineer, MathWorks
17 January 2011, Technical University Eindhoven
1
Agenda
Introduction to Model Based Design
Application example: Parametric Audio Equalizer
– TI DM6437 EVM
– Beagle Board-xM
Workflow overview
Conclusions
2
INTRODUCTION
3
What is Model Based Design?
Methodology to design complex systems
– Using models and simulation
– Using tools for automation
4
Why using Model Based Design?
Find errors early
Reduce costly prototypes
Increase productivity
5
MathWorks model-based design
improves the development process
RESEARCH REQUIREMENTS
DESIGN
TEST & VERIFICATION
1. Focus on algorithmic design
2. Anticipate implementation
3. Verification test-benches
IMPLEMENTATION
INTEGRATION
6
Improve team communication with
multi-domain executable specifications
RESEARCH REQUIREMENTS
DESIGN
Algorithms
TEST & VERIFICATION
Many trusted functions
Use the most suitable
modeling approach
IMPLEMENTATION
INTEGRATION
7
Achieve early verification with refined models
anticipating real impairments
RESEARCH REQUIREMENTS
DESIGN
Algorithms
Digital Analog
TEST & VERIFICATION
Bit-true simulation
Fixed-Point Physical Models
Multi-domain physical
models
IMPLEMENTATION
INTEGRATION
8
Rapid prototyping with code generation:
less debugging, better design
RESEARCH REQUIREMENTS
DESIGN
Algorithms
Digital Analog
TEST & VERIFICATION
C / C++
Fixed-Point Physical Models
Synthesizable HDL
IMPLEMENTATION
C, C++ VHDL, Verilog
MCU DSP Processors FPGA ASIC
INTEGRATION
9
One testbench fits all:
unambiguous verification of the specs
RESEARCH REQUIREMENTS
DESIGN
Algorithms
Digital Analog
System-level test
TEST & VERIFICATION
Physical Models
Fixed-Point
Co-simulation
“Hardware in the loop”
verification
IMPLEMENTATION
C, C++ VHDL, Verilog
MCU DSP Processors FPGA ASIC
INTEGRATION
10
APPLICATION EXAMPLE
11
Demo: Parametric Audio Equalizer
Digital filters used to adjust the frequency content of an audio signal
Parametric response that can be run-time controlled
Three band equalizer
– Low Band: 60 to 1500 Hz
– Mid Range: 1200 to 4800 Hz
– High Range: 4800 to 12 kHz
– Amplitude range: -8 to +8 dB
12
TARGET #1: TI DM6437 EVM
13
Target #1: TI DM6437 EVM
Ethernet CAN/Serial
USB
JTAG
Audio
Video Processor PMU
PCI
14
DM6437 EVM - Processor
Highest-performance fixed-point DSP
generation in the TMS320C6000™ DSP
platform
Very-long-instruction-word (VLIW)
architecture developed by Texas
Instruments (TI)
Some of the specs:
– 2.5-, 2-, 1.67, 1.51-, 1.43-ns Instruction Cycle
Time
– 400-, 500-, 600-, 660-, 700-MHz C64x+™
Clock Rate
– Eight 32-Bit C64x+ Instructions/Cycle
– 3200, 4000, 4800, 5280, 5600 MIPS
15
DM6437 – Software stack
16
TARGET #2: BEAGLE BOARD-XM
17
Target #2: Beagle Board-xM
HDMI out Audio in / out
DVI SD Card reader
Processor PMU
JTAG
Serial
USB Ethernet
18
Beagle Board xM - Processor
19
DM3730 – Software stack
20
21
WORKFLOW OVERVIEW
22
PC-Based Audio Prototyping
Data
analysis
REQUIREMENTS
Data
source
DESIGN
Simulink / MATLAB
Algorithms
TEST & VERIFICATION
Fixed-Point
Simulink - Host IMPLEMENTATION
C, C++
MCU DSP Processors
INTEGRATION
23
Fixed-Point Modeling
Data
analysis
REQUIREMENTS
Data
source
DESIGN
Fixed-Point
Simulink / MATLAB Algorithms
TEST & VERIFICATION
Fixed-Point
Simulink - Host IMPLEMENTATION
C, C++
MCU DSP Processors
INTEGRATION
24
Automatic C Code Generation
Data
analysis
REQUIREMENTS
Data
source
DESIGN
Fixed-Point
Simulink / MATLAB Algorithms
TEST & VERIFICATION
Fixed-Point
Simulink - Host IMPLEMENTATION
C, C++
MCU DSP Processors
Embedded
C
INTEGRATION
25
Processor-in-the-Loop
Data
analysis
REQUIREMENTS
Data Simulink / MATLAB
source
DESIGN
Algorithms
TEST & VERIFICATION
Fixed-Point
Simulink - Host IMPLEMENTATION
C, C++
Target
MCU DSP Processors
Embedded
? C ? ?
INTEGRATION
26
On-Target Rapid Prototyping
Data
analysis
REQUIREMENTS
Data
source
DESIGN
Simulink / MATLAB
Algorithms
TEST & VERIFICATION
Fixed-Point
Simulink - Host IMPLEMENTATION
C, C++
Target
MCU DSP Processors
ADC
DAC
Embedded
C ?
INTEGRATION
27
CONCLUSIONS
28
Quickly Iterate between Idea and Prototype
First prototype is functionally correct with
automatic C code generation
Spend your time in optimizing rather than
debugging the code
Find errors reusing the same testbench at each
design step
29