Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.

Slides:



Advertisements
Similar presentations
TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Advertisements

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
High Level Languages: A Comparison By Joel Best. 2 Sources The Challenges of Synthesizing Hardware from C-Like Languages  by Stephen A. Edwards High-Level.
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Give qualifications of instructors: DAP
Lecture Objectives: 1)Explain the limitations of flash memory. 2)Define wear leveling. 3)Define the term IO Transaction 4)Define the terms synchronous.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Hardware/Software Codesign.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 08: RC Principles: Software (1/4) Prof. Sherief Reda.
Basic Input/Output Operations
VHDL Coding Exercise 4: FIR Filter. Where to start? AlgorithmArchitecture RTL- Block diagram VHDL-Code Designspace Exploration Feedback Optimization.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Mahapatra-Texas A&M-Fall'001 Partitioning - I Introduction to Partitioning.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
9/20/6Lecture 3 - Instruction Set - Al Hardware interface (part 2)
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
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.
GanesanP91 Synthesis for Partially Reconfigurable Computing Systems Satish Ganesan, Abhijit Ghosh, Ranga Vemuri Digital Design Environments Laboratory.
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
Dynamic Hardware Software Partitioning A First Approach Komal Kasat Nalini Kumar Gaurav Chitroda.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
INPUT-OUTPUT ORGANIZATION
CS-334: Computer Architecture
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology High-level Specification and Efficient Implementation.
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.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
BASIC INPUT AND OUTPUT INTERFACING.  8085A communicate with outside world using the I/O devices.  Since memory and I/O devices share the system bus,
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
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.
HYPER: An Interactive Synthesis Environment for Real Time Applications Introduction to High Level Synthesis EE690 Presentation Sanjeev Gunawardena March.
Parallel architecture Technique. Pipelining Processor Pipelining is a technique of decomposing a sequential process into sub-processes, with each sub-process.
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
EEE440 Computer Architecture
1 Control Unit Operation and Microprogramming Chap 16 & 17 of CO&A Dr. Farag.
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
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.
By Fernan Naderzad.  Today we’ll go over: Von Neumann Architecture, Hardware and Software Approaches, Computer Functions, Interrupts, and Buses.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
Teaching Digital Logic courses with Altera Technology
Group 1 chapter 3 Alex Francisco Mario Palomino Mohammed Ur-Rehman Maria Lopez.
بسم الله الرحمن الرحيم MEMORY AND I/O.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
Chapter 3 Top Level View of Computer Function and Interconnection
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
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 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498

Mahapatra-Texas A&M-Fall'002 Introduction What is cosynthesis? –It is a problem to synthesize the hardware, software and interface for final implementation. Based on a target architecture, we consider the development of architecture and present here. This step comes after partitioning the nodes and selecting the application beans and obtaining a suitable schedule.

Mahapatra-Texas A&M-Fall'003 Architecture Model Processor Core Controller Hardware Module Target Architecture Hardware Module Hardware Module Data Control System Inputs System outputs Read/Write

Mahapatra-Texas A&M-Fall'004 Architecture Model Single programmable processor and multiple hardware modules connected through a single system bus. Hardware Module: – datapath and controller, input and output interface. I/O interfaces between hardware modules and processor. – Each node mapped to hardware is synthesized as hardware module (no hardware reuse between module). Processor: –software component of the architecture, the program that runs here. Includes device drivers that communicate between hw & sw –Processor is non-pipelined architecture

Mahapatra-Texas A&M-Fall'005 Architecture Model Communication between hardware and software: –Memory mapped, asynchronous and blocked. –Different type of communication are possible between the components. Component Configurations: Globally asynchronous and locally synchronous Reasoning: schedule generated by partitioning is based on execution- time estimates and is not guaranteed to be cycle-accurate. One can not determine when processor or hardware module would clock! Controller: responsible to activate the hardware modules based on the schedule due to partition.

Mahapatra-Texas A&M-Fall'006 Hardware Module Architecture Kernel Datapath and Controller Latch Logic Hardware Module Output interface Input interface IE OE in o in 1 in k IE 0 IE 1 IE k System Bus ready completion out 0 out 1 out k OE 0 OE 1 OE k

Mahapatra-Texas A&M-Fall'007 Hardware Module Architecture Handshaking Signals: ready, completion Latch: controlled by input enable (IE) and output enable (OE) Working: kernel begins computation at ready signal indicating the availability of data at its input. Then raises completion flag after computation. The ready signal is a function of input enable signals and the completion signal (generated by logic).

Mahapatra-Texas A&M-Fall'008 Hardware-software interface Each input and output of hardware module has unique address in the shared address space of the processor (memory mapped). How to communicate between processor and HW module now? –Can we use decoders to select appropriate input in the module? –It is possible but for large number of modules, decoder area and delay becomes significant. The ordered transaction principle is applied. –Based on the schedule, the order of data transfer is examined across hardware-software interface. Each data transfer is assigned a unique memory address. This way, the sequence of addresses to which read/write takes place is known apriori. This address corresponds to unique latch input/output address. A global controller uses the order information to activate the input and output latches.

