14
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc. Processor Expert technology DPTF Dataflow Programming Tools Framework Florin Iordache Software Engineer November 2012

DPTF - Dataflow Programming Tools Framework

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: DPTF - Dataflow Programming Tools Framework

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Processor Expert technology

DPTFDataflow Programming Tools Framework

Florin IordacheSoftware Engineer

November 2012

Page 2: DPTF - Dataflow Programming Tools Framework

2TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Usage:

Features:

Programming paradigm:

Dataflow programming overview

Design, simulation and offline analysis

Optimization and calibration

Intuitive and user friendly design and representation

Ability to easily exploit parallelism in designed software architecture

Suitable for applications focused on the flow of data

a.k.a. Flow-based programming or Diagrammatic programming

Programming paradigm based on graphical program elements manipulation as a directed graph

Based on usage of:• Symbols – programming language elements

• Shapes – visual programming statements• Links – relations between programming statements

Considers flow of data as the primary concern / Focused on how things connect

Page 3: DPTF - Dataflow Programming Tools Framework

3TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Existing dataflow programming tools

LabVIEW (National Instruments)

Simulink (MathWorks)

Simatic S7 (Siemens)

Unified Application Designer (Cisco)

Visual development environment that facilitates easy and rapid creation of networking and telecommunication applications targeting voice, video and data communication.

Graphical programming environment for Programmable Logic Controllers (PLCs) used to build automation systems for the purpose of industrial equipments control and monitoring.

Graphical platform used for the purpose of modeling, analysis and simulation of dynamic systems.

Graphical development platform that enables engineers without advanced programming expertise to build, setup, test and simulate virtual representations of laboratory equipment.

Not Eclipse based

Page 4: DPTF - Dataflow Programming Tools Framework

4TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

DPTF Usage examplesOverview: PEx QCS is a powerful and easy to use

development platform intended to increase productivity in software development for QorIQ

DPAA (Data Path Acceleration Architecture) tool is an embedded component inside PEx QCS which is designed specifically to allow easy and rapid creation of complex DPAA scenarios.

Provides support for all DPAA features

PEx QCS DPAA configuration view

Processor Expert Software QCS DPAA (Freescale)

Features: Bareboard/Linux support On the fly validation Automatic error notification Instant configuration summary Automatic code generation Port to Portal configuration Import NetPDL definition format

QorIQ SoC supported: P1: P1017, P1023, SC1023 P2: P2040, P2041 P3: P3041, P3060, P308BSS P4: P4040, P4080, SC4080 P5: P5010, P5020, P5021, P5040 T4: T4160, T4161, T4240 QorIQ Qonverge: B4860

Page 5: DPTF - Dataflow Programming Tools Framework

5TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

DPTF Usage examples

Overview: CodeWarrior IDE for MCUs

integrates the development tools for a wide range of microcontrollers: ColdFire, Kinetis, Qorivva, PX, RS08 and S08.

Integrates Processor Expert with Clock Diagram visualization component

CW MCU Clock Diagrams (Freescale)

CW MCU Clock Diagrams view

Features: Interactive clock diagram Automatic error notification Instant configuration summary Interactive human readable

expressions with editable operands Multiple clock source selection Interactive ON/OFF switch Import clock diagram from XML

Page 6: DPTF - Dataflow Programming Tools Framework

6TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

DPTF Technical overview

Framework used for creation of dataflow programming tools

Provided as an Eclipse plug-in

Implementation based on SWT toolkit

Freescale proprietary technology

Overview:

Characteristics:

Reusability

Usability (low barrier to entry)

Flexibility

Extensibility

Maintainability

Modularity

Reliability

Application data agnostic

Robustness

Fault tolerance

Page 7: DPTF - Dataflow Programming Tools Framework

7TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

GUI design provided by DPTF

Example of tool created using DPTF

Mainframe view

Scrollable view

Design Area view

DPTF toolbar

Application toolbar

Horizontal ruler

Vertical ruler

Status bar

Application specific dataflow symbols

Page 8: DPTF - Dataflow Programming Tools Framework

8TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

High Level Architecture

API separation Customization Interaction

Inversion of Control Encapsulation of dataflow features and functionalities Broadcasting framework events to external entities External plugins notification and information extraction

system

MVC based architecture Clear separation of concerns

Layered architecture Internal multi layered design

Event driven architecture Different modules responsible for event:

• Production• Detection• Consumption • Reaction

event

Event detection

Event consumption

Event production

Event reaction

event

reaction

reaction

NotificationsInformation extraction

Page 9: DPTF - Dataflow Programming Tools Framework

9TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Customization Features

Application customization DPTF specific settings

Custom symbols definition

Library of predefined symbols(e.g.: Switch)

Default configuration

Multiple configurations

Page 10: DPTF - Dataflow Programming Tools Framework

10TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Runtime Features

Copy/Paste/Remove options Zooming capability Print diagram

Multiple objects selection and grouping

Contextual menusInformation display

Interactive Action hints

Page 11: DPTF - Dataflow Programming Tools Framework

11TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Runtime Features (cont.)

Snap to grid Orthogonal links

On-the-fly validation

Symbol decoration

Shortcut keys

Interactive Expressions

Page 12: DPTF - Dataflow Programming Tools Framework

12TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Internal Expressions model:

Expressions model as an operator and a list of operands with each operand being an inner expression

Interactive expressions with editable operands (const, edit, drop down list)

Visual expressions representation in standard mathematical format (e.g.: division as a fraction)

Internal State Machine:

Driven by Internal State Machine model:• Receive and process incoming event• Determine the new state• Perform current state actions• Enter idle state

Analytic Geometry usage:

Each symbol (shape or link) is described by a certain equation inside the Cartesian coordinates system

DPTF automatically performs operations like transformations and intersections as response to GUI actions

All operations are implemented as a set of formulas based on internal system of equations

Internal functionality at a glance

Page 13: DPTF - Dataflow Programming Tools Framework

13TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobileGT, PowerQUICC, Processor Expert, QorIQ, Qorivva, StarCore, Symphony and VortiQa are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Airfast, BeeKit, BeeStack, CoreNet, Flexis, Layerscape, MagniV, MXC, Platform in a Package, QorIQ Qonverge, QUICC Engine, Ready Play, SafeAssure, the SafeAssure logo, SMARTMOS, TurboLink, Vybrid and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2012 Freescale Semiconductor, Inc.

Steps required to use DPTF for application development:

Usage steps

Create all required Eclipse plugins

Create all DPTF instances

Customize the overall DPTF look and feel

Create all custom symbols needed

Customize application specific toolbar

Create and install DPTF listeners and providers

Initialize DPTF

Use DPTF at runtime via interaction API

Dataflow programming tool complete.

DPTF framework available.

1

2

3

4

5

6

78

Page 14: DPTF - Dataflow Programming Tools Framework

TM