Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS5726586 A
Publication typeGrant
Application numberUS 08/744,225
Publication dateMar 10, 1998
Filing dateNov 5, 1996
Priority dateMar 6, 1991
Fee statusPaid
Also published asUS5122685, US5396127, US5430390, US5594364, US5986468, US6078191, WO1992016053A1
Publication number08744225, 744225, US 5726586 A, US 5726586A, US-A-5726586, US5726586 A, US5726586A
InventorsAndrew K. Chan, John M. Birkner, Hua-Thye Chua
Original AssigneeQuicklogic Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Programmable application specific integrated circuit and logic cell therefor
US 5726586 A
Abstract
A field programmable gate array includes a programmable routing network, a programmable configuration network integrated with the programmable routing network; and a logic cell integrated with the programmable configuration network. The logic cell includes four two-input AND gates, two six-input AND gates, three multiplexers, and a delay flipflop. The logic cell is a powerful general purpose universal logic building block suitable for implementing most TTL and gate array macrolibrary functions. A considerable variety of functions are realizable with one cell delay, including combinational logic functions as wide as thirteen inputs, all boolean transfer functions for up to three inputs, and sequential flipflop functions such as T, JK and count with carry-in.
Images(9)
Previous page
Next page
Claims(13)
What is claimed is:
1. A field programmable gate array comprising:
an interconnect structure comprising a plurality of conductors and a plurality of antifuses, the antifuses being programmable to connect selected ones of the plurality of conductors; and
a plurality of logic cells, each of the logic cells comprising:
a first gate having a first input lead, a second input lead, and an output lead;
a second gate having a first input lead, a second input lead, and an output lead;
a first multiplexer having a first data input lead coupled to the output lead of the first gate, a second data input lead coupled to the output lead of the second gate, a select input lead and an output lead;
a third gate having a first input lead, a second input lead, and an output lead;
a fourth gate having a first input lead, a second input lead, and an output lead;
a second multiplexer having a first data input lead coupled to the output lead of the third gate, a second data input lead coupled to the output lead of the fourth gate, a select input lead and an output lead;
a third multiplexer having a first data input lead, a second data input lead, a select input lead and an output lead, the first data input lead of the third multiplexer being coupled to the output lead of the first multiplexer, the second data input lead of the third multiplexer being coupled to the output lead of the second multiplexer;
a fifth gate having a first input lead, a second input lead, a third input lead, and an output lead, the output lead of the fifth gate being coupled to the select input lead of the third multiplexer; and
a sixth gate having an output lead coupled to the select input lead of the first multiplexer and to the select input lead of the second multiplexer.
2. The field programmable gate array of claim 1, wherein the first gate comprises a first two-input NAND gate, an output lead of the first two-input NAND gate being coupled to the first data input lead of the first multiplexer by an inverter, the second gate comprises a second two-input NAND gate, an output lead of the second two-input NAND gate being coupled to the second data input lead of the first multiplexer by an inverter, the third gate comprises a third two-input NAND gate, an output lead of the third two-input NAND gate being coupled to the first data input lead of the second multiplexer by an inverter, the fourth gate comprises a fourth two-input NAND gate, an output lead of the fourth two-input NAND gate being coupled to the second data input lead of the second multiplexer by an inverter.
3. The field programmable gate array of claim 1, wherein the fifth gate comprises a NAND gate, an output lead of the NAND gate being coupled to the select input lead of the third multiplexer by an inverter.
4. The field programmable gate array of claim 1, wherein the fifth gate comprises a NAND gate and another gate, the other gate having an output lead which is coupled to an input lead of the NAND gate, and wherein each of the first, second, third and fourth gates comprises a NAND gate.
5. The field programmable gate array of claim 4, wherein the other gate is a NOR gate.
6. A field programmable gate array comprising:
an interconnect structure comprising a plurality of conductors and a plurality of antifuses, the antifuses being programmable to connect selected ones of the plurality of conductors; and
a plurality of logic cells, each of the logic cells comprising:
a first gate having a first input lead, a second input lead, and an output lead;
a second gate having a first input lead, a second input lead, and an output lead;
a first multiplexer having a first data input lead coupled to the output lead of the first gate, a second data input lead coupled to the output lead of the second gate, a select input lead and an output lead;
a third gate having a first input lead, a second input lead, and an output lead;
a fourth gate having a first input lead, a second input lead, and an output lead;
a second multiplexer having a first data input lead coupled to the output lead of the third gate, a second data input lead coupled to the output lead of the fourth gate, a select input lead and an output lead;
a third multiplexer having a first data input lead, a second data input lead, a select input lead and an output lead, the first data input lead of the third multiplexer being coupled to the output lead of the first multiplexer, the second data input lead of the third multiplexer being coupled to the output lead of the second multiplexer;
a fifth gate having a first input lead, a second input lead, a third input lead, and an output lead, the output lead of the fifth gate being coupled to the select input lead of the third multiplexer;
a sixth gate having an output lead coupled to the select input lead of the first multiplexer and to the select input lead of the second multiplexer; and
a sequential logic element having a data input lead coupled to the output lead of the third multiplexer, the sequential logic element also having a clear input lead, the clear input lead not being coupled to any input lead of the fifth gate and not being coupled to any input lead of the sixth gate such that the sequential logic element can be cleared without restricting the digital values which can be present on the input leads of the fifth and sixth gates.
7. The field programmable gate array of claim 6, wherein the fifth gate comprises a NAND gate and another gate, the other gate having an output lead which is coupled to an input lead of the NAND gate, and wherein each of the first, second, third and fourth gates comprises a NAND gate.
8. The field programmable gate array of claim 7, wherein the other gate is a NOR gate.
9. The field programmable gate array of claim 6, wherein the sequential logic element can have one of two states, and wherein placing a predetermined digital value on the clear input lead of the sequential logic element forces the sequential logic element into a predetermined one of the states regardless of a digital value present on the data input lead of the sequential logic element.
10. The field programmable gate array of claim 9, wherein the fifth gate comprises a NAND gate and another gate, the other gate having an output lead which is coupled to an input lead of the NAND gate, and wherein each of the first, second, third and fourth gates comprises a NAND gate.
11. The field programmable gate array of claim 10, wherein the other gate is a NOR gate.
12. A field programmable gate array comprising:
an interconnect structure comprising a plurality of conductors and a plurality of antifuses, the antifuses being programmable to connect selected ones of the plurality of conductors; and
a plurality of logic cells, each of the logic cells comprising:
a first gate having a first input lead, a second input lead, and an output lead;
a second gate having a first input lead, a second input lead, and an output lead;
a first transistor having a first electrode, a second electrode and a control electrode, the first electrode of the first transistor being coupled to the output lead of the first gate;
a second transistor having a first electrode, a second electrode and a control electrode, the first electrode of the second transistor being coupled to the output lead of the second gate, the second electrode of the second transistor being coupled to the second electrode of the first transistor;
a third gate having a first input lead, a second input lead, and an output lead;
a fourth gate having a first input lead, a second input lead, and an output lead;
a third transistor having a first electrode, a second electrode and a control electrode, the first electrode of the third transistor being coupled to the output lead of the third gate, the control electrode of the third transistor being coupled to the control electrode of the first transistor;
a fourth transistor having a first electrode, a second electrode and a control electrode, the first electrode of the fourth transistor being coupled to the output lead of the fourth gate, the second electrode of the fourth transistor being coupled to the second electrode of the third transistor, the control electrode of the fourth transistor being coupled to the control electrode of the second transistor;
a fifth gate having a first input lead, a second input lead, a third input lead, and an output lead, the output lead of the fifth gate being coupled to the control electrode of the first transistor;
a first inverter having an input lead and an output lead, the input lead of the first inverter being coupled to the control electrode of the first transistor, the output lead of the first inverter being coupled to the control electrode of the second transistor;
a fifth transistor having a first electrode, a second electrode, and a control electrode, the first electrode of the fifth transistor being coupled to the second electrode of the first transistor;
a sixth transistor having a first electrode, a second electrode, and a control electrode, the first electrode of the sixth transistor being coupled to the second electrode of the third transistor, the second electrode of the sixth transistor being coupled to the second electrode of the fifth transistor;
a sixth gate having a first input lead, a second input lead, a third input lead, and an output lead, the output lead of the sixth gate being coupled to the control electrode of the fifth transistor;
a second inverter having an input lead and an output lead, the input lead of the second inverter being coupled to the output lead of the sixth gate, the output lead of the second inverter being coupled to the control electrode of the sixth transistor; and
a sequential logic element having a data input lead, a data output lead, and a clear input lead, the data input lead of the sequential logic element being coupled to the second electrode of the fifth transistor, the clear input lead of the sequential logic element not being connected to the first input lead of the fifth gate and not being connected to the second input lead of the fifth gate.
13. The field programmable gate array of claim 12, wherein the data input lead of the sequential logic element is coupled to the second electrode of the fifth transistor by an inverter.
Description

