DESIGN METHODOLOGY MANAGEMENT FOR SYSTEM-LEVEL DESIGN

Similar documents
Complexity Management in System-level Design

SYSTEM-LEVEL CODESIGN OF MIXED HARDWARE-SOFTWARE SYSTEMS

The Ptolemy Kernel Supporting Heterogeneous Design

Documentation Programmer-Oriented

Ptolemy Seamlessly Supports Heterogeneous Design 5 of 5

Interface Design of VHDL Simulation for Hardware-Software Cosimulation

Fusing Dataflow with Finite State Machines

World Wide Web Server.

Hardware/Software Co-design

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden

Hardware-Software Codesign. 1. Introduction

Chapter 4. Introduction to Domains, Targets, and Foreign Tool Interfaces

Hardware/Software Partitioning using Integer Programming. Ralf Niemann, Peter Marwedel. University of Dortmund. D Dortmund, Germany

A Framework for Automatic Generation of Configuration Files for a Custom Hardware/Software RTOS

Cosimulation II. How to cosimulate?

Easy Multicore Programming using MAPS

Co-synthesis and Accelerator based Embedded System Design

Cosimulation II. Cosimulation Approaches

Optimal Architectures for Massively Parallel Implementation of Hard. Real-time Beamformers

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

An Overview of the Ptolemy Project. Organizational

Hardware/Software Partitioning and Scheduling of Embedded Systems

Adaptive Stream Mining: A Novel Dynamic Computing Paradigm for Knowledge Extraction

A Novel Deadlock Avoidance Algorithm and Its Hardware Implementation

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

MODELING OF BLOCK-BASED DSP SYSTEMS

Modeling and SW Synthesis for

Adaptive Computing Systems (ACS) Domain for Implementing DSP Algorithms in Reconfigurable Hardware. Objective/Approach/Process

The Ptolemy Project. Modeling and Design of Reactive Systems. Presenter: Praveen Murthy, PhD Postdoc and Presenter

Extending TASTE through integration with Space Studio

The Design of Mixed Hardware/Software Systems

OUTLINE RTL DESIGN WITH ARX

Code Generation for QEMU-SystemC Cosimulation from SysML

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

Hardware Software Codesign of Embedded Systems

Hardware/Software Codesign

Co-Design of Many-Accelerator Heterogeneous Systems Exploiting Virtual Platforms. SAMOS XIV July 14-17,

THE EUROPEAN DESIGN AND TEST CONFERENCE 1995 Paris,France 6-9 March 1995

Automatic Communication Refinement for System Level Design

Part 2: Principles for a System-Level Design Methodology

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

System Level Design with IBM PowerPC Models

Tutorial 2.(b) : Synthesizing your design using the Synopsys Design Compiler ( For DFT Flow)

Hardware Software Partitioning of Multifunction Systems

Lecture 11 Logic Synthesis, Part 2

Exploration of Hardware/Software Design Space through a Codesign of Robot Arm Controller

Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems

SPECC: SPECIFICATION LANGUAGE AND METHODOLOGY

Development of Integrated Hard- and Software Systems: Tasks and Processes

Hardware Description Languages & System Description Languages Properties

Hierarchical Design Using Synopsys and Xilinx FPGAs

Hardware-Software Codesign. 1. Introduction

Using UML as Front-end for Heterogeneous Software Code Generation Strategies

Multi-Level Computing Architectures (MLCA)

High Quality, Low Cost Test

Matisse: A system-on-chip design methodology emphasizing dynamic memory management

Hardware/Software Deadlock Avoidance for Multiprocessor Multiresource System-on-a-Chip

MOORE S law predicts the exponential growth over time

Hardware/Software Co-synthesis of DSP Systems

Software Synthesis Trade-offs in Dataflow Representations of DSP Applications

Advance Manual ECO by Gates On the Fly

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

A Lightweight Dataflow Approach for Design and Implementation of SDR Systems

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

SAN FRANCISCO, CA, USA. Ediz Cetin & Oliver Diessel University of New South Wales

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.

A Unified Model for Co-simulation and Co-synthesis of Mixed Hardware/Software Systems

EEL 5722C Field-Programmable Gate Array Design

Programming in the Brave New World of Systems-on-a-chip

Dynamic Memory Management for Real-Time Multiprocessor System-on-a-Chip

