Codegenerierung für Embedded Systeme leicht gemacht So geht s! Tobias Kuschmider MathWorks München, 9.07.2014 2014 The MathWorks, Inc. 1
Agenda Model-Based Design An Introduction Use of Production Code Generation for Proving Functional Equivalence between Model and Code Summary 2
Demonstration Model-Based Design 3
Agenda Model-Based Design An Introduction Use of Production Code Generation for Proving Functional Equivalence between Model and Code Summary 4
Model-Based Design Executable Specifications Design with Simulation Models Continuous Test and Verification Automatic Code Generation 5
Model-Based Design Development Process Requirements User Acceptance Testing Environment System Design Executable Specifications Complete & Test Physical Components testing Specification Algorithms Design with Simulation Models Continuous Test and Verification & Test Component Design Code Verification and Validation Research Design Automatic Code Generation Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 6
Verification and Validation Model-Based Design Continuous Verification and Validation Requirements User Acceptance Testing Environment System Design Physical Components testing Complete & Test Specification Algorithms & Test Component Design Code Verification and Validation Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 7
Model-Based Design Development Process Requirements Requirements capturing in Word, DOORS, etc. User Acceptance Testing Environment System Design Physical Components testing Complete & Test Specification Algorithms & Test Component Design Code Verification and Validation Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 8
Model-Based Design Multi-Domain Modeling and Algorithm Development Requirements Methods for modeling systems in different domains User Acceptance Testing Environment System Design Physical Components testing Complete & Test Specification Algorithms Data Flow (Block diagram) Physical Modeling (Schematic) & Test Component Design Code Verification and Validation Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Data Modeling Algorithm Development Event-Driven Systems MCU DSP FPGA ASIC Programing Language (Textual) 9
Model-Based Design Early Concept Verification Requirements User Acceptance Testing Specification Environment System Design Physical Components Algorithms Executable specifications Predict dynamic system behaviour by simulation - System & environment models - Less physical prototypes Use of simulation results for system design - Fast Component What-/If Design studies - Short iteration cycles Code Verification and Validation testing & Test Complete & Test Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Data Modeling Algorithm Development Idea MCU DSP FPGA ASIC Simple Model Detailed Model 10
Demonstration Motor Control, Design 11
Agenda Model-Based Design An Introduction Use of Production Code Generation for Proving Functional Equivalence between Model and Code Summary 12
Model-Based Design Development Process Requirements User Acceptance Testing Environment System Design Physical Components testing Complete & Test Specification Algorithms & Test Component Design Code Verification and Validation Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 13
Model-Based Design Automatic Code Generation Requirements C/C++, VHDL and PLC-Code Generation from one model C, C++ VHDL, Verilog Structured Text User Acceptance Testing Specification System Design Support for Fixed Point Data Format Environment Automatic scaling Supported in Simulation and Code-Generation Physical Components Algorithms Easy integration of legacy C/C++-Code System development independent of the target Component Design MCU Embedded Coder (C, C++) DSP FPGA ASIC HDL Coder (VHDL, Verilog) PLC Coder (Structured Text) Code Verification and Validation PLC testing PLC & Test Complete & Test Research Design DSP & µc Embedded Software Digital Electronics & Test FPGA & ASIC Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 14
Demonstration Motor Control, Code Generation 15
Codegeneration Report V Automatically generated HTML links between model and code Contains all relevant information 16
Plattform Independent ANSI ISO C-Code V Plattform independent C/C++ Code Navigation between model and code ensuring traceability 17
Optimized Code for ARM Cortex-M V Code Replacement Tables Use of CMSIS library for code optimization 18
Agenda Model-Based Design An Introduction Use of Production Code Generation for Proving Functional Equivalence between Model and Code Summary 19
Verification and Validation Model-Based Design Continuous Verification and Validation Requirements User Acceptance Testing Environment System Design Physical Components testing Complete & Test Specification Algorithms & Test Component Design Code Verification and Validation Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 20
Model-Based Design Continuous Verification and Validation Requirements System validation/acceptance Test User Acceptance Testing Environment System Design Physical Components System tests in simulation Test vectors and expected responses System Tests Run system tests on integrated controller testing Complete & Test Specification Algorithms Research Component Design Design Component tests in simulation Test vectors and expected outputs Embedded Software Component Tests Digital Electronics Run component tests on target Code Verification and Validation & Test & Test Data Analysis C, C++ VHDL, Verilog Algorithm Development MCU DSP FPGA ASIC Data Modeling 21
Model-Based Design -Level & Testing Requirements User Acceptance Testing Processor-In-The-Loop System Design Simulation Co-Simulation of real hardware and simulated environment Environment Testing functional Equivalence Physical Components testing Complete & Test Specification Algorithms Component Design Code Verification and Validation & Test Research Design Embedded Software Digital Electronics & Test Data Analysis C, C++ VHDL, Verilog MCU DSP FPGA ASIC Data Modeling Algorithm Development 22
Demonstration STM32F4 Discovery, Equivalence Testing 23
Proving Functional Equivalence V Pure simulation vs. Processor-In-The-Loop simulation Proof of functional equivalence successful 24
ARM Cortex-M4: Add Peripheral Blocks, Generate Code, and Deploy! STM32F4xx Blockset 25
Agenda Model-Based Design An Introduction Use of Production Code Generation for Proving Functional Equivalence between Model and Code Summary 26
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 Design with Simulation Executable Specifications Models Continuous Test and Verification Better Cooperation, Communication and Collaboration Higher Product Quality Automatic Code Generation 27