PROGRAMMABLE LOGIC DEVICE

Abstract: A device having a number of general registers each allo­ cated an input/output port and a number internal "buried" state registers. A user-controlled signal permits observation of the contents of the buried state registers at an input/output port although these registers are not allocated an input/­ output port. Each register is connected to a logic circuit in­ ternal to the device by a dedicated feedback path so that all registers can be used to specify states in a state machine sequencer. A fuse-programmable XOR gate permits a user to control generation of signals at the ports by permitting enabl­ ing and disabling of an inverting output buffer. Asynchro­ nous reset and synchronous preset of the registers is prov­ ided. In addition to the dedicated feedback paths, programmable feedback paths are provided. An output inver­ ter can selectably be enabled from internal signals or from an external pin. The input/output circuit can be deployed in banks, each bank selectably receiving the same or a different clock. The registers can be preloaded via an internally-­ generated signal or from the external pins. In an alternative embodiment, a programmable AND array and a pair of pro­ grammable OR arrays, each serving one of the banks, prov­ ides a flexible programmable logic array device with obser­ vable buried states.

Description: The present invention relates to integrated circuit chips, and more particularly, to integrated circuits containing programmable logic devices having embedded and observable internal state registers, especially one containing a programmable AND and OR array logic devices. Reference is made to our European Patent Application 86308372, published under the number EP-A-0 225 715, which forms a state of the art according to Article 54 (3) EPC. As the technology for manufacturing integrated circuits progresses, it is becoming possible to put more and more discrete logic components on a single integrated circuit chip. For instance, there can be thousands of discrete logic components, such as, AND-gates, OR-gates, inverters and registers, on a single integrated circuit chip. However, due to limitations in packaging technology, the number of input and output ports to a given integrated circuit chip is limited. Thus, thousands of discrete logic components must be served typically by on the order of a few dozen input/output (I/O) ports. The small number of input/output ports available for a given integrated circuit thus severely restricts the flexibility in design of logic circuits implemented on integrated circuit chips. Flexibility in design is particularly important for devices such as programmable array logic devices. In a programmable array logic device, a user of the device configures the logic array according to a specific need using field programming techniques. Since the user is constrained in his design choices by the configuration of the input/output pins, the utility of the programmable logic array is limited. Our European Patent Specification 86308372, published under the number EP-A-0 225 715, addresses one way in which the configuration of input/output ports may be made more flexible. There, the user is able to select from a variety of input modes or a variety of output modes for a given input/output pin by setting a selector means using field programming techniques, such as blowing a fuse or not blowing the fuse, when the designer sets up the logic circuit on the chip in conjunction with user-determined "product terms" generated within the logic array. In the input mode the port may be configured as a dedicated, registered, or latched input; in the output mode as registered, combinatorial or latched output. A register/latch, in conjunction with a fuse-programmable input select multiplexer, can function air an input, output or buried register or as a transparent latch. A programmable clock select multiplexer selects between a clock/latch enable signal applied at an external pin or a product term generated internally. Clock polarity control is also provided. Asynchronous reset and preset of the register/latch is provided along with polarity control therefor. Dedicated and programmable feedback paths are provided. An output inverter can selectably be enabled from internal signals or from an external pin. The input/output circuit can be deployed in banks, each bank selectably receiving the same or a different clock. The register/latch can be preloaded via an internally-generated signal or from the external pins. Thus, for example, the designer is able to locate registered outputs and combinatorial outputs on the I/O pins as he desires for a selected logic array package. Another way in which to increase the flexibility of the design for programmable array logic devices of the prior art provides selectable feedback in the output logic so that the designer may choose using field programming techniques to provide a feedback path directly from the I/O pin to the logic array, in effect, treating the I/O pin as an input pin, or to select a registered output from the logic array as feedback. This sort of feedback system is described in product literature for the Advanced Micro Devices 24-pin IMOX™ Programmable Array Logic Device designated the AMPAL22V10 (PAL is a registered trademark of Monolithic Memories Inc.). An advanced information sheet concerning the AMPAL22V10 was released by Advanced Micro Devices Inc., Sunnyvale, California dated June, 1983. This advanced information can be referred to for further background to the present invention. Both the output selector and the feedback selector of the prior art mentioned above involved a designed-in or field programmed selection of the type of feedback or the type of output for a particular I/O pin. Accordingly, the user was limited to one configuration of each I/O pin for the device. Since it is desirable to provide a flexible output logic circuit, there is a need for an output logic circuit which provides for increased flexibility and overcomes the limitations of the prior art. Furthermore, because of the use of such logic circuits in sequencers which employ internal state counters, it is often desirable to deploy a register within the logic circuit as a dedicated buried state register. The Altera EP1200 device which is discussed in the paper "Programmable logic replaces gate arrays" by Yiu-Fai Chan, in 8080 Wescon Technical Papers 1984 (Oct.30 - Nov. 2), Anaheim, California, USA, is an example of programmable logic devices having the possibility of so called buried registers, as set out in the preamble of claim 1. Accordingly, there is need for an input/output circuit which can be flexibly configured in which a so-called "buried", or internal, state register can be flexibly utilized. This feature allows the system designer to build improved "state machines" or "control sequencers" as they are known. A need for monitoring the contents of these registers is also recognized as a desirable feature missing from input/output logic circuits. Another limitation in the prior art is the lack of observable buried state registers with a variable number of "product terms" received by an OR gate supplying each register and a lack of dedicated feedback paths from all I/O pins to the logic circuitry internal to the chip. As such, undesirable design constraints are imposed in the manner in which signals generated internally are allocated, oftentimes resulting in inefficient use of registers. For instance, existing programmable array logic devices typically have ten or twelve registers, each allocated an I/O pin. A state machine designer using such a device is forced to allocate some of these registers as internal state registers, thereby tying up scarce I/O pins. It is desirable that a number of user-accessible, dedicated internal state registers be available which are not allocated an I/O pin. However, mere provision of such accessible registers is not sufficient because a circuit must be tested by the designer. This requires dynamically observing the contents of these internal state registers during debugging and circuit verification. Further, while the prior art provides dedicated feedback, for the determination of states, from the registers allocated an I/O pin, a designer would like to permit the state to be a function of the contents of all registers, including the internal state registers Accordingly, it would be desirable to have dedicated feedback from all registers, so that the designer can flexibly construct a state machine with a variable number of internal states and a variable number of registers allocated an I/O pin. Frequently, registers within programmable array logic devices are used as "state machine" counters and, normally, the contents of such registers need not be conducted to I/O pins, since their contents is used internally for counting purposes. However, the prior art has nevertheless allocated an I/O pin to each of such registers for such PAL "logic sequencers," as they are called. A further need develops during the preliminary testing and development of the input/output circuit for observing the contents of such buried state registers while not dedicating an input/output pin for this purpose. A further desirable feature is the ability to preload registers from the logic array, rather than applying a Zener level preload voltage, which may not be available during testing stages. Provision of an independent combinatorial signal from a programmable OR portion of the logic array, separate from the signal received therefrom and stored in a register, is desirable in that the register may be used as a buried register when the signal received independently from the array is conducted to the I/O pin serving this register. This capability also allows the designer a different combinatorial and a different sequential output to be fedback from the same device, by selecting the output appropriately. Furthermore, it is often desirable to allow clocking of the register of individual output logic circuits from the logic array as well as from the usual clock, with selection by the user. It may even be desirable to permit user-selection from a pair of clocks, particularly when the integrated circuit chips employing the output logic circuits are deployed in two banks, each with its own clock. SUMMARY OF THE INVENTION The present invention provides, in one embodiment, a programmable array logic integrated circuit device having a set of input/output (I/O) pins each served by a dedicated output register, a set of I/O pins each served by an I/O cell which permits flexible user configuration of the I/O pin, and a set of dedicated buried state registers not allocated I/O pins, but whose contents are nevertheless observable, under control of the user, at the I/O pins shared with the dedicated registers and the I/O cells. A typical programmable array logic device according to the present invention, may for instance include twenty external pins, of which eight are I/O pins, four of which may be served by dedicated output registers and four served by I/O cells. The four dedicated output registers provide registered output from a variable distribution of eight, eight, twelve and twelve logic signal lines conducted from the programmable AND array portion of the PAL device of the instant invention, to four eight-, eight-, twelve- and twelve-input OR gates connected to the data (D) input terminals of the dedicated output registers. A dedicated feedback path connects each of four I/O pins served by the output registers to the AND array. Fuse-programmable polarity-selection means included with the dedicated output registers allow the user to determine the polarity of the signal that will be generated at the I/O pin corresponding to the signal generated by the register. An inverting buffer driving each such I/O pin can be enabled by a signal whose polarity is also user-determinable. The present invention may also include four input/output (I/O) cells for controlling the configuration of four input/output pins served by the cells which allows for dynamic control of the configuration and increases the flexibility of design for the user of the invention. The configuration of the input/output cell is dynamically controlled by the user by coordinating various signals generated by a programmable array logic device, in conjunction with various field-programmable fuses within the I/O cell. The four input/output cells provide a means for controlling configuration of an input/output pin served by each cell and receive at an OR gate a variable distribution of eight, eight, ten and ten, respectively, logic signals from the AND array of the integrated circuit. A fuse-programmable output select multiplexer receives both the logic signal and the signal generated by a register included in the I/O cell and selects, responsive also to an output select signal, either the logic signal or the registered signal as output from the output cell. A fuse-programmable feedback select multiplexer, selects either the signal on the I/O pin served by the cell or the registered signal to be fed back to the AND array. Further, fuse-programmable polarity-selection means as described for the dedicated output registers are included in the I/O cell. Accordingly, the output inverting buffer, the output select multiplexer, the feedback multiplexer, and the polarity-selection means are controllable by a combination of their respective programmable fuses and dynamic control signals. For instance, combinatorial output signals from the AND array can be generated at one I/O pin and registered output signals can be fed back simultaneously to the AND array by appropriate selection of fuses and control signals. A set of six dedicated buried state registers receive a variable distribution of six, six, eight, eight, ten and ten, respectively, combinatorial logic signals from the AND array at their respective OR gates connected to the data (D) input of the buried registers. A dedicated feedback path connects the output terminal of each register to the AND array. Accordingly, a designer can choose any of the contents of the dedicated output registers, the input/output cells, and/or the dedicated buried state registers, as "state" registers in the design of a state machine sequencer. A fuse-programmable exclusive OR (XOR) gate is provided which allows flexible control of the signals conducted via the output inverting buffers. Unlike the prior art, which typically used a multiplexer providing means to disable the outputs generated by such buffers, the XOR gate permits the user to truly enable or disable the output buffers based on a combination of multiple signals or their complements. A user-controlled observability enable signal "product term" is received by a set of six inverting buffers serving the buried registers as well as the inverting buffers serving the dedicated output registers and two of the four inverting buffers serving the I/O cells. This signal causes the latter six buffers to disable signal flow from the six respective output registers and I/O cells to the respective I/O pins and to enable signal flow from the six buried registers to the respective I/O pins. Hence, the contents of the buried registers can be monitored for debugging of the device. Each of the dedicated output and buried registers, and the registers within the I/O cell receive a common asynchronous reset and synchronous preset product term from the AND array. While an exemplary embodiment of the invention is given in terms of field-programmable fuses, CMOS, EPROM and E²PROM memory cells as equivalents to the fuses is developed in the related copending application, incorporated herein by reference. In one embodiment, multiplexer means are provided to allow clocking of the register of individual output logic circuits from the logic array as well as from the usual clock, with selection by the user. In an exemplary embodiment this feature is used to permit user-selection from a pair of clocks, when the input/output logic circuits of the present invention are deployed in two banks, each with its own clock. Means are also provided to permit user selection of clock polarity. BRIEF DESCRIPTION OF THE DRAWINGS. Fig. 1 is a logic diagram of a first preferred embodiment of the present invention. Fig. 2 is a logic diagram of a programmable array logic device implementing the present invention employing dual clocks. Fig. 3 is a logic diagram of an alternative embodiment of an output macrocell of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Fig. 1 is a logic diagram of the programmable array logic (PAL) device 10 of the present invention. The PAL 10 as shown in Fig. 1 permits configuration of the input/output ports of an integrated circuit chip, such as input/output (I/O) pins 12 and 14. For purposes of illustration, only one, 12, of the several, such as four, I/O pins is shown, which serve the several, such as four, dedicated output register portions only one, 16, of which is shown. Similarly, only one, 14, of the several, such as four, I/O pins is shown, which serve the several, such as four, output macro cells 18. Also, only one, 20, of the of the several, such as six, buried state register portions is shown in Fig. 1. The PAL device 10 is connected to a programmable AND array 22, which generates combinatorial logic signals on a set of lines 24. The construction of the programmable AND array 22 is discussed in more detail below. As appreciated in the art, other means for dynamically providing the control signals in this invention can be used, such as a combination of logic signals from a plurality of programmable AND arrays. The lines 24 conduct the logic signals generated by AND array 22 to OR gates serving the dedicated output register portions 16, the output macro cells 18 and the buried state register portions 20. A variable number of lines 24 is connected to each of the various OR gates so as to provide a variable distribution of signals to more efficiently utilize the AND array 22. The numbers adjacent to the lines 24 at their terminus on the OR gates shown in Fig. 1 indicate the number of lines terminating on a particular one of the OR gates serving the four output register portions 16, the four output macro cells 18, and the six buried state register portions 20. Various other signal lines shown in Fig. 1 also have numbers adjacent to them which similarly indicate the number of signals conducted in parallel between the elements interconnected by the signal line. These signals, also called "product terms", are conducted on lines 24 to an OR gate 26 serving the particular dedicated output register portion 16 shown in Fig. 1. Further description of these so-called "product terms" is also contained hereinafter. OR gate 26 is connected to a data (D) input of a register 28. Responsive to a clock (CLK) signal on line 29 received at a clock (C) input of register 28 generates a signal at a Q output terminal thereof. Alternatively, the state of register 28 may be set by application of a common synchronous preset (CMN SYN PRST) signal received from the AND array 22 via a signal line 29b or a common asynchronous reset (CMN ASYN RST) signal received from the AND array 22 via a signal line 29C. A fuse-programmable exclusive OR (XOR) output polarity control gate 30 receives at a first input the signal generated by register 28. A second input of XOR gate 30 is connected to a field-programmable fuse 32, the status of which determines the polarity of the signal generated by dedicated output register portion 16. Each field-programmable fuse circuit includes a resistor (not shown) connected to a high potential V cc . In parallel with the resistor is a fuse connected to ground. The fuse is a field programmable fuse which may he blown or not blown as the user desires when he sets up the device to choose various features such as input selection and clock polarity. Means for dynamically providing control signals can be implemented, instead of by the static field-programmable input, by the product terms generated by programmable AND arrays, a combination of programmable AND arrays, or the like. Further, it will be appreciated by those skilled in the art that the control signals determined by the state elements shown in the figures, and described herein, as field-programmable fuses, may be alternatively provided by CMOS, EPROM or E²PROM memory elements or by signals applied to external pins of the integrated circuit. The dedicated output register portion 16 also includes an output inverting buffer 34 which receives the output signal generated by output polarity control gate 30. The output inverting buffer 34 is enabled by an output enable signal received on line 36. A product term is conducted from the programmable AND array 22 to a first input of a fuse-programmable output enable polarity control XOR gate 38. A second input of XOR gate 38 is connected to a field-programmable fuse 40, the status of which determines the polarity of the output enable signal received by buffer 34. The signal generated by buffer 34 is conducted to I/O pin 12 and via a feedback circuit path 42 from the I/O pin 12 directly to a true and complement buffer 44. The signals generated at the output terminals of input buffer 44 are conducted to the AND array 22. Other product terms are conducted on lines 24 from AND array 22 to an OR gate 46 serving the particular output macro cell 18 shown in Fig. 1. OR gate 46 is connected to the data input (D) of a register 48. Responsive to the clock (CLK) signal on line 29a, the register 48 generates a signal at a Q output terminal. Alternatively, the state of register 48 may be set by application of the CMN SYN PRST or CMN ASYN RST signals received from the programmable AND array via lines 29b and 29c. The asynchronous reset signal will cause the register 28 to generate a logic ZERO output signal at its Q output terminal when the common asynchronous reset signal CMN ASYN RST goes HIGH. This switching occurs independent of the CLK signal applied to register 28. When the common synchronous preset signal CMN SYN PRST is set, the signal generated at the Q output of the register 28 is set to a HIGH signal when clocked by the CLK signal received by register 28. Means providing the synchronous preset signal CMN SYN PRST or asynchronous reset signal CMN ASYN RST are not shown in Fig. 1, but can be implemented dynamically using various product terms generated by the programmable AND array 22 or the like. The output macrocell portion 18 shown in Fig. 1 further includes an output select 2 to 1 multiplexer 50, which receives the signal generated by register 48 at a 10 input terminal and the signal generated by OR gate 46 at a 1D input terminal. The output select multiplexer (MUX) 50 generates at an output terminal either the signal applied at its 1D or the signal applied at its 10 input terminal depending on the state of the signal applied to an output control select input 5 as provided over line 52. A field-programmable fuse 54 is connected to line 52 which determines the state of the output select signal applied to input S. The fuse 54 connected to input 5 determines the "output selection". A fuse-programmable XOR gate 56 receives at a first input the signal generated by MUX 50 and a fuse 58 connected to a second input of gate 56 determines the "output polarity" of the signal generated by output macrocell 18 and conducted to an inverting output buffer 60. Included in the output macrocell 18 of Fig. 1 is a fuse-programmable two input/one output feedback multiplexer (MUX) 62. The feedback MUX 62 receives at a 1D input terminal the logic signal generated by the inverting buffer 60 or received from the I/O pin 14. MUX 62 receives at a 10 input terminal the signal generated at the Q output terminal of register 48. The feedback MUX 62 generates at its output terminal one of the signals applied to its 1D or 10 terminals as controlled by the field-programmable fuse 63 connected to a control select input (S o ) of MUX 62. Thus in response to a feedback select control signal applied to the S0 terminal, the feedback MUX 62 selects from the signals applied to its 1D or 10 input terminals to generate a feedback signal on line 64. The feedback signal on line 64 is conducted to an input buffer such as the true and complement buffer 66 for feedback to the logic circuits internal to the AND array 22 of the integrated circuit. The output inverting buffer 60 is enabled by an output enable signal received on line 68. A product term is conducted from the programmable AND array 22 to a first input of a fuse-programmable output enable polarity control XOR gate 70. A second input of XOR gate 70 is connected to a field-programmable fuse 72, the status of which determines the polarity of the output enable signal received by buffer 60. The signal generated by buffer 60 is conducted to I/O pin 14. Other product terms are conducted on lines 24 from AND array 22 to an OR gate 74 serving the particular buried state register portion 20 shown in Fig. 1. OR gate 74 is connected to the data input (D) of a so-called "buried" register 76. Responsive to the clock (CLK) on line 29a, the buried register 76 generates a signal at its Q output terminal. Alternatively, the state of register 76 may be set by application of the CMN SYN PRST or CMN ASYN RST signals received on lines 29b and 29c. The signal generated by buried register 76 is conducted to a true and complement buffer 78 on a feedback signal path 80 and therefrom to the programmable AND array 22. The signal generated by register 76 is also conducted to an inverting output buffer 82 which receives a user-determinable OBSERVABILITY product term signal from the AND array 22 via a signal line 84. Output buffers 34 and 60 also receive the OBSERVABILITY signal at a complemented input. Buffers 34 and 60 can be enabled by the output enable signals received on lines 36 and 68, respectively, to conduct signals generated from the dedicated output register portion 16 and from the output macrocell 18, respectively, to the I/O pins 12 and 14, respectively. Alternatively, the buffers 34 and 60 can be disabled by the OBSERVABILITY signal received on line 84 and the buffer 82 can be enabled by the OBSERVABILITY signal so as to conduct signals generated from the buried state register portion 20 of the PAL device 10 the the I/O pine 12 or the I/O pine 14. The OBSERVABILITY product term signal accordingly suppresses the selection of the normal output signals and allows observation of the contents of the buried state registers at the I/O pins 12 and 14. As mentioned earlier, the control of any of the circuit elements shown on Fig. 1 by means of the programmable fuses 32, 40, 54, 58, 63 and 72 can be alternately provided by product terms generated by the circuits internal to the integrated circuit chip containing circuit 10. Another alternative is to control any of these elements by signal applied to the external terminals (pins) of the integrated circuit chip, as will be appreciated by those skilled in the art. The programmable AND array 22 shown in Fig. 1 is constructed using the sum of products scheme familiar to those skilled in the art, although other combinations of logic cells can be used. Reference can be had to "Programmable Array Logic Handbook" copyright 1984, Advanced Micro Devices, Inc. and to the related, copending application entitled "Programmable Input/Output Cell with Flexible Clocking and Flexible Feedback" for further details of the internal construction of PALs. As shown on Fig. 1, the logic signal on lines 24 are provided as a sum-of-product term combinatorial signal to the OR-gates 26, 46 and 74. In Fig. 1, these three OR-gates are shown receiving signals from a variable number of separate programmable AND gates within array 22 to provide the combinatorial signal received by the registers 28, 48 and 76, respectively. However, as is appreciated in the art, any number of programmable AND gates can be designed as an input to the OR-gates to provide this combinatorial signal. In the preferred embodiment of Fig. 1, a clock is connected to an input pin providing a clock signal on line 29a. Each of the dynamic control signals discussed with reference to Fig. 1, are provided as the output of the single programmable AND array 22. Accordingly, the common asynchronous reset signal (CMN ASYN RST) and the common synchronous preset signal (CMN SYN PRST) are provided as the output of the programmable AND array on lines 29c and 29b, respectively. The observability signal is provided as the output of a programmable AND array on line 84. The various output enable signals are provided as the output of the programmable AND array on signal lines connected to XOR gates 38 and 70. Any of the control signals mentioned above can be implemented by more complicated logic circuitry, such as sum-of-products terms, if desired. The means providing the various dynamic control signals can be configured in a variety of manners, either as a simple product term from the output of a single programmable AND array 22 or as a sum of products term from the output of an OR-gate summing a plurality of programmable AND arrays. Further, each I/O pin can be configured uniquely. In Fig. 1, the common synchronous preset signal CMN SYN PRST and CMN ASYN RST signal are provided in common to all the registers (See Fig. 1) in the output register portions 16, the output macrocells 18, and the six buried register portions 20 of the programmable array logic device 10. The synchronous preset signal is dynamically provided as a product term from the output of programmable AND array on line 29b. As with the other dynamic control signals, the common synchronous preset CMN SYN PRST or asynchronous reset signal CMN ASYN RST can be implemented with other logic circuitry such as a sum-of-products term according to the present invention. The function of the programmable array logic device 10 is enhanced by the dynamically provided control signals in conjunction with the six programmable fuses 32, 40, 54, 58, 63 and 72. The fusible link 32 of the device 10 of the instant invention can be set to determine whether the signal generated by XOR gate 30 is active HIGH or is active LOW and thus fuse 32 is referred to as the dedicated output register portion 16 polarity fuse. Fusible link 58 performs output polarity selection for the output macrocell 18. The fusible links 40 and 72 can be set to determine whether the output enable control signals received by XOR gates 38 and 70, respectively, are to disable or enable the output buffers 34 and 60, respectively. The fusible link 54 connected to MUX 50 can be set to determine whether the combinatorial signal at its 1D input or the registered signal at its 10 input will be conducted to the output polarity XOR gate 56. And the state of fusible link 63 connected to MUX 62 similarly determines whether the registered signal at its 1D input or the signal on the I/O pin 14 conducted to its 10 input is to be fedback to the AND array 22. As the foregoing discussion illustrates, the function of the programmable array logic device 10 is greatly enhanced by the output logic circuits 16, 18 and 20 of the present invention. Further the output logic circuits can be utilized in a variety of integrated circuit devices to enchance the flexibility and dynamic control of the particular circuit implemented on the integrated circuit chip. In this manner the limitation occasioned by the relatively small number of input/output ports on a given integrated circuit chip with respect to the number of logic devices implemented on the chip can be minimized. Fig. 2 illustrates an alternative embodiment in which the buried state registers and output macrocells similar to those shown in Fig. 1 are utilized in a programmable logic array (PLA) device 100. This embodiment employs a programmable AND array 122, similar to that shown in Fig. 1 as element 22, in conjunction with a pair of programmable OR arrays 102a and 102b. Each of the OR arrays receives from AND array 122, on a set of 48 signal lines, 48 "product term" signals and generates therefrom sixteen signals in an AND-OR (PLA) type of architecture. As this embodiment differs from that illustrated in Fig. 1 only in the employment of OR arrays, details of the output macrocells and in the clocking mechanism, many of the elements shown therein are omitted from Fig. 2 in the interest of clarity. The suffix "a" and "b" is used on Fig. 2 and its description when referring to elements forming a portion of an output macrocell 118a or of an output macrocell 118b, respectively, or of a buried state register portion 120a or a buried state register portion 120b, respectively. Reference numerals used in Figs. 2 and 3 are preceded by a "1" which indicate a like element in Fig. 1 not preceded by the "1". A first bank of I/O pins, such as six, of which only one is shown 112a in Fig. 2, serve a first set of six, output macrocells 118a and a second bank of I/O pins, such as six, of which only one 112b is shown, serve a second set of six output macrocells 118b. A first set of four buried state register portions, of which only one 120a is shown, are associated with the OR array 102a and the output macrocells 118a, while a second set of four buried state register portions, of which only one 120b is shown, are associated with the OR array 102b and the output macrocells 118b. Each buried state register portion 120a and 120b receives a signal from OR array 102a, 102b, respectively, in the same manner shown in Fig. 1 in which register 76 receives at its D input the signal generated by OR gate. Accordingly, each portion 120a and 120b comprises a register receiving the signal generated by an OR gate within OR array 102a, or 102b, respectively, and generates therefrom a signal at its Q output which is conducted back to AND array 122 on signal lines 180a and 180b, respectively, via buffers 178a and 178b, respectively. Similarly, the signals generated by the buried state registers 120a and 120b are conducted to the output macrocells 118a and 118b, respectively via signal lines 179a and 179b, respectively, where they may be observed at the I/O pins 112a and 112b, respectively, upon application of an OBSERVABILITY signal, as described above in connection with Fig. 1. In all respects, the buried state register portions 120a and 120b illustrated in Fig. 2 are identical in structure and function with the buried state register portion 20 shown in Fig. 1 and, accordingly, will not be described in further detail. However, the output macrocells 118a and 118b differ in some respects from the output macrocell 18 illustrated in Fig. 1. With reference to Fig. 3, an output macrocell 118, representative of macrocells 118a and 118b, of Fig. 2, receives both a first and a second signal from OR array 102a or 102b. The first such signal is conducted to the D input of a register 148, as is the case in the output macrocell 18 illustrated in Fig. 1. The second such signal is conducted to first true and complemented input terminal of an output and polarity select 4 to 1 multiplexer (MUX) 150. The Q output terminal of register 148 is connected to second true and complemented input of output select MUX 150. The output select MUX 150 of output macrocell 118 accordingly receives separate signals from the OR array to allow the user to pass either the first, combinatorial, signal directly from the OR array to the I/O pin or the second, registered, signal to the I/O pin. In the former case, the register behaves as a buried register. Provision of the separate signals from the OR array via OR gates 145 and 146 allow use of the register 148 of output macrocell 118 as another "buried" register, in the case where the combinatorial output signal on line 145 is selected by output select MUX 150, rather than the contents of register 148, to be conducted to I/O pin 114. A common output register observability term signal is received at a first input to an output register observability control OR gate 153 which generates a signal which, in turn, is conducted to an SO output control terminal of MUX 150. A field-programmable fusible link 153a is connected to a second input of OR gate 153. Field-programmable fusible link 152 connected to MUX 150 provides a similar polarity control function described earlier in connection with MUX 50 of Fig. 1. A common buried register observability term signal is conducted to inverting output buffer 160. The status of fuses 153a and 152 determine whether the registered or combinatorial signal will be conducted to I/O pin 114, and whether this signal so-conducted will be active HIGH or active LOW, respectively. With fuse 153a intact, the combinatorial signal is generated at pin 114, but the user can observe the contents of output register 148 at pin 114 by setting the common output register observability term signal HIGH. The user can observe the contents of the buried register 76 served by I/O pin 114 by setting the common buried register observability signal HIGH, thereby disabling output buffer 160, in the manner described earlier in connection with Fig. 1. In all other respects, the output macrocell 118 illustrated in Fig. 3 is identical in structure and function with the output macrocell 18 shown in Fig. 1, and accordingly, will not be described in further detail. The contents of the buried state register portions 120a and 120b are conducted via lines 179a and 179b, respectively, to the output macrocells 118a and 118b, respectively, as shown on Fig. 2. A signal line 179, respresentative of lines 179a and 179b is shown on Fig. 3 as conducting the signal generated by the inverting buffer (82 an Fig. 1) serving the buried state register (76 on Fig. 1) to the I/O pin 114, in the same way as described in connection with Fig. 1. As shown on Fig. 3 a common preload product term signal is received by register 148 from the AND array 122 which allows the user to set the state of register 148 during preliminary circuit verification when Zener voltages may not be available for this purpose. A common preload product term signal is also received by the buried state register portions 120a and 120b for preloading of these registers as well. A first clock signal (CLK/I) applied to the integrated circuit package containing the PAL 100 is conducted on signal line 190 to a first input terminal of a fuse-programmable two-input, two-output clock multiplexer (CLK MUX) 192 a second clock signal (CLK/II) applied to PAL 100 is conducted to the second input terminal of CLK MUX 192 as well as to the programmable AND array 122. By appropriate programming of the field-programmable fuse 194 connected to a control select input (S0) of CLK MUX 192, the clock signals CLK1 and CLK2 generated at each of its outputs is either the CLK I or CLK II signal. The clock signal generated by MUX 192 at its first output, CLK1, is conducted to the register 148a of the first bank output macrocells 118a and to the register 176a of the buried state register portions 120a and the clock signal generated at its second output, CLK2, is conducted to the register 148b of the second bank output macrocells 118b and to the register 176b of the buried state register portions 120b. Furthermore, provision of fuse-programmable CLK MUX 192 allows the use of a common clock (CLK I) or different clocks CLK I and CLK II for each bank. Another alternative embodiment to the PLA device shown in Fig. 2 is one in which a common clock is employed to provide the CLK1 and CLK2 signals received by the output macrocells 118a and 118b and the buried state registers 120a and 120b, employed in a single bank. In this single-bank alternative embodiment, the programmable OR array 102a is connected to the output macrocells 118a and 118b, rather than elements 118a and 120a, while the programmable OR array 102b is connected to the buried state register portions 120a and 120b, rather than elements 118b and 120b. These connections provide a separate output generation OR array 102a and a separate control sequencing OR array 102b so that the user can programmably specify dynamic control signals for the output macrocells 118a and 120a and independently specify control signals for the buried state register portions 120a and 120b. The foregoing description of alternative preferred embodiments of the invention has been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The programmable array logic device and the programmable logic array device embodiment are chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.

