PARALLEL MULTI-DELAY SIMULATION

Similar documents
THE SHADOW ALGORITHM: A SCHEDULING TECHNIQUE FOR BOTH COMPILED AND INTERPRETED SIMULATION ABSTRACT

TECHNIQUES FOR UNIT-DELAY COMPILED SIMULATION

TECHNIQUES FOR UNIT-DELAY COMPILED SIMULATION*

TWO NEW TECHNIQUES FOR UNIT-DELAY COMPILED SIMULATION ABSTRACT

COMPILED CODE IN DISTRIBUTED LOGIC SIMULATION. Jun Wang Carl Tropper. School of Computer Science McGill University Montreal, Quebec, CANADA H3A2A6

TECHNIQUES FOR MULTI-LEVEL COMPILED SIMULATION

The Inversion Algorithm for Digital Simulation

UNIT DELAY SCHEDULING FOR THE INVERSION ALGORITHM ABSTRACT

LECSIM: A LEVELIZED EVENT DRIVEN COMPILED LOGIC SIMULATOR*

Hashing. Hashing Procedures

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

Whitepaper Wishful Thinking vs. Reality in Regards to Virtual Backup and Restore Environments

1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM

Chapter 2: Number Systems

Generating Test Data with Enhanced Context Free Grammars

Driven Cavity Example

1 Motivation for Improving Matrix Multiplication

Hashing. Manolis Koubarakis. Data Structures and Programming Techniques

A Simple Placement and Routing Algorithm for a Two-Dimensional Computational Origami Architecture

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

An Efficient Method for Multiple Fault Diagnosis

Statistics, Data Analysis & Econometrics

Physically-Based Laser Simulation

Input/Output Management

Memory. Objectives. Introduction. 6.2 Types of Memory

SF-LRU Cache Replacement Algorithm

Version 8 Base SAS Performance: How Does It Stack-Up? Robert Ray, SAS Institute Inc, Cary, NC

Removing Belady s Anomaly from Caches with Prefetch Data

RAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE

Offloading Java to Graphics Processors

PDF created with pdffactory Pro trial version How Computer Memory Works by Jeff Tyson. Introduction to How Computer Memory Works

Slide Set 9. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

A Virtual Laboratory for Study of Algorithms

DATABASE SCALABILITY AND CLUSTERING

BECOME A LOAD TESTING ROCK STAR

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

Flash Drive Emulation

Learning and Generalization in Single Layer Perceptrons

Embedded Systems Design Prof. Anupam Basu Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

CS 147: Computer Systems Performance Analysis

Delay Estimation for Technology Independent Synthesis

Top-Level View of Computer Organization

Link Service Routines

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1

Detecting Logical Errors in SQL Queries

The Google File System

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture

Heap Management. Heap Allocation

Announcement. Computer Architecture (CSC-3501) Lecture 20 (08 April 2008) Chapter 6 Objectives. 6.1 Introduction. 6.

Chapter 3 - Top Level View of Computer Function

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

Algorithms. Lecture Notes 5

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

Interprocedural Variable Liveness Analysis for Function Signature Recovery

Cache Optimisation. sometime he thought that there must be a better way

PIPELINE AND VECTOR PROCESSING

Chapter 10 - Computer Arithmetic

On Universal Cycles of Labeled Graphs

Programming Project. Remember the Titans

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Verification and Validation of X-Sim: A Trace-Based Simulator

White Paper: Delivering Enterprise Web Applications on the Curl Platform

Memory Management. Memory Management

ZFS STORAGE POOL LAYOUT. Storage and Servers Driven by Open Source.

A Proposal for a High Speed Multicast Switch Fabric Design

Multi-Processor / Parallel Processing

Nanometer technologies enable higher-frequency designs

Chain of Responsibility Pattern. What is it?

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Verification of Clock Domain Crossing Jitter and Metastability Tolerance using Emulation

AMD actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process.

Memory Management. Memory Management Requirements

Concurrent & Distributed Systems Supervision Exercises

Module 5 - CPU Design

Two-dimensional Totalistic Code 52

Contents. Slide Set 1. About these slides. Outline of Slide Set 1. Typographical conventions: Italics. Typographical conventions. About these slides

An Overview of the BLITZ System

ABC basics (compilation from different articles)

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

Solution of Out-of-Core Lower-Upper Decomposition for Complex Valued Matrices

Supplementary Material for The Generalized PatchMatch Correspondence Algorithm

Advanced Database Systems

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

AUSIM: Auburn University SIMulator - Version L2.2

Chapter 13: I/O Systems

USING ARTIFACTORY TO MANAGE BINARIES ACROSS MULTI-SITE TOPOLOGIES

Optimizing Testing Performance With Data Validation Option

Exploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report

Chapter 13: Query Processing

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

Practice Problems (Con t) The ALU performs operation x and puts the result in the RR The ALU operand Register B is loaded with the contents of Rx

Chronos Latency - Pole Position Performance

CHAPTER 1 INTRODUCTION

Radix Searching. The insert procedure for digital search trees also derives directly from the corresponding procedure for binary search trees:

Introduction. Chapter Computer Graphics

Salford Systems Predictive Modeler Unsupervised Learning. Salford Systems

Oracle Rdb Hot Standby Performance Test Results

Shake n Send: Enabling feedback submission directly from mobile applications

Transcription:

PARALLEL MULTI-DELAY SIMULATION Yun Sik Lee Peter M. Maurer Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 CATEGORY: 7 - Discrete Simulation

PARALLEL MULTI-DELAY SIMULATION ABSTRACT The Multi-DelayParallel (MDP) algorithm is an unconventional multi-delay algorithm in that it uses no timing wheel, or any event-sorting mechanism of any kind. Instead, wide bit-fields containing net values for several different times are used to resolve out-of-order events, and bit-parallel operations are performed to simulate the required gates. The MDP algorithm was designed to be implemented in hardware, and is currently being targeted for a future hardware simulation accelerator, but the current software version of the algorithm has proven to be competitive with conventional interpretive event-driven multi-delay simulation. Because the MDP algorithm can resolve out-of-order events without backing up, or even taking any special notice of them, similar techniques may prove useful for multi-processor event-driven simulation. CATEGORY: 7 - Discrete Simulation

2 PARALLEL MULTI-DELAY SIMULATION 1. Introduction One major difficulty in multi-processor parallel event-driven logic simulation is the synchronization of events. To illustrate this problem, one must distinguish between two different time scales, both of which can be viewed from the perspective of a single processor. The first scale, the physical time scale, is defined by the actual time at which events are processed, while the second, the simulation time scale, is defined by the simulated time for which events are scheduled. In single-processor event-driven simulation, the two time scales can be made to correspond to one another by using an event sorting mechanism such as the timing wheel. However, on a multi-processor system it is possible for the simulation time scales of two processors to become skewed because the physical time required to process events is different on the two machines. When the simulation time scales of two machines become skewed, it is possible for the faster machine to receive an event that corresponds to a simulated time that has already elapsed. This presents a problem, since the simulation will have to be replayed from the point corresponding to the out-of-sequence event, which may require still other processors to replay their simulations. Although we are not directly interested in multi-processor event-driven simulation, we believe that some of the techniques developed in conjunction with the research reported here could have a powerful impact on such simulations. Our main objective in pursuing this research was to develop techniques on a hardware accelerator. This work is based on much previous work we, and other researchers, have done in the area of discrete simulation [1-7]. In particular, the underlying implementation of our algorithm is based on the multidelay shadow algorithm [7], which is a compiled event-driven simulation technique. However, we believe that the techniques presented here are directly applicable to most event-driven multi-delay simulators, not just the particular simulator that we have used as a basis for our research. When we began this research, it was with the intention of eventually implementing our algorithms in hardware. (This is still our goal.) We felt that the operations required by the algorithm, such as shifting very long bit-fields, and performing bit-parallel operations on bit-fields containing hundreds of bits, are more easily implemented in hardware than in software. Nevertheless, after we implemented our algorithms in software for verification purposes, we quite surprised to discover that our techniques, implemented in software, are competitive with existing interpreted event-driven simulators.

3 Before presenting our new techniques, it is necessary to review some of the latest work in logic simulation. Recently, there have been a number of new compiled simulation techniques presented in the literature. Broadly speaking, these techniques can be classified either as event-driven, or oblivious [1-7]. The oblivious methods used in unit-delay or zero-delay simulation allow simulation to be done with little or no scheduling code required, because the circuit compiler is capable of predicting the run-time behavior of the circuit. Unfortunately, this is worst-case behavior, which in multi-delay simulation is usually very different from the actual behavior of the circuit. In any oblivious simulation, it is necessary to provide code to anticipate any event that could possibly occur in the corresponding event-driven simulation. In zero delay simulation, this simply means simulating every gate once per input vector. However in the more complex timing models, this generally means simulating each gate several times. In particular, if there is a path of delay t between a gate g and the primary inputs of the circuit, then g must be simulated at time t, regardless of whether or not a change actually occurred in the inputs of g at that time. Obviously, when the delays assigned to gates are not uniform, as is normally the case in multi-delay simulation, there is a much greater opportunity for differing length paths to exist to a particular gate. In our work, we have observed that the number of gate simulations goes up enormously when converting a unit-delay simulation to a multi-delay simulation. So much so that the performance advantage of eliminating the scheduling code is completely outweighed by the additional gate simulations that must be performed. Another potential problem with the oblivious techniques that have been published recently is that the generated code is straight-line code with no locality of reference. Since the amount of generated code is generally too large to fit in existing instruction caches, this translates to reasonably poor performance on machines possessing such caches. The technique described here is a method for reducing the time required to perform a multi-delay simulation, by reducing, but not completely eliminating, the amount of scheduling that must be done during the simulation. The general technique is to use a unitdelay rather than a multi-delay scheduling algorithm, but enhance the algorithm with bit parallel operations in a manner similar to that described in [3]. The addition of bit-parallel operations will convert the unit-delay simulation into a multi-delay simulation, as long as the operations are designed properly. Our technique does not require the use of an event sorting mechanism such as the timing wheel, but it is possible to generate events out of sequence, even when running on a single processor. By calculating the maximum skew between events at compile time, and setting the bit-field width to the proper value, it is possible at run time to treat out-of-sequence and in-sequence events identically.

4 2. The PC-Set Method and Parallel Technique To make this paper self-contained, it is necessary to review two techniques for oblivious compiled unit-delay simulation that played an important role in the development of our current algorithm. Both of these techniques are limited to combinational and synchronous cyclic circuits, but can be extended to handle asynchronous cyclic circuits. The first technique is the PC-Set, or Potential-Change-Set, method, which is used in a modified form in our algorithm. The PC-Set method calculates the set of differing length paths between a gate and the primary inputs of the circuit. This is done by first assigning the PC-set {0} to all primary inputs. Once the inputs of a gate have all been assigned PCsets, the PC-set of the gate is computed by forming the union of the PC-sets of the inputs and adding one to each element. Once all gates driving a net have been assigned PC-sets, the PC-set of the net is computed by forming the union of the PC-sets of the driving gates. In most cases there will be a single driving gate, in which case the PC-set of the net is identical to the PC-set of its driving gate. The second technique is the parallel technique which allows a gate to be simulated at many times simultaneously by using bit-parallel operations. In the simplest form of this algorithm, each net is modeled as a bit-field whose width is equal to the maximum number of levels in the circuit, counting the zero level. Each bit in the bit-field corresponds to one unit of simulated time, with the low-order bit of each bit-field representing time zero. Code is generated in more or less the same fashion as in zero-delay levelized compiled code simulators, with the exception that after each gate simulation, the result is shifted to the left one bit and OR'ed into the bit-field that corresponds to the output net. The low-order bit of each bit-field is set during the initialization step for each input-vector. Except for primary inputs, this bit contains the final value of the net from the previous input vector. For primary inputs, the input value of the net is propagated throughout every bit of the bit field. For more information on the PC-Set method and the Parallel Technique, see [3] and [4]. 3. The Multi-Delay Parallel Technique The first step in the multi-delay parallel (MDP) algorithm is to generate a bit-field for each net in the circuit. Since the MDP algorithm uses unit-delay scheduling, for each scheduling point, it is necessary to determine the range of times for which events might reach the gate. To illustrate this point, consider the circuit pictured in Figure 1. Because all paths between gate G4 and the primary inputs are the same length, it will be scheduled at most once by any unit-delay scheduling algorithm, including the one used by the MDP

