routes to production code generation - mathworks · routes to production code generation mark...
TRANSCRIPT
![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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051911/600155f190e39a293958225b/html5/thumbnails/25.jpg)
25