1 Chapter 6 Co-synthesis Techniques. 2 Cosynthesis Methodical approach to system implementations using automated synthesis-oriented techniques Methodology.

Slides:



Advertisements
Similar presentations
VHDL Design of Multifunctional RISC Processor on FPGA
Advertisements

Embedded System, A Brief Introduction
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Evolution and History of Programming Languages Software/Hardware/System.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
The Design Process Outline Goal Reading Design Domain Design Flow
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Define Embedded Systems Small (?) Application Specific Computer Systems.
Ritu Varma Roshanak Roshandel Manu Prasanna
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
Trend towards Embedded Multiprocessors Popular Examples –Network processors (Intel, Motorola, etc.) –Graphics (NVIDIA) –Gaming (IBM, Sony, and Toshiba)
Digital System Design Verilog ® HDL Maziar Goudarzi.
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
Mahapatra-Texas A&M-Fall'001 Codesign Framework Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available.
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Programmable Logic- How do they do that? 1/16/2015 Warren Miller Class 5: Software Tools and More 1.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
Design methodology.
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Principles Of Digital Design Chapter 1 Introduction Design Representation Levels of Abstraction Design Tasks and Design Processes CAD Tools.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Automated Design of Custom Architecture Tulika Mitra
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
Microprocessor Dr. Rabie A. Ramadan Al-Azhar University Lecture 2.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
Other Chapters From the text by Valvano: Introduction to Embedded Systems: Interfacing to the Freescale 9S12.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Welcome CSC 480/580 – Digital Logic & Computer Design Term: Winter 2002 Instructor: William T Krieger.
Configurable, reconfigurable, and run-time reconfigurable computing.
COE 405 Design and Modeling of Digital Systems
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Hardware-software Interface Xiaofeng Fan
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Chapter 0 deSiGn conCepTs EKT 221 / 4 DIGITAL ELECTRONICS II.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
ECE-C662 Lecture 2 Prawat Nagvajara
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
System-on-Chip Design
ASIC Design Methodology
Combinational Logic Design
VLSI Testing Lecture 5: Logic Simulation
VLSI Testing Lecture 5: Logic Simulation
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
THE PROCESS OF EMBEDDED SYSTEM DEVELOPMENT
Chapter 1: Introduction
Hardware Description Languages
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
HIGH LEVEL SYNTHESIS.
Presentation transcript:

1 Chapter 6 Co-synthesis Techniques

2 Cosynthesis Methodical approach to system implementations using automated synthesis-oriented techniques Methodology and performance constraints determine partitioning into hardware and software implementations The result is “optimal” system that benefits from analysis of hardware/software design trade-off analysis

3 Cosynthesis Approach to System Implementation Memory Behavioral Specification and Performance criteria System Input Performance Cost Mixed Implementation Pure SW Pure HW Constraints [Gupta93] System Output © IEEE 1993

4 Co-synthesis Implementation of hardware and software components after partitioning Constraints and optimization criteria similar to those for partitioning Area and size traded-off against performance Cost considerations

5 Synthesis Flow HW synthesis of dedicated units – Based on research or commercial standard synthesis tools SW synthesis of dedicated units (processors) – Based on specialized compiling techniques Interface synthesis – Definition of HW/SW interface and synchronization – Drivers of peripheral devices

6 Co-Synthesis - The POLIS Flow “ ESTEREL ” for functional specification language

7 Hardware Design Methodology Hardware Design Process: Waterfall Model Hardware Requirements Preliminary Hardware Design Detailed Hardware Design FabricationTesting

8 Hardware Design Methodology (Cont.) Use of HDLs for modeling and simulation Use of lower-level synthesis tools to derive register transfer and lower-level designs Use of high-level hardware synthesis tools – Behavioral descriptions – System design constraints Introduction of synthesis for testability at all levels

9 Hardware Synthesis Definition – The automatic design and implementation of hardware from a specification written in a hardware description language Goals/benefits – To quickly create and modify designs – To support a methodology that allows for multiple design alternative consideration – To remove from the designer the handling of the tedious details of VLSI design – To support the development of correct designs

10 Hardware Synthesis Categories Algorithm synthesis – Synthesis from design requirements to control-flow behavior or abstract behavior – Largely a manual process Register-transfer synthesis – Also referred to as “high-level” or “behavioral” synthesis – Synthesis from abstract behavior, control-flow behavior, or register-transfer behavior (on one hand) to register-transfer structure (on the other) – Logic synthesis – Synthesis from register-transfer structures or Boolean equations to gate-level logic (or physical implementations using a predefined cell or IC library)

11 Hardware Synthesis Process Overview Behavioral Simulation Optional RTL Simulation Behavioral Synthesis Synthesis & Test Synthesis Gate-level Simulation Gate-level Analysis Place and Route Specification Implementation Verification Silicon Vendor Silicon Behavioral Functional RTL Functional Gate Layout

12 HW Synthesis 1.Specification Analysis 2.Concurrent Design 3.System Integration

13 Software Design Methodology Software Design Process: Waterfall Model Software Requirements Software Design CodingTestingMaintenance

14 Software Design Methodology (Cont.) Software requirements includes both – Analysis – Specification Design: 2 levels: – System level - module specs. – Detailed level - process design language (PDL) used Coding - in high-level language – C/C++ Maintenance - several levels – Unit testing – Integration testing – System testing – Regression testing – Acceptance testing

15 Software Synthesis Definition: the automatic development of correct and efficient software from specifications and reusable components Goals/benefits – To Increase software productivity – To lower development costs – To Increase confidence that software implementation satisfies specification – To support the development of correct programs

16 Why Use Software Synthesis? Software development is becoming the major cost driver in fielding a system To significantly improve both the design cycle time and life-cycle cost of embedded systems, a new software design methodology, including automated code generation, is necessary Synthesis supports a correct-by-construction philosophy Techniques support software reuse

17 Why Software Synthesis? More software  high complexity  need for automatic design (synthesis) Eliminate human and logical errors Relatively immature synthesis techniques for software Code optimizations – size – efficiency Automatic code generation

18 Software Synthesis Flow Diagram for Embedded System with Time Petri-Net

19 Automatically Generate CODE Real-Time Embedded System Model? Set of concurrent tasks with memory and timing constraints! How to execute in an embedded system (e.g. 1 CPU, 100 KB Mem)? Task Scheduling! How to generate code? Map schedules to software code! Code optimizations? Minimize size, maximize efficiency!

20 Software Synthesis Categories Language compilers – ADA and C compilers – YACC - yet another compiler compiler – Visual Basic Domain-specific synthesis – Application generators from software libraries

21 Software Synthesis Examples Mentor Graphics Concurrent Design Environment System – Uses object-oriented programming (written in C++) – Allows communication between hardware and software synthesis tools Index Technologies Excelerator and Cadre’s Teamwork Toolsets – Provide an interface with COBOL and PL/1 code generators KnowledgeWare’s IEW Gamma – Used in MIS applications – Can generate COBOL source code for system designers MCCI’s Graph Translation Tool (GrTT) – Used by Lockheed Martin ATL – Can generate ADA from Processing Graph Method (PGM) graphs

22 Software Synthesis Tool: The Design of Synthesis Tool for Interrupted-based Embedded Software

23 Motivation  System Complexity  Time to Market  Hardware-Software Co-design Methodology  Embedded Software Synthesis Tools  Text-Edit User-Interface  System Model  Interrupt Behavior Introduction

24 Designing of a Synthesis Tool  System Model  Interrupt Time Petri Net, ITPN  Scheduling  Interrupt-Based Quasi-Dynamic Scheduling, IQDS  Code Generation  Microcontroller(89c51) C Program Code  Real-Time Embedded Software Synthesis Tool  Graphical User-Interface Introduction

25 System Framework GUI Software Synthesis ITPN IQDS Code Generation Introduction

26 Definition for ITPN  ITPN Definition System Model  A ITPN is a 5-tuple.  P is a non-empty finite set of places.  T is a non-empty finite set of transitions.  I(t i ) is a input function.  O(t j ) is a output function.

27 Definition for ITPN  Ω:Ω(t)=(α, β, γ)  α:Earliest Firing Time, EFT.  β:Latest Firing Time, LFT.  γ:The type of interrupt for 8051.

28 A ITPN Example System Model t 1 (α 1, β 1, γ 1 ) p1p1 p2p2 p3p3 t 2 (α 2, β 2, γ 2 ) t 3 (α 3, β 3, γ 3 ) Initial Place End Place

29 Interrupt-Based Quasi-Dynamic Scheduling (IQDS) Scheduling & Code Generation  Step2: Decompose the ITPN into two parts : static scheduling and choice block (CB)  Step3: Search the routing path (choice clock set, CBS) for each CB  Step4: Derive all routing path from Initial Place  Step5: Check the real-time constraints for all routing path  Step1: Find the Initial Place, End Place, and Choice Block

