ROMantic : Generation and Optimization of Quasi Delay-Insensitive Read-Only Memories

We describe the capabilities of and algorithms used in ROMantic, a tool for generating asynchronous read-only memory. ROMantic generates ROMs that are optimized for either power or speed. These ROMs are quasi delay-insensitive, and generated from an input file consisting of a value table. Although the algorithms used are based on previously known approaches, we present several enhancements particular to the improvement of asynchronous memory design. We present the measurements of a large set of ROMs of variable sizes in terms of performance, sizing, timing, and energy consumption. This allows future comparisons of asynchronous-layout generation tools and provides a benchmark for memory sizes typical of today’s industrial designs. ROMantic is capable of targeting a broad range of asynchronous applications. It has been used in the Lutonium project, which is an asynchronous version of the 80C51 microcontroller; and it should be useful for many types of asynchronous memory and memory architecture research. I. I NTRODUCTION The asynchronous VLSI group at the California Institute of Technology is currently involved in the design of an Intel-8051– architecture microcontroller, the Lutonium [12]. This project was begun in 2001 to provide evidence of the speed and energy advantages of asynchronous design. One of the chief obstacles encountered in the hardware design was that the specifications were invented with little or no thought to the implementation. One of the simplest ways of dealing with such uncooperative specifications is to use a uniform implementation technique that is guaranteed to be correct by construction. A well-known example of this is to encode or compile the specification more or less directly as data in a read-only memory (ROM). ROMs are dense, have dependable, easy-to-predict timing, and, with the development of automatic optimization and generation software-tools, are easy to design and maintain. In this paper, we shall examine the algorithms and circuit techniques used in the design and implementation of the ROMantic ROM-generator program. ROMantic is a software tool that takes an input file in value table format (see section II-A) and produces a ROM layout in . mag format, the file format used internally by the Magic layout editor [13]. ROMantic generates quasi delay-insensitive (QDI) [5] asynchronous ROMs that are entirely customized. These ROMs perform all the necessary communications to function in an asynchronous environment, and can meet high throughput requirements without sacrificing the low-power advantage of asynchronous circuits. Generally speaking, the proper performance metric to optimize a CMOS circuit for is energy times delay squared, Et 2 [16], [11]. However,Et does not compose easily unless we are allowed to operate different parts of a system at different supply voltages. Therefore we shall find it useful to be able to generate ROMs with different tradeoffs between speed and energy consumption. ROMantic permits the designer to choose between two distinct speed/energy tradeoffs by varying the amount of concurrency in the ROM. As a result, ROMs can be optimized for speed, or energy, which permits the designer to consider using ROMs in situations where they would formerly have been unacceptable. The organization of this paper is as follows: Section II describes some of the features of ROMantic and the range of optimization parameters that can be used to customize the generated ROM layouts. Section III deals with architectural issues. Section IV describes the software architecture of ROMantic, and Section V presents the performance results and outlines some future enhancements that are planned for ROMantic. II. OVERVIEW OF ROMANTIC The ROMantic program takes its input from a file in value table format, which is similar to the truth-table format used by the Espresso program [17]. While the ultimate goal of ROMantic is the generating of Magic layout, it also generates several types of higher-level descriptions that are useful for simulation. ROMantic generates ROM output in the following four formats: m33 Modula-3 source code that interfaces with Karl Papadantonakis’s M3-3 library for simulating communicating hardware processes (CHPs) in Modula-3. cast CAST (Caltech Asynchronous Tools) description of CMOS production rules. kast KAST (Modula-3 version of CAST) description of CMOS production rules.