System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın

Similar documents
System Level Design Flow

SoC Design for the New Millennium Daniel D. Gajski

SpecC Methodology for High-Level Modeling

Unit 2: High-Level Synthesis

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

HARDWARE SOFTWARE CO-DESIGN

ICS 252 Introduction to Computer Design

COE 561 Digital System Design & Synthesis Introduction

Hardware/Software Co-design

EE414 Embedded Systems Ch 9. State Machines

Design Methodologies. Kai Huang

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

ECE 587 Hardware/Software Co-Design Lecture 12 Verification II, System Modeling

Hardware Description Languages & System Description Languages Properties

HIGH-LEVEL SYNTHESIS

Synthesis at different abstraction levels

High-Level Synthesis (HLS)

Lecture #1: Introduction

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

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.

CS2214 COMPUTER ARCHITECTURE & ORGANIZATION SPRING 2014

NISC Application and Advantages

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Register Transfer Level in Verilog: Part I

Cycle-accurate RTL Modeling with Multi-Cycled and Pipelined Components

Embedded System Design

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

VHDL for Synthesis. Course Description. Course Duration. Goals

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

Stacked FSMD: A New Microarchitecture Model for High-Level Synthesis. Khushwinder Singh Jasrotia

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Hardware Description Languages & System Description Languages Properties

Block diagram view. Datapath = functional units + registers

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

MLR Institute of Technology

Transaction-Level Modeling Definitions and Approximations. 2. Definitions of Transaction-Level Modeling

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network

Control and Datapath 8

Energy Estimation Based on Hierarchical Bus Models for Power-Aware Smart Cards

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM)

HDL. Operations and dependencies. FSMs Logic functions HDL. Interconnected logic blocks HDL BEHAVIORAL VIEW LOGIC LEVEL ARCHITECTURAL LEVEL

VHDL: RTL Synthesis Basics. 1 of 59

Register Transfer Methodology II

Outline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

3 Designing Digital Systems with Algorithmic State Machine Charts

FPGA for Software Engineers

Digital System Design

Chapter 8: Computation models 8-1

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

CS 310 Embedded Computer Systems DESIGN

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

SPECC: SPECIFICATION LANGUAGE AND METHODOLOGY

Datapath Allocation. Zoltan Baruch. Computer Science Department, Technical University of Cluj-Napoca

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

System Synthesis of Digital Systems

Word-Level Equivalence Checking in Bit-Level Accuracy by Synthesizing Designs onto Identical Datapath

VHDL simulation and synthesis

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

EE 3170 Microcontroller Applications

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

ESL design with the Agility Compiler for SystemC

Register Transfer Level

Embedded System Design Modeling, Synthesis, Verification

Computer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories

EE382V: System-on-a-Chip (SoC) Design

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Synthesis of Combinational and Sequential Circuits with Verilog

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

RTL Design (Using ASM/SM Chart)

Scheduling in RTL Design Methodology

An introduction to CoCentric

(ii) Simplify and implement the following SOP function using NOR gates:

Abstraction Layers for Hardware Design

A Process Model suitable for defining and programming MpSoCs

RTL Power Estimation and Optimization

Modeling and Simulation of System-on. Platorms. Politecnico di Milano. Donatella Sciuto. Piazza Leonardo da Vinci 32, 20131, Milano

ECE 587 Hardware/Software Co-Design Lecture 23 Hardware Synthesis III

Overview of Digital Design Methodologies

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

08 - Address Generator Unit (AGU)

The SpecC System-Level Design Language and Methodology, Part 1. Class 309

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Programmable Logic Devices II

Embedded System Design

Specifications Part 1

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi

The S6000 Family of Processors

Overview of Digital Design with Verilog HDL 1

ARM 64-bit Register File

Computer Organization

Verilog for High Performance

Transcription:

System Level Design For Low Power Yard. Doç. Dr. Berna Örs Yalçın

