Top Banner
Hardware/Software Co-Design: Principles and Practice
16

Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Feb 26, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Hardware/Software Co-Design:Principles and Practice

Page 2: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Hardware/Software Co-Design:Principles and Practice

edited by

J0rgen StaunstrupTechnical University,Lyngby, Denmark

and

Wayne WolfPrinceton University,Princeton, NJ, U.S.A.

Springer-Science+Business Media, B.Y:

Page 3: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

A C.I.P.Catalogue record for this book is avallable fromthe L1brary of Congress.

Printed on acid-tree paper

All RightsReserved

ISBN 978-1-4419-5018-5 ISBN 978-1-4757-2649-7 (eBook)DOI 10.1007/978-1-4757-2649-7

© 1997 Springer Science+Business Media Dordrecht. Third Printing 2002.

Originally published by Kluwer Academic Publishers in 1997.

Softcover reprint ofthe hardcover 1st edition 1997

No part of the materialprotected by this copyright notice may be reproduced orutilizedin anyform or by anymeans, electronic or mechanical,includlng photocopying, recording or by any information storageandretrieval system, withoutwrittenpermission from the copyright owner.

This printing ls a digital duplication of the original edition.

Page 4: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Contents

Contributing Authors

Preface

1Essential Issues in CodesignDaniel D. Gajski, Jianwen Zhu, and Rainer Domer

1.1 Models1.1.1 Models and Architectures1.1.2 Finite-State Machines1.1.3 Dataflow Graph1.1.4 Finite-State Machine with Datapath1.1.5 Hierarchical Concurrent Finite-State Machines1.1.6 Programming Languages1.1.7 Program-State Machines

1.2 Architectures1.2.1 Controller Architecture1.2.2 Datapath Architecture1.2.3 FSMD Architecture1.2.4 C1SC Architecture1.2.5 RISC Architecture1.2.6 VLlW Architecture1.2.7 Parallel Architecture

1.3 Languages1.3.1 Concurrency1.3.2 State Transitions1.3.3 Hierarchy1.3.4 Programming Constructs1.3.5 Behavioral Completion1.3.6 Exception Handling1.3.7 Timing

xi

xvii

1

123568

101113131317182021222424262729303031

v

Page 5: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

1.3.8 Communication1.3.9 Process Synchronization

1.4 A Generic Co-Design Methodology1.4.1 System Specification1.4.2 Allocation and Partitioning1.4.3 Scheduling1.4.4 Communication Synthesis1.4.5 Analysis and Validation Flow1.4.6 Backend

1.5 Conclusions

2Hardware/Software Co-Synthesis AlgorithmsWayne Wolf

2.1 Introduction2.2 Preliminaries2.3 Architectural Models2.4 Hardware/Software Partitioning

2.4.1 Architectural Models2.4.2 Performance Estimation2.4.3 Vulcan2.4.4 Cosyma2.4.5 Other Partitioning Systems

2.5 Distributed System Co-Synthesis2.5.1 An Integer Linear Programming Model2.5.2 Performance Analysis2.5.3 Heuristic Algorithms2.5.4 System Partitioning2.5.5 Reactive System Co-Synthesis2.5.6 Communication Modeling and Co-Synthesis

2.6 Conclusions

32343636384041434444

47

4751535657575861626263656670717273

3Prototyping and Emulation 75Wolfgang Rosenstiel

3.1 Introduction 753.2 Prototyping and Emulation Techniques 783.3 Prototyping and Emulation Environments 83

3.3.1 The Weaver Prototyping Environment 853.3.2 Quickturn Emulation Systems 903.3.3 Mentor SimExpress Emulation System 933.3.4 Zycad Paradigm RP and XP 943.3.5 Aptix Prototyping System 973.3.6 Arkos (Synopsys) and CoBalt (Quickturn) Emulation Systems 100

3.4 Future Developments in Emulation and Prototyping 1013.4.1 Target Architecture 103

3.5 Example 106

