CA1139375A - Programmable array logic circuit - Google Patents
Programmable array logic circuitInfo
- Publication number
- CA1139375A CA1139375A CA000306785A CA306785A CA1139375A CA 1139375 A CA1139375 A CA 1139375A CA 000306785 A CA000306785 A CA 000306785A CA 306785 A CA306785 A CA 306785A CA 1139375 A CA1139375 A CA 1139375A
- Authority
- CA
- Canada
- Prior art keywords
- gates
- gate
- output
- logical
- inputs
- 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.)
- Expired
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 8
- 239000004020 conductor Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 238000003491 array Methods 0.000 description 9
- 238000007664 blowing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Landscapes
- Logic Circuits (AREA)
Abstract
ABSTRACT OF THE DISCLOSURE
The specification describes a programmable integrated logic circuit array which comprises a plurality of AND gates, each AND gate having a plurality of inputs and an output, and a plurality of OR gates. The circuit array includes a program-mable matrix which comprises a plurality of input lines for the inputs to the AND gates and non-programmable connections between the outputs of sub-pluralities of the AND gates and predetermined and select individual one of the OR gates. The array also includes a register, connected to the output of at least one of the logical OR gates for storing the logical state of the OR gate to which it is connected, gating circuits con-nected to the output of at least one of the OR gates, feedback circuits for connecting the output of each gating circuit to selected ones of the input lines, and an arrangement for gating each of the gating circuits to either disable or enable the OR gate.
The specification describes a programmable integrated logic circuit array which comprises a plurality of AND gates, each AND gate having a plurality of inputs and an output, and a plurality of OR gates. The circuit array includes a program-mable matrix which comprises a plurality of input lines for the inputs to the AND gates and non-programmable connections between the outputs of sub-pluralities of the AND gates and predetermined and select individual one of the OR gates. The array also includes a register, connected to the output of at least one of the logical OR gates for storing the logical state of the OR gate to which it is connected, gating circuits con-nected to the output of at least one of the OR gates, feedback circuits for connecting the output of each gating circuit to selected ones of the input lines, and an arrangement for gating each of the gating circuits to either disable or enable the OR gate.
Description
li3~ ~iS
BACKGROUND OF THE INVE~I~IO~I
.
Fusable links used in bipolar PROMS ~programmable Read-Only Memories) have given the digital systems designer the ability to "write on silicon". In a little more than a few seconds, an algorithm, a process, or a boolean transfer function can be permanently provided in the regular structure of an integrated circuit (IC) read-only memory.
PROMS are useful for many purposes including micro-program stores for high speed processors and controllers, non-volatile program stores for minicomputers and microprocessors, and high speed character generation and look up tables.
More recently, programmable integrated circuits have been extended to logic circuit arrays. These are sometimes referred to as PLAs (Programmable Logic Arrays) and FPLAs (Field Programmable Logic ~rrays). FPLAs, in contrast to earlier mask-programmable circuits, can be programmed away from the place they are manufactured. Any problems in a programmed design that are discovered can be corrected simply by pro~ramming a new FPLA and discarding the old one. If the particular application has high enough volumes to cost justify it, a mask can be designed subsequently so that mask-programmable arrays can be made.
PLAs are used in the implementation of random logic networks, data routing, code converters, instruction decoders, state sequences, and a variety of other functions. ~or a general discussion of PLAs and FPLAs, reference is made to Electronic Design, Vol. 18, September 1, 1976, "pLAs or ~Ps?
.
At Times They Compete, and At O~er ~mes Ihey Cboperate", pp 24-30.
Existing FPLAs comprise an array of logical AND
r cg/~
113~?~ 7~
and O~ gates which can be programmed for a specific function.
Each output function is the sum (logical OR) of selected products (logical ANDs) where each product is the product of selected polarities of selected inputs.
FPLAs can be programmed so that (1) any input line can be connected to any AND gate input and (2) any of the products (ANDs) can be summed by any of the OR gates. m is is accomplished by providing a programmable array or matrix (1) between the circuit inputs and the AND gate inputs and (2) between the output of the AND gates and the inputs of the OR
gates, respectively. The FPLA is then programmed by blowing or not blowing the fusible links connecting the conductors of the two arrays much the same way as PROMs are programmed. Examples of such FPLAs are Signetic Models 82S100 and 82S101.
Existing FPSAs as described above, while useful in many applications, have certain disadvantages. First, the size of the IC chip is quite large, due to the use of two programmable arrays per FPLA~ This means lower yields, sreater costs, and larger IC packages.
Secondly, the flexibility of such FPLAs is limited.
They are limited as to the number of inputs, speed, and perhaps most importantly, architecture. Existing FPLAs are very limited in terms of the logical and arithmetical operations they can perform.
SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide improved field programmable circuit arrays;
Another object of the invention is to provide an im-proved field programmable logic circuit array which is smaller ir/! - 2 -11393 ~
in cllip size and less costly to fabricate and package;
Another object of the invention is to provide improved field programmable logic circuit arrays with improved archi-tectural design and function;
Another object of the invention is to provide a family of field programmable logic arrays to give maximum flexibility for circuit design and implementation;
Yet another object of the invention is to provide field programmable circuit arrays which permit arithmetical as well as logical circuit functions.
In accordance with the present invention, an improved FPLA, hereinafter referred to as a programmable array logic (PAL), comprises a single programmable array or matrix of circuit inputs and the inputs to a plurality of AND gates (product terms).
Output from subgroups of AND gates, in turn, are nonprogrammably connected as inputs to individual, specified OR gates (sum of the products).
By making the AND gate inputs programmable, i.e.
selectable by the designer, while having the OR gate inputs non-programmable, some design flexibility is sacrificed. However, the reduction in IC chip size for the PAL more than makes up for the slight reduction in flexibility. Smaller chip size means greater yields and hence lower costs. Smaller chip size also means that smaller, more convenient packaging can be used. For example, a package size of approximately 300 mils wide by 1000 mils long with 20 pins is easily accomplished. This compares with the 600 mils ~y 1400 mils package size, and 28 pins, for existing FPLAs of comparable circuit components and function.
In accordance with another aspect of the present jr/~"
113',~
invention, PALs are provided having greater desiqn and operational flexibility than existing FPSAs. This is accomplished through improved architectural design.
One improved architectural feature is the use of registered outputs with feedback. Registers are provided at OR gate outputs which allows temporary storage of the OR gate outputs. Additionally, a feedback path from each such register to the AND gate array is provided. This combination forms a state sequencer which can be programmed to execute elementary sequences such as count up, count down, shift, skip, and branch.
In accordance with another feature of the invention, a feedback path is provided back to the AND gate array from the output of OR gates. This allows the OR gate outputs to be sent back to the AND gate array at the same time they are provided to the output pins. Additionally, programmable means are pro-vided to selectively enable or disable the OR gate outputs.
When enabled, the OR gate output is the PAL output. When dis-abled, the output pin can be used as an input pin and the feed-back path serves as another PAL input to the AND gate array.
The use of internal PAL feedback paths gives flexi-bility to the designer. It also reduces the number of external PAL connections. This has the salutorious effect of increasing the number of inputs to the product terms without increasing the number of pins.
The OR gate enable/disable feature allows greater flexibility in providing the ratio of inputs and outputs. In the static case, by disabling OR gates, more inputs to the PAL is provided. In the dynamic case, the feature provides a bidirectional pin for operations such as shifting.
ir/J~' '' In accordance with another ob~ect of the invention the PAL of the present invention is provided with a combination of exclusive OR gates (XOR~ and additional OR logic circuitry at the input to the AND gate array. This permits PAL circuitry to perform arithmetic as well as logical circuit operations.
In accordance with the present invention there is provided a programmable array of integrated logic circuitry comprising: a) a plurality of AND gates, each AND gate having a plurality of inputs and an output; b) a programmable matrix comprising a plurality of input lines and the inputs to the AND gates; c) a plurality of OR gates; d) non-programmable electrical connections between the outputs of sub-pluralities of the AND gates and predetermined and select individual ones of the OR gates; and e) register means connected to the output of at least one of the logical OR gates for storing the logical state of the OR gate to which it is connected.
RIEF DESCRIPTION OF THE DRAWINGS_ Figure 1 is a schematic illustration of one embodiment of an unprogrammed and uncompleted Programmable Array Logic (PAL) circuit in accordance with the present invention.
Figure 2 is a more detailed schematic diagram of the PAL circuit of Figure 1.
Figure 3A is a conventional schematic diagram re-presenting and AND gate with four inputs; Figure 3B shows the same AND gate of Figure 3A in a new sy~bology and Figure 3C
illustrates schematically the fusible connection used in a programmable array.
Figure 4 illustrates in the new symbology the AND
gate circuit of Figure 2.
5 _ ~ jr/ '~"
1139;~'75 Figure 5A is a logic circuit diagram for a particular transfer function; and Figure 5B is a programmed version of the circuit of Figure 4 to provide the transfer function of Figure 5A.
Figures 6A-6I show the uncompleted PAL circuit of Figure 1 in a variety of configurations.
Figure 7 is a schematic diagram of another uncompleted PAL circuit configuration.
Figure 8 is a schematic diagram of a part of the PAL circuit of Figure 7.
Figure 9 is a schematic diagram of another part of the PAL circuit of Figure 7.
Figures 10A-lOD show the uncompleted PAL circuit of Figure 7 in a variety of configurations.
Figure 11 is a partial PAL circuit with means for doing arithmetic operations.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Figure 1 is a schematic illustration of one embodiment of an unprogrammed and uncompleted Programmable Array Logic (PAL) 30 in accordance with the present invention. As is explained subsequently, this basic arrangement can be used to provide a whole series of circuit configurations each of which in turn is individually programmable by the user. PAL 30 is arranged generally as it is physically configured in an actual, packaged IC. Twenty pins, identified by blocks 1-20, provide inputs and outputs to the PAL 30.
A programmable matrix or array 32 comprises input lines 34, and conductors 36, which are inputs to a plurality of logical AND gates 38-53. Input drivers 54 provide two i r/~J~
outputs: an inverted output 56 and non-inverted output 58.
Shown unconnected to the outputs of AND gates 38-53 are a plurality of OR gates 60-67. The manner of their con-nection with AND gates 38-53 will be discussed subsequently.
Of importance, however, is that as finally fabricated for use by the circuit designer, each output from each of the AND gates 38-53 is directly and nonprogrammably connected to an individual one of OR gates 60-67. Thus, the basic PAL 30 architecture comprises a programmable AND gate array feeding a fixed set of OR gates.
Fig. 2 is a more detailed schematic diagram of a part of PAL circuit 30 of Fig. 1, including AND gates 38 and 39, whose outputs are connected as inputs to OR gate 60. In-puts Il and I2 are applied to pins 1 and 2. The output of OR
gate 60, l~ is provided at pin 19. Each of the inputs 36 to A~D gates 38 and 39 are connected through a fuse to an input line 34. Thus fuses fl-f4 are provided for AND gate 38, and fuses f5-f8 for AND gate 39. By either blowing or not blowing individual fuses fl-f8~ different inputs can be provided at the input to AND gates 38 and 39.
In the schematic of Figure 2, the output is the familiar sum of products and can be expressed as:
l [((Il fl) fl) ((Il f2) f2) ((I2 3) f3) (( 2 f4) 4)]
[~( 1 5) 5) (( 1 6) 6) ((I2 7) f7) ((I2 f8)+f8) ]
where for: fuse blown, f=0 fuse not blown, f=l jr/
~3~;~75 Given enough products, the sum of the products can express all boolean transfer functions.
Logic is generally defined by logic diagrams and truth tables, rather than the cumbersome equation shown above.
For this reason the form used to describe the subject in-vention is also a logic diagram. But rather than the logic diagram of Figure 2, a more convenient symbology is used.
Figure 3A shows the conventional way of schematically representing four inputs, A-D, to an AND gate 61. Figure 3B
shows the same AND gate 60, witn the same four inputs A-D, in the new symbology which is used hereafter. The "x" represents a transistor Ql and a fuse as shown in Figure 3C, with the base of transistor Ql connected to an input line 34, the collector to the circuit supply voltage, and the emitter and fuse to the AND gates. If the fuse is blown, then there is no "x". In other words, the existence of an "x" indicates that the input is provided to an AND gatei and the absence of an "x" indicates the contrary.
Figure 4 shows the same circuit of Fig. 2 drawn in the new symbology, where all of the fuses are intact.
To illustrate the way PAL circuit 30 is programmed, an illustration is provided, using the partial PAL circuit of Figure 4 as an example. Let us assume that the desired transfer function is:
Ol=Il . I2+Il . I2 The logic circuit diagram for this transfer function is illus-trated in Figure 5A. Figure 5B is a programmed version of Figure 4 to provide this transfer function.
r/~
~13~;~ 3 ~
The uncompleted PAL 30 o~ Figure 1 c~l ~e completed to configure a family of PALs having a variety of ratios of inputs to outputs, and either an OR or NOR output. Figures 6A-6I show the basic PAL 30 structure of Figure 1 in a variety of configurations. Each of these configurations is made by the IC fabricator, as opposed to the circuit designer. In other words, the difference between each of the circuits of Figs. 6A-6I is not normally field programmable. For purposes of clarity the "x's" indicating a fused connection between the input lines 34 and the AND gate inputs 36 are omitted. To help explain Figures 6A-6I, reference is made to the first nine entries of Table I:
TABLE I
PAL FAMILY
Nu~ber Product of Fig. No. No.No. Output Terms/ Product No.
No. Input ~ I/O Type X~R Output TermFuses 6A 10 8 _NOR - 2 16 320 6C 12 6 -NOR - 2,4 16 384 6D 12 6 - OR - 2,4 16 384 6I 16 2 _OR/NOR - 16 16 512 f - 9 _ jr/~' 113~ 5 For example the circuit of Fig. 6A has ten inputs, pins 1-9, and 11. It has eight outputs, pins 12-19. There are 16 AND gates giving a total of 16 product terms, or 2 product terms per output. The fuses, not shown, total 320.
Each NOR gate has a circle at its output end. This indicates that the OR gate output is inverted by an inverter (not shown).
This results in NOR outputs for this circuit. Fig. 6B is the same configuration as 6A except it has OR outputs.
Figures 6C and 6D are identical except the former has NOR outputs and the latter OR outputs. In both there are 12 inputs: pins 1-9, 11-12; and six outputs: pins 13-18. Gates 61 and 66 have four AND gate inputs; the rest have two.
Figures 6E and 6F are identical except the former has NOR outputs and the latter OR outputs. Both have 14 in-puts, pins 1-9, 11-13, and 18-19; and both have 4 outputs, pins 14-17.
Figures 6G and 6H are identical except the former has NOR outputs and the latter OR outputs. Both have 16 in-puts, pins 1-9, 11-14, and 17-19; and both have 2 outputs, pins 15-16. Note that the outputs are NOR(OR) gates 64 and 65. OR
gate 64 has AND gates 38-45 as inputs and OR gate 65 has AND
gates 46-53 as inputs. For convenience in illustrating this schematically, four extra OR gates (not numbered) are shown as inputs to OR gates 64 and 65. In fact these extra four OR gates do not exist physically; but logically the two are equivalent.
Fig. 6I has a single OR gate 64. An OR output is provided at pin 16 and a NOR at pin 15. There are 16 inputs.
In Figures 6A-6I, pin 20 is reserved for the circuit voltage supply, Vcc, and pin 10 is used for ground.
~ .
~.0 jr/ ~
.~13~ S
Figure 7 is a schematic diagram of another PAL
circuit configuration 70 and like Figure 1, is not programmed and, is not completed. Figures 10A-lOD, also identified in Table I r show completed circuit configurations of the PAL
circuit 70, which are subsequently described.
In addition to the AND and OR gates of PAL 30 of Figures 1 and 6A-6I, PAL 70 includes series D-type registers 72-79 which temporarily store the output of OR gates 60-67.
This is shown in the completed circuits of Figures 10B-lOD.
It is also shown in an isolated schematic of one OR gate 67 in Figure 8.
Referring to Figures 7 and 8, each register, such as register 79, loads its sum of products on the rising edge of a clock pulse provided at line 80. The Q output of each register is gated to the output pin through an active low enable three-state buffer 82. Additionally, the Q output of each register 72-79 feeds back through line 84 to the input lines 34 through the drivers 54.
The feedback arrangement shown in Figure 8, in combination with register 72-79, forms a state sequencer which can be programmed to execute elementary sequences, such as count up, count down, shift, skip, and branch. Random control sequences, as with state sequencing, are efficiently performed by PAL 70.
Referring to the PAL 70" circuit of Figure 10B and Table I, four registers 74-77 are utilized, each being internally fed back via line 84 to the input lines 34. In the PAL 70 "' circuit of Figure 10C, six registers 73-78 are utilized. And in the PAL 70"" circuit of Figure 10D, all eight registers are r/~ - 11 -113'~
utilized.
PAL 70 of Figure 7 can also be configured to provide the designer with the option of (1) feeding back the sum from an OR gate while at the same time providing an output at the output pin, or (2) disengaging the OR gate from the output pin, and permitting another input into the AND gate array, at the expense of an output pin. This is shown in the completed circuits of Figures 10A, 10B, and 10C. It is also shown in an isolated schematic of one OR gate 67 in Figure 9, which is now described.
In Figure 9 where one of the product terms, AND
gate 86, is used to directly control the three state buffer 82, via line 88, to gate the sum of the products from OR gate 67 to the output pin 12. When the gate 82 is "on", i.e. OR
gate 67 is enabled, the output from OR gate 67 is provided at pin 12. When gate 82 is "off", i.e. OR gate 67 is disabled, pin 12 can be used as an input pin. In the latter case, an input signal passes from pin 12 via the "feedback" line 84 to the input lines 34.
In the static case, this programmable I/O feature is used to allocate the ratio of input pins to output pins.
By "static case", is meant that gate 82 is permanently driven either "on" or "off" by AND gate 86. In the dynamic case this feature provides a bidirectional pin for operations such as shifting. By "dynamic case" it is meant that gate 82 can be either "on" or "off" depending on the state of AND gate 86.
Referring additionally to Table 10, the I/O feature is provided for all eight OR gates 60-67, pins 12-19, in the PAL 70' circuit of Figure lOA. The I/O feature is provided for ~r/l 113~7~
OR gates 60-61 and 66-67, in the PAL 70" circuit of Figure 10B.
These correspond to pins 20, 19, 13 and 12 respectively. In PAL circuit 70'" of Figure 10C, OR gates 60 and 67 are provided with the I/O feature.
Another feature of the PAL circuit family is described in Figure 11. Figure 11 shows a part of the uncompleted PAL
circuit 70 of Figure 7, namely, a pair of the OR gates 66 and 67.
The circuit of Figure 11, as will be explained, is particularly useful in performing arithmetic operations, such as addition, subtraction, greater than and less than.
Figure 11 comprises one stage of a multiple stage arithmetic summing circuit. Summing circuits are well known to those skilled in the art and will not be explained at this time. It is sufficient to say that a characteristic of an arithmetic adder is the utilization of exclusive-OR gates and carry circuitry.
Referring to Figure 11, an exclusive-OR gate is provided between the register 79 and the OR gates 67 and 68.
In other words, the output from gates 66 and 67 provides the input to exclusive-OR gate 90.
Also shown in Figure 11 is the addition of another OR gate 92, which has as its inputs the Q output of register 79 and an input to the PAL circuit. The output of OR gate 92 goes to a driver 94 which, like drivers 54, has an inverted output 96 and a non-inverted output 98. The output from OR
gate 94 goes to the AND array via the input lines 34.
It can be shown that in addition to the exclusive-OR function performed by exclusive-OR gate 90, that a combination of AND gates of the AND gate array and OR gates 66 and 67 can jr/l - 13 -~3~
additionally function to perform the same logical function as exclusive-OR gate 90. In other words, the combination of the AND array and the OR gate 67 and 68 with the exclusive-OR
gate 90 forms a pair of series connected exclusive-OR gates.
This combination is the heart of an arithmetic summing circuit.
The addition of the OR gate 92 provides additional logic circuitry necessary for carry look-ahead operations to be formed by each summing stage. Once again, the,necessity of the additional OR gates for the carry functions of an adder are known to those skilled in the art and are not herein described.
jr/~'~
BACKGROUND OF THE INVE~I~IO~I
.
Fusable links used in bipolar PROMS ~programmable Read-Only Memories) have given the digital systems designer the ability to "write on silicon". In a little more than a few seconds, an algorithm, a process, or a boolean transfer function can be permanently provided in the regular structure of an integrated circuit (IC) read-only memory.
PROMS are useful for many purposes including micro-program stores for high speed processors and controllers, non-volatile program stores for minicomputers and microprocessors, and high speed character generation and look up tables.
More recently, programmable integrated circuits have been extended to logic circuit arrays. These are sometimes referred to as PLAs (Programmable Logic Arrays) and FPLAs (Field Programmable Logic ~rrays). FPLAs, in contrast to earlier mask-programmable circuits, can be programmed away from the place they are manufactured. Any problems in a programmed design that are discovered can be corrected simply by pro~ramming a new FPLA and discarding the old one. If the particular application has high enough volumes to cost justify it, a mask can be designed subsequently so that mask-programmable arrays can be made.
PLAs are used in the implementation of random logic networks, data routing, code converters, instruction decoders, state sequences, and a variety of other functions. ~or a general discussion of PLAs and FPLAs, reference is made to Electronic Design, Vol. 18, September 1, 1976, "pLAs or ~Ps?
.
At Times They Compete, and At O~er ~mes Ihey Cboperate", pp 24-30.
Existing FPLAs comprise an array of logical AND
r cg/~
113~?~ 7~
and O~ gates which can be programmed for a specific function.
Each output function is the sum (logical OR) of selected products (logical ANDs) where each product is the product of selected polarities of selected inputs.
FPLAs can be programmed so that (1) any input line can be connected to any AND gate input and (2) any of the products (ANDs) can be summed by any of the OR gates. m is is accomplished by providing a programmable array or matrix (1) between the circuit inputs and the AND gate inputs and (2) between the output of the AND gates and the inputs of the OR
gates, respectively. The FPLA is then programmed by blowing or not blowing the fusible links connecting the conductors of the two arrays much the same way as PROMs are programmed. Examples of such FPLAs are Signetic Models 82S100 and 82S101.
Existing FPSAs as described above, while useful in many applications, have certain disadvantages. First, the size of the IC chip is quite large, due to the use of two programmable arrays per FPLA~ This means lower yields, sreater costs, and larger IC packages.
Secondly, the flexibility of such FPLAs is limited.
They are limited as to the number of inputs, speed, and perhaps most importantly, architecture. Existing FPLAs are very limited in terms of the logical and arithmetical operations they can perform.
SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide improved field programmable circuit arrays;
Another object of the invention is to provide an im-proved field programmable logic circuit array which is smaller ir/! - 2 -11393 ~
in cllip size and less costly to fabricate and package;
Another object of the invention is to provide improved field programmable logic circuit arrays with improved archi-tectural design and function;
Another object of the invention is to provide a family of field programmable logic arrays to give maximum flexibility for circuit design and implementation;
Yet another object of the invention is to provide field programmable circuit arrays which permit arithmetical as well as logical circuit functions.
In accordance with the present invention, an improved FPLA, hereinafter referred to as a programmable array logic (PAL), comprises a single programmable array or matrix of circuit inputs and the inputs to a plurality of AND gates (product terms).
Output from subgroups of AND gates, in turn, are nonprogrammably connected as inputs to individual, specified OR gates (sum of the products).
By making the AND gate inputs programmable, i.e.
selectable by the designer, while having the OR gate inputs non-programmable, some design flexibility is sacrificed. However, the reduction in IC chip size for the PAL more than makes up for the slight reduction in flexibility. Smaller chip size means greater yields and hence lower costs. Smaller chip size also means that smaller, more convenient packaging can be used. For example, a package size of approximately 300 mils wide by 1000 mils long with 20 pins is easily accomplished. This compares with the 600 mils ~y 1400 mils package size, and 28 pins, for existing FPLAs of comparable circuit components and function.
In accordance with another aspect of the present jr/~"
113',~
invention, PALs are provided having greater desiqn and operational flexibility than existing FPSAs. This is accomplished through improved architectural design.
One improved architectural feature is the use of registered outputs with feedback. Registers are provided at OR gate outputs which allows temporary storage of the OR gate outputs. Additionally, a feedback path from each such register to the AND gate array is provided. This combination forms a state sequencer which can be programmed to execute elementary sequences such as count up, count down, shift, skip, and branch.
In accordance with another feature of the invention, a feedback path is provided back to the AND gate array from the output of OR gates. This allows the OR gate outputs to be sent back to the AND gate array at the same time they are provided to the output pins. Additionally, programmable means are pro-vided to selectively enable or disable the OR gate outputs.
When enabled, the OR gate output is the PAL output. When dis-abled, the output pin can be used as an input pin and the feed-back path serves as another PAL input to the AND gate array.
The use of internal PAL feedback paths gives flexi-bility to the designer. It also reduces the number of external PAL connections. This has the salutorious effect of increasing the number of inputs to the product terms without increasing the number of pins.
The OR gate enable/disable feature allows greater flexibility in providing the ratio of inputs and outputs. In the static case, by disabling OR gates, more inputs to the PAL is provided. In the dynamic case, the feature provides a bidirectional pin for operations such as shifting.
ir/J~' '' In accordance with another ob~ect of the invention the PAL of the present invention is provided with a combination of exclusive OR gates (XOR~ and additional OR logic circuitry at the input to the AND gate array. This permits PAL circuitry to perform arithmetic as well as logical circuit operations.
In accordance with the present invention there is provided a programmable array of integrated logic circuitry comprising: a) a plurality of AND gates, each AND gate having a plurality of inputs and an output; b) a programmable matrix comprising a plurality of input lines and the inputs to the AND gates; c) a plurality of OR gates; d) non-programmable electrical connections between the outputs of sub-pluralities of the AND gates and predetermined and select individual ones of the OR gates; and e) register means connected to the output of at least one of the logical OR gates for storing the logical state of the OR gate to which it is connected.
RIEF DESCRIPTION OF THE DRAWINGS_ Figure 1 is a schematic illustration of one embodiment of an unprogrammed and uncompleted Programmable Array Logic (PAL) circuit in accordance with the present invention.
Figure 2 is a more detailed schematic diagram of the PAL circuit of Figure 1.
Figure 3A is a conventional schematic diagram re-presenting and AND gate with four inputs; Figure 3B shows the same AND gate of Figure 3A in a new sy~bology and Figure 3C
illustrates schematically the fusible connection used in a programmable array.
Figure 4 illustrates in the new symbology the AND
gate circuit of Figure 2.
5 _ ~ jr/ '~"
1139;~'75 Figure 5A is a logic circuit diagram for a particular transfer function; and Figure 5B is a programmed version of the circuit of Figure 4 to provide the transfer function of Figure 5A.
Figures 6A-6I show the uncompleted PAL circuit of Figure 1 in a variety of configurations.
Figure 7 is a schematic diagram of another uncompleted PAL circuit configuration.
Figure 8 is a schematic diagram of a part of the PAL circuit of Figure 7.
Figure 9 is a schematic diagram of another part of the PAL circuit of Figure 7.
Figures 10A-lOD show the uncompleted PAL circuit of Figure 7 in a variety of configurations.
Figure 11 is a partial PAL circuit with means for doing arithmetic operations.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Figure 1 is a schematic illustration of one embodiment of an unprogrammed and uncompleted Programmable Array Logic (PAL) 30 in accordance with the present invention. As is explained subsequently, this basic arrangement can be used to provide a whole series of circuit configurations each of which in turn is individually programmable by the user. PAL 30 is arranged generally as it is physically configured in an actual, packaged IC. Twenty pins, identified by blocks 1-20, provide inputs and outputs to the PAL 30.
A programmable matrix or array 32 comprises input lines 34, and conductors 36, which are inputs to a plurality of logical AND gates 38-53. Input drivers 54 provide two i r/~J~
outputs: an inverted output 56 and non-inverted output 58.
Shown unconnected to the outputs of AND gates 38-53 are a plurality of OR gates 60-67. The manner of their con-nection with AND gates 38-53 will be discussed subsequently.
Of importance, however, is that as finally fabricated for use by the circuit designer, each output from each of the AND gates 38-53 is directly and nonprogrammably connected to an individual one of OR gates 60-67. Thus, the basic PAL 30 architecture comprises a programmable AND gate array feeding a fixed set of OR gates.
Fig. 2 is a more detailed schematic diagram of a part of PAL circuit 30 of Fig. 1, including AND gates 38 and 39, whose outputs are connected as inputs to OR gate 60. In-puts Il and I2 are applied to pins 1 and 2. The output of OR
gate 60, l~ is provided at pin 19. Each of the inputs 36 to A~D gates 38 and 39 are connected through a fuse to an input line 34. Thus fuses fl-f4 are provided for AND gate 38, and fuses f5-f8 for AND gate 39. By either blowing or not blowing individual fuses fl-f8~ different inputs can be provided at the input to AND gates 38 and 39.
In the schematic of Figure 2, the output is the familiar sum of products and can be expressed as:
l [((Il fl) fl) ((Il f2) f2) ((I2 3) f3) (( 2 f4) 4)]
[~( 1 5) 5) (( 1 6) 6) ((I2 7) f7) ((I2 f8)+f8) ]
where for: fuse blown, f=0 fuse not blown, f=l jr/
~3~;~75 Given enough products, the sum of the products can express all boolean transfer functions.
Logic is generally defined by logic diagrams and truth tables, rather than the cumbersome equation shown above.
For this reason the form used to describe the subject in-vention is also a logic diagram. But rather than the logic diagram of Figure 2, a more convenient symbology is used.
Figure 3A shows the conventional way of schematically representing four inputs, A-D, to an AND gate 61. Figure 3B
shows the same AND gate 60, witn the same four inputs A-D, in the new symbology which is used hereafter. The "x" represents a transistor Ql and a fuse as shown in Figure 3C, with the base of transistor Ql connected to an input line 34, the collector to the circuit supply voltage, and the emitter and fuse to the AND gates. If the fuse is blown, then there is no "x". In other words, the existence of an "x" indicates that the input is provided to an AND gatei and the absence of an "x" indicates the contrary.
Figure 4 shows the same circuit of Fig. 2 drawn in the new symbology, where all of the fuses are intact.
To illustrate the way PAL circuit 30 is programmed, an illustration is provided, using the partial PAL circuit of Figure 4 as an example. Let us assume that the desired transfer function is:
Ol=Il . I2+Il . I2 The logic circuit diagram for this transfer function is illus-trated in Figure 5A. Figure 5B is a programmed version of Figure 4 to provide this transfer function.
r/~
~13~;~ 3 ~
The uncompleted PAL 30 o~ Figure 1 c~l ~e completed to configure a family of PALs having a variety of ratios of inputs to outputs, and either an OR or NOR output. Figures 6A-6I show the basic PAL 30 structure of Figure 1 in a variety of configurations. Each of these configurations is made by the IC fabricator, as opposed to the circuit designer. In other words, the difference between each of the circuits of Figs. 6A-6I is not normally field programmable. For purposes of clarity the "x's" indicating a fused connection between the input lines 34 and the AND gate inputs 36 are omitted. To help explain Figures 6A-6I, reference is made to the first nine entries of Table I:
TABLE I
PAL FAMILY
Nu~ber Product of Fig. No. No.No. Output Terms/ Product No.
No. Input ~ I/O Type X~R Output TermFuses 6A 10 8 _NOR - 2 16 320 6C 12 6 -NOR - 2,4 16 384 6D 12 6 - OR - 2,4 16 384 6I 16 2 _OR/NOR - 16 16 512 f - 9 _ jr/~' 113~ 5 For example the circuit of Fig. 6A has ten inputs, pins 1-9, and 11. It has eight outputs, pins 12-19. There are 16 AND gates giving a total of 16 product terms, or 2 product terms per output. The fuses, not shown, total 320.
Each NOR gate has a circle at its output end. This indicates that the OR gate output is inverted by an inverter (not shown).
This results in NOR outputs for this circuit. Fig. 6B is the same configuration as 6A except it has OR outputs.
Figures 6C and 6D are identical except the former has NOR outputs and the latter OR outputs. In both there are 12 inputs: pins 1-9, 11-12; and six outputs: pins 13-18. Gates 61 and 66 have four AND gate inputs; the rest have two.
Figures 6E and 6F are identical except the former has NOR outputs and the latter OR outputs. Both have 14 in-puts, pins 1-9, 11-13, and 18-19; and both have 4 outputs, pins 14-17.
Figures 6G and 6H are identical except the former has NOR outputs and the latter OR outputs. Both have 16 in-puts, pins 1-9, 11-14, and 17-19; and both have 2 outputs, pins 15-16. Note that the outputs are NOR(OR) gates 64 and 65. OR
gate 64 has AND gates 38-45 as inputs and OR gate 65 has AND
gates 46-53 as inputs. For convenience in illustrating this schematically, four extra OR gates (not numbered) are shown as inputs to OR gates 64 and 65. In fact these extra four OR gates do not exist physically; but logically the two are equivalent.
Fig. 6I has a single OR gate 64. An OR output is provided at pin 16 and a NOR at pin 15. There are 16 inputs.
In Figures 6A-6I, pin 20 is reserved for the circuit voltage supply, Vcc, and pin 10 is used for ground.
~ .
~.0 jr/ ~
.~13~ S
Figure 7 is a schematic diagram of another PAL
circuit configuration 70 and like Figure 1, is not programmed and, is not completed. Figures 10A-lOD, also identified in Table I r show completed circuit configurations of the PAL
circuit 70, which are subsequently described.
In addition to the AND and OR gates of PAL 30 of Figures 1 and 6A-6I, PAL 70 includes series D-type registers 72-79 which temporarily store the output of OR gates 60-67.
This is shown in the completed circuits of Figures 10B-lOD.
It is also shown in an isolated schematic of one OR gate 67 in Figure 8.
Referring to Figures 7 and 8, each register, such as register 79, loads its sum of products on the rising edge of a clock pulse provided at line 80. The Q output of each register is gated to the output pin through an active low enable three-state buffer 82. Additionally, the Q output of each register 72-79 feeds back through line 84 to the input lines 34 through the drivers 54.
The feedback arrangement shown in Figure 8, in combination with register 72-79, forms a state sequencer which can be programmed to execute elementary sequences, such as count up, count down, shift, skip, and branch. Random control sequences, as with state sequencing, are efficiently performed by PAL 70.
Referring to the PAL 70" circuit of Figure 10B and Table I, four registers 74-77 are utilized, each being internally fed back via line 84 to the input lines 34. In the PAL 70 "' circuit of Figure 10C, six registers 73-78 are utilized. And in the PAL 70"" circuit of Figure 10D, all eight registers are r/~ - 11 -113'~
utilized.
PAL 70 of Figure 7 can also be configured to provide the designer with the option of (1) feeding back the sum from an OR gate while at the same time providing an output at the output pin, or (2) disengaging the OR gate from the output pin, and permitting another input into the AND gate array, at the expense of an output pin. This is shown in the completed circuits of Figures 10A, 10B, and 10C. It is also shown in an isolated schematic of one OR gate 67 in Figure 9, which is now described.
In Figure 9 where one of the product terms, AND
gate 86, is used to directly control the three state buffer 82, via line 88, to gate the sum of the products from OR gate 67 to the output pin 12. When the gate 82 is "on", i.e. OR
gate 67 is enabled, the output from OR gate 67 is provided at pin 12. When gate 82 is "off", i.e. OR gate 67 is disabled, pin 12 can be used as an input pin. In the latter case, an input signal passes from pin 12 via the "feedback" line 84 to the input lines 34.
In the static case, this programmable I/O feature is used to allocate the ratio of input pins to output pins.
By "static case", is meant that gate 82 is permanently driven either "on" or "off" by AND gate 86. In the dynamic case this feature provides a bidirectional pin for operations such as shifting. By "dynamic case" it is meant that gate 82 can be either "on" or "off" depending on the state of AND gate 86.
Referring additionally to Table 10, the I/O feature is provided for all eight OR gates 60-67, pins 12-19, in the PAL 70' circuit of Figure lOA. The I/O feature is provided for ~r/l 113~7~
OR gates 60-61 and 66-67, in the PAL 70" circuit of Figure 10B.
These correspond to pins 20, 19, 13 and 12 respectively. In PAL circuit 70'" of Figure 10C, OR gates 60 and 67 are provided with the I/O feature.
Another feature of the PAL circuit family is described in Figure 11. Figure 11 shows a part of the uncompleted PAL
circuit 70 of Figure 7, namely, a pair of the OR gates 66 and 67.
The circuit of Figure 11, as will be explained, is particularly useful in performing arithmetic operations, such as addition, subtraction, greater than and less than.
Figure 11 comprises one stage of a multiple stage arithmetic summing circuit. Summing circuits are well known to those skilled in the art and will not be explained at this time. It is sufficient to say that a characteristic of an arithmetic adder is the utilization of exclusive-OR gates and carry circuitry.
Referring to Figure 11, an exclusive-OR gate is provided between the register 79 and the OR gates 67 and 68.
In other words, the output from gates 66 and 67 provides the input to exclusive-OR gate 90.
Also shown in Figure 11 is the addition of another OR gate 92, which has as its inputs the Q output of register 79 and an input to the PAL circuit. The output of OR gate 92 goes to a driver 94 which, like drivers 54, has an inverted output 96 and a non-inverted output 98. The output from OR
gate 94 goes to the AND array via the input lines 34.
It can be shown that in addition to the exclusive-OR function performed by exclusive-OR gate 90, that a combination of AND gates of the AND gate array and OR gates 66 and 67 can jr/l - 13 -~3~
additionally function to perform the same logical function as exclusive-OR gate 90. In other words, the combination of the AND array and the OR gate 67 and 68 with the exclusive-OR
gate 90 forms a pair of series connected exclusive-OR gates.
This combination is the heart of an arithmetic summing circuit.
The addition of the OR gate 92 provides additional logic circuitry necessary for carry look-ahead operations to be formed by each summing stage. Once again, the,necessity of the additional OR gates for the carry functions of an adder are known to those skilled in the art and are not herein described.
jr/~'~
Claims (5)
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A programmable integrated logic circuit array comprising: a) a plurality of groups of logical AND gates;
b) a plurality of logical OR gates; c) non-programmable connections between the outputs from all of the AND gates within each of said groups of AND gates to inputs of predetermined and select individual ones of the logical OR gates; d) a matrix of electrical conductor lines comprising (i) input lines, and (ii) AND gate input lines for each of the AND gates within said plurality of groups of logical AND gates; e) means for selectively connecting input lines and AND gate input lines to program a desired logical output from said OR gates, and f) register means connected to the output of at least one of said logical OR
gates for storing the logical state of the OR gate to which it is connected.
b) a plurality of logical OR gates; c) non-programmable connections between the outputs from all of the AND gates within each of said groups of AND gates to inputs of predetermined and select individual ones of the logical OR gates; d) a matrix of electrical conductor lines comprising (i) input lines, and (ii) AND gate input lines for each of the AND gates within said plurality of groups of logical AND gates; e) means for selectively connecting input lines and AND gate input lines to program a desired logical output from said OR gates, and f) register means connected to the output of at least one of said logical OR
gates for storing the logical state of the OR gate to which it is connected.
2. A programmable integrated logic circuit array as in Claim 1 including means for connecting the output from each of said register means to selected ones of said input lines.
3. A programmable array of integrated logic circuitry comprising: a) a plurality of AND gates, each AND
gates having a plurality of inputs and an output; b) a programmable matrix comprising a plurality of input lines and said inputs to said AND gates; c) a plurality of OR gates;
d) non-programmable electrical connections between the outputs of sub-pluralities of said AND gates and predetermined and select individual ones of said OR gates; and e) register means connected to the output of at least one of said logical OR
gates for storing the logical state of the OR gate to which it is connected.
gates having a plurality of inputs and an output; b) a programmable matrix comprising a plurality of input lines and said inputs to said AND gates; c) a plurality of OR gates;
d) non-programmable electrical connections between the outputs of sub-pluralities of said AND gates and predetermined and select individual ones of said OR gates; and e) register means connected to the output of at least one of said logical OR
gates for storing the logical state of the OR gate to which it is connected.
4. A programmable integrated logic circuit array as in Claim 3 including means for connecting the output from each of said register means to selected ones of said input lines.
5. A programmable integrated logic circuit array comprising: a) a plurality of logical AND gates, each AND
gate having a plurality of inputs and an output; b) a matrix comprising the inputs to said logical AND gates and a plurality of input lines; c) means for selectively connecting desired input lines with desired logical AND
gate inputs; d) a plurality of logical OR gates; e) non-programmable connections from outputs of specified logical AND gates to inputs of an individual and select OR gate; f) register means connected to the output of at least one of said logical OR gates for storing the logical state of the OR gate to which it is connected; and g) means for connecting the output from at least one of said register means to selected ones to said input lines.
gate having a plurality of inputs and an output; b) a matrix comprising the inputs to said logical AND gates and a plurality of input lines; c) means for selectively connecting desired input lines with desired logical AND
gate inputs; d) a plurality of logical OR gates; e) non-programmable connections from outputs of specified logical AND gates to inputs of an individual and select OR gate; f) register means connected to the output of at least one of said logical OR gates for storing the logical state of the OR gate to which it is connected; and g) means for connecting the output from at least one of said register means to selected ones to said input lines.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000306785A CA1139375A (en) | 1978-07-05 | 1978-07-05 | Programmable array logic circuit |
CA000399708A CA1144608A (en) | 1978-07-05 | 1982-03-29 | Programmable array logic circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000306785A CA1139375A (en) | 1978-07-05 | 1978-07-05 | Programmable array logic circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1139375A true CA1139375A (en) | 1983-01-11 |
Family
ID=4111838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000306785A Expired CA1139375A (en) | 1978-07-05 | 1978-07-05 | Programmable array logic circuit |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1139375A (en) |
-
1978
- 1978-07-05 CA CA000306785A patent/CA1139375A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4124899A (en) | Programmable array logic circuit | |
US4963768A (en) | Flexible, programmable cell array interconnected by a programmable switch matrix | |
US4717912A (en) | Apparatus for producing any one of a plurality of signals at a single output | |
KR940010679B1 (en) | Integrated circuit with programmable logic circuit | |
US5682107A (en) | FPGA architecture with repeatable tiles including routing matrices and logic matrices | |
US5523706A (en) | High speed, low power macrocell | |
US5563529A (en) | High speed product term allocation structure supporting logic iteration after committing device pin locations | |
US5396126A (en) | FPGA with distributed switch matrix | |
US5371422A (en) | Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements | |
US6094065A (en) | Integrated circuit with field programmable and application specific logic areas | |
US5808479A (en) | High speed programmable logic architecture | |
US5598108A (en) | High-density erasable programmable logic device architecture using multiplexer interconnections, and registered macrocell with product term allocation and adjacent product term stealing | |
US5936424A (en) | High speed bus with tree structure for selecting bus driver | |
US5883526A (en) | Hierarchical interconnect for programmable logic devices | |
US4554640A (en) | Programmable array logic circuit with shared product terms | |
US20040070422A1 (en) | Programmable logic devices having enhanced cascade functions to provide increased flexibility | |
JPH05183425A (en) | Plurality of integrated-circuit programmable logical device, method for interconnecting plurality of programmable logical block in programmable logical device and programmable logical block for integrated -circuit programmable logical device | |
JPH10233676A (en) | Method for arraying local mutual connection line inside logic array block and programmable logic circuit | |
US5847580A (en) | High speed bidirectional bus with multiplexers | |
US5349670A (en) | Integrated circuit programmable sequencing element apparatus | |
US5075576A (en) | Field-programmable logic device with programmable foldback to control number of logic levels | |
US5027012A (en) | Programmable logic circuit using wired-or tristate gates | |
US5969539A (en) | Product term exporting mechanism and method improvement in an EPLD having high speed product term allocation structure | |
US4644191A (en) | Programmable array logic with shared product terms | |
US4644192A (en) | Programmable array logic with shared product terms and J-K registered outputs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |