US20020070755A1 - Registered logic macrocell with product term allocation and adjacent product term stealing - Google Patents

Registered logic macrocell with product term allocation and adjacent product term stealing Download PDF

Info

Publication number
US20020070755A1
US20020070755A1 US10/076,752 US7675202A US2002070755A1 US 20020070755 A1 US20020070755 A1 US 20020070755A1 US 7675202 A US7675202 A US 7675202A US 2002070755 A1 US2002070755 A1 US 2002070755A1
Authority
US
United States
Prior art keywords
circuitry
macrocell
signal
register
output
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.)
Abandoned
Application number
US10/076,752
Inventor
Bruce Pedersen
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.)
Altera Corp
Original Assignee
Altera Corp
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 US07/691,640 external-priority patent/US5241224A/en
Priority claimed from US08/043,146 external-priority patent/US5268598A/en
Priority claimed from US08/123,435 external-priority patent/US5384499A/en
Application filed by Altera Corp filed Critical Altera Corp
Priority to US10/076,752 priority Critical patent/US20020070755A1/en
Publication of US20020070755A1 publication Critical patent/US20020070755A1/en
Priority to US10/274,684 priority patent/US6707315B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources

Definitions

  • This invention relates to user programmable logic devices. More particularly, the invention relates to a macrocell in which product terms can be allocated between an OR gate and registered logic, and in which product terms can be summed together with product terms from an adjacent macrocell.
  • User programmable logic devices provide flexibility in digital logic design by allowing a designer to implement logic functions through a sum-of-products architecture typically composed of an array of AND gates connected to an array of OR gates.
  • the outputs from the AND gates are referred to as product terms.
  • the output of each OR gate provides the sum of the input product terms.
  • a macrocell receives a number of product terms as inputs. Some of the product terms are input to the OR gate. The output of the OR gate then is typically fed to a register which stores the result. Some devices feature additional combinatorial logic associated with the register (registered logic). This logic typically allows inputs to the register to be inverted or combined with the output of the register or with the product terms not used by the OR gate.
  • This invention provides a macrocell with product term allocation and adjacent product term stealing.
  • Programmable configuration switches provide product term allocation by directing input product terms to an OR gate or to the secondary inputs to a register.
  • Adjacent product term stealing is accomplished by providing the output of the OR gate of each macrocell as an input to the OR gate of an adjacent macrocell.
  • the adjacent macrocell steals the product terms input to the OR gate of the first macrocell for use in its own OR gate.
  • An arbitrarily wide OR function can be implemented by daisy chaining the OR gates of adjacent macrocells. By the process of adjacent product term stealing, product terms are allocated between macrocells.
  • the register and register accompanying logic can be used even when an adjacent macrocell steals the OR gate.
  • the register and register accompanying logic provide output control for the macrocell.
  • an EXCLUSIVE-OR gate with a plurality of selectable inputs allows the register to be implemented as a D or a T flip-flop.
  • FIGURE is a schematic diagram of an illustrative embodiment of the invention.
  • a preferred embodiment of the invention illustrated in the FIGURE, has five product terms 101 - 105 as inputs to macrocell 100 .
  • Each of product terms 101 - 105 is coupled to a respective one of programmable switches 111 - 115 .
  • a static architecture bit corresponds to each programmable switch 111 - 115 . Based on the state of its static architecture bit, each of programmable switches 111 - 115 selects as outputs two of its three inputs.
  • a static architecture bit can be implemented conventionally by storing charge in a floating gate memory cell or by blowing a fuse.
  • programmable switch 111 if its static architecture bit is HIGH, product term 101 appears at output 121 and a static LOW appears at output 131 . If its static architecture bit is LOW, a static HIGH appears on output 121 and product term 101 appears on output 131 .
  • Programmable switches 112 and 114 perform in the same manner. For programmable switches 113 and 115 a static LOW output replaces the static HIGH output, because these switches have a second input connected to ground in place of an input connected to Vcc.
  • Each product term 101 - 105 can be configured by means of the programmable switches 111 - 115 to act as an input either to OR gate 146 or to an alternate destination within register means 150 .
  • the alternate destinations for product terms 101 and 102 are the secondary inputs to XOR gate 162 .
  • the alternate destination for product term 101 also includes external output 151 via invertor 141 .
  • the alternate destinations for product terms 103 - 105 are the secondary inputs to register 180 .
  • OR gate 146 receives inputs 131 - 135 from programmable switches 111 - 115 and from input 137 .
  • Input 137 represents an input received from a first adjacent macrocell 300 .
  • First adjacent macrocell 300 may or may not be the same as macrocell 100 , but it must contain an OR gate 346 for summing product terms.
  • Inputs 131 - 135 each provide either a product term or a static LOW signal depending on the states of the static architecture bits controlling the programmable switches 111 - 115 .
  • OR gate 146 performs an OR function on a selected group of product terms and provides the sum of those product terms as an output.
  • Multiplexer 156 provides a mechanism for selecting either the output of OR gate 146 or a static LOW to serve as external output 157 .
  • Output 157 is input to the OR gate of a second adjacent macrocell 200 in the same manner that input 137 is an input to OR gate 146 .
  • Macrocell 200 may or may not be the same as macrocell 100 , but it must include an OR gate 246 for summing input product terms.
  • OR gate 146 By selecting the output of OR gate 146 to serve as external output 157 , an arbitrarily wide OR function can be implemented across a series of adjacent macrocells.
  • the process of linking the OR gates across a series of macrocells is known as daisy chaining.
  • OR gate 146 has six inputs; therefore, by daisy chaining two adjacent macrocells, an eleven input OR function can be implemented.
  • product term steering The process by which product terms are directed to alternate destinations depending on the states of static architecture bits is called product term steering. Because macrocells are commonly used to implement a sum-of-products architecture, it is often desirable to daisy chain OR gates to obtain the sum of a large number of product terms. Sometimes not all the product terms in a macrocell are utilized in the OR function. By steering unused product terms to the input to XOR gate 162 or to the secondary inputs to register 180 , these unused product terms can still implement useful logic.
  • a macrocell When a macrocell receives an input from the OR gate of an adjacent macrocell, it utilizes the product terms directed to that OR gate. Using product terms from an adjacent macrocell can be referred to as adjacent product term stealing. Allocating some of a macrocell's product terms to an OR gate and the remaining product terms to registered logic can be referred to as product term allocation.
  • OR gate 146 When not daisy chained to an adjacent macrocell via output 157 , the output of OR gate 146 serves as an input to multiplexer 154 .
  • the output of multiplexer 154 serves as an input to XOR 162 .
  • a static architecture bit determines whether multiplexer 154 selects the output of OR gate 146 or the output of programmable switch 112 as its output.
  • the output of programmable switch 112 is either product term 102 or a static HIGH signal, depending on the state of the static architecture bit corresponding to programmable switch 112 . Therefore, the output of multiplexer 154 is a static HIGH, product term 102 or the output of OR gate 146 depending on the states of two static architecture bits.
  • multiplexer 152 , multiplexer 154 and multiplexer 156 are all controlled by a single static architecture bit, although in alternate embodiments each could be controlled separately.
  • product term 102 can be routed through multiplexer 152 or through multiplexer 154 , but not through both.
  • OR gate 146 can be routed through multiplexer 154 or multiplexer 156 but not both.
  • Multiplexer 152 selects between output 122 of switch 112 or output 121 of switch 111 . Therefore, the output of multiplexer 152 is product term 101 , product term 102 or a static HIGH. Output 121 also serves as an input to inverter 141 which drives an external output signal 151 .
  • XOR gate 162 receives inputs from multiplexer 154 and multiplexer 160 .
  • Multiplexer 160 selects as its output one of four inputs based on the states of two static architecture bits. Multiplexer 160 selects from among the output of register 180 , the inverse of the output of register 180 , a static LOW, and an input from multiplexer 152 which is product term 101 , product term 102 or a static HIGH.
  • Product term 102 , a static HIGH or the output of OR gate 146 is input to XOR gate 162 via multiplexer 154 .
  • register 180 can be used to implement D or T flip-flops with inversion control on the D or T inputs.
  • the output of XOR gate 162 feeds the D input of register 180 and an input to multiplexer 194 .
  • the output of register 180 provides the second input to multiplexer 194 .
  • the state of a static architecture bit determines which input multiplexer 194 selects to be external output 196 .
  • Register 180 receives CLOCK, ENABLE, PRESET and asynchronous CLEAR inputs.
  • NOR gate 168 provides the CLEAR input 169 for register 180 .
  • the first input to NOR gate 168 comes from programmable switch 113 , which provides either product term 103 or a static LOW as input.
  • AND gate 164 provides the other input to NOR gate 168 .
  • a global CLEAR signal, GCLR for use in conjunction with all the macrocells in a device, provides a first input to AND gate 164 .
  • the global CLEAR function can be programmatically disabled by static architecture bit SB which provides the second input 165 to AND gate 164 .
  • Product term 105 selected by programmable switch 115 and inverted by inverter 190 provides the PRESET input 191 to register 180 . Therefore, the PRESET input 191 can be programmably disabled via the static architecture bit that controls programmable switch 115 .
  • Multiplexer 172 and multiplexer 174 which are controlled in this embodiment by a single static architecture bit provide the CLOCK and ENABLE inputs 173 , 175 respectively, to register 180 .
  • the CLOCK input derives either from a global clock signal SCLK 176 common to all macrocells within a device or from product term 104 via programmable switch 114 .
  • Product term 104 is also input to multiplexer 174 , but is connected in this embodiment such that depending on the state of the static architecture bit controlling multiplexers 172 and 174 , product term 104 is passed through only one of the multiplexers 172 , 174 .
  • the second input to multiplexer 174 is a static HIGH.
  • product term 104 serves either as a CLOCK signal via multiplexer 172 or as a synchronous clock ENABLE signal via multiplexer 174 in conjunction with the global clock signal SCLK 176 .
  • product term 104 provides either a clock signal via multiplexer 172 with a static HIGH serving as ENABLE via multiplexer 174 , or a global clock signal SCLK 176 serves as CLOCK with product term 104 acting as a synchronous clock ENABLE via multiplexer 174 .