5 algorithm. However, because these paths have differing delays, gate G4 could see events for up to three different times when it is simulated. Therefore, the bit-field for Q must contain at least three bits, so that changes generated by the events at times 1, 2, and 3 will not be lost. A B G1 Delay = 3 I1 C D G2 Delay = 2 I2 G4 Delay = 4 Q E G3 I3 Delay = 1 Figure 1. A Sample Circuit. In Figure 1, no PC-set has more than one element, but this is rarely the case for circuits encountered in practice. When a gate has more than one element in it's PC-set, the gate may be simulated several times by the MDP algorithm, and each time it is simulated, the range of times for which events may be present may be different. A modified version of the PC-Set algorithm is used to determine the range of times in which events may occur for each potential simulation of a gate. To capture this information, the enhanced PC-set algorithm computes a set of ordered triples for each gate, called the EPC-Set. The first component corresponds to the original PC-set value, while the next two values correspond to the minimum and maximum delays for that particular PC-Set value. Note that a PC-Set value of i indicates that there is a path of length i, in terms of gates, between the primary inputs and the gate or net in question. In the EPC-Set, the second and third values indicate the maximum and minimum delay along paths of length i. In any EPC-Set, no two triples will have the same first component. The algorithm begins by assigning the set {(0,0,0)} to each primary input. As in original PC-set algorithm, the EPC-Set of a gate can be computed as soon as all inputs of the gate have been assigned EPC-Sets. The EPC-set of the gate is computed by first forming the union of the EPC-set of the inputs. If two or more elements of the union have

6 the same first component, the duplicate elements are deleted and replaced with a single element whose first component is identical to that of the deleted elements, and whose second and third components are the minimum and maximum of the corresponding elements in the deleted elements. Once all elements with duplicate first components have been eliminated, the first component of each triple is incremented by 1, and the second and third components of each triple are incremented by the delay of the gate. If a net is driven by a single gate, the EPC-Set of the net is identical to that of the driving gate. Otherwise, the procedure is to form the union of the EPC-sets of the driving gates, and collapse the elements with duplicate first components. Figure 2 illustrates the process of computing the EPC-Sets for the circuit. STEP 1 STEP 2 STEP 2 STEP 3 STEP 3 A- { (0,0,0) } B- { (0,0,0) } C- { (0,0,0) } D- { (0,0,0) } E- { (0,0,0) } G1- { (1,1,1) } G2- { (1,2,2) } I1- { (1,1,1) } I2- { (1,2,2) } G4 - { (1,1,1), (1,2,2), (1,3,3) } G4 - { (1,1,3) } Q- { (2,5,7) } G3- { (1,3,3) } I3- { (1,3,3) } G4 - { (2,5,7) } Figure 2. Generating EPC-Sets. Once the EPC-sets have been generated for all gates and all nets, it is possible to compute the required bit-field width for each EPC-set element, using the formula W i =M i -m i +1, where i is the PC-set value in the first component of the triple, M i is the maximum delay associated with i, and m i is the minimum delay associated with i.. Because it is convenient to use a single bit-field for a particular net, the maximum of W i for all i is obtained and used as the bit-field width of the net. Once this value has been obtained, it can be used in the following way to construct a simulator. Along with the bitfield, each net is provided with a status variable that gives the alignment of the net (that is, the time that corresponds to the low-order-bit of the bit field of the net). When an event is processed for a net, the current simulator time is used to look up the EPC-Set entry for the net that corresponds to the current time. The net is aligned to the m value for that particular EPC-set element, and the new data from the event is copied into the bit field of the net. This procedure has some problems. First, if the current alignment of the net is greater than the required alignment of the net for the current time, it will be necessary to shift the bit-field to the left. Left-shifts can cause problems, because past information must be