30 An example of IQDS Scheduling & Code Generation p4p4 p1p1 p2p2 p3p3 p5p5 p6p6 p7p7 p 10 p 11 p 12 t 1 (1, 2, 1)t 2 (1, 1, 1) t 4 (1, 2, 1) t 3 (1, 3, 1) t 5 (1, 2, 1) t 6 (1, 4, 1) t 7 (1, 3, 1) t 8 (1, 4, 1) Choice Block1 Initial Place End Place

31 Scheduling & Code Generation An example of IQDS (cont.)  Route Extended Present Route t 1  t 2 CBS 1 : t 3 t 4 t 5 Result t 1  t 2  t 3 t 1  t 2  t 4 t 1  t 2  t 5 Present Route t 1  t 2  t 3 t 1  t 2  t 4 t 1  t 2  t 5 CBS 2 : t 8 t 9 Static Route t 6 t 7 Result t 1  t 2  t 3  t 6 t 1  t 2  t 4  t 7 t 1  t 2  t 5  t 8 t 1  t 2  t 5  t 9

32 Scheduling & Code Generation An example of IQDS (cont.) Result t 1  t 2  t 3  t 6 t 1  t 2  t 4  t 7 t 1  t 2  t 5  t 8 t 1  t 2  t 5  t 9 Real_Time_Check Schedulable Not Schedulable 0 α β 0 RouteTime Max SystemPeriod

33 Code Generation  Step2: Print transition’s content from Initial Place  Step3: Print “if then else”  Step4: Combine main_function, sub_function, and ISR  Step1: Differentiate ISR, main_function, and sub_function

34 Specification  Environment:  CPU : Pentium4 1.4GHz  Memory : 256MB DDR  OS : Windows XP  Programming Language : Visual Basic 6.0  Input : Graphical ITPN  Output : Keil C Software Synthesis Tool

35 Graphical User Interface Software Synthesis Tool  ITPN Edit, Scheduling and Code Generation Scheduling Code Generation ITPN Edit

36 Real-time Stepping Motor Control (RSMC)  System Function:  Control Stepping Motor speed and direction.  INT0, Timer1: Motor’s speed control.  Timer0 : Motor’s direction control. Examples

37 Block Diagram of RSMC Example Micro- controller 89C51 Input Device Display Stepping Motor Driving Circuit

38 ITPN Model for RSMC  Main Function Example p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 p7p7 p8p8 t 1 (2, 35, 13) t 2 (2, 35, 13) t 3 (2, 35, 13) t 4 (2, 35, 13) t 5 (2, 35, 13) t 7 (2, 35, 13) t 6 (2, 35, 13) t 1 : Capture Keypad register.t 2, t 3 : Turn on Stepping Motor. t 4 : Shut off Stepping Motor.t 5 : Set positive direct. t 6 : Set opposite direction.t 7 : Stop LED on.

39

40 ITPN Model for RSMC (cont.)  Timer0 ISR Example p9p9 p 10 p 11 t 8 (2, 2, 32)t 9 (6, 6, 32) t 8 : Reset t 9 : Scan Keypad

41

42 ITPN Model for RSMC (cont.)  Timer1 ISR Example p 12 p 14 p 13 p 15 p 17 p 16 t 10 (2, 2, 32) t 13 (0, 0, 32) t 11 (2, 2, 32) t 12 (2, 2, 32)t 14 (9, 9, 32) t 10 : Resett 11 : Increase counter t 12 : Reset countt 13 : Undo t 14 : Control stepping motor

43

44 ITPN Model for RSMC(cont.)  INT0 ISR Example p 18 p 19 p 21 p 20 p 23 p 22 p 24 p 25 t 15 (2, 2, 32) t 17 (2, 2, 32) t 20 (2, 2, 32) t 19 (2, 2, 32) t 16 (2, 2, 32) t 21 (0, 0, 32) t 18 (0, 0, 32) t 15 : Get the key (Speed up or down) t 16 : Check Max speed t 17 : Check Min speed t 18 : Undo t 19 : Speed up t 20 : Speed down t 21 : Undo

45

46 Scheduling and Code Generation Example

47 Real Time Constraints Example InterruptISR’s time INT08 Timer08 Timer115 ISR’s time : β-α > 31 (8+8+15=31) Cycle Time > 105

48 Emulation  Platform Architecture Example FPGA/CPLD Chip Single Chip Microcontroller Memory Keyboard LCD Display LED and 7-Segment Display Input Switch

49 Summary  Extended system model called “Interrupt Time Petri Net, ITPN”  An Interrupt-Based Quasi-Dynamic Scheduling, IQDS is proposed  Generate a microcontroller (8051) C program code  Graphical user interface make the tool more user-friendly Conclusion

50 END