matlab and simulink for embedded system...

31
© 2007 The MathWorks, Inc. 591 /* Logic: ' <S3>/either' */ 592 rtb_either = power_window_con_B.passenger_control_b 593 || power_window_con_B.passenger_control_a; 594 595 /* Logic: ' <S13>/allow_action' incorporates: 596 * Inport: ' <Root>/driver_up ' 597 * Logic: '<S13>/overrule ' 598 */ 599 rtb_temp34 = power_window_con_U.driver_up 600 && (!(rtb_either)); MATLAB ® and Simulink ® for Embedded System Design Pieter J. Mosterman [email protected] Senior Research Scientist The MathWorks, Inc.

Upload: builien

Post on 06-Feb-2018

259 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

© 2

007

The

Mat

hWor

ks, I

nc.

591 /* Logic: '<S3>/either' */ 592 rtb_either = power_window_con_B.passenger_control_b 593 || power_window_con_B.passenger_control_a; 594 595 /* Logic: '<S13>/allow_action' incorporates: 596 * Inport: '<Root>/driver_up' 597 * Logic: '<S13>/overrule' 598 */ 599 rtb_temp34 = power_window_con_U.driver_up 600 && (!(rtb_either));

MATLAB® and Simulink® for Embedded System Design

Pieter J. [email protected] Senior Research ScientistThe MathWorks, Inc.

Page 2: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

2

Introduction

Increasing complexity of embedded systems Complexity

– Intricacy– Size

Raising the Level of Abstraction Compilers to handle the complexity because of

size

Page 3: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

3

Agenda

The System Design Challenge Software Design Flow Hardware Design Flow Summary

Page 4: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

4

The System Design Challenge

We design, simulate, and validate system models and algorithms in MATLAB® and/or Simulink®

How can we implement and verify designs on DSPs and GPPs?

How can we implement and verify designs on FPGAs and ASICs? C

MATLABMATLAB®® and Simulink and Simulink®® Algorithm and System DesignAlgorithm and System Design

MCU DSP FPGA ASIC

HDL

Page 5: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

5

Integrated Design Flow for Embedded Software and Hardware

Design, simulate, and validate system models and algorithms in MATLAB and Simulink

Automatically generate C and HDL

Verify hardware and software implementations against the system and algorithm models

C

MATLABMATLAB®® and Simulink and Simulink®® Algorithm and System DesignAlgorithm and System Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Page 6: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

6

Agenda

The System Design Challenge Software Design Flow Hardware Design Flow Summary

Page 7: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

7

C

MATLABMATLAB®® and Simulink and Simulink®® Algorithm and System DesignAlgorithm and System Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Integrated Design Flow for Embedded Software Implementation with

automatic C code generation

Implementation– Floating- and fixed-point code– Integration with downstream

IDEs and tools– Links to verification– Device drivers– Optimization options

Page 8: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

8

Representative Application – Video Video system design and implementation

– Encapsulates challenges: complexity, convergence, time-to-market

– Sophisticated algorithms

– Floating- and fixed-point issues

– DSP or FPGA/ASIC implementations

Design flows and steps shown directly applicable to other signal processing applications

Embedded Software Case Study:

Video Edge Detection on a DSP

LiveMATLABDemo

Page 9: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

9

Example: Video Edge Detection Floating point video edge detection system based on

Prewitt algorithm Compositing original image with detected edges Utilizes blocks from Video and Image Processing Blockset

Page 10: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

10

Converting to Fixed-Point Polymorphic blocks capable of floating- and fixed-point

operation 8-bit input datatype – blocks inherit fixed-point data Simulink Accelerator provides fast fixed-point simulation

8-bit fixed-point input

Page 11: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

11

Automatic Code Generationfor Implementation on GPPs and DSPs

Fixed-point model

Code generation options

and preferences

Select target or flavor of generated code

Page 12: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

12

Code Generation Report

HTML report

Links to code files from HTML report

Readable, commented code

Links to Simulink model from

generated code

Page 13: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

13

Video Edge DetectionEmbedded Software System on TI 6000TM

TCP/IP Blocks

Page 14: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

14

Target Code Generation Options

High-Speed RTDX

