ESIDE: An Integrated Development Environment for Component-Based Embedded Systems Nicholas T. Pilkington, Juncao Li, and Fei Xie Department of Computer.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Sensor Network Platforms and Tools
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
Object-Oriented Analysis and Design
TOSSIM A simulator for TinyOS Presented at SenSys 2003 Presented by : Bhavana Presented by : Bhavana 16 th March, 2005.
Week 1- Fall 2009 Dr. Kimberly E. Newman University of Colorado.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Design For Verification Synopsys Inc, April 2003.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
How to Code on TinyOS Xufei Mao Advisor: Dr. Xiang-yang Li CS Dept. IIT.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Embedded Architecture Description Language Qiang Liu School of Software, Tshinghua University Joint work with Juncao Li, Nick Pilkington, and Fei Xie Dept.
© Copyright Eliyahu Brutman Programming Techniques Course.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Course Instructor: Aisha Azeem
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
An Introduction to Rational Rose Real-Time
© Copyright Alvarion Ltd. Hardware Acceleration February 2006.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Introduction to MDA (Model Driven Architecture) CYT.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Hardware-software Interface Xiaofeng Fan
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
Formalizing Hardware/Software Interface Specifications
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
MODUS Project FP7- SME – , Eclipse Conference Toulouse, May 6 th 2013 Page 1 MODUS Project FP Methodology and Supporting Toolset Advancing.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Main Issues Three major issues that we are concerned with in sensor networks are – Clustering Routing and Security To be considered against the backdrop.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
CS223: Software Engineering Lecture 13: Software Architecture.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
System-on-Chip Design
Unified Modeling Language
An Introduction to Software Architecture
Design Yaodong Bi.
From Use Cases to Implementation
Presentation transcript:

ESIDE: An Integrated Development Environment for Component-Based Embedded Systems Nicholas T. Pilkington, Juncao Li, and Fei Xie Department of Computer Science Portland State University

2 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

3 Problems of Co-Development The hardware/software boundary…The hardware/software boundary… –interface is often specified implicitly. –tradeoffs insufficiently exploited. Simulation and formal verification…Simulation and formal verification… –are left as a final step before deployment. –require separate tools and interfaces. Embedded system development…Embedded system development… –is done without explicit support for re-use –or re-used modules introduce high overhead

4 Our Contribution The Embedded System IDE (ESIDE)The Embedded System IDE (ESIDE) –Based on the EADL language –Provides a unified environment for… Concurrent Hardware/Software Co-Development Co-Simulation, Co-Verification & Co-Synthesis –Abstracts architecture from implementation –Unifies development across all “platforms” Experiences with ESIDEExperiences with ESIDE –Remodel existing component-based embedded systems –Education tool on component-based design in Advanced Software Engineering Course

5 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

6 Embedded Architecture Description Language (EADL) Architecture-only specification –No runtime semantics –Can be initialized to different embedded platforms Encourages re-use on multiple levels of abstraction –Ports, components, component templates, and patterns Formal properties specified at design-time E.g., initialization of EADL to a platform SW Semantics (e.g., nesC) Bridge Semantics (BSL) HW Semantics (e.g., Verilog) Embedded Architecture Description Language

7 Overview of the Language Constructs EntitiesTemplates Port Service-oriented grouping of events Service provides-uses relationship Port Type Event co-relation similarity Component Unit of reuse Component interface based on ports Component Template Component external similarity Architecture Sub-components Sub-component inter-connections Architectural Pattern Component internal similarity

