Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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