GB2345369A - Implementing logic circuits - Google Patents

Implementing logic circuits Download PDF

Info

Publication number
GB2345369A
GB2345369A GB0008387A GB0008387A GB2345369A GB 2345369 A GB2345369 A GB 2345369A GB 0008387 A GB0008387 A GB 0008387A GB 0008387 A GB0008387 A GB 0008387A GB 2345369 A GB2345369 A GB 2345369A
Authority
GB
United Kingdom
Prior art keywords
circuits
nodes
subnets
programmable logic
look
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0008387A
Other versions
GB0008387D0 (en
GB2345369B (en
Inventor
Alireza S Kaviani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/598,766 external-priority patent/US5841295A/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of GB0008387D0 publication Critical patent/GB0008387D0/en
Publication of GB2345369A publication Critical patent/GB2345369A/en
Application granted granted Critical
Publication of GB2345369B publication Critical patent/GB2345369B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

A programmable monolithic integrated logic circuit includes look up table circuits and programmable logic array-like circuits. The integrated circuit can include a first number of the look up tables and a second number of the programmable logic array-like circuits and where the first and second numbers are related by a ratio of between 0.25:1 and 6:1, between 1:1 and 5:1, or about 4:1. The programmable logic array-like circuits can each include at least 10,000 or 50,000 equivalent two-input NAND gates and the look up tables and the programmable logic array-like circuits can each comprise static random access cells. A method of implementing a logic circuit includes reading a netlist that includes a plurality of subnets, determining the suitablility of ones of the subnets to being implemented with look up tables and with programmable logic array-like circuits, and determining whether to implement each subnet with a look up table or a programmable logic array-like circuit based on results of the step of determining. Based on the steps of determining, the method implements a first subnet of the plurality of subnets with look up table circuits and a second subset of the plurality of subnets with programmable logic array-like circuits.

Description

METHODS OF IMPLEMENTING LOGIC CIRCUITS Field of the Invention This invention relates to methods of implementing logic circuits with field programmable devices.
Background of the Invention Combinational logic functions are basic building blocks of digital electronic circuits. As is well known, any combinational function can be specified as a boolean logic function of its inputs, and this function can be implemented in a logic circuit. By expressing boolean logic. functions in sum of products (SOP) or product of sums (POS) form, it becomes a straightforward task to implement them with two-stage logic circuits (e. g., AND-OR, NAND-NAND, or NOR NOR circuits). These two-stage circuits can be classified as product-term or Pterm-based circuits and can be implemented directly by electrically connecting those logic gates that are required to produce a desired function.
Programmable logic arrays (PLAs) are integrated circuits that can include multiple general-purpose product-term cells, which a designercan configure to implement specific combinational logic circuits. PLAs can be mask-based arrays that are permanently configured during semiconductor processing to form application-specific integrated circuits (ASICs).
Alternatively, they can be field-programmable, which mean's that they can be electrically programmed and reprogrammed with relative ease. Generally, designers configure PLAs by defining current paths within the cells to obtain a product-term circuit that performs a desired logic function (e. g., by closing electrically erasable links). PLAs often use so-called wired-OR or wired-AND configurations to implement their second stages, and larger PLA-based integrated circuits, known as complex programmable logic devices, can include numerous AND-OR PLA based blocks that typically have partially fixed OR planes.
The denser field programmable integrated circuits have generally been field programmable gate arrays (FPGAs), which have employed look-up tables (LUTs) based on static random access memory programming (SRAM) technology instead of product-term architectures.
In LUTs, the input states address an entry in a user-defined table that contains a stored output value that corresponds to those input states for a desired function. Designers can rewrite the data in the table to define different logic functions. Some research has indicated that four or five input LUTs in FPGAs result in the best results in terms of chip area. Using LUTs of different sizes in an integrated circuit has also been proposed.
One important use for FPGAs is in prototyping and ASIC emulation. In addition, FPGAs can also be acceptable substitutes for smaller ASICs. But because FPGAs can have a significant programming overhead, even high capacity field programmable devices tend to be significantly slower and less area-efficient than ASICs. This can limit their usefulness in a variety of situations, particularly where cost and/or speed are significant considerations.
Summarv of the Invention In accordance with the present invention there is provided a method of implementing a logic circuit, including: reading a netlist that includes a plurality of subnets; determining the suitability of ones of the subnets to being implemented with look up tables and with programmable logic array circuits; determining whether to implement each subnet with a look-up table or a programmable logic array circuit based on results of the step of determining; and based on the steps of determining, implementing a first subset of the plurality of subnets with look-up table circuits and a second subset of the plurality of subnets with programmable logic array circuits.
The method can include merging single input pterms in the programmable logic arraylike circuits into one multi-input pterm and separating the subnets into high fan-in subnets and low fan-in subnets. The step of implementing can implement some of the subnets as a combination of look up table circuits and programmable logic array-like circuits. The method can also include repeating the steps of reading, determining the suitability, determining whether to implement, and implementing for a second netlist that includes a certain subnet that is the same as a certain one of the subnets in the first netlist, where the repeated step of implementing implements the certain subnet of the first netlist in a look up table and implements the certain subnet of the second netlist in a programmable logic array-like circuit. Furthermore, the method can also include providing stimulus to the look up table circuits and to the programmable logic array-like circuits and monitoring the response of the look up table circuits and the programmable logic array-like circuits to the stimulus.
This invention is advantageous in that it can permit a large number of logic circuits to be implemented efficiently. And because functions that are not efficiently implemented in one architecture can be implemented using the other, circuitry can occupy less area, consume less power, and/or operate more quickly.
Brief Description of the Drawing Fig. 1 is a simplified block diagram of an integrated circuit according to the invention; Fig. 2 is a simplified block diagram of a LUT circuit block for use in the integrated circuit of Fig. l ; Fig. 3 is a schematic diagram of a PLA-like circuit block for use in the integrated circuit of Fig. 1 ; Figs. 4A, 4B, and 4C show a transformation from a first logic circuit to an equivalent second logic circuit, to illustrate the operation of the additional inversion level of the circuit of Fig. 3; Fig. 5 is a block diagram illustrating a system that can be used to implement a complex logic circuit in an integrated circuit such as the one shown in Fig. I ; Fig. 6 is a flowchart illustrating optimizing, mapping, and 1/0 operations for the system of Fig. 5; Fig. 7 is a node size distribution plot for all combinational nodes in 190 MCNC benchmarks after technology independent optimization, with a first axis being the number of Pterms, a second axis being the number of inputs, and a third axis being the number of nodes; Fig. 8 is a logic plane diagram for the same nodes presented in Fig. 7, plotting the number of Pterms versus the number of inputs for those nodes; Fig. 9 is a node size distribution plot illustrating the number of nodes against the number of Pterms and the number of inputs for the nodes presented in Fig. 7, excluding 5-bounded nodes; Fig. 10 is a node size distribution plot illustrating the number of nodes against the number of Pterms and the number of inputs for the nodes presented in Fig. 7, excluding 4-bounded nodes; and Fig. 11 is a graph illustrating the distribution of the number of nodes against the number of Pterms, excluding 4-bounded nodes for merged and unmerged single-input Pterms.
Detailed Description Referring to Fig. 1, an illustrative integrated circuit 10 in accordance with one aspect of the invention includes an integrated circuit die 12 with a number of input leads or metallizations 14 and several of output leads or metallizations 16. A routing circuit 18 operatively connects the input and output leads to a plurality of programmable logic circuit blocks 20,22. The routing circuit is a programmable distribution circuit that provides signals from the input leads to the logic circuit blocks. It can include programmable crossbar switches, multiplexers, or the like, as is known in the art, and will not be discussed further here, so as not to obfuscate the present invention.
The integrated circuit 10 can be a field programmable part that includes programming circuitry 28 operatively connected between programming leads 24 and the logic circuit blocks 20,22, allowing a designer to program and reprogram the integrated circuit. In an alternative embodiment, the integrated circuit can be a mask-programmable gate array, which has no programming leads. It is further contemplated that at least some of the benefits of the invention would also be applicable to a set of integrated circuits used together, provided that the differing blocks can be distributed evenly (i. e., there are sufficient local interconnections between the blocks to implement the desired types of logic circuits). In one embodiment, the integrated circuit is manufactured using. 35 micron CMOS integrated circuit fabrication techniques and includes on the order of 2,500 programmable logic blocks. Of course, the invention is also applicable to other densities and implementation technologies.
There are two types of logic blocks 20,22 in the integrated circuit 10. The first type of block is a LUT block 20, and the second is a PLA-like block 22. Referring also to Fig. 2, each LUT block includes one or more LUT circuits 26. These LUT circuits each have input lines 30 that are operatively connected between the routing circuit 18 and input lines of an address decoder 32. The address decoder has output lines that are individually operatively connected to select lines of cells in a memory array 34. The memory array has an output line 36 that is operatively connected back to the routing circuit.
Referring to Fig. 3, each PLA-Iike block 22 includes a series of input lines 38, which are each operatively connected between the routing circuit 18 and a respective input line of a series of buffers 40. Each of these buffers has an inverting output line and a non-inverting output line, and both of these output lines are provided to a programmable crossbar switch 42. The crossbar switch includes a series of programmable switches (indicated by crosses in Fig. 3). These switches can operatively connect each of the input lines of the crossbar switch to one or more of its output lines. The output lines of the crossbar switch 42 are each operatively connected to an input line of each of a first series of NAND gates 44.
Each of the NAND gates 44 has an output line that is operatively connected to an input line of a second crossbar switch 46, although two of the NAND gates are operatively connected to the crossbar switch via respective two-input exclusive-OR (XOR) gates 48,50. Each of the XOR gates has a first input line responsive to one of the NAND gates and an output line operatively connected to one of the input lines of the second crossbar switch. A second input line of each of these XOR gates is operatively connected to the programming circuitry 28. In this configuration, the XOR gates act as programmable inverters configured by the programming leads 24. Once programmed, therefore, each of the output lines of the crossbar switch provides a product term for one or more logic functions (Pterm), which can be inverted if that output line is equipped with an XOR gate.
The second crossbar switch 46 is a specially-customized crossbar switch. Some of its input lines are switchably connectable to input lines of a second series of NAND gates 52 by pass transistors (represented by crosses in Fig. 3). Others of its inputs are permanently operatively connected to input lines of the second series of NAND gates 52 (indicated by dots on Fig. 3). And several of the input lines are not connectable to some of the input lines of some of the second stage NAND gates 52 (as represented by lines that simply cross on Fig. 3). The selection of the specific combination of programmable, always connected, and unconnected relationships in the second crossbar switch 46 is dependent upon statistics of the types of circuits likely to be implemented using the PLA-like block 22. Given its performance requirements, techniques for determining relationships for this type of crossbar switch are known in the art.
The term PLA-like block is used to indicate that the block need not include a true, unconstrained PLA, but can also include a partially constrained Pterrn-based circuit.
Each gate in the second series of NAND gates 52 has an output line that is operatively connected to a respective one of a series of second-stage two-input XOR gates 55,56,57, in a manner similar to the XOR gates 48,50 at the output of the'first series of NAND gates 44. These second-stage XOR gates act as programmable inverters configured by the programming leads 24.
A first of the second-stage XOR gates 55 has an output line that is operatively connected both to a first output line 70 of the PLA-like block 22 via a buffer 76, and to a first data input line of a first two-input multiplexer 60. The first two-input multiplexer also has a second data input line that is operatively connected to a global clock signal. The first multiplexer further has an output line that is operatively connected to a first input line of a first flip-flop 66. A second of the second-stage XOR gates 56 has an output line that is operatively connected to a second input line of the first flip-flop. This output line is also operatively connected to a first data input line of a second two-input multiplexer 62. This second multiplexer has a second input line operatively connected to an output line of the first flip-flop, and has an output line operatively connected to a second output line 72 of the PLA-like block via a buffer 77.
A third of the second-stage XOR gates 57 has an output line operatively connected to a first input line of a second flip-flop 68. The output line of this XOR gate is also operatively connected to an input line of a third two-input multiplexer 64. This third multiplexer also has a second input line operatively connected to an output line of the second flip-flop, and an output line operatively connected to a third output line 74 of the PLA-like block 22 via a buffer 78. The first multiplexer 60, the second multiplexer 62, and the third multiplexer 64 each has a separate select input line that is operatively connected to the programming circuitry 28.
The output lines of the first series of the NAND gates 44 are also provided to input lines of a series of inverting buffers 54, although those NAND gates which are operatively connected to the first-stage XOR gates 48,50 are not operatively connected to inverting buffers in this series. The output lines of the inverting buffers and of the two XOR gates can be provided to further special-purpose crossbar switches in further PLA-like blocks. This architecture can accommodate Pterms that are too wide for a single PLA-like block.
In one embodiment, each LUT block 20 includes four four-bit LUTs, and the area of the integrated circuit 10 is divided roughly evenly between LUT blocks and PLA-like blocks 22 of equal size and shape (i. e., there are four times as many LUTs as PLA-like blocks). Other ratios are possible, and it is contemplated that ratios between. 25: 1 and 6: 1 will be particularly well suited to most applications, and that many circuits could be implemented using a ratio of between 1 : 1 and 1: 5.
The second-stage NAND gates 55,56,57 in the PLA-like blocks can be actual logic gates, instead of wired gates. Although this may reduce the density of the integrated circuit, it may also reduce its overall static power consumption. As a result, the ultimate capacity achieved with this architecture may be higher in practice than if wired gate topology were to be used, because limits on static power dissipation will not be exceeded.
Other approaches can be used to reduce static power consumption and thereby achieve optimum density. One of these, which has been termed"domino logic,"bears some similarity to wired-or logic, but relies on precharging a node instead of having a device pull the node up or down, and this approach therefore consumes less static power.
The integrated circuit 10 according to this embodiment is built entirely with SRAM technology. Each LUT block 20 includes a bank of SRAM cells to store logic function state information, and each PLA-like block 22 employs SRAM cells to hold control signals for its pass transistors. It is also possible to use electrically erasable links either alone or in connection with SRAM cells to make a non-volatile version of the integrated circuit.
The PLA-like blocks in this embodiment have 16 inputs, provide for ten Pterms and three outputs, as illustrated generally in Fig. 3. Outputs of the inverting buffers 54 in a subset of the PLA-like blocks are provided to three other PLA-like blocks. This particular PLA-like block architecture was based on an analysis of 190 of the 1993 Microcircuits Institute of North Carolina (MCNC) logic synthesis benchmarks with consideration to the area it required to implement them. Of course, variations of this architecture are possible, and some architectures may be more suited to implementing different types of circuits. It may also be possible to develop an architecture that employs different sizes of LUT and/or PLA-like blocks in the same i integrated circuit. Furthermore, it may be desirable ts develop a family of integrated circuits that provides different architectures and/or mixtures of LUT and PLA-like blocks. Of course, the LUT and PLA-like blocks can also be combined on a single integrated circuit with other digital or analog circuitry.
In operation, referring to Fig. 5, a designer first specifies desired parameters for a logic circuit, using for example, a computer-aided design (CAD) workstation 80. Once the designer is satisfied with the specification of the circuit, he provides it in the form of a netlist 82 to a mapper 84 via an optimizer 83. In particular embodiments, the netlist can be expressed in Verilog or EDIF formats, although other formats could be used instead.
The optimizer 83 and the mapper 84 can be implemented with a special purpose circuit, or with a programmed general-purpose computer, and they can advantageously be designed to run on the CAD workstation 80. The mapper provides as its output a list of programming data that indicates how the integrated circuit 10 needs to be programmed in order to implement the netlist circuitry. It is contemplated that the programming information will be used to program one or more field programmable integrated circuits such as the one shown in Fig. I, although it is also possible to use the programming information in semiconductor processing operations to obtain permanently configured mask-based versions of the netlist circuitry.
Input/output circuitry 86 receives the programming information from the mapper and transforms it into programming signals, which it then provides to the programming leads 24 of the integrated circuit 10. The input-output circuitry may simply operate to program the logic array, or it can be part of an ASIC development system, which can also provide simulated operating signals (stimulus) to the integrated circuit and detect outputs resulting from this stimulus (response). In such systems, the stimulus can be provided from the workstation 80, and the resulting response can be returned, where it can be displayed to the user, or further processed.
Referring to Fig. 6, after reading in the netlist (step 100), the optimizer 83 performs a technology independent optimization on the netlist (step 102). This optimization includes several operations that optimize the netlist without changing its function. This optimization can be performed by one run of a standard technology independent optimization entitled script. rugged, which has been provided along with SIS (Sequential Interactive Synthesis) and uses various known methods of optimizing combinational circuits.
After optimization, the mapper 84 evaluates the subnets (or nodes) in the netlist to determine their suitability for implementation with lookup table blocks and their suitability for implementation with PLA-like blocks (step 104). The mapper then selects which subnets should be implemented in lookup table blocks and which subnets should be implemented as PLA-like blocks (step 106). This selection is performed with regard to minimizing the area occupied by the implemented netlist, the speed at which the implemented netlist will operate, or both.
Generally, subnets that have fewer or equal numbers of inputs as do the LUT blocks are implemented in LUT blocks, and smaller subnets may even share LUT blocks. Subnets with larger numbers of inputs are typically implemented in PLA-like blocks, especiallv if they do not require a large number of Pterms. Subnets having large numbers of inputs and large numbers of Pterms can be implemented with more than one LUT block or PLA-like block or a combination of both.
In one embodiment that strives to minimize the amount of integrated circuit area occupied by the netlist, the mapper 84 first breaks the results of technology independent optimization into high fan-in nodes and low fan-in nodes. High fan-in nodes are those that have more inputs than the LUT blocks (e. g., four), while low fan-in nodes have this number of inputs or less. During this process, the mapper partitions High fan-in nodes that have too many inputs to fit in a single PLA-like block (e. g., 16) into two or more blocks. The mapper then stores high fan-in nodes and low fan-in nodes in repetitive ones of a pair of sorted linked lists. The linked lists order the nodes according to the product of the number of Pterms by the number of inputs for each node.
Once the linked lists are complete, the mapper allocates the nodes that have the highest product values in the high fan-in list to PLA-like blocks, and prepares lists of switch states for these blocks. The mapper processes the lists in order from highest to lowest product values, and in so doing, it attempts to pack more than one of the high fan-in nodes into individual PLA-like blocks if possible. If the mapper runs out of PLA-like blocks before the high fan-in list is exhausted, it begins implementing the nodes in LUT--blocks. Although one might expect that this process would always result in poor space efficiency, iri practice it generally tends not to, as the nodes at the end of the list often do not need a large number of LUT blocks. For example, single Pterm nodes decompose easily, and using Shannon's theorem allows nodes that have one more input than do the LUT blocks (e. g., five) to fit 2.5 LUT blocks After the mapper 84 has processed all of the high fan-in nodes, it begins to prepare LUT values for the low fan-in nodes. As with the high fan-in nodes, the mapper can attempt to pack more than one low fan-in node into a LUT block 20. In addition, the mapper can merge some nodes with others to make compound nodes that are more efficiently implemented.
One of skill in the art would be able to make a variety of modifications to the mapping procedure. For example, it may be desirable to optimize the mapping procedure to yield a circuit that operates quickly, but may not always provide the most efficient implementation.
Furthermore, in applications such as ASIC verification, it may be quite important for the mapper to process nodes quickly, even if the resulting node implementations are less than optimal.
An analysis of the node sizes in benchmark circuits indicates that most larger circuits include three categories of subnets. The first category is best suited to implementation with LUTs, a second category is best suited to implementation with PLA or PLA-like circuits, and a third category is relatively well suited to implementation with either type of block. Studies of the statistics of a variety of benchmarks tends to show that most logic circuits that have a gate density of over 10, 000 four-transistor NAND gate equivalents exhibit this breakdown, and this effect appears to be even more pronounced at densities of 25,000 or 50,000 or more. For this reason, it is possible to implement a variety of different circuits of these sizes using an integrated circuit with a fixed ratio of LUT blocks to PLA-like blocks.
The statistical analysis used in developing the hybrid architecture presented above may be understood in more detail from the following discussion. Any digital circuit can be represented as a Directed Acyclic Graph (DAG) that consists of combinational and sequential nodes. Each combinational node of the circuit then can be represented in SOP form. As the first step toward defining the hybrid architecture, it is useful to examine the combinational nodes present in real circuit, and produce a distribution of nodes with respect to size. The size of a node is defined according to two parameters: 1) the number of inputs to-the node, and 2) the number of Pterms in the sum of products representation of that node. The circuits used in one instance are from one 1993 MCNC logic synthesis benchmark suite, but, of course, others could be used instead. Fig. 7 shows the distribution of node sizes for all combinational nodes in 190 MCNC benchmarks after technology independent optimization. In total, the benchmarks comprise 36304 combinational nodes. As shown in Figure 7 it is apparent that the majority of nodes are small. A closer examination reveals that more than 70% are 4-bounded and roughly 20% of the nodes have fanin equal or greater than six; these latter nodes will be referred to as highfanin nodes.
The goal is to implement the nodes in Fig. 7 in two types of logic resources: PLA-based cells, and LUTs. For a LUT with K inputs, the area of the cell is proportional to 2K. For a PLAbased cell, the cell area is approximately proportional to K. Note that for K=4, 2K = K2, but for K < 4 LUTs should be more efficient than PLA-based cells. Therefore 4-bounded nodes can be efficiently implemented using LUTs. This accounts for the majority of the nodes in circuits, but there is still a significant number of nodes with high fanin. These nodes could also be implemented using 4-LUTs, but the area required would be large. From Fig. 7, we can observe that most high fanin nodes do not require a large number of Pterms. This implies that these nodes are well suited for implementation in PLA-based cells.
The concept of suitability of nodes of different sizes in either LUTs or PLAs is illustrated in Fig. 8, which shows the distribution of all combinational nodes in the logic plane. Each dot in the figure represents combinational nodes of a specific size, but the number of nodes of each size is not shown. In Fig. 8, the nodes that lie in the lightly shaded rectangle efficiently fit into 4 LUTs. Similarly, PLAs are more attractive for implementing the nodes that lie in the heavily shaded box. Nodes that do not lie in either of these areas could be implemented using either LUTs or PLAs, but the cost is expected to be relatively high. If both PLAs and LUTs are available in an FPGA architecture, a boot-like area of the logic plane is naturally supported, as indicated by the bold curve in Fig. 8. By covering a wider area of the logic plane, the overall cost of the implementation of most of the circuits decreases.
Since 4-bounded nodes will be implemented n 4-LUT blocks, the PLA-like blocks should be designed in such a way that they are well-matched for implementation of nodes with more than four inputs. Also, it has been observed that many 5-input nodes are simple ORs or ANDs ; these nodes can easily be decomposed and realized in 4-LUTs. It is not desirable that the nodes that are to be implemented in LUTs affect the PLA-like block architecture. Fig. 9 shows the node size distribution, in terms of number of Pterms and number of inputs, for all MCNC Benchmarks, excluding 5-bounded nodes. With reference to the figure, there is a peak at nine Pterms, with some larger nodes and many smaller ones. To observe the effects of 5-input nodes, Fig. 10 shows the same information, except that only 4-bounded nodes are excluded. Now, there is a new peak at 3 Pterms ; it appears that the number of 5-input nodes is significant and may strongly affect the analysis. Because the effects of 5-input nodes is pronounced and since many of these nodes are suitable for LUTs, it is possible to exclude them when designing the PLA-like architecture. Similar statements can also be made for nodes with higher fanin, but the effects would be less important because there tend to be fewer of these high fanin nodes. It is also possible to exclude only obviously decomposable 5-input and high fanin nodes (which are nodes with only one Pterm). A summary of statistics of node sizes excluding nodes with various numbers of inputs is presented in Table 1.
Excluding K-bounded Inputs Pterms InputslPterms Pterms InputslPterms nodes ( ,#) ( ,#) ( ,#) (filtered) (filtered) (p, cy) (S a) K=6 (12. 5,6.56) (9. 32, 7.29) (t. 55, 1. 02) (6. 64,7.48) (1. 81, 1. 32) K=5 (11. 57, 6.48) (8.47,7.08) (t. 61, 1. 01) (6.25,7) (1. 77, 1. 21) K=4 (10. 04,6.32) (7. 23,6.62) (1. 68, 1. 03) (5.53,6.3) (1. 7, 1. 07) K=3 (8-59, 6.09) (6.02,6.17) (1. 78, 1. 01) (4.89,5.62) (1. 62,0.94) K=2 (6.35,5.45) (4.36,5.21) (1. 83, 0. 94) (3.77,4.58) (1. 5, 0.76) K=l (4.54,4.69) (3. 12, 4.26) (1. 74, 0. 79) (2.96,3.65) (1. 29,0.66) K=0 (4.46, 4.66) (3.07, 4.22) (1. 72,0.79) (2. 91, 3. 62) (1. 29,0.66) There are three statistical parameters that affect the PLA-like blocks : 1) the average number of inputs, 2) the average number of Pterms and 3) the ratio of the number of inputs to the number of Pterms for each combinational node. Table I gives the mean and variance, (Il, a), of these parameters. Each row of the table corresponds to a specific value of K and shows the statistical data excluding K-bounded nodes. Also, under the columns denoted"filtered" additional nodes are excluded, according to the following assumptions: first, all single-input Pterms in a node are merged into one multi-term Pterm. This is based on an observation that in the SOP form of high fanin nodes there are many Pterms with only one input. These single-input Pterms can be merged into one, with almost no extra cost for the PLA-like architecture. The second assumption is that nodes that are single Pterms (i. e. ANDs, ORs) are excluded. There are many combinational nodes with only one Pterm. Since these nodes are decomposable, LUTs are as good as a PLA-Iike block for their implementation, so they should be excluded from the data that affect the PLA-like architecture.
Table 1 serves as a guide for designing the PLA-like block architecture. In using 4-LUTs it is reasonable to base the PLA-like block on the K = 4 row of the table, but for reasons discussed earlier, it is more appropriate to use the filtered columns. Thus the PLA-like block should be designed to suit the parameters shown in the shaded boxes. It was decided that 5 for the number of Pterms and 1.6 for the ratio of the number of inputs to the number of Pterms are the closest practical values to the averages shown in the shaded cells.
Referring now to Figs. 3-5, the XOR gates 48,50 at the output of the first stage permit the integrated circuit 10 to implement logic circuitry more densely. In particular, the AND-OR form 76 shown in Fig. 4A is equivalent to the NAND-NAND form 77 shown in Fig. 4B, and these are both equivalent to the modified form 78 shown in Fig. 4C. The modified form reduces the number of Pterms from 5 to 3, by providing an extra inversion 79. The use of this merging operation was found to decrease the number of Pterms in the 190 observed MCNC. benchmarks by approximately 25 per cent on average. Providing the first stage XOR gates 48,50 in the PLAlike blocks 22 can therefore reduce the logic resources necessary to implement circuits, leading to better area efficiency.
This feature of the PLA-like block is motivated by the filtered columns in Table I, and its effects on the distribution of node sizes is shown in F4g. 11, which provides the distribution of the number of Pterms after merging. The Pterm distribution in Fig. 10 is repeated in Fig. 1 I to facilitate a comparison between the two.
The present invention has now been described in connection with a number of specific embodiments thereof. However, numerous modifications which are contemplated as falling within the scope of the present invention should now be apparent to those skilled in the art.
Therefore, it is intended that the scope of the present invention be limited only by the scope of the claims appended hereto.
What is claimed is:

Claims (5)

  1. CLAIMS: 1. A method of implementing a logic circuit, including: reading a netlist that includes a plurality of subnets; determining the suitability of ones of the subnets to being implemented with look up tables and with programmable logic array circuits; determining whether to implement each subnet with a look-up table or a programmable logic array circuit based on results of the step of determining ; and based on the steps of determining, implementing a first subset of the plurality of subnets with look-up table circuits and a second subset of the plurality of subnets with programmable logic array circuits.
  2. 2. A method as claimed in claim 1, further comprising repeating the steps of reading, determining the suitability, determining whether to implement, and implementing for a second netlist that includes a certain subnet that is the same as a certain one of the subnets in the first netlist, wherein the repeated step of implementing implements the certain subnet of the first netlist in a look-up table and implements the certain subnet of the second netlist in a programmable logic array circuit.
  3. 3. A method as claimed in claim 1 or claim 2, further comprising the step of merging single input pterms in the programmable logic array circuits into one multi-input pterm.
  4. 4. A method as claimed in any preceding claim, further comprising the step of separating the subnets into high fan-in subnets and low fan-in subnets.
  5. 5. A method as claimed in any preceding claim, wherein the step of implementing implements some of the subnets as a combination of look-up table circuits and programmable logic array circuits.
GB0008387A 1996-02-09 1997-01-17 Methods of implementing logic circuits Expired - Fee Related GB2345369B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/598,766 US5841295A (en) 1996-02-09 1996-02-09 Hybrid programmable logic device
GB9700952A GB2310064B (en) 1996-02-09 1997-01-17 Hybrid programmable logic device

Publications (3)

Publication Number Publication Date
GB0008387D0 GB0008387D0 (en) 2000-05-24
GB2345369A true GB2345369A (en) 2000-07-05
GB2345369B GB2345369B (en) 2000-08-09

Family

ID=26310817

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0008387A Expired - Fee Related GB2345369B (en) 1996-02-09 1997-01-17 Methods of implementing logic circuits

Country Status (1)

Country Link
GB (1) GB2345369B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836648B2 (en) 2002-05-03 2010-11-23 Faus Group Flooring system having complementary sub-panels
US7836649B2 (en) 2002-05-03 2010-11-23 Faus Group, Inc. Flooring system having microbevels
US8112958B2 (en) 2002-05-03 2012-02-14 Faus Group Flooring system having complementary sub-panels
US8181407B2 (en) 2002-05-03 2012-05-22 Faus Group Flooring system having sub-panels
US8209928B2 (en) 1999-12-13 2012-07-03 Faus Group Embossed-in-registration flooring system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305528A (en) * 1995-09-26 1997-04-09 Altera Corp Implementing logic in auxiliary components associated with programmable logic array devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305528A (en) * 1995-09-26 1997-04-09 Altera Corp Implementing logic in auxiliary components associated with programmable logic array devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209928B2 (en) 1999-12-13 2012-07-03 Faus Group Embossed-in-registration flooring system
US7836648B2 (en) 2002-05-03 2010-11-23 Faus Group Flooring system having complementary sub-panels
US7836649B2 (en) 2002-05-03 2010-11-23 Faus Group, Inc. Flooring system having microbevels
US8112958B2 (en) 2002-05-03 2012-02-14 Faus Group Flooring system having complementary sub-panels
US8181407B2 (en) 2002-05-03 2012-05-22 Faus Group Flooring system having sub-panels

Also Published As

Publication number Publication date
GB0008387D0 (en) 2000-05-24
GB2345369B (en) 2000-08-09

Similar Documents

Publication Publication Date Title
US5841295A (en) Hybrid programmable logic device
Kocan et al. Logic modules with shared SRAM tables for field-programmable gate arrays
US6191610B1 (en) Method for implementing large multiplexers with FPGA lookup tables
Shackleford et al. A high-performance, pipelined, FPGA-based genetic algorithm machine
Singh et al. PITIA: an FPGA for throughput-intensive applications
USRE43378E1 (en) Mapping of programmable logic devices
Bozorgzadeh et al. RPack: routability-driven packing for cluster-based FPGAs
US5119314A (en) Semiconductor integrated circuit device
US6201409B1 (en) High performance product term based carry chain scheme
US6603332B2 (en) Configurable logic block for PLD with logic gate for combining output with another configurable logic block
US7890910B1 (en) Programmable logic device having logic elements with dedicated hardware to configure look up tables as registers
US20060005090A1 (en) Compare, select, sort, and median-filter apparatus in programmable logic devices and associated methods
JPH08510885A (en) Field programmable logic device that dynamically interconnects to a dynamic logic core
US6505337B1 (en) Method for implementing large multiplexers with FPGA lookup tables
US20080074142A1 (en) Routing for Microprocessor Busses
Lin et al. A fine-grain dynamically reconfigurable architecture aimed at reducing the FPGA-ASIC gaps
GB2345369A (en) Implementing logic circuits
Wilton Heterogeneous technology mapping for area reduction in FPGAs with embedded memory arrays
US6754686B1 (en) Literal sharing method for fast sum-of-products logic
Asghar et al. Exploring shared SRAM tables among NPN equivalent large LUTs in SRAM-based FPGAs
US6804812B2 (en) Depopulated programmable logic array
US20070046324A1 (en) Sharing a static random-access memory (SRAM) table betweeen two or more lookup tables (LUTs) that are equivalent to each other
Ye et al. Using multi-bit logic blocks and automated packing to improve field-programmable gate array density for implementing datapath circuits
Kaviani Novel architectures and synthesis methods for high capacity field programmable devices.
US7131090B2 (en) Clocked gating based on measured performance

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)
PCNP Patent ceased through non-payment of renewal fee