8 EADL - An Example software component TimerC { interface { provides StdControl, TimerP as Timer; uses PowerManagement, Clock, IOH; mapping(Timer, TimerM.Timer); mapping(StdControl, TimerM.StdControl); mapping(PowerManagement,TimerM.PowerManagement); mapping(Clock, TimerM.Clock); mapping(IOH, TimerM.IOH); } configuration { component TimerM; component NoLeds; connection(NoLeds.Leds, TimerM.Leds); } properties { assertion ClockP1 s1: After_Eventually_(StdControl.init.call=TRUE, Clock.setRate.call=TRUE) }

9 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

10 Main Features of ESIDE Platform-Based DevelopmentPlatform-Based Development –Choose your own native languages –Platform induces semantics into EADL architecture Component-Based Co-Design InterfaceComponent-Based Co-Design Interface –The central aspect of Co-Development –Simple, GUI-based drag ‘n drop interface Highly Accessible Simulation & VerificationHighly Accessible Simulation & Verification –Same interface for all development stages –Invoke at any time, on partial implementations One-Touch Native Language SynthesisOne-Touch Native Language Synthesis –Leverage native language tools to compile… –The tools are included in the platform package

11 ESIDE Architecture and Features

12 Platform-Based Development Platforms Provide… – Semantics Native Languages (HW, SW & Bridge) –Native Tools Co-Simulation Tools and Features Co-Verification Tools and Features Synthesizers from EADL to native languages –A Platform Library of Reusable EADL Constructs Ports, components, component templates, and architecture patterns

13

14 Co-Design Re-thinking the HW/SW relationshipRe-thinking the HW/SW relationship –Do away with the old stack-based approach –Hybrid components join HW and SW Re-use is independent of the HW/SW boundary –Bridge hides HW/SW communication details Makes the HW/SW component interfaces explicit and clear Component-Based DevelopmentComponent-Based Development –Interface functionality encapsulated by ports –Behavioral functionality by components –Common design trends captured by patterns

15 Co-Simulation Co-Simulation is a view-based feature Simulation is supported at TL or RTL levels Native language tools run HW/SW simultaneously Nature of the simulator is highly platform-dependent

16 Co-Verification Properties are specified at design-time, not afterward Verify at any time, even on partial implementations CBD allows for property-based abstractions (efficiency) Current system supports temporal-based assertions

17 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

18 The Platform Languages The nesC software languageThe nesC software language –Developed at UC Berkeley for TinyOS –Component-based specification language –No dynamic memory allocation –Intrinsic support for concurrency and atomicity The Verilog hardware languageThe Verilog hardware language –TinyOS is a software language only –We re-designed the Mica platform in Verilog The BSL bridge languageThe BSL bridge language –Developed by our team specifically for this platform –Explicitly describes the interface between HW&SW –Provides Transactors for transaction-level simulation –Compiles to C (nesC compatible) and Verilog code

19 Simulation on the TinyOS Platform

20 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

21 Experiences with ESIDE We remodeled 12 TinyOS-Based SystemsWe remodeled 12 TinyOS-Based Systems –Faithfully preserved the HW/SW stack architecture –Converted the code base with very little modification Encapsulation of components Componentized HW/SW interfaces One-to-many port mappings –Specified formal properties on the systems –Performed verification and simulation –Remodeled systems can be synthesized to TinyOS deployable code

22 Experiences with ESIDE (cont.) We gave ESIDE to students at PSUWe gave ESIDE to students at PSU –were from the Advanced Software Engineering Class –had no experience in embedded system design –had no experience in formal verification –were able to design complex and interesting systems A TinyOS networked sensor system (>50 components) A smart home system (>30 components)

23 Remodeling TinyOS Systems # of components in Mica platform library5564 # of components in PC platform library5863 # of ports/interfaces in Mica platform library3049 # of ports/interfaces in PC platform library2946 # of components specific for each system3841 # of ports/interfaces specific for each system810 # of hardware components developedN/A12 # of bridge components developedN/A2

24 Simulating the TinyOS Systems Co-SimulationCo-Verification System RTL (sec) TL (sec) Time (sec) Memory (MB) SenseTask SenseToLeds SenseToRFM CodeBlue

25 Agenda 1.Problems and Our Contribution 2.EADL Language as Basis of ESIDE 3.The ESIDE Environment 4.Case Study: the TinyOS Platform 5.Experiences with ESIDE 6.Future Work

26 Future Work Visual error trace playback featureVisual error trace playback feature –Simulation: Show the user what’s happening –Verification: Play back problematic execution Expressiveness of formal propertiesExpressiveness of formal properties –Include support for resource utilization, e.g. Expand the collection of platformsExpand the collection of platforms –Microsoft Invisible Computing Platform

27 Questions? Nicholas T. Pilkington Juncao Li Dr. Fei Xie