Production Code Generation Introduction and New Technologies

Similar documents
Verification, Validation, and Test with Model-Based Design

Automatic Code Generation Technology Adoption Lessons Learned from Commercial Vehicle Case Studies

Model-Based Design for Safety-Critical and Mission-Critical Applications Bill Potter Technical Marketing April 17, 2008

Verification and Validation Introducing Simulink Design Verifier

Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc.

From Design to Production

Making the Most of your MATLAB Models to Improve Verification

Hardware-Software Co-Design and Prototyping on SoC FPGAs Puneet Kumar Prateek Sikka Application Engineering Team

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

Introducing Simulink Release 2012b for Control System Development Mark Walker MathWorks

What s New in Simulink in R2015b and R2016a

Workflow for Control System Design and Implementation

How Real-Time Testing Improves the Design of a PMSM Controller

Moving MATLAB Algorithms into Complete Designs with Fixed-Point Simulation and Code Generation

Introduction to C and HDL Code Generation from MATLAB

MATLAB/Simulink in der Mechatronik So einfach geht s!

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

Ein Modell - viele Zielsysteme

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

Modeling a 4G LTE System in MATLAB

Verification and Validation of Models for Embedded Software Development Prashant Hegde MathWorks India Pvt. Ltd.

Accelerating FPGA/ASIC Design and Verification

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks

Model-Based Design for Video/Image Processing Applications

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

What s New with the MATLAB and Simulink Product Families. Marta Wilczkowiak & Coorous Mohtadi Application Engineering Group

Model-Based Design for Altera FPGAs Using HDL Code Generation The MathWorks, Inc. 1

2015 The MathWorks, Inc. 1

Optimize DSP Designs and Code using Fixed-Point Designer

Model to Code, Made Simple and Easy Sebastien Dupertuis Application Engineer Applications Engineering Group MathWorks Switzerland June 11, 2015

Real-Time Testing in a Modern, Agile Development Workflow

MATLAB/Simulink 기반의프로그래머블 SoC 설계및검증

Generating Industry Standards Production C Code Using Embedded Coder

Model-Based Design: Design with Simulation in Simulink

What's new in MATLAB and Simulink for Model-Based Design

Model-Based Design: Generating Embedded Code for Prototyping or Production

Designing and Analysing Power Electronics Systems Using Simscape and SimPowerSystems

Simulink 를이용한 효율적인레거시코드 검증방안

Accelerate FPGA Prototyping with

Simulink for AUTOSAR: Best Practices

Advanced AC Motor Control S/W Development Sang-Ho Yoon Senior Application Engineer The MathWorks

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Implementation and Verification Daniel MARTINS Application Engineer MathWorks

Master Class: Target Optimized Code Generation Shobhit Shanker Senior Application Engineer-Code Generation & Verification

Model-Based Design for Safety Critical Automotive Applications

Team-Based Collaboration in Simulink Chris Fillyaw Application Engineer Detroit, MI

Hardware and Software Co-Design for Motor Control Applications

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Codegenerierung für Embedded Systeme leicht gemacht So geht s!

Embedded Coder Getting Started Guide. R2011b

DRYING CONTROL LOGIC DEVELOPMENT USING MODEL BASED DESIGN

개발과정에서의 MATLAB 과 C 의연동 ( 영상처리분야 )

Using Model-Based Design in conformance with safety standards

Hardware and Software Co-Design for Motor Control Applications

Effective Team Collaboration with Simulink

What s New in Simulink Release R2016a and R2016b

Addressing Fixed Point Design Challenges

GAIO. Solution. Corporate Profile / Product Catalog. Contact Information

A Model-Based Reference Workflow for the Development of Safety-Related Software

2015 The MathWorks, Inc. 1

Design and Verification of FPGA and ASIC Applications Graham Reith MathWorks

Targeting Motor Control Algorithms to System-on-Chip Devices

Reducing the cost of FPGA/ASIC Verification with MATLAB and Simulink

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Hardware Implementation and Verification by Model-Based Design Workflow - Communication Models to FPGA-based Radio

Developing AUTOSAR Compliant Embedded Software Senior Application Engineer Sang-Ho Yoon

Cover TBD. intel Quartus prime Design software

Development and Deployment of ECU based Control Systems through MBD. Imperative role of Model based design in System Engineering

Virtual Hardware ECU How to Significantly Increase Your Testing Throughput!

Extending Model-Based Design for HW/SW Design and Verification in MPSoCs Jim Tung MathWorks Fellow

Intro to System Generator. Objectives. After completing this module, you will be able to:

Optimization and Implementation of Embedded Signal Processing Algorithms Jonas Rutström Senior Application Engineer

Modeling and Verifying Mixed-Signal Designs with MATLAB and Simulink

Simulink to Embedded Hardware Paul Peeling MathWorks

Introduction to Control Systems Design

Verification and Validation of High-Integrity Systems

The Use of Computing Clusters and Automatic Code Generation to Speed Up Simulation Tasks

Automating Best Practices to Improve Design Quality

Design and Verification of FPGA Applications

Using Model-Based Design to Accelerate FPGA Development for Automotive Applications

Practical approaches for re-architecture with benefits for AUTOSAR or non-autosar implementations Dave Hoadley Principle Pilot Engineer

What s New In Simulink: Fraser Macmillen

Rapid Development Platform for C-Programmable DSP using MATLAB and Simulink

FMI Kit for Simulink version by Dassault Systèmes

Team-Based Collaboration in Simulink

Model-Based Design Using Simulink, HDL Coder, and DSP Builder for Intel FPGAs By Kiran Kintali, Yongfeng Gu, and Eric Cigan

System Level Design with IBM PowerPC Models

Utilisation des Méthodes Formelles Sur le code et sur les modèles

다중센서기반자율시스템의모델설계및개발 이제훈차장 The MathWorks, Inc. 2

FPGA Based Digital Design Using Verilog HDL

Reducing Design Errors in Complex State Machines using Model-Based Design

Collaboration in Teams: Simulink Projects Demonstration

Introducing Simulink R2012b for Signal Processing & Communications Graham Reith Senior Team Leader, UK Application Engineering

Hardware and Software Co-Design for Motor Control Applications

Cover TBD. intel Quartus prime Design software

Control System Design and Rapid Prototyping Using Simulink Chirag Patel Sr. Application Engineer Modeling and Simulink MathWorks India

Simulink 모델과 C/C++ 코드에대한매스웍스의정형검증툴소개 The MathWorks, Inc. 1

Guido Sandmann MathWorks GmbH. Michael Seibt Mentor Graphics GmbH ABSTRACT INTRODUCTION - WORKFLOW OVERVIEW

Motor Control with Embedded Coder and TI C2000

MathWorks Technology Session at GE Physical System Modeling with Simulink / Simscape

Transcription:

Production Code Generation Introduction and New Technologies Tom Erkkinen Embedded Applications Manager The MathWorks, Inc. 2007 The MathWorks, Inc.

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New Features Executable Specification Detailed Design Code Generation Code Integration 2

Wayback MathWorks Machine Oct (www.archive.org) 12 1999 (Release 11) New First MathWorks Production Coder 500 staff Y2K 3

Simulink Code Generation - 1999 2005 Now supports two forms of code generation: rapid prototyping and production 4

NACA Wayback Computers Machine (www.archive.org) - 1949 First Computer Generated Code 5

Code Generation 1990s Real-Time Workshop and Stateflow Coder Generate code from Simulink and Stateflow that is easy to interact, tune, and experiment with Simulation Acceleration Rapid Prototyping Hardware in Loop (HIL) Embedded deployment Simulink and Stateflow Algorithm and System Design Generate C code Tune Real-Time System You can deploy code on any microprocessor using Real-Time Workshop because it generates ANSI-C. 6

On-Target Rapid Prototyping Simulink Controller Model Plant Model Code Generation Harness Links and Targets 7

Hardware in Loop (HIL) Simulink Controller Model Plant Model Code Generation Harness xpc Target Emulating Plant Model ECU Real-Time Computer 8

ECU Development 1990s Automatic Code Generation usage Paper Specs Modeling Simulation Acceleration Rapid Prototyping HIL Test Manual Integration Field Tests & CAL Hand Code 9

Simulink Code Generation - 1999 2005 10

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 11

ECU Development 2005 Using Model-Based Design with Automatic Code Generation System Specification Simulation Acceleration Component Design Component Integration System Integration HIL Test Rapid Prototyping Software Design Software Integration Processor-in-loop (PIL) Test On Target Rapid Prototyping Software-in-loop (SIL) Test Coding Coding Source Source Object Production Code Generation 12

Code Generation 2005 Real-Time Workshop Embedded Coder Generates efficient code that can be customized to look like hand code for Production Code Generation Simulink and Stateflow Algorithm and System Design Generate Verify Tune C code MCU DSP You can deploy code on any microprocessor using Real-Time Workshop Embedded Coder because it generates standard C (ANSI and ISO). 13

MAC 2005 14

MAC 2005 15

MAC 2005 16

Code Generation 2005 Real-Time Workshop Embedded Coder Generates efficient code that can be customized to look like hand code for Production Code Generation Embedded Targets Provide target specific blocks/features for On-Target Rapid Prototyping Simulink and Stateflow Algorithm and System Design Generate MCU C code Verify Tune DSP You can deploy code on any microprocessor using Real-Time Workshop Embedded Coder because it generates standard C (ANSI and ISO). 17

On-Target Rapid Prototyping Simulink Controller Model Plant Model Code Generation Harness Embedded Target (MPC5xx) 18

Rapid Prototyping Comparison Hardware (Cost) Model Flexibility Code Efficiency Purpose Traditional Bypass From off-the-shelf PCs To custom bypass HW More emphasis Less emphasis New ideas, green field research determine feasibility On-Target From Existing ECUs To eval board HW Less emphasis More emphasis Refine designs, production focused determine practicality 19

MAC 2005 20

MAC 2005 21

MAC 2005 More Efficient Than Hand 22

MAC 2005 23

Code Generation 2005 Real-Time Workshop Embedded Coder Generates efficient code that can be customized to look like hand code for Production Code Generation Some SIL support (behavior focused) Embedded Targets Provide target specific blocks/features for On-Target Rapid Prototyping Some PIL support (MPC5xx focused) Simulink and Stateflow Algorithm and System Design Generate MCU C code Verify Tune DSP You can deploy code on any microprocessor using Real-Time Workshop Embedded Coder because it generates standard C (ANSI and ISO). 24

ECU Development 2005 Today (R2007a) Using Model-Based Design with Automatic Code Generation System Specification Simulation Acceleration Component Design Component Integration System Integration HIL Test Rapid Prototyping Software Design Software Integration Processor-in-loop (PIL) Test On Target Rapid Prototyping Software-in-loop (SIL) Test Coding Source Object Production Code Generation 25

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 26

Code Generation Real-Time Workshop Embedded Coder C and C++ Production Code Generation Simulink, Stateflow, and Embedded MATLAB Functions Algorithm and System Design Targets and Links Provide target specific blocks and features Generate On-Target Prototyping C/C++ code MCU DSP You can deploy code on any microprocessor 27

Code Generation R2007a Real-Time Workshop Embedded Coder C and C++ Production Code Generation Simulink, Stateflow, and Embedded MATLAB Functions Algorithm and System Design Targets and Links Provide target specific blocks and features On-Target Prototyping Generate C/C++ code Generate Verilog/VHDL MCU DSP FPGA ASIC Simulink HDL Coder Verilog and VHDL Code Generation You can deploy code on any microprocessor or hardware device. 28

