Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark...

25
1 © 2013 The MathWorks, Inc. Routes to Production Code Generation Mark Walker MathWorks

Transcript of Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark...

Page 1: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

1 © 2013 The MathWorks, Inc.

Routes to Production Code Generation

Mark Walker

MathWorks

Page 2: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

2

Aims

Overview of production code generation in R2013b

Highlight features for modern microprocessor

architectures

– Hardware / software co-design

– Multi-processor systems

Page 3: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

3

Production Software System Requirements

System Design

Software Design

Implementation

Software

Integration

Development Process

Simulation

Rapid Prototyping

Proof-of-Concept

Production Code Generation

System Integration

and Tuning

Hardware/Software

Integration

Hardware-in-the-Loop Testing

Page 4: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

4

What is involved – prototype to production

Working prototype

– Right answer

– Right closed loop performance

What’s missing?

– Evidence of standards compliance

– Robustness, reliability, reuse

– Runs on production hardware

– Interface to support functions, e.g. diagnostics, reprogramming

Page 5: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

5

Standards Compliance

Support for a wide range of standards:

– MISRA, MAAB, IEC 61508, ISO 26262, EN 50128, DO-178,

DO-254, …

– Up-to-date in every release, including R2013b

– Supported by automated checks where possible

Page 6: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

6

Mapping Model-Based Design to Standards

SIL 4 DAL A

Page 7: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

7

Support Package Downloads

Production Code Targets

Page 8: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

8

Embedded Systems Architectures, 1990s

Microprocessor

Dedicated ASICs for high

speed processing

Interconnected on PCB

Page 9: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

9

Embedded Systems Architectures, Today

Single IC:

2 ARM cores, FPGA fabric

Page 10: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

10

Embedded Systems Architectures: Xilinx Zynq

Source: http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm

Two ARM A9

processors

FPGA fabric Fast interconnect with

I/O and each other

(AXI bus)

Page 11: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

11

Target the Whole System with Model-Based

Design

Processor-in-the-Loop

(PIL)

Concurrent

Execution

HDL Coder

External Mode

Page 12: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

12

Offload Processing to Hardware

Key question: will my design fit on the processor?

<sobel_static_metrics.slx>

Page 13: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

13

Execution Profiling and Unit Testing with PIL

Key question: is it fast enough?

Run your candidate design on hardware = unit test

– Measure execution time

– Check for correct answer

– Measure coverage

<sobel_pil.slx>

Page 14: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

14

Target the FPGA: HDL Coder

Implementation Model

HDL Workflow

Advisor

Generated HDL

Generated

interface model

Page 15: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

15

Behavioural

Behavioural and Implementation Models

Implementation

Page 16: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

16

Hardware Software Co-Design

HDMI

input

Convert

to AXI

Sobel

Edge

Convert

From AXI

HDMI

output

Processor

AXI Stream

AXI Lite

Page 17: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

17

Hardware Software Co-Design

HDMI

input

Convert

to AXI

Sobel

Edge

Convert

From AXI

HDMI

output

Processor

HDL Coder

Embedded Coder

Page 18: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

18

Interface with External Mode

<gm_hdlcoder_sobel_video_interface.slx>

Page 19: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

19

Multi-Tasking in Simulink

Multi-tasking code generation has been available for a

long time

Page 20: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

20

Multi-Tasking in Simulink

Multi-tasking execution is still sequential

Parallel threads must not:

– Share internal data

– Execute with equal priority (can pre-empt though)

– Share data immediately at their interfaces

Now, concurrent execution now allows you to target

parallel threads

Page 21: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

21

Concurrent Execution

Page 22: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

22

Concurrent Execution

Model elements can run in parallel threads

Immediate, blocking and delayed data transfers

VxWorks, Linux (+ Embedded) and Windows

Open API to extend to any parallel architecture

<concurrent_exec.slx>

Page 23: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

23

Concurrent Execution

Page 24: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

24

Summary

We have seen:

– Standards compliance in R2013b

– Production targets available in R2013b

– Automating unit testing and profiling with PIL

– Modern architecture support in R2013b targets

Hardware / software co-design

Targeting multi-processor systems

Questions?

Page 25: Routes to Production Code Generation - MathWorks · Routes to Production Code Generation Mark Walker MathWorks . 2 Aims ... 5 Standards Compliance ... – Execute with equal priority

25