Page 6: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Contents vii

3.6 Results 1093.7 Conclusions 111

4Target Architectures 113Rolf Ernst

4.1 Introduction4.2 Architecture Specialization Techniques

4.2.1 Component specialization techniques4.2 .2 System Specialization4.2.3 System Specialization Techniques4.2 .4 Memory Architectures

4.3 System Communication Infrastructure4.4 Target Architectures and Application System Classes4.5 Architectures for Control-Dominated Systems

4.5.1 8051- An 8-bit Microcontroller Architecture4.5 .2 Architectures for High-Performance Control

4.6 Architectures for Data-Dominated Systems4.6.1 ADSP21060 SHARC4.6 .2 TMS320C80 MVP

4.7 Mixed Systems and Less Specialized Systems4.8 Selected co-design problems4.9 Conclusions

113116116117118120122125126127131135136141

145147147

5Compilation Techniques and Tools for Embedded Processor Architectures 149Clifford Liem and Pierre Paulin

5.1 Introduction 1495.2 Continued Integration Leads to Embedded Processors 1505.3 Modern Embedded Architectures 151

5.3.1 Architectures in Multimedia . Wireless, and Telecommunications 1515.3.2 Examples of Emerging Architectures 153

5.4 Embedded Software Development Needs 1605.4.1 Commercial Support of Embedded Processors 1605.4.2 Design Tool Requirements 161

5.5 Compilation Technologies 1625.5.1 Are Traditional Compilation Techniques Enough? 1635.5.2 Retargetability. Specification Languages , and Models 1665.5 .3 Compiler Techniques for Specialized Architectures 1705.5.4 Optimizations for embedded processors 176

5.6 Practical Considerations in a Compiler Development Environment 1795.6.1 Compiler Validation 1845.6.2 Source-Level Debugging 1875.6.3 Architecture and Algorithm Exploration 189

5.7 Conclusions 191

Page 7: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

viii HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

6

Design Specification and VerificationJ . Staunstrup

6.1 Introduction6.1.1 Design6.1.2 Co-design6.1.3 The Co-design Computational Model

6.2 Concurrency6.2.1 Components6.2.2 Nondeterminism6.2.3 Concurrency in Standard Languages6.2.4 Synchronous and Asynchronous Computations6.2.5 Classification of High-Level Languages

6.3 Coordinating Concurrent Computations6.3.1 Classification6.3.2 Shared State Versus Messages6.3.3 Open Versus Closed Operations6.3.4 Blocking Versus Nonblocking Operations6.3.5 Remote Procedure Calls6.3.6 Classification of Coordination Paradigms

6.4 Interfacing Components6.4.1 Physical Realization of State Variables

6.5 Verification6.5.1 Design Verification6.5.2 Implementation Verification6.5.3 Verification Tools6.5.4 Interface Verification

6.6 Conclusions

193

193194195196198199200203205207208210210213214216217217220222225225228229232

7Languages for System-Level Specification and Design 235

A.A . Jerraya, M. Romdhani, G.A . Valderrama, Ph. Le Marrec, F. Hessel, G.F. Marchioro, andJ.M. Daveau

7.1 Introduction 2357.2 System-Level Specification 236

7.2.1 Homogeneous Specification 2367.2.2 Heterogeneous Specification 237

7.3 Design Representation for System Level Synthesis 2387.3.1 Synthesis Intermediate Forms 2387.3.2 Basic Concepts and Computational Models 2407.3.3 language Oriented Intermediate Forms 2417.3.4 Architecture Oriented Intermediate Forms 2427.3.5 Distributed Intermediate Forms 244

7.4 System level Specification languages 2457.4.1 The Plethora of System Specification languages 2457.4.2 Comparing Specification Languages 248

7.5 Heterogeneous Specification and Multi-language Co-simulation 251

Page 8: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Contents ix

