throbber
(12) United States Patent
`Young et al.
`
`USOO6218864B1
`(10) Patent No.:
`US 6,218,864 B1
`(45) Date of Patent:
`Apr. 17, 2001
`
`(54) STRUCTURE AND METHOD FOR
`ENERATING A CLOCK ENABLE SIGNAL
`
`(75) Inventors: Steven P. Young, San Jose; Jane W.
`Sowards, Fremont; Wilson K. Yee,
`Pleasanton, all of CA (US)
`(73) Assignee: Xilinx, Inc., San Jose, CA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`(21) Appl. No.: 09/370,854
`(22) Filed:
`Aug. 10, 1999
`
`(51) Int. Cl.' .................................................. H03K 19/096
`
`7
`
`(56)
`
`(52) U.S. Cl. .................................. 326/93; 326/38; 326/31
`(58) Field of Search
`326/37, 38, 39
`326/40, 41, 93, 95, 98
`References Cited
`U.S. PATENT DOCUMENTS
`3/1998 Mote, Jr. ................................ 326/93
`5,731,715
`9/1998 Smiley ......
`... 327/34
`5,808,486
`5,986,470 * 11/1999 Cliff et al. ............................. 326/41
`6,021,501
`2/2000 Shay ..................................... 327/291
`
`OTHER PUBLICATIONS
`“PCI Local Bus Specification”, PCI Special Interest Group,
`Revision 2.2, Dec. 18, 1998.
`* cited by examiner
`Primary Examiner Michael Tokar
`ASSistant Examiner-Don Phu Le
`(74) Attorney, Agent, or Firm-Lois D. Cartier
`(57)
`ABSTRACT
`The invention provides a structure and method of generating
`a clock enable signal in a programmable logic device (PLD).
`A first embodiment of the invention comprises a clock
`enable circuit implemented Such that the critical paths have
`only two levels of logic. In this embodiment, the critical
`paths are implemented in dedicated logic while other por
`tions of the clock enable circuit are implemented using
`programmable logic. According to another embodiment of
`the invention, the clock enable circuit is located near the
`center of a first edge of the device. A first plurality of output
`registers are located along the first edge on either Side of the
`clock enable circuit, with additional output registers being
`located along the two adjacent half-edgeS. Programmable
`interconnection points (PIPs) permit a clock enable inter
`connect line along the first edge to be programmably
`extended to the additional output registers. In another
`embodiment, the clock enable circuit is duplicated in two
`opposite edges of the device.
`
`22 Claims, 3 Drawing Sheets
`
`From
`General
`Interconnect
`
`
`
`
`
`
`
`
`
`General
`Interconnect
`
`401
`
`/
`
`DELAY
`ELEMENT PCI CE
`
`From
`General
`Interconnect
`
`1
`
`Comcast, Ex. 1011
`
`

`

`U.S. Patent
`
`Apr. 17, 2001
`
`Sheet 1 of 3
`
`US 6,218,864 B1
`
`TRDY X
`
`PCI CE
`
`FIG 1
`s
`(Prior Art)
`
`From
`General
`Interconnect
`
`-201
`
`IRDY
`
`
`
`T RDY
`
`
`
`From
`General
`Interconnect
`
`202
`
`From
`General
`Interconnect
`
`203
`
`PCI CE
`
`FIG. 2
`
`2
`
`

`

`U.S. Patent
`
`Apr. 17, 2001
`
`Sheet 2 of 3
`
`US 6,218,864 B1
`
`OUTFFn+1
`
`PIP UL
`
`
`
`OUTFFm+1
`
`V OUTFF64
`
`FIG. 3
`
`3
`
`

`

`U.S. Patent
`
`Apr. 17, 2001
`
`Sheet 3 of 3
`
`US 6,218,864 B1
`
`From
`General
`Interconnect
`
`IRDY X.
`
`TRDY
`
`
`
`General
`Interconnect
`
`From
`General
`Interconnect
`
`
`
`202
`
`401
`/
`DELAY
`ELEMENT
`
`PCI CE
`
`FIG. 4
`
`401
`
`/ 501
`
`502
`
`t0
`
`PRECE - t2
`
`t1
`
`t3
`
`503
`
`504
`
`FIG. 5
`
`4
`
`

`

`1
`STRUCTURE AND METHOD FOR
`GENERATING ACLOCK ENABLE SIGNAL
`IN A PLD
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`This application relates to the following commonly
`assigned co-pending U.S. patent application: Ser. No.
`09/321,513 invented by Andrew K. Percey, Trevor J. Bauer,
`and Steven P. Young entitled “Input/Output Interconnect
`Circuit for FPGAs, which is incorporated herein by refer
`CCC.
`
`FIELD OF THE INVENTION
`The invention relates to programmable logic devices
`(PLDs). More particularly, the invention relates to a struc
`ture and method for generating a clock enable Signal for a
`PLD.
`
`15
`
`BACKGROUND OF THE INVENTION
`It is necessary for integrated circuits (ICs), including
`programmable logic device (PLDS), to communicate accord
`ing to established protocols. For example, when two or more
`ICs drive a single bit of a bus, only one IC can be allowed
`to provide the Signal at a given time. If a Single bus line is
`driven both high and low at the same time, then the line may
`assume an intermediate State, thereby producing both unpre
`dictable logical results and an undesirable power drain at the
`Signal destination. Further, if a data Signal and a clock signal
`are both provided from a first IC to a second IC, the two
`Signals must be provided at known relative times, to avoid
`latching the wrong data.
`To avoid Such situations, and to allow ICs from various
`manufacturers to communicate with each other, various
`Standards have been developed specifying required input/
`output behavior at IC pins. Systems employing Such a
`Standard typically can include only devices adhering to the
`Standard. Therefore, the ability to meet Such a Standard is a
`Strong commercial advantage.
`One such standard is the PCI standard. PCI is an open,
`non-proprietary local bus Standard offering high perfor
`mance for multiple peripheral devices. The Standard is
`becoming widely accepted throughout the computer indus
`try. A complete PCI Revision 2.2 specification is available
`from PCI Special Interest Group, P.O. Box 14070, Portland,
`Oreg. 972 14, and is incorporated herein by reference. PCI
`Works as a processor-independent bridge between a CPU
`and high-speed peripherals and allows PCI cards built today
`to be used in many different systems. In essence, the PCI
`Standard Specifies a Standard data bus width, address bus
`width, and control Signals to control a Standardized set of
`commands implemented by the Standard, e.g., read, write,
`and So forth. Also specified are the required timing relation
`ships among all of these Signals.
`FIG. 1 shows a small part of a known circuit implement
`ing the PCI standard (a “PCI circuit”). As shown in FIG. 1,
`the control Signals for the PCI circuit include a tristate Signal
`T for tristatable output buffers OBUF, as well as a data input
`Signal I, a clock signal CK, and a Clock Enable Signal
`PCI CE for output registers OUTFF in which the output
`data is stored. (In the present specification, the same refer
`ence characters are used to refer to terminals, Signal lines,
`and their corresponding Signals. In the figures, input/output
`structures are shown as boxes including “X's. These boxes
`represent buffered input/output pads Such as are well known
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,218,864 B1
`
`2
`in the art.) A maximum data bus width of 64 bits mandates
`provision for 64 data input Signals I, 64 data output registers
`OUTFF, and 64 data output buffers OBUF. Clock enable
`Signal PCI CE is not Supplied at an input pad; instead it is
`internally generated from two externally Supplied signals
`Specified by the PCI standard: initiator ready (I) and
`target ready (To). The logical and timing interrelation
`Ships between Signals I
`and T are dictated by the PCI
`Standard. A PCI circuit also includes other signals (not
`shown) requiring additional input/output pads, buffers, out
`put registers and other circuitry. Some of the additional
`output registers are also driven by clock enable Signal
`PCI CE.
`The PCI standard Supports two different rates of data
`transfer, 33 MHz (megahertz) and 66 MHz, and two differ
`ent data bus widths, 32 bits and 64bits. (The data bus width
`of 32 or 64 bits is typically used to identify the specific
`Standard, although the bus implemented by the Standard
`includes additional control Signals and is therefore wider
`than the numerical designator.) Even the 33 MHz data rate
`is difficult to achieve with a 64-bit data bus, and the 66 MHz
`data rate is available in very few available devices at this
`writing. The standard is even more difficult to meet when
`attempting to implement a PCI circuit in a programmable
`logic device (PLD) Such as a field programmable gate array
`(FPGA). A difficult requirement to meet for the 66 MHz/
`64-bit standard is a 6 ns (nanosecond) maximum allowable
`clock-to-out delay for the output register. In other words, the
`delay from the time the clock signal CK is available at the
`clock input pad to the time the output signal appears on the
`output pad O can be no more than 6 ns. In order to meet this
`timing requirement, the output register OUTFF must be
`located at or near the output pad O. Even So, typically
`Several nanoSeconds are consumed between the output reg
`ister and the output pad. In one PLD, the VirtexTM device
`from Xilinx, Inc., the data transfer from output register to
`output pad requires 3 ns. Therefore, only 3 nS are available
`to provide the clock Signal CK from the clock input pad to
`the output register. This timing is normally achievable using
`known methods (e.g., global clock networks).
`However, the clock enable signal PCI CE must be
`present at the output register OUTFF prior to the arrival of
`the clock CK. Therefore, the clock enable signal PCI CE
`has less than 3 ns to reach the output register. Fortunately,
`the I
`and To Signals have a Setup time of 3 nS at the
`input pads. Therefore, there is a total of less than 6 ns
`available between the arrival of I
`and T at the input
`pads and the PCI CE Signal arriving at the output register.
`As previously described (and as shown in FIG. 1), the
`clock enable signal PCI CE does not come directly from a
`buffered pad. Instead, the clock enable signal is generated
`on-chip from the two signals I
`and T. Therefore,
`some internal logic (“CE Logic” in FIG. 1) is of necessity
`included in the clock enable path. Further, the clock enable
`signal PCI CE is very heavily loaded. The PCI standard for
`the 64-bit bus specifies 64 data output registers driven by
`this signal, and there are typically Several other output
`registers driven by PCI CE (e.g., 13) required to implement
`the standard in the FPGA. Therefore, the clock enable signal
`PCI CE has a fanout of more than 64. Consequently, the 3
`nS I
`and To Setup requirement is very difficult to meet.
`In particular, this requirement is difficult to meet when
`implementing the 64-bit, 66 MHz PCI standard in program
`mable logic devices, using the available programmable logic
`CSOUCCS.
`It is desirable to provide a structure and method for
`Supplying a PCI clock enable Signal from the Signals I,
`
`5
`
`

`

`3
`and T to the clock enable pins of output registers in leSS
`than the time specified by the PCI standard. It is yet further
`desirable to provide a similar structure and method for use
`in PLDS adhering to other standards.
`
`SUMMARY OF THE INVENTION
`The invention provides a structure and method of gener
`ating an internal clock enable Signal in a programmable
`logic device (PLD). A first embodiment of the invention
`comprises a clock enable circuit implemented Such that the
`critical paths between the I
`and T. Signals and the
`PCI CE signal have only two levels of logic. In this
`embodiment, the critical paths are implemented in dedicated
`logic while other portions of the clock enable circuit are
`implemented using programmable logic. This mixture of
`dedicated and programmable logic allows the critical path
`requirements to be met while allowing less critical portions
`of the clock enable circuit to be implemented using Standard
`logic blocks. When the same PLD is used to implement a
`non-PCI-compliant circuit, these logic blockS can be used
`for other purposes. Thus, the combination of dedicated and
`programmable circuitry enables the highly efficient use of
`device resources for all circuits, while allowing the imple
`mentation when required of circuits meeting or exceeding
`the very high PCI standard.
`According to another embodiment of the invention, the
`clock enable circuit is located near the center of a first edge
`of the device. This location has the advantages of balancing
`the skew on the clock enable signal and minimizing the
`delay from the clock enable circuit to the farthest output
`register. A first plurality of output registers are located along
`the first edge on either Side of the clock enable circuit. A first
`clock enable interconnect line extends along the first edge
`adjacent to the output registers. Additional output registers
`are located along the two adjacent half-edges of the device,
`with two clock enable interconnect lines paralleling the two
`adjacent half-edges. Programmable interconnection points
`(PIPs) permit the clock enable interconnect line along the
`first edge to be programmably coupled to the two adjacent
`clock enable interconnect lines. This capability of, So to
`Speak, “programmably extending the clock enable intercon
`nect line around the corners' has two advantages. Firstly,
`when only the output registers along the first edge are used,
`the loading on the clock enable interconnect line is reduced,
`thereby speeding up this critical Signal. Secondly, this tech
`nique allows the clock enable circuit of the invention to be
`used on a device or package too small to have Sufficient
`output registerS along a Single edge.
`In another embodiment, the clock enable circuit is dupli
`cated in the centers of two opposite edges of the device. This
`arrangement allows the device to be mounted in a package
`in either the “face up” or “face down” position. Further, this
`arrangement works well in accommodating the pin locations
`recommended as part of the PCI standard. Additionally, two
`independent PCI interfaces can be simultaneously imple
`mented in a single device.
`In one embodiment, the clock enable interconnect lines
`along the left and right edges of an FPGA are dedicated to
`the PCI CE signal. However, the clock enable interconnect
`lines along the top and bottom of the FPGA are implemented
`using general interconnect resources. For example, in one
`embodiment the bi-directional heX lines described in U.S.
`patent application Ser. No. 09/321,513 are used to form the
`top and bottom clock enable interconnect lines. Therefore,
`the horizontal clock enable lines can be extended in Seg
`ments spanning 12 output registers (6 input/output blocks).
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,218,864 B1
`
`4
`In another embodiment, a programmable delay element is
`included in the clock enable circuit. Using the program
`mable delay element, the clock enable Signal edge can be
`adjusted with respect to the clock signal edge So that it falls
`within the setup and hold time “window” for each output
`register in the PLD. This aspect of the invention allows the
`same clock enable circuit to be used in PLDs of widely
`varying sizes. In one embodiment, the programmable delay
`element is mask programmable.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention is illustrated by way of example,
`and not by way of limitation, in the following figures, in
`which like reference numerals refer to Similar elements.
`FIG. 1 shows a known prior art structure for passing PCI
`data Signals through an output register.
`FIG. 2 shows a clock enable circuit according to one
`embodiment of the invention.
`FIG. 3 shows a PLD with two clock enable circuits
`arranged according to another embodiment of the invention.
`FIG. 4 shows a clock enable circuit according to another
`embodiment of the invention.
`FIG. 5 shows a programmable delay element for the clock
`enable circuit of FIG. 4.
`While the invention is susceptible to various modifica
`tions and alternative forms, specific embodiments thereof
`are shown by way of example in the drawings and are
`described herein in detail. It should be understood, however,
`that the detailed description is not intended to limit the
`invention to the particular forms disclosed. On the contrary,
`the intention is to cover all modifications, equivalents, and
`alternatives falling within the Spirit and Scope of the inven
`tion as defined by the appended claims.
`DETAILED DESCRIPTION OF THE DRAWINGS
`In the following description, numerous Specific details are
`Set forth to provide a more thorough understanding of the
`present invention. However, it will be apparent to one skilled
`in the art that the present invention may be practiced without
`these Specific details.
`FIG. 2 shows a clock enable circuit according to one
`embodiment of the invention. Additional logic (not shown)
`is also used when generating a PCI circuit according to the
`PCI standard. This logic is easily generated by those of
`ordinary skill in the relevant arts, therefore it is not shown
`in FIG. 2, for clarity. The additional logic is preferably
`implemented in programmable logic gates available in a
`logic array in the PLD. Signals coming from the additional
`logic are labeled in FIG. 2 as “From General Interconnect”.
`The clock enable circuit of FIG. 2 includes first and
`second AND-gates 201, 202 and 3-input OR-gate 203. A
`buffered input pad provides the initiator ready Signal I.
`The inversion of initiator ready Signal I
`is ANDed in
`AND-gate 201 with a signal from the general interconnect
`Structure, preferably provided by the internal logic array.
`Thus, the origin of the Signal is Selectable by the user when
`programming the PLD, along with the additional logic
`described above. AND-gate 201 drives OR-gate 203, which
`provides the PCI clock enable signal PCI CE.
`Similarly to the initiator ready input signal I, the target
`ready signal T is provided by a buffered input pad. The
`inversion of target ready signal T is ANDed in AND-gate
`202 with a Signal from the general interconnect Structure,
`preferably provided by the internal logic array. AND-gate
`202 also drives OR-gate 203, which provides the PCI clock
`enable signal PCI CE.
`
`6
`
`

`

`S
`The third input signal for OR-gate 203 comes from the
`general interconnect Structure, preferably provided by the
`internal logic array.
`By looking at FIG. 2, it is easily seen that the path from
`either of input signals I
`and T to the clock enable
`Signal PCI CE comprises only two gate delays, the delay
`through one AND-gate (203 or 204) plus the delay through
`OR-gate 203. In one embodiment, the gates shown in FIG.
`2 are implemented in equivalent CMOS logic comprising
`two NOR-gates and a NAND-gate. As is well-known to
`those of ordinary skill in the relevant arts, the clock enable
`Signal itself is preferably buffered one or more times as it is
`distributed about the PLD. However, the delay engendered
`by generating the logic clock enable Signal comprises only
`two gate delayS. Note that the delay through the internal
`logic array has been removed from the critical paths between
`the input signals I
`and T and the clock enable signal
`PCI CE.
`FIG. 3 shows a PLD with two clock enable circuits
`arranged according to another embodiment of the invention.
`The interior of the PLD comprises a logic array of program
`mable logic blockS or gates. Surrounding the logic array is
`a ring of input/output blockS comprising output registers
`(OUTFFx), output buffers (OBUFx), and output pads (Ox).
`The output registers are each driven by a programmable
`clock signal CK and a programmable clock enable Signal
`CE. The output registers are also grouped into two groups,
`one on the left half of the PLD and one on the right half of
`the PLD. The clock signal CK and clock enable signal CE
`for each group are Separate. Because the right half of the
`PLD is a mirror image of the left half, only the output
`registers on the left half of the PLD are described.
`The clock signal CK is provided by a global clock buffer
`CKBUFL located, in this embodiment, at the top center of
`the PLD. (In other embodiments, the clock buffer is located
`at the bottom of the PLD, a corner of the PLD, or in another
`location.) AS with many known global clock distribution
`networks, the clock Signal CK is first routed to the center of
`the PLD, then distributed globally from that point, to mini
`mize skew. The clock signal CK is distributed to the output
`registers on an interconnect line running parallel to the edges
`of the PLD and outside the logic array. A Single clock is used
`for all output registers on the left half of the PLD.
`The clock enable signal is provided by a clock enable
`circuit CE CKT Lin the center of the left side of the PLD.
`The clock enable generation circuit CE CKT L can be
`implemented, for example, as shown in FIG. 2. In this
`embodiment, internal programmable logic Signals are also
`provided by way of general interconnect lines from the logic
`array to the clock enable circuit CE CKT L. From this
`central location, the clock enable Signal PCI CE L is
`distributed to the output registers along the left edge of the
`PLD, via a vertical interconnect line running parallel to the
`edge of the PLD and outside the logic array. This vertical
`interconnect line can be programmably coupled via a pro
`grammable interconnect point PIP UL to a horizontal inter
`connect line extending to the output registers positioned
`above the logic array. The vertical interconnect line carrying
`the PCI CE L Signal can also be programmably coupled
`via a programmable interconnect point PIP LL to a hori
`Zontal interconnect line extending to the output registers
`positioned below the logic array.
`The provision of programmable interconnect points
`(PIPs) between the vertical and horizontal clock enable
`interconnect lines permits the clock enable Signal to be
`provided only to the output registers located along the
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,218,864 B1
`
`6
`left-hand edge of the PLD (OUTFF1-OUTFFn and
`OUTFF33–OUTFFm in the embodiment of FIG. 3). The
`output registers along the top edge (OUTFFn+1-OUTFF32)
`and the bottom edge (OUTFFm+1+-OUTFF64) are option
`ally decoupled from the clock enable circuit. This feature
`Speeds up the clock enable Signal Significantly when leSS
`than a 64-bit bus is used, by Significantly reducing the
`loading on the Signal. The values of n and m vary depending
`on the number of output registerS along the edge of the PLD.
`In one embodiment, all 64 data output registers are arrayed
`along the left edge of the PLD. In other embodiments, a
`maximum data bus width other than 64 is provided, e.g., 128
`bits. In one embodiment, 64 data output registers are arrayed
`along the left edge, with additional registers being Supplied
`along the top and bottom edges of the PLD. In some
`embodiments, additional logic in the PCI circuit is imple
`mented using other output registers in addition to the
`address/data bus. For example, in one embodiment 13
`additional registers are used. These additional output regis
`ters are not shown in FIG. 3, but may be located along any
`edge of the PLD, preferably in the same half of the PLD.
`The central location of the clock enable circuit in the PLD
`of FIG. 3 is desirable both because it limits the delay from
`the clock enable circuit to the farthest output registers, and
`because it minimizes the skew between the closest output
`registers and the farthest output registers. If this skew
`becomes too large, it can cause problems for the circuit. For
`example, if the skew between different registers becomes too
`large, the clock enable Signal edge may not fall within the
`setup and hold time “window” for all registers. The output
`registers, as with any other registers, have both Setup and
`hold time requirements. The Setup time for the clock enable
`pin with respect to the clock pin is the amount of time by
`which the clock enable Signal must precede the clock signal
`in order for the register to respond correctly to the clock. The
`hold time is the amount of time the clock enable signal must
`remain at the clock enable pin of the register after the clock
`Signal edge. Therefore, there is a delicate balance wherein
`the clock enable Signal must arrive long enough before-but
`not too long before-the clock Signal. If either of the Setup
`and hold requirements is violated, the PLD output either
`fails to meet the PCI timing requirements, or simply doesn’t
`function properly (e.g., latches the wrong data). In order to
`ensure meeting both the Setup and hold time requirements,
`it is common to delay one or the other Signal, for example,
`to delay the clock enable edge So it falls within the proper
`time period with respect to the clock edge.
`A PLD is typically produced in several different sizes,
`with different sizes of logic arrays and different numbers of
`input/output pins (and consequently different numbers of
`output registers). This change in sizing may alter loading
`and interconnect delays throughout the PLD. Therefore,
`adjusting the clock enable Signal relative to the clock signal
`can result in a perfectly functioning output register in one
`device (e.g., a larger device), while creating a non-functional
`output register in another PLD (e.g., a Smaller device).
`In order to overcome these limitations, one embodiment
`of the invention includes a programmable delay element in
`the clock enable circuit, as shown in FIG. 4. Between the
`OR-gate 203 (described earlier in connection with FIG. 2)
`providing Signal PRE CE, and the output terminal provid
`ing clock enable signal PCI CE, a delay element 401 is
`provided. This delay element is preferably programmable,
`and may be either mask programmable or programmable by
`the user. If mask programmable, the correct delay for the
`particular size of PLD can be inserted by the PLD
`manufacturer, making the whole issue transparent to the
`
`7
`
`

`

`7
`user. In another embodiment, the delay element is included
`as part of OR-gate 205, or otherwise included in the clock
`enable circuit.
`FIG. 5 shows a mask programmable delay element 401
`that can optionally be used in the clock enable circuit of FIG.
`4. The dotted lines represent mask programmable intercon
`nect lines. These lines may be provided or omitted at the
`discretion of the PLD manufacturer. The delay element of
`FIG. 5 comprises a series of delay elements 501-504. Delay
`element 501 has a delay of t0 ns; delay element 502 has a
`delay of tins; delay element 503 has a delay of t2 ns; and
`delay element 504 has a delay of t3ns. Any of the following
`delays can be implemented by appropriately placing the
`mask programmable interconnect lines.
`
`1O
`
`15
`
`In other embodiments, the number of delay elements and/or
`the delays provided are different from those shown here. In
`another embodiment, delay elements 501-504 are arranged
`in Series, and the output Signal PCI CE can be mask
`programmably taken from the Series of delay elements prior
`to the first delay element, or after any of the delay elements.
`Those having skill in the relevant arts of the invention will
`now perceive various modifications and additions that may
`be made as a result of the disclosure herein. For example,
`communications Standards, data bus widths, control Signals,
`logic arrays, output registers, output buffers, and delay
`elements other than those described herein can be used to
`implement the invention. Moreover, Some components are
`shown directly connected to one another while others are
`shown connected via intermediate components. In each
`instance the method of interconnection establishes Some
`desired electrical communication between two or more
`circuit nodes. Such communication may often be accom
`plished using a number of circuit configurations, as will be
`understood by those of skill in the art. Accordingly, all Such
`modifications and additions are deemed to be within the
`scope of the invention, which is to be limited only by the
`appended claims and their equivalents.
`What is claimed is:
`1. A clock enable circuit in a programmable logic device
`(PLD) for generating a clock enable signal, comprising:
`a first portion of the circuit implemented using program
`mable logic gates otherwise usable for other logic
`functions, and
`a Second portion of the circuit comprising at least one
`critical path for the circuit, the Second portion being
`implemented using non-programmable logic gates not
`uSable for other logic functions,
`whereby the clock enable signal is generated more
`quickly than in another circuit entirely implemented
`using programmable logic gates.
`2. The clock enable circuit of claim 1, wherein the at least
`one critical path comprises no more than two levels of logic.
`3. The clock enable circuit of claim 1, wherein:
`the clock enable circuit is driven by two external signals
`Irdy and Troy; and
`the at least one critical path lies between the two external
`Signals and the clock enable signal.
`4. The clock enable circuit of claim 3, wherein the second
`portion of the circuit comprises:
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,218,864 B1
`
`8
`a first AND-gate driven by the external Signal I,
`a Second AND-gate driven by the external Signal T,
`and
`an OR-gate driven by the first and second AND-gates and
`providing the clock enable Signal.
`5. The clock enable circuit of claim 1, further comprising
`a programmable delay element.
`6. The clock enable circuit of claim 5, wherein the
`programmable delay element is mask programmable.
`7. A method of generating a clock enable signal in a
`programmable logic device (PLD), comprising:
`implementing a first portion of the circuit using program
`mable logic gates otherwise usable for other logic
`functions, and
`implementing a Second portion of the circuit using non
`programmable logic gates not usable for other logic
`functions, the Second portion comprising at least one
`critical path for the circuit,
`whereby the clock enable Signal is generated more
`quickly than in another circuit entirely implemented
`using programmable logic gates.
`8. The method of claim 7, wherein the at least one critical
`path comprises no more than two levels of logic.
`9. The method of claim 7, wherein:
`the clock enable circuit is driven by two external signals
`Irdy and Troy, and
`the at least one critical path lies between the two external
`Signals and the clock enable signal.
`10. The method of claim 9, wherein the second portion of
`the circuit comprises:
`a first AND-gate driven by the external signal I,
`a Second AND-gate driven by the external Signal T,
`and
`an OR-gate driven by the first and second AND-gates and
`providing the clock enable Signal.
`11. The method of claim 7, further comprising providing
`a programmable delay element as part of the Second portion
`of the circuit.
`12. The clock enable circuit of claim 11, wherein the
`programmable delay element is mask programmable.
`13. A programmable logic device (PLD), comprising:
`a programmable logic array; and
`a ring of input/output blockS placed around the array of
`programmable logic blocks, the ring of input/output
`blocks comprising:
`a first plurality of output registers located along a first
`edge of the array,
`a Second plurality of output registers located along a
`Second edge of the array, the Second edge being
`adjacent to the first edge;
`a third plurality of output registers located along a third
`edge of the array, the third edge being adjacent to the
`first edge and opposite to the Second edge;
`a first clock enable circuit generating a first clock
`enable signal, the first clock enable circuit compris
`ing non-programmable logic gates not usable for
`other logic functions, the logic gates comprising at
`least one critical path for the clock enable circuit, the
`logic gates being located near the center of the first
`edge;
`means for Supplying the first clock enable signal to the
`first plurality of output registers,
`programmable means for Supplying the first clock
`enable signal to the Second plurality of output reg
`isters, and
`
`8
`
`

`

`1O
`
`9
`programmable means for Supplying the first clock
`enable signal to the third plurality of output registers.
`14. The PLD of claim 13, further comprising additional
`clock enable logic implemented within the programmable
`logic array.
`15. The PLD of claim 13, wherein the programmable
`means for Supplying the first clock enable Signal to the
`Second plurality of output registers and the programmable
`means for Supplying the first clock enable signal to the third
`plurality of output registers comprise programmable inter
`connection points (PIPs).
`16. The PLD of claim 13, wherein the logic gates com
`prise a critical path for the first clock enable circuit.
`17. The PLD of claim 13, wherein the logic gates com
`prise no more than two levels of logic.
`15
`18. The PLD of claim 13, wherein:
`the logic gates are driven by two external Signals I
`Troy, and
`two critical paths for the first clock enable circuit lie
`between the two external Signals and the first clock
`enable signal.
`19. The PLD of claim 18, wherein the logic gates com
`prise:
`a first AND-gate driven by the ext

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket