Synthesis Method for Field Programmable Gate Arrays

Synthesis Method for Field Programmable Gate Arrays

Synthesis Methods for Field Programmable Gate Arrays ALBERT0 SANGIOVANNI-VINCENTELLI,FELLOW, IEEE, ABBAS EL GAMAL, SENIOR MEMBER, IEEE, AND JONATHAN ROSE, MEMBER, IEEE Invited Paper Field programmable gate arrays (FPGA ’s) reduce the turn- The complexity of field programmable gate array (FPGA) around time of application-spec@c integrated circuits from weeks architectures makes manual mapping of designs too difficult to minutes. However, the high complexity of their architectures and time consuming. Indeed the reduction in turnaround makes manual mapping of designs time consuming and error prone thereby offsetting any turnaround advantage. Consequently, time due to the user programmability of an FPGA may be effective design automation tools are needed to reduce design offset by the time spent to map a design manually. As a time. Among the most important is logic synthesis. While standard result much work has been focused recently on developing synthesis techniques could be used for FPGA’s, the quality of synthesis tools targeted to different FPGA architectures. the synthesized designs is often unacceptable. As a result, much Such tools are now yielding good results and becoming recent work has been devoted to developing logic synthesis tools targeted to different FPGA architectures. The paper surveys this commercially viable. work. The three most popular types of FPGA architectures are The most straightforward approach to synthesis for considered, namely those using logic blocks based on lookup- FPGA’s is to adapt the synthesis tools developed for MPGA tables, multiplexers and wide AND/OR arrays. The emphasis is libraries to FPGA’s. A design is first mapped into simple on tools which attempt to minimize the area of the combinational logic part of a design since little work has been done on optimizing gates (such as two input NAND gates), and groups of performance or routability, or on synthesis of the sequential part of simple gates are then replaced by logic blocks of the target a design. The different tools surveyed are compared using a suite FPGA. This approach works well for FPGA’s with fine- of benchmark designs. grain blocks such as those from Algotronix, Concurrent Logic, Plessey and Toshiba, since a fine-grain block can I. INTRODUCTION only implement one or two simple gates. However, for the more widely used FPGA’s with coarse-grain logic Synthesis tools that automatically map a design com- blocks such as those from Actel, Altera, and Xilinx, this posed of simple gates or described with a hardware de- approach does not in general yield acceptable results. A scription language (HDL) into gates from a given library more promising but challenging approach is to map the are becoming widely used. Besides simplifying the design design directly into logic blocks. Recently developed FPGA process and reducing design time, these tools have had a synthesis tools employ both the library mapping approach major impact on the design methodology for application- as well as the direct mapping approach. specific integrated circuits (ASIC’s), allowing designers to In this paper we review the recently developed methods select easily among different implementation options, such for FPGA synthesis. Even though there is much interest as between a standard cell and a mask programmable gate in sequential synthesis for FPGA’s, no paper dealing with array (MPGA) or among different ASIC vendors, based on this topic has been published to date (we are aware of accurate estimates of performance and area,. some work that has been submitted for publication [36], [51]). Moreover, most of the developed methods optimize Manuscript received March 23, 1993. area of a design and only a few optimize performance A. El Gama1 is with the Depratment of Electrical Engineering, Stanford explicitly. We, therefore, focus our review on combinational University, Stanford, CA 94305. J. Rose is with the Department of Electrical Engineering, University of synthesis for FPGA’s where the registers in the design Toronto, IO King’s College Road, Toronto, Ontario M5S 1A4, Canada. are explicitly specified by the designer and devote most A. Sangiovanni-Vincentelli is with the Department of Electrical Engi- of the discussion to synthesis methods that optimize area. neering and Computer Science, University of Califomia, Berkeley, CA 94720. Since fine-grain FPGA’s do not present new challenges to IEEE Log Number 9210743. synthesis algorithms we only describe work on synthesis 0018-9219/93$03.00 0 1993 IEEE PROCEEDINGS OF THE IEEE. VOL. 81. NO. 7. JULY 1993 1057 for coarse-grain FPGA’s such as those from Actel, Altera, Thus for example, a+b, (a+b)(c+(e‘( f +g’))), where e’, g’ and Xilinx, denote the complement of the variables e,g, are factored The paper is organized as follows. Basic definitions are forms. given in Section 11. In Section 111 we review the most An important characteristic of factored forms is that they effective of the known logic minimization and synthesis may be thought of as representing both a function and its methods. In Section IV we review several approaches to complement, since, by De Morgan’s laws, the factored form logic synthesis for FPGA’s with “look-up table” logic of the complement of a function can be simply obtained blocks such as Xilinx’s. In Section V we present a similar from the factored form of the function by interchanging the discussion but for FPGA’s with multiplexer-based logic logic addition and the logic product operations as well as block such as Actel’s. In Section VI we briefly discuss the phases of the variables. Note that in contrast the sum- synthesis for FPGA’s with PLA-based logic blocks. of-products form of the complement of a function can be drastically different from the sum-of-product form of the 11. BASIC DEFINITIONS function. A logic or Boolean variable x takes on one of two values A binary decision diagram (BDD) is a simple yet efficient 0 and 1. Denote by x’ the complement of the variable 5. representation of a completely specified logic function. Both x and x’ are referred to as literals. BDD’s were proposed many years ago by Akers but their A Boolean function f : {O,l}n -+ (0, l} is a binary use in logic manipulations has only recently been made function of logic variables. It is often convenient to repre- practical and effective by Bryant [lo]. A BDD is a directed sent the n-dimensional Boolean space by an n-dimensional acyclic graph (DAG) where a logic function is associated Boolean hypercube. A Boolean hypercube of dimension n with each node. The completely specified logic function f contains 2” vertices. The set of vertices of the hypercube represented by the BDD is associated with the root node. where the function takes on the value 1 is referred to as Every node has two fan-out nodes representing the function the on-set and the set of vertices where the function takes obtained by cofactoring the logic function represented at on the value 0 is referred to as the off-set. At times the the node with respect to a variable and its complement. value of a logic function is not specified for a set of the This variable indexes the node. Let x be the variable vertices. In this case, the function is said to be incompletely indexing node i and fi the function associated with this spec$ed and the unspecified set of vertices is referred to node. The high-node corresponds to the cofactor fix, and as the don’t-care-set or dc-set. The rest of the vertices (i.e., the low-node corresponds to f;,,. The leaf nodes are the the on-set and the off-set) constitute the care-set. The set of constant functions 0 and 1. Note that this representation inputs on which a function is explicitly defined is referred has an exponential number of nodes and is canonical in to as its support. In the remainder of the paper we refer to the sense that given a logic function and an ordering of an incompletely specified logic function simply as a logic the variables corresponding to the sequence of cofactoring function unless otherwise stated. operations along a path from the root to the leaf nodes, A cube of a logic function f is a logic function given by the representation is unique. In fact this representation is the product of literals whose on-set does not have vertices equivalent to the truth table representation of the function. in the off-set of f. The origin of this name rests on the As such it is not too interesting. However, if the nodes fact that a product of IC literals corresponds to a Boolean associated with the same logic function are merged, the hypercube of dimension n - IC in the Boolean space of complexity of the representation can be reduced. The re- dimension n. A minterm is a cube where all the variables sulting BDD is referred to as reduced BDD or RBDD. The are assigned a value 0 or 1. This cube is of dimension 0, number of nodes in an RBDD can be dramatically lower and contains only one vertex. than for the unreduced BDD. This fact makes RBDD’s The Shannon cofactor or simply the cofactor of a logic quite appealing for a number of applications. A further function f with respect to a variable :E, denoted by fx, is useful simplification of RBDD’s, proposed by Bryant, is the logic function obtained from f by setting the variable to choose the ordering of the variable for all paths from the z to the constant value 1.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us