Code Generation Verification R2007a Real-Time Workshop Embedded Coder C and C++ Production Code Generation SIL Options Simulink, Stateflow, and Embedded MATLAB Functions Algorithm and System Design Targets Provide target specific blocks and features On-Target Prototyping PIL Generate C/C++ code Verify Generate Verify Verilog/VHDL Simulink HDL Coder Verilog and VHDL Code Generation MCU DSP FPGA ASIC You can verify deploy code on on any any microprocessor or or hardware device. 29

Code Verification R2007a Real-Time Workshop Embedded Coder C and C++ Production Code Generation SIL Options Emulated or Actual Target and Link Products Provide target specific blocks and features On-Target Prototyping PIL Options Incl. many more processors Simulink, Stateflow, and Embedded MATLAB Functions Algorithm and System Design Generate Verify C/C++ code Generate Verify Verilog/VHDL MCU DSP FPGA ASIC Simulink HDL Coder Verilog and VHDL Code Generation You can verify code on any microprocessor or hardware device. 30

Portable Word Sizes for SIL R2007a Problem Word sizes for the host and target platforms often differ Fixed sizes inhibit software-in-the-loop (SIL) testing of production intent code Solution Provide SIL option to size data types during compile (tmwtypes.h on host) Only fix data types for deployment (rtwtypes.h on target) Benefit Better facilitate desktop verification of production intent code SIL Deployment 31

SIL Simulink Controller Model Plant Model Code Generation Host-compiled C With S-Function Wrapper (DLL) Real-Time Workshop Embedded Coder SIL option 32

SIL vs. HIL Comparison Description SIL HIL Purpose Platform (Plant, ECU) Target Fidelity Convenience Verify Source Code Component Host, Host Emulated: same source code, not bit accurate Actual: Different source code, bit accurate (fix-pt) (LOW) Desktop convenient; executes just in Simulink; no HW cost (HIGH) Verify Complete System Functionality Target, Target Same executable code; bit accurate (fix-pt); cycle accurate; emulated I/O (HIGH) Executes in test bench or lab; $$ for processor, ECU, I/O, cables (LOW) 33

PIL Direct HW For MPC5xx Microprocessor Hardware Simulink Controller Model Plant Model Code Generation Options 1. Direct to HW Target for Freescale MPC5xx 34

PIL Indirect HW For Many Microprocessors Supported by IDE Simulink Controller Model Plant Model Code Generation Options 1. Direct to HW 2. Indirect to HW (IDE) - Today Cross-Compiled C (IDE) IDE Link 35

PIL - ISS For Many Devices Instruction Set Simulators (ISS) Simulink Controller Model Plant Model Code Generation Options 1. Direct to HW 2. Indirect to HW (IDE) Today 3. Simulated HW (ISS) Today Cross-Compiled C Instruction Set Simulator (ISS) IDE Link 36

Processor-In-the-Loop Comparison Description PIL (ISS) PIL (HW) Purpose Verify Object Code Verify Object Code Platform (Plant, ECU) Fidelity Convenience *ISS Instruction Set Simulator Host, Host Same object code; bit accurate (fix-pt); not cycle accurate since ISS (MID) Desktop convenient; executes just on host computer w/simulink and ISS; no HW cost (HIGH) Host, Target Same object code; bit accurate (fix-pt); cycle accurate since on HW (HIGH) Executes on desk or test bench; $ for processor board and cables (MID) 37

In-the-Loop Comparison Description SIL PIL (ISS) PIL (HW) HIL Software-in-the-Loop Processor-in-the-Loop Hardware-in-the-Loop Purpose Verify Source Code Component Verify Object Code Component Verify Object Code Component Verify Complete System Functionality Fidelity Platform (Plant, ECU) Convenience Emulated: same source code, not bit accurate Actual: Different source code, bit accurate (fix-pt) Same object code; bit accurate (fix-pt); not cycle accurate since uses ISS Host, Host Host, Host (ISS) Host, Target Real-Time System, Target Desktop convenient; executes just in Simulink; no HW cost Convenience Fidelity Desktop convenient; executes just on host computer w/simulink and ISS; no HW cost Same object code; bit accurate (fix-pt); cycle accurate since runs on HW Executes on desk or test bench; $ for processor board and cables Same executable code; bit accurate (fix-pt); cycle accurate; emulated I/O Executes in test bench or lab; $$ for processor, ECU, I/O, cables Real-Time Non real-time Non real-time (between samples) Non real-time (between samples) Hard real-time Engineers Systems or Software Engineers Software or Test Engineers Software or Test Engineers Systems or Test Engineers 38

