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.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
ES Seminar1 Communicating Transaction Processes P.S. Thiagarajan National University of Singapore Joint Work with: Abhik Roychoudhury; ……
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECE-777 System Level Design and Automation Hardware/Software Co-design
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Give qualifications of instructors: DAP
Evolution and History of Programming Languages Software/Hardware/System.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
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.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Define Embedded Systems Small (?) Application Specific Computer Systems.
Design of Fault Tolerant Data Flow in Ptolemy II Mark McKelvin EE290 N, Fall 2004 Final Project.
Models of Computation for Embedded System Design Alvise Bonivento.
Codesign Framework Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Describing Syntax and Semantics
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
Models of Computation Reading Assignment: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Computer-Aided Co-design Methods and Tools
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS 1 Hardware/Software Codesign of Embedded Systems DESIGN METHODOLOGIES Voicu.
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 {
Models of Computation: FSM Model Reading: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
Extreme Makeover for EDA Industry
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Configurable, reconfigurable, and run-time reconfigurable computing.
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.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #21 – HW/SW.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Mahapatra-Texas A&M-Fall'001 How to plan on project work? An attempt to consolidate your thought to gear up project activities.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
ECE-C662 Lecture 2 Prawat Nagvajara
Computing For Embedded System IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, Author : Edward A. Lee UC.
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.
PTII Model  VHDL Codegen Verification Project Overview 1.Generate VHDL descriptions for Ptolemy models. 2.Maintain bit and cycle accuracy in implementation.
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
FPGA-Based System Design Copyright  2004 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Hardware/Software Co-Design of Complex Embedded System NIKOLAOS S. VOROS, LUIS SANCHES, ALEJANDRO ALONSO, ALEXIOS N. BIRBAS, MICHAEL BIRBAS, AHMED JERRAYA.
Programmable Logic Devices
ASIC Design Methodology
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Introduction to cosynthesis Rabi Mahapatra CSCE617
Reconfigurable Computing
Logical architecture refinement
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
Presentation transcript:

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 in their web.

Mahapatra-Texas A&M-Fall'002 System Design What is System Design? “Is the process of implementing a desired functionality using a set of components”

Mahapatra-Texas A&M-Fall'003 System Design contd. Step1 Design must begin with specifying the desired functionality

Mahapatra-Texas A&M-Fall'004 Specification For precise specification, we need to - think the system to be a collection of simpler subsystems - a method (rules) to compose these pieces

ASV/LL UCB5 Functions vs. Computation Functions specify only a relation between two sets of variables (input and output) Computation describe how the output variables can be derived from the value of input variable

Mahapatra-Texas A&M- Fall'006 Essential Issues Modeling –System description –System behavior Validation (verification) Performance estimation Partitioning and mapping Synthesis: – Software synthesis – Hardware synthesis – Interface synthesis

Lilius of TUCS7 A Co-design framework System description Compiler System behavior Partitionning and mapping Partitioned specification SW synthesisHw synthesisInterface synthesis C-codeVHDL Prototype Validation Evaluation Performance estimation ASSUMPTION: Homogenous model of computation

Mahapatra-Texas A&M-Fall'008 Model The method or rules to compose the pieces of subsystems to create a system functionality is usually called a Model.

Mahapatra-Texas A&M-Fall'009 Model Model should be… formal : no ambiguity complete : with sets of properties, performance indices and constraints comprehensive and easy to modify natural to understand

10 Model What is a model? Model is a formal system consisting of objects and composition rules, and is used for describing a system’s characteristics.

Lilius TUCS11 Modeling Modeling digital systems is often complicated by the heterogeneity of its components. Distinguish between: –models of computation –hardware/software (specification) languages. A language may imply many models: –UML State Machines: synchronous behavior within a state machine asynchronous behavior between state machines

ASV/LL UCB12 Model of Computation A MoC is a framework in which to express what sequence of actions must be taken to complete a computation An instance of a model of computation is a representation of a function under a particular interpretation of its constituents. Not necessarily a bijection (almost never!)

Lilius TUCS13 Models of Computation Often existing models belong to several categories –Finite state machines: totally ordered discrete events –Petri nets: partially ordered events –Synchronous data-flow: multirate discrete time partially-ordered events

14 why different Models? Various models have certain strong properties that might be useful for some applications Some problems might be undecidable

Lilius TUCS15 Specification languages Finite-state based –synchronous communication: Statecharts, Esterel –asynchronous communication: SDL Partial orders of tasks: –VHDL at behavioral level Discrete time, cycle based: –VHDL at RTL level Synchronous data-flow: Silage, DFL, Lustre

Lilius TUCS16 Specification languages No perfect language exists! – Control (software): asynchronous (fsm) – DSP: data-flow – Hardware: synchronous  Force user to think in terms of: –one model of computation system: POLIS –many models of computation: PTOLEMY

17 A Co-design framework System description Compiler System behavior Partitionning and mapping Partitioned specification SW synthesisHw synthesisInterface synthesis C-codeVHDL Prototype Validation Evaluation Performance estimation ASSUMPTION: Homogenous model of computation

Lilius TUCS18 Validation System-level validation (co-validation): –Methods for gaining reasonable certainty that the design is free from errors. Methods: – Verification – (Co-)Simulation – Emulation

Lilius TUCS19 Verification Specification verification Is the specification consistent? Does it have the required properties? Implementation verification Have we implemented the specification? Checking of: safety: nothing bad ever happens liveness: something good eventually happens

20 Weakly heterogeneous systems One or more processors, some dedicated hardware, and several software layers. Desired features of simulator: adequate timing accuracy fast execution visibility of internal registers for debugging purposes Problems: One step in program is equivalent to many steps in hardware  long running times  Availability of hardware models with the required abstraction level.

21 Highly heterogeneous systems Specialized simulators: – PTOLEMY (U.C. Berkeley)

22 A Co-design framework System description Compiler System behavior Partitionning and mapping Partitioned specification SW synthesisHw synthesisInterface synthesis C-codeVHDL Prototype Validation Evaluation Performance estimation ASSUMPTION: Homogenous model of computation

Lilius TUCS23 Partitioning Input: functional specification Output: –an architecture composed of hardware black boxes, software black boxes and interconnection media and mechanisms –a mapping function that assigns functional units to architectural units

Lilius TUCS24 Partitioning Construction of mapping is an optimization problem: –mapping function optimizes a cost time, area, communication What is the architecture? –Automated synthesis of custom architectures difficult, common restrictions: limited to a library of predefined choices communication mechanisms are standardized

25 A Co-design framework System description Compiler System behavior Partitionning and mapping Partitioned specification SW synthesisHw synthesisInterface synthesis C-codeVHDL Prototype Validation Evaluation Performance estimation ASSUMPTION: Homogenous model of computation

Lilius TUCS26 Hardware synthesis Well established research field Several commercial tools exist Levels of abstraction: – Behavioral synthesis : algorithmic synthesis – Register-Transfer level synthesis : VHDL, Verilog – Logic level synthesis : netlist Research issue: reuse of hardware

27 Software synthesis Difficult problem for general purpose computing For embedded system much more constrained: no swapping devices no stacks only polling and static variables Simple algorithms –Translating FSM:s to programs especially simple Specification consists of concurrent tasks –Problem: How do we find a linear execution order that satisfies the timing constraints? Use scheduling theory.

Lilius TUCS28 Interface synthesis Interface between processor and ASIC –synthesis of software –synthesis of ”glue logic” Automatic generation of bus interfaces –PCI, VME Interfacing of sensors and actuators

29 Existing Tools Academic: –POLIS: U.C. Berkeley –PTOLEMY: U.C. Berkeley –VULCAN: Stanford U. (Hardware C) –CHINOOK: U. of Washington (VHDL) –COSYMA: U. of Braunschweig (C*) –MEIJE: INRIA and others (Esterel, Lustre, Signal) Commercial: –Arexys: SDL, VHDL, C –CoWare: C/C++ –LavalLogic: Java to Verilog –Cynlib: C++ to Verilog –Art, Algorithm to RT: C++ to RTL –SUPERLOG: System level description language

30 POLIS Specification: FSM-based languages (Esterel,...) Internal Representation: CFSM network Validation: high-level co-simulation FSM-based formal verification Partitioning: by hand, based on co-simulation estimates Scheduling: classical real-time algorithms Synthesis: S-graph-based code synthesis for software logic synthesis for hardware Main emphasis on unbiased verifiable specification

31 PTOLEMY Specification: Data flow graph Internal representation: DFG Validation: multi-paradigm co-simulation (DF, discrete events,...) Partitioning: greedy, based on scheduling Scheduling: linear, sorting blocks by ``criticality'' Synthesis: –DSP code –custom DSP synthesis for hardware Main emphasis on heterogeneous computation models

32 Projects Mini-Esterel Cosimulation using C and Verilog Implementation of a DSP algorithm in PTOLEMY Implementing a small ES in POLIS Codesign using FPGA Your own project