Claims: A programmable logic device arranged to be operated with a given supply voltage relative a ground potential including a logic array (22) which is arranged to generate from a number of input signals a plurality of array output signals which may be data signals and/or control signals, a plurality of output cell means (16,18), each associated with a respective input/output port (12,14), and each arranged to receive and output a respective first data signal generated as an array output by said logic array (22), to generate an output signal at its respective input/output port (12,14) through a respective coupling means (34,60,160), and a plurality of buried storage cell means (20), each arranged to receive and store a respective second data signal, generated as an array output by said logic array (22), and to generate a stored signal output, therefrom, characterised in that an output of said logic array (22) is arranged to provide a first control signal forming an observability signal (84), having first and second levels, by means of which the contents of said buried storage cell means (20) may be made available at a respective input/output port (12,14). A programmable logic device as claimed in Claim 1 characterised in that each said buried storage cell means (20) is associated with a respective one of said output cell means (16,18), and the output of each buried storage cell means (20) is passed to the associated input/output port (12,14) of said respective one of said output cell means when said observability signal is at said second level. A programmable logic device as claimed in Claim 1 or 2 characterised in that each of said output cell means (16,18) comprises a storage cell (28,48,76). A programmable logic device as claimed in any preceding claim, characterised in that each said coupling means (34,60,160) associated with an output cell means is further responsive to a respective output enable signal (36,68) to pass the output of the output cell means to the chosen input/output port; and each said respective output enable signal is provided as a respective second control signal generated as an array output by said logic array. A programmable logic device as claimed in claim 4 characterised by respective first programmable mode means (38,70) for selectively configuring each said output enable signal (36,68) to an active high or an active low mode. A programmable logic device as claimed in claim 5, characterised in that each said first programmable mode means comprises a XOR gate (38,70), an input of which is connected to receive the respective output enable signal and a second input of which is connected to receive a first selection signal (40,72). A programmable logic device as claimed in any preceding claim, characterised in that the output of each said output cell means includes respective second programmable mode means (30,56) for selectively configuring that output to an active high or an active low mode. A programmable logic device as claimed in claim 7, characterised in that each said second programmable mode means comprises a XOR gate (30,56), an input of which is connected to the output of the respective output cell means and a second input of which is connected to receive a respective second selection signal (32). A programmable logic device as claimed in any preceding claim, characterised in that respective feedback means (44,66,78) is provided for conducting the output signal from each said cell means (16,18,20) to said logic array (22). A programmable logic device as claimed in any preceding claim; as dependent upon Claim 3, characterised in that a number of said output cell means (18) each comprises a macro logic cell each including: an output select multiplexer means (50) connected to receive said first data signal and the output signal from the respective storage cell (48) and responsive to a respective third selection signal (52) to selectively couple either said first data signal or the output signal to the respective output coupling means (60). A programmable logic device as claimed in any preceding claim, as dependent upon Claim 3, characterised in that a number of said output cell means (118) each comprises a macro logic cell each including: an output multiplexer means (150) connected to receive a respective third data signal generated as an array output by said logic array (22) and the output signal from the respective storage cell (148), and responsive to a respective third selection signal (152) to selectively couple either said third data signal or the output signal to the respective output coupling means (160). A programmable logic device as claimed in claim 11, characterised in that said output multiplexer means (150) is connected to be further responsive to a respective third control signal (SØ) generated as an array output by said logic array (22). A programmable logic device as claimed in claim 12, characterised by respective third programmable mode means (153) for selectively enabling said respective third control signal (SØ). A programmable logic device as claimed in claim 13, characterised in that each said third programmable mode means comprises an OR gate (153) an input of which receives the respective third control signal and a second input of which receives a fourth selection signal (153a). A programmable logic device as claimed in any one of claims 10 to 14 characterised in that said number of said output cell means (18,118) each includes respective feedback multiplexer means (62,162), responsive to a respective fifth selection signal (63,163), and connected to receive said output signal from the respective storage cell and a signal at the respective input/output port, for selectively coupling one of those signals as a feedback signal to an input of said logic array (22). A programmable logic device as claimed in any preceding claim as dependent upon claim 2, characterised in that each storage cell of said plurality of output cell means and each storage cell of said plurality of buried storage cell means may be preloaded with a chosen state in response to an array output generated by said logic array (22). A programmable logic device as claimed in any preceding claim, characterised by respective means (44) for feeding a signal on an input/output port to an input of said logic array (22). A programmable logic device as claimed in any preceding claim, as dependent upon claim 2, characterised in that said storage cells are each further responsive to a fifth (RST) control signal (29c) generated as an array output of said logic array for a synchronous resetting of said storage cells to a predetermined state. A programmable logic device as claimed in any preceding claim, as dependent upon claim 2, characterised in that said storage cells are each further responsive to a sixth (PRST) control signal (29b) generated as an array output by said logic array for synchronous presetting of said storage cells to a predetermined state. A programmable logic device as claimed in any preceding claim, characterised in that said cell means are each arranged to be responsive to a common clock signal (29a). A programmable logic device as claimed in any one of claims 1 to 17, characterised in that a first (118a) and a second (118b) plurality of said cell means, together with a respective first (120a) and second (120b) plurality of said buried storage cell means, are arranged to be respectively responsive to a first (CLK1) and second (CLK2) clock signals. A programmable logic device as claimed in claim 21, characterised in that it is arranged to receive a first (CLK/I) and a second (CLK/II) bank clock signal, and characterised by a bank clock select multiplexer means (192) connected to receive said first and second bank clock signals and selectively couple one of said received signals to a first (CLK1) and a second (CLK2) output of the bank clock select multiplexer means 192 in response to the status of a bank clock select programming signal (194), said outputs supplying said first and second clock signals. A programmable logic device as claimed in any preceding claim characterised in that the logic device comprises a programmable logic array (22). A programmable logic device as claimed in any preceding claim, characterised in that said logic device comprises a first programmable logic means (122) having a plurality of inputs and arranged to dynamically generate logic signals and second programmable combinatorial logic means (102a,102b) for combining a subset of logic signals from the first programmable logic cell means and for generating a plurality of combinatorial logic signals therefrom to form said array outputs. A programmable logic device according to any preceding claim characterised in that the source of any one of said selection signals is a respective programmable fusible link (32,40,58,72,52,63,194), the status of which determines said selection signal.

Inventors: AGRAWAL, OM P., MUBARAK, FARES, SHANKAR, KAPIL
Applicants: ADVANCED MICRO DEVICES, INC.
Application year: 1986
Main classification: H03K19
IPC codes: G06F17, G01R31, G06F7, H03K19