Mahapatra-Texas A&M-Fall'001 Cosimulation II Cosimulation Approaches.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Embedded System, A Brief Introduction
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
The Design Process Outline Goal Reading Design Domain Design Flow
Co-simulation CPSC 617 Hardware-Software Codesign of Embedded Systems.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
1 Co-simulation Slides from: - Tony Givargis, Irvine, IC253 - Rabi Mahapatra, Texas A&M University - Sharif University.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
1: Operating Systems Overview
Co-simulation CPSC 617 Hardware-Software Codesign of Embedded Systems.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Mahapatra-TexasA&M-Spring20031 Introduction to co-simulation CPSC Hardware-Software Codesign of Embedded Systems.
OPERATING SYSTEM OVERVIEW
Define Embedded Systems Small (?) Application Specific Computer Systems.
Hier wird Wissen Wirklichkeit Computer Architecture – Part 5 – page 1 of 25 – Prof. Dr. Uwe Brinkschulte, Prof. Dr. Klaus Waldschmidt Part 5 Fundamentals.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
P t o l e m y A Framework For Simulating and Prototyping Heterogeneous Systems by Joseph Buck, Soonhoi Ha, Edward A. Lee & David G. Messerschmitt P r e.
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.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
(1) Modeling Digital Systems © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Chapter 1 Introduction. Computer Architecture selecting and interconnecting hardware components to create computers that meet functional, performance.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
CSET 4650 Field Programmable Logic Devices
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
1 H ardware D escription L anguages Modeling Digital Systems.
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.
Computer Organization and Architecture
Computer Organization and Design Computer Abstractions and Technology
Mahapatra-Texas A&M-Fall'001 How to plan on project work? An attempt to consolidate your thought to gear up project activities.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
1 Hardware/Software Co-Design Final Project Emulation on Distributed Simulation Co-Verification System 陳少傑 教授 R 黃鼎鈞 R 尤建智 R 林語亭.
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004.
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.
© Michel Dubois, Murali Annavaram, Per Strenstrom All rights reserved Embedded Computer Architecture 5SAI0 Simulation - chapter 9 - Luc Waeijen 16 Nov.
PTII Model  VHDL Codegen Verification Project Overview 1.Generate VHDL descriptions for Ptolemy models. 2.Maintain bit and cycle accuracy in implementation.
HW-SW Co-Simulation 王甦群 R Graduate Institute of Electrical Engineering National Taiwan University July 3, 2003.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
CS 5991 Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
CompSci 143A1 1. Introduction 1.1 The Role of Operating Systems - Bridge the “Semantic Gap” between Hardware and Application - Three Views of Operating.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
CPSC 617 Hardware-Software Codesign of Embedded Systems
Programmable Logic Devices
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
EEE2135 Digital Logic Design Chapter 1. Introduction
VLSI Testing Lecture 5: Logic Simulation
Chapter 1: Introduction
Introduction to cosynthesis Rabi Mahapatra CSCE617
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
VHDL Introduction.
What time is it?. What time is it? Major Concepts: a data structure model: basic representation of data, such as integers, logic values, and characters.
HIGH LEVEL SYNTHESIS.
William Stallings Computer Organization and Architecture
Presentation transcript:

Mahapatra-Texas A&M-Fall'001 Cosimulation II Cosimulation Approaches

Mahapatra-Texas A&M-Fall'002 How to cosimulate? How to simulate hardware components of a mixed hardware-software system within a unified environment? –This includes simulation of the hardware module, the processor, and the software that the processor executes. How to simulate hardware and software at same time? What are various challenges? –Software runs faster than hardware simulator. How to run the system simulation fast keeping the above synchronized? –Slow models provide detailed and accurate results than fast models. How to balance these effects? –Use of different platforms for simulations.

Mahapatra-Texas A&M-Fall'003 Some basic approaches Detailed Processor Model: –processor components( memory, datapath, bus, instruction decoder etc) are discrete event models as they execute the embedded software. –Interaction between processor and other components is captured using native event-driven simulation capability of hardware simulator. –Gate level simulation is extremely slow (~tens of clock cycles/sec), behavioral model is ~hundred times faster. Most accurate and simple model ASIC Model (VHDL Simulation) software Gate-Level HDL (Backplane)

Mahapatra-Texas A&M-Fall'004 Some basic approaches Bus Model (Cycle based simulator): –Discrete-event shells that only simulate activities of bus interface without executing the software associated with the processor. Useful for low level interactions such as bus and memory interaction. –Software executed on ISA model and provide timing information in clock cycles for given sequence of instructions between pairs of IO operation. –Less accurate but faster simulation model. ASIC Model (VHDL Simulation) (Backplane) Bus Function Model HDL Software executed by ISA Model Program running on Host

Mahapatra-Texas A&M-Fall'005 Some basic approaches Instruction Set Architecture Model: –ISA can be simulated efficiently by a C program. C program is an interpreter for the embedded software. –No hardware mode. Software executed on ISA model. Execution on ISA model provides timing (clock) details of the cosimulation. –Can be more efficient than detailed processor modeling because internals of the processor do not suffer the expense of discrete-event scheduling. ASIC Model (VHDL Simulation) software ISA Modell C program (Backplane) Program Running on Host

Mahapatra-Texas A&M-Fall'006 Some basic approaches Compiled Model: –very fast processor models are achievable in principle by translating the executable embedded software specification into native code for processor doing simulation. (Ex: Code for programmable DSP can be translated into Sparc assembly code for execution on a workstation) –No hardware, software execution provides timing details on interface to cosimulation. –Fastest alternative, accuracy depends on interface information. ASIC Model (VHDL Simulation) (Backplane) Software compiled for native code of the host Program running on host

Mahapatra-Texas A&M-Fall'007 Some basic approaches Hardware Model: –If processor exists in hardware form, the physical hardware can often be used to model the processor in simulation. Alternatively, processor could be modeled using FPGA prototype. (say using Quickturn) –Advantage: simulation speed –Disadvantage: Physical processor available. ASIC Model (VHDL Simulation) (Backplane) FPGA Processor

Mahapatra-Texas A&M-Fall'008 A New Approach This is a combined HW/SW approach. The host is responsible of having OS, some applications and might have superset simulating environment (RSIM, SIMICS, SIMOID). Use of fast backplane (PCI) for communication. Real processor or processor core in FPGA as hardware model, and ASIC/FPGA for interface and interconnection for hardware modeler. Good for fast complex architecture simulations including multiprocessor. Host with ISA Simulator Processor or FPGACore Interface Logic in FPGA PCI Bus

Mahapatra-Texas A&M-Fall'009 Domain coupling In four out of six approaches, we have host that run software and required to interact with hardware model or simulator. Difficulties: –providing timing information across the boundaries –coupling two domains with proper synchronization

Mahapatra-Texas A&M-Fall'0010 Migration across cosimulation Consider the system simulation at different levels of abstraction throughout the design process: – In the beginning of design process, hardware synthesis is not available. Hence use functional model to study the interaction between HW and SW. – As design progress with more implementations, replace functional model of hardware by netlist level. – Once detail operation of hardware is verified, swap back the high level description of HW design to gain simulation speed. The cosimulation environment should have this migration support across the levels of abstraction. Off-the-shelf Components: design is not a part of the current design process. Functional model is enough, no need to know internal details.

Mahapatra-Texas A&M-Fall'0011 Master slave cosimulation One master simulator and one or more slave simulators: slave is invoked from master by procedure call. The language must have provision for interface with different language Difficulties: –No concurrent simulation possible –C procedures are reorganized as C functions to accommodate calls HDL HDL Interface C simulator Master Slave

Mahapatra-Texas A&M-Fall'0012 Distributed cosimulation Software bus transfers data between simulators using a procedure calls based on some protocol. Implementation of System Bus is based on system facilities (Unix IPC or socket). It is only a component of the simulation tool. Allows concurrency between simulators. VHDL Simulator VEC Interface to Software Bus C program Interface to software Bus Cosimulation (Software) Bus

Mahapatra-Texas A&M-Fall'0013 Synchronization and Time in cosimulation In case of a single simulator (say Verilog) there is no problem for timing as single event queue is managed for simulation. If there are several simulators and software programs in the domain: –hardware and software domain are using a handshaking protocol to keep their time (clock) synchronized. Signals (events) transferred from one side to the other should have attached a time stamp. –It is possible to use a loosely coupled strategy which allows the two domain to proceed more independently. If a signal is received with a time stamp lower than the current clock in the respective domain, the respective simulator have to be back up.

Mahapatra-Texas A&M-Fall'0014 Aspects of cosimulation A frame work of cosimulation consists of variety of components, levels of abstractions and different models. Analog model Netlist-level Detail arch. model Instruction-set model Functional Model

Mahapatra-Texas A&M-Fall'0015 Heterogeneous Environment: Ptolemy Ptolemy supports different design styles encapsulated in objects called Domain. –Domain realizes a computational model appropriate for a particular sub- system. Ex: SDF, Dynamic Dataflow(DDF), Discrete Event(DE) and Digital hardware modeling environment (Thor). Domain consists of a set of Blocks and Schedulers that confirm to a common computational model. Block Geodesic Plasma PortHole BlockPortHole Block: setup go() wrapup() Geodesic initialize() numlnit() setSourcePort() setDestPort() Particle readType() print() operator <<() clone() PortHole initialize() receiveData() sendData() Block objects send and receive data encapsulated in particles to outside world through PortHoles. Buffering: by Geodesic Garbage Collection: Plasma

Mahapatra-Texas A&M-Fall'0016 Heterogeneous cosimulation: Ptolemy Any model can be used at the top of hierarchy. Within each level of hierarchy, it is possible to have Blocks containing foreign domain. Hierarchy heterogeneity is quite different from the concept of a simulation backplane (that imposes a top-level models of computation through which all subsystem interact). Active objects in a Domain are Stars. They perform computation and communications with other objects through PortHoles. SDFSched SDF Star SDF Domain

Mahapatra-Texas A&M-Fall'0017 Heterogeneous cosimulation: Ptolemy Domain XXX can contain foreign Domain YYY in it. Call it XXXWormhole To the stars of Domain XXX, the XXXWormhole appears as another star. Though, inside the Wormhole, it is entirely another domain. DE Sched SDFSched SDFStar SDF Domain SDFWormhole DE Domain DE Star SDFStar

Mahapatra-Texas A&M-Fall'0018 Cosimulation: Ptolemy EventHorizon provides an interface between the external and internal Domains (Wormholes). There exists an EventHorizon for all Domains. Thus each domain needs only an interface to this EventHorizon. EventHEventH DEtoUniversal SDFfromUniversal DEtoUniversal SDFtoUniversal SDFStar DEStar SDFScheduDESchedule SDFDomain SDFWormhole