Bit-Level Partial Evaluation of Synchronous Circuits

Total Page:16

File Type:pdf, Size:1020Kb

Bit-Level Partial Evaluation of Synchronous Circuits Bit-Level Partial Evaluation of Synchronous Circuits Sarah Thompson Alan Mycroft Computer Laboratory Computer Laboratory University of Cambridge University of Cambridge [email protected] [email protected] ABSTRACT Table 1: Rewrite Rules for Combinational PE Partial evaluation has been known for some time to be very effective when applied to software; in this paper we demonstrate that it can also be usefully applied to hard- a ∧ a → a a ∨ a → a ware. We present a bit-level algorithm that supports the a ∧ false → false a ∧ true → a partial evaluation of synchronous digital circuits. Full PE a ∨ false → a a ∨ true → true of combinational logic is noted to be equivalent to Boolean minimisation. A loop unrolling technique, supporting both ¬false → true ¬true → false partial and full unrolling, is described. Experimental results are given, showing that partial evaluation of a simple micro- processor against a ROM image is equivalent to compiling Section 3 this is extended to encompass loop unrolling of the ROM program directly into low level hardware. synchronous circuits. Section 4 introduces HarPE, the hard- ware description language and partial evaluator used to sup- 1. INTRODUCTION port the experimental work leading to the results described in Section 4. Partial evaluation [12, 14, 13] is a long-established tech- nique that, when applied to software, is known to be very powerful; apart from its usefulness in automatically creating 2. PE OF COMBINATIONIAL CIRCUITS (usually faster) specialised versions of generic programs, its The simplest form of hardware partial evaluation is al- ability to transform interpreters into compilers is particu- ready well known to hardware engineers, though under a larly noteworthy. different name: Boolean optimisation. For example, the In this paper, we present a partial evaluation framework combinational circuit represented by the expression for synchronous digital circuits that, whilst supporting spe- a ∧ (b ∨ c) cialisation, also supports the first Futamura projection [10]: where a, b and c are inputs, may be specialised for the case PE[[interpreter, program]] = compiler[[program]]. where c is known to be true as follows: In hardware terms, this is equivalent to taking the circuit a ∧ (b ∨ true) = a ∧ true = a for a processor and a program ROM image, then compiling this into hardware that represents the program only – as Boolean optimisation is well-studied, with many approaches with software partial evaluation, the processor itself is op- documented in the literature. Some techniques are sub- timised away, leaving only the functionality of the program optimal but can be applied to any circuit, whereas others expressed directly in hardware. (e.g. OBDDs, flattening to CNF or DNF) can yield optimal 1 Note that in this paper, we consider only the partial evalu- results but suffer exponential size blowup when confronted ation of purely synchronous circuits, i.e. circuits consisting with some circuits, particularly multipliers. Any of these only of acyclic networks of gates, with feedback occurring techniques are potentially capable of PE of combinational only via D-type latches whose clock inputs are all driven by circuits, though for clarity and generality, we have opted for a single global clock net. Generalisation to the asynchronous a simple approach based upon term rewriting. Table 1 shows case is discussed briefly in Section 7.1. a simple set of rewrite rules that are sufficient to implement In Section 2 we discuss PE of combinational circuits; in (sub-optimal) combinational PE in time and space that is linear with respect to the original circuit. The software analogue of a combinational circuit, from the Permission to make digital or hard copies of all or part of this work for point of view of PE, would be a program consisting only of personal or classroom use is granted without fee provided that copies are assignment statements, if-then and if-then-else constructs, not made or distributed for profit or commercial advantage and that copies but strictly no loops. bear this notice and the full citation on the first page. To copy otherwise, to 1 republish, to post on servers or to redistribute to lists, requires prior specific In hardware terms, ‘optimal’ is not easily defined. In some permission and/or a fee. cases, circuits are optimised for minimum gate count, though ACM SIGPLAN Workshop on Partial Evaluation and Program Manipula- more commonly they are optimised for speed or power con- tion, Charleston, South Carolina, January 9-10 2006 sumption – only rarely will a circuit be optimal with respect Copyright 2005 ACM X-XXXXX-XX-X/XX/XX ...$5.00. to more than one of these considerations. Figure 1: General Form of Synchronous Circuits Figure 2: Synchronous Circuit After One Unrolling input input1 CLK g output1 State f g output CLK State f f g output2 3. PE OF SYNCHRONOUS CIRCUITS input2 A slight variation2 on the general form of any synchronous circuit, generally referred to as a Mealy machine [17], is shown in Fig. 1. In software terms, such circuits resemble a corresponding to the circuit shown in Fig. 2. After unrolling, program of the form since statek+1 is not externally observable, it need not be while true explicitly computed. In one clock cycle, this new circuit statek+1 := f(statek, input) performs the same computations that the original circuit output := g(statek+1, input) performed in two cycles, though possibly with a slower max- endwhile imum clock rate due to longer worst-case paths. In the general case, since the input i and output j may Each iteration of the loop represents exactly one clock cy- change at every cycle, they may need to be separately ac- cle. The internal state of the circuit, represented by statek, cessible in the unrolled circuit. Often, though, input may may change only once per clock cycle and is determined be known to remain unchanged for many iterations, or for only by the result of the combinational Boolean function all time. It is common, also, for outputs other than those f : (B×···×B)×(B×···×B) → (B×···×B); the subscript resulting from the final state to be unimportant; in com- k has no effect on execution, and is purely a naming con- bination, this allows loop unrolling to generate much more vention that is convenient when describing unrolling. The efficient hardware. input is assumed to change synchronously with the clock, In the rest of this paper, we make the assumption that and the output is determined by the combinational Boolean input may change only synchronously with the the clock of function g : (B ×···× B) × (B ×···× B) → (B ×···× B). the generated hardware, and that output reflects the final Note that the internal state of the circuit, represented by state of the unrolled loop body at the end of each clock state, is observable only through g. cycle. Partial evaluation of this kind of circuit typically requires specialisation of f and g, but may also involve either partly 3.1 Multiple Unrollings or completely unrolling the while loop. State minimisation Loops may be unrolled an arbitrary number of times by 3 is not performed . A single unrolling yields the program the following method: while true while true statek+1 := f(statek, input 1) statek+1 := f(statek, input) output 1 := g(statek+1, input 1) statek+2 := f(statek+1, input) +2 f +1, statek := (statek input 2) . output 2 := g(statek+2, input 2) state + := f(state + −1, input) endwhile k n k n output := g(statek+n, input) endwhile which can be equivalently expressed as while true or, equivalently: statek+2 := f(f(statek, input 1), input 2) while true output 1 := g(f(statek, input 1), input 1) statek+n := f(f(. f(statek, input),... input) output 2 := g(f(f(statek, input 1), input 2), input 2) endwhile output := g(statek+n, input) endwhile 2Conventionally, f would be drawn on the left of the state flip-flops. This (equivalent) form allows unrolling to be de- Since the repetition of input gives potential for common scribed more conveniently. subexpression elimination, and g needs to be evaluated ex- 3 In synchronous circuits, state minimisation is often unde- actly once regardless of the number of unrollings (see Fig. 3), sirable – though it reduces flip flop count, the extra state de- the gate count of any resulting circuit is typically (and often coding logic required often adversely affects maximum clock n f g f rates. As an extreme example, the performance advantages substantially) less than × | | + | |, where | | is the gate of a carefully designed one-hot encoded state machine might count of the original f, |g| is the gate count of the original g, be lost entirely if state minimisation was to be na¨ıvely at- and n is the number of unrollings. In some cases, the final tempted. gate count may even be less than |f| + |g| (see Section 4). Figure 3: Synchronous Circuit After n Unrollings Figure 4: Synchronous Circuit After Full Unrolling input CLK input f . f g output State initial f f . f g output state 3.2 Reset Logic a larger, more sophisticated general purpose programming Most synchronous circuits require some form of reset ca- language, in this case C++. pability, corresponding to the following program: The HarPE language currently exists as an ISO C++ tem- plate library, taking advantage of template metaprogram- state1 := initialstate ming techniques [26, 27]. Compiling and then executing a while true C++ source file incorporating HarPE code causes a hard- statek+1 := f(statek, input) ware netlist to be generated. The current compiler generates output := g(statek+1, input) gate-level Verilog for further processing by a conventional endwhile tool chain. In pure-synchronous hardware terms, since state may only 4.1 Semantics change at a clock edge, it is not possible to have code exe- cute outside the loop, so practical implementations usually HarPE source code has a standard, imperative semantics, resemble the following: with the characteristic that a whole program defines exactly one machine cycle.
Recommended publications
  • One Shots and Alternatives in Synchronous Digital System Design
    Lawrence Berkeley National Laboratory Lawrence Berkeley National Laboratory Title ONE SHOTS AND ALTERNATIVES IN SYNCHRONOUS DIGITAL SYSTEM DESIGN Permalink https://escholarship.org/uc/item/7tq8t8hn Author Hui, S. Publication Date 1979 Peer reviewed eScholarship.org Powered by the California Digital Library University of California LBL-8722 UC-37 7"> ONE SHOTS AND ALTERNATIVES IN SYNCHRONOUS DIGITAL SYSTEM DESIGN Steve Hui and John B. Meng January 1979 Prepared for the U. S. Department of Enemy under Contract W-7405-ENG-48 UtitAUigim LBL 8722 ONE SHOTS AND ALTERNATIVES IN SYNCHRONOUS DIGITAL SYSTEM DESIGN Steve Hui 8 John B. Meng January 1979 Prepared for the U.S. Department of Energy under Contract W-7405-ENG-48 NOTICE This re poll was pit pa ted is an account or work sponsored by the United States Government. Neither the United Sulci ooi the Umled Slates Depigment of Energy, nor any of their employees, nor any of their contractor*, lube on Ira clou, oi the If employees, nukes any warranty, express or implied, or auumei any legal liability •( response ill ly for (he accuracy, completene or usefulness of my information, anptiatui, product < process disclosed, c; represents thai ill me would no) infringe privately owned right*. !>TV»U;3 LBL 8722 (i) ONE SHOTS AND ALTERNATIVES IN SYNCHRONOUS DIGITAL SYSTEM DESIGN Steve Hui & John D. Meng The one shot or monostable multivibrator is quite often regarded as a "black sheep" in ditiqai integrated circuits. Its distinctions and versatility are well known and do not necessitate mentioning. Some of the potential problems with this black sheep are summarized as follows: 1.
    [Show full text]
  • Reaction Systems and Synchronous Digital Circuits
    molecules Article Reaction Systems and Synchronous Digital Circuits Zeyi Shang 1,2,† , Sergey Verlan 2,† , Ion Petre 3,4 and Gexiang Zhang 1,∗ 1 School of Electrical Engineering, Southwest Jiaotong University, Chengdu 611756, Sichuan, China; [email protected] 2 Laboratoire d’Algorithmique, Complexité et Logique, Université Paris Est Créteil, 94010 Créteil, France; [email protected] 3 Department of Mathematics and Statistics, University of Turku, FI-20014, Turku, Finland; ion.petre@utu.fi 4 National Institute for Research and Development in Biological Sciences, 060031 Bucharest, Romania * Correspondence: [email protected] † These authors contributed equally to this work. Received: 25 March 2019; Accepted: 28 April 2019 ; Published: 21 May 2019 Abstract: A reaction system is a modeling framework for investigating the functioning of the living cell, focused on capturing cause–effect relationships in biochemical environments. Biochemical processes in this framework are seen to interact with each other by producing the ingredients enabling and/or inhibiting other reactions. They can also be influenced by the environment seen as a systematic driver of the processes through the ingredients brought into the cellular environment. In this paper, the first attempt is made to implement reaction systems in the hardware. We first show a tight relation between reaction systems and synchronous digital circuits, generally used for digital electronics design. We describe the algorithms allowing us to translate one model to the other one, while keeping the same behavior and similar size. We also develop a compiler translating a reaction systems description into hardware circuit description using field-programming gate arrays (FPGA) technology, leading to high performance, hardware-based simulations of reaction systems.
    [Show full text]
  • A Brief Scientific Biography of Robin Milner
    A Brief Scientific Biography of Robin Milner Gordon Plotkin, Colin Stirling & Mads Tofte Robin Milner was born in 1934 to John Theodore Milner and Muriel Emily Milner. His father was an infantry officer and at one time commanded the Worcestershire Regiment. During the second world war the family led a nomadic existence in Scotland and Wales while his father was posted to different parts of the British Isles. In 1942 Robin went to Selwyn House, a boarding Preparatory School which is normally based in Broadstairs, Kent but was evacuated to Wales until the end of the war in 1945. In 1947 Robin won a scholarship to Eton College, a public school whose fees were a long way beyond the family’s means; fortunately scholars only paid what they could afford. While there he learned how to stay awake all night solving mathematics problems. (Scholars who specialised in maths were expected to score 100% on the weekly set of problems, which were tough.) In 1952 he won a major scholarship to King’s College, Cambridge, sitting the exam in the Examinations Hall which is 100 yards from his present office. However, before going to Cambridge he did two years’ national military service in the Royal Engineers, gaining a commission as a second lieutenant (which relieved his father, who rightly suspected that Robin might not be cut out to be an army officer). By the time he went to Cambridge in 1954 Robin had forgotten a lot of mathematics; but nevertheless he gained a first-class degree after two years (by omitting Part I of the Tripos).
    [Show full text]
  • Synchronous Sequential Logic Lecture Notes
    Synchronous Sequential Logic Lecture Notes Uncurrent Antonius contemporized, his creed scythe whinnied collectively. Exoergic Jeffery supernaturalises costively, he swots his granitite very unmercifully. Noel intercalates her demonstrators finely, she vies it conically. Number of synchronous logic circuit theory, lecture notes on this a latch we will gradually be performed by dr. With connected in this textbook url and gates to be equal to a pipeline stalls with our input driven all hype or otherwise, and when virtual page. Instruction as soon, which a link provided for a handy in. Mealy state transition table is synchronous design recipe become stable value to lecture notes was encounterd during four triggering clock pulse to some designers like. We adhere to synchronous and in a nearby data disks contain a single bit line is called as. Combinational propagation slack also known as to combine circuits, because a computer memories and complement systems from a zero! The lecture notes for whole are shown below each cycle. You miss a synchronous sequential circuits from a digital system among all notes was designed by a mealy machine including calculators, lecture content recommendations. The person who need to speed with assembly language programming, it may be used in ways that are you. Characteristic table entry is executed and sophisticated error correction is not permitted and. Describing historical computers as long as we need synchronizers a different. Count down counters only stable, not useful digital computers are competing for laws come up of inputs only use immediate addressingis where this textbook. One bit of every bit binary combinations for register on research you may be executed sequentially in a more costly hardware.
    [Show full text]
  • Unified (A)Synchronous Circuit Development
    Unified (A)Synchronous Circuit Development Philipp Paulweber Jurgen¨ Maier* Jordi Cortadella University of Vienna TU Wien Universitat Politecnica` de Catalunya Faculty of Computer Science Insitute of Computer Engineering Department of Computer Science Vienna, Austria Vienna, Austria Barcelona, Spain [email protected] [email protected] [email protected] Abstract—Despite its development several decades ago and one has to make sure that the communication protocol (request several very beneficial properties asynchronous logic design, and acknowledge) can be fully executed, which sometimes which is data driven and runs as fast as possible in all situations, requires the introduction of additional memory elements [2]. is rarely used nowadays. Reasons are of course its disadvan- tageous properties such as bad testability but also required Thus switching to asynchronous logic means retraining the sophisticated knowledge for designers and missing tools. In this designer which results in high risk for a company. paper we draw a path to tackle the latter points by suggesting Generating asynchronous circuits systematically from Data a tool/way to generate multiple circuit implementations from a single description. We are aiming to convert specifications Flow Graph (DFG)s, i.e., models that show how data is propa- written in various input languages, e.g. C or VHDL, to an unified gated from one operation to the next but neglects the inherent Internal Representation (IR). This IR is composed of building timings, is already possible. For this purpose operations and blocks (semantic vocabulary) specified through the Abstract State special constructs such as merge or join are simply replaced Machine (ASM) based formal method.
    [Show full text]
  • A Globally Wireless Locally Wired Hybrid Clock Distribution Network for Many-Core Systems
    UNIVERSITY OF SOUTHAMPTON A Globally Wireless Locally Wired Hybrid Clock Distribution Network for Many-core Systems by Qian Ding A thesis submitted in partial fulfillment for the degree of Doctor of Philosophy in the Faculty of Engineering and Physical Science School of Electronics and Computer Science February 2021 UNIVERSITY OF SOUTHAMPTON ABSTRACT FACULTY OF ENGINEERING AND PHYSICAL SCIENCES SCHOOL OF ELECTRONICS AND COMPUTER SCIENCE Doctor of Philosophy A Globally Wireless Locally Wired Hybrid Clock Distribution Network for Many-core Systems by Qian Ding Modern ICs are now facing critical issues on generating power-efficient and globally interconnected clock networks, as the clock distribution network might contribute to more than 50% of the overall power consumption. Besides, due to the increasing wire delay caused by shrinking interconnect dimensions, synchronous many-core systems are now facing challenges such as to propagate high-frequency clock signals across the chip with limited power budget. Delivering a clock with low uncertainties across active dies with large chip density has also become one of the major tasks using conventional metallic interconnects. This thesis presents a novel architecture and comprehensive evaluations for a power- efficient and extremely low-delay approach using hybrid wire-wireless clock distribution network (CDN). The proposed hybrid CDN adopts wireless on-chip clock transmitters and receivers for broadcasting the clock signal globally. It then incorporates with conven- tional metal-based clock tree or mesh for local clock distribution. Comparisons between the proposed approach and two baseline architectures, namely a full fan-out tree and a global tree local mesh (TLM) structure, have been presented.
    [Show full text]
  • The History of Standard ML
    The History of Standard ML DAVID MACQUEEN, University of Chicago, USA ROBERT HARPER, Carnegie Mellon University, USA JOHN REPPY, University of Chicago, USA Shepherd: Kim Bruce, Pomona College The ML family of strict functional languages, which includes F#, OCaml, and Standard ML, evolved from the Meta Language of the LCF theorem proving system developed by Robin Milner and his research group at the University of Edinburgh in the 1970s. This paper focuses on the history of Standard ML, which plays a central rôle in this family of languages, as it was the first to include the complete set of features that we now associate with the name “ML” (i.e., polymorphic type inference, datatypes with pattern matching, modules, exceptions, and mutable state). Standard ML, and the ML family of languages, have had enormous influence on the world of programming language design and theory. ML is the foremost exemplar of a functional programming language with strict evaluation (call-by-value) and static typing. The use of parametric polymorphism in its type system, together with the automatic inference of such types, has influenced a wide variety of modern languages (where polymorphism is often referred to as generics). It has popularized the idea of datatypes with associated case analysis by pattern matching. The module system of Standard ML extends the notion of type-level parameterization to large-scale programming with the notion of parametric modules, or functors. Standard ML also set a precedent by being a language whose design included a formal definition with an associated metatheory of mathematical proofs (such as soundness of the type system).
    [Show full text]
  • "Clock Distribution in Synchronous Systems"
    474 CLOCK DISTRIBUTION IN SYNCHRONOUS SYSTEMS CLOCK DISTRIBUTION IN SYNCHRONOUS SYSTEMS In a synchronous digital system, the clock signal is used to define a time reference for the movement of data within that system. Because this function is vital to the operation of a synchronous system, much attention has been given to the characteristics of these clock signals and the networks used in their distribution. Clock signals are often regarded as simple control signals; however, these signals have some very special characteristics and attributes. Clock signals are typically loaded with the greatest fanout, travel over the greatest dis- tances, and operate at the highest speeds of any signal, either control or data, within the entire system. Because the data signals are provided with a temporal reference by the clock signals, the clock waveforms must be particularly clean and sharp. Furthermore, these clock signals are particularly af- fected by technology scaling, in that long global interconnect lines become much more highly resistive as line dimensions are decreased. This increased line resistance is one of the pri- mary reasons for the increasing significance of clock distribu- tion on synchronous performance. Finally, the control of any differences in the delay of the clock signals can severely limit the maximum performance of the entire system and create catastrophic race conditions in which an incorrect data signal may latch within a register. Most synchronous digital systems consist of cascaded banks of sequential registers with combinatorial logic be- tween each set of registers. The functional requirements of the digital system are satisfied by the logic stages.
    [Show full text]
  • Pametno Zrcalo
    Pametno zrcalo Ovžetski, Marija Undergraduate thesis / Završni rad 2020 Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: Josip Juraj Strossmayer University of Osijek, Faculty of Electrical Engineering, Computer Science and Information Technology Osijek / Sveučilište Josipa Jurja Strossmayera u Osijeku, Fakultet elektrotehnike, računarstva i informacijskih tehnologija Osijek Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:200:023400 Rights / Prava: In copyright Download date / Datum preuzimanja: 2021-09-24 Repository / Repozitorij: Faculty of Electrical Engineering, Computer Science and Information Technology Osijek SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Stručni studij PAMETNO ZRCALO Završni rad Marija Ovžetski Osijek, 2020. Obrazac Z1S: Obrazac za imenovanje Povjerenstva za završni ispit na preddiplomskom stručnom studiju Osijek, 27.08.2020. Odboru za završne i diplomske ispite Imenovanje Povjerenstva za završni ispit na preddiplomskom stručnom studiju Ime i prezime studenta: Marija Ovžetski Preddiplomski stručni studij Elektrotehnika, Studij, smjer: smjer Informatika Mat. br. studenta, godina upisa: AI 4628, 24.09.2019. OIB studenta: 67363945938 Mentor: doc. dr. sc. Ivan Aleksi Sumentor: Sumentor iz tvrtke: Predsjednik Povjerenstva: Prof.dr.sc. Željko Hocenski Član Povjerenstva 1: doc. dr. sc. Ivan Aleksi Član Povjerenstva 2: Doc.dr.sc. Tomislav Matić Naslov završnog rada: Pametno zrcalo Arhitektura računalnih sustava Znanstvena
    [Show full text]
  • FPGA Designs with Verilog and Systemverilog
    FPGA designs with Verilog and SystemVerilog Meher Krishna Patel Created on : Octorber, 2017 Last updated : May, 2020 More documents are freely available at PythonDSP Table of contents Table of contents i 1 First project 1 1.1 Introduction.................................................1 1.2 Creating the project............................................1 1.3 Digital design using ‘block schematics’..................................1 1.4 Manual pin assignment and compilation.................................8 1.5 Load the design on FPGA.........................................8 1.6 Digital design using ‘Verilog codes’.................................... 10 1.7 Pin assignments using ‘.csv’ file...................................... 11 1.8 Converting the Verilog design to symbol................................. 11 1.9 Convert Block schematic to ‘Verilog code’ and ‘Symbol’........................ 14 1.10 Conclusion................................................. 17 2 Overview 18 2.1 Introduction................................................. 18 2.2 Modeling styles............................................... 18 2.2.1 Continuous assignment statements................................ 18 2.2.2 Comparators using Continuous assignment statements..................... 19 2.2.3 Structural modeling........................................ 22 2.2.4 Procedural assignment statements................................ 24 2.2.5 Mixed modeling.......................................... 25 2.3 Conclusion................................................. 26
    [Show full text]
  • Asynchronous Sequential Circuits
    Chapter 22 Asynchronous Sequential Circuits Asynchronous sequential circuits have state that is not synchronized with a clock. Like the synchronous sequential circuits we have studied up to this point they are realized by adding state feedback to combinational logic that imple- ments a next-state function. Unlike synchronous circuits, the state variables of an asynchronous sequential circuit may change at any point in time. This asynchronous state update – from next state to current state – complicates the design process. We must be concerned with hazards in the next state function, as a momentary glitch may result in an incorrect final state. We must also be concerned with races between state variables on transitions between states whose encodings differ in more than one variable. In this chapter we look at the fundamentals of asynchronous sequential cir- cuits. We start by showing how to analyze combinational logic with feedback by drawing a flow table. The flow table shows us which states are stable, which are transient, and which are oscillatory. We then show how to synthesize an asynchronous circuit from a specification by first writing a flow table and then reducing the flow table to logic equations. We see that state assignment is quite critical for asynchronous sequential machines as it determines when a potential race may occur. We show that some races can be eliminated by introducing transient states. After the introduction of this chapter, we continue our discussion of asyn- chronous circuits in Chapter 23 by looking at latches and flip-flops as examples of asynchronous circuits. 22.1 Flow Table Analysis Recall from Section 14.1 that an asynchronous sequential circuit is formed when a feedback path is placed around combinational logic as shown in Figure 22.1(a).
    [Show full text]
  • Hybrid Synchronous / Asynchronous Design
    HYBRID SYNCHRONOUS / ASYNCHRONOUS DESIGN A Dissertation Presented to the Faculty of the Graduate School of Cornell University in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy by Filipp A Akopyan May 2011 c 2011 Filipp A Akopyan ALL RIGHTS RESERVED HYBRID SYNCHRONOUS / ASYNCHRONOUS DESIGN Filipp A Akopyan, Ph.D. Cornell University 2011 In this new era of high-speed and low-power VLSI circuits, the question of which circuit family is best for a given application has become much more relevant. From a designer's point of view, process technology scaling continues to reveal undesirable device behavior. Thus, a designer has to make decisions not only at the micro-architectural scale, but also at a lower, circuit-level scale. However, common circuit families are not sufficient to solve modern engineering problems in many cases. Our goal is to provide resources that will allow designers to select the circuit family that yields the best results in terms of power, area, and performance metrics for each application, with minimal human input. Using our techniques, this choice can be made in a timely manner without in-depth knowledge of each circuit family. We propose an improved hybrid synchronous / asynchronous toolflow that offers significant reduction in the design cycle time and we advise on how our work can be extended to various types of circuit families for any given technology node. We describe tools that we have developed to allow designers to implement their projects using both synchronous and asynchronous circuit families. We also present the cosimulation environment that we have developed to allow designers to run complex digital and analog simulations of various circuits at different levels of abstraction with minimal setup effort.
    [Show full text]