Skew Aware Polarity Assignment in Clock Tree Po-Yuan Chen Kuan-Hsien Ho TingTing Hwang Department of Computer Science National Tsing Hua University HsinChu, Taiwan 300 Email: [email protected] Department of Computer Science National Tsing Hua University HsinChu, Taiwan 300 Email: [email protected] Department of Computer Science National Tsing Hua University HsinChu, Taiwan 300 Email: [email protected] ABSTRACT In modern sequential VLSI designs, clock tree plays an important role in synchronizing different components in a chip. To reduce peak current and power/ground noises caused by clock network, assigning different signal polarities to clock buffers is proposed in previous work. Although peak current and power/ground noises are minimized by signal polarities assignment, an assignment without timing information may increase the clock skew significantly. As a result, a timing-aware signal polarities assigning technique is necessary. In this paper, we propose a novel signal polarities assigning technique which can not only reduce peak current and power/ground noises simultaneously but also render the clock skew in control. The experimental result shows that the clock skew produced by our algorithm is 94% of original clock skew in average while the clock skews produced by three algorithms (Partition, MST, Matching) [5] are 235%, 272%, and 283%, respectively. Moreover, our algorithm is as efficient as the three algorithms of [5] in reducing peak current and power/ground noises. I. INTRODUCTION In modern sequential VLSI design, clock tree plays an important role in synchronizing different components in a chip. Clock tree is composed of a tree of clock buffers. As the clock source switches in each clock cycle, it propagates from the root of clock tree to leaves. Since all clock buffers switch in each clock cycle, the clock network produces unacceptable peak currents and power/ground noises. A large current moving atoms on the power line, called electromigration problem [1], may damage the circuit and shorten its lifetime. Moreover, the circuit performance will be degraded when power noises caused by clock tree network are large. For example, in [2], it shows that 0.1V power noise will incur 79.8% inverter delay variations when the nominal Vdd is 0.6V by Berkeley Predictive Technology Model with 45nm technology [3]. To reduce peak current caused by clock tree network, Nieh et al. proposed an opposite-phase approach in [4]. We assume that there is a binary clock tree composed of clock buffers. As the clock source switches from 0 to 1, it propagates through the clock tree and makes all buffers switch from 0 to 1. Since all buffers switch from 0 to 1, the clock tree network will absorb current from power (Vdd ) net, which results in huge peak current. To reduce peak current, Nieh et al. modified the clock tree as shown in Figure 1 where an inverter denoted in black color instead of a buffer is used in clock tree. By this simple modification, the clock tree can be separated into two subtrees: one is triggered by a clock buffer and the other by a clock inverter. The clock buffers in the subtree trigged by the clock buffer switch from 0 to 1 while the clock buffers in the other one switch in an opposite direction. Please note that the flip-flops in the subtree triggered by a clock inverter should be replaced by negative-edge triggered ones. Since half of the clock buffers switch in the opposite direction, the peak current can be easily reduced. Although peak current is successfully reduced in [4], the power/ground noises in a local area are not. Samanta et al. [5] observed that power/ground noises are sensitive to the locations of clock buffers. As a result, they proposed three algorithms: (1) partitioning, (2) 2-coloring on minimum spanning tree and (3) recursive min-matching to replace half of the clock buffers by inverters taking buffer locations into consideration. Figure 2 shows a possible result produced by [5]. Methods proposed in [5] are indeed effective in reducing power/ground noises. Unfortunately, since half of the clock buffers in the clock tree are replaced by clock inverters and clock skew is not taken into consideration, it may result in, in the worst 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 Fig. 1. 0 Opposite-phase clock tree in [4] 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 A 0 0 1 1 0 1 0 1 1 1 0 0 0 1 B Fig. 2. Opposite-phase clock tree in [5] case, one path with all buffers and the other path with all inverters. For example, in Figure 2, the path from root to A consists of all buffers while the path from root to B all inverters. In this case, serious clock skew occurs in node A and node B. Although buffer/wire sizing technique [6], [7] can be applied to modify clock tree network, it incurs extra area overhead. Moreover, clock skew will be hard to recover when routing and area resources are critical. To solve both power/ground noises and clock skew problems simultaneously, we propose a new design flow which not only reduce peak current and power/ground noises but also render the clock skew in control. The organization of this paper is as follows. In Section II, motivational examples are presented. In Section III, the design flow and algorithms are discussed. The experimental result is shown in Section IV. Finally, the conclusions are made in Section V. II. M OTIVATION In the previous work, the transition of buffers in a clock tree is assumed to switch at the same time instance. Therefore, peak current is computed out of sum-total buffers. However, due to the transition lags caused by the delay of buffers, such way of computation is inaccurate. To verify this observation, SPICE simulation on benchmark circuit s38584 (in ISCAS89 benchmark set) is conducted using TSMC 0.13 cell library. The clock tree is synthesized, placed, and routed by SOC Encounter. The simulation result is shown in Figure 3, where horizontal axis and vertical axis represent timing steps and current consumed, respectively. In Figure 3(a), the consumed current of clock tree network is presented level by level while in Figure 3(b), the summation of consumed current of clock tree is presented. Since each intermediate branch of the clock tree drives more than one children, 1. Procedure Skew Minimizing Algorithm (leaves, target, B I ) 2. begin 3. If(B I = buf f er) 4. global max = buf maxtarget ; 5. else 6. global max = inv maxtarget ; 7. Checking Global Max(leaves); 8. Assigning negative polarity to leafj whose buf maxj > global max; 9. Counting Number of Negative Polarity Leaves (leaves); 10. For(each leafj in the list, inv min list, in decreasing order) 11. If(leafj is not in negative polarity and target 6= j ) 12. Assigning leafj to negative polarity; 13. Counting Number of Negative Polarity Leaves (leaves); 14. end (a) (b) Fig. 3. Current variations in s38584 benchmark circuit Fig. 4. the consumed current grows as the clock signal propagates to deeper level in the clock tree. From Figure 3(a) and (b), we observe that peak current occurs when the clock signal propagates to the leaves of the clock tree. Therefore, to accurately reduce peak current of a clock tree, only the leaves of the clock tree are critical. Thus, we propose that instead of half of total clock buffers, half of the clock buffers at leaves are replaced by inverters to reduce peak current. By changing only the clock phase at leaves, our method not only reduces peak current but also render the clock skew in control because at most one buffer is replaced by an inverter in each path. III. D ESIGN F LOW AND A LGORITHMS A. Design Flow In our design flow, the input is a pre-layout clock netlist and the timing information of n leaves. As shown in motivation, our objective is to select n2 buffers at leaves and replace them by inverters so that the clock skew, peak current, and power/ground noises are minimized simultaneously. Our design flow is composed of two major steps. The first step in our design flow is to assign the polarities of all leaves in the clock tree so that the minimum clock skew is obtained. In the second step, we classify the leaves into two categories. The first one is sensitive to the clock skew and the other is not. Then, we reassign polarities of unsensitive leaves according to their location information so as to reduce power/ground noises. B. Polarity Assignment for Minimizing Clock Skew As shown in Section II, peak current is produced when the clock signal propagates to the leaves of the clock tree. As a result, assigning appropriate polarities of leaves are important. A straightforward algorithm will enumerate all possible implementations and find the best one. This straightforward enumeration will be infeasible because for n leaves, O(2n ) time is required. In this subsection, we propose a polarity assignment technique which not only efficiently reduces peak current by assigning half of the leaves to negative-polarity (inverter) but also produces the minimum clock skew in polynomial time. Before we proceed the algorithm, we first define some notations. Let a leaf buffer be denoted as leafi and k flip-flops, F Fj , for 1 ≤ j ≤ k, be driven by leafi . Then buf maxi and buf mini are defined as buf maxi = M AX1≤j≤k (arrival(F Fj )) buf mini = M IN1≤j≤k (arrival(F Fj )) where arrival(F Fj ) is the arrival time from source to flip-flop, F Fj . Similarly, if a buffer is replaced by an inverter, inv maxi and inv mini are defined as inv maxi = M AX1≤j≤k (arrival(F Fj )) inv mini = M IN1≤j≤k (arrival(F Fj )) where arrival(F Fj ) is the arrival time from source to flip-flop, F Fj . We further define global max and global min as global max = M AXi∈leaves (buf /inv maxi ) (1) global min = M INi∈leaves (buf /inv mini ) (2) The Skew Minimizing Algorithm algorithm TABLE I E XAMPLES : leafi S AND THEIR CORRESPONDING TIMING INFORMATION leaf1 leaf2 leaf3 leaf4 leaf5 leaf6 buf maxi 2.00 1.99 1.90 1.89 1.87 1.85 inv maxi 1.97 1.92 1.85 1.82 1.81 1.80 buf mini 1.82 1.89 1.79 1.79 1.86 1.70 inv mini 1.80 1.82 1.75 1.71 1.79 1.64 where buf /inv denotes that either buf maxi or inv maxi is computed depending on the type, buffer or inverter, at leaves. Then, the clock skew is defined as follows: skew = global max − global min (3) By Equations (1, 2, 3), we know the clock skew is the maximum difference among all pairs of clock signal arrival times of flip-flops. Our first algorithm is developed, for a given leaftarget , to assign polarities of all leaves so that global max = buf maxtarget or global max = inv maxtarget . The smaller skew of two skews produced by the two cases is selected as the best skew for leaftarget . In the following, without loss of generality, we assume a leave implemented using inverter is faster than that implemented using buffer. Please note that the algorithm can be easily modified when buffer is faster than inverter. Initially, let buf max list denote a sorted list of all leaves in decreasing order where leaves are implemented using buffer and the key for sorting is buf maxi . Similarly, inv min list denote a sorted list of all leaves in decreasing order where leaves are implemented by inverters and the key for sorting is inv mini . We will explain the algorithms when global max = buf maxtarget in the follows. The same algorithm is applied when global max = inv maxtarget . At beginning of the algorithm, we check whether it is possible to have global max = buf maxtarget . For each leafj , we check if buf maxj > buf maxtarget . If it is, we assign leafj to negative-polarity. If inv maxj is still larger than buf maxtarget , it means buf maxtarget can not be global max and the algorithm returns false and terminates. While checking is performed, each leafj whose buf maxj > buf maxtarget is assigned to negativepolarity so that global max = buf maxtarget is satisfied. After this step, we count the number of leaves that are replaced by inverters. If the number of leaves in negative-polarity is more than half of leaves, the algorithm returns false and terminates because only half of the leaves can be implemented using inverters. If the number of leaves in negative-polarity is equal to n2 , the algorithm successfully find n2 leaves in negative polarity and returns true. If the number of leaves in negative-polarity is less than n2 , the algorithm continues. For each leafj in the list of inv min list in decreasing order, if leafj is not assigned to negative-polarity, leafj is selected and assigned negative-polarity. The assignment continues until n2 leaves are assigned negative-polarity. The details of the algorithm are presented in Figure 4. We give the following example to demonstrate our algorithm. Suppose there are six leaves, denoted by leaf1 to leaf6 , in the circuit. Their corresponding timing information is list in Table I. The first column lists the names. The following columns show their corre- 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Sort buf max list; Sort inv min list; Procedure Optimal Clock Skew (leaves) begin for(each leafi in leaves) Resetting all leaves to positive polarity; Skew M inimizing Algorithm(leaves, i, buf f er); Resetting all leaves to positive polarity; Skew M inimizing Algorithm(leaves, i, inverter); Recording the best result so far; end Fig. 5. The Optimal Clock Skew algorithm sponding buf maxi s, inv maxi s, buf mini s, and inv mini s. Let the clock skew values be computed when global max = buf max2 . That is, Skew M inimizing Algorithm algorithm is invoked with target = 2 and B I=buf f er (type). The list of buf max list is sorted as buf max1 , buf max2 , buf max3 , buf max4 , buf max5 , and buf max6 . Similarly, the inv min list is sorted as inv min2 , inv min1 , inv min5 , inv min3 , inv min4 , and inv min6 . At the beginning of the algorithm, we check whether buf max2 = global max can be satisfied. Since there is only one leaf, leaf1 , whose buf max1 > buf max2 , we check whether inv max1 ≤ buf max2 . Since inv max1 ≤ buf max2 , leaf1 is assigned negative-polarity and global max = buf max2 is still satisfied. After this assignment, we count the number of leaves that are in negative-polarity. Since there is only one negative-polarity leaf, we continue the assignment by inv min list one by one. The first leaf in inv min list is inv min2 . We cannot assign leaf2 to negative-polarity because global max is required to be buf max2 . Then, we select the next leaf. Since leaf1 is already assigned to negative-polarity, we select the third leaf, inv min5 , and assign leaf5 to negative-polarity. Similarly, leaf3 is selected and assigned negative-polarity. After this assignment, there are three leaves (half of leaves) with negative-polarity. Skew M inimizing Algorithm finishes and returns true. The global max remains to be buf max2 which is 1.99 and global min is equal to buf min6 which is 1.70. Hence when gloabl max = buf max2 , the clock skew is 0.29. In fact, the above greedy Skew M inimizing Algorithm can produce an optimal (minimum) clock skew when global max is set to buf maxtarget after assigning n2 leaves to negative-polarity. The optimality is proved as follows: Theorem 1: The Skew M inimizing Algorithm in Figure 4 can produce the optimal (minimum) clock skew while global max is equal to buf maxtarget after assigning n2 leaves to negative-polarity. Proof: Omitted due to page limit. We have proved that the Skew M inimizing Algorithm can produce the optimal clock skews while global max is equal to buf maxtarget . We further propose an optimal clock skew algorithm for general case. The basic idea is to invoke Skew M inimizing Algorithm n times for each leaf and for each leaf, global max = buf max and global max = inv max are computed in clock tree. The leafi that produces the smallest skew is the optimal solution. The optimal clock skew algorithm is shown in Figure 5. The optimality of the Optimal Clock Skew is proved as follows: Theorem 2: The Optimal Clock Skew algorithm in Figure 5 can produce the optimal clock skew. Proof: Omitted due to page limit. Take the leaves in Table I as an example. Skew M inimizing Algorithm(leaves, 1, buf f er) returns global max = 2, global min = 1.70, and clock skew is 0.3. Then, Skew M inimizing Algorithm(leaves,1,inverter) returns global max = 1.97, global min = 1.70, and clock skew is 0.27. Similarly, Skew M inimizing Algorithm(lea ves,2,buf f er) returns global max = 1.99 (buf max2 ), global min = 1.70, and clock skew is equal to 0.29. Since all other leaves can not be global max, Skew M inimizing Algorithm will return false. Hence, the optimal clock skew is 0.27 when leaf1 is invoked for Skew M inimizing Algorithm with B I = inverter. The time complexity of Optimal Clock Skew algorithm is O(n2 ). C. Power/Ground Noises Reduction Algorithm In subsection III-B, the polarity-assignment algorithm for optimal clock skew is proposed. In this subsection, we propose an algorithm to take into consideration power/ground noises reduction. First, for a clock tree implementation produced by our Optimal Clock Skew algorithm, we classify all leaves into three categories: • groupI : for any leafj in groupI , buf maxj > global max. • groupII : for any leafj in groupII , inv minj < global min. • groupIII : others. Leaves of groupI must be implemented using inverter. If not (implemented using buffer), global max is increased and hence skew is increased. Similarly, leaves of groupII must be implemented using buffer. If not (implemented using inverter), global min in decreased and hence skew is increased. On the other hand, leaves of groupIII can be implemented using either inverter or buffer because in either case, global max and global min are not affected. For instance, three leaves, leaf1 , leaf2 , and leaf6 , in Table I must be assigned particular polarities with global max = buf max2 and global min = buf min6 , where leaf1 and leaf2 are assigned an inverter and a buffer, respectively, to retain the value of global max and similarly, leaf6 is assigned a buffer to retain the value of global min. The rest of leaves can be assigned either buffer or inverter without affecting the values of global max and global min. We can utilize this property to minimize power/ground noises. In this subsection, we propose an algorithm for power/ground noises reduction. It uses the leaves in groupIII to minimize the power/ground noises. First, we model the leaves as a graph G = (V, E) where |V | is the collected set of all leaves. There are three types of edges, typea , typeb , and typec . They are defined as follows: • typea : one end connecting a leaf that is implemented as a buffer, and the other connecting a leaf with undetermined polarity. • typeb : one end connecting a leaf that is implemented as an inverter, and the other connecting a leaf with undetermined polarity. • typec : both ends connecting leaves with undetermined polarity. Since the power/ground noises are very sensitive to distance between leaves, the weight of an edgei,j is assigned the distance between leafi and leafj . We propose Noise Reduction Algorithm to reduce power/ground noises by assigning polarities to leaves in groupIII . At the beginning, leaves in groupI and groupII are assigned with appropriate polarities described above to retain the same clock skew. Then, we construct graph G(V, E) and assign type to each edge. Next, polarity assignment to leaves of edges in groupIII starts. First, we check if the number of buffers, |buf |, is larger than the number of inverters, |inv|. If it is, an edge with the smallest weight is chosen from typea and undetermined end is assigned to negative-polarity. Similarly, if |inv| > |buf |, an edge with the smallest weight is chosen from typeb and undetermined end is assigned to positive-polarity. These two steps is to guarantee that the number of buffers and the number of inverters are the same. Otherwise, we will have |buf | = |inv|. In this case, an edge with the smallest weight is chosen. There are three cases. Case 1 is that the chosen edge belongs to typec . We mark the two ends with different signs, ’+’ and ’−’, and record it as delay assignment group. The markings are only used to make sure the two ends with different polarity. The actual assignment will be performed when an edge of typea or typeb is selected and its one end connects to this delay assignment group. Case 2 is that the chosen edge is from typea . We assign the undetermined end to negative polarity. Finally, case 3 is that an edge from typeb is chosen. We assign the undermined end to positive polarity. In cases 2 and 3, if the undetermined end is marked with ’+’(’−’), the polarities of all leaves in the delay assignment group will be determined accordingly. Figure 6 shows the steps when N oise Reduction Algorithm is applied to the examples in Table I with global max = buf max2 and global min = buf min6 . At the first, leaf1 , leaf2 , and leaf6 are assigned appropriate polarities to retain the same clock skew as shown in Figure 6(a). Since |buf | > |inv|, we choose edge2,3 from typea and assign leaf3 to be an inverter as shown in Figure 6(b). In Figure 6(c), edge4,5 is chosen. Since edge4,5 belongs to typec , leaf4 and leaf5 are marked and put into delay assignment group as shown in Figure 6(d). Then, in Figure 6(e), edge2,4 is chosen. Since leaf2 is a buffer and leaf4 is in the delay assingment group, we Buffers 2 1 2 5 6 (a) Buffers 2 5 6 1 2 3 6 Inverters 1 5 - Buffers 1 5 - 6 s5378 s9234 s13207 s15850 s35932 s38417 s38584 avg 3 (d) Inverters + 4 2 Circuits 1 + 4 (c) Buffers 5 (b) Buffers Inverters 4 4 Inverters 3 4 6 TABLE IV C OMPARISONS OF GROUND NOISES BETWEEN OUR ALGORITHM AND PREVIOUS WORK [5] IN mV Buffers Inverters 3 3 1 5 3 6 4 Example of N oise Reduction Algorithm algorithm s5378 s9234 s13207 s15850 s35932 s38417 s38584 avg Base Skew 70.1 44.3 51.4 64.3 105.3 82.9 141.5 Partition Skew % 167 239 117 266 158 309 156 243 190 181 154 186 317 224 235 MST Skew 174 136 160 192 272 217 300 Matching Skew % 164 235 129 292 221 431 166 259 340 324 207 250 271 192 283 % 249 309 313 299 259 263 212 272 Ours Skew 64.2 45.9 49.3 61.2 92.4 75.5 129.4 % 92 104 96 95 88 91 91 94 assign leaf4 an inverter and leaf5 a buffer. The final result is shown in Figure 6(f). IV. E XPERIMENTAL R ESULTS Experiments are conducted using ISCAS89 benchmark circuits which are synthesized with T SM C 0.13µm cell library by Design Compiler. All benchmark circuits are placed and routed by SOC Encounter. The result of SPICE simulator is obtained by N anoSim and 1.08V is used as supply voltage Vdd . In each benchmark circuit, CLKBU F X8 (buffer) in T SM C cell library is adopted to construct the clock tree. Furthermore, the timing information is also computed for all leaves implemented by CLKIN V X4 (inverter). To measure the resultant clock skew, the maximum power/ground noises, and peak current, several sample points are inserted into the SPICE file of each benchmark circuit. We compare our experimental result to that in the previous work [5] where three algorithms proposed are: partitioning (partition), 2coloring on minimum spanning tree (MST), and recursive minmatching (Matching). The results of clock skew in pico-second are shown in Table II. The names of benchmark circuits are listed in the first column. The column labeled, Base, lists the clock skew of the original circuit. The second, third, and fourth columns are clock skews produced by partitioning, 2-coloring on minimum spanning tree and recursive min-matching algorithms, respectively. The last column reports the result of our algorithm. Two values are reported in each column. The first value represents the clock skew, and the second one reports its normalization to the original clock skew in percentage. The last row reports the average of the normalized values. From the experiments, we can see that the resultant clock skew of our algorithm is smaller than the original skew in most cases. The algorithms in [5] produce large clock skew values (about 3 times of the original clock skew in average). TABLE III C OMPARISONS OF POWER NOISES BETWEEN OUR ALGORITHM AND PREVIOUS WORK [5] IN mV Circuits s5378 s9234 s13207 s15850 s35932 s38417 s38584 avg Base VDD 25.9 17.8 52.4 54.2 109.0 94.4 101.4 % 2.41 1.65 4.86 5.03 10.09 8.75 9.39 6.0 Partition VDD % 21.8 2.03 12.0 1.12 35.8 3.32 38.7 3.58 77.6 7.19 63.4 5.88 95.9 8.89 4.57 MST GND 21.5 14.1 34.8 34.5 72.2 57.6 105.9 % 2.00 1.31 3.23 3.20 6.69 5.33 9.81 4.51 Matching GND % 22.3 2.07 14.1 1.31 34.4 3.19 34.5 3.20 68.6 6.35 81.9 7.59 73.0 6.77 4.35 Ours GND 19.1 14.9 39.2 35.3 78.1 58.7 77.4 % 1.77 1.39 3.63 3.28 7.24 5.44 7.17 4.27 (f) TABLE II C OMPARISONS OF CLOCK SKEW BETWEEN OUR ALGORITHM AND PREVIOUS WORK [5] IN PICO - SECOND Circuits Partition GND % 19.3 1.79 9.8 0.91 32.0 2.96 41.0 3.80 76.5 7.09 52.8 4.89 102.1 9.46 4.42 TABLE V C OMPARISONS OF PEAK CURRENT BETWEEN OUR ALGORITHM AND PREVIOUS WORK [5] IN mA Circuits Fig. 6. % 2.23 1.66 5.06 4.02 8.27 8.24 11.1 5.8 Inverters 2 (e) Base GND 24.1 17.9 54.6 43.3 89.3 89.0 120.1 MST VDD 17.5 14.7 34.6 31.9 80.7 62.7 75.5 % 1.62 1.37 3.21 2.96 7.48 5.81 6.99 4.21 Matching VDD % 19.3 1.79 13.2 1.23 31.4 2.92 41.6 3.86 80.8 7.48 70.0 6.49 81.9 7.59 4.48 Ours VDD 22.3 14.6 51.9 46.3 82.9 66.2 76.9 % 2.07 1.36 4.81 4.29 7.68 6.13 7.13 4.78 s5378 s9234 s13207 s15850 s35932 s38417 s38584 avg Base Cur. 11.1 7.1 33.5 25.9 78.3 75.6 67.2 Partition Cur. % 7.3 66.3 5.0 71.2 19.4 57.9 18.8 72.6 55.2 70.5 47.4 62.8 50.8 75.6 68.1 MST Cur. 7.03 5.1 21.8 15.4 54.2 43.6 43.1 % 63.0 72.6 65.1 59.6 69.2 57.7 64.1 64.5 Matching Cur. % 8.9 79.9 5.3 74.6 18.1 54.1 17.5 67.8 49.8 63.5 46.0 60.9 45.8 68.2 67.0 Ours Cur. 6.7 4.9 20.7 17.5 57.3 48.2 50.1 % 60.8 68.6 61.8 67.6 73.1 63.8 74.6 67.2 In Tables III and IV, the maximum power/ground noises are reported. The columns labeled VDD and % are maximum power noises in mV and their normalization to Vdd in percentage. Similarly, the columns labeled GND and % are the maximum ground noises and their normalized value to Vdd , respectively. Tables III and IV shows that the difference of power/ground noises between our algorithm and algorithms of [5] is within 1%. In Table V, the result of peak current is reported. It shows that the difference of peak current between our algorithm and algorithms of [5] is within 3%. The experiments shows that our algorithm is as efficient as algorithms in [5] in reducing peak current and power/ground noises. More importantly, our algorithm can effectively reduce the peak current and power/ground noise without increasing clock skew. V. C ONCLUSION In this paper, we have proposed a novel signal polarities assigning technique which can not only reduce the peak current and power/ground noises simultaneously but also render the clock skew in control. The experimental result shows that the clock skew produced by our algorithm is 94% of the original clock skew in average while the clock skews produced by three algorithms (Partition, MST, Matching) [5] are 235%, 272%, and 283%, respectively. Moreover, our algorithm is as efficient as three algorithms of [5] in reducing peak current and power/ground noises. R EFERENCES [1] John P. Uyemura, ”Introduction to VLSI Circuits and Systems,” JOHN WILEY & SONS, INC. [2] Sachin S. Sapatnekar, and Haihua Su, ”Analysis and Optimization of Power Grids,” IEEE Design and Test Computers, vol. 20, issue 3, pp. 7-15, May-June 2003. [3] Predictive Technology Model, http://www-device.eecs.berkeley.edu/˜ptm [4] Yow-Tyng Nieh, Shih-Hsu Huang, and Sheng-Yu Hsu, ”Minimizing Peak Current via Opposite-Phase Clock Tree,” IEEE/ACM Design Automation Conference, pp. 182-185, Jun. 2005. [5] Rupak Samanta, Ganesh Venkataraman, and Jiang Hu, ”Clock Buffer Polarity Assignment for Power Noise Reduction,” IEEE/ACM International Conference on Computer-Aided Design, pp. 558-562, Nov. 2006. [6] Ganesh Venkataraman, Nikhil Jayakumar, Jiang Hu, Peng Li, Sunil Khatri, Anand Rajaram, Patrick McGuinness, and Charles Alpert ”Practical Techniques to Reduce Skew and Its Variations in Buffered Clock Networks,” IEEE/ACM International Conference on Computer-Aided Design, pp. 591-595, Nov. 2005. [7] Matthew R. Guthaus, Dennis Sylvester, and Richard B. Brown, ”Clock Buffer and Wire Sizing Using Sequential Programming,” ACM/IEEE Design Automation Conference, pp. 1041-1046, July 2006.
© Copyright 2026 Paperzz