This application is a continuation of U.S. Ser. No. 08/493,981, filed Jun. 23, 1995, now U.S. Pat. No. 5,594,364 which is a continuation of U.S. Ser. No. 08/245,309 filed May 17, 1994, now U.S. Pat. No. 5,540,390 now U.S. Pat. No. 5,540,390 which is a file wrapper continuation of U.S. Ser. No. 07/847,382 filed Mar. 6, 1992, abandoned, which is a continuation of U.S. Ser. No. 07/665,103 filed Mar. 6, 1991, now U.S. Pat. No. 5,122,685.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to application specific integrated circuits, and more specifically to field programmable gate arrays and logic cells therefor.

2. Description of Related Art

Application specific integrated circuits ("ASIC") provide their users the ability to manufacture products having a proprietary design without having to begin the design at the device level. Many different ASIC technologies are available, including gate array, standard cell, full custom design, and programmable logic devices. The gate array, standard cell, and full custom technologies offer high performance and flexibility, although at the expense of a long development cycle and a high non-recurring engineering cost. Programmable logic devices, which include programmable logic array devices ("PLD") and field programmable logic array devices ("FPLA"), are useful in a variety of applications such as glue logic and simple integrated circuit designs. Their utility has been limited in general due to a relatively low number of available usable gates, poor flexibility in implementing the required logic functions, low speed of operation, and high power consumption.

The reason for the limited utility of FPLA and PLD devices is generally due to the exponential increase in the size of the array as the number of logic elements increase. A FPLA typically contains a programmable AND array and a programmable OR array, while a PLD typically contains a programmable AND array and a fixed OR array. The programmable elements in a programmable array are constructed of active devices such as diodes or transistors connected to a fusible link, ultraviolet erasable floating gate devices, and electrically erasable floating gate devices. Generally, such devices are resistive and high in parasitic capacitance, and consume a relatively large silicon area. Since generally each product term consumes a certain amount of power, as the array size increases, the power dissipation increases. Moreover, the speed decreases with increasing array size, due to the increasingly parasitic capacitance of the array. Hence, for a given technology, the size of the array is restricted by practical considerations.

The utility of PLDs and FPLAs has been further extended by the technique of a programmable interconnect network for modules consisting of small PLDs or FPLAs. While some improvement in maximum practical size is realized, the degree of improvement is limited by the same problems afflicting PLDs and FPLAs; specifically, speed deterioration and power dissipation.

One device of the programmable interconnect small array type is disclosed in U.S. Pat. No. 4,774,421, issued Sep. 22, 1988 to Hartmann et al. The device consists of a plurality of "macrocells," each including a programmable AND array, an OR/NOR array, a feedback row driver, and an I/O driver and input circuit. The macrocells are driven from two common buses, one carrying input signals and the other carrying feedback signals. This device achieves a logic complexity of 300 2-input NAND gates.

Another device of the programmable interconnect small array type is disclosed in U.S. Pat. No. 4,847,612, issued Jul. 11, 1989. A plurality of functional units are arranged in a matrix of rows and columns. Each functional unit has 12 inputs and 9 outputs, although the number may vary. Each functional unit performs one or more logical functions. Vertical lines are permanently connected to the outputs of the functional units, while horizontal lines are permanently connected to the inputs of the functional units. Each of the horizontal and vertical lines is a collection of conductive lines whose number matches the number of inputs and outputs of one of the functional units. The horizontal and vertical lines cross at various areas of the device to form programmable interconnection matrices. Programming may be by mask, conductive fuses, or EPROM/EEPROM switching transistors.

Each functional unit is a relatively small programmable logic array which is mask programmable, fuse programmable, or switch programmable. Other types of functional units such as random access memories and arithmetic logic units may be present. Moreover, additional specialized logic at the output of the sum terms may be present.

Electrically configurable gate arrays have been developed to overcome the gate density limitations of programmable array logic devices and field programmable logic arrays. One such device is disclosed in U.S. Pat. No. 4,758,745, issued Jul. 19, 1988 to El Gamal et al. In the El Gamal et al. patent, a universal logic module having 3 input terminals and 2 output terminals and functioning as a 2:1 multiplexer is shown. Different types of array modules as well as combinations of two or more types may be used, as well as RAM arrays, ROM arrays, multipliers, and ALUs optimized to implement certain functions. The five terminals of the logic cell are hardwired to five separate vertical wiring channels. Wire channels are segmented and offset.

A similar device to that disclosed in the aforementioned El Gamal et al. patent is disclosed in an article by K. A. El-Ayat et al., "A CMOS Electrically Configurable Gate Array," IEEE Journal of Solid State Circuits, Vol. 24, No. 3, Jun. 1989, pp. 752-61. The chip has a channeled gate array architecture consisting of configurable logic modules organized in rows and columns and separated by wiring channels. The wiring channels contain predefined segmented metal tracks of different segment length to accommodate the routing requirements. Antifuse elements are located at the intersection of the horizontal and vertical wire segments, and also between wire segments in association with isolation transistors. Circuit connections and module configuration are established by programming the appropriate antifuse elements, which then form low impedance connections as required between metal segments. The logic module is configurable, as are the I/O buffers.

El-Ayat et al. discloses a configurable logic module having eight inputs and one output, which is claimed to efficiently implement both combinatorial and sequential circuits and to optimally utilize routing resources. The module implements a 4:1 multiplexer function with inputs A-D; select inputs SA, SB, S0 and S1; and output Y. To implement the required logic function, the module is configured as the desired macrocell by programming the appropriate antifuses at its input terminals to connect the inputs to the required nets and to VDD and VSS.

Despite many improvements having been made in increasing usable gate density while reducing power dissipation, a need exists for a field programmable gate array device having even higher speed, higher density, lower power dissipation, and a more flexible architecture.

SUMMARY OF THE INVENTION

These and other disadvantages of the prior art are overcome in the present invention, which in one embodiment generally comprises a programmable routing network, a configuration network integrated with the programmable routing network; and a logic cell integrated with the programmable configuration network.

In another embodiment of the present invention, an application specific integrated circuit comprises a plurality of generally parallel first conductors and a plurality of generally parallel second conductors, the first and second conductors crossing in a first crossover region and being generally insulated from one another therein. First programmable links are present in the first crossover region, disposed between preselected crossings of the first and second conductors. A logic cell having inputs and outputs comprising a plurality of generally parallel third conductors is also present, the second and third conductors crossing in a second crossover region and being generally insulated from one another therein. A plurality of second programmable links are present in the second crossover region, disposed between preselected crossings of the second conductors and said third conductors.

In another embodiment of the present cell, a logic cell for a programmable application specific integrated circuit comprises first, second and third logic gates and a first multiplexer, one data input thereof being from an output of the first logic gate, and another data input thereof being from an output of the second logic gate. The select input of the first multiplexer is from an output of the third logic gate. The embodiment further comprises fourth and fifth logic gates and a second multiplexer, one data input thereof being from an output of the fourth logic gate, and the other data input thereof being from an output of the fifth logic gate. The select input of the second multiplexer is from an output of the third logic gate. A third multiplexer having one data input from an output of the first multiplexer and another data input from an output of the second multiplexer receives a select input from a sixth logic gate, and furnishes its output to a flipflop. The output of the flipflop is the output of the logic cell.

The present invention is advantageous in many respects. For example, a one micron dual metal field programmable gate array in accordance with the present invention generally exhibits high flipflop toggle rates over 125 MHz, four bit and eight bit counter speeds over 100 MHz, and input to output delays of under 15 ns. Field programmable gate arrays having from 48 to 384 logic cells in accordance with the present invention are substantially equivalent to 500 to 4000 "gate array" gates of the prior art. Field programmable gate arrays in accordance with the present invention exhibit a low stand-by current of generally about 2 mA, and low operating power dissipation. For example, a 16 bit counter running at 100 MHz consumes under 45 mA. A logic cell structure in accordance with the present invention supports various applications, including high speed arithmetic units, counters, data paths, state machines, and glue logic applications.

BRIEF DESCRIPTION OF THE DRAWINGS

In the Figures, where like reference numerals indicate like parts,

FIG. 1 is a schematic block diagram showing a 2×2 field programmable gate array of logic cells, in accordance with the present invention;

FIG. 2 is a schematic diagram of a routing network and a configuration network associated with a logic cell and useful in the field programmable gate array of FIG. 1;

FIG. 3 is a schematic diagram of an input/output cell useful in the field programmable gate array of FIG. 1;

FIG. 4 is a schematic diagram of an input cell useful in the field programmable gate array of FIG. 1;

FIG. 5 is a schematic block diagram of a logic cell useful in the field programmable gate array of FIG. 1;

FIG. 6 is a gate level schematic diagram of a macrocell realizable with the logic cell of FIG. 5;

FIG. 7 is a schematic circuit level diagram of a two input AND gate useful in the logic cell of FIG. 5;

FIG. 8 is a schematic circuit level diagram of an inverter useful in the logic cell of FIG. 5;

FIG. 9 is a schematic circuit level diagram of a six input AND gate useful in the logic cell of FIG. 5;

FIG. 10 is a schematic gate level diagram of a multiplexer group useful in the logic cell of FIG. 5;

FIG. 11 is a schematic block level diagram of a register or delay flipflop useful in the logic cell of FIG. 5; and

FIG. 12 is a schematic circuit level diagram of a NAND gate useful in the register of FIG. 11.

DESCRIPTION OF THE PREFERRED AND OTHER EMBODIMENTS

The routing and logic elements of an illustrative field programmable gate array having four logic cells is illustrated in FIG. 1. The field programmable gate array of FIG. 1 is configured as a 2×2 array of logic cells. A larger array may be achieved merely by extending the architectural features of the 2×2 array of FIG. 1 either horizontally or vertically, as desired. The array size of a practical field programmable gate array generally ranges from about 32 logic cells to about 1000 logic cells, depending on the application and the process technology used in fabrication.

A number of basic architectural features are illustrated, including logic cells 2, 4, 6, and 8; vertical wire segments 10, vertical express lines 11, and power lines 7 associated with a column of logic cells 2 and 6; vertical wire segments 12, vertical express lines 13, and power lines 9 associated with a column of logic cells 4 and 8; horizontal wire segments 14 and 16 and horizontal express lines 15 and 17 associated with a row of logic cells 2 and 4; horizontal wire segments 18 and 20 and horizontal express lines 19 and 21 associated with a row of logic cells 6 and 8; input/output ("IO") cells 22-29; input driver ("I") cells 30-33, power ("VCC") pins 34 and 35; and ground ("GND") pins 36 and 37.

Generally, pass links are provided between contiguous segments of horizontal and vertical wires, and cross links are provided where horizontal and vertical segments cross. As the architecture of FIG. 1 is a replicating architecture, one may conveniently view sections of cross links and pass links as associated with a particular logic cell. For example, each of the four quadrants of FIG. 1 may conveniently be represented by the arrangement of FIG. 2, which shows the illustrative logic cell 100 associated with a routing network and a cell configuration network. The cell configuration network generally comprises illustrative track and logic cell link section 80. The routing network generally comprises illustrative substantially identical switch sections 82 and 84, illustrative substantially identical vertical pass link sections 90 and 92, and illustrative substantially identical horizontal pass link sections 94 and 96.

In the track and logic cell link section 80, generally each crossing of a vertical wire such as 41 and a horizontal wire such as 125 from an input or output of the logic cell 100 is linked by cross links such as cross link 81. Note the cross links (not referenced) at the crossing of vertical wire groups 40, 45, 46, 47 and 50 (wires 51 and 52 only) with horizontal input wire groups 103, 105, 107, 109, 111, and 113; with horizontal input wires 122, 123 and 124; and with horizontal output wires 115, 117, 119, 121, and 125.

In the illustrative switch sections 82 and 84, generally each crossing of a vertical wire such as 41 and a horizontal wire such as 66 is linked by a cross link such as 83. Note the cross links (not referenced) at the crossing of vertical wire groups 40, 45, 46, 47 and 50 (wires 51 and 52 only) with horizontal wire groups 60, 67, 70 and 77.

Contrary to the general arrangement of cross links, the vertical wires 53 and 54 of wire group 50 and the vertical wires 56 and 57 of the wire group 55 are not provided with cross links to all of the horizontal wires. Vertical wire 56 is a power bus and vertical wire 57 is a ground bus. As ground and power are not applied to the output nodes of the logic cell, no cross links are provided in the track and logic cell link section 80 between the vertical wires 56 and 57 and the output wires 115, 117, 119, 121 and 125. Similarly, no cross links are provided in the switch sections 82 and 84 between the vertical wires 56 and 57 and the horizontal wire groups 60 and 70 and the horizontal express lines 67 and 77. Vertical wires 53 and 54 of wire group 50 are particularly suitable for certain widely distributed signals such as set, reset, and clock. Accordingly, cross links are provided between vertical wires 53 and 54 and the following horizontal wires: clock wire 122, set wire 123, reset wire 124, and express wires 68, 69, 78 and 79. In order to avoid unnecessarily loading these lines with the small but finite leakage and capacitance of additional cross links, no cross links are provided at the other wire crossings in track and logic cell link section 80 or in the switch sections 82 and 84.

As a general rule, all cross links such as 81 of track and logic cell link section 80, and 83 of switch section 82 are programmable. In the unprogrammed state, the cross links provide an open circuit. A particularly suitable type of cross link is the plasma-enhanced chemical vapor deposited ("PECVD") amorphous silicon antifuse disclosed in copending U.S. patent application Ser. No. 447,969 entitled "Method for Fabrication of Programmable Interconnect Structure," filed Dec. 8, 1989 by Whitten et al., which hereby is incorporated herein by reference. Other types of cross links may be suitable as well, however.

Many of the horizontal and vertical wires of the field programmable gate array of FIG. 1 are wires for global connections. Most of these are segmented, with pass links being provided at opposing ends of contiguous segments. As shown in FIG. 2, for example, the vertical wires of wire groups 40, 45, 46 and 47 are segmented with pass links being indicated generally at 90 and 92; horizontal wires 63, 64, 65 and 66 of wire group 60 are segmented with respective pass links indicated generally at 94; and horizontal wires 73, 74, 75 and 76 of wire group 70 are segmented with respective pass links indicated generally at 96. Some wires are not segmented. These are generally known as "express" wires and are particularly useful for routing such signals as clock, set, and reset, as well as other signals that must be widely distributed about the chip without unnecessarily loading the drivers with the small but finite leakage and capacitance of the pass links. Unsegmented wires include the vertical wires of wire groups 50 and 55; horizontal wires 61 and 62 of the wire group 60; horizontal wires 68 and 69 of wire group 67; horizontal wires 71 and 72 of wire group 70; and horizontal wires 78 and 79 of wire group 77.

Other wires are used for local purposes and are not segmented. Such wires include the horizontal wires of wire groups 103, 105, 107, 109, 111, and 113; and the horizontal wires 115, 117, 119, 121, 122, 123, 124 and 125.

A particularly suitable type of pass link is the PECVD amorphous silicon antifuse disclosed in the aforementioned copending United States Patent Application of Whitten et al., which is incorporated herein by reference. Other types of pass links may be suitable as well, however.

An illustrative IO cell 500 is shown in FIG. 3. The IO cell 500 is suitable for input only or output only, or for bidirectional signaling with a tristate enable control. IO cell 500 includes input/output pin 502. The input circuit comprises pin 502 connected to the input of a driver 504. The output of driver 504 is supplied to a vertical wire or a horizontal wire, as desired. The output circuit comprises OR gate 506 having one true input and one complement input. Output polarity is determined by whether the true or complement input to the OR gate 506 is used. The output of OR gate 506 is supplied to a tristate driver 508, the control terminal 509 of which is connected to a vertical or horizontal wire, as desired. The output of the tristate driver 508 is connected to pin 502.

An illustrative input or I cell 510 is shown in FIG. 4. I cell 510 includes an input pin 512 connected to a double driver buffer 514. Driver 514 is suitable for use in driving high fanout networks such as a clock distribution network, set networks, and reset networks. The driver 514 has a true output and a complement output, which are supplied to respective vertical or horizontal wires, as desired.

VCC pins 34 and 35 are connected to a power distribution bus which extends around the periphery of the field programmable gate array of FIG. 1 and which includes vertical power buses associated with respective columns of logic cells such as a first column comprising logic cells 2 and 6, and a second column comprising logic cells 4 and 8. Similarly, GND pins 36 and 37 are connected to a ground distribution bus which extends around the periphery of the field programmable gate array of FIG. 1 and which includes vertical ground buses associated with respective columns of logic cells such as a first column comprising logic cells 2 and 6, and a second column comprising logic cells 4 and 8.

An illustrative logic cell 100 is shown in FIG. 5. Logic cell 100 includes four two input AND gates 104, 106, 108 and 110, each of which has one true input and one complement input. Gate 104 receives a true input 105.1 and a complement input 105.2, and furnishes its output to a data input of 2:1 multiplexer 114. AND gate 106 receives a true input 107.1 and a complement input 107.2, and furnishes its output to the other data input of 2:1 multiplexer 114. Similarly, AND gate 108 receives a true input 109.1 and a complement input 109.2, and furnishes its output to a data input of 2:1 multiplexer 116. AND gate 110 receives a true input 111.1 and a complement input 111.2, and furnishes its output to the other data input of 2:1 multiplexer 116.

The select terminals of both multiplexer 114 and multiplexer 116 are driven by the output of six input AND gate 112, which receives true inputs on lines 113.1, 113.3 and 113.5, and complement inputs on lines 113.2, 113.4 and 113.6. The output of AND gate 112 is also furnished as an output 115 of the logic cell 100.

The output of multiplexer 114 is furnished to one data input of the 2:1 multiplexer 118, and the output of multiplexer 116 is furnished to the other data input of 2:1 multiplexer 118. The output of multiplexer 116 is also furnished as an output 117 of the logic cell 100. The select terminal of multiplexer 118 is driven by the output of AND gate 102, which receives true inputs on lines 103.1, 103.3 and 103.5, and complement inputs on lines 103.2, 103.4 and 103.6. The output of AND gate 102 is also furnished as an output 119 of the logic cell 100.

The output 121 of multiplexer 118 is furnished to the input of a delay or "D" flipflop 120, the output of which is furnished as an output 125 of the logic cell 100. Inputs to the D flipflop 120 include set terminal S and reset terminal R, which are accessible from input lines 123 and 124 respectively, and clock terminal CLK, which is accessible from input line 122.

Other outputs of the logic cell 100 include the output 119 of AND gate 102, the output 115 of AND gate 112, the output 117 of multiplexer 116, and the output 121 of multiplexer 118.

Logic cell 100 is a powerful general purpose universal logic building block suitable for implementing most TTL and gate array macrolibrary functions. The complexity of logic cell 100 is moderate, varying between ten equivalent 2-input NAND gates to twenty-five equivalent 2-input NAND gates depending on user programming. Combinational logic functions as wide as thirteen inputs are realizable with one cell delay. All boolean transfer functions are realizable for up to three inputs. Sequential flipflop functions such as T, JK and count with carry-in are realized with the use of the high performance D flipflop 120, which is initializable with the asynchronous set and reset inputs.

Many of the functions realizable with the logic cell 100 are listed in Table 1. Various realizable AND gates, NAND gates, OR gates, NOR gates, XOR gates, XNOR gates, and MAJ ("majority") gates are listed in Table 1, in which the designation "XiY" following the gate name means a gate of the designated type with X inputs, Y of which are complement and X-Y of which are true. Various realizable buffers and inverters are listed in Table 1, in which BUFF means a buffer, the designation "INVa" means an inverter with its output inverted, and the designation "INVb" means an inverter with its input inverted. The designation SOP14i7 ("sum of products") means the gate shown in FIG. 6. Various realizable multiplexers are listed in Table 1, in which "MUX XxY" means a multiplexer having X inputs with the inputs at positions corresponding to a 1 in the binary equivalent of Y being complemented and the other inputs being true; and in which "MUX XDxY" means dual multiplexers, each having X inputs with the inputs at positions corresponding to a 1 in the binary equivalent of Y being complemented and the other inputs being true. Various realizable decoder gates are listed in Table 1, in which DEC2t4 means a two to four decoder. Various realizable adder gates are listed in Table 1, in which HADDA means a half adder with inputs A and B and outputs sum and carry; FADD1 means a full adder with inputs A, B and carry and outputs sum and carry; CLAADD3 means a three bit carry look ahead adder, and CLAGEN3 means a three bit carry look ahead generator with enable. Various realizable latches are listed in Table 1, in which DLA means a D latch, DLAC means a D latch with clear, DLAMUX means a D latch with 2:1 multiplexer, DLAD means a dual D latch, DLAE means a D latch with enable, DLAEC means a D latch with enable and clear, DLAEMUX means a D latch with enable and a 2:1 multiplexer, DLADE means a dual D latch with enable, DLAiE means a D latch with inverted enable, DLAiEC means a D latch with inverted enable and clear, DLAiEMUX means a D latch with inverted enable and a 2:1 multiplexer, and DLADiE means a dual D latch with inverted enable. Various realizable flipflops are listed in Table 1, in which DFF means a delay flipflop, TFF means a toggle flipflop, and JKFF means a JK flipflop, while the suffix E means "with enable," the suffix iE means "with inverted enable," the suffix P means "with preset," and the suffix C means "with clear." The counter COUNT1 realizable listed in Table 1 is a simple counter having a count-in input, Q and count-out outputs, and preset, clear, and clock inputs.

              TABLE 1______________________________________        and14i7        and2i0        and2i1        and2i2        and3i0        and3i1        and3i2        and3i3        and4i0        and4i1        and4i2        and4i3        and4i4        and5i0        and5i1        and5i2        and5i3        and5i4        and5i5        and6i0        and6i1        and6i2        and6i3        and6i4        and6i5        and6i6        biipad        bipad        bishift4        buff        claadd3        claadd9        clagen3        count1        dec2t4        dece2t4        decie2t4        dff        dffc        dffe        dffepc        dffie        dffiepc        dffpc        dla        dlac        dlad        dlade        dladie        dlae        dlaec        dlaemux        dlaie        dlaiec        dlaiemux        dlamux        dnct16        dnct4        fadd1        hadd1        indpad        inipad        inpad        inva        invb        jkff        jkffpc        maj3i0        maj3i1        maj3i2        maj3i3        mux2dx0        mux2dx1        mux2dx2        mux2dx3        mux2x0        mux2x1        mux2x2        mux2x3        mux4x0        mux4x1        mux4x2        mux4x3        mux4x4        mux4x5        mux4x6        mux4x7        mux4x8        mux4x9        mux4xa        mux4xb        mux4xc        mux4xd        mux4xe        mux4xf        nand13i6        nand2i0        nand2i1        nand2i2        nand3i0        nand3i1        nand3i2        nand3i3        nand4i0        nand4i1        nand4i2        nand4i3        nand4i4        nand5i0        nand5i1        nand5i2        nand5i3        nand5i4        nand5i5        nand6i0        nand6i1        nand6i2        nand6i3        nand6i4        nand6i5        nand6i6        nor12i6        nor2i0        nor2i1        nor2i2        nor3i0        nor3i1        nor3i2        nor3i3        nor4i0        nor4i1        nor4i2        nor4i3        nor4i4        nor5i0        nor5i1        nor5i2        nor5i3        nor5i4        nor5i5        nor6i0        nor6i1        nor6i2        nor6i3        nor6i4        nor6i5        nor6i6        or12i6        or2i0        or2i1        or2i2        or3i0        or3i1        or3i2        or3i3        or4i0        or4i1        or4i2        or4i3        or4i4        or5i0        or5i1        or5i2        or5i3        or5i4        or5i5        or6i0        or6i1        or6i2        or6i3        or6i4        or6i5        or6i6        outipad        outpad        sop14i7        shift4        tff        tffe        tffepc        tffie        tffiepc        tffpc        triipad        tripad        upct16        upct4        updnct12        updnct3a        xnor2i0        xnor2i1        xnor2i2        xnor3i0        xnor3i1        xnor3i2        xnor3i3        xor2i0        xor2i1        xor2i2        xor3i0        xor3i1        xor3i2        xor3i3______________________________________

The logic blocks of the logic cell 100 may be implemented in a number of suitable ways. One suitable implementation of the two input AND gates 104, 106, 108 and 110 (FIG. 5) is shown in the gate 200 in FIG. 7. Input 202 corresponds to the operand A, and controls the gate of p-channel MOSFET 204. When A=0, transistor 204 is ON, thereby presenting a logical ONE to the input of inverter 222 and resulting in a logical ZERO at the output 208. When A=1 transistor 204 is OFF and n-channel transistor 218 is ON, so that the output 208 is controlled by the state of input 210 which corresponds to the operand B. When B=0, p-channel MOSFET 212 turns ON and n-channel MOSFET 214 turns OFF. The drains of transistors 212 and 214 are connected to a common circuit node, to which the gates of p-channel MOSFET 216 and n-channel MOSFET 220 are connected. Accordingly, transistor 216 is OFF and transistor 220 is ON. As transistor 218 is ON due to A=1, the input of inverter 222 is brought to about ground potential or logical ZERO through transistors 218 and 220, which results in a logical ONE at output 208. When B=1, p-channel MOSFET 212 turns OFF and n-channel MOSFET 214 turns ON. Accordingly, transistor 216 is turned ON and transistor 220 is turned OFF, thereby presenting a logical ONE at the input of inverter 222 and resulting in a logical ZERO at output 208.

The inverter 222 may be implemented in any suitable manner, an example of which is shown in FIG. 8. The inverter 230 of FIG. 8 includes a p-channel MOSFET 232 with its source connected to VCC, and a n-channel MOSFET 234 with its source connected to GND. The drains of transistors 232 and 234 are connected to a common output node 236, and the gates of transistors 232 and 234 are connected to a common input node 238. Transistor 232 conducts when input node 238 is LOW, driving the output node 236 HIGH. Transistor 234 conducts when input node 238 is HIGH, driving the output node 236 LOW.

One suitable implementation of the six input AND gates 102 and 112 (FIG. 5) is shown in the gate 250 of FIG. 9. Note the following general functional correspondence of components of circuit 250 with components of circuit 200: input terminals 252, 254 and 256 with terminal 202; transistors 258, 260 and 262 with transistor 204; output terminal 264 with terminal 208; input terminals 266, 268 and 270 with terminal 210; transistors 272, 274 and 276 with transistor 212; transistors 278, 280 and 282 with transistor 214; transistor 284 with transistor 216; transistor 286 with transistor 220; transistors 288, 290 and 292 with transistor 218 and inverter 263 with inverter 222. As the operation of circuit 250 is apparent from the previous description of the operation of circuit 200, no further description of the operation of circuit 250 is recited.

One suitable implementation of the multiplexers 114, 116 and 118 (FIG. 5) is shown as circuit 300 of FIG. 10. Multiplexer 114 (FIG. 5) includes n-channel MOSFET 314, the gate of which is connected to input 115; and n-channel MOSFET 316, the gate of which is connected to the output of inverter 322 and thereby controlled by the complement of the signal on input 115. Accordingly, only one of pass transistors 314 and 316 is selected at any given time in accordance with the logical state of the signal on input 115. Multiplexer 116 (FIG. 5) includes n-channel MOSFET 318, the gate of which is connected to input 115; and n-channel MOSFET 320, the gate of which is connected to the output of inverter 322 and thereby controlled by the complement of the signal on input 115. Accordingly, only one of pass transistors 318 and 320 is selected at any given time in accordance with the logical state of the signal on input 115.

Multiplexer 118 includes n-channel MOSFET 330, the gate of which is connected to input 102; and n-channel MOSFET 332, the gate of which is connected to the output of inverter 326 and thereby controlled by the complement of the signal on input 102. Accordingly, either pass transistor 330, which receives the output of multiplexer 114 from transistor 314 or 316, or pass transistor 332, which receives the output of multiplexer 116 from transistor 318 or 320, is selected at any given time in accordance with the logical state of the signal on input 102. The logical level passed by the selected one of the pass transistors 330 and 332 is furnished to an inverter 338, and supplied on output terminal 344. Inverter 338 is any suitable inverter, such as the inverter 230 of FIG. 8.

One suitable implementation of the flipflop 120 (FIG. 5) is shown as circuit 400 in FIG. 11. The master stage 430 of flipflip 400 comprises NAND gates 420 and 422 and transmission gates 412 and 414. The slave stage 432 of flipflop 400 comprises NAND gates 424 and 426 and transmission gates 416 and 418. Note that a typical transmission gate comprises a p-channel MOSFET and an n-channel MOSFET having their respective sources and drains connected to each other, and their respective gates controlled by the control signal and its complement. In FIG. 11, the control signal for the transmission gates 412, 414, 416 and 418 is signal CLK buffered by inverters 406 and 408, with the complement CLK\ being obtained from inverter 410. The flipflop 400 is reset when signal RT is HIGH (signal ST remains LOW), since the outputs of both NAND gates 422 and 426 are driven HIGH and furnished to output Q through buffer 428 through either transmission gate 416 or gate 418 depending on the state of signal CLK. Buffer 428 comprises two series-connected inverters. The flipflop 400 is set when signal ST is HIGH (signal RT remains LOW), since the outputs of both NAND gates 420 and 424 are driven HIGH, whereby the outputs of both NAND gates 422 and 426 are driven LOW and furnished to output Q through buffer 428 through either transmission gate 416 or gate 418 depending on the state of signal CLK.

When the direct input signals on inputs RT and ST are both LOW, the output of flipflop 120 is determined by the logical state of the clocked input D. Consider first the operation of the circuit 400 when the clock signal CLK is LOW, during which event the state of the flipflop 400 is latched in the slave stage 432 while the master stage 430 responds to the new state presented on input D. Transmission gate 412 is closed so that the master stage 430 is responsive to input D. Specifically, gate 412 passes the signal D to an input of NAND gate 420 (the other input being HIGH due to the inversion of signal ST by inverter 404). The output of NAND gate 420 is furnished to an input of NAND gate 422 (the other input being HIGH due to the inversion of signal RT by inverter 402), which causes D to appear at the output of NAND gate 422. Accordingly, the master stage 430 is driven into a particular state depending on the logical state of D. The output of NAND gate 422 and hence the master section 430 is isolated, however, because transmission gates 414 and 416 are open. Transmission gate 418 of the slave stage 432 passes the state of the output of NAND gate 426 to an input of NAND gate 424 (the other input being HIGH due to the inversion of signal ST by inverter 404), the output of which is furnished to an input of the NAND gate 426 (the other input being HIGH due to the inversion of signal RT by inverter 402). Accordingly, the state of the slave stage 432 is latched, and furnished as output Q through buffer 428. The state of the slave stage 432 is the previous state of the master stage 430.

Consider the operation of the circuit 400 when the clock signal CLK is HIGH, during which event the master stage 430 latches the prior state of input D and furnishes the state to output Q and the slave stage 432. Transmission gates 412 and 418 are open and transmission gates 414 and 416 are closed. Because gate 412 is open, input D is isolated. Transmission gate 414 of the master stage 430 passes the state of the output of NAND gate 422 to an input of NAND gate 420 (the other input being HIGH due to the inversion of signal ST by inverter 404), the output of which is furnished to an input of the NAND gate 422 (the other input being HIGH due to the inversion of signal RT by inverter 402). Accordingly, the state of the master stage 432 is latched. The latched state of the master stage 432 is furnished as output Q through transmission gate 416 and buffer 428, and also applied to an input of NAND gate 424 (the other input being HIGH due to the inversion of signal ST by inverter 404) through transmission gate 416. The output of NAND gate 424 is applied to an input of NAND gate 426, which drives the slave stage 432 into a particular state depending on the output of the master stage. The output of NAND gate 426 and hence the slave section 432 is isolated, however, because transmission gate 418 is open.

Note that the various gates of FIG. 11 may be implemented in any suitable manner. A suitable implementation of the inverter gates is the circuit of FIG. 8. A suitable implementation of the NAND gates is the circuit 440 of FIG. 12, in which the input to inverter 450 is raised to VCC through either p-channel MOSFET 442 or p-channel MOSFET 444 when either input A or input B respectively is LOW, and is lowered to GND through n-channel MOSFETs 446 and 448 only when both inputs A and B are HIGH. Inverters 450 and 452 are provided for purposes of driving the following device, and may be omitted if such drive is not required.

A variety of techniques may be used to program the pass links and cross links of the field programmable gate array 100. For example, in one suitable technique, programming transistors are provided in conjunction with each pass link, in conjunction with adjacent horizontal logic cell input wire segments (generally without pass links), and at edges of cell array, operatively connected to the horizontal and vertical wires. A programming voltage of, for example, 12 volts and a ground potential are selectively applied to horizontal and vertical wires in order to close certain antifuses, while a voltage of one-half the programming voltage is applied to other selected wires to prevent closing of other antifuses. The programming transistors are selectively driven ON in order to direct the programming voltages through the network of wires. Once the desired antifuses are closed, the programming transistors are no longer used.

A variety of suitable technologies are available for fabricating the field programmable gate array 100. One suitable process is a one micron, two layer metal CMOS process. In using such a process for the fabrication of field programmable gate array circuit 100, the configuration wires such as horizontal input wire groups 103, 105, 107, 109, 111 and 113, horizontal input wires 122, 123 and 124 and horizontal output wires 115, 117, 119, 121 and 125 preferably are fabricated in first metal; the vertical routing wires such as wire groups 40, 45, 46, 47, 50 and 55 (FIG. 2) are fabricated generally in second metal; and horizontal routing wires such as wire groups 60, 67, 70 and 77 (FIG. 2) are fabricated generally in first metal. Note that pass links such as the pass links indicated generally at 90, 92, 94 and 96 (FIG. 2) are fabricated using a combination of first and second metal, as more fully disclosed in the above-referenced application of Whitten et al., which is incorporated herein by reference.

While our invention has been described with respect to certain embodiments, the scope of the present invention is defined by the appended claims and is not necessarily limited to the embodiments described herein, which are merely illustrative. For example, the fabrication technology, the programming technique, the number and routing of the wires such as the various vertical wires and the various horizontal wires, and the precise composition of the logic cell are illustrative. Accordingly, other embodiments and variations not described herein may be within the scope of our invention, as defined by the appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3619583 *Oct 11, 1968Nov 9, 1971Bell Telephone Labor IncMultiple function programmable arrays
US4124899 *May 23, 1977Nov 7, 1978Monolithic Memories, Inc.Programmable array logic circuit
US4354266 *Oct 31, 1979Oct 12, 1982Gte Laboratories IncorporatedMultiplexor with decoding
US4453096 *Apr 1, 1980Jun 5, 1984U.S. Philips CorporationMOS Transistor type integrated circuit for the execution of logical operations on a plurality of data signals
US4491839 *Apr 30, 1982Jan 1, 1985Itt Industries, Inc.CMOS Selection circuit
US4541067 *May 10, 1982Sep 10, 1985American Microsystems, Inc.Combinational logic structure using PASS transistors
US4551634 *Mar 30, 1983Nov 5, 1985Fujitsu LimitedMultiplexing input circuit
US4558236 *Oct 17, 1983Dec 10, 1985Sanders Associates, Inc.Universal logic circuit
US4566064 *Dec 8, 1982Jan 21, 1986American Microsystems, Inc.Combinational logic structure using PASS transistors
US4577124 *Jun 15, 1984Mar 18, 1986Kabushiki Kaisha ToshibaCMOS Logic circuit
US4609986 *Jun 14, 1984Sep 2, 1986Altera CorporationProgrammable logic array device using EPROM technology
US4616358 *Jan 2, 1986Oct 7, 1986Siemens AktiengesellschaftSwitching matrix network
US4617479 *May 3, 1984Oct 14, 1986Altera CorporationProgrammable logic array device using EPROM technology
US4620117 *Jan 4, 1985Oct 28, 1986Advanced Micro Devices, Inc.Balanced CMOS logic circuits
US4622648 *May 8, 1985Nov 11, 1986American Microsystems, Inc.Combinational logic structure using PASS transistors
US4642487 *Sep 26, 1984Feb 10, 1987Xilinx, Inc.Special interconnect for configurable logic array
US4684829 *Jul 10, 1984Aug 4, 1987Sharp Kabushiki KaishaCMOS tree decoder with speed enhancement by adjustment of gate width
US4684830 *Mar 22, 1985Aug 4, 1987Monolithic Memories, Inc.Output circuit for a programmable logic array
US4695740 *Sep 26, 1984Sep 22, 1987Xilinx, Inc.Bidirectional buffer amplifier
US4706216 *Feb 27, 1985Nov 10, 1987Xilinx, Inc.Configurable logic element
US4710649 *Apr 11, 1986Dec 1, 1987Raytheon CompanyTransmission-gate structured logic circuits
US4733405 *Oct 14, 1986Mar 22, 1988Sony CorporationDigital integrated circuit
US4754456 *Mar 27, 1986Jun 28, 1988Fujitsu LimitedMultiplex system for replacing a faulty multiplexer output with an alternating pattern signal
US4758746 *Aug 12, 1985Jul 19, 1988Monolithic Memories, Inc.Programmable logic array with added array of gates and added output routing flexibility
US4758985 *Mar 28, 1986Jul 19, 1988Xilinx, Inc.Microprocessor oriented configurable logic element
US4764893 *Apr 26, 1985Aug 16, 1988International Business Machines CorporationNoise-immune interrupt level sharing
US4771285 *Nov 5, 1985Sep 13, 1988Advanced Micro Devices, Inc.Programmable logic cell with flexible clocking and flexible feedback
US4774421 *Sep 12, 1986Sep 27, 1988Altera CorporationProgrammable logic array device using EPROM technology
US4786904 *Dec 15, 1986Nov 22, 1988Zoran CorporationElectronically programmable gate array having programmable interconnect lines
US4787064 *Nov 10, 1986Nov 22, 1988Siemens AktiengesellschaftCircuit module with interface circuits for connecting to plurality of busses operating in different operating modes
US4789951 *May 16, 1986Dec 6, 1988Advanced Micro Devices, Inc.Programmable array logic cell
US4825105 *Dec 28, 1987Apr 25, 1989Siemens AktiengesellschaftCircuit for generation of logic variables, using multiplexes and inverters
US4852021 *May 19, 1988Jul 25, 1989Fujitsu LimitedCentralized command transfer control system for connecting processors which independently send and receive commands
US4870302 *Feb 19, 1988Sep 26, 1989Xilinx, Inc.Configurable electrical circuit having configurable logic elements and configurable interconnects
US4871930 *May 5, 1988Oct 3, 1989Altera CorporationProgrammable logic device with array blocks connected via programmable interconnect
US4873459 *May 18, 1988Oct 10, 1989Actel CorporationProgrammable interconnect architecture
US4876640 *Feb 7, 1986Oct 24, 1989Advanced Micro Devices, Inc.Logic controller having programmable logic "and" array using a programmable gray-code counter
US4878200 *Dec 30, 1987Oct 31, 1989Intel CorporationProduct term sharing/allocation in an EPROM array
US4879481 *Sep 2, 1988Nov 7, 1989Cypress Semiconductor CorporationDual I/O macrocell for high speed synchronous state machine
US4910417 *Jan 5, 1989Mar 20, 1990Actel CorporationUniversal logic module comprising multiplexers
US4910466 *Jan 31, 1989Mar 20, 1990Hitachi Microcomputer Engineering Ltd.Selecting means for selecting a plurality of information
US4912339 *Dec 5, 1988Mar 27, 1990International Business Machines CorporationPass gate multiplexer
US4914322 *Dec 16, 1988Apr 3, 1990Advanced Micro Devices, Inc.Polarity option control logic for use with a register of a programmable logic array macrocell
US4933577 *Apr 10, 1989Jun 12, 1990Advanced Micro Devices, Inc.Output circuit for a programmable logic array
US4940908 *Apr 27, 1989Jul 10, 1990Advanced Micro Devices, Inc.Method and apparatus for reducing critical speed path delays
US4963770 *Jan 24, 1990Oct 16, 1990Kawasaki Steel CorporationProgrammable logic device
US5015883 *Oct 10, 1989May 14, 1991Micron Technology, Inc.Compact multifunction logic circuit
US5019736 *Oct 25, 1989May 28, 1991Concurrent Logic, Inc.Programmable logic cell and array
US5045714 *Aug 14, 1989Sep 3, 1991Korea Electronics And Telecommunications Research InstituteMultiplexer with improved channel select circuitry
US5055718 *May 11, 1990Oct 8, 1991Actel CorporationLogic module with configurable combinational and sequential blocks
US5068603 *May 15, 1989Nov 26, 1991Xilinx, Inc.Structure and method for producing mask-programmed integrated circuits which are pin compatible substitutes for memory-configured logic arrays
US5107146 *Feb 13, 1991Apr 21, 1992Actel CorporationMixed mode analog/digital programmable interconnect architecture
US5122685 *Mar 6, 1991Jun 16, 1992Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
US5168177 *Oct 25, 1990Dec 1, 1992Advanced Micro Devices, Inc.Programmable logic device with observability and preloadability for buried state registers
US5185706 *Apr 2, 1990Feb 9, 1993Advanced Micro Devices, Inc.Programmable gate array with logic cells having configurable output enable
US5220213 *Mar 6, 1992Jun 15, 1993Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
US5280202 *Mar 2, 1993Jan 18, 1994Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
US5338983 *Dec 10, 1993Aug 16, 1994Texas Instruments IncorporatedApplication specific exclusive of based logic module architecture for FPGAs
US5349250 *Sep 2, 1993Sep 20, 1994Xilinx, Inc.Logic structure and circuit for fast carry
US5396127 *Mar 29, 1994Mar 7, 1995Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
US5416367 *Jan 31, 1994May 16, 1995Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
US5430390 *May 17, 1994Jul 4, 1995Quicklogic CorporationProgrammable application specific integrated circuit and logic cell therefor
Non-Patent Citations
Reference
1"Asynchronous PAL20RA10", Advanced Micro Devices, PAL® Device Data Book, Monolithic Memories, pp. 5-97 through 5-102 (1988).
2"Digital Design Principles and Practices", Wakerly, Computer Systems Laboratory, (Sep. 1989).
3"PAL Device Data Book", Advanced Micro Devices, copyright 1988 by Advanced Micro Devices, pp. 5-97 -5-102.
4"Principles of CMOS VLSI Design A Systems Perspective", Weste et al., pp. 55-57 (Jun. 1988).
5 *A. El Gamal, et al., An Architecture for Electrically Configurable Gate Arrays, ACT Family Field Programmable Gate Array DATABOOK, 4-24 through 4-28 (Apr. 1990).
6A. El-Gamal, et al., "An Architecture for Electrically Configurable Gate Arrays", ACT™ Family Field Programmable Gate Array DATABOOK, 4-24 through 4-28 (Apr. 1990).
7A. Haines, "Field-Programmable Gate Array With Non-Volatile Configuration", Microprocessors and Microsystems, vol. 13, No.5, pp. 305-312 (Apr. 1989) (Reprinted Apr. 1990 in Actel Databook).
8 *A. Haines, Field Programmable Gate Array With Non Volatile Configuration, Microprocessors and Microsystems, vol. 13, No.5, pp. 305-312 (Apr. 1989) (Reprinted Apr. 1990 in Actel Databook).
9 *Asynchronous PAL20RA10, Advanced Micro Devices, PAL Device Data Book, Monolithic Memories, pp. 5-97 through 5-102 (1988).
10C.H. Roth, Jr., "Fundamentals of LOGIC DESIGN", Second Edition, West Publishing, pp. 22-23, 155-171 and 625-626 (1979).
11 *C.H. Roth, Jr., Fundamentals of LOGIC DESIGN , Second Edition, West Publishing, pp. 22-23, 155-171 and 625-626 (1979).
12 *Charles J. Sippl et al., Computer Dictionary & Handbook, Third Edition, pp. 220 and 265 (1982).
13CMOS LOGIC Databook, National Semiconductor, "MM54HC107/MM4HC107 Dual J-K Flip-Flops with Clear", pp. 3-75, 3-82 and 3-86 (1988).
14 *CMOS LOGIC Databook, National Semiconductor, MM54HC107/MM4HC107 Dual J K Flip Flops with Clear, pp. 3-75, 3-82 and 3-86 (1988).
15 *Computer Engineering: Hardware Design, M. Morris Mano, p. 104, (1988).
16 *Digital Design Principles and Practices, Wakerly, Computer Systems Laboratory, (Sep. 1989).
17 *Encyclopedia of Computer Science and Engineering, Second Edition, Van Nostrand Reinhold Company, pp. 879-881 and 1633 (1983).
18IEEE Journal of Solid State Circuits, "A 19-ns 250mW CMOS Erasable Programmable Logic Device", No. 5, vol. SC-21, pp. 775-784 (Oct. 1986).
19 *IEEE Journal of Solid State Circuits, A-19 ns 250mW CMOS Erasable Programmable Logic Device, No. 5, vol. SC-21, pp. 775-784 (Oct. 1986).
20IEEE Journal of Solid-State Circuits "Novel Circuit Techniques for Zero-Power 25-ns CMOS Erasable Programmable Logic Devices (EPLD's)", vol. SC-21, No. 5, pp. 766-774 (Oct. 1986).
21 *IEEE Journal of Solid-State Circuits Novel Circuit Techniques for Zero Power 25-ns CMOS Erasable Programmable Logic Devices ( EPLD s ), vol. SC-21, No. 5, pp. 766-774 (Oct. 1986).
22 *IEEE Standard Dictionary of Electrical and Electronics Terms, Second Edition, IEEE, p. 282 (1977).
23J. Rose, et al., "The Effect of Logic Block Complexity On Area Of Programmable Gate Arrays", IEEE 1989 Custom Integrated Circuits Conference, pp. 5.3.1 through 5.3.5 (1989).
24 *J. Rose, et al., The Effect of Logic Block Complexity On Area Of Programmable Gate Arrays, IEEE 1989 Custom Integrated Circuits Conference, pp. 5.3.1 through 5.3.5 (1989).
25 *K. El Ayat, et al., A CMOS Electrically Configurable Gate Array, IEEE Journal of Solid State Circuits, vol. 24, No. 3, pp. 752-761 (Jun. 1989).
26K. El-Ayat, et al., "A CMOS Electrically Configurable Gate Array", IEEE Journal of Solid-State Circuits, vol. 24, No. 3, pp. 752-761 (Jun. 1989).
27LSI Logic Databook and Design Manual, "HCMOS Macrocell Manual Chapter 9: Flip Flops and Latches", pp. 9-5-9-9, 12-87-12-88 and 12-94 (Oct. 1986).
28 *LSI Logic Databook and Design Manual, HCMOS Macrocell Manual Chapter 9: Flip Flops and Latches, pp. 9-5-9-9, 12-87-12-88 and 12-94 (Oct. 1986).
29 *Monolithic Memories, PAL /PLE Device Programmable Logic Array Handbook (Fifth Edition), pp. 1-2-1-16 (1978, 1981, 1985 and 1986).
30Monolithic Memories, PAL®/PLE™ Device Programmable Logic Array Handbook (Fifth Edition), pp. 1-2 -1-16 (1978, 1981, 1985 and 1986).
31 *PAL Device Data Book, Advanced Micro Devices, copyright 1988 by Advanced Micro Devices, pp. 5-97 through 5-102.
32 *Principles of CMOS VLSI Design A Systems Perspective, Weste et al., pp. 55-57 (Jun. 1988).
33 *R.P. Turner et al., The Illustrated Dictionary of Electronics, Tab Books, Inc., Third Edition, pp. 22-23, 345 and 357-358 (1985).
34S. Murugesan, "Programmable Universal Logic Module", International Journal of Electronics, vol. 40, No. 5, pp. 509-512 (May 1976).
35 *S. Murugesan, Programmable Universal Logic Module, International Journal of Electronics, vol. 40, No. 5, pp. 509-512 (May 1976).
36S. Yau, et al., "Universal Logic Modules and Their Applications", IEEE Transactions on Computers, vol. C-19, No. 2, pp. 141-149 (Feb. 1970).
37 *S. Yau, et al., Universal Logic Modules and Their Applications, IEEE Transactions on Computers, vol. C-19, No. 2, pp. 141-149 (Feb. 1970).
38 *The New IEEE Standard Dictionary of Electrical and Electronics Terms, IEEE, Fifth Edition, p. 549 (Jan. 1993).
39The Programmable Gate Array Data Book, "XC3000 Logic Cell Array Family", Xilinx, pp. 2-1 through 2-10 (1988).
40 *The Programmable Gate Array Data Book, XC3000 Logic Cell Array Family, Xilinx, pp. 2-1 through 2-10 (1988).
41 *The TTL Data Book for Design Engineers, Texas Instruments, Inc., 2nd Edition, pp. 7-181 to 7-182 (1976).
42V. Thomas Rhyne, "Fundamentals of Digital Systems Design", Prentice-Hall, pp. 69-71 and 86-87 (1973).
43 *V. Thomas Rhyne, Fundamentals of Digital Systems Design, Prentice Hall, pp. 69-71 and 86-87 (1973).
44X. Chen et al., "A Comparison of Universal-Logic Module Realizations and Their Application in the Synthesis of Combinatorial and Sequential Logic Networks", IEEE Trans. on Computers, vol. C-31, No. 2, pp. 140-147 (Feb. 1982).
45 *X. Chen et al., A Comparison of Universal Logic Module Realizations and Their Application in the Synthesis of Combinatorial and Sequential Logic Networks, IEEE Trans. on Computers, vol. C 31, No. 2, pp. 140-147 (Feb. 1982).
46Xilinx, The Programmable Gate Array Data Book, 2-1 -2-28 (1989).
47 *Xilinx, The Programmable Gate Array Data Book, 2-1-2-28 (1989).
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US6289400 *Apr 15, 1998Sep 11, 2001Infineon Technologies AgElectrical control device with configurable control modules
US6731138 *Jul 31, 2002May 4, 2004Intel CorporatioinCircuits and methods for selectively latching the output of an adder
US6996785Apr 25, 2003Feb 7, 2006Universal Network Machines, Inc .On-chip packet-based interconnections using repeaters/routers
US7376811 *Nov 6, 2001May 20, 2008Netxen, Inc.Method and apparatus for performing computations and operations on data using data steering
US7772093 *Oct 26, 2007Aug 10, 2010Xilinx, Inc.Method of and circuit for protecting a transistor formed on a die
Classifications
U.S. Classification326/40, 326/46
International ClassificationH03K3/356, H03K17/00, H03K19/177, H03K19/173
Cooperative ClassificationH03K19/17704, H03K19/1737, H03K19/1774, H03K19/17792, H03K19/1778, H03K19/17728, H03K19/17736
European ClassificationH03K19/177F, H03K19/177F2, H03K19/177D2, H03K19/177J, H03K19/177J6, H03K19/177B, H03K19/173C2
Legal Events
DateCodeEventDescription
Sep 10, 2009FPAYFee payment
Year of fee payment: 12
Sep 12, 2005FPAYFee payment
Year of fee payment: 8
Sep 5, 2001FPAYFee payment
Year of fee payment: 4