27
1 © 2014 The MathWorks, Inc. Tobias Kuschmider MathWorks München, 9.07.2014 Codegenerierung für Embedded Systeme leicht gemacht So geht’s!

Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

1 © 2014 The MathWorks, Inc.

Tobias Kuschmider

MathWorks

München, 9.07.2014

Codegenerierung für Embedded Systeme leicht

gemacht – So geht’s!

Page 2: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

2

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

Page 3: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

3

Demonstration – Model-Based Design

Page 4: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

4

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

Page 5: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

5

Design

with

Simulation

Executable

Specifications

Continuous

Test and

Verification

Automatic

Code Generation

Models

Model-Based Design

Page 6: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

6

Model-Based Design Development Process

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Design

with

Simulation

Executable

Specifications

Continuous

Test and

Verification

Automatic

Code Generation

Models

Page 7: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

7

Model-Based Design Continuous Verification and Validation

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Ve

rifica

tio

n a

nd

Va

lida

tio

n

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Page 8: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

8

Model-Based Design Development Process

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Requirements capturing in Word, DOORS, etc.

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Page 9: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

9

Model-Based Design Multi-Domain Modeling and Algorithm Development

System-Level

Specification

Subsystem

Design

Subsystem

Implementation

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Requirements

System Design

Physical Components

Environment

Algorithms

Component Design

Data Modeling

Algorithm

Development

Data Analysis

Research

Methods for modeling systems in different domains

Physical Modeling (Schematic) Data Flow (Block diagram)

Event-Driven Systems Programing Language (Textual)

Page 10: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

10

Data Modeling

Algorithm

Development

Data Analysis

Research

Model-Based Design Early Concept Verification

System-Level

Specification

Subsystem

Design

Subsystem

Implementation

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

System Design

Physical Components

Environment

Algorithms

Requirements

Component Design

• Executable specifications

• Predict dynamic system behaviour

by simulation

- System & environment models

- Less physical prototypes

• Use of simulation results for system design

- Fast What-/If studies

- Short iteration cycles

Idea

Simple Model Detailed Model

Page 11: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

11

Demonstration – Motor Control, Design

Page 12: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

12

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

Page 13: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

13

Model-Based Design Development Process

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Page 14: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

14

Data Modeling

Algorithm

Development

Data Analysis

Research

Model-Based Design Automatic Code Generation

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing

System Design

Physical Components

Environment

Algorithms

Requirements

Component Design

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

• C/C++, VHDL and PLC-Code Generation

from one model

• Support for Fixed Point Data Format • Automatic scaling

• Supported in Simulation and Code-Generation

• Easy integration of legacy C/C++-Code

• System development independent

of the target

FPGA ASIC

VHDL, Verilog

DSP

C, C++

MCU

Embedded Coder

(C, C++)

DSP & µC FPGA & ASIC

HDL Coder

(VHDL, Verilog)

PLC PLC Coder

(Structured Text)

PLC

Structured Text

Page 15: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

15

Demonstration – Motor Control, Code Generation

Page 16: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

16

Codegeneration Report

Automatically generated

HTML links between model and code

Contains all relevant information

V

Page 17: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

17

Plattform Independent ANSI ISO C-Code

Plattform independent C/C++ Code

Navigation between model and code ensuring traceability

V

Page 18: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

18

Optimized Code for ARM Cortex-M

Code Replacement Tables

Use of CMSIS library for code optimization

V

Page 19: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

19

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

Page 20: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

20

Model-Based Design Continuous Verification and Validation

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Ve

rifica

tio

n a

nd

Va

lida

tio

n

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Page 21: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

21

Model-Based Design Continuous Verification and Validation

System-Level

Specification

Subsystem

Design

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Code Verification and

Validation

Integration testing

User Acceptance

Testing Requirements

Test vectors and

expected responses

Test vectors and

expected outputs

System

Tests

Component

Tests

System tests in

simulation

Component tests

in simulation

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

System validation/Acceptance Test

Run system tests

on integrated

controller

Run component

tests on target

Data Modeling

Algorithm

Development

Data Analysis

Research

System Design

Physical Components

Environment

Algorithms

Component Design

Page 22: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

22

Data Modeling

Algorithm

Development

Data Analysis

Research

Model-Based Design Subsystem-Level Integration & Testing

System-Level

Specification

Subsystem

Integration & Test

System-Level

Integration & Test

Complete

Integration

& Test

Integration testing

User Acceptance

Testing Requirements

Subsystem

Design

Code Verification and

Validation

System Design

Physical Components

Environment

Algorithms

Component Design

Subsystem

Implementation

DSP FPGA ASIC

Embedded Software

Digital Electronics

C, C++ VHDL, Verilog

Implementation

Integration

MCU

Processor-In-The-Loop Simulation

• Co-Simulation of real hardware and simulated environment

• Testing functional Equivalence

Page 23: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

23

Demonstration – STM32F4 – Discovery, Equivalence Testing

Page 24: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

24

Proving Functional Equivalence V

Pure simulation vs. Processor-In-The-Loop simulation

Proof of functional equivalence successful

Page 25: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

25

ARM Cortex-M4: Add Peripheral Blocks, Generate Code, and

Deploy!

STM32F4xx

Blockset

Page 26: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

26

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

Page 27: Codegenerierung für Embedded Systeme leicht gemacht So geht’s!€¦ · Development Process System-Level Specification Subsystem Subsystem Design Integration & Test System-Level

27

Benefits of Model-Based Design

Models: Core of the Development Process

Unambiguous Description of Requirements (Executable Specification)

Fast Evaluation of Design Variants

Frontloading - Early Test and Verification

Automatic Code Generation

Better Cooperation, Communication and Collaboration

Higher Product Quality

Design

with

Simulation

Executable

Specifications

Continuous

Test and

Verification

Automatic

Code Generation

Models