MAC - 2004 39

Link and Target Products Links PIL via Integrated Development Environments (IDEs) Altium TASKING Analog Devices VisualDSP++ TI Code Composer Studio Mentor Graphics ModelSim Cadence Incisive Project creation for prototyping or production Targets Work on top of Links (are add-ons) Device driver block sets Processor specific optimizations Target 1 Link Target 2 Simulink TASKING ST10 Tricore 40

Links and Targets Product Providers Availability MathWorks Products Consulting MATLAB Central Third Parties Simulink TASKING ST10 Tricore Target 1 Target 2 Link 41

MATLAB Central www.mathworks.com/matlabcentral/fileexchange 42

Third Party Links and Targets www.mathworks.com/products/rtwembedded/supportedio.html 43

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 44

Embedded MATLAB Functions - 2007a R14 300 250 Fi Number of Supported Functions Non-Fi 200 150 100 50 0 R14 R14sp1 R14sp2 R14sp3 R2006a R2006b R2007a >>eml_frames, eml_nd 45

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 46

Fixed Point Tool 2006b 2007a Includes: Data type override Automated scaling Over/under flow detection Fixed vs. float plots >>fxpdemo_feedback 47

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 48

Code Efficiency R13 - R14SP2 - R2007a real_t rtb_switch[10] Wide Signals (for-loops) for real_t rtb_switch[10] for real_t tmp for for for 49

MISRA-C 2004 Support R2006a R2007a Our MISRA-C test suite consists of several example models Results shown for most frequently violated rules Improving MISRA-C compliance with each release, e.g. Eliminate Stateflow goto statements (R2007a) Compliant parentheses option available (R2006b) Generate default case for switch-case statements (R2006b) MathWorks MISRA-C Compliance Package available upon request http://www.mathworks.com/support/solutions/data/1-1ifp0w.html 50

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New features Executable Specification Detailed Design Code Generation Code Integration 51

POWER BLACK BOX V RCS INPUT BLUE GREEN RED Code Architecture - Integration Controller Model Communication Interfaces Comm Drivers Generated Algorithm Code Output Drivers M Actuators Sensors A B C Input Drivers Included Target Optimized Code Special Device Drivers Tuning RGBSplit-4 Special Interfaces Scheduler/Operating System and Support Utilities 52

Model Integration via Model Reference R14 Incremental code generation is supported via Model Reference dependent models rebuilt model changed and rebuilt >> rtwdemo_mdlreftop >> sldemo_mdlref_depgraph 53

Subsystem Integration w/export Functions R2006a Supports a popular scheduling technique in production Streamlines code generated No scheduler, no model step function >> rtwdemo_export_functions 54

Model Integration w/function Prototypes - R2007a Function control for top model Pass inports/outports as arguments Pass arguments by value or pointer Control argument names and order extern int32_t application(int32_t In); Generated step function definition 55

Production Code Integration Comparison Model Reference Integration Model Step Function Integration Subsystem (Function Export) Integration Fidelity / Control LOW-MID MID HIGH Convenience Fully automated, incremental code HIGH Convenience Prototype control MID Fidelity Manual integration LOW Applications Large Scale Models, System Focused Model Boundaries System or Software Software Engineering Focused 56

Pack-and-Go for Relocating Generated Code R2006b Packages generated code and all static dependencies (via zip) Built on BuildInfo API Code, Pack (Computer A) Go Unpack, Build (Computer B) 57

POWER BLACK BOX V RCS INPUT BLUE GREEN RED Code Architecture - Integration Controller Model Communication Interfaces Comm Drivers Generated Algorithm Code Output Drivers M Actuators Sensors A B C Input Drivers Included Target Optimized Code Special Device Drivers Tuning RGBSplit-4 Special Interfaces Scheduler/Operating System and Support Utilities 58

Legacy Code Tool R2006b Integrates external code for simulation and code generation (e.g., legacy lookup tables) Registration File Simulation Model Generated Code >> sldemo_lct_lut 59

Fixed-Point Advanced Lookup Tables R2006b Two blocks Prelookup Interpolation using prelookup Support Floating- and fixed-point n-d support Optimized Share prelookup costs Saturation-free Allows optimal data types Sub-table selection Cross block range check 60

Agenda Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New Features Executable Specification Detailed Design Code Generation Code Integration The Future? 61

Way Forward Machine Historical Review Code Generation 1999 (Release 11) Code Generation 2005 (Release 14) Code Generation and Verification R2007a New Features Executable Specification Detailed Design Code Generation Code Integration R2007b? 62

POWER BLACK BOX V RCS INPUT BLUE GREEN RED Way Forward Machine Application Generation Communication Interfaces Comm Drivers Generated Algorithm Code Output Drivers M Actuators Sensors A B C Input Drivers Optional Target Optimized Code Special Device Drivers Production TuningCode RGBSplit-4 Generation? Special Interfaces Scheduler/Operating System and Support Utilities 63

Way Forward Machine Ask the experts. Production Code Growth? 64

Exponential Growth of Embedded Code Estimated Source Lines of Code (LOC) Today s powertrain: 500,000 LOC Today s vehicles: 1,000,000 LOC 2015 vehicles: 100,000,000 LOC Growth of top end automotive embedded software has been exponential. Robert Gee Director of Strategy for Motorola Automotive Automotive Engineering, Managing for Software Success Aug 2006 sae.org/automag/electronics/08-2006/1-114-8-34.pdf 65

Explosive Growth of Code 20 MLOC in 2013 Software System Engineering with Model-Based Design, International Conference on Software Engineer, ICSE May 2007 Christopher Davey, Ford Motor Co and Jon Friedman The MathWorks, Inc 66

67

Conclusions Jorgen Hansson of the Software Engineering Institute advocates the use of modeling as a way to reducing the amount of testing required. GM s Jim Kolhoff confirms that strategy. GM Powertrain is aggressively implementing model-based algorithm development, he said. When a model-based system is simulated in software, the algorithm can be tested and validated prior to writing software that would implement it. Automotive Engineering, Managing for Software Success Aug 2006 sae.org/automag/electronics/08-2006/1-114-8-34.pdf 68

More Info Later Today - Papers - Scania, Ford, - Master Classes - Knock Detection - Exhibits and Demos - Production Code for Body Applications - Freescale, Mototron, 69

More Info Next Week PCG Workshop - Full Day - Hands-On - Free Details - Date: Tuesday, June 26, 2007 - Time: 8:30 a.m. 4:45 p.m. - Location: The MathWorks Novi, MI Request at - www.mathworks.com/seminars/ecunovi 70

More Info Next Month Live Webinar - Live Q&A Details - Date: July 17, 2007 - Time: Varies - Duration: 1 hour Request at - www.mathworks.com/webinars 71

More Info Anytime PCG Guided Tutorial - 3-4 hours - Detailed Intro Request at - www.mathworks.com/rtwembedded - Production Code Generation Eval Kit 72

Next Steps Anytime Contact Us: - www.mathworks.com/aboutus/contact_us We are very interested in learning about your production code needs. Thank you tom.erkkinen@mathworks.com 73

One More Thing 74

Way Forward Machine (www.archive.org) Software Engineers? Certainly Human! Coders? Coders? 75

-- Reference Material -- 76

Add Links to Requirements Requirements appear in the code >> rtwdemo_requirements 77

Enforce Modeling Standards Simulink Model Advisor Select from built-in checks Add customized check using API Archive report as evidence 78