7 recreated. On the other hand, a right shift simply requires that the high-order bit be replicated throughout the vacated bit positions. Because the recreation of past information can be difficult or impossible to perform, the MDP algorithm substitutes a new value, k, for certain m values if the sequence of m values can lead to left shifts. The new value k is defined as follows. k i = min ({m j j i }) The new sequence of k i values is guaranteed to be in non-decreasing order. Another related problem can occur when for some i>j, M i <M j. When this occurs, a change made in the high-order bit at time j, could disappear from the bit-field in time i. Again, this occurs only when a left shift is done, so eliminating the left-shift will eliminate this second problem as well. However, for the sake of uniformity, the MDP algorithm also substitutes new values, K i, for the M values, when the original M values are not in non-decreasing order. The new K values are defined as follows. K i = max ({M j j i }) It is obvious that substituting the k values for the m values can increase the size of the bit-field of the net. What is not so obvious is that substituting the K values will not increase the size of the bit-field beyond the increase caused by the k i substitution. To see why this is so, suppose that K i >M i. This implies that there must be some j<i such that M j >M i. However, we know that k j k i, therefore K i -k i +1 = M j -k i +1 M j -k j +1. Since the values M j -k j +1 (for all j) are exactly those that will be used to determine the width of the bitfield if the K values are not computed, we see that the each of the new individual bit-field widths introduced by the K values are less than or equal to at least one individual width that existed before the K values were computed. In all cases, the MDP algorithm uses the k and K values instead of the m and M values. To clarify the process of computing the k and K values, consider the table pictured in Figure 3. Each row of this table illustrates one EPCset element, with the k and K values added.

8 PC m M k K 1 2 2 2 2 2 7 9 5 9 4 5 6 5 9 8 6 10 6 10 9 8 9 8 10 Figure 3. An EPC-Set. As stated above, a uniform bit-field width is used for each net, primarily to allow shift operations to be used to update the net from one simulated time period to another. To simplify the simulation operations, a uniform bit-field size is used for all nets in the circuit. This also simplifies the process of performing the final adjustment on the k and K values. A final adjustment of the k and K values, beyond that illustrated in Figure 3, is required because computing k and K values in isolation does not eliminate the possibility of performing left shifts. When a gate simulation is performed, the bitfields corresponding to the inputs of the gates must be aligned to the value k i, where i is the current simulation time, and k i is the k value that corresponds to the PC value i in the EPC-set of the gate. The computation of k and K values describe above does not guarantee that the alignment of the input nets will be less than or equal to k i when the simulation is performed. However, by using a variation of the path-tracing algorithm used by the unit-delay parallel algorithm [4], it is possible to avoid left-shifts altogether. The path tracing algorithm processes gates beginning at the primary outputs, and proceeding upwards toward the primary inputs. For each PC value i, with k value k i, in the EPC-set of a gate, those input nets that have PC-values of i-1 or smaller are identified. If left-shifts are to be avoided, the k values of these EPC-elements must be less than or equal to k i -d, where d is the delay of the gate. If this is not the case, then the k values of the offending EPC-set elements are set to k i -d. To avoid widening the bit-field, the K value of each offending EPC-set element is decremented by the same amount as the k value. Although this may appear to cause a loss in information at the high end of the bitfield, this is not the case. Because all bit-fields are the same width, and because the m and M values of the EPC-set propagate from the input nets to the gate, when the bitfield of the input net is aligned to k i -d, it is guaranteed that there will be sufficient bits beyond the bit corresponding to the new value of K i to capture any activity in the input net. Once these adjustments have been made, the procedure illustrated in Figure 4 is used to simulate the circuit. The simulation process is broken into two phases, the gate processing

9 phase, and the event-processing phase. Figure 4 illustrates the processing of a gate and the processing of an event. Process_Gate: 1. Locate the EPC-set element corresponding to the current time. 2. Let A be the k value of the selected EPC-set element. 3. For any input net N whose alignment is not equal to A, Align (temporarily) N to A. 4. Perform bit-parallel logic operations on the input fields producing R 5. Schedule an event for the output net containing R as the new value. Process_Event: (For net N) 1. Locate the EPC-set element of net N that corresponds to the current time 2. Let A be the k value of the selected EPC-set element. 3. Align N to A. 4. Compare the value of A to the new value contained in the net. 5. If the values are the same, to to the next event (if any). 6. Copy the new value from the event to the bit-field of the net. 7. Schedule the fan-out gates of the net. Figure 4. The Simulation Process. 4. Implementation. Although the techniques described in the previous section may be used with many different simulation techniques, we chose to implement it using the shadow algorithm [7]. The shadow algorithm can be implemented either as compiled or an interpreted algorithm. Our current implementation is the compiled form of the algorithm. We chose this algorithm because it generally provides for reasonably small executable files, and it performs well with the instruction cache of our test machine. For a description of the shadow algorithm, see [7]. 5. Experimental Results. Several experiments were run to measure the performance of the MDP algorithm, the results of which are reported in Figure 5. These experiments were run using the ISCAS-85 combinational benchmarks [8], which have been used by several researches to measure the