7.5.1 Basic Concepts for Multi-Language Design 2517.5.2 Co-simulation Models 2537.5.3 Automatic Generation of Co-Simulation Interfaces 2557.5.4 Application: C-VHDL Specificat ion and Co-Simulation 2577.5.5 Towards System Level Multi-language Specification and Co-Simulation

2607.6 Conclusions 261

8The Cosyma System 263

Achim Osterling, Thomas Benner, Rolf Ernst, Dirk Herrmann, Thomas Scholz, and Wei Ye

8.1 Overview 2638.2 Cosyma architecture and input languages 264

8.2.1 Cosyma design flow and user interaction 2658.3 Hardware/Software Partitioning 2678.4 Hardware and software synthesis 2688.5 Communication Estimation and Code Optimization 2698.6 The Scalable-Performance Scheduler 271

8.6.1 An Example 2728.7 System Opt imization Example 273

8.7.1 Architecture Template 2738.7.2 Example: Smooth Image Filter 2738.7.3 Real World Example 277

8.8 New approaches in Cosyma 2788.8.1 Multi-Way Partitioning for Heterogeneous Systems 2788.8 .2 SYMTA- Symbolic Timing Analysis 281

8.9 Conclusions 281

9Hardware/Software Partitioning using the LYCOS SystemJan Madsen, Jesper Grode, and Peter V. Knudsen

9.1 Introduction

9.2 Partitioning and Design Space Exploration9.3 Overview of the LYCOS System9.4 A Partitioning Session in LYCOS

9.5 Design Space Exploration with LYCOS

9.6 Summary9.7 Acknowledgments

283

283284285288

302

305

305

10Cosmos: A Transformational Co-Design Tool for Multiprocessor Architectures 307C. A. Valderrama, M. Romdhani, J .M. Daveau, G.Marchioro, A. Changuel, and A . A. Jerraya

10.1 Introduction 30710.1.1 Requirements for Co-Design of Multiprocessor Systems 30810.1.2 Previous Work 309

Page 9: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

x HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

10.1.3 Contributions 31010.2 Cosmos: A Global View 31110.3 Design Models Used By Cosmos 314

10.3.1 Target Architecture 31410.3.2 System Specification With SDl 31510.3.3 Solar: A System-level Model for Co-Design 31710.3.4 Communication Modeling and Refinement Concepts 32110.3.5 Communication Refinement 32210.3.6 Virtual Prototyping Using C-VHDl Models 32510.3.7 C-VHDl Communication Model 325

10.4 Design Steps 32710.4.1 SDl Compilation 32810.4.2 Restrict ions for Hardware Synthesis 32810.4.3 Hardware/Software Partitioning And Communicat ion Refinement 33010.4.4 Architecture Generation 33610.4.5 VHDljC Cosimulation Interface 33710.4.6 C-VHDl Model Generation 33810.4.7 Prototyping 34010.4.8 Hardware Design 34110.4.9 Software Design 343

10.5 Application 34410.5.1 Robot Arm controller co-design example. 34410.5.2 C-VHDl Co-Simulation 34810.5.3 Architecture Generation 352

10.6 Evaluation 35410.7 Conclusions 35610.8 Acknowledgements 357

References 359

Index 387

Page 10: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Contributing Authors

Thomas BennerInstitut fiir DatenverarbeitungsanlagenHans-Sommer-Strafie 66D-38106 BraunschweigGermany

A . ChanguelSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble cedexFrance

J. M. DaveauSystem-Level Synthesis GroupTIMAjINPG46, ave Felix VialletF-38031 Grenoble cedexFrance

Rainer DomerDepartment of Information and Computer ScienceUniversity of California at IrvineIrvine CA [email protected]

Rolf Ernst

xi

Page 11: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

xii HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

Institut fur DatenverarbeitungsanlagenHans-Sommer-StraBe 66D-38106 [email protected]

Dirk HermannInstitut fiir DatenverarbeitungsanlagenHans-Sommer-StraBe 66D-38106 BraunschweigGermany

F. HesselSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble cedexFrance

