1 Chapter 7 Function-Architecture Codesign Paradigm.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Data-Flow Analysis II CS 671 March 13, CS 671 – Spring Data-Flow Analysis Gather conservative, approximate information about what a program.
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Lecture 11: Code Optimization CS 540 George Mason University.
Chapter 9 Code optimization Section 0 overview 1.Position of code optimizer 2.Purpose of code optimizer to get better efficiency –Run faster –Take less.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Chapter 10 Code Optimization. A main goal is to achieve a better performance Front End Code Gen Intermediate Code source Code target Code user Machine-
Efficient Software Performance Estimation Methods for Hardware/Software Codesign Kei Suzuki Alberto Sangiovanni-Vincentelli Present: Yanmei Li.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
HW/SW Synthesis. 2 Outline u Synthesis u CFSM Optimization u Software synthesis s Problem s Task synthesis s Performance analysis s Task scheduling s.
1 Intermediate representation Goals: –encode knowledge about the program –facilitate analysis –facilitate retargeting –facilitate optimization scanning.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Courseware High-Level Synthesis an introduction Prof. Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens.
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.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 08: RC Principles: Software (1/4) Prof. Sherief Reda.
Ritu Varma Roshanak Roshandel Manu Prasanna
Models of Computation for Embedded System Design Alvise Bonivento.
System Partitioning Kris Kuchcinski
4/10/20081 Lab 9 RT methodology introduction Register operations Data Path Control Path ASM Example TA: Jorge Crichigno.
Center for Embedded Computer Systems University of California, Irvine and San Diego Hardware and Interface Synthesis of.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
Machine-Independent Optimizations Ⅰ CS308 Compiler Theory1.
EECS 249 Dec 4, 1999 Extending POLIS with User Defined Data Types Arvind Thirunarayanan Extending POLIS with User Defined Data Types Arvind Thirunarayanan.
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.
Models of Computation Reading Assignment: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
Center for Embedded Computer Systems University of California, Irvine and San Diego SPARK: A Parallelizing High-Level Synthesis.
October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim.
EECS 249, Fall 1999 Task Runtime Response Optimization Using Cost-Based Operation Motion Abdallah Tabbara Bassam Tabbara Alberto Sangiovanni-Vincentelli.
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
Topic #10: Optimization EE 456 – Compiling Techniques Prof. Carl Sable Fall 2003.
EECE **** Embedded System Design
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
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”
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
1 H ardware D escription L anguages Modeling Digital Systems.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #21 – HW/SW.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
L11: Lower Power High Level Synthesis(2) 성균관대학교 조 준 동 교수
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
1 Code optimization “Code optimization refers to the techniques used by the compiler to improve the execution efficiency of the generated object code”
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
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.
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.
High Performance Embedded Computing © 2007 Elsevier Chapter 7, part 3: Hardware/Software Co-Design High Performance Embedded Computing Wayne Wolf.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
High-level optimization Jakub Yaghob
ASIC Design Methodology
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Introduction to cosynthesis Rabi Mahapatra CSCE617
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
Architectural-Level Synthesis
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code.
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.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Presentation transcript:

1 Chapter 7 Function-Architecture Codesign Paradigm

2 Function Architecture Co-design Methodology System Level design methodology Top-down (synthesis) Bottom-up (constraint-driven)

3 Refinement Synthesis Verification FunctionArchitecture HW SW Mapping Trade-off Abstraction Co-design Process Methodology

4 System Level Design Vision Function casts a shadow Abstraction Refinement Architecture sheds light Constrained Optimization and Co-design

5 Main Concepts Decomposition Abstraction and successive refinement Target architectural exploration and estimation

6 Decomposition Top-down flow Find an optimal match between the application function and architectural application constraints (size, power, performance). Use separation of concerns approach to decompose a function into architectural units.

7 Abstraction & Successive Refinement Function/Architecture formal trade-off is applied for mapping function onto architecture Co-design and trade-off evaluation from the highest level down to the lower levels Successive refinement to add details to the earlier abstraction level