References System-Level Design Methodology, Daniel D. Gajski Hardware-software co-design of embedded systems : the POLIS approach / by Felice Balarin... [et al.], Boston : Kluwer Academic Publishers, c1997 Embedded System Design, Peter Marwedel, Kluwer Academic Publishers, 2003 Low Power Electronics Design

Design Methodologies The designers can only focus their efforts on the level at which the system is comprehensible to them. Complexities of Systems -on-chip rising almost daily The set of specific tasks in design process is called a design methodology. Need a new methodology increased productivity decreased times-to-market. Solution increasing levels of abstraction, or in other words, increasing the size of the basic building blocks. The industry infrastructure which is also supported by separate SW and HW programs created the system gap in which non-compatible SW and HW methodologies are preventing the progress in design of electronic systems.

Design Flow (1/2) Capture-and-Simulate Methodology (approximately from 1960s to 1980s) Software and hardware design was separated by a system gap. SW designers tested some algorithms and possibly wrote the requirements document and an initial specification. This specification was given to HW designers who read it and started system design with a block diagram. They did not know whether their design will satisfy the specification until the gate level design was captured and simulated. Describe-and-Synthesize methodology (late 1980s to late 1990s) Logic synthesis Designers first specify what they want in terms of Boolean equations or FSM descriptions The synthesis tools generate the implementation in terms of a gate netlist The behavior or the function comes first and the structure or implementation next. There are two models to simulate: behavior (function) and gate-level structure (netlist). Specification comes before implementation and they are both simulatable. It is possible to verify their equivalence since they can be both reduced to a canonical form in principle. Today s designs are too large for this kind of equivalence checking. By late 1990s the logic level has been abstracted to cycle-accurate (RTL) description and synthesis. We have two abstraction levels (RTL and gate levels) and two different models on each level (behavioral and structural). The system gap still persists.

Design Flow (2/2) Specify, Explore-and-Refine Methodology (from early 2000s ) In order to close the gap we must increase level of abstraction from RTL to SL. On SL level we have executable specification that represents the system behavior (function) structural models with emphasis on connectivity (communication). Each model is used to prove some system property such as functionality, connectivity, communication and so on. Each model can be considered to be a specification for the next level model in which more detail in implementation is added. Specify-explore-refine (SER) methodology represents a sequence of models in which each model is an refinement of the previous one. SER methodology follows the natural design process where designers specify the intent first, explore possibilities and then refine the model according to their decisions. SER flow can be viewed as several iterations of the basic describe-and-synthesize methodology.

Missing Semantics With introduction of SL abstraction, designers have to generate even more models. One obvious solution is to automatically refine one model into another. That requires well defined model semantics, or, in other words, good understanding what is meant by the given model. Design methodologies and EDA industry have been dominated by simulation based methodologies in the past. For example, all HDL (such as Verilog, VHDL, SystemC, and others) are simulatable but not synthetizable or verifiable. A case statement can be used to model a FSM or a look-up table, for example. However, FSMs and look-up tables require different implementations: a FSM can be implemented with a controller a look-up table is implemented with a memory. Therefore, the model which uses case statement to model FSMs and tables is good for simulation not good for implementation since a designer does not know what was really described by the case statement. Thus, clean and unambigues semantics is needed for refinement, synthesis and verification. Such a clean semantics is missing from most of the simulation-oriented languages.

While transformations are small and not significant changes in a model, a refinement, on the other hand, modifies the model dramatically by exposing a different aspect or characteristic of the design.

Model Definition A model is a set of objects and a set of composition rules defined on those objects. A specification level model objects like behaviors for computation channels for communication An architecture model components such as processors, memories, IPs for computation buses for communication. Composition rules combine objects into larger objects and create hierarchical structures. A model algebra represents the set of all possible models that use the same set of objects and composition rules. Such a set of all possible models is infinite. A specific model is defined by a set of relations (one relation per each composition rule) which define which objects are related by the particular composition rule in the given model.

Refinement- based methodology Any design flow or design methodology can be described by a set of models and the corresponding set of refinements of one model into another. Since each model refinement is well defined sequence of transformations, each refinement can be automated. If each refinement is automated, then each model can be automatically generated.

Refinement- based methodology If models are automatically generated then designers do not need to write different design models except the original specification model. If designers do not write models then there is no need for different modeling languages. In other words, designers only make design decisions, while every design decision is automatically applied through corresponding model transformation.

System Synthesis through Refinement Synthesis is the process of converting the functional description of a black box into a structure of the black box that consists of connected components from a given library. During this process we must make several different design decisions selecting components and their connectivity, Mapping computation and communication constructs to components ordering or scheduling computations or communications of different messages adding new objects inserting synchronization to preserve dependences

System Synthesis through Refinement The design process is a sequence o f such design decisions. Since for every design decision there is a model transformation, a sequence of design decisions will result in a sequence of transformations or model refinement. Synthesis = design + refinement The main challenge for every application today is to define the appropriate set of models and corresponding refinements for every refinement, the sequence of design decisions and corresponding model transformations.

Y-Chart Y-Chart makes the assumption that each design can be modeled in three basic ways that emphasize different properties of the same design. Y-Chart has three axes that represent design behavior (function, specification) design structure (netlist, block diagram) physical design (layout, boards, packages). Behavior represents a design as a black box and describes its outputs in terms of its inputs and time. The black-box behavior does not indicate in anyway how to implement the black box or what its structure is. In the structure axis, black box is represented as a set of components and connections. Although, behavior of the black box can be derived from its component behaviors such behavior may be difficult to understand. Physical design adds dimensionality to the structure. It specifies size (height and width) of each component, the position of each component, each port and each connection on the silicon substrate or board or any other container. Y-Chart can also represent design on different abstraction levels identified by concentric circles around the origin. Each abstraction level uses different time granularity. Usually, four levels are identified: Circuit Logic Processor System levels.

Y-Chart The abstraction level can be also identified by the main component used in the structure.the main components on Circuit level are N or P-type transistors Logic level they are gates and flip-flops Processor level the main components are storage units such as register files and functional units such as ALUs System level they are processors, memories and buses Converting behavior into structure on each abstraction level is called synthesis, and the structure into layout is called physical design. Each abstraction level needs also a database of components on this level. Each component in the database has tree models representing three different axes in the Y-Chart: behavior or function (sometimes called Model of Computation (MoC)) structure of components from the lower level of abstraction physical layout or implementation of the structure. These components are IPs for each abstraction level.

Example A system which can add or multiply two 32-bit numbers Behavioral representation: Structural representation: Several interconnected registers Arithmetic units Multiplexors and Focus : functional correctness create better products when working with behavioral respresentation

Levels of Abstraction

Finite State Machine r1/n r2/n start r1/d1 f 1 f 2 r2/u1 r1/d2 r3/u2 r3/u1 r2/d1 f 3 r3/n

Finite State Machine States A set of transitions A set of actions <S, I, O, f : S I S, h : S I O> Set of states : S={s 1,s 2,,s n } Set of inputs : I={i 1,i 2,,i m } Set of outputs : O={o 1,o 2,,o k } Next state function : f Output function : h

Meally and Moore Machines Transition based (Mealy) : h : S I O State based (Moore) : h : S O

Views of an Elevator Controller If the elevator is stationary and the floor requested is equal to the current floor, then the elevator remains idle. If the elevator is stationary and the floor requested is less than the current floor, then lower the elevator to the requested floor. If the elevator is stationary and the floor requested is greater than the current floor, then raise the elevator to the requested floor. loop if (req_floor = curr_floor) then direction := idle; elsif (req_floor < curr_floor) then direction := down; elsif (req_floor > curr_floor) then direction := up; end if; end loop; req_floor < curr_floor direction := down req_floor = curr_floor direction := idle req_floor > curr_floor direction := up req_floor < curr_floor direction := down Down Idle Up req_floor = curr_floor direction := idle req_floor = curr_floor direction := idle req_floor > curr_floor direction := up