Daniel D. GajskiDepartment of Information and Computer ScienceUniversity of California at IrvineIrvine CA [email protected]

Jesper GrodeDepartment of Information TechnologyTechnical University of DenmarkDK-2800, LyngbyDenmark

Peter V. KnudsenDepartment of Information TechnologyTechnical University of DenmarkDK-2800, LyngbyDenmark

Ph. Le MarrecSystem-Level Synthesis GroupTIMA/INPG46, ave Felix Viallet

Page 12: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

F-38031 Grenoble cedexFrance

Ahmed Amine JerrayaSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble [email protected]

Clifford LiemLaboratorie TIMAInstitut National Polytechnique de Grenoble46, ave Felix VialletF-38031 Grenoble [email protected]

Jan MadsenDepartment of Information TechnologyTechnical University of DenmarkDK-2800, [email protected]

G. F. MarchioroSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble cedexFrance

Achim OsterlingInstitut fiir DatenverarbeitungsanlagenHans-Sommer-StraBe 66D-38106 BraunschweigGermany

Pierre PaulinSGS-Thomson Microelectronics

CONTRIBUTING AUTHORS xiii

Page 13: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

xiv HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

850, rue Jan MonnetBP 16,38921 Crolles [email protected]

M. RomdhaniSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble cedexFrance

Wolfgang RosenstielUniversitat TiibingenTechnische InformatikSand 1372076 TiibingenGermanyrosenstiel@informatik .uni-tuebingen.de

Thomas ScholzInstitut fiir DatenverarbeitungsanlagenHans-Sommer-StraJ3e 66D-38106 BraunschweigGermany

J¢rgen StaunstrupDepartment of Information TechnologyTechnical University of DenmarkDK-2800, [email protected]

C. A. ValderramaSystem-Level Synthesis GroupTIMA/INPG46, ave Felix VialletF-38031 Grenoble cedexFrance

Wayne Wolf

Page 14: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

CONTRIBUTING AUTHORS xv

Department of Electrical EngineeringPrinceton UniversityPrinceton NJ 08544 [email protected]

Wei YeInstitut fiir DatenverarbeitungsanlagenHans-Sommer-StraBe 66D-38106 BraunschweigGermany

Jianwen ZhuDepartment of Information and Computer ScienceUniversity of California at IrvineIrvine CA [email protected]

Page 15: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

Preface

This book presents a number of issues of fundamental importance for the designof integrated hardware software products such as embedded, communication,and multimedia systems. Co-design is still a new field but one which hassubstantially matured over the past few years. The book is inteded to provide:

• material for an advanced course,

• an overview of fundamental concepts in hardware/software co-design, and

• the necessary background for practioners who wants to get, an overviewof the area.

As an interdisciplinary field, co-design touches on a number of established dis­ciplines . We assume at various points in the book that the reader has somefamiliarity with a variety of topics ranging from concurrent programming lan­guages through field-programmable gate arrays. Hopefully, our demands arenot too strenuous and the bibliography will supply readers with necessary back­ground.

This book is the result of a series of Ph.D. courses on hardware/software co­design held over the past two-and-a-half years . The first of these courses wereheld at the Technical University of Denmark in August, 1995 and was sponsoredin part by the Danish Technical Research Council and the EUROPRACTICEprogram. The second was taught at the Institut National Poly technique deGrenoble in October of 1996 and was sponsored in part by the European Com­mission under project EC-US-045. The third course will be held in Tokyo justafter the publication of this book, in December, 1997 and is sponsored by the!EICE and Institute of System and Information Technologies, Kyushu. We

xvii

Page 16: Hardware/Software Co-Design: Principles and Practice978-1-4757-2649...vi HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE 1.3.8 Communication 1.3.9 Process Synchronization 1.4

xviii HARDWARE/SOFTWARE CO-DESIGN: PRINCIPLES AND PRACTICE

would like to thank the sponsors of these courses for their generous support.We would also like to thank the students for their patience and insight.

The Authors and Editors