Incorporate DSP/BIOS

Inline Signal Processing Blockset functions

Page 15: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

15

Build and execute– Auto-generate C and ASM

– Integrate RTOS and scheduler

– Create full CCS project

– Invoke compiler, linker, and download code

– Run on target

Profile code performance

Code Execution on Target and Profiling

System profiling includes entire DSP

application codeSubsystem profiling

Page 16: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

16

Code Optimization Options

Utilize target-specific blocks– C-callable assembler libraries– Simulate bit-true in Simulink– Generate calls to hand-optimized

assembler libraries– Highly optimized implementation

of core functionality– C62x and C64x fixed-point DSPs

Manual optimization by user

Page 17: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

17

Design Verification and Visualization:MATLAB as software test bench

Captured video

Visualize and debug embedded software with MATLAB

Input video

MATLAB script (test bench)

Page 18: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

18

Design Verification and Visualization:Simulink as software test bench

Processor and hardware-in-the-loop testing, simulation,

visualization, and verification of embedded software with Simulink

Device or design under test (DUT)

Simulink system design embedded on DSP

Simulink test bench

Page 19: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

19

C

MATLABMATLAB® ® and Simulinkand Simulink®® Algorithm and System DesignAlgorithm and System Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Review: Integrated Design Flow for Embedded Software Drive system development

with an executable specification

Quickly create complete working code base

Use code profiles to identify and optimize bottlenecks

Verify code with Links to IDEs and processors

Page 20: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

20

Agenda

The System Design Challenge Software Design Flow Hardware Design Flow Summary

Page 21: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

21

C

MATLABMATLAB®® and Simulink and Simulink®® AlgorithmAlgorithm andand System DesignSystem Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Integrated Design Flow for Hardware (FPGA and ASIC) Design elaboration

Implementation– HDL code generation

(VHDL and Verilog)– test bench generation– Links to verification– Integration with

synthesis tools

Page 22: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

22

What We Will Show In This Case Study Behavioral modeling and simulation Fixed-point modeling and simulation Design elaboration HDL generation Co-simulation using Link for ModelSim

LiveMATLABDemo

Hardware Case Study:Video Edge Detection

on an FPGA

Page 23: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

23

Executable Specification

Page 24: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

24

Design Elaboration

Automatically generate Verilog or VHDL code from

elaborated models

Page 25: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

25

HDL Code Generation Using GUI

Select subsystem, target language, directory

Select output options

Check model for errors Generate HDL Code

Page 26: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

26

More Code Generation Options

Select reset andclock options

Set language-specific options: input/output datatypes, timescale

directives, …

Page 27: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

27

Automatically Generate Test Bench

Self-checking HDL test bench compares Simulink results to HDL results

Page 28: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

28

Co-simulate Generated HDL

HDL code executing on ModelSim simulator

Link for ModelSim

Page 29: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

29

C

MATLABMATLAB® ® and Simulinkand Simulink®® Algorithm and System DesignAlgorithm and System Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Review:Integrated Design Flow for Hardware Drive system development

with an executable specification

Quickly create complete working HDL code baseand test benches

Verify code with Links to RTL simulators and synthesis tools

Page 30: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

30

Agenda

The System Design Challenge Software Design Flow Hardware Design Flow Summary

Page 31: MATLAB and Simulink for Embedded System Designmsdl.cs.mcgill.ca/people/mosterman/presentations/date07/tutorial.pdf · 19 C MATLAB® and Simulink® Algorithm and System Design Real-Time

31

C

MATLABMATLAB®® and Simulink and Simulink®® Algorithm and System DesignAlgorithm and System Design

Real-Time WorkshopReal-Time WorkshopEmbedded Coder,Embedded Coder,

Targets, LinksTargets, Links

Verif

y

Simulink HDL CoderSimulink HDL CoderLink for ModelSimLink for ModelSim

Link for Link for CadenceCadence Incisive Incisive

MCU DSP FPGA ASIC

HDL

Generate

Verif

y

Generate

Summary

Accelerate development using Model-Based Design– Generate

• Real-Time Workshop• Simulink HDL Coder

– Verify• Link for Cadence

Incisive

Design and verify software and hardware from MATLAB and Simulink