r1 r1 r2 r3 start f1/n f2/n f3/n r2 r2 r3 r3 r1 r2 r2 r3 r1 f1/u1 r1 r3 f2/u1 r3 r2 f3/d1 r2 r1 r1 r1 f1/u2 f2/d1 r2 f3/d2 r3 r1 r3 r2 r3

FSM with Data Path Curr_floor!=req_floor/output:=req_floor-curr_floor; curr_floor:=req_floor start S 1 Curr_floor=req_floor/output:=0 <S, I STAT, O A, f, h> A set of storage variables : VAR A set of expressions : EXP={ f(x, y, z, ) x, y, z, VAR } A set of storage assignments : A={ X e X VAR, e EXP } A set of status expressions : STAT={ Rel(a, b) a, b EXP} f : S (I STAT) S h : S (I STAT) (O A)

Architecture After appropriate model transform the model into an architecture req_floor curr_floor State register Combinational logic direction req_floor curr_floor processor In/out ports Bus memory direction

Activity Oriented Models Dataflow Graph For transformational systems : outputs are determined by a set of computations on the system s inputs No states Activities and dataflow between them

DFG : A set of nodes and edges Input X A 1 A 2 Y V File V Z W Output Output Data store : records in a database, a file, a variable in a memory, a register Activity : a program, a procedure, a function, one intruction, one arithmetic operation Data being transmitted Supports hierarchy, since each activity node can be represented by another DFG Does not contain any information about implementation

Heterogeneous Models Control / data flow graph (CDFG) DFG : represent data flow among activities CFG : represent the squencing of the DFGs start stop Stop/disable A 2, disable A 3 S 0 S 1 S 2 Start/enable A 1, enable A 2 W=10 / disable A 1, enable A 3 control W = 10 disable enable W disable enable A 2 disable enable Z A 1 X Y A 3

Control-Data Flow Graph (CDFG) Programming languages consist of if statements, loops, and expressions. In each of the then or else parts, the if statement computes a set of expressions called a Basic Block (BB). The if statement can also be used in the loop construct to represent loop iterations. Any programming-language code can be represented by a CDFG consisting of if diamonds, which represent if conditions, and BB blocks, which represent computation.

Flowcharts : A set of nodes and arcs start J=1 Max=0 J=J+1 No Computation : a sequence of assignment statements Decision : control branching J>N No MEM(J)>MAX Yes MAX=MEM(J) Yes end Arcs for control flow

Instruction Set (IS) flow chart describes the fetch, decode, and execute stages of each instruction. The fetch stage consists of fetching the new instruction into the Instruction Register (IR) and incrementing the Program Counter. In the decode stage, we decode the type and mode of the fetched instruction. Four types of instructions: register, memory, branch, and miscellaneous instructions. In the case of memory instructions, there are four modes: immediate, direct, relative, and indirect. Each mode contains load and store instructions. Each instruction execution is in turn described by a BB, which may take several clock cycles to execute, depending on the processor implementation structure.

Processor Structural Model Consists of a Datapath and a Controller. Datapath executes the DFG attached to each state in the FSMD model. The Datapath has storage units such as Registers, register files, caches and memories, function units such as ALUs, multipliers, shifters, connection units such as buses. Each unit may take one or several clock cycles to produce output. can be pipelined through several stages. may have input and output latches or registers.. can be connected to any of the buses. The above flexibility can be used to pipeline the entire Datapath which comes useful when processing instruction streams in RISC/CISC processors or control streams in NISC/RTL processors. The Controller keeps track of the presents state, defines the next state and controls the execution of the Datapath in each state. Its implementation defines the type of the processor.