Compliance history of library files Library files which can be used in production code are Provided in rtw/c/libsrc dir auto generated in _sharedutils dir In R2007a, complete compliance for Declarations (Rules 8.1 through 8.12) Control flow (Rules 14.1 through 14.10) Functions (Rules 16.1 through 16.10) Standard libraries (Rules 20.1 through 20.12) Improving compliance with each release for Identifiers Types Arithmetic & Pointer Conversions Expressions Pointers and Arrays Pre-processing directives 79

Documentation of the Generated Code HTML report Code node Pre-canned report Report generator Need setup No No No Yes Customizable No No No Yes Link to model objects Yes Yes No No Portable document Yes* No Yes Yes Containing model snapshots No No Yes Yes Multiple file formats No No No Yes Common use case Interactive review Interactive review Quick deposition Formal documentation Require Report Generator No No Installation Required Installation and license Required 80

Independent, Integrated Code Reports Standard HTML report of generated code using Real- Time Workshop Customize reports of model and generated code using Simulink Report Generator HTML, PDF, RTF, DOC Standalone: no license required to view previously generated reports >> rtwdemo_codegenrpt >> help rtwreport 81

Creating Customized Report Pre-made components Customized components sources.c setup files.rpt.rpt.rpt stylesheet.rgs.rgs.rgs.doc customized reports.mdl.h.xml.html.pdf 82

RTW BuildInfo API Problem Statement What are the dependencies and artifacts of the generated code? Requirements Provide a list of all dependencies for the generated code Enable easier integration with third-party tools, source control systems, and IDEs. Solution An M-based API that contains All source files and their fully qualified paths All header files and their fully qualified paths Compiler/linker options, build options Accessible During an RTW build process From a.mat file for post-build access rtwdemo_buildinfo 83

RTW Build Info API (Example) BuildInfoReport.html buildinfo_demo.m >> load_system( rtwdemo_counter ) >> set_param(bdroot,'postcodegencommand','buildinfo_demo(buildinfo)') >> rtwbuild( rtwdemo_counter ) 84

Support for Project-Based IDEs Optionally generate a makefile Template makefile only required when Generate makefile is selected Ideal for interfacing with Project- Based IDEs 85

Shared Library Target Solution Problem Better support for host-based system-level simulators Multiple application programming environments (C/C++, Fortran, MS Visual Basic, Borland Delphi, Java) Solution RTW-EC shared library target Generate a shared library (.dll or.so) version of the generated code with documented interface Support initialize, step, and terminate a simulation Unix and PC support Generate Shared Library Export Definitions 86

Shared Library Target Benefits Benefit Easier distribution of model simulation Shared library is reusable and upgradeable without recompiling the overall application Package and secure intellectual property Generate Shared Library Export Definitions 87

Configuring a Model Reference Hierarchy Before R2007a: Always re-copy all configuration sets Problem: Hard to manage - Multiple copies All referenced models must be modified Must unlock file for writing No easy way to use different configurations/targets 88

Configuring a Model Reference Hierarchy Workflow Solution: full configset reference 1. Add a ConfigSet in the base workspace 2. Add a ConfigSetRef to each model Change configuration in one place Reuse models in other applications Reconfigure target in one step Keep models locked >> cs = Simulink.ConfigSet or >> cs = getactiveconfigset(mdl); >> mdlref_configset_ref 89

Model Dependencies Model Dependency Viewer (R2006b) Easy to understand high level design Model Dependencies Tools (R2007a) Lists files required by your model in a manifest file Packages the model with required files into a zip file Compare older and newer manifests for the same model Captures.mdl,.mat,.m files dependencies Easy to see component dependencies Detects changes in lower level components that impacts components higher in the hierarchy 90

Model File Change Notification Problem: when using Simulink with revision control, Open a Simulink model, x.mdl Retrieve a new version of file x.mdl from revision control system When users Simulate, edit, generate code using x, which version are they using? Solution in R2007a: Model File Change Notification See Simulink preferences 91