Abstract

A macrocell with product term allocation and adjacent product term stealing is disclosed. Programmable configuration switches provide product term allocation by directing input product terms to an OR gate or to the secondary inputs to a register. Adjacent product term stealing is accomplished by providing the output of the OR gate of each macrocell as an input to the OR gate of an adjacent macrocell. By using the output of the OR gate of the first macrocell, the adjacent macrocell steals the product terms and the OR gate of the first macrocell for use in its own OR gate. An arbitrarily wide OR function can be implemented by daisy chaining the OR gates of adjacent macrocells. Because programmable configuration switches can direct individual input product terms to the register logic instead of the OR gate, the register logic can be used even when an adjacent macrocell steals the OR gate.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of provisional application No. 60/026,915, filed Sep. 24, 1996. This application is also a continuation of application Ser. No. 09/677,156, filed Oct. 2, 2000, which was a continuation of application Ser. No. 09/201,416, filed Nov. 30, 1998, now U.S. Pat. No. 6,157,208, which was a continuation of application Ser. No. 08/766,512, filed Dec. 13, 1996, now U.S. Pat. No. 5,861,760, which was a continuation-in-part of application Ser. No. 08/605,445, filed Feb. 26, 1996, now U.S. Pat. No. 5,598,108, which was a continuation of application Ser. No. 08/331,964, filed Oct. 31, 1994, now U.S. Pat. No. 5,557,217, which was a continuation of application Ser. No. 08/123,435, filed Sep. 17, 1993, now U.S. Pat. No. 5,384,499, which was a continuation-in-part of application Ser. No. 08/043,146, filed Mar. 31, 1993, now U.S. Pat. No. 5,268,598, which was a continuation of application Ser. No. 07/957,091, filed Oct. 6, 1992, now abandoned, which was a continuation of application Ser. No. 07/691,640, filed Apr. 25, 1991, now U.S. Pat. No. 5,241,224. [0001]
  • BACKGROUND OF THE INVENTION
  • This invention relates to user programmable logic devices. More particularly, the invention relates to a macrocell in which product terms can be allocated between an OR gate and registered logic, and in which product terms can be summed together with product terms from an adjacent macrocell. [0002]
  • User programmable logic devices provide flexibility in digital logic design by allowing a designer to implement logic functions through a sum-of-products architecture typically composed of an array of AND gates connected to an array of OR gates. The outputs from the AND gates are referred to as product terms. The output of each OR gate provides the sum of the input product terms. [0003]
  • Typically, a macrocell receives a number of product terms as inputs. Some of the product terms are input to the OR gate. The output of the OR gate then is typically fed to a register which stores the result. Some devices feature additional combinatorial logic associated with the register (registered logic). This logic typically allows inputs to the register to be inverted or combined with the output of the register or with the product terms not used by the OR gate. [0004]
  • In a typical macrocell, the number of product terms that can be ORed together is limited to the number of product terms that are input to the macrocell. Another type of conventional macrocell has the ability to share its OR function with a second macrocell, but in such a macrocell use of the OR function by the second macrocell precludes use of the remaining logic in the macrocell. Also, in a conventional macrocell having the ability to steer product terms to either an OR gate or to registered logic, use of the OR function must be sacrificed when product terms are steered to the registered logic. [0005]
  • In view of the foregoing, it is an object of this invention to provide a macrocell which supports summing of an arbitrary number of product terms by daisy chaining the OR gates of an arbitrary number of macrocells. It is a further object of this invention to provide a macrocell in which use of its OR function by another macrocell does not prevent the use of the remaining logic elements of the macrocell. It is another object of this invention to provide a macrocell in which product terms may be steered to the register logic without sacrificing use of the OR function. [0006]
  • The following are hereby incorporated by reference herein in their entireties: U.S. patent application Ser. No. 09/677,156, filed Oct. 2, 2000 (of which this is a continuation), and Pedersen U.S. Pat. No. 5,598,108 (also incorporated by reference in application Ser. No. 09/677,156). [0007]
  • SUMMARY OF THE INVENTION
  • This invention provides a macrocell with product term allocation and adjacent product term stealing. Programmable configuration switches provide product term allocation by directing input product terms to an OR gate or to the secondary inputs to a register. Adjacent product term stealing is accomplished by providing the output of the OR gate of each macrocell as an input to the OR gate of an adjacent macrocell. By using the output of the OR gate of the first macrocell, the adjacent macrocell steals the product terms input to the OR gate of the first macrocell for use in its own OR gate. An arbitrarily wide OR function can be implemented by daisy chaining the OR gates of adjacent macrocells. By the process of adjacent product term stealing, product terms are allocated between macrocells. Because the programmable configuration switches can direct individual input product terms to the secondary inputs to the register instead of the OR gate, the register and register accompanying logic can be used even when an adjacent macrocell steals the OR gate. The register and register accompanying logic provide output control for the macrocell. In one preferred embodiment, an EXCLUSIVE-OR gate with a plurality of selectable inputs allows the register to be implemented as a D or a T flip-flop.[0008]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The above and other objects and advantages of the invention will be apparent on consideration of the following detailed description, taken in conjunction with the accompanying FIGURE, which is a schematic diagram of an illustrative embodiment of the invention.[0009]
  • DETAILED DESCRIPTION OF THE INVENTION
  • A preferred embodiment of the invention, illustrated in the FIGURE, has five product terms [0010] 101-105 as inputs to macrocell 100. Each of product terms 101-105 is coupled to a respective one of programmable switches 111-115. A static architecture bit corresponds to each programmable switch 111-115. Based on the state of its static architecture bit, each of programmable switches 111-115 selects as outputs two of its three inputs. A static architecture bit can be implemented conventionally by storing charge in a floating gate memory cell or by blowing a fuse.
  • Using [0011] programmable switch 111 as an example, if its static architecture bit is HIGH, product term 101 appears at output 121 and a static LOW appears at output 131. If its static architecture bit is LOW, a static HIGH appears on output 121 and product term 101 appears on output 131. Programmable switches 112 and 114 perform in the same manner. For programmable switches 113 and 115 a static LOW output replaces the static HIGH output, because these switches have a second input connected to ground in place of an input connected to Vcc.
  • Each product term [0012] 101-105 can be configured by means of the programmable switches 111-115 to act as an input either to OR gate 146 or to an alternate destination within register means 150. The alternate destinations for product terms 101 and 102 are the secondary inputs to XOR gate 162. The alternate destination for product term 101 also includes external output 151 via invertor 141. The alternate destinations for product terms 103-105 are the secondary inputs to register 180.
  • OR [0013] gate 146 receives inputs 131-135 from programmable switches 111-115 and from input 137. Input 137 represents an input received from a first adjacent macrocell 300. First adjacent macrocell 300 may or may not be the same as macrocell 100, but it must contain an OR gate 346 for summing product terms.
  • Inputs [0014] 131-135 each provide either a product term or a static LOW signal depending on the states of the static architecture bits controlling the programmable switches 111-115. Thus, OR gate 146 performs an OR function on a selected group of product terms and provides the sum of those product terms as an output.
  • [0015] Multiplexer 156 provides a mechanism for selecting either the output of OR gate 146 or a static LOW to serve as external output 157. Output 157 is input to the OR gate of a second adjacent macrocell 200 in the same manner that input 137 is an input to OR gate 146. Macrocell 200 may or may not be the same as macrocell 100, but it must include an OR gate 246 for summing input product terms. By selecting the output of OR gate 146 to serve as external output 157, an arbitrarily wide OR function can be implemented across a series of adjacent macrocells. The process of linking the OR gates across a series of macrocells is known as daisy chaining. In the illustrative embodiment OR gate 146 has six inputs; therefore, by daisy chaining two adjacent macrocells, an eleven input OR function can be implemented.
  • The process by which product terms are directed to alternate destinations depending on the states of static architecture bits is called product term steering. Because macrocells are commonly used to implement a sum-of-products architecture, it is often desirable to daisy chain OR gates to obtain the sum of a large number of product terms. Sometimes not all the product terms in a macrocell are utilized in the OR function. By steering unused product terms to the input to [0016] XOR gate 162 or to the secondary inputs to register 180, these unused product terms can still implement useful logic.
  • Generally, the logic associated with [0017] XOR gate 162 and register 180 will be used to direct the output of OR gate 146 to external output 196. Therefore, the principal advantage to product term steering arises when OR gate 146 is daisy chained to an adjacent macrocell, because this is when the logic associated with XOR gate 162 and register 180 is typically unused.
  • When a macrocell receives an input from the OR gate of an adjacent macrocell, it utilizes the product terms directed to that OR gate. Using product terms from an adjacent macrocell can be referred to as adjacent product term stealing. Allocating some of a macrocell's product terms to an OR gate and the remaining product terms to registered logic can be referred to as product term allocation. [0018]
  • When not daisy chained to an adjacent macrocell via [0019] output 157, the output of OR gate 146 serves as an input to multiplexer 154. The output of multiplexer 154 serves as an input to XOR 162. A static architecture bit determines whether multiplexer 154 selects the output of OR gate 146 or the output of programmable switch 112 as its output. The output of programmable switch 112 is either product term 102 or a static HIGH signal, depending on the state of the static architecture bit corresponding to programmable switch 112. Therefore, the output of multiplexer 154 is a static HIGH, product term 102 or the output of OR gate 146 depending on the states of two static architecture bits. In the present embodiment, multiplexer 152, multiplexer 154 and multiplexer 156 are all controlled by a single static architecture bit, although in alternate embodiments each could be controlled separately. By controlling three elements with one bit, product term 102 can be routed through multiplexer 152 or through multiplexer 154, but not through both. Likewise, the output of OR gate 146 can be routed through multiplexer 154 or multiplexer 156 but not both.
  • [0020] Multiplexer 152 selects between output 122 of switch 112 or output 121 of switch 111. Therefore, the output of multiplexer 152 is product term 101, product term 102 or a static HIGH. Output 121 also serves as an input to inverter 141 which drives an external output signal 151.
  • [0021] XOR gate 162 receives inputs from multiplexer 154 and multiplexer 160. Multiplexer 160 selects as its output one of four inputs based on the states of two static architecture bits. Multiplexer 160 selects from among the output of register 180, the inverse of the output of register 180, a static LOW, and an input from multiplexer 152 which is product term 101, product term 102 or a static HIGH. Product term 102, a static HIGH or the output of OR gate 146 is input to XOR gate 162 via multiplexer 154. By properly selecting the inputs to XOR gate 162, register 180 can be used to implement D or T flip-flops with inversion control on the D or T inputs.
  • The output of [0022] XOR gate 162 feeds the D input of register 180 and an input to multiplexer 194. The output of register 180 provides the second input to multiplexer 194. The state of a static architecture bit determines which input multiplexer 194 selects to be external output 196.
  • [0023] Register 180 receives CLOCK, ENABLE, PRESET and asynchronous CLEAR inputs. NOR gate 168 provides the CLEAR input 169 for register 180. The first input to NOR gate 168 comes from programmable switch 113, which provides either product term 103 or a static LOW as input. AND gate 164 provides the other input to NOR gate 168. A global CLEAR signal, GCLR, for use in conjunction with all the macrocells in a device, provides a first input to AND gate 164. The global CLEAR function can be programmatically disabled by static architecture bit SB which provides the second input 165 to AND gate 164.
  • [0024] Product term 105, selected by programmable switch 115 and inverted by inverter 190 provides the PRESET input 191 to register 180. Therefore, the PRESET input 191 can be programmably disabled via the static architecture bit that controls programmable switch 115.
  • Multiplexer [0025] 172 and multiplexer 174, which are controlled in this embodiment by a single static architecture bit provide the CLOCK and ENABLE inputs 173, 175 respectively, to register 180. The CLOCK input derives either from a global clock signal SCLK 176 common to all macrocells within a device or from product term 104 via programmable switch 114. Product term 104 is also input to multiplexer 174, but is connected in this embodiment such that depending on the state of the static architecture bit controlling multiplexers 172 and 174, product term 104 is passed through only one of the multiplexers 172, 174. The second input to multiplexer 174 is a static HIGH. Therefore, product term 104 serves either as a CLOCK signal via multiplexer 172 or as a synchronous clock ENABLE signal via multiplexer 174 in conjunction with the global clock signal SCLK 176. Thus in the present embodiment, product term 104 provides either a clock signal via multiplexer 172 with a static HIGH serving as ENABLE via multiplexer 174, or a global clock signal SCLK 176 serves as CLOCK with product term 104 acting as a synchronous clock ENABLE via multiplexer 174.
  • It will be understood that the foregoing is merely illustrative of the principles of this invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. [0026]