Toolchain for Network Synthesis. Alex Malfatti, Davide Quaglia

However, no results are published that indicate the applicability for cycle-accurate simulation purposes. The language RADL [12] is derived from earli

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

Component-based Engineering for Embedded Systems USA EU workshop

IBM DB2 Analytics Accelerator Trends and Directions

An Integrated Cosimulation Environment for Heterogeneous Systems Prototyping

Resource-efficient Acceleration of 2-Dimensional Fast Fourier Transform Computations on FPGAs

Development of Integrated Hard- and Software Systems: Tasks and Processes

Gamma Corrector IP Core User Guide

Lecture 7: Introduction to Co-synthesis Algorithms

Process-Based Software Components Final Mobies Presentation

Computer-Aided Recoding for Multi-Core Systems

Meta-Data-Enabled Reuse of Dataflow Intellectual Property for FPGAs

DTNS: a Discrete Time Network Simulator for C/C++ Language Based Digital Hardware Simulations

The Future of the Ptolemy Project

1. INTRODUCTION AND MOTIVATION

3.4 Data-Centric workflow

An introduction to CoCentric

HETEROGENEOUS MULTIPROCESSOR MAPPING FOR REAL-TIME STREAMING SYSTEMS

Creating Custom Stars Derived from TclScript. Your parameters are accessible in your Tcl script:

Hardware, Software and Mechanical Cosimulation for Automotive Applications

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

Hardware/Software Partitioning of Digital Systems

MULTI-PROCESSOR SYSTEM-LEVEL SYNTHESIS FOR MULTIPLE APPLICATIONS ON PLATFORM FPGA

Resource and Service Trading in a Heterogeneous Large Distributed

Compiler User Guide. Intel Quartus Prime Pro Edition. Updated for Intel Quartus Prime Design Suite: Subscribe Send Feedback

AutoFLEX: A Framework for Image Processing Applications on Multiple-FPGA Systems

Hierarchical Reconfiguration of Dataflow Models

Performance Verification for ESL Design Methodology from AADL Models

Transcription:

Abstract DESIGN METHODOOGY MANAGEMENT FOR SYSTEM-EVE DESIGN Asawaree Kalavade Edward A. ee Ptolemy Miniconference March 10, 1995. System-level design is characterized by a behavioral specification and heterogeneous hardware/software implementations. Exploring the design space is essential for good design. Specifying and managing complex design flows, tracking dependencies and tool invocations, and maintaining consistency of design data and flows are key issues that enable efficient design space exploration. We present a framework that manages these complex issues in the design process, transparent to the user. The framework, called DesignMaker, is implemented within the Ptolemy environment. The features of DesignMaker are illustrated with reference to an example design flow for multiprocessor synthesis. The end-objective is to embed the DesignMaker under a system-level codesign assistant. A. Kalavade, J. Pino, E. A. ee, Managing Complexity in Heterogeneous System Specification, Simulation, and, to appear: Proc. of Intl. Conference on Acoustics, Speech, and Signal Processing (ICASSP), Detroit, MI, May 1995. 2 Outline Motivation for systematic management of the design Behavioral specification System-level Design methodology Design Methodology Management (DMM) infrastructure Implementation Examples Heterogeneous implementations 3 4

A Typical Design Flow for Hardware/Software Codesign Design Assistant: version 1 Design Specification Design Constraints Algorithm Partitioning Area/Time Estimation Design Assistant Bitwidth Selection Hardware HW/SW Partitioning Interface GCP Software Interface Selection Algorithm Retargeting and Scheduling Silage Mentor Netlist Generation VHD Synopsys System Simulation Synthesized System [ayout + software] Software Synthesized System Din R decoder Addr DSP W decoder Dout I/O I/O HW mux :atch I/O Hardware 5 6 imitations of the Design Assistant-v1 Sequential Design Flow: cannot re-run isolated design steps Inflexible Design Flow: hardwired design methodology and tools A possible solution: Menu Driven Approach Solves the sequential flow problem; but hardwired No automatic dependency analysis and tool invocation Simulate Partition SynthesizeHW SynthesizeSW SynthesizeIFC Desired: Simulate SynthHW Analyze Menu-Driven System Simulate Partition SynthIFC Simulate Analyze SynthSW GCP... Need a mechanism to manage the design Methodology, Flow, and Data. Design Space Exploration Managing the complexity of the design process is non-trivial. Requirements: Modular and configurable flow specification mechanisms Mechanisms to systematically track tool dependencies and automatically determine the sequence of tool invocations Managing consistency of design data, tools, and flows 7 8