8 Target Architectural Exploration and Estimation Synthesized target architecture is analyzed and estimated Architecture constraints are derived An adequate model of target architecture is built

9 Architectural Exploration in POLIS

10 Main Steps in Co-design and Synthesis Function architecture co-design and trade-off – Fully synthesize the architecture? – Co-simulation in trade-off evaluation Functional debugging Constraint satisfaction and missed deadlines Processor utilization and task scheduling charts Cost of implementation Mapping function on the architecture – Architecture organization can be a pre-designed collection of components with various degrees of flexibilities – Matching the optimal function to the best architecture

11 Function/ Architecture Co-design vs. HW/SW Co-design Design problem over-simplified Must use Fun./Arch. Optimization & Co-design to match the optimal Function to the best Architecture 1. Fun./Arch. Co-design and Trade-off 2. Mapping Function Onto Architecture

12 Reactive System Co-synthesis (1) Control- dominated Design EFSM Representation CDFG Representation HW/SW DecomposeMap EFSM: Extended Finite State Machines CDFG: Control Data Flow directed acyclic Graph

13 Reactive System Co-synthesis (2) CDFG is suitable for describing EFSM reactive behavior but 8Some of the control flow is hidden 8Data cannot be propagated S1 a:= a + 1 S0 a:= 5 S2 a EFSM Mapping a := 5 state := S1 Case (state) BEGIN END S1 a := a + 1 state := S2 emit(a) S2 CDFG S0

14 S1 S0 S2 EFSM Representation a a:= 5 a:= a + 1 a:= 6 a Optimized EFSM Representation Data Flow Optimization

15 Optimization and Co-design Approach Architecture-independent phase – Task function is considered solely and control data flow analysis is performed – Removing redundant information and computations Architecture-dependent phase – Rely on architectural information to perform additional guided optimizations tuned to the target platform

16 Graphical EFSM Esterel Reactive VHDL Specification FFG AUX Modeling Function ArchitectureAFFG SHIFT (CFSM Network) Functional Optimization Macro-level Optimization Micro-level Optimization Resource Pool Estimation and Validation Behavioral Optimization Cost-guided Optimization HW/SW RTOS/Interface Co-synthesis Decomposition Constraints SW PartitionHW Partition Processor BUS Interface HW 1 HW 2 HW 5 HW 4 HW 3 RTOS Concrete Co-design Flow

17 Design Representation Function/Architecture Co-Design

18 Function/Architecture Optimization and Co-design Desig n Application Decomposition control data i/o ASICs processors fsm fsm data f. I O IDR SW PartitionHW Partition Processor BUS Interface HW 1 HW 2 HW 5 HW 4 HW 3 RTOS Hardware/Software Co-synthesis Mapping Abstract Co-design Flow

19 Design IDR SWHW Architecture Independent Architecture Dependent Constraints Unifying Intermediate Design Representation for Co-design Intermediate Design Representation Functional Decomposition

20 Platform-Based Design Source: ASV

21 Models and System Models of computation – Petri-net model (graphical language for system design) – FSM (Finite-State Machine) models – Hierarchical Concurrent FSM models POLIS system – CFSM (Co-design FSM) – EFSM (Extended FSM): support for data handling and asynchronous communication

22 CFSM Includes – Finite state machine – Data computation – Locally synchronous behavior – Globally asynchronous behavior Semantics: GALS (Globally Asynchronous and Locally Synchronous communication model)

23 CFSM2 CFSM3 C=>G CFSM1 C=>F B=>C F^(G==1) (A==0)=>B C=>A CFSM1 CFSM2 C=>B B C=>G C=>B A C C G F CFSM Network MOC MOC: Model of Computation Communication between CFSMs by means of events

24 System Specification Language “Esterel” – as “front-end” for functional specification – Synchronous programming language for specifying reactive real-time systems Reactive VHDL Graphical EFSM

25 Intermediate Design Representation (IDR) Most current optimization and synthesis are performed at the low abstraction level of a DAG (Direct Acyclic Graph). Function Flow Graph (FFG) is an IDR having the notion of I/O semantics. Textual interchange format of FFG is called C-Like Intermediate Format (CLIF). FFG is generated from an EFSM description and can be in a Tree Form or a DAG Form.

