20 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 27, NO. 1,JANUARY 2008 Encoding Large Asynchronous Controllers With ILP Techniques Josep Carmona and Jordi Cortadella, Member,IEEE Abstract—State encoding is one of the most difficult problems in the synthesis of asynchronous controllers. This paper presents a method that can solve the problem of large controllers specified with signal transition graphs. The method is based on the struc- tural theory of Petri nets and uses integer-linear programming to insert state signals in locations that guarantee the consistency and absence of critical races. The structural nature of the pro- posed method makes it conservative, i.e., a solution cannot be guaranteed, even if it exists. Nevertheless, the experiments show that this limitation did not preclude finding a solution for all the examples presented in this paper. The method can be customized for area or delay optimization. The experimental results confirm the quality of the circuits, as compared with state-based methods. They also show the significant benefits that could be obtained if logic synthesis would be incorporated in synthesis frameworks that generate controllers by syntax-directed translation. Index Terms—Asynchronous circuits, Petri net (PN), state encoding, structural methods. I. I NTRODUCTION T HE AUTOMATIC synthesis of asynchronous controllers has often faced a difficult and challenging problem, i.e., state encoding. The absence of critical races in the behavior of clockless circuits with high concurrence is a property that is not easy to meet. The strategies that have been proposed for several decades are intrinsically related to the circuit’s mode of operation. In the fundamental mode of operation, based on the work of Huffman [15] and Unger [33], the circuit and the environ- ment sequentially work. Every burst of events produced by the environment at the inputs is followed by a burst of events produced by the circuit at the outputs. However, inputs and outputs never simultaneously change. These circuits are usually specified using flow tables, in which the rows represent states, and the columns represent signals. The encoding problem aims at producing a flow table, in which the input changes produce a set of internal transitions that, after visiting unstable states, always finish in terminal stable states [23], [32]. Manuscript received December 21, 2006; revised May 29, 2007. This work was supported in part by the Comisión Interministerial de Ciencia y Tecnología (CICYT) under Contract TIN2004-07925 and in part by the Generalitat de Catalunya through a Distinction for Research Fund. This paper is an extended version of [3]. This paper was recommended by Associate Editor S. Nowick. The authors are with the Department of Software, Universitat Politècnica de Catalunya, 08034 Barcelona, Spain (e-mail: jcarmona@lsi.upc.edu; jordi. cortadella@upc.edu). Digital Object Identifier 10.1109/TCAD.2007.907238 Another mode of operation is the burst mode [27], in which the environment is allowed to produce different sets of in- put bursts, with an associated output burst for each one. An extension has also been proposed to allow some restricted concurrence between inputs and outputs [38]. In [12], the problem was solved by adding specific constraints to the input encoding problem [25]. The additional constraints are the ones that guarantee the absence of critical races in the encoding. The state encoding problem becomes even more difficult for the input/output mode of operation, in which no constraints on the concurrence between inputs and outputs are imposed. The signal transition graph (STG) [6], [29] is the most popular specification formalism for this type of circuits. This is the formalism used in this paper. A. State Encoding for STGs In [36], state encoding was formulated as a set of Boolean constraints to find a state variable assignment with race-free be- havior. Solutions could be found by using a satisfiability (SAT) solver, but only very small specifications could be handled. In [14], the specification was first decomposed to reduce the complexity of the SAT problem proposed in [36]. However, the approach could only find suboptimal solutions for some subclasses of STGs. In [19], the problem was solved by constructing a graph of encoding conflicts and then coloring the graph with binary en- coded colors. This method was limited to specifications without choices. A general method for state encoding was proposed in [7], which is based on the theory of regions of Petri nets (PNs). The insertion of new signals was restricted to regions and intersections of regions, thus guaranteeing a race-free encoding. In all the previous methods, the set of reachable states must be generated to solve the encoding problem. Even though the method proposed in [7] used binary decision diagrams to symbolically represent sets of states, the applicability was re- duced to specifications with not more than 20 signals. The state explosion problem has been the main reason that the previous methods have not been able to synthesize large controllers. Recently, an approach for state encoding that combines partial order techniques with SAT has been presented as an alternative to state-based methods [17]. The underlying idea for a consistent signal insertion as the resolution of an SAT problem inspired the technique presented in this paper. The method in [17] is exact and requires a larger computational complexity than the conservative method presented in this paper. 0278-0070/$25.00 © 2008 IEEE