modeling heterogeneous embedded systems with ttool
play

Modeling Heterogeneous Embedded Systems with TTool Daniela Genius, - PowerPoint PPT Presentation

Modeling Heterogeneous Embedded Systems with TTool Daniela Genius, Ludovic Apvrille, Letitia W. Li, Marie-Minerve Lou erat, Fran cois P echeux, Haralampos Stratigopoulos Daniela.Genius@lip6.fr IDM, GDR GPL Context Method Case Study


  1. Modeling Heterogeneous Embedded Systems with TTool Daniela Genius, Ludovic Apvrille, Letitia W. Li, Marie-Minerve Lou¨ erat, Fran¸ cois Pˆ echeux, Haralampos Stratigopoulos Daniela.Genius@lip6.fr IDM, GDR GPL

  2. Context Method Case Study Latencies Heterogeneous Extension Conclusion Design Methodology of an Embedded System System Partitioning between HW and SW ◮ Functions → execution nodes ◮ Communications between functions → communication and storage nodes ◮ Commonly ”system-level partitioning” with (very) abstract models 2/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  3. Context Method Case Study Latencies Heterogeneous Extension Conclusion Design Methodology of an Embedded System System Partitioning between HW and SW ◮ Functions → execution nodes ◮ Communications between functions → communication and storage nodes ◮ Commonly ”system-level partitioning” with (very) abstract models Software and hardware design ◮ Software and hardware are designed independently ◮ Integration phase 2/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  4. Context Method Case Study Latencies Heterogeneous Extension Conclusion Problem: Late Discovery of Bad Partitioning Partitioning Software Design Hardware design Final software VHDL/Verilog code Integration ◮ Usually focused on one modeling aspect: difficult to iterate between partitioning and design ◮ Objective: model-based approach with close interaction between partitioning and software design 3/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  5. Context Method Case Study Latencies Heterogeneous Extension Conclusion Related Work ◮ Ptolemy II (Ptolemy.org 2014) ◮ METROPOLIS (Balarin et al. 2003) ◮ Sesame and Daedalus (Thompson et al. 2007) ◮ MARTE with generation for Simics (Taha et al. 2010) ◮ MDGen (SODIUS) ◮ B method, Event-B (Abrial 2010) ◮ AADL (Feiler et al. 2012) 4/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  6. Context Method Case Study Latencies Heterogeneous Extension Conclusion Overall Method Partitioning Functional view Architecture view with Design Space Exploration techniques (DIPLODOCUS) Mapping view Reconsideration of partitioning decisions Hardware Software Component Deployment view model Software Hardware Abstractions Design and design Prototyping Refinements ... ... (AVATAR) Abstractions Simulation and Verification : Final safety, security VHDL/Verilog software and code performance 5/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  7. Context Method Case Study Latencies Heterogeneous Extension Conclusion Partitioning Method Functional view Architecture view (structure and behavior) Safety Safety Mapping view (UPPAAL) (Internal Model-checker) Reachability Safety deadlocks Safety Performance (Internal (internal SystemC-like Security Model-checker) simulator) (Proverif) 6/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  8. Context Method Case Study Latencies Heterogeneous Extension Conclusion Software Design Method Software Components (stucture and behavior) Deployment view Application SoCLib ldscript code OS Topcell (MutekH) Avatar Safety Functional Security Executable SocLib lib. (Internal simulation (ProVerif) Soft. code Model-checker, UPPAAL) Binary code SocLib simulation Reconsideration of partitioning decisions 7/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  9. Context Method Case Study Latencies Heterogeneous Extension Conclusion Virtual Prototyping with SoCLib ◮ Open platform for virtual prototyping of multi-processors System on Chip (MP-SoC) ◮ Started in 2006 as an ANR project with 11 research labs and 6 industrial partners: LIP6, Bull, CEA-LETI, INRIA, STMicro, . . . ◮ Public domain library of SystemC models of hardware components ◮ Operating systems: NetBSD, MutekH, GIET, ALMOS, ... ◮ Different levels of modeling and simulation ◮ Transaction Level (TLM) ◮ Transaction Level with Time (TLM-T) ◮ Cycle Accurate Bit Accurate (CABA) 8/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  10. Context Method Case Study Latencies Heterogeneous Extension Conclusion Case Study: Rover Autonomous vehicle for disaster relief efforts (earthquake) ◮ Telemetric sensors to detect obstacles and navigate terrain autonomously ◮ No obstacles in proximity → decrease sampling rate ◮ Obstacle detected in close proximity → increase sampling rate ◮ Temperature and pressure sensors ◮ Avoid collisions → set time frame → impose maximal latency 9/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  11. Context Method Case Study Latencies Heterogeneous Extension Conclusion Functional View DistanceSensor MainControl MotorControl changeRate + calculateCommand : Natural; + samplingRate : Natural; + state : Natural; newCommand samplingRate + calculateTraj : Natural; + calculateDistance : Natural; ultrasonicData motorCommand tempData stopT emp startT emp T emperatureSensor + samplingRate : Natural; + sensorOn : Boolean; 10/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  12. Context Method Case Study Latencies Heterogeneous Extension Conclusion Mapping View <<BUS>> Bus0 <<CPU>> <<MEMORY>> CPU0 Memory0 Rover::MainControl Rover::MainControl Rover::MotorControl Rover::DistanceSensor Rover::T emperatureSensor 11/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  13. Context Method Case Study Latencies Heterogeneous Extension Conclusion CPU Configuration 12/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  14. Context Method Case Study Latencies Heterogeneous Extension Conclusion Software Components: Block Diagram <<block>> <<block>> T emperatureSensor MainControl - sensorOn = false : bool; - state : int; - temp : int; - sensorOn : bool; - newRate : int; ~ in control(bool sensorOn) - samplingRate: int; ~ out tempData(int temp) - temp : int; <<block>> - leftVelocity: int; MotorControl - rightVelocity : int; - rightVelocity : int; - distanceLeft : int; - leftVelocity : int; - distanceRight : int; ~ in motorCommand(...) - distanceFront : int; <<block>> DistanceSensor ~ out motorCommand(int leftVelocity, ...) - samplingRate : int; ~ out control(bool sensorOn) - distance : int; ~ in tempData(int temp) ~ out ultrasonicData(...) ~ in ultrasonicData(int distanceLeft, ...) ~ in changeRate(int samplingRate) 13/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

  15. Context Method Case Study Latencies Heterogeneous Extension Conclusion State Machine Diagrams after (20,30) computeFor (20,30) startController sensorData(distanceLeft, distanceFront, distanceLeft) computeFor (1,10) [ state==2] [ state<2] sensorOn=true [ state==2] sensorOn=false measureT emp [else ] control(sensorOn) control(sensorOn) computeFor (2,5) tempData(temp) setVelocity calculateDistance [else ] <<block>> <<block>> MotorControl [ state!=2] MainControl computeFor (10,20) - rightVelocity = 0 : int; - state = 0 : int; - sensorOn : bool; - leftVelocity = 0 : int; - newRate : int; ~ in motorCommand(int leftCommand, int rightCom... - samplingRate = 1 : int; [ distanceFront>8] [ else] <<block>> - rateLow = 10 : int; - rateMed = 4 : int; dodgeObstacle DistanceSensor - rateHigh = 1 : int; - temp : int; - samplingRate = 10 : int; - distance : int; - leftVelocity = 0 : int; - distanceFront : int; - rightVelocity = 0 : int; [distanceFront<3 ] - distanceLeft : int; - distanceLeft : int; state1 - distanceRight : int; state0 - distanceRight : int; - distanceFront : int; ~ out sensorData(int distanceLeft, int di... - speedLow = 2 : int; ~ in changeRate(int samplingRate) - speedNormal = 5 : int; state2 ~ out motorCommand(int leftVelocity, int rightVelocity) ~ out control(bool sensorOn) [ distanceLeft>distanceRight] ~ in tempData(int temp) ~ in sensorData(int distanceLeft, int distanceFront, int dista... [ else] ~ out changeRate(int samplingRate) state=0 state=1 <<block>> newRate=rateLow newRate=rateMed turnLeft state=2 turnRight T emperatureSensor leftVelocity=speedNormal leftVelocity=speedLow - sensorOn = false : bool; - temp = 0 : int; newRate=rateHigh - samplingRate = 5 : int; rightVelocity=speedNormal rightVelocity=speedLow ~ in control(bool sensorOn) ~ out tempData(int temp) leftVelocity=1 rightVelocity=1 rightVelocity=speedLow leftVelocity=speedLow changeRate sendMotorCommand after (10,20) computeFor (1,5) motorCommand(leftVelocity, rightVelocity) [ samplingRate!=newRate] after (2,10) changeRate(samplingRate) controlT empSensor after (1,5) 14/50 Paris Sorbonne Universit´ e, Institut Mines-Telecom Model-Driven Embedded System Design 5.4.2018

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend