EP0669057A4 - Dispositifs logiques programmables et reseaux logiques configurables. - Google Patents

Dispositifs logiques programmables et reseaux logiques configurables.

Info

Publication number
EP0669057A4
EP0669057A4 EP94901341A EP94901341A EP0669057A4 EP 0669057 A4 EP0669057 A4 EP 0669057A4 EP 94901341 A EP94901341 A EP 94901341A EP 94901341 A EP94901341 A EP 94901341A EP 0669057 A4 EP0669057 A4 EP 0669057A4
Authority
EP
European Patent Office
Prior art keywords
logic
inputs
programmable
signals
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.)
Ceased
Application number
EP94901341A
Other languages
German (de)
English (en)
Other versions
EP0669057A1 (fr
Inventor
Earle W Jennings Iii
George Herman Landers
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.)
Nippon Precision Circuits Inc
Infinite Technology Corp
Original Assignee
Nippon Precision Circuits Inc
Infinite Technology 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/972,993 external-priority patent/US5394030A/en
Application filed by Nippon Precision Circuits Inc, Infinite Technology Corp filed Critical Nippon Precision Circuits Inc
Publication of EP0669057A1 publication Critical patent/EP0669057A1/fr
Publication of EP0669057A4 publication Critical patent/EP0669057A4/fr
Ceased legal-status Critical Current

Links

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/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/17704Logic 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 the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic 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 the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • H03K19/17712Logic 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 the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays one of the matrices at least being reprogrammable
    • 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

Definitions

  • This invention relates to programmable logic devices (PLD) and to configurable logic networks employing PLDs.
  • U.S. Patent No. 4,872,137 includes disclosure of a folded programmable logic device employing a triangular geometry, using an AND-gate array in which reprogrammable control circuits (RCC) are used to select and control programmable inputs to the AND gates.
  • RCC reprogrammable control circuits
  • the RCC design is based on a transmission gate controlled by the user programmable content of a 1-bit shift register.
  • the triangular geometry permits more effective use of semiconductor chip area to implement folded programmable logic devices than use of rectangular arrays employing previously proposed folding techniques.
  • this PLD design is advantageous in terms of versatility of application, operating speed and optimization of AND- gate utilization, it would be desirable to achieve a PLD structured to enable even greater versatility in terms of ability to process more complex Boolean logic inputs. Also, it is desirable to facilitate implementation of user programmable complex logic functions.
  • a programmable logic device embodying the present invention includes a plurality of groups of AND logic function gates with the AND logic function gates in each group having respective outputs connected to inputs of an OR logic function gate for that AND logic function gate group.
  • Each AND logic function gate group has one or more individual output AND logic function gates with inputs that are programmable by individually programmable logic function generators (PLFG) of a set of PLFGs operatively associated with that AND gate group.
  • PLFG individually programmable logic function generators
  • each PLFG has a plurality of logic input pairs, each PLFG in a set receiving the same logic input pairs.
  • Logic signals are applied as inputs to an AND logic function output gate for that PLFG according to programmable inputs to the PLFG as functions of logic input pairs of that PLFG.
  • a folded PLD structure may be provided that is user programmable by selection of the control inputs of the PLFGs as a function of the logic inputs to the PLFGs, to provide varied as well as complex logic functions.
  • embodiments of the invention permit incorporation of programmable logic functions typically required in such systems directly on the system chip or wafer.
  • the programmable logic devices may be provided separately as a single chip or wafer.
  • an individual programmable cell For each one of the logic input pairs for a PLFG, an individual programmable cell may be provided having a set of user programmable control inputs from which an output signal is generated as a function of the logic input pair to that programmable cell.
  • the control inputs conveniently may be provided by values stored in a programmable cells which may be provided by one or more volatile or non-volatile memories. In this manner, it is possible to provide an output from a cell selected from any of up to sixteen different logic functions.
  • programmable logic devices embodying the invention also may be structured based on sets of more than two logic inputs. The use of logic input pairs is preferred in that it permits a less complex programmable cell designed to be used.
  • the number of logic input pairs in the respective pluralities of logic input pair sets differs, across a succession of AND-gate groups.
  • a programmable logic device may be structured having a layout approximating a right-triangle.
  • the OR logic function gates and AND-gate groups may be disposed in columns along one side, either one of the right-angled sides or the hypotenuse, of said triangle.
  • the OR logic function gates may be embodied within the PLFG array itself.
  • Such generally triangular shaped PLD arrays may be grouped together to define geometries which enable layout of such groups on a semiconductor chip or wafer in a manner maximizing functional utilization of the available chip surface area and improving cost effective production of such arrays.
  • generally rectangular, hexagonal or trapezoidal groupings may advantageously be utilized.
  • Current CMOS fabrication processing may advantageously be used to implement PLDs embodying the invention.
  • the invention also incudes a configurable logic network having a plurality of Programmable Logic Devices (PLD) with PLD output signals from different ones of said plurality of PLDs applied to logic combination means to generate at least one output logic signal from said configurable logic network.
  • PLD Programmable Logic Devices
  • the PLDs may be constructed as described in the preceding paragraphs or may be conventional programmable logic arrays (PLAs) .
  • Each programmable logic device comprises an AND logic array having inputs for receiving signals and generating product term output signals and an OR logic array having inputs for receiving signals and generating sum term output signals, at least one of said logic arrays being programmable.
  • Output signals are fed from one of said AND and OR logic arrays as input signals to the other one of said AND and OR logic arrays, said other one of the AND and OR logic arrays providing PLD output signals.
  • the PLD output may be in the form of sums of product terms, or products of sum terms. Either or both of the AND and OR logic arrays is programmable.
  • the PLD output may be constructed as products of sums.
  • the logic combination means may produce a plurality of output logic signals from said Configurable Logic Network (LCN) which advantageously further includes means for deriving logic function signals from a selected group or groups said of output logic signals under control of signals which may be programmable.
  • LPN Configurable Logic Network
  • the logic combination means may receive output signals from two PLDs, output signals from three or more PLDs could be utilized as inputs for the logic combination means. Sets of output signals from different groups of two or more PLDs may be used as inputs to different logic combination networks to produce multiple different output signals from the configurable logic network.
  • the logic combination means may suitably include a plurality of logic function generators (PLFG) in which each PLFG has a group of logic gates connected to receive first inputs comprising PLD output signals from said plurality of PLDs, and second inputs comprising respective sets of user programmable signals.
  • the group of logic gates is connected to apply inputs to an output gate of that PLFG determined according to said first and second inputs, whereby the output gates of said plurality of PLFGs provide respective output logic signals (0,P) from the configurable logic network.
  • FIGURE 1 illustrates the overall arrangement of an exemplary implementation of a PLD embodying the invention
  • FIGURE 2 shows part of FIGURE 1 in more detail
  • FIGURE 3 shows the logic design of a programmable cell utilized in the PLD of FIGURE 1;
  • FIGURES 4-15 depict implementations of programmable logic function generators used in FIGURE 1;
  • FIGURES 16 and 17 depict how triangular arrays as illustrated by Fig 1 can be utilized to form rectangular, hexagonal and part-hexagonal arrays;
  • FIGURES 18-23 depict various logic networks using PLD outputs to control more complex logic functions
  • FIGURE 24 is a block diagram of a logic system integrated circuit incorporating folded PLDs embodying the invention.
  • FIGURES 25-30 depict various interconnections between PLD outputs to provide more complex logic functions
  • FIGURE 31 depicts a combinatorial network which can implement counting, addition and shifting with ripple- style carry propagation, the execution of which is controlled by the PLD outputs;
  • FIGURE 32 depicts a combinatorial circuitry to implement a carry lookahead style adder controlled by the outputs of the PLD.
  • FIGURE 33 is a block diagram of a configurable logic network suitable for implementing logic functions by use of interconnections as described with reference to Figures 25-30.
  • embodiments of the invention may also be realized using conventional programmable devices such as, for example, PLAs in which an array of AND gates produces selected product terms of logic input signals, the product terms fed as inputs to an OR gate array which produces sums of product terms as outputs from the PLA.
  • PLAs may be used in which selected sum terms of logic input signals are fed from an OR gate array which produces products of sum terms as PLA outputs.
  • AND and OR gate arrays may be programmable as known in the art.
  • the AND or the OR gate arrays may employ folding techniques as known in the art. Products of sums is another technique wherein the role of AND and OR gates are reversed.
  • the logic operations are diverse and may be controlled on the basis of programmable signal values stored in one or more programmable memories, which may be volatile or non-volatile memories, suitably of the ROM, PROM, EPROM, EEPROM or RAM variety. Depending on the memory type, mask programming at the factory may be employed or user programmation in the field which permits greater flexibility. While, for simplicity, the description will be made in terms of positive logic function implementations using AND and OR gates, other implementations are possible, in particular by NOR, NAND and INVERTER gates as when the PLD is fabricated using CMOS technology. Thus, references to "AND logic function” and “OR logic function” contemplate both positive logic and negative logic implementations.
  • FIGURES 1 and 2 show in outline form a preferred folded PLD device employing a group of OR gates OG12..0G1 each of which receives logic product term inputs from respective subgroups of AND gates SGA12..SGA1.
  • Each subgroup comprises four AND gates AG (FIGURE 2) .
  • all four AND gates receive user programmable inputs derived from up to twelve logic input pairs A0B0..A11B11.
  • the programmable inputs for the AND-gate subgroups SGA12..SGA1 are provided by respective sets of programmable logic function generators (PLFG) FAND24, FAND22, FAND20, ... FAND4, FAND2, each set comprising four PLFGs providing respective inputs to the four AND gates AG in the associated subgroup SGA.
  • PLFG programmable logic function generators
  • Each PLFG FAND24 provides logic function inputs to an individual AND gate AG in the AND-gate subgroup SGA12, derived from all twelve logic input pairs A0B0..A11B11.
  • the PLFG FAND22 provides logic function inputs to the AND-gate subgroup SGAll derived from eleven logic input pairs AlBl..AllBll.
  • the PLFG FAND10 provides logic function inputs to the AND-gate subgroup SGA10 derived from ten logic input pairs A2B2..AllBll.
  • the number of logic input pairs from which the logic function inputs for the remaining AND-gate subgroups are derived decreases in this manner in an ordered sequence so that the PLFGs FAND4 and FAND2 provide logic function input pairs to the AND-gate subgroups SGA2 and SGAl derived from two pairs A10B10..AllBll and one pair AllBll, respectively, of the logic inputs AOBO..AllBll.
  • the PLFGs FAND2 to FAND24 comprise AND gate function arrays having increasing numbers of inputs, or conceptionally, the inputs increase in width.
  • the PLFGs FAND will sometimes be referred to as having the same or different width, or as narrower or wider.
  • the resultant PLD array can be physically laid out on a semiconductor chip in the approximate form of a right-triangle
  • the OR gates OG1..0G12 may be located at one of the right-angled sides alongside the AND-gate subgroups SGA1..SGA12, and the area occupied by the PLFG arrays bounded by the other two sides of the triangle.
  • the OR gates could be disposed at selected locations within the AND gate sub-groups. As will be discussed later, such a triangular arrangement facilitates PLD layouts in a manner that results in more efficient utilization of chip area.
  • each set of PLFGs need not have an identical number of PLFGs; some may have as few as one PLFGs while others may have two, three, four or more.
  • disposition of the PLFG sets in a triangular array although often advantageous, is not essential and folding may also be achieved by other arrangements and sequences.
  • the sets, or at least some of them could be arranged in groups, with the PLFGs sets in each group all receiving the same set of logic input pairs.
  • FIGURES 4-15 illustrate examples of the structure and functionality of the PLFGs FAND24..FAND2 each of which comprises one or more programmable cells the design of which is shown in FIGURE 3.
  • the programmable cell PC2 includes four AND gates CA0..CA3 the outputs of which are connected as inputs to an OR gate CO providing the logic function output F(A,B) from the cell.
  • the cell also has four column lines CL0..CL3 respectively connected to one input of the AND gates CA0..CA3, and four row lines RL0..RL3 respectively connected to the other input of the AND gates CA0..CA3.
  • An input generator IG receives logic signal input pairs A and B as inputs from which it generates the minterm logic signals A&B, A*&B, A*&B*, A&B*. These logic signals are applied to the column lines CL0..CL3 respectively, while input signals E00, E10, Ell, E01 are applied to the respective row lines RL0..RL3, advantageously by connecting the row lines to outputs from a user programmable volatile or non-volatile memory MEM storing the signals E00,..E10.
  • the generated signal F(A,B) from the OR gate CO of the programmable cell derived from the signals E00,..E01 determines the response F(A,B) to the logic input combination A,B.
  • the memory MEM has sufficient storage capacity to store signals providing the inputs E00..E11 for the programmable cells in all the PLFGs of the PLD. MEM may comprise more than one collection of signals E00...E11, which may ' be selected by shared controls externally generated.
  • FIGURES 4-15 depict PLFGs FAND2 .. FAND24 which employ various combinations of programmable cells PC2 for generating logic function outputs F2 .. F24, respectively derived by increasing numbers of logic input pairs from the sequence A0B0 .. AllBll (for convenience indicated as ABO .. ABU) applied to the PLFGs.
  • ABO .. ABU for convenience indicated as ABO .. ABU
  • FIGURES 4-7 depict PLFGs FAND2..FAND8 having output AND gates LC which receive inputs from one, two, three and four programmable cells PC2, respectively and generate output logic functions F2,F4,F6 and F8.
  • Each AND gate LC each has four inputs and any of those inputs not connected to a programmable cell PC2 is held at a logic 1 level.
  • the programmable cells PC2 of the PLFGs FAND2 - FAND8 receive logic pair inputs from their associated input generators IG as indicated below:
  • FIGURE 13 the PLFG FAND20 depicted in FIGURE 13 is shown as employing two PLFGs having an FAND8 structure (FIGURE 7) and receiving logic input pair sets AB8-11 and AB4-7, respectively, together with a PLFG having a FAND4 structure (FIGURE 5) which receives a logic input pair set AB2-3.
  • FAND8 structure FIG. 7
  • FAND4 structure FIG. 5
  • the programmable logic device configuration illustrated above is exemplary only.
  • the number of rows of PLFGs, as well as the number of logic input pairs, could be fewer or greater. Further, the number of PLFGs in each rows may be fewer or greater than the four sets illustrated.
  • the particular selection of PLFGs FAND2- FAND8 used in implementation of the PLFGs FAND10-FAND24 is not unique and other combinations than those illustrated could be used.
  • the number of inputs for the output AND gates LC is a matter of design choice and implementation.
  • the AND gates AG in each of the AND gate subgroups SGA12-SGA1 are shown as four-input gates for ease of illustration, fewer or greater numbers of inputs could be used according to particular design implementations.
  • 1, 2, 3 or mroe input function generators could be employed instead of PC2's.
  • the PLD thus far described is seen to offer considerable versatility in complexity of logic functions that may be implemented because the basic logic input pair functionalities that can be achieved by each and every one of the programmable cells PC2 can be individually and independently user programmed by the control inputs E00, E10, Ell, E01 of each programmable cell.
  • these control inputs for the programmable cells of all the PLFGs may be stored in a common user programmable volatile or non-volatile memory. Storage can be controlled by a relatively small number of signals resulting in significantly lower semiconductor chip surface area overhead. Multiple collections of E's may be stored in each PC2. The selection of which collection controls PC2 woud be made by a small number of global signals.
  • a conventional programmable logic device may support the following logic functions of two logic inputs A, B: 0, 1,A,B,A*,B*,A&B,A*&B,A&B*,A*&B*.
  • a programmable cell PC2 in a PLD it has
  • a or B A or B*; A* or B; A* or B*.
  • programmable cells using logic input sets of more than two logic signals could be used, but with greater complexity of the cell structure. For example, for three inputs, eight gates CA and eight programmable inputs would be required whereas for four logic inputs, sixteen AND gates CA and sixteen programmable inputs would be required. Likewise, corresponding increases in gates in the IG array would be required. In general, for n logic inputs, 2 AND gates with corresponding logic input signals and programmable inputs would be necessary.
  • the invention thus enables a PLD to be constructed using fewer AND gates in the AND gate array than in a conventional programmable logic device, for implementing a particular level of functional complexity thereby permitting faster operation.
  • the triangular configuration of the PLD array previously referred to enables a multiplicity of array blocks to be laid out and integrated on a semiconductor chip in a manner enhancing chip area utilization and enabling a more cost effective single chip solution for applications requiring multiple conventional PLDs.
  • pairs of triangular arrays PLDA and PLDB can be aligned to define rectangular blocks.
  • a rectangular array may be constructed using three PLDs, PLDA, PLDB and PLDC having interleaved sets of PLFGs.
  • FIG. 17 also depicts other ways in which PLDs embodying the invention may be shaped and arranged to form overall rectangular arrays. In this manner, wafer scale integration of many folded PLD arrays embodying the invention may be achieved, with signals for the user programmable inputs E00..E11 of the PLFGs for all of the PLDs conveniently stored in a common, volatile or non-volatile memory integrated on the same semiconductor chip, if so desired.
  • Additional versatility can be obtained and also still more complex user programmable configurations, by using the outputs from the OR gates OG of a PLD from which are derived logic inputs to additional programmable Boolean function generators. Examples of such arrangements will be described with reference to FIGURES 18 - 24.
  • OR gates OGk, OG1, OGm and OGn providing ORed outputs from corresponding width FAND arrays of a PLD are depicted by way of example.
  • the OR gates could be selected from any two or more FAND arrays of a PLD as required.
  • different sets of OR gates OG could be used to for derivation of logic inputs to different Boolean function generators.
  • the arrangements to be described with reference to FIGURES 18- 24 may be employed with the PLD as described with reference to FIGURES 1-15 as well as individual PLDs in arrangements as shown in Figures 16 and 17.
  • FIGURE 18 depicts several different user programmable control logic circuits UCLl, UCL2, UCL3, and UCL4 to which, by way of example, the logic outputs from OR gates OGk, OG1, OGm and OGn are connected to generate more complex logic outputs.
  • the circuits UCLl - UCL4 are all shown connected to the outputs of the same OR gates OG for convenience of description. In practice, different groups of OR gates from one or more PLD could serve as the inputs to differing UCL circuits.
  • the control logic circuit UCLl comprises a programmable input OR gate circuit POR having four AND gates GAl connected to receive the respective inputs OFk, OF1, OFm and OFn, together with an OR gate GOl the inputs of which are supplied by the AND gates GAl.
  • the AND gates GAl also receive respective selected control input signals OC1..0C4 which may be generated by volatile or nonvolatile memory.
  • control logic circuits UCL2, UCL3 and UCL4 each contains two or more programmable input OR gate circuits POR which have the same configuration as in the control logic circuit UCLl, except that the control inputs OC1..0C4 can be individually selected for each circuit POR.
  • the control logic circuit UCL2 comprises two programmable input OR circuits the outputs UI and U2 from which provide a logic input pair for a Universal Boolean Function Generator (UBFG2/1) which may be implemented by a programmable cell PC2 and input generator IG as described with reference to FIGURE 3.
  • the input pair Ul,U2 corresponds to the logic input pair A,B in FIGURE 3.
  • control circuit UCL4 the outputs V2 and V3 from UBFG2/3 and UBFG/4 of two control logic circuits UCL2 are applied as inputs to respective AND gates GA3 and GA4.
  • An EXCLUSIVE-OR gate GX receives an input U0 from a control logic circuit UCLl and an input logic signal Rl (which may be an external programmable control signal) and has an output connected to inputs of each of the AND gates GA3 and GA4.
  • Rl and UO can be used to force a particular output value for W2 and W3.
  • Such an implementation could be achieved using an inverter instead of the EXCLUSIVE-OR gate GX.
  • the inputs CN0...CN15 for UBFG2/1..UBFG2/4 may be individually programmed or generated in a programmable fashion and, if desired, may be derived from signals stored in either volatile or nonvolatile memory.
  • the memory may be either field or factory programmable.
  • FIGURE 19 depicts additional ways in which outputs OFk, OF1, OFm, OFn from a PLD may be utilized in conjunction with logic control circuits UCL as described with reference to FIG 18.
  • the logic output VI from the UBFG2/1 of a control logic circuit UCL2 is connected as an input to a temporary register as store, shown as a D flip flop DFF1.
  • the flip flop input is transferred to the Q output at the next clock pulse on the clock line CLOCK.
  • Two control logic circuits UCL3A and UCL3B have AND gates which receive respective outputs VIA and V1B from UBFG2/2 and UBFGR/3 of control logic circuits UCL3A and UCL3B as well as inputs U3 from a common UCLl-type programmable OR gate circuit.
  • the logic outputs WlA and WlB from the control logic circuits UCL3A and UCL3B provide respective inputs to D flip-flops DFF2 and DFF3, also clocked by the clock line CLOCK.
  • the Q outputs Ql, Q2 and Q3 from the flip-flops DFF1, DFF2 and DFF3 may be used as external logic signals. Those Q outputs also may be transferred from the flip flops DFF1, DFF2 and DFF3 to programmably controlled logic generation cells KC0..KC3 KC4..KC7 and KC8..KC11 which generate signals K0..K3, K4..K7 and K8..K11 for the inputs CNO..CN3 of the UBFG2/1—UBFG2/3, respectively .
  • FIGURE 20 An example of a suitable programmably controlled logic function cell K for the cells KC0..KC3 is illustrated in FIGURE 20 and comprises an EXCLUSIVE OR gate having a first input connected to receive the logic signal value Ml from a programmable memory cell.
  • a NAND gate has two inputs, one connected to receive the logic signal value MO from a programmable memory cell and a second input connected to receive the Q output from the flip flop DFF1. The output K0 from the cell K is thus
  • control inputs K0..KC3 for UBFG2/1 from the cells KC0..KC3 could thereby each be selected from: K0..K3 e ⁇ 0,1,Q1,Q1' ⁇ using logic signal values MO and Ml stored in programmable memory cells as selection signals applied to each one of the cells KC0..KC3.
  • external logic signals may also be supplied from a port Pi (for example a terminal pin on a semiconductor chip on which the PLD(s) and control logic circuitry are integrated) and used to enter values as input signals to the programmably controlled logic cells KC0..KC3 for providing the control inputs K0..K3 to UBFG2/1.
  • the control inputs K0..K3 for UBFG2/1 of the control logic circuit UCL2 then could be selected from: K0..K3 e ⁇ 0, 1,Q1,Q ,PI ⁇ , using as selection signals, values MO, Ml and M2 stored in volatile or nonvolatile memory cells.
  • These programmably controlled logic signal generator cells could be designed using conventional design procedures and would implement the following truth table:
  • UBFG2/2 and UBFG2/3 of the control logic circuits UCL3A and UCL3B also receive at their inputs CN0..CN3 signals K4..K7 and K8..K11 from programmably controlled logic generation cells KC4..KC7 and KC8..KC11, respectively.
  • Cells KC6, KC7, KC10 and KC11 are designed and controlled in a similar manner to the cells KC0..KC3 as described above, with cells KC6, KC7 receiving inputs Q2 from the flip flop DFF2 and from the external pin P2 while the cells KC10 and KC11 receive inputs Q3 from the flip flop DFF3 and from the external pin P3.
  • the logic generator cells KC4 and KC8 also receive Ql from the flip flop DFF1 and Q2 from the flip flop DFF2, respectively, as SHIFT inputs. Ql also is applied as a COUNTER propagation input to the function cell KC5 while the ANDED signal Q1&Q2 is applied as a COUNTER propagation input to the cell KC9.
  • ___ ⁇ w selected from: K4 e ⁇ 0,1,Q2,Q2 * ,SHIFT,P2 ⁇ , and K8 e
  • MO, Ml and M2 stored in volatile or nonvolatile memory cells.
  • KC4 and KC8 could be designed using conventional design procedures to implement the following truth table:
  • Shifting operations performed using KC4/KC8 type logic generation cells in the manner described above enable the temporary stores DFFl, DFF2 and DFF3 to be loaded from one pin Px by a succession of clocked operations.
  • This allows the implementation of Parallel- In-Serial-Out and Serial-In-Parallel-Out shift registers to be functionally integrated into one circuit.
  • This circuit can then be used to process these signals for functions such as Boolean polynomial calculations, which are extensively used in implementing Error Detection and Correction Coding schemes.
  • the inputs K5 and K9 generated by the cells KC5 and KC9 for UBFG2/2 and UBFG2/3 of the control logic circuits UCL3A and UCL3B could be selected from: K5 € ⁇ 0, 1 , Q2 , Q2 ⁇ , COUNT XOR Q2,P2 ⁇ , and K9 e ⁇ 0,1,Q3,Q3 ⁇ COUNT XOR Q3,P3 ⁇ , using as selection signals, values M0, Ml and M2 stored in volatile or nonvolatile memory cells.
  • the programmably controlled logic generation cells KC5 and KC9 could be designed using conventional design procedures to implement the following truth table:
  • counter functionality can be obtained by connecting additional UCL3-type stages and their associated D flip flops and function cells corresponding to KC8..KC11, with the KC9 type programmable function cells receiving inputs derived from the D flip flop of that stage and from the D flip flop of the preceding stage in the manner shown in Figure 19 for an Up Counter function.
  • Down Counter and Up/Down Counter functions can be obtained by appropriate changes in the connections between the Q and Q* outputs from the D flip flops to the KC9 type programmable logic generation cells of neighboring stages.
  • the counter functions are described according to the following relations:
  • the Q outputs from any or all of the flip flops DFF1, DFF2 and DFF3 and the outputs from programmable OR gates POR may be used to provide external logic signals.
  • the DFF1 flip flop output Ql and the logic signal UO from an additional control circuit UCL1A are applied as inputs to a 2-to-l multiplexer MUXA.
  • the Q output from a flip flop and the output from a programmable OR gate of a UCL3-type control circuit could be applied as inputs to a multiplexer.
  • FIG. 19 This is illustrated in Figure 19 by the connection of the Q3 output from the flip flop DFF3 and of the U2 output from a programmable OR gate of the control circuit UCL3B to a 2-to-l multiplexer MUXC.
  • a flip flop Q output and a logic signal output from a programmable OR gate together with their inverted values could be applied as inputs to a 4- to-1 multiplexer to provide for output signal polarity selection.
  • the multiplexer MUXB receives the Q2 and Q2* outputs from the flip flop DFF2 while a logic signal UO from an additional programmable OR gate UCL1B is applied directly and via an inverter INV as inouts to the multiplexer MUXB.
  • Figure 19 also includes circuitry permitting a multiplicity of enable inputs to be used to select connection of the output from a multiplexer to an external pin.
  • the output from the multiplexer MUXB is connected via a switched inverter INVS to the external pin P2.
  • An enable input for the inverter INVS is provided by a Universal Boolean Function Generator UBFG2/X implemented as described with reference to Figure 3.
  • Output enable signals 0E1 and OE2 provide the logic input signals to UBFG2/X (equivalent to logic signals A and B in Figure 3) and the signals to inputs CN0..CN3 may be provided by values which may be stored in a volatile or nonvolatile memory, in the same manner as the stored values E00..E01 in Figure 3.
  • any of the sixteen logical functions of inputs OE1 and OE2 are available for selecting connection of the output from the multiplexer MUXB to the external pin P2.
  • Similar output enable selection circuitry could also be used in conjunction with other output selection multiplexers such as MUXA and MUXC.
  • the logic signals K0, Kl, K2 and K3 are selectively transferred from input to the output of the UBFG2/1.
  • the output signal VI of UBFG2/1 serves as the data input signal to the D flip flop DFFl.
  • the signal generators KC0..KC3 of K0, Kl, K2 and K3 each possess a selector which is controlled by the state of the associated three bits of memory MO, Ml and M2 (not illustrated) .
  • DFFl is clocked, the state of the D flip flop is set to whichever one of these signals is present at the output of UBFG2/1.
  • Figure 21 shows an arrangement similar to that shown in Figure 19 but employing three - logic - input Universal Boolean Function Generators UBFG3 in place of the two - logic - input generators UBFG2 as shown in Figure 19. As previously explained, this three input Boolean function generator requires eight control input signals to achieve full logic function generation of the three input signals.
  • UBFG3/2 and UBFG 3/3 of the control logic circuits UCL2, UCL3A and UCL3B receive an additional logic input UO from respective control logic circuits UCLlA, UCL1B and UCLlC.
  • the necessary four additional signals K12..K15, K16..K19, and K20..K23 for each of these UBFGs are provided by additional groups of programmably controlled logic generation cells KC12..KC15, KC16..KC19, and KC20..KC23, respectively.
  • Figure 22 shows further extensions of the arrangement shown in Figure 21.
  • the logic output UO from the control logic circuit UCLlA is connected to provide one of a pair of logic inputs to a two - logic - input Universal Boolean Function Generator UBFG2/4.
  • the output U2 from the control logic circuit UCL2 provides the second logic input for UBFG2/4 while the output from UBFG2/4 is connected to an input of the two-to-one multiplexer MUXA.
  • a set of four programmably controlled logic signal generator cells KC24..KC27 are connected to provide signals to the inputs CN0..CN3 for the UBFG2/4.
  • the function generation cells KC24..KC27 receive a Q input from the flip flop DFFl and an external pin input from pin Pi. (It should be noted that whereas in Figure 21 UBFG3/1 of the control logic circuit UCL2 has three logic inputs, it is shown in Figure 22 as a generator UBFG2/1 having two logic inputs.
  • the multiplexer MUXB is shown as receiving true and inverted outputs from a two-logic input Universal Boolean Function Generator UBFG2/5 connected (in a manner analogous to UFBG2/4) to receive as inputs, the logic control signal UO from the control logic circuit UCL1B and the logic output signal U2 from the control logic circuit UCL3A.
  • Control signals K28..K31 for UBFG2/5 are derived from four programmably controlled logic signal generator KC28..KC31 which receive Q2 and P2 inputs from the flip flop DFF2 and the external pin P2.
  • Figure 22 also shows an alternative manner of selecting output signals that can be used instead of multiplexers.
  • the multiplexer MUXC of Figure 21 is replaced in Figure 22 by an Universal Boolean Function Generator UBFG2/6 connected to receive one logic input signal UO from the control logic circuit UCL1C, the second logic input signal being provided by the Q3 output from the flip flop DFF3.
  • a group of programmably controlled logic function cells KC32..KC35 receive Q3 and P3 inputs from the flip flop DFF3 and the external pin P3, respectively.
  • the logic signals output from those function cells are connected to provide control input signals K32..K35 for control inputs CN0..CN3 of the UBFG2/6.
  • This arrangement provides additional versatility compared with use of a multiplexer for output signal selection.
  • Figure 23 illustrates a further development of the arrangement shown in Figure 22 in which pairs of temporary stores or registers, e.g., D flip flops DFFIA,DFF1B; DFF2A,DFF2B; and DFF3A,DFF3B replace individual flip flops.
  • the output VI from the UBFG2/1 of the control logic circuit UCL2 is connected to provide D inputs to the flip flop pair DFFIA,DFF1B while the outputs WI from the AND gates of the control logic circuits UCL3A and UCL3B are connected to provide D inputs to the flip flop pairs DFF2A,DFF2B and DFF3A,DFF3B, respectively.
  • the states of the D inputs of the flip flops DFF1B, DFF2B and DFF3B are transferred to their Q outputs by clock signals on the clock line CLOCK when those flip flops are enabled by signals EN applied over the ENABLE line.
  • the states of the D inputs of the flip flops DFFIA, DFF2A and DFF3A are transferred to their Q outputs by clock signals on the clock line CLOCK when those flip flops are enabled by signals EN* applied over the ENABLE line.
  • connection of the Q outputs from both flip flops DFFIA and DFF1B are connected to the output line Ql; the Q outputs from the flip flops DFF2A and DFF2B are connected to the output line Q2; and the Q outputs the flip flops DFF3A and DFF3B are connected to the output line Q3.
  • connection of the Q outputs from the flip flops to their associated output multiplexer and to their associated generation cells can be selected either by the EN signals or by the EN* signals.
  • the function cells KC12..KC35 are implemented in the same manner as the function cells KC0..KC3.
  • control signals MO, Ml, etc. for the programmably controlled logic signal generator cells KC0..KC35 can be provided by values stored in memory cells, which may be programmable and individual to each particular function cell.
  • Figures 18-23 a variety of programmable logic function networks have been shown for connection to receive logic inputs derived from output OR gates OG of a PLD. Individual ones of the various networks shown in the respective Figures 18-23 may be selected as required to provide a particular overall logic function in conjunction with the PLD from which the OR gate outputs are derived. Although four logic inputs derived from PLD OR gates OG have been shown by way of example, this is not critical. However, increases in the number of inputs would increase the complexity of the programmable OR circuits POR. Moreover, it is not essential that all of the POR circuits of the UCL networks shown in Figures 18- 23 receive logic inputs from the same PLD OR gates OG.
  • Figure 24 shows in diagrammatic form, a logic network embodying the folded logic arrays and associated circuit configurations based on those described herein.
  • the network includes two pairs of triangularly folded programmable logic devices PLDL and PLDR which may be based on the configurations described with reference to Figures 1-15, comprising a pair of PLDs arranged in a generally rectangular format as ' depicted by Figure 16.
  • the outputs from selected OR gates OG of each PLD of the pairs PLDL and PLDR are connected to programmable OR gates POR disposed in an array PORA.
  • the array PORA together with UBFGs and logic signal generator cells KC located in the Register Function Cells array RFC, flip-flops DFF located in the Register blocks DFFs' additional programmable OR gates located in the Combination Logic array PORB, multiplexers MUX in the Multiplexer block, and output selection circuits located in the Output Function block OE, are interconnected to provide logic functionality associated with circuits such as described with reference to Figures 18-23.
  • circuits such as UCL2, UCL3A and UCL3B together with the associated UBFGs, function cells KC, flip flops DFF and multiplexers MUX can be realized by appropriate interconnections between the blocks Programmable PORA, RFC, DFF and MUX.
  • Circuits such as UCLlA, UCL1B and UCL1C can be realized by interconnections between the blocks PORB and MUX.
  • Outputs from the multiplexer in the block MUX are transferred to the output pins I/O by outputs from PLDL and PLDR applied to output enable circuits in the output enable block OE.
  • Outputs from flip flops in the blocks DFF also are connected as feedback logic inputs to the input selections IGL and IGR.
  • Logic inputs such as A X B X and C..D,. are passed from input/output pins I/O and input pins I and Clocks into input selectors IGL and IGR which select pairs of inputs and perform the functionability of the circuit IG shown in Figure 3, supplying the resultant minterms to AND gates of the programmable cells PC2 in the arrays PLDL and PLDR.
  • Direct, or fast, outputs from the arrays PLDL and PLDR arrays are obtained by connections from the outputs of OR gates OG of those arrays and output pins FO.
  • each of the arrays PLDL and PLDR comprises two triangular folded PLD arrays each of which has eighteen PLFGs made up of eight pairs of FAND10, FAND12, FAND1 ...FAND22 AND gate arrays plus four pairs of FAND24, the OR gates OG of which provide inputs to the programmable OR gate arrays PORA and PORB.
  • An additional pair of PLFGs comprising FAND24 AND gate arrays have OR gates OG, the output from one of which is connected directly to the output pins FO.
  • Outputs from the OR gate OG of the other FAND24 AND gate array in each of the arrays PLDL and PLDR provide output enable and UP/DOWN count control signals.
  • the overall circuit can be integrated on a semiconductor chip and accommodated in a 28 pin DIP package, and has been designed under the type designation IT 91AL10L.
  • Figure 25 depicts an interconnected logic array comprising two programmable folded logic devices PLDl and PLD2, each having seven sets of programmable logic function generators FAND12 .. FAND24 and configured in a triangular array such as described with reference to Figures 1-15, but with the OR gates OG6..0G12 in the two devices arranged along the hypotenuse of each triangle for diagrammatic convenience.
  • Logic input pairs A0,B0 .. All,Bll are applied to the programmable logic device PLDl and logic input pairs CO,DO .. C11,D11 to the logic device PLD2.
  • One of the two triangles is inverted with the hypotenuse of one triangle spaced from and facing that of the other triangle.
  • Logic combination networks LCN are arranged in the intervening space so that an overall rectangular configuration is obtained.
  • Each of the logic combination networks LCN100, LCN200, LCN400 and LCN500 receives one or more inputs from both PLDl and PLD2 while the logic combination network LCN300 receives inputs either from PLDl or from PLD2.
  • the inputs to the networks LCN may be derived from the AND gate groups SGA by corrections from the outputs of selected OR gates OGx or from the inputs to the selected OR gates OGx from their associated AND gate group SGX in PLDl and PLD2.
  • a Logic Combination Network LCN may receive its inputs from OR gates OG or AND-gate groups SG having different width FAND groups in PLDl and PLD2 (e.g.
  • LCN 100 is shown as receiving inputs from the OR gates OG12 of the PLFGs FAND22 in PLDl and PLD2) or from OR gates of same width FANDs (e.g. LCN400 is shown as receiving inputs from the AND-gates LC of PLFGs FAND18 in both PLDl and PLD2) .
  • the network LCN300 may receive inputs from two or more OR-gates OG of PLDl or of PLD2 (e.g. one LCN300 is shown as receiving inputs from the OR-gates OG10 and OG11 in PLDl and another LCN has inputs from the OR-gates OG8 and OG9 in PLD2) and these inputs may be grouped in multiples other than two.
  • Such arrangements permit not only outputs M and N from the individual OR gates OG of the two programmable logic devices PLDl and PLD2 to be obtained, but also one or more outputs 0 and/or P from each logic combination network LCN based on logic signals derived from either or both of the devices PLDl and PLD2.
  • the output (s) 0,P from the logic combination networks LCN may be used externally or as feedback logic input (s)
  • Figures 26-30 show examples of various logic control networks LCN and their connections to the programmable logic devices PLDl and PLD2.
  • the input signals to CNl..., DN1... of each of the control networks LCN in Figures 27-37 which are user programmable may conveniently be derived from values stored in a user programmable volatile or non-volatile memory which may be the same memory used to supply the programmable control inputs to the PLFGs in the programmable logic devices PLDl and PLD2. This permits even greater versatility and user management of complex logic functions to be obtained.
  • Figure 26 shows an example of a logic control network LCN100 comprising four AND gates AC1..AC4 whose outputs are input to a common OR gate producing an output O(P) .
  • the AND gates AC1..AC4 receive first inputs from respective AND gates of a subgroup SGA6 (FAND12) in PLDl and second inputs from respective AND gates of a subgroup SGA12 (FAND24) in PLD2.
  • Inputs to the AND gates AC1..AC4 could be derived from AND gates of subgroup SG of FANDs of the same width it desired, e.g., FAND6 in both PLDl and PLD2.
  • the logic function outputs M,N and/or 0(P) may be used externally of the interconnected logic array or feedback as logic inputs to selected PLFGs in PLDl and PLD2. In normal circumstances, it is unlikely that both outputs M and O(P) or N and O(P) would be used, in which case a pair of multiplexers may be included as shown in Figure 26 to select either output O(P) from both sides or output M from one side and output N from the other side.
  • Inputs to the AND gates of the network LCN 100 alternatively could be obtained from FAND arrays of the same width in PLDl and PLD2.
  • the network LCN could employ other configurations of logic gates (AND, OR, NAND, NOR, and/or INVERTER) to obtain desired fixed logic networks.
  • NOR negative-OR gate
  • Boolean Function Generator(s) for example similar to that described with reference to Figure 3, could be used in place of one or more of the fixed AND gates and Or gates logic network LCN shown in Figure 26. Also, instead of obtaining inputs from the output AND gates AG of a
  • FIG. 26 shows an example of a logic combination network LCN200 wherein two programmable Universsal Boolean logic Function Generators UBFG20 and UBFG2P, as described with reference to Figure 3, each receives logic inputs Mx,Nx from OR gates OGx of identical width FAND arrays in PLDl and PLD2.
  • the FAND arrays may be of the same or different widths.
  • the generators UBF20 and UBFG2P produce respective outputs 0 and P independently determined by programmable sets of logic signals to the control inputs CN1-4 and DNl-4.
  • Figure 28 shows an example of a logic control network LCN300 employing two programmable Universal Boolean Function Generators UBFG20 and UBFG2P.
  • the function generator UBFC20 receives a pair of logic inputs Mx,My from the OR gates OGx and OGy of two different programmable logic function generators FAND of PLDl.
  • the function generator UBFG2P receives a pair of logic inputs Nx,Ny from the OR gates OGx and OGy of two different programmable logic function generators FAND of PLD2.
  • the logic function generators FAND need not be the same width in each of PLDl and PLD2 nor need the function generators FAND be located in adjacent FAND arrays of a programmable logic device.
  • Each of the generators UBFG20 and UBFG2P is independently user programmable by respective sets of logic signals to control inputs CNl-4 and DNl-4.
  • connections within and between PLDl and PLD2 provided by the network LCN as described with reference to Figs 27 and 28 each allows for much more complex logic signals to be generated by either or both PLDl and PLD2.
  • Figure 29 shows another example of a logic combination network LCN300 employing two programmable 3- input Universal Boolean logic Function Generators UBFG30 and UBFG3P.
  • the function generator UBFG30 receives a triplet of logic inputs comprising the outputs Mx,My from two different OR gates OGx and OGy of PLDl and the output Ny from the OR gate OGy of PLD2.
  • the function generator UBFG3P receives a triplet of logic inputs comprising the outputs Nx,Ny from the two different OR gates OGx and OGy of PLD2 and the output Mx from the OR gate OGx of PLDl.
  • the OR gates OGx and OGy need not be associated with the same width FAND array in each of PLDl and PLD2 nor need the OR gates OGx and OGy be associated with adjacent FAND arrays of PLDl and/or PLD2.
  • Construction of the generators UBFG30 and UBFG3P is readily derived from Figure 3 adapted to provide for decoding of a logic input triple (instead of a pair) which involves use of 8 (instead of 4) user programmable control inputs CN1..CN8 and DNl.. DN8 (connected to row lines RLO—RL7) and eight associated decode gates.
  • Figure 30 shows a further example of a logic control network LCN400 employing two programmable 4-input Boolean logic function generators UBFG40 and UBFG4P.
  • Each of the function generators UBFGO and UBFG4P receives a quadruplet of logic inputs comprising the outputs Mx,My from two different OR gates OGx and OGy of PLDl and the outputs Nx,Ny from the OR gates OGx and OGy of PLD2.
  • the OR gates OGx and OGy need not be associated with the same width FAND arrays in each of PLDl and PLD2 nor need the OR gates OGx and OGy be associated with adjacent FAND arrays of PLDl and/or PLD2.
  • Logic combination networks such as described with reference to figures 19-23 may be used to connect various of the FAND arrays in a pair of programmable logic devices PLDl and PLD2 to provide a configurable logic network capable of user programmation both within PLDl and PLD2 as well as of the logic combination networks LCN, to perform a wide variety of logic functions at least some of which may have significant complexity.
  • logic combination networks LCN as described above to obtain interconnections between OR gates OGx of two PLDs may be further expanded.
  • logic combination networks such as LCN400 could be connected to receive inputs from OR gates OGx of three different PLDs which might or might not be neighboring.
  • logic combination networks such as LCN500 might be connected to receive inputs from OR gates OGs of three or four different PLDs. Examples of particular utility for such connections may be appreciated from Figures 16 and 17.
  • logic combination networks such as LCN400 or LCN500 might be used to receive inputs from all three PLDs.
  • three input logic combination networks LCN 400 might usefully be employed at locations where three PLDs neighbor each other to receive inputs from OR gates OG in each of the three PLDs.
  • Logic combination networks LCN500 might usefully be disposed at locations where four PLDs neighbor each other, to receive inputs from OR gates OG in each of the four PLDs.
  • logic inputs to any of the logic combination networks might be obtained from remotely located OR gates OG in various ones of the PLDs.
  • FIG. 16 Although there are advantages associated with use of folded triangular PLD arrays, other folded configurations may be used, some of which are depicted in Figures 16 and 17. Also, the embodiments described above with reference to Figs 18-23 can be implemented with rectangular configurations for PLDl and PLD2. In such a modified arrangement, all of the FANDs of the PLFGs would be associated with the same number of input logic pairs A,B or C,D.
  • PLDl and PLD2 might each have a series of same width PLFGs (e.g. FAND24) or PLDl might have PLFGs of one width (e.g. FANDIO) while PLD2 might have PLFGs of a different rank (e.g. FAND16) .
  • embodiments of the invention may be implemented using conventional programmable circuits to provide the logic input signals to the LCN network.
  • Such conventional programmable circuits include Programmable Logic Arrays (PLAs), Programmable Gate Arrays (PGA) and Programmable Memory Arrays (PMA) .
  • PLAs include arrays in which a combinational logic network implements either a sum of products or a product of sums decomposition of logic functions.
  • PLAs may be factory or field programmable.
  • PGAs are based on factory programmation of uncommitted logic gates to provide a collection of desired logic functions.
  • a PMA is based on building blocks requiring 2 ⁇ bits of memory for n logic inputs for implementing any logical function of the n inputs.
  • the control inputs CN1..., DNl... to the logic combination networks LCN which are programmable may conveniently be derived from values stored in a memory.
  • This memory may be a user programmable volatile or non ⁇ volatile memory or factory programmable for example the same memory used to supply the programmable control inputs to the programmable cells PC2 in the programmable logic devices PLDl and PLD2.
  • control inputs CN1..CN4 and/or DN1..DN4 for any or all of LCN200, LCN300, LCN400 and LCN500 could be connected to receive inputs from a selectable one of several programmable memory cells which could be integrated in the same semiconductor chip as the overall system, and locations convenient to the particular LCN networks to which they are to provide control inputs.
  • embodiments of the invention do not need to employ folded or rectangular user programmable PLDs employing PLFGs in the AND gate array as described above.
  • logic network such as any of LCN100 - LCN500 could be connected to receive as inputs corresponding to M x , N x , M y , N x , logic outputs from conventional programmable logic devices such as PALs or PLAs wherein an array of AND logic gates (or OR logic gates) receives logic inputs from which product terms
  • Additional versatility can be obtained and also still more complex user programmable configurations, by using the outputs 0, P from selected as logic inputs to additional programmable Boolean function generators.
  • the 0, P outputs from the circuits LCN may be derived from more than two PLDs, as previously explained. Individual ones of the various networks shown in the respective Figures 18-23 may be selected as required to provide a particular overall logic function network in conjunction with the PLDs interconnected in the LCNs which provide their logic inputs Ok, 01, Pm, Pn. Although four logic inputs derived from LCNs have been described by way of example, this is not critical. However, increases in the number of inputs would increase the complexity of the programmable OR circuits POR.
  • Selected OR gates OG of one programmable logic device PLDA and selected OR gates OG of the programmable logic device PLDB could be connected to logic control networks selected from networks such as
  • LCN100, LCN200 and LCN400 as shown in Figures 26,27,29, and 30.
  • Figure 31 depicts a multipurpose logic circuit employing UCL2, UCL3A and UCL3B stages, and associated temporary data registers DFFl, DFF2 and DFF3 strobed by the CLOCK signal and connected and operating in the manner described with reference to Figure 19.
  • the Q output of the flip flop DFFl is also connected to provide first logic input to each of a pair of three logic input Universal Boolean Function Generators UBFG3/S1 and UBFG3/C1, a second logic input to both generators being provided from an external port Pi.
  • the Q outputs of the flip flops DFF2 and DFF3 are similarly connected as the first logic inputs to UBFG3/S2, UBFG3/C2 and UBFG3/S3, UBFG3/C3, respectively, which receive second logic inputs from external ports P2" and P3 respectively.
  • UBFG3 generators are implemented in a similar manner to the IG/PC2 circuit described with reference to Figure 2, modified so that the IG circuit provides the minterm set of three logic inputs as input signals to eight AND gates in the programmable cell.
  • the AND gates also receive programmable inputs which can be selectively connected on outputs from the generator as a function of the three logic signal inputs to the programmable logic cell.
  • the third logic input CO to the UBFG3/S1 is provided by an output from a programmable OR circuit PORC (constructed as shown in Figure 31) which receives logic inputs Ok, 01, Pn and Pn derived from LCNs as previously described.
  • the outputs from UBFG3/C1 and UBFG3/C2 provide third logic inputs to UBFG3/S2, UBFG3/C2 and UBFG3/S3, UBFG3/C3 respectively.
  • Logic outputs SI, S2 and S3 from UBFG3/S1,S2, /S3 are connected as inputs to the programmable logic signal generators KC0..KC3; KC4..KC7; and KC8..KC11, respectively.
  • Each UBFG3/Si has a set of control signals SCN0..SCN7 and produces an output from these control signals derived from any selected function of the logic input signals Ci-1, Qi and Pi.
  • each UBFG3/C has a set of control signals CCN0..CCN7 and produces an output signal Ci from those control signals derived from any selected function of the logic input signals Ci-1, Qi and Pi.
  • control signals SCN0...SCN7 and CCN0..CCN7 respectively can be shared between UBFG3/Si generators and UBFG3/Ci generators in two or more stages.
  • control signals can be provided locally to the UBFG3/Si and UBFG3/Ci generators of a particular stage, for example by a group of programmable memory cells integrated in the same semiconductor chip as the generator and located at a conveniently accessible location.
  • Si SCNO & Qi* & Pi* & Ci-1* or SCN1 & Qi* & Pi* & Ci-1 or SCN2 & Qi* & Pi & Ci-1* or SCN3 & Qi* & Pi & Ci-1 or SCN4 & Qi & Pi* & Ci-1* or SCN5 & Qi & Pi* & Ci-1 or SCN6 & Qi & Pi & Ci-1* or SCN7 & Qi & Pi & Ci-1* or SCN7 & Qi & Pi & Ci-1
  • Ci CCNO * Qi* & Pi* & Ci-1* or CCN1 & Qi* * Pi* & Ci-1 or CCN2 & Qi* & Pi & Ci-1* or CCN3 & Qi* & Pi & Ci-1 or CCN4 & Qi & Pi* & Ci-1* or CCN5 & Qi & Pi* & Ci-1 or CCN6 & Qi & Pi & Ci-1* or CCN7 & Qi & Pi & Ci-1
  • SCNO-7 and CCNO-7 signals as being shared amongst the UBFG3/Si and UBFG3/Ci generators.
  • the following functions of Qi, Pi and Ci-1 will implement incrementing where CO is assumed to be 1:
  • Ci-1 xor Pi Qi* & ( Ci-1 xor Pi) or Qi & (Ci-1 xor Pi)* Qi* & Pi* & Ci-1 or Qi* & Pi & Ci-1* or Qi & Pi & Ci-1 or Qi* & Pi* & Ci-1* & Ci-1*
  • Figure 32 depicts a modification of Figure 31 in which the UBFG3/Si and UBFG3Ci pairs are replaced by dedicated, fixed logic adder stages SUMO, SUMl, SUM2 and a third adder stage SUM3 incorporated together with a Carry Out Stage Cy x Out.
  • the SUMO stage receives inputs from the Q output of the flip flop DFFl, Pi port, and a Carry In Cy x In signal derived from the programmable OR circuit PORC as described with reference to Figure 31, and generates an output logic signal SO connected as an input to the logic signal generators KC0.KC3.
  • stages SUMl, SUM2 and SUM3 are similarly structured to SUMO but in addition receives Q and P logic inputs from each of the preceding stages as well as the Carry In signal Cy x In.
  • the Carry Out stage Cy.. Out receives the same input signals as the SUM3 stage and generates a Carry Out signal Cy Out.
  • Figure 33 shows in diagrammatic form, a configurable logic network CLN embodying circuit configurations based on those described herein.
  • the network CLN includes two pairs of triangularly folded programmable logic devices PLDL and PLDR which may be based on the configurations described with reference to Figures 1-15, comprising a pair of PLDs arranged in a generally rectangular format as depicted by Figure 16.
  • the outputs from selected OR gates OG of each PLD of the pairs PLDL and PLDR are connected to programmable OR gates POR disposed in an array PORA.
  • the array PORA together with UBFGs and function cells KC located in the Register Function Cells array RFC, flip-flops DFF located in the Register blocks DFFs additional programmable OR gates located in the Combination Logic array, multiplexers MUX in the Multiplexer block, and output selection circuits located in the Output Function block are interconnected to provide logic functionality associated with circuits such as described with reference to Figures 18-23 and 31-36.
  • circuits such as UCL2, UCL3A and UCL3B together with the associated UBFGs, logic signal generator cells KC, flip flops DFF and multiplexers MUX can be realized by appropriate interconnections between the blocks Programmable PORA, RFC, DFF and MUX.
  • Circuits such as UCLlA, UCL1B and UCL1C can be realized by interconnections between the blocks PORB and MUX.
  • Logic combination circuits such as LCN200..LCN500 could be realized by connections between PLDL, PLDR and UBFGs in the block RFC.
  • Outputs from the multiplexer in the block MUX are transferred to the output pins I/O by outputs from PLDL and PLDR applied by output enable circuits in the output enable block OE.
  • Output from flip flops in the blocks DFF also are connected as feedback logic inputs to the input selections IGL and IGR.
  • Logic inputs such as A X B X and C X D X are clocked from input/output pins I/O into input selectors IGL and IGR which perform the functionability of the circuit IG shown in Figure 3, supplying the resultant minterms to AND gates of the programmable cells PC2 in the arrays PLDL and PLDR.
  • Direct, or fast, outputs from the arrays PLDL and PLDR arrays are obtained by connections from the outputs of the OR gates OG of those arrays and output pins OF.
  • each of the arrays PLDL and PLDR comprises two triangular folded PLD arrays each of which has eighteen PLFGs made up of eight pairs of FANDIO, FAND12, FAND14...FAND24 AND gate arrays the OR gates OG of which provide inputs to the programmable OR gate arrays PORA and PORB.
  • An additional pair of PLFGs comprising FAND24 AND gate arrays have OR gates OG, the outputs from each is connected directly to the output pins OF.
  • Outputs from the OR gate OG of the other FAND24 AND gate array in each of the arrays PLDL and PLDR provide output enable and UP/DOWN count control signals.
  • the overall circuit can be integrated on a semiconductor chip accommodated in a 28 pin DIP package, and has been designed under the type designation IT91AL101.
  • PLDs embodying the invention have utility in applications such as high speed combinatorial logic, system controllers and complex state machines. Thus, they may advantageously be employed as state machine controllers, such as communications controllers between high speed electronic systems having different clocks.
  • state machine controllers such as communications controllers between high speed electronic systems having different clocks.
  • one or more conventional PLDs may typically be employed in conjunction with each of various subsystems such as video, RAM, communications, and peripheral interface subsystems, for controlling communications with the CPU.
  • PLD's embodying the invention integration of the necessary PLDs together with the associated programmable control memory on a single semiconductor chip or wafer in a cost effective manner is facilitated. Flexibility in operation also is enhanced because the programmation of complex logic functions implemented by the PLDs can readily be changed by a user, especially when a user programmable memory is employed to store the control input values.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
EP94901341A 1992-11-10 1993-11-08 Dispositifs logiques programmables et reseaux logiques configurables. Ceased EP0669057A4 (fr)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97419392A 1992-11-10 1992-11-10
US974193 1992-11-10
US972993 1992-11-10
US07/972,993 US5394030A (en) 1992-11-10 1992-11-10 Programmable logic device
PCT/US1993/010787 WO1994011950A1 (fr) 1992-11-10 1993-11-08 Dispositifs logiques programmables et reseaux logiques configurables

Publications (2)

Publication Number Publication Date
EP0669057A1 EP0669057A1 (fr) 1995-08-30
EP0669057A4 true EP0669057A4 (fr) 1996-01-17

Family

ID=27130561

Family Applications (1)

Application Number Title Priority Date Filing Date
EP94901341A Ceased EP0669057A4 (fr) 1992-11-10 1993-11-08 Dispositifs logiques programmables et reseaux logiques configurables.

Country Status (3)

Country Link
EP (1) EP0669057A4 (fr)
KR (1) KR100287538B1 (fr)
WO (1) WO1994011950A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655637B1 (ko) * 2009-10-14 2016-09-07 차오로직스, 아이엔씨. 가변 회로 토폴로지를 가지는 고활용도 범용 로직 어레이 및 상수 전력 시그니처를 가지는 다양한 로직 게이트를 실현하기 위한 로지스틱 맵 회로
DE102016118000B4 (de) 2016-09-23 2018-12-20 Infineon Technologies Ag Programmierbare logikschaltung und verfahren zur implementierung einer booleschen funktion
DE102019112583A1 (de) 2019-05-14 2020-11-19 Infineon Technologies Ag Integrierte elektronische schaltung

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3579119A (en) * 1968-04-29 1971-05-18 Univ Northwestern Universal logic circuitry having modules with minimum input-output connections and minimum logic gates
US4124899A (en) * 1977-05-23 1978-11-07 Monolithic Memories, Inc. Programmable array logic circuit
US4642487A (en) * 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
US4742252A (en) * 1985-03-29 1988-05-03 Advanced Micro Devices, Inc. Multiple array customizable logic device
US4872137A (en) * 1985-11-21 1989-10-03 Jennings Iii Earle W Reprogrammable control circuit
KR930004033B1 (ko) * 1990-08-09 1993-05-19 현대전자산업 주식회사 프로그래머블 로직소자의 입력/출력 마크로셀

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
No further relevant documents disclosed *
See also references of WO9411950A1 *

Also Published As

Publication number Publication date
EP0669057A1 (fr) 1995-08-30
KR950704859A (ko) 1995-11-20
KR100287538B1 (ko) 2001-04-16
WO1994011950A1 (fr) 1994-05-26

Similar Documents

Publication Publication Date Title
US5394030A (en) Programmable logic device
KR100280861B1 (ko) 프로그램 가능한 논리 네트워크
US5121006A (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5821774A (en) Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure
EP1354404B1 (fr) Architecture type reseau prediffuse programmable a superposition de tuiles possible
US6359469B1 (en) Logic element for a programmable logic integrated circuit
US5898602A (en) Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5563529A (en) High speed product term allocation structure supporting logic iteration after committing device pin locations
US7317332B2 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
US6747480B1 (en) Programmable logic devices with bidirect ional cascades
GB2311885A (en) Programmable logic array
WO2001050607A1 (fr) Dispositif logique programmable avec cellules de fonctions configurables pour effectuer des operations booleennes et arithmetiques
US8072238B1 (en) Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions
US6043676A (en) Wide exclusive or and wide-input and for PLDS
US5596766A (en) Configurable logic networks
EP0669057A1 (fr) Dispositifs logiques programmables et reseaux logiques configurables
EP0177280B1 (fr) Circuit logique à sortie dynamiquement contrôlable
EP1092268A2 (fr) Ressources d'interconnexion et entree/sortie pour des dispositifs de circuit integre a logique programmable
Malhotra et al. Novel field programmable embryonic cell for adder and multiplier
US6104207A (en) Programmable logic device
US6870396B2 (en) Tileable field-programmable gate array architecture
US6707315B2 (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US7336099B1 (en) Multiplexer including addition element
GB2325071A (en) Programmable logic array
EP1705798B1 (fr) Ressources d'interconnexion destinées à dispositifs logiques programmables à circuit intégré

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19950531

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB IE NL

A4 Supplementary search report drawn up and despatched

Effective date: 19951127

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): DE FR GB IE NL

17Q First examination report despatched

Effective date: 19961106

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20000129

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1010024

Country of ref document: HK