Download presentation
Presentation is loading. Please wait.
Published byCarol Simon Modified over 9 years ago
1
ID 024C: Auto Code Generation: The Shortest Distance From Idea to Implementation Christopher Myers Director of Software Development 12 October 2010 Version: 1.1
2
2 Christopher Myers cmyers@simuquest.com Director of Software Development Responsible for designing and managing development of SimuQuest product lines Lead Developer of QuantiPhi, a line of code generation tools that bring a hardware interface into the Simulink modeling environment. PREVIOUS EXPERIENCE: Working in the area of model-based development using MATLAB / Simulink since 2003. Production automotive and consumer electronics experience at Motorola since 2000. Designed high-performance network appliances designed to provide unparalleled visibility into network usage while at Arbor Networks, Inc. MS, BS from the University of Michigan
3
3 Renesas Technology and Solution Portfolio Microcontrollers & Microprocessors #1 Market share worldwide * Analog and Power Devices #1 Market share in low-voltage MOSFET** Solutions for Innovation ASIC, ASSP & Memory Advanced and proven technologies * MCU: 31% revenue basis from Gartner "Semiconductor Applications Worldwide Annual Market Share: Database" 25 March 2010 **Power MOSFET: 17.1% on unit basis from Marketing Eye 2009 (17.1% on unit basis).
4
44 Renesas Technology and Solution Portfolio Microcontrollers & Microprocessors #1 Market share worldwide * Analog and Power Devices #1 Market share in low-voltage MOSFET** ASIC, ASSP & Memory Advanced and proven technologies * MCU: 31% revenue basis from Gartner "Semiconductor Applications Worldwide Annual Market Share: Database" 25 March 2010 **Power MOSFET: 17.1% on unit basis from Marketing Eye 2009 (17.1% on unit basis). Solutions for Innovation
5
55 Microcontroller and Microprocessor Line-up Superscalar, MMU, Multimedia Up to 1200 DMIPS, 45, 65 & 90nm process Video and audio processing on Linux Server, Industrial & Automotive Up to 500 DMIPS, 150 & 90nm process 600uA/MHz, 1.5 uA standby Medical, Automotive & Industrial Legacy Cores Next-generation migration to RX High Performance CPU, FPU, DSC Embedded Security Up to 10 DMIPS, 130nm process 350 uA/MHz, 1uA standby Capacitive touch Up to 25 DMIPS, 150nm process 190 uA/MHz, 0.3uA standby Application-specific integration Up to 25 DMIPS, 180, 90nm process 1mA/MHz, 100uA standby Crypto engine, Hardware security Up to 165 DMIPS, 90nm process 500uA/MHz, 2.5 uA standby Ethernet, CAN, USB, Motor Control, TFT Display High Performance CPU, Low Power Ultra Low Power General Purpose
6
66 Microcontroller and Microprocessor Line-up Superscalar, MMU, Multimedia Up to 1200 DMIPS, 45, 65 & 90nm process Video and audio processing on Linux Server, Industrial & Automotive Up to 500 DMIPS, 150 & 90nm process 600uA/MHz, 1.5 uA standby Medical, Automotive & Industrial Legacy Cores Next-generation migration to RX High Performance CPU, FPU, DSC Embedded Security Up to 10 DMIPS, 130nm process 350 uA/MHz, 1uA standby Capacitive touch Up to 25 DMIPS, 150nm process 190 uA/MHz, 0.3uA standby Application-specific integration Up to 25 DMIPS, 180, 90nm process 1mA/MHz, 100uA standby Crypto engine, Hardware security Up to 165 DMIPS, 90nm process 500uA/MHz, 2.5 uA standby Ethernet, CAN, USB, Motor Control, TFT Display High Performance CPU, Low Power Ultra Low Power General Purpose
7
7 Innovation: Innovate Faster
8
8 Model-Based Design Model-Based Design and Automatic Code Generation is the future of embedded controls. SimuQuest believes that as companies across all industries realize the innovation advantage that it provides, it will play a part in the design of nearly all embedded systems worldwide.
9
9 Agenda Introduction to modeling and auto-code Examples of Simulink / Stateflow Exploration of design concerns Fixed-point vs. floating point Integrating hand code with auto-code Modeling an entire application: One-Touch code generation Q&A
10
10 Agenda (in other words) Make the case for modeling and auto-code Show you what modeling and auto-code is all about Show you just how far it can be taken Answer questions
11
11 Key Takeaways Models helps define requirements Models can be auto-coded You can use that C code flexibly Auto-coding is powerful Auto-coding saves you time
12
12 Auto-Code Generation: Why Software Perspective Controls Perspective
13
13 Modeling: A Software Perspective Software Perspective Controls Perspective
14
14 Typical Project Kick-Off Delivery Effort Time
15
15 Ideal Project Kick-Off Delivery Effort Time
16
16 Dollars and Cents Advantage SOFTWARE DEFECT COSTS
17
17 Why Typical Approaches Don’t Work! Req 1.6.5.9.1.2.3 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut orci nulla. Aenean nulla metus, blandit eget blandit vitae, commodo sit amet metus. Mauris lacinia varius dui, quis dictum nisi aliquet vitae. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nisi nunc, blandit vitae porta vitae, faucibus sit amet neque… Use Case 1 Use Case n Or…
18
18 A Model-Based Approach Understand the system we’ll be interacting with. Model it. Develop executable models of system requirements Integrate early and often Bring pre-tested hardware drivers into the modeling environment Auto-generate code
19
19 Modeling: A Controls Perspective Software Perspective Controls Perspective
20
20 Why Auto-Code Generation: R&D
21
21 Modeling: Auto-Coding Software Perspective Controls Perspective
22
22 Our Auto-Coding Toolbox MATLAB QuantiPhi RTW Embedded Coder Simulink & Stateflow Base computing platform Modeling platform Auto-code generation Provides MCU configuration and device drivers.
23
23 Building Block: The Feature Feature Determine a set point Condition a user input Detect a fault Compute value for an actuator inputs outputs triggers
24
24 An Example Feature Model [In Simulink]
25
25 What About Integrating the Code? Feature Data Types Variables File Naming Legacy Code Target New Concerns!
26
26 What About Integrating the Code? Feature Data Types Variables File Naming Legacy Code Target
27
27 C to Simulink Mappings C Types unsigned char char unsigned short int short int unsigned long int long int float double Simulink Types boolean uint8 int8 uint16 int16 uint32 int32 single double + additional fixed- point types available
28
28 Data Types: Floating and Fixed Point float my_var = 3.57; FPUNo FPU
29
29 Data Types: Floating and Fixed Point *IEEE754 1 float* uint16 001110000000000 Artificial binary point ufix16_En4 1100101011110001110010 00000001 0 0 Value to represent: 3.57 uint16 3 57 Artificial decimal point (understood that number is 100x higher than real value) ufix16_Sp01 3. (0.5 + 0.0625)
30
30 Data Types (+Fixed Point) in Simulink [In Simulink]
31
31 Auto-Coding for Different-Sized Targets Feature Data Types Variables File Naming Legacy Code Target
32
32 More Control Over Generated Code Feature Data Types Variables File Naming Legacy Code Target
33
33 More Control Over Generated Code Simple: Can control variable’s: Placement in RAM / ROM Class (const, volatile, etc) Naming Scope (global vs. local) Advanced: Can control variable’s: Declaration Definition Code needed to read Code needed to write
34
34 More Control Over Generated Code (Cont’d) Simple: Can control subsystem’s: Name of the file containing its code Name of the generated function Advanced: Can control subsystem’s: Placement in memory (near vs. far for example) RAM / ROM variable placement in memory
35
35 Legacy Code Feature Data Types Variables File Naming Legacy Code Target
36
36 Legacy Code Feature Backed By Legacy Code inputs outputs triggers [Go to Simulink] Step 1: Simulation Behavior Step 2: Code Generation Behavior
37
37 Typical Auto-Coding Methodologies Feature Effort =
38
38 Typical Auto-Coding Methodologies Feature 1Feature n “Application Layer” Effort =
39
39 Typical Auto-Coding Methodologies Feature 1Feature n Hardware Interface Effort =
40
40 Convinced?
41
41 The Next Step Feature 1Feature n Hardware Interface
42
42 A B C Interfacing With Hardware
43
43 Interfacing With Hardware A B C PA0 RPM pwm0 QuantiPhi
44
44 Hardware Abstraction Layer Example of a digital debounce:
45
45 Another Hardware Abstraction Layer Example Example of analog counts to engineering units:
46
46 A “One Touch” Example Using QuantiPhi [In Simulink]
47
47 Innovation: Innovate Faster
48
48 Related Lab [In Simulink] 021L: Model Based Control Design and Auto Code Generation using the R8C
49
49 Questions?
50
50 Thank You!
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.