Mahapatra-Texas A&M-Fall'009 Hardware software interface Order of data transfers IEOE completion Read/Write Processor Stall Global controller 1. Processor issues Write request: Global controller issues appropriate IE signal for the latch. The read cycles can not overlap. When all input signals available, ready signal is issued. 2. Read action: controller checks if corresponding module has completion signals set. After completion is set, OE signals for the output latch is set.

Mahapatra-Texas A&M-Fall'0010 Software -Software interface Data transfer between two software nodes are assigned memory addresses in the internal data memory of the processor. Communication between the two takes place by writing the results to corresponding locations in the internal data memory. There is no need to check semaphore as the software executes sequentially. Hardware-Hardware interface: –direct connection, and use of ready and completion signals.

Mahapatra-Texas A&M-Fall'0011 Cosynthesis Approaches Need to synthesize – datapath & controller for each hardware module, –program running on processor including codes for memory access and communication with HW modules. –Global controller, –I/O interface of hardware modules and –netlist connecting the controller to various modules and processor.

Mahapatra-Texas A&M-Fall'0012 Cosynthesis approach Refer the flowgraph in the handout. The input to the cosynthesis stage is annonated DAG after partitioning. It includes the possible mapping selections, implementation bins and a schedule. The first step in cosynthesis is Retarget the DAG. It is a technology dependent presentation tool. – Each incoming node in DAG is converted to appropriate state of presentation. Example: A software node takes either C code or assembly code and hardware node as VHDL/Verilog. –If different implementations are available for a node the target tool selects the necessary bin here. – In case of hardware-mapped nodes, transformation and resource-level implementation is possible.

Mahapatra-Texas A&M-Fall'0013 Retargeting approaches Library Approach: Assumes the existence of library for each technology and implementations (Ex: if FIR filter is the node, one should maintain FIR filter in C, verilog, assembly codes. Also different algorithms of FIR filter with multiple representations) Advantages: –computationally efficient and retains modularity. If a node or its implementation changes, one can select the new library element and re- synthesize. –Each module can be individually optimized to improve the quality of implementation. Disadvantage: –It depends on richness of the library. If an element is not there, one has to develop it.

Mahapatra-Texas A&M-Fall'0014 Retargeting Approach Compilation Approach: Compile the technology-independent representation of every node into its desired representation. The node is described in high level description such as C or Java. Then, this highlevel description is translated to intermediate representation (like control-dataflow graph). The intermediate representation is compiled to either Verilog or assembly depending on desired synthesis technology. Advantage: Simplistic and traditional approach. Can use available compilers. Not to worry about the special library components. Disadvantages: optimization depends on compiler. Recompile complete design that takes more time.

Mahapatra-Texas A&M-Fall'0015 HW, SW and Interface Graph Refer the diagram in the handout. These graphs are fed to the hardware, software and interface synthesis tools. Hardware Graph: –A separate hardware graph is generated for each node mapped to hardware. –Hardware graph contains several sub-nodes. These are annotated with the transformation and sample period corresponding to implementation bins. –The hardware synthesis tool generates a datapath and controller for each hardware graph.

Mahapatra-Texas A&M-Fall'0016 Software graph All nodes mapped to software are combined into a single software graph. Send and receive nodes are added wherever a hardware-software communication occurs. Note: partitioning algorithm generated a global schedule to execution order of all nodes. An ordering between the nodes of the software graph is derived from the above schedule. The software synthesis tool generates a single program from the software graph. The program contains codes for all nodes. The code is concatenated in the predetermined ordering.

Mahapatra-Texas A&M-Fall'0017 Interface graph Interface Graph: –The order generator determines the order of transfers between nodes mapped to software and hardware –The interface synthesis tool generates the global controller using this order of transfers. –It also interface glue logic (latches, logic to generate ready signal) for the hardware modules. A netlist that describes the connectivity between hardware modules, the processor, and the global controller is next generated. A standard placement and routing tool can be used to synthesize the layout for the complete system.

Mahapatra-Texas A&M-Fall'0018 Hardware Synthesis Approach: Use VHDL or Verilog (may be Silage for Ptolemy) to describe the hardware graph to synthesize its datapath and controller. Feed this description to hardware synthesis tool for implementation. Silage Code generator in Ptolemy or VHDL High level hardware synthesis Hardware graph VHDL code or Silage code Datapath and controller

Mahapatra-Texas A&M-Fall'0019 Software Synthesis All the software nodes are to be together and augmented by send- receive. Each software node is called a codeblock which is technology dependent and represents the node functionality. Software synthesis process needs to stitch together these codeblocks and form a single program to be executed by the processor. Use flattened ordering that consider the schedule from partitioning and includes send-receive nodes.

Mahapatra-Texas A&M-Fall'0020 Software synthesis Software graph ordering - schedule each hierarchical node - expand each hierarchical node according to schedule - update ordering to get flattened ordering Generate code for flattened software graph - add initialization code - add communication code - stitch codeblocks together according to ordering program Flattened software graph and its ordering

Mahapatra-Texas A&M-Fall'0021 Interface synthesis Involves synthesis of global controller and other glue logic FSM can be used to describe the global controller –Use standard logic synthesis tool. A template-based approach may be used for glue logic.

Mahapatra-Texas A&M-Fall'0022 Other synthesis approaches VULCAN system: hardwareC and C COSYMA system: C like description, hardwareC SIERRA system: for multi board application.