Claims (36)

What is claimed is:
1. A macrocell comprising:
first logic gate circuitry which performs an OR function;
register circuitry;
a plurality of product term signal conductors;
first signal steering circuitry capable of coupling one of the product term signal conductors to the first logic gate circuitry or to the register circuitry; and
second signal steering circuitry capable of coupling the output of the first logic gate circuitry to an input of first logic gate circuitry in a second macrocell.
2. The macrocell of claim 1, wherein each of the first and second signal steering circuitry includes at least one switch.
3. The macrocell of claim 1, wherein each of the first and second signal steering circuitry includes at least one multiplexer.
4. The macrocell of claim 1, wherein the register circuitry includes a register,the macrocell further comprising third signal steering circuitry capable of coupling to the register one of the product term signal conductors and a secondary signal.
5. The macrocell of claim 4, wherein the third signal steering circuitry includes a static architecture bit.
6. The macrocell of claim 4, wherein the secondary signal includes a clock, clear, enable, or preset signal.
7. The macrocell of claim 6, wherein the clock signal is a global clock signal.
8. The macrocell of claim 6, wherein the clear signal is a global clear signal.
9. The macrocell of claim 1, further comprising:
second logic gate circuitry that performs an EXCLUSIVE OR function and is coupled to the output of the first logic gate circuitry and the register circuitry.
10. The macrocell of claim 1, wherein each of the first and second signal steering circuitry includes at least one static architecture bit.
11. The macrocell of claim 1, further comprising:
an external signal coupled to an input of the first logic gate circuitry, wherein the external signal is an output of the first logic gate circuitry in an adjacent macrocell.
12. The macrocell of claim 1, wherein one product term signal conductor is coupled to an alternate output of the macrocell, the alternate output thereby acting as an expander.
13. The macrocell of claim 12, wherein the alterate output is input to another macrocell as a product term signal conductor.
14. The macrocell of claim 1, further comprising:
a multiplexer for selecting as an external output from the macrocell the output of the register circuitry or the output of the first logic gate circuitry.
15. The macrocell of claim 1, wherein the register circuitry includes fourth signal steering circuitry for allowing a product term to enable the register circuitry.
16. The macrocell of claim 1, wherein the register circuitry includes fifth signal steering circuitry for allowing a product term to be used for presetting the register circuitry.
17. The macrocell of claim 1, wherein the register circuitry includes sixth signal steering circuitry for allowing a product term to be used to clear the register circuitry.
18. The macrocell of claim 1, further comprising:
a first multiplexer having a product term as a first input and a sum of product terms as a second input;
a second multiplexer having a product term as a first input, a static LOW as a second input, the output of the register circuitry as a third input, and the inverted output of the register circuitry as a fourth input; and
second logic gate circuitry which performs EXCLUSIVE-OR logic having a first input from the output of the first multiplexer and a second input from the output of the second multiplexer, and having its output coupled to the input of the register circuitry.
19. A macrocell comprising:
first logic gate circuitry which performs an OR function;
register circuitry;
a plurality of product term signals;
first switching circuitry selectively coupling one of the product term signals to the first logic gate circuitry and to the register circuitry, wherein one product term signal is additionally capable of functioning as an expander by coupling to an alternate output of the macrocell; and
second switching circuitry selectively coupling the output of the first logic gate circuitry to an input of first logic gate circuitry in a second macrocell.
20. The macrocell of claim 19, wherein each of the first and second switching circuitry includes at least one static architecture bit.
21. The macrocell of claim 19, wherein each of the first and second switching circuitry includes at least one multiplexer.
22. The macrocell of claim 19, wherein the register circuitry includes a register, the macrocell further comprising:
third switching circuitry capable of coupling to the register one of the product term signals and a secondary signal.
23. The macrocell of claim 22, wherein the register is capable of operating as a D flip-flop or a T flip-flop.
24. The macrocell of claim 22, wherein the secondary signal is a clock, clear, enable, or preset signal.
25. The macrocell of claim 24, wherein the clock signal is a global clock signal.
26. The macrocell of claim 24, wherein the clear signal is a global clear signal.
27. The macrocell of claim 19, further comprising:
second logic gate circuitry that performs an EXCLUSIVE OR function and is coupled between an output of the first logic gate circuitry and the register circuitry.
28. The macrocell of claim 19, further comprising:
a multiplexer for selecting as an external output from the macrocell the output of the register circuitry or the output of the first logic gate circuitry.
29. The macrocell of claim 19, wherein the register circuitry includes a switch for selectively coupling one of the product term signals and an external clock signal to a clock input of the register circuitry.
30. A logic array block comprising:
a first macrocell comprising first logic gate circuitry which performs an OR function; and
a second macrocell comprising:
second logic gate circuitry which performs an OR function;
register circuitry;
product term signal conductors;
first signal steering circuitry coupling one of the product term signal conductors to the second logic gate circuitry and to the register circuitry; and
second signal steering circuitry coupling the output of the second logic gate circuitry to the input of the first logic gate circuitry.
31. The logic array block of claim 30, wherein the second macrocell further comprises an external signal coupled to the input of the second logic gate circuitry.
32. The logic array block of claim 31 wherein the external signal comprises the output of a third logic circuitry that performs OR logic in a third macrocell.
33. A logic array block comprising a plurality of macrocells, each one of the macrocells comprising:
first logic gate circuitry which performs an OR function;
register circuitry;
product term signal conductors;
first switching circuitry selectively coupling one of the product term signal conductors to the first logic gate circuitry and to the register circuitry; and
second switching circuitry selectively coupling the output of the first logic gate circuitry to the input of a first logic gate circuitry in an adjacent macrocell.
34. The logic array block of claim 33, wherein one product term signal conductor is additionally capable of functioning as an expander by coupling to an alternate output of the macrocell.
35. The logic array block of claim 34, wherein the expander is coupled to the product term signal conductors in a plurality of macrocells of the logic array block.
36. The logic array block of claim 35, wherein the expander is coupled to the product term signal conductors in each macrocell of the logic array block.
US10/076,752 1991-04-25 2002-02-14 Registered logic macrocell with product term allocation and adjacent product term stealing Abandoned US20020070755A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/076,752 US20020070755A1 (en) 1991-04-25 2002-02-14 Registered logic macrocell with product term allocation and adjacent product term stealing
US10/274,684 US6707315B2 (en) 1991-04-25 2002-10-17 Registered logic macrocell with product term allocation and adjacent product term stealing

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US07/691,640 US5241224A (en) 1991-04-25 1991-04-25 High-density erasable programmable logic device architecture using multiplexer interconnections
US95709192A 1992-10-06 1992-10-06
US08/043,146 US5268598A (en) 1991-04-25 1993-03-31 High-density erasable programmable logic device architecture using multiplexer interconnections
US08/123,435 US5384499A (en) 1991-04-25 1993-09-17 High-density erasable programmable logic device architecture using multiplexer interconnections
US08/331,964 US5557217A (en) 1991-04-25 1994-10-31 High-density erasable programmable logic device architecture using multiplexer interconnections
US08/605,445 US5598108A (en) 1991-04-25 1996-02-26 High-density erasable programmable logic device architecture using multiplexer interconnections, and registered macrocell with product term allocation and adjacent product term stealing
US2691596P 1996-09-24 1996-09-24
US08/766,512 US5861760A (en) 1991-04-25 1996-12-13 Programmable logic device macrocell with improved capability
US09/201,416 US6157208A (en) 1991-04-25 1998-11-30 Programmable logic device macrocell with improved logic capability
US09/677,156 US6366119B1 (en) 1991-04-25 2000-10-02 Programmable logic device macrocell with improved logic capability
US10/076,752 US20020070755A1 (en) 1991-04-25 2002-02-14 Registered logic macrocell with product term allocation and adjacent product term stealing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/677,156 Continuation US6366119B1 (en) 1991-04-25 2000-10-02 Programmable logic device macrocell with improved logic capability

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/274,684 Continuation US6707315B2 (en) 1991-04-25 2002-10-17 Registered logic macrocell with product term allocation and adjacent product term stealing