10 quality of both logic simulation and automatic test generation software. These benchmarks were converted to our description language, and a random delay between from 1 to 8 was added to each gate, without regard to gate type. Because the same collection of gates was used in all experiments, the range from which delays were selected is no particular importance. The experiments were run on a SUN-4/IPC with 12 megabytes of memory and a dedicated disk drive. This system was dedicated during the experiments, but could not be completely isolated. Each experiment was run five times and the results were averaged to obtain the numbers reported here. The values of Figure 5 are expressed in seconds of execution time and show the time required to simulate 5,000 random vectors. These times exclude the time required for reading inputs and printing outputs. Circuit Interp. MDP Width Fixed Width C432 35.9 33.8 46 35.3 83 C499 72.1 27.5 30 43.6 65 C880 55.9 55.8 44 59.1 97 C1355 196.0 184.2 86 187.3 141 C1908 219.5 298.8 78 383.4 170 C2670 253.5 307.5 65 336.4 149 C3540 467.6 505.4 91 677.5 211 C5315 644.6 839.7 70 1256.1 236 C6288 12330.0 13415.4 221 23440.9 639 C7552 1019.0 1247.4 76 1745.1 195 Figure 5. Benchmark Results. The interpreted simulator was designed for the purpose of comparing benchmark performance with our compiled simulator, and is based on the two-valued logic model. The column labeled Fixed contains results for a variant of the MDP which uses a fixed (non-shifting) bit-field for each net. Because the fields are not shifted, the bit-fields must be much larger to accommodate all possible changes in the net throughout the simulation. These results are included to illustrate the effect of increasing the bit-field width. The Width columns represent the number of bits used for each net in the circuit for the corresponding algorithm. The maximum improvement was obtained for the C499 circuit, which has a 30 bit width - less than one word. The time to manage the internal bits of the net is the dominating factor in the performance of the simulation.

11 6. Conclusion The parallel multi-delay event-driven algorithm has been shown to be competitive with conventional interpreted multi-delay simulation. This was surprising, because at first it seemed that the extremely wide bit-fields and complicated alignment procedures would slow the simulation down enough to make it significantly slower than conventional interpreted simulation. Nevertheless, we believe that the MDP algorithm is best suited for implementation on a hardware accelerator, and are proceeding with this work. We expect to complete our design of this accelerator within a year. 7. References 1. Bryant, R. E., D. Beatty, K. Brace, K. Cho and T. Sheffler, "COSMOS: A Compiled Simulator for MOS Circuits," Proceedings of the 24th Design Automation Conference, 1987, pp. 9-16. 2. D. M. Lewis, " Hierarchical Compiled Event-Driven Logic Simulation," Proceedings of ICCAD-89, pp.498-501. 3. Peter M. Maurer and Z. Wang, " Techniques for unit-delay compiled simulation", Proceedings of the 27th Design Automation Conference, 1990, pp. 480-484. 4. P. Maurer, "Optimization of the Parallel Technique for Unit-Delay Compiled Simulation," Proceedings of ICCAD-90, pp. 70-73. 5. Z. Wang and Peter M. Maurer, " LECSIM : A Levelized Event Driven Compiled Logic Simulator", Proceedings of the 27th Design Automation Conference, 1990, pp. 491-496. 6. Chiang, M., and R. Palkovic, "LCC Simulators Speed Development of Synchronous Hardware," Computer Design, Mar. 1, 1986, pp. 87-91. 7. Y. Lee, P. Maurer, Two New Techniques for Compiled Multi-Delay Simulation, Proceedings of Southeastcon 92, Apr, 1992. 8. F. Brglez, D. Bryan, K. Kozminski, "Combinational Profiles of Sequential Benchmark Circuits," Proceedings of ISCAS-89, pp. 1929-1934.