Pulse generation

Abstract: A pulse generator for use in generating pulses at different locations within a circuit has a first circuit 501 for a time dependent operation after receipt of a first input pulse and a second circuit 502 for carrying out a time dependent operation after receipt of a second input pulse after the first input pulse. A third circuit 503 is responsive to each of the first and second circuits 501,502 reaching respective predetermined conditions so that an output pulse is produced by the third circuit 503 at a time dependent on the average durations of operation of the first and second circuits 501 and 502.

Description: The present invention relates to pulse generators. Modern circuit techniques frequently require the provision of clock pulses at a number of different locations within a circuit. Where a circuit is relatively large there may occur substantial propagation delays between the different locations with the effect that a rising edge of a clock pulse of concern may arrive at one location at a significantly different time to the arrival of the edge at another location. This phenomenon is known as "clock skew". A number of measures are commonly used in the art to reduce clock skew. For example, where the circuit has the form of a system of circuit boards the transmission line delay between and within the boards is minimised. Where the circuit is an integrated circuit, for example in VLSI circuits, engineers minimise the inherent delay of the RC interconnect line. In either situation it is desirable to route clock signals along tree-like interconnect structures having substantially the same pathlength of interconnect between the clock source and every point at which the clock is required. Finally it is desirable to locate the clock source as close as possible to the physical centre of the design so that the clock routing is as short as possible. Each of these measures introduces additional design constraints into a circuit and these constraints may not be compatible with other requirements for the circuit. For example using the tree like interconnect structure is often difficult to implement and may occupy excessive area. Using low delay interconnect on integrated circuits usually means provision of wider tracks which occupy excessive area and, furthermore, which increase the power required to drive such tracks. Locating the clock source at the physical centre of a design may unduly constrain the designer; moreover in the case of integrated circuits the added complexity engendered by a physically central clock source may be highly undesirable. JP-A-05012223, upon which the preamble portion of claim 1 is based, discloses a pulse generator which receives forward and reflected pulses on a transmission line and provides an output signal at a time determined by evaluating the time spacing between first and second pulses. US-A-4173962 discloses a pulse generating circuit having a capacitor charged by a first current source in response to one pulse and discharged by a current source initiated by a second later current source. The present invention provides embodiments which may be used in reducing clock skew without imposing the above-mentioned constraints. According to a first aspect of the present invention there is provided a pulse generator having first and second inputs for receiving time-spaced first and second pulses, said second pulse occurring later than said first pulse; first circuitry operable by the first pulse; second circuitry operable by the second pulse; and third circuitry response to respective durations of operation of the first and second circuitry to produce an output pulse at a time dependent on the average durations of operation of the first and second circuitry, characterised in that; the first circuitry comprises a first delay line, having a first input at one end thereof whereby in response to application of said first pulse at said first input, the first pulse propagates along the first delay line; said second circuitry comprises a second delay line having a second input at one end thereof whereby application of said second pulse to said second input causes said second pulse to propagate along said second delay line; each delay line having a plurality of taps between the respective input and a respective end thereof; and said third circuitry comprises logic gates each having a first input connected to a respective tap of the first delay line and a second input connected to a corresponding tap of the second delay line and an output for producing said output pulse. According to a second aspect of the present invention there is provided apparatus for generating output pulses at a plurality of points along a delay-inducing path, said apparatus having circuitry defining said path, said circuitry having an input for receiving a pulse whereby said pulse may be propagated from said input in a first direction along said path to an extremity thereof, and then propagated in a second direction along said path, said second direction being opposite to said first direction; and plural pulse generators, each in accordance with the first aspect of the present invention, a respective pulse generator being located at each point and connected at said point to said circuitry, each pulse generator having a first input for receiving a said pulse on said circuitry while said path propagates in said first direction, a second input for receiving said pulse on said circuitry while said pulse propagates in said second direction and an output for providing an output pulse at a desired time. Some embodiments of the invention will now be described by way of example and with reference to the accompanying drawings in which:- Figure 1 shows a partial circuit diagram of a clock pulse distribution arrangement of the prior art. Figure 2 shows voltage waveforms occurring at various locations on Figure 1. Figure 3 shows a block diagram of an apparatus generating output pulses for use with the invention. Figure 4 shows the waveforms at one location on Figure 3. Figure 5 shows a pulse generator that is not within the scope of the present invention. Figure 6 shows waveforms occurring on the circuit of Figure 5. Figure 7 shows the voltage waveforms of pulse generators of Figure 5 at the different stations used in Figure 3. Figure 8 shows a modification of the apparatus of Figure 3. Figure 9 shows an embodiment of a pulse generator in accordance with the invention. Figure 10 is a time diagram showing the operation of pulse generators of Figure 9 used in the apparatus of Figure 8. Figure 11 is a modification of the Figure 3 arrangement for an integrated circuit, using buffered lines, and Figure 12 is a further modification of the Figure 3 arrangement. In the Figures like reference numerals will be used for like parts. Referring to Figure 1, an integrated circuit 1 has a path 2 for distribution therealong of clock pulses from an input buffer 3 to various stations A, B, C. The input buffer 3 is supplied from a clock source 4 external to the circuit board 1. The buffer 3 is used to meet any required impedance constraints. At each of the stations A, B, C a clock pulse is input from path 2 and due to different pathlengths between the respective stations and the input buffer the clock pulses arriving at stations A, B, C are time-displaced. This effect is illustrated in Figure 2, where the rising edge of the clock pulse at the buffer occurs at t O , that at station A occurs at t 1 , that at station B at t 2 and the pulse at station C, at time t 3 . The waveforms , A, B and C represent the voltage waveforms at the buffer 3 and stations A, B and C respectively. Referring to Figure 3, an integrated circuit 31 for use with the invention has a clock pulse path 32 fed from an input buffer 3. The path 32 has a first forward portion 33 along which pulses from buffer 3 propagate in a first forward direction and a second reverse portion 34, along which pulses propagate in a second direction, the second direction being opposite to the first direction. As seen in Figure 3 the reverse path portion 34 is an extension of the forward path portion 33, the two meeting at a path extremity point 35. Although the reverse path portion 34 is shown as parallel to the forward path portion 33, this is for the purposes of illustration only and any convenient arrangement may be chosen. However, the most convenient form of the invention requires that the pathlength between any two stations along the forward path portion is the same as the pathlength along the reverse path portion between those two stations. It is also envisaged that path portions 33 and 34 could be provided by a single transmission line, pulses being input at one end of the line and being reflected back from the other end of the line. The integrated circuit 31 of Figure 3 has three stations P, Q, R at which clock pulses are required. For this purpose each station P, Q, R has a respective pulse generator 36, 37, 38. Each of the pulse generators has a first input connected to the forward path portion 33 and a second input connected to the reverse path portion 34. For ease of reference the forward pulse received by pulse generator 36 is referenced as  FP and the reverse pulse at pulse generator 36 is referenced as  RP . Assuming that the line is symmetrical i.e. the pathlength between any two points is the same for the forward and reverse paths, as described above, - the mid-point between the forward pulse and the reverse pulse at any pulse generator corresponds to the instant at which the pulse travelling along the path 32 reaches the path extremity point 35. Thus if each pulse generator 36-38 responds to the detection of the respective forward pulse for that pulse generator, to the respective reverse pulse for that pulse generator and produces a respective output pulse  at the same period after the mid-point between the two pulses, the output pulses will occur globally at the same instant for each pulse generator. Where the path is not symmetrical - i.e. the pathlength between two points differs between the forward and the reverse direction, it will not be the mid-point between the forward and reverse pulses which determines the instant of arrival of the forward pulse at the path extremity, but some other second point between the two pulses. In this event the pulse generators 36-38 produce their output pulses at a desired time corresponding to a predetermined duration after this second point to produce simultaneous clock pulses. Referring now to Figure 4, the pulse relationship will now be explained. The input pulse train  FP to pulse generator 36 has a first rising edge at a time point t 1 and the reverse pulse  RP has a first rising edge occurring at a time point t 2 . In the preferred arrangment, with symmetrical forward and reverse paths, the output pulse 0 is generated to have a rising edge occurring at a time t 3 which occurs a predetermined time c after the mid-point t 4 between times t 1 and t 2 . Normally it is desired to generate clock pulses at the same instant throughout the circuit, in which case for the symmetrical path situation, the time c is the same for all pulse generators 36-38. However if for some reason it were desired to produce pulses at a predetermined separation or skew relative to one another, the time period c could be arranged to differ from pulse generator to pulse generator as desired. A pulse generator 36-38 that is not within the scope of the present invention can be described with reference to Figures 5 and 6. Referring first to Figure 5 the pulse generator for use in Figure 3 consists of two similar circuits 501, 502. One circuit 501 reacts to the rising edge of applied clock pulses, and in response thereto sets an R-S flip flop 503, and circuit 502 responses to the falling edge of applied clock pulses and resets the flip flop 503. Each pulse generator has two inputs 39 and 40 connected respectively to the forward and return paths. Each input includes circuitry for generating true and complement values of the voltage values on the forward and return paths. Circuit 501 consists of a first AND gate 510, to whose inputs are applied a first input A, representing the complement of the forward clock pulse FP and a second input B representing the complement of the reverse clock pulse  RP . The output of gate 510 is coupled firstly to an inverter 511, whose output provides a first input to a second AND gate 512, and secondly to control a switch 513. Switch 513 is connected between a supply voltage VS and a circuit node 514 for connecting or disconnecting the circuit node to the supply voltage. The circuit node 514 constitutes the inverting input of a comparator 515 and also forms the junction of one pole of a capacitor 516 and one pole of two parallel constant current sources 517, 518. Constant current sources 517 and 518 are connected via respective controllable switches 519 and 520 to a reference node 521, to which is also connected the second pole of the capacitor 516. Thus when switch 519 is conductive the first current source 517 is connected parallel to capacitor 516 and when switch 520 is made conductive current source 518 is connected parallel with capacitor 516. The switch 519 is controlled by a signal B', which corresponds to the true reverse clock pulse, whereas switch 520 is controlled by a signal A' which corresponds to the true value of the forward clock pulse  FP . A reference voltage V ref is applied to the non-inverting input of comparator 515. Referring now to Figure 6, the operation of the circuit shown in Figure 5 will now be explained. At the time T O both of the input pulses A and B are at logical 1. Accordingly the output of AND gate 510 is also at logical 1, thus rendering switch 513 conductive and connecting node 514 to the supply voltage VS. At the same time, the complement of A is at logical O, as is the complement of B, and thus both switches 519 and 520 are non-conductive. Hence capacitor 516 becomes charged to the supply voltage VS and the output of comparator 515 is low. Thus, at the input to gate 512 there is applied logical O from comparator 515 and logical O from inverter 511. The output of AND gate 512 is consequentially at logical O. At time T 1 input A falls to logical O, and hence A' changes state to logical 1. The output of AND gate 510 goes low, causing switch 513 to become non-conductive, and switch 520 becomes conductive, thus applying current source 518 to discharge capacitor 516. The input to comparator 515 at node 514 remains above the level V ref , and the output of the comparator 515 remains low. Inverter 511 now has a logical O at its input, and as a result produces logical 1 at its output. AND gate 512 has one input at logical 1 and one input at logical O so continuing to produce a logical O output. At time instant T 2 input B changes state to logical O and input B' to logical 1. As a result AND gate 510 continues to have a logical O output, causing switch 513 to remain non-conductive and inverter 511 to continue to have a logical 1 output. Switch 520 remains in the conductive state but switch 519 changes to the conductive state so that both current source 517 and current source 518 are now discharging capacitor 516. Initially node 514 remains above the potential V ref and hence comparator 515 retains its logical O output. However, at time T 3 the combined effect of the two current sources 517 and 518 has discharged the capacitor 516 until node 514 has the same potential as the non-inverting terminal of comparator 515, at which point the comparator output changes state to logical 1. Consequently the two inputs to AND gate 512 are now at logical 1, which causes the output to change state to logical 1, producing the rising edge of pulse t r . This pulse t r is applied to the set input of flip flop 503 to produce a positive going edge at the O output thereof. Some time later at time T 4 input signal A and its complement A' change state to logical 1 and logical O respectively. As a result switch 520 becomes non-conductive. At a yet later time, T 5 , the other input signal B, and its complement B' change state to logical 1 and logical O respectively, whereupon the AND gate 510 once again has two logical 1 inputs, which causes the output to change to logical 1, thus closing switch 513 to become conductive, and terminating output pulse t r due to the logical O from inverter 511 being applied to one input of AND gate 512. The capacitor 516 then starts to recharge towards the supply voltage VS and the cycle may start again. The second circuit 512 of the pulse generator is similarly constructed to the first circuit. It consists of a third AND gate 530 feeding inverter 531 whose output provides one input to a fourth AND gate 532. The output of third AND gate 530 is connected to a switch 533 which couples the supply voltage VS to a circuit node 534 which forms the inverting input of a comparator 535. A second capacitor 536 is coupled between node 534 and a reference potential 541. Parallel with the capacitor are two series circuits each comprising a current source 537, 538 with a serial switch 539,540. The second circuit 502 responds to the falling edge of the respective input pulses, and the input signals which are coupled to the respective points are the complements of those which are applied to the corresponding points in the first circuit 501. Thus the AND gate 530 receives input signals A' and B' and the switches 539 and 540 receive signals B and A respectively. The output of the second AND gate 532 is connected to the reset input of R-S flip flop 503. The operation of the second circuit 502 is generally the same as that of the operation of 501 already described. The operation of the clock distribution arrangement shown in Figure 3 will now be described with respect to Figure 7. For the sake of simplicity, it will be assumed that the path delay in both the forward and reverse directions between stations P, Q and R on path 32 are each equal to two units of time, that the path delay between the output of buffer 3 and the forward path terminal of station P is two units of time and that the delay between the forward and reverse path points of station R is one unit of time. Figure 7 illustrates the preferred arrangement for the circuit of Figure 6, where current sources 517, 518, 537 and 538 all produce identical currents, the values of capacitors 516 and 536 are substantially identical and the same reference voltage is applied to the non-inverting inputs of comparators 515 and 535. At time O, the "rising edge" capacitor 516 in each of the pulse generators is charged to the supply voltage VS. At this instant of time a clock pulse issues from the buffer 3. After two time units, the pulse arrives at station P and is applied to the "forward terminal" of that station, thus opening switch 513 in pulse generator 36 and connecting current source 518 to discharge capacitor 516 at a first rate i. After a further two units of time the clock pulse reaches the second station 37 at the corresponding forward terminal. The capacitor 516 in pulse generator 37 likewise begins to discharge at a current of i. Finally after a further two units of time the clock pulse reaches station 38 and the capacitor 516 of that station accordingly begins to discharge. However, after the clock pulse has traversed the end section of the path 32 it reaches the reverse terminal of pulse generator 38 one unit of time later, at which time the second current source 517 of that generator is made operative. At time point 7 the capacitor 516 of pulse generator 38 now begins to discharge at a rate of 2i. After a further delay of two time units the clock pulse reaches the reverse terminal of pulse generator 37 and the capacitor 516 of that pulse generator likewise begins to discharge at a rate 2i. Finally at two further time units later the reverse terminal of station 36 receives the clock pulse and the capacitor 516 of that generator also begins to discharge at a rate of 2i. It will be seen from Figure 7 that the voltages on each capacitor 516 follow the same characteristic from this point forward. Thus if the same reference voltage, for example V ref1 , is applied to- each comparator 515, the pulse generators 36, 37 and 38 will produce a rising edge at the same instant of time, this instant being determined by the level of reference voltage selected. Referring once again to Figure 7 it will be seen that the rising edge is produced at 12.5 units of time for a value of V ref1 and at 14 units of time for a value of V ref2 . Careful inspection of Figure 7 shows that the intersection of the final capacitor discharge characteristic and the line of the supply voltage is effectively the point at which the pulse passing along path 32 reaches the extremity 35. Furthermore the time of occurrence of the leading edge of the output pulse of each pulse generator for any given value of reference voltage V ref depends upon the instant at which the clock pulse was at the extremity 35. Clearly in selecting the value of reference voltage V ref , care must be taken to ensure that this voltage is below the lowest value of capacitor voltage which would be achieved for the longest possible discharge time, based upon a supply voltage of VS. In other words for the example shown, the value of V ref must be lower than the voltage at which the capacitor 516 of pulse generator 36 begins to decay at a rate of 2i. Referring now to Figure 8, there is now shown a second clock distribution arrangement. This arrangement is substantially similar to that shown in Figure 3 and likewise has a desired number of stations P, Q, R with however an additional station S located at the extremity 35 of the path 32. The pulse generator 81 for the station S only needs to have a single input. It can be arranged to produce an output clock pulse at a predetermined delay after receiving the pulse from path 32. This predetermined delay is selected to be the same as the interval C (see Figure 4) whereby pulses are produced by each pulse generator substantially simultaneously. An embodiment of a pulse generator in accordance with the present invention will now be described with reference to Figures 9 and 10. Referring to Figure 9, the pulse generator consists of a first tapped delay device 91 and a second similar tapped delay device 92. The two delay devices are arranged electrically side-by-side, but with inputs at opposite ends. A plurality of first two-input gates 93, equal in number to the number of taps of each delay device, are connected between the delay devices, so that the first such gate has one input connected to the first tap of the first delay device 91, and a second input connected to the last tap on delay device 94, and so on along both delay devices. As shown in Figure 9 the logic gates 93 are NOR gates. The outputs of each of the first logic gates 93 are connected to respective inputs of an OR gate 95, having inputs equal in number to the number of first logic gates. The output of the first OR gate 95 provides an output pulse P 95 . A plurality of second two-input logic gates 94 is connected in similar fashion to the plurality of first logic gates 93. Each of the logic gates 94 is an AND gate and in similar fashion to the NOR gates 93, each AND gate has inputs connected across the delay devices 91 and 92. A second OR gate 96 has a like plurality of inputs, each connected to the output of one of the AND gates 94. The OR gate 96 produces an output pulse P 96 . The input of the first delay device 91 is designated by reference sign F and the input to delay device 92 is designated by reference sign R. Referring now to Figures 8 and 10, the operation of the pulse generator shown in Figure 9 will now be further explained. Figure 10 shows the progress of the forward and reverse pulses along the respective delay lines at each of the stations P, Q & S of Figure 8, it being assumed for the sake of simplicity that each station is separated from the respective adjacent station(s) by the same path delay, shown in the Figure 10 as the horizontal width of a square. Thus for station P the forward pulse appears at a time T 0 on delay device 91, which then conveys the pulse at a constant rate along the delay device until time T 4 where the reverse pulse appears at the input of the second delay device 92 by virtue of the path delay of the clock pulse path. The reverse pulse moves at the same speed along the delay line 92 but in the opposite direction so that at time T 5 the two pulses are coincident. Referring now to Figure 9 once again as the rising edges of two pulses appear at corresponding taps of both delay lines, the AND gate 94 coupled across those taps senses the appearance of a logical 1 at both inputs and produces a logical 1 at its output. As the pulses continue to propagate the NOR gates 93 sense the falling transition at the tap of concern from logical 1 to logical O and in response thereto produce a logical 1 output. Thus the rising edge is sensed by first OR gate 96 in the form of a pulse at output P 96 , and the falling edge is sensed at second OR gate 95 producing a pulse at output P 95 . The rising edge output is used to set a flip flop, as described with respect to Figure 5, and the falling edge at output P 95 is used to reset the R-S flip flop. Returning again to Figure 10, inspection of the time diagram for station Q shows that the forward pulse appears at time T 1 and the reverse pulse at time T 3 . However, operation of the circuit ensures that coincidence occurs at T 5 as the same for station K. Finally it will be noted that the device of Figure 9 also operates even where the two inputs of forward and reverse pulses occur at the same instant T 2 , to produce a pulse at the time T 5 . Although this embodiment has been described for the case where the delay devices are similar, this is not essential to the invention. For example, the first delay device could have an untapped delay portion at the input end. The essential feature is that the forward and reverse pulses should appear at corresponding taps on the respective lines. Referring now to Figure 11, there will be described a modification of the arrangement described with respect to Figure 3 for use with lossy lines and especially for lines where RC delays tend to dominate. This is of special significance to integrated circuits, since in integrated circuits transmission line delays are usually relatively small. Consequentially, since RC delays are not linearly proportional to line length, it may be necessary to introduce buffers. The arrangement shown in Figure 11 has a transmission path 121 which has a forward path portion 122 and a reverse path portion 123. Stations D, E, F and G are arranged along the path 121 and each station has an associated pulse generator 124 for producing a clock pulse at a predetermined time in relation to the application of a forward and a reverse pulse at the station of concern. To provide a correction for losses along the path, a first buffer 125 is inserted into the forward path portion 122 at station D. Since the buffer will itself tend to introduce some delay into the system a similar buffer 125 is inserted into the reverse path portion 123 at station E. Again to cope with losses a buffer 126 is inserted into the forward path portion at station E, with a corresponding reverse path portion buffer 126 at station F. Finally, a forward path portion buffer 127 is inserted at station F with a reverse path portion twin at station G. Referring now to Figure 12, an integrated circuit 130 has a clock pulse transmission path 131 which includes a first forward path portion 132 and a first reverse path portion 133 and a second forward path portion 134 with a second reverse path portion 135. As will be seen from the drawing, the clock path runs substantially around the perimeter of the integrated circuit 130 which may for example be a large VLSI chip. Associated with the clock path 131 are pulse generators 136 which provide simultaneous clock pulses at their respective outputs. There are number of advantages to providing simultaneous clocks around the parameter or pad ring of a large VLSI chip, two of which are that the input/output pads can be clocked, which allows fast synchronous communication with other devices, and that the clock buffers which normally require substantial power connections, are located next to the pad ring of the chip, which is a location where good power connections already exist. Although the particular description relates to clock pulse generation and distribution, it will be appreciated that the invention is equally applicable to generation or distribution of other pulses.

Claims: A pulse generator having first and second inputs for receiving time-spaced first and second pulses, said second pulse occurring later than said first pulse; first circuitry operable by the first pulse; second circuitry operable by the second pulse; and third circuitry response to respective durations of operation of the first and second circuitry to produce an output pulse at a time dependent on the average durations of operation of the first and second circuitry, characterised in that; the first circuitry comprises a first delay line, having a first input at one end thereof whereby in response to application of said first pulse at said first input, the first pulse propagates along the first delay line; said second circuitry comprises a second delay line having a second input at one end thereof whereby application of said second pulse to said second input causes said second pulse to propagate along said second delay line; each delay line having a plurality of taps between the respective input and a respective end thereof; and said third circuitry comprises logic gates each having a first input connected to a respective tap of the first delay line and a second input connected to a corresponding tap of the second delay line and an output for producing said output pulse. A pulse generator as claimed in claim 1 wherein said logic gates comprise plural AND gates (94) for sensing the rising edges of said first and second pulses. A pulse generator as claimed in claim 1 or claim 2 wherein said logic gates comprise plural NOR gates (93) for sensing the falling edges of said first and second pulses. Apparatus for generating output pulses at a plurality of points along a delay-inducing path, said apparatus having circuitry defining said path, said circuitry having an input for receiving a pulse whereby said pulse may be propagated from said input in a first direction along said path to an extremity thereof, and then propagated in a second direction along said path, said second direction being opposite to said first direction; and plural pulse generators, each according to any of claims 1 to 3, a respective pulse generator being located at each point and connected at said point to said circuitry, each pulse generator having a first input for receiving a said pulse on said circuitry while said pulse propagates in said first direction, a second input for receiving said pulse on said circuitry while said pulse propagates in said second direction and an output for providing an output pulse at a desired time.

Inventors: FELIX STEPHEN, FRANCIS RUSSELL EDWIN, FELIX, STEPHEN, FRANCIS, RUSSELL EDWIN
Applicants: STMMICROELECTRONICS LTD, STMMICROELECTRONICS LTD.
Application year: 1995
Main classification: H03K19
IPC codes: G06F1