Abstract:
A clock circuit is used in a semiconductor device having a control block and a macroblock in order to provide synchronous clocks. The clock circuit contains a clock source for generating the clocks; a clock tree, coupled between the clock source and the control block and the macroblock, for relaying the clocks to the control block and the macrobock; and programmable delays coupled between the clock source and the clock tree and between the clock tree and the control block and the macroblock in order to reduce overall clock skew.

Description:
FIELD OF THE INVENTION 
     The present invention relates to a clock circuit for used in a semiconductor chip; and, more particularly, to a clock circuit which is capable of effectively providing clock signals to elements contained in a semiconductor device with a minimized clock skew. 
     DESCRIPTION OF THE PRIOR ART 
     A semiconductor device is generally provided with synchronized circuit elements, e.g., latches, to a clock signal and, in order to implement various functions therein, is designed by employing previously optimized various macroblocks. In this case, when a conventional clock circuit is employed in the semiconductor device, desired functions may not preferably be implemented due to a clock skew. Especially, when previously constructed blocks such as the macroblocks is designed to be contained in the semiconductor device, it is difficult to deal with a problem of overall clock skew since each of the macroblocks inherently has a predetermined clock tree and various internal clock delay elements. 
     Referring to FIG. 1, there is shown a conventional clock circuit of the semiconductor device. As shown, the clock circuit includes single clock source 1, m number of control block latches (as generally designated as 2), n number of macroblocks (as generally designated as 3) and a clock tree, wherein m and n are positive integers. The clock tree is coupled between the single clock source and, the control block latches and the macroblocks. When the internal clock delay of each of the macroblocks is reflected in the design of the clock tree, some of the macroblocks can be connected with an intermediate stage of the clock tree. In this case, the overall clock skew thereof is determined as a followed relationship. First, a greatest delay for the control block latches is represented by CT max  =MAX(CT1, CT2, . . . , CTm) and a shortest delay therefor is designated by CT min  =MIN (CT1, CT2, . . . , CTm), wherein CTi is a clock tree delay for an ith latch. A greatest delay for the macroblocks is denoted by M max  =MAX(M1, M2, . . . , Mn) and a smallest delay therefor is expressed by M min  =MIN(M1, M2, . . . , Mn). A clock delay for an ith macro Mi is a sum of a clock tree delay Ti and an internal delay MIi which is represented by Mi=Ti+MIi. Therefore, the overall clock skew can be denoted by MAX(CT max , M max )-MIN (CT min , M min ). If the overall clock skew falls in a skew tolerance predetermined in a design specification, there is no clock skew problem in the semiconductor device. If not, it should be needed to adjust the overall clock skew in order to meet the predetermined tolerance. However, since, in order to correct the overall clock skew, a portion of the clock tree is modified so that the remaining portions thereof are also varied according thereto, it is actually difficult to partially correct the clock tree contained in the clock circuit. 
     Furthermore, in order to design the desired clock tree, an exact overall clock skew should be estimated. However, since the delay may be affected by capacitances and resistances determined the geometrical structure or relationship between cells or metal wires contained in the semiconductor device. It is difficult to exactly estimate or extract those parameters in order to implement the desired clock tree contained in the clock circuit. 
     SUMMARY OF THE INVENTION 
     It is, therefore, an object of the invention to provide a clock circuit which is capable of effectively providing clock signals to elements contained in a semiconductor device with a minimized clock skew a more increased cell density. 
     In accordance with the present invention, there is provided a clock circuit, for use in a semiconductor device having a control block and a macroblock, for providing synchronous clocks the control block and the macroblock, wherein the control block has a number of latches and the macroblock has a plurality of macros, comprising: a clock source for generating the clocks; a clock tree, coupled between the clock source and the control block and the macroblock, for relaying the clocks to the control block and the macrobock; and programmable delays coupled between the clock source and the clock tree and between the clock tree and the control block and the macroblock in order to reduce overall clock skew. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects and features of the present invention will become apparent from the following description of preferred embodiments given in conjunction with the accompanying drawings, in which: 
     FIG. 1 shows a schematic diagram of a conventional clock circuit contained in a semiconductor device; 
     FIG. 2 discloses a diagram of a clock circuit in accordance with the present invention; 
     FIG. 3 describes a diagram of a delay block contained in the clock circuit shown in FIG. 1; and 
     FIG. 4 illustrates a timing diagram representing a unit delay extracted from a relationship between the delay of the control block and the delay of the macroblocks. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In accordance with the present invention, a clock circuit is first designed by using a conventionally determined clock tree and the overall clock skew is then estimated. Thereafter, based on the estimated result, the overall clock can be easily modified by using newly added delay blocks. That is, in order to effectively correct the overall clock skew, the clock circuit includes a clock tree for the control block and a clock tree for the macroblock which are independently designed and contains a plurality of programmable delay blocks, each having a number of unit delay elements. Especially, the programmable delay block can be coupled between a clock source and each of the clock tree and between each of the clock tree and the control block latches or the macroblocks in order to effectively correct the overall clock skew. 
     Referring to FIG. 2, there is shown a clock circuit in accordance with the present invention. As shown, the clock circuit includes a clock source 1, two clock trees CT and MT and a plurality of delay blocks. The clock trees are designed to be coupled to a group of the control block latches and another group of the macros, respectively. That is, the control block latches are connected to the last stage of the clock tree and a different clock tree is employed to the macroblock since there are different delay elements, e.g., MIi, in the macros. Therefore, the better result can be obtained and a delay correction can be easily obtained thereby. 
     Referring to FIG. 3, there is depicted a detailed diagram of the delay block. The delay block includes N number of buffers each of which has a unit delay UD, N being 0 or a positive integer. The buffers are connected each other in a series fashion and the number of the buffers can be programmably determined according to the desired unit delays. The number of the desired unit delays is N, wherein N is 0 or a positive integer. In accordance with the present invention, when the correction to the overall clock skew is accomplished, any redundant unit delays can be removed from the delay block and the number of the unit delays can be permanently fixed. 
     The delay blocks Dc and Dm, which are connected to the inputs of the clock trees CT and MT, respectively, serve to correct the clock skew between the clock trees CT and MT. That is, the delay block having some delay elements is connected to the input of the clock tree CT or MT having a smaller delay than that of the other. The delay block having no delay, e.g., &#34;0&#34; is connected to the clock tree CT or MT having a larger delay than that of the other. On the other hand, each of the delay blocks connected to a corresponding macro serves to correct or complement a clock skew due to the internal delay elements of each of the macros. 
     Referring to FIG. 2 and 3, detailedly described hereinafter is the method, in accordance with the present invention, for analyzing or estimating the overall clock skew and for complementing or correcting the clock skew by using the delay blocks Dc, Dm and Dmi. In this case, the clock skew occurring in the clock circuit having only two clock trees is first analyzed or estimated. 
     In an estimation from a first clock path, i.e., the control clock tree CT, the greatest delay CT max  thereof is represented by CT max  =MAX(CT1, CT2, . . . , CTm), wherein m denotes the number of the latches or flip-flops contained in the control block 2 and CTi is a delay from the control clock tree CT to ith latch. On the other hand, the smaller delay CT min  hereof is expressed by CT min  =MIN(CT1, CT2, . . . , CTm). Therefore, the clock skew thereof can be represented by C skew  =CT max  -CT min . 
     Next, in an estimation from a second clock path, i.e., the macro clock tree MT, the clock delay thereof includes a delay of the macro clock tree MT and an internal delay of the macro so that the delay Mi of ith macroblocks can be represented by Mi=MTi+MIi, wherein MTi is a delay from the macro clock tree MT to the ith macroblocks and MIi is an internal delay of the ith macro. The greatest delay M max  thereof is represented by M max  =MAX(M1, M2, . . . , Mm). On the other hand, the smaller delay M min  hereof is expressed by M min  =MIN (M, M2, . . . , Mm). Therefore, the clock skew thereof can be represented by M skew  =M max  -M min . 
     Assuming that there is no delay block, the overall clock skew T skew  can be represented by T skew  =MAX(CT max , M max )-MAX(CT mix , M min ). In this case, since it is difficult to reflect the delay of the macroblock in the circuit design, the overall clock skew is increased by M max  or M min . 
     In accordance with the present invention, the overall clock skew can be minimized and the effect of the clock skew of the macro skew can be also minimized by using the delay blocks Dc, Dm and Dmi. In this case, the relationship between the clock skew C skew  of the control block 2 and the unit delay UD of the delay block should be considered in the design scheme. That is, if the clock skew C skew  is smaller than the unit delay UD, the overall skew is determined by the unit delay. While, if the unit delay is smaller than the clock skew C skew , the overall clock skew is determined by the clock skew C skew  and a clock skew of the delay block does not affect to the overall clock skew. Although the overall skew is determined by the unit delay, the unit delay is selected in the range of the tolerance of the overall clock skew so that the clock skew of the macroblocks does not exceed the tolerance of the overall clock skew. 
     In this case, the sake of the convenience, it is assumed that the clock skew of the control block C skew  is in the tolerance of the overall clock skew. The delay is determined when CT max  ≧M max , as follows: 
     
         C.sub.max =CT.sub.max 
    
     
         Dc=0 and Dm=UD*N, 
    
     wherein N is an integer and is satisfied by the condition that 
     
         UD*N+M.sub.max ≦C.sub.max &lt;UD*(N+1)+M.sub.max. 
    
     
         Dmi=UD*Ni, 
    
     wherein I=0, . . . , n;n is the number of the macroblocks; and Ni is an integer and is satisfied by the condition that Dm+Mi+UD*Ni≦C max  &lt;Dm+Mi+UD*(Ni+1). 
     First, when the greatest clock delay CT max  of the control block is greater than that M max  of the macroblock, as can be seen from the above Eq., a maximum delay C max  becomes identical to the greatest clock delay CT max  and the delay block Dc becomes &#34;0&#34;. The delay block Dm becomes N times of the unit delay UD, wherein N is an integer and is determined by satisfying the condition that the maximum delay C max  is greater than or identical to the delay obtained by adding N times of the unit delay UD to the greatest delay of the macroblock M max  and is smaller than the delay obtained by adding (N+1) times of the unit delay UD to the greatest delay of the macroblock M max . The delay block Dmi connected to the input of corresponding macro, becomes Ni times of the unit delay UD, wherein Ni is an integer and is determined by satisfying the condition that the maximum delay C max  is greater than or identical to the delay obtained by adding Ni times of the unit delay UD and the delay of the delay block Dm to the internal delay of the macro Mi and is smaller than the delay obtained by adding (Ni+1) times of the unit delay UD and the delay of the delay block Dm to the internal delay of the macro Mi. 
     The delay is determined when CT max  &lt;M max , as follows: 
     
         Dc=UD*N 
    
     wherein N is an integer and is satisfied by the condition that UD*(N-1)+CT max  &lt;M max  ≦UD*N+CT max . 
     C max  =UD*N+CT max   
     Dm=0 
     Dmi=UD*Ni, 
     wherein I=0, . . . , n;n is the number of the macros; and Ni is an integer and is satisfied by the condition that Mi+UD* Ni≦C max  &lt;Mi+UD*(Ni+1). 
     When the greatest clock delay CT max  of the control block is smaller than that M max  of the macroblock, as can be seen from the above Eq., the delay of the delay block Dc becomes identical to N times of the unit delay UD, wherein N is an integer and is determined by satisfying the condition that the greatest clock delay M max  is greater than the delay obtained by adding (N-1) times of the unit delay UD to the greatest delay of the control block CT max  and is smaller than or identical to the delay obtained by adding N times of the unit delay UD to the greatest delay of the control block M max . The maximum delay C max  becomes identical to the delay obtained by adding N times of the unit delay UD to the greatest delay of the control block CT max  and the delay of the delay block Dmi becomes &#34;0&#34;. The delay block Dmi connected to the input of corresponding macroblocks, becomes Ni times of the unit delay UD, wherein Ni is an integer and is determined by satisfying the condition that the maximum delay C max  is greater than or identical to the delay obtained by adding Ni times of the unit delay UD to the internal delay of the macro block Mi and is smaller than the delay obtained by adding (Ni+1) times of the unit delay UD to the internal delay of the macros Mi. 
     When the number of the unit delays obtained from the above Equations is implemented in the delay blocks, the clock delay corresponding to each of the macros is smaller than or identical to the maximum delay C max . In this case, the difference between the clock delay and the maximum delay C max  is in range from 0 to the unit delay UD. Therefore, when the unit delay UD is smaller than the control block clock skew C skew , the design for the overall clock skew is affected by the macroblock, while, otherwise, the unit delay UD becomes the overall clock skew. 
     As can be seen from the above, in accordance with the present invention, the inventive clock circuit is first designed by using a conventionally determined clock tree and the overall clock skew is then estimated. Thereafter, based on the estimated result, the overall clock can be easily modified by using newly added delay blocks. Consequently, in order to effectively correct the overall clock skew, the inventive clock circuit includes a clock tree for the control block and a clock tree for the macroblocks which are independently designed and contains a plurality of programmable delay blocks, each having a number of unit delay elements. Especially, the programmable delay block can be coupled between a clock source and each of the clock tree and between each of the clock tree and the control block latches or the macroblocks in order to effectively correct the overall clock skew. 
     While the present invention has been shown and described with reference to the particular embodiments, it will be apparent to those skilled in the art that many changes and modifications may be made without departing from the spirit and scope of the invention as defined in the appended claims.