26 Design Functional Decomposition FFG I/O Semantics SWHW Architecture Independent Architecture Dependent Constraints EFSM Semantics AFFG RefinementRestriction (Architecture) Function Flow Graph

27 FFG/CLIF Develop Function Flow Graph (FFG) / C-Like Intermediate Format (CLIF) Able to capture EFSM Suitable for control and data flow analysis EFSM FFG Optimized FFG CDFG Data Flow/Control Optimizations

28 Function Flow Graph (FFG) – FFG is a triple G = (V, E, N 0 ) where V is a finite set of nodes E = {(x,y)}, a subset of V  V; (x,y) is an edge from x to y where x  Pred(y), the set of predecessor nodes of y. N 0  V is the start node corresponding to the EFSM initial state. An unordered set of operations is associated with each node N. Operations consist of TESTs performed on the EFSM inputs and internal variables, and ASSIGNs of computations on the input alphabet (inputs/internal variables) to the EFSM output alphabet (outputs and internal (state) variables)

29 C-Like Intermediate Format (CLIF) Import/Export Function Flow Graph (FFG) “ Un-ordered ” list of TEST and ASSIGN operations – [if (condition)] goto label – dest = op(src) op = {not, minus, … } – dest = src1 op src2 op = {+, *, /, ||, &&, |, &, … } – dest = func(arg1, arg2, … )

30 Preserving I/O Semantics input inp; output outp; int a = 0; int CONST_0 = 0; int T11 = 0; int T13 = 0; S1: goto S2; S2: a = inp; T13 = a + 1 CONST_0; T11 = a + a; outp = T11; goto S3; S3: outp = T13; goto S3;

31 FFG / CLIF Example (cond2 == 0) / output(a)(cond2 == 1) / output(b) Legend: constant, output flow, dead operation S# = State, S#L# = Label in State S# S1 x=x+y a= b+c a=x cond1 = (y==cst1) cond2 = !cond1; y = 1 Function Flow Graph S1:x = x + y; a = b + c; a = x; cond1 = (y == cst1); cond2 = !cond1; if (cond2) goto S1L0 output = a; goto S1; /* Loop */ output = b; goto S1; S1L0: CLIF Textual Representation

32 Tree-Form FFG

33 Function/Architecture Optimizations Function/Architecture Co-Design

34 Function Optimization Architecture-Independent optimization objective: – Eliminate redundant information in the FFG. – Represent the information in an optimized FFG that has a minimal number of nodes and associated operations.

35 FFG Optimization algorithm(G) begin while changes to FFG do Variable Definition and Uses FFG Build Reachability Analysis Normalization Available Elimination False Branch Pruning Copy Propagation Dead Operation Elimination end while end FFG Optimization Algorithm

36 Optimization Approach Develop optimizer for FFG (CLIF) intermediate design representation Goal: Optimize for speed, and size by reducing – ASSIGN operations – TEST operations – variables Data Flow Analysis (DFA) framework Reach goal by solving sequence of data flow problems for analysis and information gathering using an underlying Data Flow Analysis (DFA) framework Optimize by information redundancy elimination Optimize by information redundancy elimination

37 Sample DFA Problem Available Expressions Example Goal is to eliminate re-computations – Formulate Available Expressions Problem –Forward Flow (meet) Problem AE =  a+2} AE =  a+1, b+2}AE =  a+1} AE =  AE = Available Expression S1 t:= a + 1 S3 a := a * 5 t3 = a + 2 S2 t1:= a + 1 t2:= b + 2

38 Data Flow Problem Instance A particular (problem) instance of a monotone data flow analysis framework is a pair I = (G, M) where M: N  F is a function that maps each node N in V of FFG G to a function in F on the node label semilattice L of the framework D.

39 Data Flow Analysis Framework A monotone data flow analysis framework D = (L, , F) is used to manipulate the data flow information by interpreting the node labels on N in V of the FFG G as elements of an algebraic structure where – L is a bounded semilattice with meet , and – F is a monotone function space associated with L.

40 Data Flow Equations Solving Data Flow Problems AE =  a+2} AE =  a+1, b+2}AE =  a+1} AE =  AE = Available Expression S1 t:= a + 1 S3 a := a * 5 t3 = a + 2 S2 t1:= a + 1 t2:= b + 2

41 Solving Data Flow Problems Solve data flow problems using the iterative method – General: does not depend on the flow graph – Optimal for a class of data flow problems Reaches fixpoint in polynomial time (O(n 2 ))

42 FFG Optimization Algorithm Solve following problems in order to improve design: – Reaching Definitions and Uses – Normalization – Available Expression Computation – Copy Propagation, and Constant Folding – Reachability Analysis – False Branch Pruning Code Improvement techniques – Dead Operation Elimination – Computation sharing through normalization

43 Function/Architecture Co-design

44 Function Architecture Optimizations Fun./Arch. Representation: – Attributed Function Flow Graph (AFFG) is used to represent architectural constraints impressed upon the functional behavior of an EFSM task.

45 Architecture Dependent Optimizations lib Architectural Information EFSMFFGOFFG CDFG AFFG Architecture Independent Sum

46 EFSM in AFFG (State Tree) Form F0 F1 F2 F8 F7F6 F5 F4 F3 S0 S1 S2

47 Architecture Dependent Optimization Objective Optimize the AFFG task representation for speed of execution and size given a set of architectural constrains Size: area of hardware, code size of software

48 y = a + b a = c x = a + b y = a + b z = a + b a = c y = a + b x = a + b Reactivity Loop Motivating Example Eliminate the redundant needless runtime re-evaluation of the a+b operation

49 Cost-guided Relaxed Operation Motion (ROM) For performing safe and operation from heavily executed portions of a design task to less visited segments Relaxed-Operation-Motion (ROM): begin Data Flow and Control Optimization Reverse Sweep (dead operation addition, Normalization and available operation elimination, dead operation elimination) Forward Sweep (optional, minimize the lifetime) Final Optimization Pass end

50 Cost-Guided Operation Motion Cost Estimation Design Optimization User InputProfiling Inference Engine Attributed FFG Relaxed Operation Motion FFG (back-end)

51 Function Architecture Co-design in the Micro-Architecture FFG AFFG fsm fsm data f. IO control data i/o ASICs processors System Constraints System Specs Decomposition t1= 3*b t2= t1+a emit x(t2) Operator Strength Reduction Instruction Selection

52 Operator Strength Reduction t1= 3*b t2=t1 + a x=t2 expr1 = b + b; t1 = expr1 + b; t2 = t1 + a; x = t2; Reducing the multiplication operator

53 Architectural Optimization Abstract Target Platform – Macro-architectures of the HW or SW system design tasks CFSM (Co-design FSM): FSM with reactive behavior – A reactive block – A set of combinational data-low functions Software Hardware Intermediate Format (SHIFT) – SHIFT = CFSMs + Functions

54 SW PartitionHW Partition Processor BUS Interface RTOS Interface HW 1 HW 2 HW 5 HW 4 HW 3 Macro-Architectural Organization

55 Architectural Organization of a Single CFSM Task CFSM

56 Task Level Control and Data Flow Organization Reactive Controller EQ 1 RESET INC 0 MUX a b c a y a_EQ_b INC_a RESET_a s

57 CFSM Network Architecture Software Hardware Intermediate FormaT (SHIFT) for describing a network of CFSMs It is a hierarchical netlist of – Co-design finite state machine – Functions: state-less arithmetic, Boolean, or user-defined operations

58 SHIFT: CFSMs + Functions

59 Architectural Modeling Using an AUXiliary specification (AUX) AUX can describe the following information – Signal and variable type-related information – Definition of the value of constants – Creation of hierarchical netlist, instantiating and interconnecting the CFSMs described in SHIFT

60 Mapping AFFG onto SHIFT Synthesis through mapping AFFG onto SHIFT and AUX (Auxiliary Specification) Decompose each AFFG task behavior into a single reactive control part, and a set of data-path functions. Mapping AFFG onto SHIFT Algorithm (G, AUX) begin foreach state s belong to G do build_trel (s.trel, s, s.start_node, G, AUX); end foreach end