Does a feasible partition exist? Flow Specification Tool Dependencies and Invocations Change hardware synthesis mechanism Design Specification Design Constraints Design Specification Design Constraints Hardware Area/Time Estimation HW/SW Partitioning Interface GCP Software Hardware Area/Time Estimation HW/SW Partitioning Interface GCP Software Netlist Generation Silage Mentor Netlist Generation System Simulation VHD Synopsys System Simulation Synthesized System Synthesized System Need a configurable methodology Flow constructs such as conditionals and iterations required Only affected tools should be re-run Automatically resolve dependencies, invoke flow execution 9 10 Outline Flow, Tool, and Data Model FOW MODE filename Motivation for systematic management of the design methodology Tool 1 Tool 2 Tool K Tool N Design Methodology Management (DMM) infrastructure Implementation An example TOO MODE arguments Port 1 optional port Port 2 TOO J Port M required ports: 1,2,M Param_Changed_Flag DATA MODE PORT I File_Name Time_Stamp Optional_Flag 11 12

Distributed datastructure Representation Dependencies Used for Tool Management newdata T TS FN in new new arg TS last FN last T out Tool 1 Param_Changed Port 1 Port M File_Name Time_Stamp Tool N Temporal max(t in ) > min(t out ) Dependency Data FileName TimeStamp Control arg_changed Optional_Flag FN new!= FN last TS new!= TS last parameters 13 14 Tool is enabled: Tool is invoked: Tool is executed: Flow Management when all required input ports have data when at least one of its dependencies is alive generates data on all required outputs, conditionally on all optional ports. Outline Motivation for systematic management of the design methodology Design Methodology Management (DMM) infrastructure Flow invocation mechanisms data driven demand driven Implementation An example 15 16

DMM Domain in Ptolemy Design flow: specified as a graphical netlist Tools: encapsulated within basic blocks (Star) have required and optional ports, parameters Flow definition: supports conditionals, iterations, hierarchy (Galaxies) Tool encapsulation: involves writing scripts to call programs Ptolemy functions stand-alone programs (with their own GUIs) programs on remote filesystems DMM attributes: stored in Oct database Flow Manager: Target (called DesignMaker) supports data-driven and demand-driven flow execution resolves tool dependencies, automatically invokes tools Scheduler: Combination of dataflow and event-driven semantics detects deadlocks DMMCodeGenerator.pl defstar { name {CodeGenerator} domain {DMM} input { name {graph} type {message} } input { name {numprocs} type {message} } output{ name {codefilenames} type {message} } go { graphname = graph.getfilename(); name = getname(graphname); domain = getdomain(graphname); handle = gethandle(graphname); procfilenm = numprocs.getfilename(); fp = fopen(procfilename, r ); fscanf(fp, %d,&numberprocs); // run tcl command for code gen. Tcl_VarEval(ptkInterp, ptkgencode, name,domain,handle,numberprocs); // generate output file names codefilenames.putfilename(fout); 17 18 Examples An Example Design Flow: Multiprocessor Multiprocessor synthesis Application (graph) Throughput IPC architecture Design Flow This is code running on processor # 2 in the multiprocessor system, This is code running on processor # 1 in the multiprocessor system, Hardware/software codesign The goal is to synthesize the system with the minimum number of processors for a specified throughput requirement. The design flow and the control panel are shown. 19 20

An Example Design Flow: Components for Codesign Conclusions (1) Partitioning (2) Design space exploration is a key to system-level design Critical Issues: Specifying and managing complex design flows Tracking tool dependencies Automated flow invocations Maintaining consistency of design data and flows DMM: an infrastructure for design methodology management Current work: Implement the codesign system in this framework When the partitioning tool is invoked, it brings up the graph to be partitioned (1), and a control panel (2) that allows for manual partitioning. The area/time estimator returns the execution time and implementation area values by invoking specific tools on remote filesystems. Automated partitioning and synthesis tools have also been developed. 21 22