Principles of Asynchronous Circuit Design A Systems Perspective
Principles of Asynchronous Circuit Design - A Systems Perspective addresses the need for an introductory text on asynchronous circuit design. Part I is an 8-chapter tutorial which addresses the most important issues for the beginner, including how to thin
- PDF / 30,301,481 Bytes
- 348 Pages / 439.37 x 666.142 pts Page_size
- 39 Downloads / 185 Views
Principles of Asynchronous Circuit Design A Systems Perspective Edited by
Jens Spars~ Technical University of Denmark
and
Steve Furber The University of Manchester; u.K.
Series Editors
Rene van Leuken Alexander de Graaf Reinder Nouta TU Delft/DIMES, Delft, The Netherlands
SPRINGER-SCIENCE+BUSINESS MEDIA. B.V.
A C.I.P. Catalogue record for this book is available from the Library of Congress.
ISBN 978-1-4419-4936-3 ISBN 978-1-4757-3385-3 (eBook) DOI 10.1007/978-1-4757-3385-3
Printed an acid-free paper
AH Rights Reserved © 2001 Springer Science+Business Media Dordrecht
Originally published by Kluwer Academic Publishers in 2001 Softcover reprint ofthe hardcover Ist edition 2001 No part of the material protected by this copyright notice may be reproduced or lItilized in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage and retrieval system, without written permis sion from the copyright owner.
Contents
Preface Acknowledgments Foreword
xi Xlll
xv
Part I Asynchronous circuit design - A tutorial Author: Jens Spars0 1 Introduction 1.1 Why consider asynchronous circuits? 1.2 Aims and background 1.3 Clocking versus handshaking 1.4 Outline of Part I 2 Fundamentals 2.1 Handshake protocols 2.1.1 Bundled-data protocols 2.1.2 The 4-phase dual-rail protocol 2.1.3 The 2-phase dual-rail protocol 2.1.4 Other protocols 2.2 The Muller C-element and the indication principle 2.3 The Muller pipeline 2.4 Circuit implementation styles 2.4.1 4-phase bundled-data 2.4.2 2-phase bundled data (Micropipelines) 2.4.3 4-phase dual-rail 2.5 Theory 2.5.1 The basics of speed-independence 2.5.2 Classification of asynchronous circuits 2.5.3 Isochronicforks 2.5.4 Relation to circuits 2.6 Test 2.7 Summary
3 Static data-flow structures 3.1 Introduction 3.2 Pipelines andrings
3 3 4
5 8 9 9 9 11 13 13
14 16 17 18 19 20 23 23 25 26 26 27 28
29 29
30
v
vi
PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
3.3 3.4 3.5 3.6 3.7 3.8
3.9
Building blocks A simple example Simple applications of rings 3.5.1 Sequential circuits 3.5.2 Iterative computations FOR, IF, and WHILE constructs A more complex example: GCD Pointers to additional examples 3.8.1 A low-power filter bank 3.8.2 An asynchronous microprocessor 3.8.3 A fine-grain pipelined vector multiplier Summary
4 Performance 4.1 Introduction A qualitative view of performance 4.2 4.2.1 Example 1: A FIFO used as a shift register 4.2.2 Example 2: A shift register with parallel load 4.3 Quantifying performance 4.3.1 Latency, throughput and wavelength 4.3.2 Cycle time of a ring 4.3.3 Example 3: Performance of a 3-stagering 4.3.4 Final remarks 4.4 Dependency graph analysis 4.4.1 Example 4: Dependency graph for a pipeline 4.4.2 Example 5: Dependency graph for a 3-stage ring 4.5 Summary
5 Handshake circuit implementations 5.1 The latch Fork, join, and merge 5.2 Function blocks - The basics 5.3 5.3.1 Introduction 5.3.2 Transparency to handshaking 5.3.3 Review of ripple-carry addition Bundled-data function blocks 5.4 5.4.1 Using matched