61 Architecture Dependent Optimizations Additional architecture Information leads to an increased level of macro- (or micro-) architectural optimization Examples of macro-arch. Optimization – Multiplexing computation Inputs – Function sharing Example of micro-arch. Optimization – Data Type Optimization

62 Reactive Controller a b c d e s MUX ITE out … d e T out Distributing the Reactive Controller Move some of the control into data path as an ITE assign expression ITE: if-then-else

63 + Control {1, 2} 1 2 b -c- T (b+-c-) a c Multiplexing Inputs c = a T = b + c + b T (b+a) a + b T (b+c) c

64 Micro-Architectural Optimization Available Expressions cannot eliminate T2 But if variables are registered (additional architectural information) we can share T1 and T2 b a x Out T(a+b) S1 T1 = a + b; x = T1; a = c; S2 T2 = a + b; Out = T(a+b); emit(Out)

65 Hardware/Software Co-Synthesis and Estimation Function/Architecture Co-Design

66 FFGAFFG FFG Interpreter (Simulation) Co-Synthesis Flow EFSM CDFGSHIFT Software Compilation Object Code (.o) Hardware Synthesis Netlist Or

67 POLIS Co-design Environment Programmable Board  P of choice  FPGAs  FPICs Graphical EFSM ESTEREL CFSMs Partitioning SW Synthesis SW Code + RTOS Logic Netlist HW Synthesis SW Estimation HW Estimation Physical Prototyping Performance/trade-off Evaluation Compilers

68 POLIS Co-design Environment Specification: FSM-based languages (Esterel,...) Internal representation: CFSM network Validation: – High-level co-simulation – FSM-based formal verification – Rapid prototyping Partitioning: based on co-simulation estimates Scheduling Synthesis: – S-graph (based on a CDFG) based code synthesis for software – Logic synthesis for hardware Main emphasis on unbiased verifiable specification

69 Hardware/Software Co-Synthesis Functional GALS CFSM model for hardware and software + initially unbounded delays refined after architecture mapping Automatic synthesis of: Hardware Software Interfaces RTOS

70 Resource Pool CFSM Network RTOS Synthesis HW/SW Synthesis Physical Prototyping RTOS Synthesis and Evaluation in Polis 1. Provide communication mechanisms among CFSMs implemented in SW and between the OS is running on and HW partitions. 2. Schedule the execution of the SW tasks.

71 a := a + 1a := 0 detect(c) a<b BEGIN END emit(y) T F TF Estimation on the Synthesis CDFG

72 Architecture Evaluation Problem Behavior Architecture HDL HighCost Out of Spec SystemBehavior Refine Refine SystemArchitecture SystemBehavior Refine Refine SystemArchitecture Time and Money

73 Proper Architectural Evaluation Time and Money SystemBehavior Refine SystemArchitectureSystemArchitectureSystemArchitecture In Spec Low Cost Behavior Architecture Implementation

74 Network of EFSMs Network of EFSMs SW Estimation HW Estimation HW/SW Co-Simulation Performance/trade-off Evaluation HW/SW Co-Simulation Performance/trade-off Evaluation HW/SW Partitioning Estimation-Based Co-simulation

75 Co-simulation Approach (1) Fills the “ validation gap ” between fast and slow models – Performs performance simulation based on software and hardware timing estimates Outputs behavioral VHDL code – Generated from CDFG describing EFSM reactive function – Annotated with clock cycles required on target processors Can incorporate VHDL models of pre-existing components

76 Co-simulation Approach (2) Models of mixed hardware, software, RTOS and interfaces Mimics the RTOS I/O monitoring and scheduling – Hardware CFSMs are concurrent – Only one software CFSM can be active at a time Future Work Future Work – Architectural view instead of component view

77 Research Directions in F-A Codesign Functional decomposition, cross- “block” optimization ~ hardware/software partitioning techniques Task and system level algorithm manipulations ~ performing user-guided algorithmic manipulations