VLSI circuit with latches controlled by a neighbouring matched clock generator

Abstract: A VSLI circuit includes a plurality of state device circuits on a VLSI chip. Each of the state device circuits includes a latch and is clocked by a pulse generator circuit which produces narrow pulses that are coupled to the clock input of the latch. The narrow pulses have a pulse width substantially equivalent to the propagation delay through the latch of the state device circuits. By taking advantage of the high correlative percentages of devices on portions of the chip, master-slave flip flops can be implemented using only a single latch with a pulse generator.

Description: Field Of The Invention The invention relates to VLSI circuit design and, more particularly, to the use of simple flow through latches to serve as master-slave flip flops in a VLSI design. Most high speed computers make use of bi-stable elements or state devices, such as latches and edge-triggered flip flops. The type of state devices used in the computer, in conjunction with the synchronous clocking scheme employed for the state devices, determines the speed and efficiency of high speed computers. Background Of The Invention Most computer systems employ either synchronous or asynchronous clocks as their clock system. Synchronous clocking systems are set up such that data flows from one group of state devices to the next, synchronized with the clock. In computer systems, generally, the synchronous clocking is either single phase or multi-phase. The type of clock system chosen for a computer design is based upon the type of state device chosen in the design along with other timing constraints. The two most common types of state devices used in typical high speed computers include the so-called "D-latch" and the "D-flip flop" or "master-slave flip flop". Generally, master-slave flip flops contain two D-latches. The state devices can be described with respect to their various parameters which are defined below and used throughout the specification: "C" is the cycle time or period for the clock cycle. "T pd " is the propagation delay time through the latch or flip flop and is defined as the time interval between a change on the device's clock or data input until the corresponding change on the output. "T su " is the "data to clock set up" time for a state device and is defined as the minimum time interval during which the device data input must be held stable before the arrival of the latching edge of the clock pulse. "T hld " is the clock to "data hold time" for a state device and is defined as the minimum time interval during which the device data input must be held stable after the latching edge of the clock pulse has been removed. "S" is the clock skew defined as the undesired difference between arrival times of the clock signals at any pair of destinations, where the arrival times are expected to be substantially identical. "W" is the width of the clock pulse, corresponding to the time period in which a D-latch is held open. "MIN" or "MINPATH" is the minimum amount of delay necessary to insure a race-free transfer of data between two state devices. "MAX" or "MAXPATH" is the maximum amount of delay that is allowed between two state devices. Prior computers have extensively used master-slave flip flops in their VLSI designs. To operate properly on a VLSI chip, however, master-slave flip flops typically require twice as much power and twice as much area as a simple D-type latch. The use of only one simple D-type latch instead of a master-slave flip flop or state device in a VLSI design has been very difficult to implement due to the timing constraints imposed by the necessary clocking required. JP-A-59-104820 discloses a latch circuit called a level triggered type flipflop which may also serve as an edge-triggered flipflop. For the latter purpose it is clocked by a pulse generator which produces narrow pulses in response to an input clock by employing a delay circuit which comprises a chain of three inverters and an AND gate thereby enabling it to serve as an edge triggered flipflop. This circuit can be used as a standard cell in a large scale integrated circuit. The basics about configuration and operation of flipflops and latches (transparent D-Flipflops or D-Latches) is described in "U. Tietze, Ch.Schenk, Halbleiterschaltungstechnik", 1995, 7th edition, pages 215, 232, and 235 to 237. "Elektronik, 21.3.1986, pages 116 to 121" discloses ways of designing ASICs by employing macro libraries which again employ basic cells. The size of two cells may be used for a macro "D-Flipflop". EP-A-0,304,930 discloses an integrated circuit device which uses the same clock signal for a plurality of basic cells. Summary of the invention None of these prior art documents deals with the problem of designing a VLSI circuit in which the function of several master-slave flipflops is approximated in a space and power saving manner while operating properly in conjunction with a clock system. A VLSI circuit according to the present invention is defined in independent claim 1. The dependent claims define particular embodiments of the invention. The present invention in one embodiment makes use of D-type latches which serve as master-slave flip flops yet require approximately half of the area and half of the power of a master-slave flip flop for proper operation in a VLSI design. The latch system is synchronously clocked by a pulse generator which produces sliver or narrow pulses to reduce the minimum and maximum amount of delay necessary to approximate the operation of the master-slave flip flop. Further, the pulse generator makes use of the correlation among state devices formed on a VLSI chip to eliminate the problems of regulating the pulse width size. Sliver pulses from a single pulse generator are used to clock the state devices similarly located on the same chip. Overall, a single chip can have multiple sliver pulse generators. The present invention according to one embodiment comprises a first flow-through latch having an input, an output and a clock input; a second flow-through latch having an input, an output and a clock input coupled via a logic delay from the first latch output to the second latch input and further coupled from the second latch output to the first latch input. A pulse generator circuit in one embodiment of the invention produces narrow pulses coupled to the clock inputs of the first and second latches wherein the first latch, the second latch and the pulse generator are physically spaced in close proximity to each other in a VLSI chip to take advantage of the correlation factor among state devices on the same chip. It is therefore an advantage of an embodiment of the present invention to provide a correlated sliver latch which functions as a master-slave flip flop. The invention substantially reduces the power requirements for the master-slave flip flop as well as the area requirements needed on the VLSI chip. It is a further advantage to allow the clock scheme to be distributed at a 50% duty cycle. This is accomplished without any extreme concern with respect to the pulse width. Further, the correlated sliver latch according to an embodiment of the invention allows for the distribution of fewer clocks because a single latch behaves approximately as a master-slave flip flop, rather than the usual two latch flop flop. Also, the present invention in one embodiment allows the clock speed to be increased without any special concern. The faster chips will have narrower sliver clock widths. Brief Description Of The Drawings Figure 1 is a block diagram of a master-slave flip flop. Figure 1A is a timing chart for Figure 1. Figure 2 is a block diagram of a flow through latch used in the present invention. Figure 2A is a timing chart for Figure 2. Figure 3 is a logic diagram showing the clocking between master-slave flip flops. Figure 3A is a timing chart of the clock signal input to Figure 3. Figure 4 is a logic diagram showing the clocking between latches serving as master-slave flip flops according to an embodiment of the present invention. Figure 4A is a timing chart of the clock signal input to Figure 4. Figure 5 is an embodiment of a pulse generator used in the present invention. Figure 5A is a timing chart of the sliver pulses generated at the output of Figure 5. Figure 6 is a block diagram of an embodiment of the present invention showing multiple pulse generators on a VLSI chip. Detailed Description The operation of master-slave flip flops and latches will be described with reference to Figures 1, 1A, 2 and 2A. Master slave flip flop state devices will be referred to as flip flops, and simple flow through latch state devices will be described as latches. Flip flops generally contain two latches coupled together in a manner which allows a "race-free" operation between the latches. The output state of the flip flop changes on only one periodic clock edge. A race-free construction of a flip flop 5 is shown in Figure 1 and its operation is described by the timing charts of Figure 1A. The race-free operation means that the bi-stable element or state device output 6 may be used as the same state device's input 7. The output is a function of the previous state, and the output can therefore change at the arrival of a particular clock event 8, e.g., usually the rising edge of the clock signal. Note that the data changes only when the rising edge of the clock pulse occurs as seen in Fig. 1A. Referring to Figure 2, there is shown a simple latch 9 having the characteristic of allowing data 13 to flow through the latch 9 whenever the clock input 11 is in the "open" state. Generally, for a simple transparent latch 9, the latch 9 is held open when the clock signal 11 is high and the data 13 is latched when the clock signal 11 goes low. The operation of the typical flow through latch 9 is shown by the timing chart of Figure 2A. Note that a simple flow through latch 9 cannot be used to send data 13 back to itself (as in the flip flop example above), due to the data "racing" during the time period when the clock is held open. In this case, when the clock is open, the data circulates continuously independent of the clock signal. Referring to Figure 3, there is shown a logic circuit including two master-slave flip flops 10 and 12 coupled by a delay 14. The Q output of input flip flop 10 is coupled through the delay 14 to the D input of destination flip flop 12. The arrangement illustrates the clocking of data through two typical master-slave flip flops. The flip flops 10 and 12 further include a source clock input 16 and a destination clock input 18, respectively. The clock inputs 16, 18 are from a single clock source and therefore have an approximately equal timing as shown in the timing chart of Figure 3. It can be seen from Figures 3 and 3A that the following flip flop equations can be derived: MIN DLY ≥ S + T hld - T pd (min) MAX DLY ≤ CYCLE - S - T su - T pd (max) The required minimum delay MIN DLY necessary to insure a race-free transfer between the two flip flops 10, 12 is greater than or equal to the clock skew S between the source clock 16 and a destination clock 18 plus the "clock to data hold" time T hld for the destination flip flop 12 minus the minimum propagation delay T pd (min) through the flip flop 10 as shown by Eq. (1). The maximum delay MAX DLY allowed between the two flip flops is less than or equal to the CYCLE time minus the clock skew S minus the "data to clock set up" time T su for the destination flip flop 12 minus the maximum propagation delay T pd (max) through the flip flop 10 as shown by Eq. (2). Referring to Figure 4, there is shown latches 30 and 32 coupled together via a delay DLY 34. The Q output of input latch 30 is coupled via the delay 34 to the D input of destination latch 32. Further, the Q output of latch 32 is fed back through delay 40 into the D input of latch 30. Also, a source clock signal 36 and a destination clock signal 38 are fed to the clock inputs of latches 30 and 32, respectively. The timing of the source clock signal 36 and the destination clock signal 38 is shown in Figure 4A. It is noted that for the flow through latches 30 and 32, the data is latched on the falling edge of the clock signal and the latch is opened on the rising edge of the clock signal. Each of the latches 30, 32 can be made to operate approximately as a flip flop as will be shown below. The minimum delay MIN DLY and maximum delay MAX DLY for the latch circuit operation is illustrated in Figure 4A and described in equations (3) and (4). MIN DLY ≥ W + S + T hld - T pd (min) MAX DLY ≤ CYCLE - S - T su - T pd (max) + W The MIN DLY is greater than or equal to the width W of the clock pulse corresponding to the time the latch is open, plus the clock skew S plus the "clock to data hold" time T hld for the destination latch 32 minus the minimum propagation delay T pd (min) through the latch 30 as shown by Eq. (3). The MAX DLY is less than or equal to the CYCLE time minus the clock skew S minus the "clock to data set up" time T su for the destination latch 32 minus the maximum propagation delay T pd (max) through the latch 30 plus the width W of the clock pulse as shown by Eq. (4). It is seen that as the width W approaches zero, the latch equations(3)and(4)become closer to the master-slave flip flop equations (1) and (2). For W = 0, equations 3 and 4 reduce to equations (5) and (6) which are identical to equations (1) and (2). MIN DLY ≥ S + T hld - T pd (min) MAX DLY ≤ CYCLE - S - T su - T pd (max) Because of this operation, a simple latch may serve as a master-slave flip flop. In a practical sense, latches typically use only half the power of a master-slave flip flop and consume only half of the area on a VLSI design. An optimum VLSI design would therefore encompass the use of latches having a clocking pulse approaching zero. A practical implementation would expect the sliver width to be at least one order of magnitude less than the cycle time. However, because the pulse width W cannot equal zero, the use of a narrow "sliver" clocking pulse can be generated. Figure 5 shows a simple embodiment of a logic circuit for generating sliver pulses. A clock source 50 is coupled to the inputs of AND gate 54. A delay 52 is introduced between the clock source 50 and one input of the AND gate 54. This delay 52 can be a latch 52 having its clock input held open. The example of Figure 5 uses a 50% duty cycle from clock source 50 to the inputs of AND gate 54. Due to the delay, T pd (latch), introduced by the latch 52, a narrow sliver pulse having a width equalling T pd (latch) plus T pd (gate) is generated as shown in Figure 5A. The width of this sliver pulse can be made as narrow as physically possible. However, it is physically difficult to propagate such a narrow pulse in a VLSI design. The actual implementation should attempt to match the sliver width to the latch propagation delay T pd . The present invention utilizes the correlation factor with respect to circuit parameters on VLSI chips. Correlation is defined as how well two circuit parameters track each other. For example, if the two delays of two different state devices correlate 100%, then their respective delays would be identical. If the delays have 0% correlation, then there is no relationship whatsoever between them. The correlation factor takes into account the fact that the properties, e.g., T pd (min and max), power consumption, etc. of state devices similarly situated on a VLSI chip correspond closely with other state devices spaced nearby. This correlation is due to several factors, e.g., similar processing of the chip and the similar nature of the material, i.e., the silicon parameters of areas on the chip do not vary much with those areas in close spatial proximity. The correlative properties are taken advantage of by creating pulse generators on the VLSI design using state devices which are nearby the state devices to be clocked. Because of this, sliver pulses can be generated which have a width substantially identical to the propagation delay T pd of closely spaced state devices. The pulse generator shown in Figure 5 creates sliver widths W substantially equivalent to the propagation delay through the latch 52. Therefore, as a worst case example, substituting W=T pd into equation(3)and setting W equal to zero in equation (4) results in the following equations (7) and (8): MIN DLY ≥ T hld + S MAX DLY ≤ CYCLE - S - T su - T pd (max) These equations assume that the sliver width W correlates to the propagation delay of the state device thus guaranteeing that the sliver pulse cannot be too narrow to propagate through the clocked state devices. The sliver width is therefore always wide enough to guarantee a predictable MIN PATH. Figure 6 shows an example of how the correlated sliver latches can be implemented on a VLSI design chip 58. The chip 58 includes blocks 60, 62 and 64 of physically similar latches L on the chip 58. Further, each block 60, 62, and 64 includes a pulse or sliver generator G formed by using one of the latches L. A clock signal CLK is input to the chip 58 at pin 56 and propagates to a distribution stage 59. The distribution stage 59 splits the clock signal into several signals and propagates each clock signal to one of the blocks 60, 62, and 64. At each block, the sliver generator G generates the narrow sliver pulses to operate the latches L in each of the blocks. A comparison of the savings obtained using sliver latches in lieu of flip flops is given below with respect to the examples assuming a flip flop consumes two units of power and occupies two units of area; and a latch consumes one unit of power and occupies one unit of area; a sliver generator consumes one unit of power and occupies one unit of area. It is possible that sliver latches be grouped in clusters of four, six or eight, with each cluster containing a single pulse generator. It is noted, however, that the actual group size is an arbitrary figure. It is therefore seen that a cluster of four latches and one sliver generator may serve as four master-slave flip flops while consuming only five units of area, i.e., five "cells". On the other hand, because each flip flop requires two latches thus consuming two units of area, a pure flip flop design requires eight units of area to produce four master-slave flip flops. Therefore, there is a fractional reduction of "3/8ths" in the number of cells saved using a sliver latch design. Example 1 If the total number of flip flop cells are known in a design (the total number of flip flop cells equals the total number of flip flops times two), then the total reduction in flip flop cells gained through the use of sliver latches can be determined. Assuming sliver latches are in clusters of four, the savings in area over a pure flip flop design is equal to: Savings in cells = .375 (# of flip flop cells) If there are 1,000 flip flops in a design, then there are a total of 2,000 flip flop cells. Inserting the numbers into Eq. (9) shows a saving of 750 cells. Example 2 Assuming all sliver latches are now grouped in clusters of eight, the fractional savings over a pure flip flop design is equivalent to "7/16ths". If there are 1,000 flip flops in design, then there are 2,000 flip flop cells. Inserting the number into Eq. (10) below results in a savings of 876 cells. Savings in cells = .4375 (# of flip flop cells) Example 3 Assuming a particular VLSI design having a total usable area of 3,000 cells, but with only 700 flip flops, then the power and cell savings achieved by using sliver latches can be determined. The sliver latches are assumed to be available in clusters of four only. Because there are 700 flip flops, then there are 1,400 cells allocated to the state devices. The number of cells used by the sliver latches is computed as follows: (1,400 cells) x (1 - .375) = 875 cells. The cell savings can then be computed as follows: The power saved can then be computed by determining the "cells saved ratio", since both the cell area and power proportions are the same. The total power savings is thus given by the equation: 1 - 3000 - 525 3000 x 100 = 17.5% Power Savings

Claims: A VLSI circuit comprising: a) a plurality of physically similar flow-through latches (L) on a VLSI chip, each of said flow-through latches (L) having an input, an output, and a clock input; and b) at least one pulse generator circuit (G) for generating narrowed pulses coupled to the clock inputs of said flow-through latches (L), wherein said pulse generator circuit (G) comprises : i) a delay element (52) consisting of a flow-through latch which is physically similar to the latches (L) to be clocked, with its clock input being held open, ii) a gate (54) connected to the output of the delay element (52), and iii) a clock source (50) coupled to said delay element (52) and to said gate (54) for producing said narrowed pulses which are coupled to the plurality of said flow-through latches (L), iv) wherein said pulse generator (G) including said delay element (52) is placed in close proximity to said flow-through latches (L) on said VLSI circuit. A VLSI circuit according to claim 1 wherein there is one pulse generator circuit (G) for four of said plurality of flow-through latches (L) to be clocked. A VLSI circuit according to claim 1 wherein there is one pulse generator circuit (G) for six of said plurality of flow-through latches (L) to be clocked. A VLSI circuit according to claim 1 wherein there is one pulse generator circuit (G) for eight of said plurality of flow-through latches (L) to be clocked.

Inventors: SAMARAS WILLIAM A, VAUGHAN DAVID T, SAMARAS, WILLIAM A., VAUGHAN, DAVID T.
Applicants: DIGITAL EQUIPMENT CORP, DIGITAL EQUIPMENT CORPORATION
Application year: 1990
Main classification: H03K3
IPC codes: H03K3, H03K19