A New Enhanced Approach to Technology Mapping

Size: px
Start display at page:

Download "A New Enhanced Approach to Technology Mapping"

Transcription

1 A New Enhanced Approach to Technology Mapping Alan Mishchenko Satrajit Chatterjee Robert Brayton Xinning Wang Timothy Kam Department of EECS Strategic CAD Labs University of California, Berkeley Intel Corporation alanmi, satrajit, xinning.wang, Abstract An important part of the design flow, technology mapping, expresses logic functions of the netlist using gates from the technology library, in the presence of various design constraints. This paper proposes a new approach to technology mapping, which relies on several known techniques, combined and tuned to work in a new way. The previous work on DAG mapping is extended, by proposing new methods for enumerating mapping choices and performing Boolean matching, which guarantees the delay-optimum phase assignment at the gate boundaries. Two ways of capturing flexibility in technology mapping are explored and compared: supergates and choice nodes. An experimental technology mapper developed in the MVSIS environment compares favorably with other technology mappers in terms of delay, area, and runtime. 1 Introduction Technology mapping is an important step in the design flow. Typically technology mapping is applied to a Boolean network after technology-independent logic synthesis [2][20]. The traditional approach to technology mapping uses the tree-covering algorithm [8] implemented in SIS [18]. It was improved in [13][7] by adding implicit enumeration of all algebraic decompositions. A different approach to technology mapping was proposed in [9][10], which performs technology mapping as part of Boolean decomposition. This method was extended in [16] to consider a wider class of decomposition choices and compute decomposition functions more efficiently. Although technology mapping has been an active research area for many years, a number of open problems remain to be solved. The quality of mapping, in particular, delay/area/power trade-offs achieved by the present day technology mappers, is often suboptimal because only a small set of mapping choices is explored. The algebraic mappers, such as [8][13], do not use general Boolean properties of the functions, while Boolean mappers, such as [10][16], are often limited by the decomposition schemes employed and cannot beat the algebraic mappers. Besides, both high-effort algebraic mappers [13] and Boolean mappers [10][16] have long runtime, which prevents their use for design-space exploration and in fast prototyping. The proposed approach to technology mapping incorporates advantages of the published methods and proposes new solutions where the previous work fails. The characteristic features of the present approach are: It relies on graph covering [13] instead of constructive decomposition [16] It is DAG-based [12] rather than tree-based [8] It combines algebraic [3] and Boolean [9] methods It employs a new algorithm to enumerate subgraphs to be matched, similar to [5] It uses Boolean matching [1] rather than structural matching [8] and is implemented in a new way [6] It performs delay-optimal mapping [12], followed by area recovery [14][11] The rest of the paper is organized as follows. Section 2 reviews relevant background on technology mapping. Section 3 discusses the previous work. Section 4 presents the new technology mapping flow. Section 5 discusses supergates. Section 6 shows experimental results. Section 7 gives conclusions and future work. 2 Background Technology mapping consists in expressing logic functions of a circuit in terms of logic functions of elementary gates, which belong to some technology library. The circuit is represented by an object graph, while the gates are represented by subject graphs. The subject graphs, with possible duplications, should be connected to cover the object graph, while preserving its functionality. Traditionally, both types of graphs are represented by NAND-graphs (the networks composed of two-input NANDs) or AND-INV graphs (AIGs) (the networks composed of two-input ANDs and inverters). The proposed approach is based on the AIG representation. The difference compared to other AIG-based approaches, such as [13], is that AIGs in the current work are enhanced with functional reduction. 1

2 Functionally reduced AIGs (FRAIGs) are constructed to guarantee that each node has a unique functionality, that is, that there are no two nodes with identical functionality in terms of the PI variables of the graph. A detailed discussion of FRAIGs and their advantages compared to the traditional AIGs can be found [17]. To simplify the presentation in this paper, it can be assumed that the object graph is represented by the traditional AIGs, unless FRAIGs are specifically mentioned. A survey of several approaches to technology mapping is given in [4]. The functions mentioned in the algorithms and examples are completely specified Boolean functions. The concepts of the delay and the arrival time of a signal are used interchangeably. 3 Previous Work The previous work on technology mapping can be divided into algebraic and Boolean. The algebraic work pioneered by [8] became the method of choice for many CAD tools, in particular, SIS [18]. The main concepts of algebraic mapping are: constructing the object graph using algebraic decomposition of logic functions, representing the mapping graphs using two-input nodes, splitting general DAGs into disjoint trees, delay-optimal mapping of the trees, structural matching between the object graph of the network and the subject graphs of the gates. The limitations of the algebraic approach [8] were addressed by several later approaches. A number of important improvements are proposed in [13]: an improved generation of the starting object graph, an implicit enumeration of all algebraic decompositions using choice nodes, and better handling of the design constraints. This work was further advanced in [7] by developing new methods for efficient area recovery and achieving practical area/delay trade-offs. Yet another improvement [12] adapted the linear-time delay-optimal DAG-mapping algorithm [5], originally designed for LUT-based FPGAs, to work for the library-based mapping. This algorithm, called DagMap, is implemented in the SIS environment. Another major thrust to improve the quality of technology mapping led to the development of the Boolean approach [10][16]. It performs technology mapping in the context of constructive decomposition following the pioneering work on symbolic Boolean methods [9]. The main difficulty here is that Boolean methods are often too complicated and short-sighted to achieve good quality in the first pass over the netlist. They work better in the context of iterative re-synthesis, which targets incremental improvements to a mapped netlist. In this case, re-synthesis requires numerous updates to the netlist and incremental recomputation of timing information, which can make it very slow even for relatively small circuits. Another difficulty with Boolean methods [9][15][16] is that they target the reduction in the size of the support of logic functions as the main criterion in choosing decompositions. This is often misleading. Analysis of good decompositions derived by algebraic methods [3] suggests that the support size in these decompositions can temporarily grow before decreasing sharply. This phenomenon suggests that some type of redundant reencoding of the information, which increases the support size, may be necessary to find good decompositions. 4 New Mapping Flow The proposed approach to technology mapping can be divided into several phases: (1) creating the starting AND-INV graph (AIG), (2) computing all k-feasible cuts for each node, (3) performing Boolean matching between the functions of cuts and those of the library gates, (4) mapping the internal nodes, (5) selecting delay-optimal mapping, (6) post-processing to recover area. 4.1 Creating the starting AIG The object graph represented as an AIG can be constructed using two methods, which differ in the amount of flexibility present in the graph. One netlist: This approach is similar to the way the object graph is constructed in the previous work [8][13][12]. It assumes that the netlist after technologyindependent logic synthesis is available. The SOP representations of the nodes are converted into AIGs while minimizing the output arrival times measured in terms of the number of logic levels. Example. Suppose product p = abcd is being converted into an AIG, and the signal delays are: D(a) = 4, D(b) = 3, D(c) = 3, D(d) = 5. The resulting AIG balanced by delay is p = ((a(bc))d), and D(p) = 6. The sums found in the SOPs of the nodes along with the products, are converted into AIGs similarly, by transforming the two-input ORs into the two-input ANDs using the DeMorgan rule. Multiple netlists: (not yet implemented) This approach uses the functionally reduced AIGs (FRAIGs) [17] to represent multiple structural implementations of the logic functions found in different versions of the same netlist. One way of deriving the set of netlists is to apply a logic optimization script to the original netlist and saving the intermediate netlists after each command in the script. All the netlists are functionally equivalent, but their internal logic structure differs depending on the optimization commands applied. Constructing the FRAIG representation for all of them is equivalent to systematically storing all the different AIG structures for each logic function. The FRAIGs store the alternative structures of the object graph using an implicit data structure similar to choice nodes [13]. The main difference is in the source of the flexibility. In [13] the choice nodes are used to enumerate different algebraic decompositions, while in the proposed approach FRAIGs detect and store functionally-equivalent 2

3 structurally-different AIGs coming from different versions of the same design arising in logic optimization. In summary, the starting object graph can be choiceless or it may contain choice nodes. In both cases, the next stages of technology mapping work uniformly. They treat a choiceless netlist as the special case of the netlist with choices and try to make the most of the available flexibility. (The experimental result may compare the mapping quality with and without choice nodes.) 4.2 Computing k-feasible cuts Definition. A cut C for node n is a set of nodes, such that every path from node n to the PI nodes contains a node belonging to C. Node n is the root of C. The nodes in the set are the leaves of C. The nodes between the leaves and the root are the internal nodes of C. The size of the cut, denoted C, is the number of nodes in C. Example. Figure 1 shows an AIG with the root n 1, the internal AND nodes n 1 through n 6, and the PI nodes x 1 through x 5. The bubbles on the edges denote inverters. Node n 1 has cuts n 2, n 3 and n 2, n 5, n 6, while a set of nodes n 4, n 5 is not a cut because there is a path from node n 1 to PI x 5, which does not go through n 4 and n 5. n 4 x 1 x 2 x 3 x 4 x 5 Figure 1. Example of an AIG. Definition. A cut C of node n is redundant if a leaf node can be removed from it while C remains a cut of node n. A cut that is not redundant is called irredundant. Definition. An irredundant cut C is a k-feasible cut (k > 0) if C k. Computation of all k-feasible cuts for all nodes in the network is performed in one pass over the nodes as shown in Figure 2. The cuts are defined by the interconnection of the nodes while the inverters on the edges are ignored. Procedure NetworkKFeasibleCuts calls procedure NodeKFeasibleCuts for the PO nodes. After checking the trivial cases and the case when the node is already visited, the procedure calls itself recursively for the fanins of the node. The cut set of the node is derived by merging the cut sets of the fanins. The trivial cut composed of the node itself, n, is added to the resulting set. Procedure MergeCutSets initializes the resulting cut set to be empty, and considers all pairs of cuts from the two sets. For each pair, the merged cut is found as the union of the nodes belonging to the generating cuts. If the size of the merged cut does not exceed k, and the cut is encountered for the first time, it is added to the resulting cut set. Example. The cut set of node n 4 is x 1,x 2,n 4. The cut set of node n 5 is x 2,x 3,n 5. Suppose we compute n 1 n 2 n 3 n 5 n 6 2-feasible cuts of node n 2 using procedure MergeCutSets. The four cut pairs yield the following different cuts: x 1,x 2,x 3, x 1,x 2,n 5, x 2,x 3,n 4, n 4, n 5. Only one of them is two-feasible. So the resulting cut set is n 4, n 5. void NetworkKFeasibleCuts( map_graph * Graph, int k ) map_node * node; for each PO (node) of the mapping graph (Graph) NodeKFeasibleCuts( node, k ); map_cutset * NodeKFeasibleCuts( map_node * n, int k ) map_cutset * Set1, * Set2, * SetRes; if ( n is const ) return ; if ( n is PI ) return n; if ( n is visited ) return NodeReadCutSet( n ); MarkNodeAsVisited( n ); Set1 = NodeKFeasibleCuts( NodeReadChild1(n), k ); Set2 = NodeKFeasibleCuts( NodeReadChild2(n), k ); SetRes = MergeCutsSets( Set1, Set2, k ) n; NodeWriteCutSet( n, SetRes ); return SetRes; map_cutset * MergeCutsSets (map_cutset * Set1, map_cutset * Set2, int k ) map_cutset * SetRes; map_cut * Cut1, * Cut2, * CutRes; SetRes = ; for each cut (Cut1) in Set1 for each cut (Cut2) in Set2 CutRes = Cut1 Cut2; if ( CutRes k and CutRes SetRes ) SetRes = SetRes CutRes; return SetRes; Figure 2. Computation of all k-feasible cuts. 4.3 Boolean matching When all k-feasible cuts of the nodes are computed, an attempt is made to implement each of them using the gates from the library. Unlike most of the previous approaches to technology mapping, which use structural matching (comparing the AIG structure of the cut with those of the library gates), the proposed approach uses Boolean matching (comparing the Boolean function of the cut with those of the library gates). Boolean matching increases the likelihood of matching because it compares the function of the cut output, expressed in terms of the cut inputs, and disregards the interconnection structure of the internal nodes. Meanwhile, for a match to be found, the structural matching requires matching of the internal nodes of the cut. The structural matching can be made equally powerful by considering the complete set of AIG structures of each gate but it is inefficient for large gates (such as supergates in Section 5), because large gates have many different AIG structures. An additional advantage of Boolean matching is that it can perform phase assignment as a by product of matching. The phase assignment, discussed in the next subsection, selects the polarities of the inputs of the cut to minimize the arrival time of the output. 3

4 Definition. The function of a cut is the Boolean function of the root of the cut expressed in terms of the leaves. The function of the cut is computed by assigning the functions of the elementary variables to the leaves of the cut, followed by computing the functions of the internal nodes of the cut in a DFS order. In the end of this computation, the function of the root of the cut is available. Example. Consider the AIG in Figure 1. The function of the cut x 1,x 2,x 3 with root n 4 is f(x 1,x 2,x 3 ) = x 1 x 2 & x 2 x 3 = = ( x 1 + x 2 )( x 2 + x 3 ) = x 1 x 2 + x 1 x 3 + x 2 x 3. The function of cut n 5,x 4,x 5 with root n 3 is f(n 5,x 4,x 5 ) = nx + nx Definition. Two Boolean functions, f(x) and g(x), are NPN-equivalent if one of them can be derived from another by selectively complementing the inputs (N), permuting the inputs (P), and optionally complementing the output (N). Of particular interest in the current work on technology mapping is the N-equivalence of Boolean functions. Definition. Two Boolean functions, f(x) and g(x), are N-equivalent if one of them can be derived from another by selectively complementing the inputs of the cut. Example. Consider functions f 1 = xxx xx x 4, f = xxx + xx + x, and f = xxx xx x 4. It can be shown that f 1 and f 2 are not N-equivalent while f 1 and f 3 are N-equivalent because they can be transformed into each other by complementing x 2 and x 4. All Boolean functions of the given number of variables can be divided into N-equivalence classes. Representatives of each class can be transformed into each other by complementing their inputs, but there is no transformation of this type between representatives of different classes. Definition. The truth table of a Boolean function is the bit-string of length 2 n, where n is the number of variables in the function. The individual bits of the bit-string are equal to the values of the function for the input minterms ordered as natural numbers. x 1 x 2 x 3 f c 1 c 2 c 3 Truth Table Integer < > < > < > < > < > < > < > < > 220 Figure 3. Truth table of f. Figure 4. Canonical form of f. Example. Consider function f = xx + x. For variable ordering (x 1,x 2,x 3 ), the truth table is shown in Figure 3. The corresponding bit-string is < >. Definition. The phase transforming function f into a representative g of its N-equivalence class is the bit-string of length n, where n is the number of variables in f. The individual bits, c i, of the phase bit-string show whether the corresponding variables, x i, of f should be complemented to transform f into g. Example. Phase <001> transforms the truth table < > into < >, as shown in Figure 4. Property 1. Let functions f and g belong to the same N-equivalence class. Then, the phase transforming f into g is the same as the phase transforming g into f: p f g = p g f ; Definition. The N-canonical form of a Boolean function is a representative of its N-equivalence class, whose truth table has the smallest integer value. Example. Consider function f = xx + x. The complete set of eight transformations of its truth table is shown in Figure 4. The truth table < > is the canonical form because it corresponds to the smallest integer value (55). The phase transforming f into its canonical form is <001>. Property 2. Functions f and g are N-equivalent iff their N-canonical forms are identical. Suppose p f and p g are phases transforming N-equivalent functions f and g into their canonical form. Then the phase transforming f into g is p f g = p f p g, where is the bitwise EXOR operation. The proposed Boolean matching procedure pre-computes truth tables of all gates from the library and their N-canonical forms. During the pre-computation phase, which is performed once for each technology library, a hash table is created. This table maps the N-canonical form into a set of gates implementing this form. Additionally, each gate is associated with the phase, which transforms the truth table of the gate into its N-canonical form. The Boolean matching considers k-feasible cuts of all nodes of the object graph in an arbitrary order. For each cut, the following is computed: the truth table, its N-canonical form, and the phase transforming the truth table into its canonical form. The canonical form is used to find the set of gates, which can implement this cut. For each gate, the transformation phase from the function of gate into the function of the cut is found using Property Mapping internal nodes The delay-optimal mapping of the object graph is computed using procedure NetworkComputeMapping, shown in Figure 5. The arrival times of the PIs of the object graph are set to 0, or to the values supplied in the netlist specification. The arrival times of all nodes considered in the topological order are computed using the arrival times of the fanins by calling procedure NodeComputeMapping. Procedure NodeComputeMapping iterates through the previously computed k-feasible cuts of each node. For each cut, the arrival time of the cut output is determined. The cut with the earliest arriving output is selected to implement the node. Although not shown in the pseudo-code, the area of the cuts is used as a tie-breaker. The arrival time of a cut is determined by calling procedure CutComputeArrivalTime. This procedure uses the results of Boolean matching found at the previous steps: the set of gates, which can implement the cut, each of them with its own phase. When all the cuts are 4

5 considered, the gate with the earliest output arrival time is selected as the gate used to implement the cut. The arrival time of a gate is computed using procedure GateComputeArrivalTime. This procedure takes the gate from the technology library, the cut matched with this gate by Boolean matching, and the phase transforming the truth table of the gate into that of the cut. The phase tells what polarities of the cut inputs should be used as the gate inputs for the gate s output to produce the function of the cut. void NetworkComputeMapping ( map_graph * Graph ) map_node * node; SetPiArrivalTimes( Graph ); for each node (node) of the mapping graph (Graph) in topological order NodeComputeMapping( node ); map_time NodeComputeMapping ( map_node * n ) map_cut * Cut, * CutBest; map_time DelayCut, DelayBest; CutBest = NULL; DelayBest = INFINITY; for each cut (Cut) of the node (n) DelayCut = CutComputeArrivalTime( Cut ); if (DelayBest > DelayCut ) DelayBest = DelayCut; CutBest = Cut; NodeSetOptimalCut( n, CutBest ); return DelayBest; map_time CutComputeArrivalTime( map_cut * Cut ) map_gate * Gate, * GateBest; map_time DelayGate, DelayBest; map_truth Table; map_phase Phase; Table = CutReadTruthTable( Cut ); GateBest = NULL; DelayBest = INFINITY; for each gate (Gate) matching th5 scn TD(t)Tj0.t 5

6 Procedure NodeSelectOptimalDelayMapping assumes that the node, for which it is called, should be implemented in the given polarity. If this procedure is already called for the node in the given polarity, the result is returned. Otherwise, one of the two polarities of the node, positive or negative, is selected using the arrival times. The possibility of adding an inverter to the opposite polarity of the node is also considered. The selected cut and its transformation phase are retrieved. Next, the same procedure is called recursively for the fanins of this cut, which are needed in the polarity given by the transformation phase. Finally, the optimal delay cut and its polarity are stored at the node. 4.6 Area recovery Currently, efficient area recovery is not implemented. Two approaches can be explored: iterative minimization of area flow [13] and incremental re-synthesis through symbolic resubstitution [11]. It is expected that both options will recover some area without increasing delay. The first option is likely to be faster but the improvement will be around 10%. The second option is likely to be slower while possibly giving improvements up to 30%. Both approaches should be implemented and tested. 5 Supergates 5.1 Motivation The gate libraries vary in terms of the quantity and diversity of the elementary gates. Some libraries include only a few gates while other libraries are composed of negative unate gates. The problem is the functionality of gates in such libraries is not diverse enough to match the functionality of the majority of cuts computed for the nodes in the object graph. To increase the diversity of Boolean functions that can be implemented, it is natural to group the elementary gates into gate clusters or gate combinations, called supergates. This approach was introduced in [16] and proved useful to increase the efficiency of technology mapping. More formally, a supergate is a single-output combinational Boolean network composed of elementary gates belonging to the given library. a b Figure 7. A supergate. c F d S 1 S 2 S 3 Root gate a b c d c e Figure 8. Supergate generation. Example. Figure 7 shows a typical supergate with two logic levels of elementary gates. Two-input EXOR is the root gate, while the three-input OR and the two-input AND with a shared input occupy the second level. For a library of gates, the supergate library is generated as a preprocessing step before mapping. The supergate generation is guarded by constraints and resource limits, such as the limit on the number of inputs, the limit on the total area and delay, and the runtime limit. The generation process is described in the following subsection. It is important that the supergate library is generated once, stored compactly in a file, and used when technology mapping is invoked. The supergates should be recomputed only if changes are made to the original library. This is why the supergate generation has an additional advantage of reducing the total runtime of mapping by pre-computing and reusing the mapping information, which depends on the library but does not depend on the netlist to be mapped. A supergate library can be viewed as an elementary gate library, which contains a large number of gates with diverse functionality. A library of elementary gates can be viewed as a supergate library, with supergates composed of one level of the elementary gates. The algorithms in this paper work uniformly for both types of libraries. 5.2 Generation Overview: The supergate generation is performed recursively. One recursive step adds one level of gates on top of the available supergates. At the beginning, the set of available supergates is the set of elementary variables. In the current implementation, their number may be up to six; it depends on the largest allowed support size of the generated supergate library. In each recursion step, all possible root gates (the elementary gates from the library) are considered, and the available supergates are plugged into the root gates to create new supergate candidates. Example. The process generation process is illustrated in Figure 8. The root gate AOI21 is added on top of three supergates: S 1 (the elementary variable a), S 2 (the supergate composed of two NAND2 gates), and S 3 (the OR2 gate). The resulting candidates have an additional level of elementary gates, compared to the starting set of supergates. Before accepting a candidate supergate, its truth table is computed and the hash table is checked for a supergate with the same functionality but better delay-area parameters. If such gate exists, the new supergate is discarded. If it does not exist, the new supergate is added to the set of supergates used to generate the next level. Constraints: The runtime of supergate generation can be dramatically reduced by applying constraints on the candidates. The constraints on runtime of generation and on the number of logic levels of gates are obvious. Two other types of constraints are trickier to implement. These constraints include restrictions on the maximum area and on the maximum pin-to-pin delay of the resulting supergates. To ensure that a candidate with a pin-to-pin delay exceeding the given limit is never created, the available 6

7 supergates are sorted by their maximum pin-to-pin delay. Now, when we consider a root gate with some value of the maximum pin-to-pin delay, we only try the supergates, whose delay, when added to the delay of the root gate, does not exceed the delay limit. Example. Consider the supergate candidate in Figure 8. Suppose AOI21 has delay 1.7, NAND2 has delay 1.0, and OR2 has delay 1.5. Suppose the global delay limit imposed on the generated supergates is 4.0. In this case, the largest allowed maximum delay for the component supergates is equal to the global delay limit minus the delay of the root gate ( = 2.3). The supergate composed of two NANDs has delay 2.0. Both this supergate and OR2 have delay less than 2.3. Therefore, the supergate candidate in Figure 8 will be considered. Suppose the delay of NAND2 is 1.2. In this case, the supergate composed of two NANDs will have delay 2.4, which is larger than 2.3. Therefore, this supergate will not be allowed as a component when generating supergates with the root gate AOI21. A similar restriction can be developed for area. For each root gate, the available supergates are sorted by area. Now, while adding available supergates to the supergate under construction, the maximum area limit is checked. If the limit is exceeded, the supergate under construction is dropped and another one is tried. Storage: The resulting supergates are stored in a file in the form of a tree. Instead of writing each supergate individually as one line in the output file, all supergates are written as the shared tree of gates, beginning with the elementary variables. In the process of writing, some subtrees may, by themselves, be supergates, while others may be just useful parts of supergates. The former are denoted by a special symbol. Each line of the output file (except the comments and the header lines) describes one gate. The supergates are referred to by the line numbers, in which they are described. 5.3 Comparison with choice nodes Both supergates and choice nodes are introduced to improve the quality of mapping by increasing the search space. It is an interesting question what is the relationship between the flexibilities afforded by these two notions. An experiment should be performed to get a practical answer to this question. Here is a general argument to show that the sources of flexibility provided by supergates and choice nodes are complementary. Supergates are limited, by construction, to several logic levels of gates. As a result, the extended search space due to supergates is relatively shallow. However the population of this space is dense because the generation process is exhaustive for the given number of logic levels. On the other hand, the choice nodes derived from different versions of the netlist lead to a search space extension, which is deep and sparse. This is because the structural differences between the netlists used to generate the choices may encompass many logic levels. Meanwhile, the number of the structural differences is relatively small because their enumeration is not exhaustive and is controlled by external resource limits. 6 Experimental results Experiments may include comparison of the new technology mapper with the SIS mapper [8][19], mapper based on enumeration of algebraic decompositions [13], the future improvements to this mapper [7], the DAG mapper DagMap [12], and constructive decomposition [16]. It may also be interesting to perform the following experiments to evaluate the impact of various aspects of technology mapping on the quality of the final results. The contribution of supergates and choice nodes (How much to they add to quality? What is more powerful? Do they cover the same space?) The area recovery using different options. The trade-off between quality and runtime when different amount of choice nodes is used. 7 Conclusions This paper describes a new approach to technology mapping. This approach is based on the combination of known techniques with the following distinctive features: It gracefully combines Boolean and algebraic methods. It uses algebraic decomposition to construct the starting object graph and allows for Boolean transformations of this graph to increase the number of mapping choices. It uses Boolean matching rather than structural matching when expressing the functionality of cuts in the AIG in terms of the gates from the library. It improves the mapping quality by controlling the amount and origin of mapping choices added to the object graph. The choices can be added using algebraic decomposition, similar to [13], based on different versions of the same network, or based on pre-computed tables of equivalent AIG structures. It reduces the runtime by fine-tuning implementation and relying on pre-computation whenever possible. The future work will include: Experiments with different ways of adding choices (for example, using Boolean decomposition or precomputed library of small AIGs). Exploring the role of don t-cares in Boolean matching, in particular, for the critical path synthesis. For example, using subsets of local SDCs may increase efficiency of Boolean matching without sacrificing compatibility, as it might be the case with complete don t-cares. 7

8 References [1] L. Benini, G. DeMicheli, A survey of Boolean matching techniques for library binding, ACM TODAES, Vol. 2, No. 3, July 1997, pp [2] R. Brayton, G. Hachtel, A. Sangiovanni-Vincentelli, Multilevel logic synthesis, Proc. IEEE, Vol. 78, Feb [3] R. K. Brayton and C. McMullen, The decomposition and factorization of Boolean expressions, Proc. ISCAS 82, pp [4] S. Hassoun and T. Sasao, eds., Logic synthesis and verification, Kluwer 2002, Chapter???, Technology mapping, pp.???. [5] J. Cong, Y. Ding, FlowMap: An optimal technology mapping algorithm for delay optimization in lookup-table based FPGA designs, IEEE Trans. CAD, Vol.13, No. 1 (January 1994), pp [6] D. Debnath and T. Sasao, "Fast Boolean matching under variable permutation using representative," Proc. ASP- DAC '99, pp [7] D.-J. Jongeneel, R. Otten, Y. Watanabe, R. K. Brayton, Area and search space control for technology mapping, Proc. DAC 00, pp [8] K. Keutzer, DAGON: Technology binding and local optimizations by DAG matching, Proc. DAC 87, pp [9] V. N. Kravets. Constructive multi-level synthesis by way of functional properties. Ph. D. Thesis, University of Michigan, [10] V. N. Kravets and K. A. Sakallah, Constructive libraryaware synthesis using symmetries, Proc. DATE 00, pp [11] V. N. Kravets and P. Kudva, Implicit enumeration of structural changes in circuit optimization, Proc. DAC 04, pp.???. [12] Y. Kukimoto, R. K. Brayton, P. Sawkar, Delay-optimal technology mapping by DAG covering, Proc. DAC 98, pp [13] E. Lehman, Y. Watanabe, J. Grodstein, and H. Harkness, Logic decomposition during technology mapping, IEEE Trans. CAD, 16(8), 1997, pp [14] V. Manohararajah, S. D. Brown, Z. G. Vranesic, Heuristics for area minimization in LUT-based FPGA technology mapping, Proc. IWLS 04. [15] A. Mishchenko, B. Steinbach, M. Perkowski, "An algorithm for bi-decomposition of logic functions," Proc. DAC '01, pp [16] A. Mishchenko, X. Wang, T. Kam, A new enhanced constructive decomposition and mapping algorithm, Proc. DAC 2003, Los Angeles, pp [17] A. Mishchenko, R. J.-H. Jiang, R. K. Brayton, FRAIGs: Functionally reduced AND-INV graphs. [18] E. Sentovich, et al. SIS: A system for sequential circuit synthesis, Tech. Rep. UCB/ERI, M92/41, ERL, Dept. of EECS, Univ. of California, Berkeley, [19] H. Touati, Performance-oriented technology mapping, Ph.D. dissertation, UC Berkeley, November [20] C. Yang and M. Ciesielski, BDS: A BDD-based logic optimization system. IEEE Trans. CAD, Vol. 21 (7), July 2002, pp

Reducing Structural Bias in Technology Mapping

Reducing Structural Bias in Technology Mapping Reducing Structural Bias in Technology Mapping S. Chatterjee A. Mishchenko R. Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu X. Wang T. Kam Strategic CAD Labs Intel

More information

ABC basics (compilation from different articles)

ABC basics (compilation from different articles) 1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node

More information

Fast Boolean Matching for Small Practical Functions

Fast Boolean Matching for Small Practical Functions Fast Boolean Matching for Small Practical Functions Zheng Huang Lingli Wang Yakov Nasikovskiy Alan Mishchenko State Key Lab of ASIC and System Computer Science Department Department of EECS Fudan University,

More information

Combinational and Sequential Mapping with Priority Cuts

Combinational and Sequential Mapping with Priority Cuts Combinational and Sequential Mapping with Priority Cuts Alan Mishchenko Sungmin Cho Satrajit Chatterjee Robert Brayton Department of EECS, University of California, Berkeley {alanmi, smcho, satrajit, brayton@eecs.berkeley.edu

More information

A Boolean Paradigm in Multi-Valued Logic Synthesis

A Boolean Paradigm in Multi-Valued Logic Synthesis A Boolean Paradigm in Multi-Valued Logic Synthesis Abstract Alan Mishchenko Department of ECE Portland State University alanmi@ece.pd.edu Optimization algorithms used in binary multi-level logic synthesis,

More information

Integrating Logic Synthesis, Technology Mapping, and Retiming

Integrating Logic Synthesis, Technology Mapping, and Retiming Integrating Logic Synthesis, Technology Mapping, and Retiming Alan Mishchenko Satrajit Chatterjee Robert Brayton Department of EECS University of California, Berkeley Berkeley, CA 94720 {alanmi, satrajit,

More information

Representations of Terms Representations of Boolean Networks

Representations of Terms Representations of Boolean Networks Representations of Terms Representations of Boolean Networks Logic Circuits Design Seminars WS2010/2011, Lecture 4 Ing. Petr Fišer, Ph.D. Department of Digital Design Faculty of Information Technology

More information

Factor Cuts. Satrajit Chatterjee Alan Mishchenko Robert Brayton ABSTRACT

Factor Cuts. Satrajit Chatterjee Alan Mishchenko Robert Brayton ABSTRACT Factor Cuts Satrajit Chatterjee Alan Mishchenko Robert Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu ABSTRACT Enumeration of bounded size cuts is an important

More information

FRAIGs: A Unifying Representation for Logic Synthesis and Verification

FRAIGs: A Unifying Representation for Logic Synthesis and Verification FRAIGs: A Unifying Representation for Logic Synthesis and Verification Alan Mishchenko, Satrajit Chatterjee, Roland Jiang, Robert Brayton Department of EECS, University of California, Berkeley {alanmi,

More information

Integrating Logic Synthesis, Technology Mapping, and Retiming

Integrating Logic Synthesis, Technology Mapping, and Retiming Integrating Logic Synthesis, Technology Mapping, and Retiming Alan Mishchenko Satrajit Chatterjee Jie-Hong Jiang Robert Brayton Department of Electrical Engineering and Computer Sciences University of

More information

Versatile SAT-based Remapping for Standard Cells

Versatile SAT-based Remapping for Standard Cells Versatile SAT-based Remapping for Standard Cells Alan Mishchenko Robert Brayton Department of EECS, UC Berkeley {alanmi, brayton@berkeley.edu Thierry Besson Sriram Govindarajan Harm Arts Paul van Besouw

More information

Quick Look under the Hood of ABC

Quick Look under the Hood of ABC Quick Look under the Hood of ABC A Programmer s Manual December 25, 2006 Network ABC is similar to SIS/MVSIS in that it processes the design by applying a sequence of transformations to the current network,

More information

Integrating Logic Synthesis, Technology Mapping, and Retiming

Integrating Logic Synthesis, Technology Mapping, and Retiming Integrating Logic Synthesis, Technology Mapping, and Retiming Alan Mishchenko Satrajit Chatterjee Robert Brayton Department of EECS University of California, Berkeley Berkeley, CA 94720 {alanmi, satrajit,

More information

Improvements to Technology Mapping for LUT-Based FPGAs

Improvements to Technology Mapping for LUT-Based FPGAs Improvements to Technology Mapping for LUT-Based FPGAs Alan Mishchenko Satrajit Chatterjee Robert Brayton Department of EECS, University of California, Berkeley {alanmi, satrajit, brayton}@eecs.berkeley.edu

More information

Lazy Man s Logic Synthesis

Lazy Man s Logic Synthesis Lazy Man s Logic Synthesis Wenlong Yang Lingli Wang State Key Lab of ASIC and System Fudan University, Shanghai, China {allanwin@hotmail.com, llwang@fudan.edu.cn Abstract Deriving a circuit for a Boolean

More information

A Toolbox for Counter-Example Analysis and Optimization

A Toolbox for Counter-Example Analysis and Optimization A Toolbox for Counter-Example Analysis and Optimization Alan Mishchenko Niklas Een Robert Brayton Department of EECS, University of California, Berkeley {alanmi, een, brayton}@eecs.berkeley.edu Abstract

More information

Delay Estimation for Technology Independent Synthesis

Delay Estimation for Technology Independent Synthesis Delay Estimation for Technology Independent Synthesis Yutaka TAMIYA FUJITSU LABORATORIES LTD. 4-1-1 Kamikodanaka, Nakahara-ku, Kawasaki, JAPAN, 211-88 Tel: +81-44-754-2663 Fax: +81-44-754-2664 E-mail:

More information

SAT-Based Logic Optimization and Resynthesis

SAT-Based Logic Optimization and Resynthesis SAT-Based Logic Optimization and Resynthesis Alan Mishchenko Robert Brayton Jie-Hong Roland Jiang Stephen Jang Department of EECS Department of EE Xilinx Inc. University of California, Berkeley National

More information

Are XORs in Logic Synthesis Really Necessary?

Are XORs in Logic Synthesis Really Necessary? Are XORs in Logic Synthesis Really Necessary? Ivo Háleček, Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University in Prague Prague, Czech Republic Email: {halecivo, fiserp,

More information

Integrating an AIG Package, Simulator, and SAT Solver

Integrating an AIG Package, Simulator, and SAT Solver Integrating an AIG Package, Simulator, and SAT Solver Alan Mishchenko Robert Brayton Department of EECS, UC Berkeley {alanmi, brayton}@berkeley.edu Abstract This paper focuses on problems where the interdependence

More information

Beyond the Combinatorial Limit in Depth Minimization for LUT-Based FPGA Designs

Beyond the Combinatorial Limit in Depth Minimization for LUT-Based FPGA Designs Beyond the Combinatorial Limit in Depth Minimization for LUT-Based FPGA Designs Jason Cong and Yuzheng Ding Department of Computer Science University of California, Los Angeles, CA 90024 Abstract In this

More information

CSE241 VLSI Digital Circuits UC San Diego

CSE241 VLSI Digital Circuits UC San Diego CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design Systems January 21, 2003 CSE241 L5 Synthesis.1 Kahng & Cichy, UCSD 2003 Outline Introduction Two-level

More information

On Resolution Proofs for Combinational Equivalence Checking

On Resolution Proofs for Combinational Equivalence Checking On Resolution Proofs for Combinational Equivalence Checking Satrajit Chatterjee Alan Mishchenko Robert Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu Andreas Kuehlmann

More information

Unit 4: Formal Verification

Unit 4: Formal Verification Course contents Unit 4: Formal Verification Logic synthesis basics Binary-decision diagram (BDD) Verification Logic optimization Technology mapping Readings Chapter 11 Unit 4 1 Logic Synthesis & Verification

More information

/$ IEEE

/$ IEEE 240 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 26, NO. 2, FEBRUARY 2007 Improvements to Technology Mapping for LUT-Based FPGAs Alan Mishchenko, Member, IEEE, Satrajit

More information

SAT-Based Area Recovery in Technology Mapping

SAT-Based Area Recovery in Technology Mapping SAT-Based Area Recovery in Technology Mapping Bruno Schmitt Ecole Polytechnique Federale de Lausanne (EPFL) bruno@oschmitt.com Alan Mishchenko Robert Brayton Department of EECS, UC Berkeley {alanmi, brayton}@berkeley.edu

More information

Busy Man s Synthesis: Combinational Delay Optimization With SAT

Busy Man s Synthesis: Combinational Delay Optimization With SAT Busy Man s Synthesis: Combinational Delay Optimization With SAT Mathias Soeken 1 Giovanni De Micheli 1 Alan Mishchenko 2 1 Integrated Systems Laboratory, EPFL, Lausanne, Switzerland 2 Department of EECS,

More information

ECE260B CSE241A Winter Logic Synthesis

ECE260B CSE241A Winter Logic Synthesis ECE260B CSE241A Winter 2007 Logic Synthesis Website: /courses/ece260b-w07 ECE 260B CSE 241A Static Timing Analysis 1 Slides courtesy of Dr. Cho Moon Introduction Why logic synthesis? Ubiquitous used almost

More information

SEPP: a New Compact Three-Level Logic Form

SEPP: a New Compact Three-Level Logic Form SEPP: a New Compact Three-Level Logic Form Valentina Ciriani Department of Information Technologies Università degli Studi di Milano, Italy valentina.ciriani@unimi.it Anna Bernasconi Department of Computer

More information

LUT Mapping and Optimization for Majority-Inverter Graphs

LUT Mapping and Optimization for Majority-Inverter Graphs LUT Mapping and Optimization for Majority-Inverter Graphs Winston Haaswijk, Mathias Soeken, Luca Amarù, Pierre-Emmanuel Gaillardon, Giovanni De Micheli Integrated Systems Laboratory, EPFL, Lausanne, VD,

More information

Fast Minimum-Register Retiming via Binary Maximum-Flow

Fast Minimum-Register Retiming via Binary Maximum-Flow Fast Minimum-Register Retiming via Binary Maximum-Flow Alan Mishchenko Aaron Hurst Robert Brayton Department of EECS, University of California, Berkeley alanmi, ahurst, brayton@eecs.berkeley.edu Abstract

More information

Applying Logic Synthesis for Speeding Up SAT

Applying Logic Synthesis for Speeding Up SAT Applying Logic Synthesis for Speeding Up SAT Niklas Een, Alan Mishchenko, Niklas Sörensson Cadence Berkeley Labs, Berkeley, USA. EECS Department, University of California, Berkeley, USA. Chalmers University

More information

Cut-Based Inductive Invariant Computation

Cut-Based Inductive Invariant Computation Cut-Based Inductive Invariant Computation Alan Mishchenko 1 Michael Case 1,2 Robert Brayton 1 1 Department of EECS, University of California, Berkeley, CA 2 IBM Systems and Technology Group, Austin, TX

More information

Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas

Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas 1 RTL Design Flow HDL RTL Synthesis Manual Design Module Generators Library netlist

More information

FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs

FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs . FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs Jason Cong and Yuzheng Ding Department of Computer Science University of California, Los Angeles,

More information

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2 Synthesis The Y-diagram Revisited Structural Behavioral More abstract designs Physical CAD for VLSI 2 1 Structural Synthesis Behavioral Physical CAD for VLSI 3 Structural Processor Memory Bus Behavioral

More information

How Much Logic Should Go in an FPGA Logic Block?

How Much Logic Should Go in an FPGA Logic Block? How Much Logic Should Go in an FPGA Logic Block? Vaughn Betz and Jonathan Rose Department of Electrical and Computer Engineering, University of Toronto Toronto, Ontario, Canada M5S 3G4 {vaughn, jayar}@eecgutorontoca

More information

Boolean Representations and Combinatorial Equivalence

Boolean Representations and Combinatorial Equivalence Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving

More information

Incremental Sequential Equivalence Checking and Subgraph Isomorphism

Incremental Sequential Equivalence Checking and Subgraph Isomorphism Incremental Sequential Equivalence Checking and Subgraph Isomorphism Sayak Ray Alan Mishchenko Robert Brayton Department of EECS, University of California, Berkeley {sayak, alanmi, brayton}@eecs.berkeley.edu

More information

BoolTool: A Tool for Manipulation of Boolean Functions

BoolTool: A Tool for Manipulation of Boolean Functions BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Department of Computer Science and Engineering Karlovo nám. 13, 121 35 Prague 2 e-mail:

More information

TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS

TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS Zoltan Baruch E-mail: Zoltan.Baruch@cs.utcluj.ro Octavian Creţ E-mail: Octavian.Cret@cs.utcluj.ro Kalman Pusztai E-mail: Kalman.Pusztai@cs.utcluj.ro Computer

More information

Design of Framework for Logic Synthesis Engine

Design of Framework for Logic Synthesis Engine Design of Framework for Logic Synthesis Engine Tribikram Pradhan 1, Pramod Kumar 2, Anil N S 3, Amit Bakshi 4 1 School of Information technology and Engineering, VIT University, Vellore 632014, Tamilnadu,

More information

An Efficient Framework of Using Various Decomposition Methods to Synthesize LUT Networks and Its Evaluation

An Efficient Framework of Using Various Decomposition Methods to Synthesize LUT Networks and Its Evaluation An Efficient Framework of Using Various Decomposition Methods to Synthesize LUT Networks and Its Evaluation Shigeru Yamashita Hiroshi Sawada Akira Nagoya NTT Communication Science Laboratories 2-4, Hikaridai,

More information

Optimized Implementation of Logic Functions

Optimized Implementation of Logic Functions June 25, 22 9:7 vra235_ch4 Sheet number Page number 49 black chapter 4 Optimized Implementation of Logic Functions 4. Nc3xe4, Nb8 d7 49 June 25, 22 9:7 vra235_ch4 Sheet number 2 Page number 5 black 5 CHAPTER

More information

On Resolution Proofs for Combinational Equivalence

On Resolution Proofs for Combinational Equivalence 33.4 On Resolution Proofs for Combinational Equivalence Satrajit Chatterjee Alan Mishchenko Robert Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu Andreas Kuehlmann

More information

MVSIS v1.1 Manual. Jie-Hong Jiang, Yunjian Jiang, Yinghua Li, Alan Mishchenko*, Subarna Sinha Tiziano Villa**, Robert Brayton

MVSIS v1.1 Manual. Jie-Hong Jiang, Yunjian Jiang, Yinghua Li, Alan Mishchenko*, Subarna Sinha Tiziano Villa**, Robert Brayton MVSIS v1.1 Manual Jie-Hong Jiang, Yunjian Jiang, Yinghua Li, Alan Mishchenko*, Subarna Sinha Tiziano Villa**, Robert Brayton Department of Electrical Engineering and Computer Sciences University of California,

More information

On Nominal Delay Minimization in LUT-Based FPGA Technology Mapping

On Nominal Delay Minimization in LUT-Based FPGA Technology Mapping On Nominal Delay Minimization in LUT-Based FPGA Technology Mapping Jason Cong and Yuzheng Ding Department of Computer Science University of California, Los Angeles, CA 90024 Abstract In this report, we

More information

Large-scale Boolean Matching

Large-scale Boolean Matching Large-scale Boolean Matching Hadi Katebi, Igor L. Markov University of Michigan, 2260 Hayward St., Ann Arbor, MI 48109 {hadik, imarkov}@eecs.umich.edu Abstract We propose a methodology for Boolean matching

More information

Advances In Industrial Logic Synthesis

Advances In Industrial Logic Synthesis Advances In Industrial Logic Synthesis Luca Amarù, Patrick Vuillod, Jiong Luo Design Group, Synopsys Inc., Sunnyvale, California, USA Design Group, Synopsys, Grenoble, FR Logic Synthesis Y

More information

Don t Cares and Multi-Valued Logic Network Minimization

Don t Cares and Multi-Valued Logic Network Minimization Don t Cares and Multi-Valued Logic Network Minimization Yunian Jiang Robert K. Brayton Department of Electrical Engineering and Computer Sciences University of California, Berkeley wiang,brayton @eecs.berkeley.edu

More information

Sequential Logic Synthesis Using Symbolic Bi-Decomposition

Sequential Logic Synthesis Using Symbolic Bi-Decomposition Sequential Logic Synthesis Using Symbolic Bi-Decomposition Victor N. Kravets IBM TJ Watson Research Center Yorktown Heights, NY Alan Mishchenko Department of EECS University of California, Berkeley kravets@us.ibm.com

More information

Local Two-Level And-Inverter Graph Minimization without Blowup

Local Two-Level And-Inverter Graph Minimization without Blowup Local Two-Level And-Inverter Graph Minimization without Blowup Robert Brummayer and Armin Biere Institute for Formal Models and Verification Johannes Kepler University Linz, Austria {robert.brummayer,

More information

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809 PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA Laurent Lemarchand Informatique ubo University{ bp 809 f-29285, Brest { France lemarch@univ-brest.fr ea 2215, D pt ABSTRACT An ecient distributed

More information

OPTIMIZATION OF BINARY AND MULTI-VALUED DIGITAL CIRCUITS USING MVSIS AND AIG REWRITING (ABC)

OPTIMIZATION OF BINARY AND MULTI-VALUED DIGITAL CIRCUITS USING MVSIS AND AIG REWRITING (ABC) Journal of Electronic and Electrical Engineering ISSN: 0976 8106 & E-ISSN: 0976 8114, Vol. 2, Issue 1, 2011, pp-24-29 Available online at http://www.bioinfo.in/contents.php?id=82 OPTIMIZATION OF BINARY

More information

A New Algorithm to Create Prime Irredundant Boolean Expressions

A New Algorithm to Create Prime Irredundant Boolean Expressions A New Algorithm to Create Prime Irredundant Boolean Expressions Michel R.C.M. Berkelaar Eindhoven University of technology, P.O. Box 513, NL 5600 MB Eindhoven, The Netherlands Email: michel@es.ele.tue.nl

More information

A Power Optimization Toolbox for Logic Synthesis and Mapping

A Power Optimization Toolbox for Logic Synthesis and Mapping A Power Optimization Toolbox for Logic Synthesis and Mapping Stephen Jang Kevin Chung Alan Mishchenko Robert Brayton Xilinx Inc. Department of EECS, University of California, Berkeley {sjang, kevinc}@xilinx.com

More information

Chapter 2. Boolean Expressions:

Chapter 2. Boolean Expressions: Chapter 2 Boolean Expressions: A Boolean expression or a function is an expression which consists of binary variables joined by the Boolean connectives AND and OR along with NOT operation. Any Boolean

More information

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007 VLSI System Design Part II : Logic Synthesis (1) Oct.2006 - Feb.2007 Lecturer : Tsuyoshi Isshiki Dept. Communications and Integrated Systems, Tokyo Institute of Technology isshiki@vlsi.ss.titech.ac.jp

More information

Boolean Matching for Complex PLBs in LUT-based FPGAs with Application to Architecture Evaluation. Jason Cong and Yean-Yow Hwang

Boolean Matching for Complex PLBs in LUT-based FPGAs with Application to Architecture Evaluation. Jason Cong and Yean-Yow Hwang Boolean Matching for Complex PLBs in LUT-based PAs with Application to Architecture Evaluation Jason Cong and Yean-Yow wang Department of Computer Science University of California, Los Angeles {cong, yeanyow}@cs.ucla.edu

More information

Breakup Algorithm for Switching Circuit Simplifications

Breakup Algorithm for Switching Circuit Simplifications , No.1, PP. 1-11, 2016 Received on: 22.10.2016 Revised on: 27.11.2016 Breakup Algorithm for Switching Circuit Simplifications Sahadev Roy Dept. of ECE, NIT Arunachal Pradesh, Yupia, 791112, India e-mail:sdr.ece@nitap.in

More information

ECE260B CSE241A Winter Logic Synthesis

ECE260B CSE241A Winter Logic Synthesis ECE260B CSE241A Winter 2005 Logic Synthesis Website: / courses/ ece260bw05 ECE 260B CSE 241A Static Timing Analysis 1 Slides courtesy of Dr. Cho Moon Introduction Why logic synthesis? Ubiquitous used almost

More information

On Using Permutation of Variables to Improve the Iterative Power of Resynthesis

On Using Permutation of Variables to Improve the Iterative Power of Resynthesis On Using Permutation of Variables to Improve the Iterative Power of Resynthesis Petr Fiser, Jan Schmidt Faculty of Information, Czech Technical University in Prague fiserp@fit.cvut.cz, schmidt@fit.cvut.cz

More information

Efficient Computation of Canonical Form for Boolean Matching in Large Libraries

Efficient Computation of Canonical Form for Boolean Matching in Large Libraries Efficient Computation of Canonical Form for Boolean Matching in Large Libraries Debatosh Debnath Dept. of Computer Science & Engineering Oakland University, Rochester Michigan 48309, U.S.A. debnath@oakland.edu

More information

SAT-Based Complete Don t-care Computation for Network Optimization

SAT-Based Complete Don t-care Computation for Network Optimization AT-Based Complete Don t-care Computation for Network Optimization Alan Mishchenko and obert K. Brayton Department of EEC University of California, Berkeley {alanmi, brayton}@eecs.berkeley.edu Abstract

More information

On the Relation between SAT and BDDs for Equivalence Checking

On the Relation between SAT and BDDs for Equivalence Checking On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda 1 Rolf Drechsler 2 Alex Orailoglu 1 1 Computer Science & Engineering Department University of California, San Diego La Jolla,

More information

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract Don't Cares in Multi-Level Network Optimization Hamid Savoj University of California Berkeley, California Department of Electrical Engineering and Computer Sciences Abstract An important factor in the

More information

Using Synthesis Techniques in SAT Solvers

Using Synthesis Techniques in SAT Solvers 1. Introduction Using Synthesis Techniques in SAT Solvers Rolf Drechsler Institute of Computer Science University of Bremen 28359 Bremen, Germany drechsle@informatik.uni-bremen.de Abstract In many application

More information

Functional extension of structural logic optimization techniques

Functional extension of structural logic optimization techniques Functional extension of structural logic optimization techniques J. A. Espejo, L. Entrena, E. San Millán, E. Olías Universidad Carlos III de Madrid # e-mail: { ppespejo, entrena, quique, olias}@ing.uc3m.es

More information

SDD Advanced-User Manual Version 1.1

SDD Advanced-User Manual Version 1.1 SDD Advanced-User Manual Version 1.1 Arthur Choi and Adnan Darwiche Automated Reasoning Group Computer Science Department University of California, Los Angeles Email: sdd@cs.ucla.edu Download: http://reasoning.cs.ucla.edu/sdd

More information

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER Gate-Level Minimization BME28 Logic Circuits Yalçın İŞLER islerya@yahoo.com http://me.islerya.com Complexity of Digital Circuits Directly related to the complexity of the algebraic expression we use to

More information

EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley Boolean Function Representations Syntactic: e.g.: CNF, DNF (SOP), Circuit Semantic: e.g.: Truth table, Binary

More information

SAT-Based Area Recovery in Structural Technology Mapping

SAT-Based Area Recovery in Structural Technology Mapping SAT-Based Area Recovery in Structural Technology Mapping Bruno Schmitt Alan Mishchenko Robert Brayton Ecole Polytechnique Federale de Lausanne (EPFL) bruno.schmitt@epfl.ch Department of EECS, UC Berkley

More information

Functional Test Generation for Delay Faults in Combinational Circuits

Functional Test Generation for Delay Faults in Combinational Circuits Functional Test Generation for Delay Faults in Combinational Circuits Irith Pomeranz and Sudhakar M. Reddy + Electrical and Computer Engineering Department University of Iowa Iowa City, IA 52242 Abstract

More information

A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs

A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs Harrys Sidiropoulos, Kostas Siozios and Dimitrios Soudris School of Electrical & Computer Engineering National

More information

Minimization of Multiple-Valued Functions in Post Algebra

Minimization of Multiple-Valued Functions in Post Algebra Minimization of Multiple-Valued Functions in Post Algebra Elena Dubrova Yunjian Jiang Robert Brayton Department of Electronics Dept. of Electrical Engineering and Computer Sciences Royal Institute of Technology

More information

THE technology mapping and synthesis problem for field

THE technology mapping and synthesis problem for field 738 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 17, NO. 9, SEPTEMBER 1998 An Efficient Algorithm for Performance-Optimal FPGA Technology Mapping with Retiming Jason

More information

Field Programmable Gate Arrays

Field Programmable Gate Arrays Chortle: A Technology Mapping Program for Lookup Table-Based Field Programmable Gate Arrays Robert J. Francis, Jonathan Rose, Kevin Chung Department of Electrical Engineering, University of Toronto, Ontario,

More information

Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures

Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures Implementing Logic in FPGA Memory Arrays: Heterogeneous Memory Architectures Steven J.E. Wilton Department of Electrical and Computer Engineering University of British Columbia Vancouver, BC, Canada, V6T

More information

IT 201 Digital System Design Module II Notes

IT 201 Digital System Design Module II Notes IT 201 Digital System Design Module II Notes BOOLEAN OPERATIONS AND EXPRESSIONS Variable, complement, and literal are terms used in Boolean algebra. A variable is a symbol used to represent a logical quantity.

More information

CAD dependent Estimation of Optimal k-value in FSM onto k-lut FPGA mappings, based on standard benchmark networks

CAD dependent Estimation of Optimal k-value in FSM onto k-lut FPGA mappings, based on standard benchmark networks CAD dependent Estimation of Optimal k-value in FSM onto k-lut FPGA mappings, based on standard benchmark networks DOKOUZYANNIS STAVROS 1 ARZOUMANIDIS EFSEVIOS 2 Aristotle University of Thessaloniki Department

More information

Advanced Digital Logic Design EECS 303

Advanced Digital Logic Design EECS 303 Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298 Outline 1. 2. 2 Robert Dick

More information

Simultaneous Depth and Area Minimization in LUT-based FPGA Mapping

Simultaneous Depth and Area Minimization in LUT-based FPGA Mapping Simultaneous Depth and Area Minimization in LUT-based FPGA Mapping Jason Cong and Yean-Yow Hwang Department of Computer Science University of California, Los Angeles, CA 90024 Abstract In this paper, we

More information

Binary Decision Diagrams (BDD)

Binary Decision Diagrams (BDD) Binary Decision Diagrams (BDD) Contents Motivation for Decision diagrams Binary Decision Diagrams ROBDD Effect of Variable Ordering on BDD size BDD operations Encoding state machines Reachability Analysis

More information

Timing-driven optimization using lookahead logic circuits

Timing-driven optimization using lookahead logic circuits Timing-driven optimization using lookahead logic circuits Mihir Choudhury and Kartik Mohanram Department of Electrical and Computer Engineering, Rice University, Houston {mihir,kmram}@rice.edu Abstract

More information

Disjoint Support Decompositions

Disjoint Support Decompositions Chapter 4 Disjoint Support Decompositions We introduce now a new property of logic functions which will be useful to further improve the quality of parameterizations in symbolic simulation. In informal

More information

An Introduction to Zero-Suppressed Binary Decision Diagrams

An Introduction to Zero-Suppressed Binary Decision Diagrams An Introduction to Zero-Suppressed Binary Decision Diagrams Alan Mishchenko Berkeley Verification and Synthesis Research Center Department of Electrical Engineering and Computer Sciences University of

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree

More information

A Fast Reparameterization Procedure

A Fast Reparameterization Procedure A Fast Reparameterization Procedure Niklas Een, Alan Mishchenko {een,alanmi}@eecs.berkeley.edu Berkeley Verification and Synthesis Research Center EECS Department University of California, Berkeley, USA.

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

Boolean Factoring with Multi-Objective Goals

Boolean Factoring with Multi-Objective Goals Boolean Factoring with Multi-Objective Goals Mayler G. A. Martins 1, Leomar Rosa Jr. 1, Anders B. Rasmussen 2, Renato P. Ribas 1 and Andre I. Reis 1 1 PGMICRO - Instituto de Informática UFRGS / 2 Nangate

More information

Review. EECS Components and Design Techniques for Digital Systems. Lec 05 Boolean Logic 9/4-04. Seq. Circuit Behavior. Outline.

Review. EECS Components and Design Techniques for Digital Systems. Lec 05 Boolean Logic 9/4-04. Seq. Circuit Behavior. Outline. Review EECS 150 - Components and Design Techniques for Digital Systems Lec 05 Boolean Logic 94-04 David Culler Electrical Engineering and Computer Sciences University of California, Berkeley Design flow

More information

Node Mergers in the Presence of Don t Cares

Node Mergers in the Presence of Don t Cares Node Mergers in the Presence of Don t Cares Stephen M. Plaza, Kai-hui Chang, Igor L. Markov, Valeria Bertacco EECS Department, University of Michigan, Ann Arbor, MI 48109-2121 {splaza, changkh, imarkov,

More information

Binary Decision Diagrams

Binary Decision Diagrams Logic and roof Hilary 2016 James Worrell Binary Decision Diagrams A propositional formula is determined up to logical equivalence by its truth table. If the formula has n variables then its truth table

More information

Flexible Two-Level Boolean Minimizer BOOM-II and Its Applications

Flexible Two-Level Boolean Minimizer BOOM-II and Its Applications Flexible Two-Level Boolean Minimizer BOOM-II and Its Applications Petr Fišer, Hana Kubátová Czech Technical University Dept. of Computer Science and Engineering, Karlovo nám. 13, 121 35, Prague 2 e-mail:

More information

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis Amit Goel Department of ECE, Carnegie Mellon University, PA. 15213. USA. agoel@ece.cmu.edu Randal E. Bryant Computer

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

Chapter 2 Combinational

Chapter 2 Combinational Computer Engineering 1 (ECE290) Chapter 2 Combinational Logic Circuits Part 2 Circuit Optimization HOANG Trang 2008 Pearson Education, Inc. Overview Part 1 Gate Circuits and Boolean Equations Binary Logic

More information

An Introduction to Zero-Suppressed Binary Decision Diagrams

An Introduction to Zero-Suppressed Binary Decision Diagrams An Introduction to Zero-Suppressed Binary Decision Diagrams Alan Mishchenko Department of Electrical and Computer Engineering Portland State University, Portland, OR 97207, USA alanmi@ee.pdx.edu; http://www.ee.pdx.edu/~alanmi/research.htm

More information

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis ECE 5775 (Fall 17) High-Level Digital Design Automation Binary Decision Diagrams Static Timing Analysis Announcements Start early on Lab 1 (CORDIC design) Fixed-point design should not have usage of DSP48s

More information

Mapping-aware Logic Synthesis with Parallelized Stochastic Optimization

Mapping-aware Logic Synthesis with Parallelized Stochastic Optimization Mapping-aware Logic Synthesis with Parallelized Stochastic Optimization Zhiru Zhang School of ECE, Cornell University September 29, 2017 @ EPFL A Case Study on Digit Recognition bit6 popcount(bit49 digit)

More information