Processor /RTL Synthesis consists in converting a FSMD model into a RTL/NISC/RISC/CISC processor that generates the same result as the model. consists of several tasks; a) Allocation of components from the RT library and definition of the Datapath, b) Rescheduling of computation in each state since some components may need more than one clock cycle, c) Binding of variables, operations and register transfers to storage elements, functional units and busses in the Datapath, d) Synthesis of hardwired or programmable controller for RTL/ NISC/RISC/CISC. Generation of refined model representing the Processor structure. For example, the statement a = b + c executing in state (n) can be written: 1) without any binding: a = b + c; 2) with storage binding of a to RF(1), b to RF(3), and c to RF(4): RF(1) = RF(3) + RF(4); 3) with storage and functional unit binding with + bound to ALU1: RF(1) = ALU1(+,RF(3),RF(4)); 4) with storage, functional unit, and connectivity binding: Bus1 = RF(3); Bus2 = RF(4); Bus3 = ALU1 (+,Bus1,Bus2); RF(1) = Bus3; Any of the tasks (a)-(d) can be done in parallel or in any order. If the structure of Controller and Datapath are fixed as in case of RISC/CISC processors then the compiler converts a FSMD model into an instruction stream. Those instructions are loaded into the Programmable memory. If the above tasks are performed automatically, we call the above process RTL synthesis or Behavioral synthesis. In this case many register transfers can be performed in each state of the FSMD model. In this case the RTL/NISC synthesizer generates the control words that can be loaded into programmable memory or implemented with logic gates.

System Level Methodology (1/2) Specifying the system s functionality in the earliest stage of the process Advantages to work with an executable specification : Capture the product s functionality Used by marketing departments to study the competitiveness Documentation during all steps of the design process Automatic verification of different design properties Automation of design exploration and synthesis Starting point for all the product upgrades

System Level Methodology (2/2) Select a language for writing these specification Must allow an easy exploration of design alternatives Specification must then be partitioned into software and hardware parts Estimate the quality metrics and compare with the requirements

Models and Architectures The system = collection of simpler subsystems or pieces There are different methods of decomposing functionality A particular method = a model

System Behavioral (Functional) Model Since systems consists of many communicating components (processors, IPs) the FSMD model will not be able to model a system since it uses a single thread of execution. The easiest way is to retain the concept of states and transitions as in a FSMD model but to extend the computation in each state to include one or more processes described in a programming language such as C/C++. In order to represent an architecture with several processes running in parallel or in pipelined mode the system model should support concurrency (several components running in parallel) and pipelining (several components running in parallel with data passed between them sequentially). Since components are running concurrently we need a synchronization mechanism for data exchange. a concept of channel to encapsulate data communication. to support hierarchy to allow humans to write easily complex systems specifications. Such a model is called Program State Machine (PSM).

Hierarchical Concurrent Finite State Machine (HCFSM) Each set can be decomposed into a set of substates : hierarchy Each set can be decomposed into a set of concurrent substates : execute in parallel Language for HCFSM : Statecharts Ref: David Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming, Volume 8, Issue 3 (June 1987), Pages: 231 274

System-level structural model Arbitrary components (Proc., IP, Memory) Arbitrary connectivity (buses, protocols)

Structure oriented models : Component-connectivity diagram Models systems structural view Often used in the later phases of the design process Program memory Data memory components Processor System bus I/O coprocessor Application specific hardware Connections : buses, wires System block diagram

System Structural Model consists of variety of system components such as processors, IPs, memories, arbiters and special application-specific custom hardware components (RTL processors). They can be connected through different connection components such as buses with specific bus protocols. In case that component and bus protocol do not match there must be specific Interface (IF) for connecting such components with incompatible protocols. System structural model a composition of system computation and connection components; any system can be modeled with such a model.

Systems Base hardware platform Computational units Communication channels Memory units Peripheral devices Displays Wireless local area networks camcorders

System synthesis

System Synthesis PSM model can be synthesized into a arbitrary system structure by the following set of tasks: a) Profiling of code in each behavioral model and collecting statistics about computation, communication, storage,traffic, power consumption, etc., b) Allocating components from the library of processors, memories, IPs and custom components/processors, c) Binding PSM processes to processing elements, variables to storage elements (local and global), and channels to busses, d) Synthesizing interfaces (IFs) between components and busses with incompatible protocols, and inserting arbiters, interrupt controllers, memory controllers, timers, and other special components. e) Refining the PSM model into a architecture model that reflect allocation and binding decisions. The above tasks can be performed automatically or manually. Tasks (b)-(d) are usually performed by designers while tasks (a) and (e) are better done automatically since they require lots of mundane effort. Once the refinement is performed the structural model can be validated by simulation quite efficiently since all the component behaviors are described by high level functions. In order to accomplish all the above tasks, we may use several intermediate models on the way to reach the system structural model from behavioral model.

System-level Models can be distinguished by the accuracy of timing for their communication and computation. In the graph, the two axes represent the granularity of communication and computation. The functional specification at the origin is untimed, with only a causal ordering between tasks. The spectrum is the cycle accurate model represented by the FSMD model. A system level methodology takes the untimed specification to its cycle accurate implementation. The path through the intermediate models determines different types of refinements that must be performed.

System-level Models a) Specication Model (SM) is used by application designers to prove that their algorithms work on a given system platform. They also modify it for more efficient task and channel partitioning, mapping, and scheduling once a possible platform is defined. This model is also used for adding new features, functions, and upgrades after the initial deployment of the product into the market. b) Transaction-Level Model (TLM) is used by system designers to estimate design metrics (such as performance, cost, traffic, communication, power consumption, reliability, among others) and to explore different implementations (component selection, connectivity, system firmware, operating system selection, and different types of interfaces). c) Cycle-Accurate Model (CAM) is used by HW designers to verify the correctness of the generated system HW components (such as custom processors, interfaces, memory controllers, interrupt controllers, bridges, arbiters, and similar components) and by SW designers to verify the system firmware (such as task scheduling, data transfer, synchronization, interrupt procedures, and routing).

Specification Model is an untimed model consisting of objects and composition rules for building larger objects. The objects can be used for computation and communication. Computation objects are behaviors or processes in the PSM model while variables are used for communication of data between behaviors. Composition rules allow construction of larger objects by using hierarchical encapsulation, and ordering of objects in sequential, parallel, pipelined or state fashion. Transitions are used to specify the condition for execution of different behaviors, while synchronizations are used to insure that data are available at proper times.

Component-Architecture Model has same composition rules but several new objects representing different components. Additional computation objects are Processing Elements (PEs) that include processors, IPs and memories while new communication objects are variable channels used for communication between PEs. Inside the PEs we can still use behaviors and variables since execution is sequential and running on one processor. Since each behavior has been assigned to a PE, we can easily estimate the time for execution of each behavior. On the other hand, channels have not been assigned to busses and therefore we can not estimate the communication time.

Bus-Arbitration Model a new component for communication is added: bus channel. Several variable channels are assigned to the bus channel. Since bus channel transfers data from a set of PEs to another set of PEs, we must insert a new arbiter PE to determine bus priority between several competing channels. Since bus has been selected we can also estimate the communication time for each channel.

Bus-Functional Model a real protocol is inserted into bus channel. Therefore, bus channel becomes cycle-accurate. The rest of the model stays the same. The communication traffic can be now accurately estimated.

Cycle-Accurate Computation Model computation behaviors or processes are refined into SFSMD or FSMD models. Computation in each is therefore cycle-accurate while communication is still abstract with approximate timing. Since communication and computation do not have the same time granularity, each PE is encapsulated into a wrapper that abstracts its cycle-accurate time to approximate time of the communication model.

Cycle-Accurate Implementation Model This model has cycle-accurate time in both computation and communication. Furthermore, the abstract bus channel is replaced with bus wires, while its functionality is unlined into PEs. In addition channel functionality is converted into FSMD model and combined with computational FSMD model.

Model Taxonomy 1. State Oriented (state diagram) for control systems temporal behavior 2. Activity Oriented (dataflow graph) for transformational systems like digital signal processing 3. Structure Oriented (block diagram) 4. Data Oriented (entity relationship diagram) for information systems lik databases 3. Heterogeneous