使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1....

18
1 © 2015 The MathWorks, Inc. 使用 Simulink Embedded Coder 生成 高度优化的代码 董淑成 MathWorks 中国

Transcript of 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1....

Page 1: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

1© 2015 The MathWorks, Inc.

使用 Simulink 和Embedded Coder 生成高度优化的代码

董淑成MathWorks 中国

Page 2: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

2

要 点

1. 通过优化硬件资源降低成本

2. 通过最大化算法开发创新产品

3. 将代码生成的优势推广到更多应用

“基于模型设计超越手工C编码的优势是不可低估的。”

Kazuhiro Ichikawa, Ono SokkiOno Sokki Reduces Development Time for Precision Automotive Speed Measurement Device

Page 3: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

3

要 点

1. 通过优化硬件资源降低成本

2. 通过最大化算法开发创新产品

3. 将代码生成的优势推广到更多应用

“Embedded Coder生成优化的代码可以和我们写的手工代码相媲美,我们从来没有在自动生成的代码中找到缺陷。”

Dr. Robert Turner, ABB

ABB Accelerates the Delivery of Large-Scale, Grid-Connected Inverter Products with Model-Based Design

Page 4: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

4

挑 战

很难嵌入复杂的、代表最高水平的算法到低成本硬件

- 受限于RAM、ROM、堆栈以及计算速度

不是所有项目在设计阶段就能知道需要多少硬件资源

- 需要试验发现最优实现

手工编码是开发过程的瓶颈

- 增加bugs,项目延迟,过多的迭代

Page 5: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

5

解决方案

优化技术:

1. 使用优化设置

2. 最小化数据字长

3. 目标处理器代码优化

4. 选用最佳处理器

5. 减少数据复制

6. 重用组件

7. 精简逻辑

Page 6: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

6

1. 使用最优设置

Features: Embedded Coder Quick Start

Page 7: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

7

2. 优化数据类型

Features: Single Precision Converter

Page 8: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

8

3. 目标处理器代码优化

Features: Code Replacements

Page 9: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

9

ARM Cortex-A 的PIL基准测试结果

410.7

185.5

16.8 14.1

ANSI, No Opt ANSI, Opt NE10, No Opt NE10, Opt

Run Format: [ANSI or Ne10], [gcc no opt or gcc -02], ARM 1Ghz Cortex A8

Embedded Coder ANSI-C

Embedded Coder ANSI-C

(& GCC optimized)

Embedded Coder, NEON

Optimized

Embedded Coder, NEON

Optimized

(& GCC Optimized)Execution T

ime

Example: FIR Filter

Page 10: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

10

4. 选用最佳处理器

可移植代码:生成适合任意

处理器的算法代码

指定目标处理器的系统支持

包,ARM… Zynq

半导体供应商提供各自的目

标支持包, Infineon,

Microchip, NXP, TI,

Renesas,….

Page 11: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

12

5. 重用数据

Features: Reusable Storage Classes

Page 12: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

13

6. 重用组件

Features: Subsystem Reuse and Simulink Functions

Page 13: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

14

7. 精简逻辑 (克隆)

Features: Simulink Clone Detection

Page 14: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

15

7. 精简逻辑 (证明)

Features: Polyspace Code Prover

Page 15: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

16

总 结

优化技术:

1. 使用最优设置

2. 最小化字长

3. 目标处理器代码优化

4. 选用最优处理器

5. 减少数据复制

6. 重用组件

7. 精简逻辑

“Embedded Coder生成优化的代码可以和我们写的手工代码相媲美,我们从来没有在自动生成的代码中找到缺陷。”

Dr. Robert Turner, ABBABB Accelerates the Delivery of Large-Scale, Grid-Connected Inverter Products with Model-Based Design

Page 16: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

17

要 点

Simulink and Embedded Coder的

新功能可以:

1. 通过优化硬件资源降低成本

2. 通过最大化算法设计创新产品

3. 将代码生成的优势推广至更多

应用.

“当我们使用Embedded Coder从Simulink模型生成代码,并且把代码交付给软件团队的时候,他们知道这份代码已经非常完美了。”

Maria Radecki, BAE Systems

BAE Systems Delivers DO-178B Level A Flight Software on Schedule with

Model-Based Design

Page 17: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

18

更多的用户案例和应用

FLIR Systems, USA and Sweden

Thermal Imaging FPGA

Honeywell Aerospace, USA

Certified Flight Control Processor

GM, USA

Powertrain ECUBaker Hughes, Germany

Oil and Gas Drill Processor

Alstom Grid, UK

HDVC Power DSP

Festo AG, Germany

Robotic PLC

www.mathworks.com/company/user_stories/

Page 18: 使用 Simulink 和Embedded Coder 生成 高度优化的代码€¦ · 1. 通过优化硬件资源降低成本 2. 通过最大化算法开发创新产品 3. 将代码生成的优势推广到更多应用

19

Thank You!