codegenerierung für embedded systeme leicht gemacht so geht’s!€¦ · development process...

Post on 05-Oct-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 © 2014 The MathWorks, Inc.

Tobias Kuschmider

MathWorks

München, 9.07.2014

Codegenerierung für Embedded Systeme leicht

gemacht – So geht’s!

2

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

3

Demonstration – Model-Based Design

4

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

5

Design

with

Simulation

Executable

Specifications

Continuous

Test and

Verification

Automatic

Code Generation

Models

Model-Based Design

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

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

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

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)

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

11

Demonstration – Motor Control, Design

12

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

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

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

15

Demonstration – Motor Control, Code Generation

16

Codegeneration Report

Automatically generated

HTML links between model and code

Contains all relevant information

V

17

Plattform Independent ANSI ISO C-Code

Plattform independent C/C++ Code

Navigation between model and code ensuring traceability

V

18

Optimized Code for ARM Cortex-M

Code Replacement Tables

Use of CMSIS library for code optimization

V

19

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

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

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

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

23

Demonstration – STM32F4 – Discovery, Equivalence Testing

24

Proving Functional Equivalence V

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

Proof of functional equivalence successful

25

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

Deploy!

STM32F4xx

Blockset

26

Agenda

Model-Based Design – An Introduction

Use of Production Code Generation for Implementation

Proving Functional Equivalence between Model and Code

Summary

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

top related