Publications (1)

Publication Number Publication Date
US20020070755A1 true US20020070755A1 (en) 2002-06-13

Family

ID=46253224

Family Applications (5)

Application Number Title Priority Date Filing Date
US08/766,512 Expired - Lifetime US5861760A (en) 1991-04-25 1996-12-13 Programmable logic device macrocell with improved capability
US09/201,416 Expired - Fee Related US6157208A (en) 1991-04-25 1998-11-30 Programmable logic device macrocell with improved logic capability
US09/677,156 Expired - Fee Related US6366119B1 (en) 1991-04-25 2000-10-02 Programmable logic device macrocell with improved logic capability
US10/076,752 Abandoned US20020070755A1 (en) 1991-04-25 2002-02-14 Registered logic macrocell with product term allocation and adjacent product term stealing
US10/274,684 Expired - Fee Related US6707315B2 (en) 1991-04-25 2002-10-17 Registered logic macrocell with product term allocation and adjacent product term stealing

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US08/766,512 Expired - Lifetime US5861760A (en) 1991-04-25 1996-12-13 Programmable logic device macrocell with improved capability
US09/201,416 Expired - Fee Related US6157208A (en) 1991-04-25 1998-11-30 Programmable logic device macrocell with improved logic capability
US09/677,156 Expired - Fee Related US6366119B1 (en) 1991-04-25 2000-10-02 Programmable logic device macrocell with improved logic capability

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/274,684 Expired - Fee Related US6707315B2 (en) 1991-04-25 2002-10-17 Registered logic macrocell with product term allocation and adjacent product term stealing

Country Status (1)

Country Link
US (5) US5861760A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5861760A (en) 1991-04-25 1999-01-19 Altera Corporation Programmable logic device macrocell with improved capability
US6747480B1 (en) 2002-07-12 2004-06-08 Altera Corporation Programmable logic devices with bidirect ional cascades

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4415818A (en) 1979-01-16 1983-11-15 Nippon Telegraph & Telephone Corp. Programmable sequential logic circuit devices
US5027315A (en) * 1984-09-28 1991-06-25 Advanced Micro Devices, Inc. Programmable logic array using internally generated dynamic logic signals as selection signals for controlling its functions
US5015884A (en) 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
US4963768A (en) 1985-03-29 1990-10-16 Advanced Micro Devices, Inc. Flexible, programmable cell array interconnected by a programmable switch matrix
US4742252A (en) * 1985-03-29 1988-05-03 Advanced Micro Devices, Inc. Multiple array customizable logic device
US4758746A (en) * 1985-08-12 1988-07-19 Monolithic Memories, Inc. Programmable logic array with added array of gates and added output routing flexibility
US4763020B1 (en) 1985-09-06 1997-07-08 Ricoh Kk Programmable logic device having plural programmable function cells
US4771285A (en) 1985-11-05 1988-09-13 Advanced Micro Devices, Inc. Programmable logic cell with flexible clocking and flexible feedback
US5168177A (en) * 1985-12-06 1992-12-01 Advanced Micro Devices, Inc. Programmable logic device with observability and preloadability for buried state registers
US4789951A (en) * 1986-05-16 1988-12-06 Advanced Micro Devices, Inc. Programmable array logic cell
US4983959A (en) * 1986-10-01 1991-01-08 Texas Instruments Incorporated Logic output macrocell
US4918641A (en) * 1987-08-26 1990-04-17 Ict International Cmos Technology, Inc. High-performance programmable logic device
US4878200A (en) 1987-12-30 1989-10-31 Intel Corporation Product term sharing/allocation in an EPROM array
US5023606A (en) 1988-01-13 1991-06-11 Plus Logic, Inc. Programmable logic device with ganged output pins
JPH0611113B2 (en) * 1988-01-14 1994-02-09 川崎製鉄株式会社 Programmable logic element
US4903223A (en) * 1988-05-05 1990-02-20 Altera Corporation Programmable logic device with programmable word line connections
US4871930A (en) * 1988-05-05 1989-10-03 Altera Corporation Programmable logic device with array blocks connected via programmable interconnect
US4864161A (en) * 1988-05-05 1989-09-05 Altera Corporation Multifunction flip-flop-type circuit
JP2548301B2 (en) * 1988-05-25 1996-10-30 富士通株式会社 Programmable logic circuit device
US4879481A (en) * 1988-09-02 1989-11-07 Cypress Semiconductor Corporation Dual I/O macrocell for high speed synchronous state machine
US5023484A (en) 1988-09-02 1991-06-11 Cypress Semiconductor Corporation Architecture of high speed synchronous state machine
US4894563A (en) 1988-10-11 1990-01-16 Atmel Corporation Output macrocell for programmable logic device
US4912345A (en) * 1988-12-29 1990-03-27 Sgs-Thomson Microelectronics, Inc. Programmable summing functions for programmable logic devices
US4942319A (en) * 1989-01-19 1990-07-17 National Semiconductor Corp. Multiple page programmable logic architecture
US4967107A (en) 1989-05-12 1990-10-30 Plus Logic, Inc. Programmable logic expander
US5457409A (en) 1992-08-03 1995-10-10 Advanced Micro Devices, Inc. Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices
US5027011A (en) 1989-10-31 1991-06-25 Sgs-Thomson Microelectronics, Inc. Input row drivers for programmable logic devices
US5079451A (en) * 1990-12-13 1992-01-07 Atmel Corporation Programmable logic device with global and local product terms
US5220214A (en) 1991-04-22 1993-06-15 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5121006A (en) 1991-04-22 1992-06-09 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5861760A (en) 1991-04-25 1999-01-19 Altera Corporation Programmable logic device macrocell with improved capability
US5384499A (en) * 1991-04-25 1995-01-24 Altera Corporation High-density erasable programmable logic device architecture using multiplexer interconnections
US5191243A (en) * 1991-05-06 1993-03-02 Lattice Semiconductor Corporation Output logic macrocell with enhanced functional capabilities
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5231312A (en) * 1992-03-12 1993-07-27 Atmel Corporation Integrated logic circuit with functionally flexible input/output macrocells
US5350954A (en) * 1993-03-29 1994-09-27 Altera Corporation Macrocell with flexible product term allocation
US5450608A (en) 1993-04-15 1995-09-12 Intel Corporation Programmable logic having selectable output states for initialization and resets asynchronously using control bit associated with each product term
US5414376A (en) * 1993-12-28 1995-05-09 Micron Semiconductor, Inc. Programmable logic device macrocell having exclusive lines for feedback and external input, and a node which is selectively shared for registered output and external input
US5821774A (en) * 1995-05-26 1998-10-13 Xilinx, Inc. Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure

Also Published As

Publication number Publication date
US6157208A (en) 2000-12-05
US20030038654A1 (en) 2003-02-27
US6707315B2 (en) 2004-03-16
US6366119B1 (en) 2002-04-02
US5861760A (en) 1999-01-19

Similar Documents

Publication Publication Date Title
US5121006A (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5220214A (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5350954A (en) Macrocell with flexible product term allocation
US5399922A (en) Macrocell comprised of two look-up tables and two flip-flops
US5570051A (en) Multiplexed by-passable memory devices with increased speed and improved flip-flop utilization
US5341044A (en) Flexible configuration logic array block for programmable logic devices
US5563529A (en) High speed product term allocation structure supporting logic iteration after committing device pin locations
US5835998A (en) Logic cell for programmable logic devices
EP0607657B1 (en) Programmable logic device and method of operation
EP0767421B1 (en) Look up table implementation of fast carry for adders and counters
US5473266A (en) Programmable logic device having fast programmable logic array blocks and a central global interconnect array
US4963768A (en) Flexible, programmable cell array interconnected by a programmable switch matrix
US6636070B1 (en) Driver circuitry for programmable logic devices with hierarchical interconnection resources
US5444394A (en) PLD with selective inputs from local and global conductors
US6392438B1 (en) Programmable logic array integrated circuit devices
US5136188A (en) Input/output macrocell for programmable logic device
US5053646A (en) Programmable logic device having expanded logic capability
US5235221A (en) Field programmable logic array with speed optimized architecture
US5298803A (en) Programmable logic device having low power microcells with selectable registered and combinatorial output signals
US6707315B2 (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5414376A (en) Programmable logic device macrocell having exclusive lines for feedback and external input, and a node which is selectively shared for registered output and external input
US6069488A (en) Programmable logic device with versatile exclusive or architecture
US6263482B1 (en) Programmable logic device having macrocells with selectable product-term inversion
GB2325071A (en) Programmable logic array
WO1999059088A2 (en) A programmable logic device with macrocell controlled by a pla

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE