JP2011154537A - Layout device and layout method - Google Patents

Layout device and layout method Download PDF

Info

Publication number
JP2011154537A
JP2011154537A JP2010015669A JP2010015669A JP2011154537A JP 2011154537 A JP2011154537 A JP 2011154537A JP 2010015669 A JP2010015669 A JP 2010015669A JP 2010015669 A JP2010015669 A JP 2010015669A JP 2011154537 A JP2011154537 A JP 2011154537A
Authority
JP
Japan
Prior art keywords
clock tree
delay
clock
skew value
wiring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010015669A
Other languages
Japanese (ja)
Inventor
Yoichiro Tanaka
陽一郎 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010015669A priority Critical patent/JP2011154537A/en
Publication of JP2011154537A publication Critical patent/JP2011154537A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a layout device and a layout method, allowing simple skew adjustment in a clock tree design. <P>SOLUTION: The layout device 1 includes an assumption skew value storage part 141, a delay insertion part 133, and a delay adjustment part 134. The assumption skew value storage part 141 stores a predetermined assumption skew value according to the number of stages of a clock tree. When the assumption skew value is a request skew value or below, the delay insertion part 133 inserts a delay adjustment buffer 206 into a topmost side of the clock tree. The delay adjustment part 134 adjusts delay of the delay adjustment buffer 206 after wiring of the clock tree such that the skew value of the clock tree becomes the request skew value or below. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明はレイアウト装置及びレイアウト方法に関し、特に半導体集積回路のクロックツリー設計におけるレイアウト装置及びレイアウト方法に関する。   The present invention relates to a layout apparatus and layout method, and more particularly to a layout apparatus and layout method in clock tree design of a semiconductor integrated circuit.

近年の半導体集積回路の高周波数化に伴い、同期化回路間のタイミングマージン確保が要求されている。そのため、クロックツリーのクロックスキューを小さくする必要がある。しかし、半導体集積回路の設計の際に、クロックスキューの調整に多くの設計時間を費やしている。   With the recent increase in frequency of semiconductor integrated circuits, it is required to secure a timing margin between the synchronization circuits. Therefore, it is necessary to reduce the clock skew of the clock tree. However, much design time is spent adjusting the clock skew when designing a semiconductor integrated circuit.

一方で、半導体集積回路の大規模化に伴う同期化回路の増加により、クロックツリーの構造が大規模化している。そのため、クロックスキューの調整にさらに多くの設計時間を費やすこととなっている。このような背景から、半導体集積回路のクロックスキューを短時間で調整する要求(必要性)が高まってきた。   On the other hand, the structure of the clock tree has been enlarged due to the increase in the number of synchronization circuits accompanying the increase in the scale of the semiconductor integrated circuit. Therefore, more design time is spent adjusting the clock skew. Against this background, there has been an increasing demand (necessity) for adjusting the clock skew of a semiconductor integrated circuit in a short time.

特許文献1には、クロックスキューが閾値以下に収束する回路規模となるように、クロックツリーが有するフリップフロップを複数のグループに分割し、グループの前段に遅延バッファを挿入する技術が開示されている。分割後、グループの組み合わせ及び中継バッファの数の変更を繰り返すことによって、クロックが入力されるクロック端子から遅延バッファまでの階層数が所定の数となるようにクロックツリーを構成する。   Patent Document 1 discloses a technique in which a flip-flop included in a clock tree is divided into a plurality of groups and a delay buffer is inserted in the preceding stage of the group so that the circuit scale converges below a threshold value. . After the division, the clock tree is configured so that the number of layers from the clock terminal to which the clock is input to the delay buffer becomes a predetermined number by repeatedly changing the combination of groups and the number of relay buffers.

このとき、クロックツリーを構成するということは、起点であるクロック入力端子から対象バッファであるブロックまでを、入力容量と配線容量で決まる遅延量が均等になる様、中継バッファを用いて階層的に構成することである。   At this time, configuring the clock tree means that the relay buffer is used hierarchically so that the delay amount determined by the input capacity and the wiring capacity is equal from the clock input terminal that is the starting point to the block that is the target buffer. Is to configure.

なお、特許文献2には、データ接続経路の数に基づいて、半導体集積回路上のフリップフロップが配置された領域の分割を繰り返し、分割された領域のフリップフロップをツリー状に接続する技術が開示されている。   Patent Document 2 discloses a technique for repeatedly dividing a region where flip-flops are arranged on a semiconductor integrated circuit based on the number of data connection paths, and connecting the flip-flops of the divided regions in a tree shape. Has been.

特開2006−107206号公報JP 2006-107206 A 特開2007−123336号公報JP 2007-123336 A

しかしながら、クロックツリーの遅延量は、対象とするフリップフロップ、バッファ、ツリー等からなるブロックの数量や配置位置によって決まる。つまり、これらの数量や配置位置は実際にレイアウト配置し、配線しなければ決まらず、配線容量と入力容量から見積もる仮配線遅延時間と実配線遅延時間との差分は大きくなる。加えて、クロックツリー構造による多岐にわたるパス間においても、2点間のパスの配線後の遅延量は、2点間のパスの配置配線から見積もった遅延時間の差分よりも大きくなる。   However, the delay amount of the clock tree is determined by the number and arrangement positions of blocks including target flip-flops, buffers, trees, and the like. That is, these quantities and arrangement positions are not determined unless the actual layout is arranged and wired, and the difference between the temporary wiring delay time and the actual wiring delay time estimated from the wiring capacity and the input capacity becomes large. In addition, the delay amount after the routing of the path between the two points becomes larger than the difference in the delay time estimated from the placement and routing of the path between the two points even between various paths based on the clock tree structure.

そのため、特許文献1に記載の技術では、クロック端子からクロックツリー末端までの複数あるクロックパスのクロック遅延の差分(以降、スキュー値と称す)のMAX値とMIN値の差分が、半導体集積回路のタイミング設計上許容されるスキュー値(以降、要求スキュー値と称す)を超える場合は、中継バッファを接続する対象ブロックの数を変えたり、中継バッファの数を変えたりして、再度配置配線を行い、要求スキュー値内に収まるまでクロックツリーを繰り返し構築しなければならない。   Therefore, in the technique disclosed in Patent Document 1, the difference between the MAX value and the MIN value of the clock delay difference (hereinafter referred to as skew value) of a plurality of clock paths from the clock terminal to the end of the clock tree is the difference between the semiconductor integrated circuit. If the skew value exceeds the allowable skew value in the timing design (hereinafter referred to as the required skew value), change the number of target blocks to which the relay buffer is connected or change the number of relay buffers, and perform placement and routing again. The clock tree must be built repeatedly until it falls within the required skew value.

したがって、クロック端子から遅延バッファまでのクロック経路が一回の配線工程で決まらず、制限された段数となるまでクロックツリーの段数を決定する工程に戻ってやり直さなければならない。その結果、クロックツリーの設計工程数が増大するという問題があった。   Therefore, the clock path from the clock terminal to the delay buffer is not determined in a single wiring process, and it is necessary to go back to the process of determining the number of stages of the clock tree until the number of stages is limited. As a result, there is a problem that the number of clock tree design steps increases.

本発明にかかるレイアウト装置は、クロックツリーの段数に応じて予め定められた想定スキュー値を格納する想定スキュー値記憶手段と、前記想定スキュー値が要求スキュー値以下である場合、当該クロックツリーの最上位側に遅延手段を挿入する遅延挿入手段と、前記クロックツリーのスキュー値が前記要求スキュー値以下となるように、前記クロックツリーの配線後に、前記遅延手段の遅延を調整する遅延調整手段と、を備えるものである。このような構成によって、クロックツリーの配線後、遅延調整のためにクロックツリーの構造を変更する必要がないため、配線工程を削減できる。   The layout device according to the present invention includes an assumed skew value storage means for storing an assumed skew value determined in advance according to the number of stages of the clock tree, and a maximum value of the clock tree when the assumed skew value is less than or equal to the required skew value. Delay insertion means for inserting delay means on the upper side; delay adjustment means for adjusting the delay of the delay means after wiring of the clock tree so that the skew value of the clock tree is equal to or less than the required skew value; Is provided. With such a configuration, it is not necessary to change the clock tree structure for delay adjustment after the clock tree is wired, so that the wiring process can be reduced.

本発明にかかるレイアウト方法は、クロックツリーの段数に応じて予め定められた想定スキュー値を参照し、前記想定スキュー値が要求スキュー値以下である場合、当該クロックツリーの最上位側に遅延手段を挿入し、前記クロックツリーのスキュー値が前記要求スキュー値以下となるように、前記クロックツリーの配線後に、前記遅延手段の遅延を調整するものである。これによって、クロックツリーの構造を変更することなく、遅延手段の遅延調整のみによりクロックツリーのスキュー値を調整できる。   The layout method according to the present invention refers to a presumed skew value determined in advance according to the number of stages of the clock tree, and when the assumed skew value is equal to or less than the required skew value, delay means is provided on the uppermost side of the clock tree. The delay of the delay means is adjusted after wiring of the clock tree so that the skew value of the clock tree is equal to or less than the required skew value. Thus, the skew value of the clock tree can be adjusted only by adjusting the delay of the delay means without changing the structure of the clock tree.

本発明により、クロックツリー設計において、簡潔なスキュー調整をすることができるレイアウト装置及びレイアウト方法を提供することができる。   According to the present invention, it is possible to provide a layout apparatus and a layout method capable of performing simple skew adjustment in clock tree design.

実施の形態1にかかるレイアウト装置の構成例を示す図である。1 is a diagram illustrating a configuration example of a layout device according to a first exemplary embodiment. 実施の形態1にかかるレイアウト方法を説明するためのフローチャートである。3 is a flowchart for explaining a layout method according to the first exemplary embodiment; 実施の形態1にかかるレイアウト方法を説明するための詳細なフローチャートである。3 is a detailed flowchart for explaining a layout method according to the first exemplary embodiment; 実施の形態1にかかる想定スキュー値のテーブルを示す図である。FIG. 3 is a diagram illustrating a table of assumed skew values according to the first exemplary embodiment. 実施の形態1にかかる親クロックツリーの構成例を示す図である。3 is a diagram illustrating a configuration example of a parent clock tree according to the first embodiment; FIG. 実施の形態1にかかるクロックツリーの構成例を示す図である。3 is a diagram illustrating a configuration example of a clock tree according to the first embodiment; FIG. 実施の形態1にかかるクロックツリーの配線工程を示す図である。FIG. 3 is a diagram showing a clock tree wiring process according to the first exemplary embodiment; 実施の形態1にかかるクロックツリーの配線工程を示す図である。FIG. 3 is a diagram showing a clock tree wiring process according to the first exemplary embodiment; 実施の形態1にかかるクロックツリーの配線工程を示す図である。FIG. 3 is a diagram showing a clock tree wiring process according to the first exemplary embodiment; 実施の形態1にかかるクロックツリーの配線工程を示す図である。FIG. 3 is a diagram showing a clock tree wiring process according to the first exemplary embodiment; 実施の形態1にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the first exemplary embodiment; 実施の形態1にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the first exemplary embodiment; 実施の形態1にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the first exemplary embodiment; 実施の形態1にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the first exemplary embodiment; 実施の形態1にかかる配線後のクロックツリーの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a clock tree after wiring according to the first exemplary embodiment; 実施の形態1にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram showing a delay distribution of a clock tree after wiring according to the first exemplary embodiment; 実施の形態1にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram showing a delay distribution of a clock tree after wiring according to the first exemplary embodiment; 実施の形態1にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram showing a delay distribution of a clock tree after wiring according to the first exemplary embodiment; 実施の形態1にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 3 is a diagram showing a delay distribution of a clock tree after wiring according to the first exemplary embodiment; 実施の形態1にかかる遅延調整バッファ挿入後のクロックツリーの構成例を示す図である。FIG. 6 is a diagram illustrating a configuration example of a clock tree after insertion of a delay adjustment buffer according to the first embodiment; 実施の形態1にかかる遅延調整によるクロックツリーの遅延分布の変化を示す図である。FIG. 6 is a diagram showing a change in the delay distribution of the clock tree by the delay adjustment according to the first embodiment. 実施の形態1にかかる遅延調整によるクロックツリーの遅延分布の変化を示す図である。FIG. 6 is a diagram showing a change in the delay distribution of the clock tree by the delay adjustment according to the first embodiment. 実施の形態2にかかるレイアウト装置の構成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of a layout device according to a second exemplary embodiment. 実施の形態2にかかるレイアウト方法を説明するための詳細なフローチャートである。5 is a detailed flowchart for explaining a layout method according to a second exemplary embodiment; 実施の形態2にかかる配置面積を説明するための図である。FIG. 10 is a diagram for explaining an arrangement area according to the second embodiment. 実施の形態2にかかる想定スキュー値のテーブルを示す図である。FIG. 10 is a diagram illustrating a table of assumed skew values according to the second exemplary embodiment. 実施の形態3にかかるレイアウト方法を説明するためのフローチャートである。10 is a flowchart for explaining a layout method according to the third exemplary embodiment; 実施の形態3にかかるクロックツリーの配線工程を示す図である。FIG. 10 is a diagram illustrating a clock tree wiring process according to the third exemplary embodiment; 実施の形態3にかかるクロックツリーの配線工程を示す図である。FIG. 10 is a diagram illustrating a clock tree wiring process according to the third exemplary embodiment; 実施の形態3にかかるクロックツリーの配線工程を示す図である。FIG. 10 is a diagram illustrating a clock tree wiring process according to the third exemplary embodiment; 実施の形態3にかかるクロックツリーの配線工程を示す図である。FIG. 10 is a diagram illustrating a clock tree wiring process according to the third exemplary embodiment; 実施の形態3にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the third exemplary embodiment; 実施の形態3にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the third exemplary embodiment; 実施の形態3にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the third exemplary embodiment; 実施の形態3にかかる配線途中のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree in the middle of wiring according to the third exemplary embodiment; 実施の形態3にかかる配線後のクロックツリーの構成例を示す図である。FIG. 10 is a diagram illustrating a configuration example of a clock tree after wiring according to the third exemplary embodiment; 実施の形態3にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram showing a delay distribution of a clock tree after wiring according to the third embodiment; 実施の形態3にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram showing a delay distribution of a clock tree after wiring according to the third embodiment; 実施の形態3にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram showing a delay distribution of a clock tree after wiring according to the third embodiment; 実施の形態3にかかる配線後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram showing a delay distribution of a clock tree after wiring according to the third embodiment; 実施の形態3にかかる遅延調整後のクロックツリーの構成例を示す図である。FIG. 10 is a diagram illustrating a configuration example of a clock tree after delay adjustment according to the third exemplary embodiment; 実施の形態3にかかる遅延調整後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree after delay adjustment according to the third exemplary embodiment; 実施の形態3にかかる遅延調整後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree after delay adjustment according to the third exemplary embodiment; 実施の形態3にかかる遅延調整後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree after delay adjustment according to the third exemplary embodiment; 実施の形態3にかかる遅延調整後のクロックツリーの遅延分布を示す図である。FIG. 10 is a diagram illustrating a delay distribution of a clock tree after delay adjustment according to the third exemplary embodiment;

実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるレイアウト装置1の構成例を図1に示す。レイアウト装置1は、キーボード11、マウス12、処理装置13、記憶装置14、表示装置15を備える。
Embodiment 1
Embodiments of the present invention will be described below with reference to the drawings. A configuration example of the layout apparatus 1 according to the present embodiment is shown in FIG. The layout device 1 includes a keyboard 11, a mouse 12, a processing device 13, a storage device 14, and a display device 15.

キーボード11は、文字キー、数字キー、機能指示キー等を備えており、各種キー入力を行う。マウス12は、マウスカーソルの示す位置データを入力する。これらキーボード11及びマウス12等の入力装置によって、入力された論理回路のクロック信号のスキュー算出をするための指示、クロック信号のスキュー算出結果を検証する際の指示等の入力を行う。   The keyboard 11 includes character keys, numeric keys, function instruction keys, and the like, and performs various key inputs. The mouse 12 inputs position data indicated by the mouse cursor. The input device such as the keyboard 11 and the mouse 12 inputs an instruction for calculating the skew of the input clock signal of the logic circuit and an instruction for verifying the skew calculation result of the clock signal.

処理装置13は、CPU (Central Processing Unit) 131、メモリ132等を備えるマイクロコンピュータである。CPU131及びメモリ132は、例えばROM(Read Only Memory)やRAM(Random Access Memory)等からなる。処理装置13は、この装置全体の制御を司るとともに、クロック信号のスキュー算出するための演算の処理、クロック信号のスキュー算出結果を記憶装置14にファイル形式で記憶させる処理、記憶装置14に記憶されているクロック信号のスキュー算出結果を内部メモリに読み込む処理、クロック信号のスキュー算出結果等を表示装置15に表示させるための処理等を行う。   The processing device 13 is a microcomputer including a CPU (Central Processing Unit) 131, a memory 132, and the like. The CPU 131 and the memory 132 include, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), and the like. The processing device 13 controls the entire device, performs processing for calculating the skew of the clock signal, stores the clock signal skew calculation result in the storage device 14 in a file format, and is stored in the storage device 14. A process for reading the skew calculation result of the clock signal being read into the internal memory, a process for causing the display device 15 to display the skew calculation result of the clock signal, and the like are performed.

また、処理装置13は、遅延バッファを挿入する遅延挿入部133、遅延バッファによる遅延時間を調整する遅延調整部134、親クロックツリーからクロックツリーを分割するツリー分割部135、クロックツリーの配線を行う配線部136も備える。   The processing device 13 also performs a delay insertion unit 133 for inserting a delay buffer, a delay adjustment unit 134 for adjusting a delay time by the delay buffer, a tree division unit 135 for dividing the clock tree from the parent clock tree, and wiring of the clock tree A wiring unit 136 is also provided.

記憶装置14は、想定スキュー値記憶部141を備える。想定スキュー値記憶部141は、例えば、HDD(Hard Disk Drive)やRAM等であり、クロック信号のスキュー算出結果やクロックツリー性能評価結果等を記憶する。表示装置15は、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)等のディスプレイ装置であって、クロック信号のスキュー算出結果及び各種メッセージ等を表示する。   The storage device 14 includes an assumed skew value storage unit 141. The assumed skew value storage unit 141 is, for example, an HDD (Hard Disk Drive) or a RAM, and stores a skew calculation result of a clock signal, a clock tree performance evaluation result, and the like. The display device 15 is a display device such as a CRT (Cathode Ray Tube) or an LCD (Liquid Crystal Display), and displays a skew calculation result of clock signals, various messages, and the like.

続いて、本実施の形態にかかるレイアウト方法について説明する。図2にレイアウト方法を説明するためのフローチャートを示す。はじめに、レイアウト装置1のキーボード11等を用いて、クロックツリーをレイアウトするために必要なデータを入力する(ステップS101)。このとき入力されるデータは、例えば、ネット情報、製品情報、クロックツリー性能評価結果、要求スキュー値(MIN、MAX)等の情報を入力する。   Next, the layout method according to this embodiment will be described. FIG. 2 shows a flowchart for explaining the layout method. First, data necessary for laying out a clock tree is input using the keyboard 11 or the like of the layout device 1 (step S101). As the data input at this time, for example, information such as net information, product information, a clock tree performance evaluation result, and a required skew value (MIN, MAX) is input.

次に、入力されたデータに基づいて、処理装置13が、クロックツリーの構造を決定する(ステップS102)。図3にステップS102の詳細なフローチャートを示す。   Next, based on the input data, the processing device 13 determines the structure of the clock tree (step S102). FIG. 3 shows a detailed flowchart of step S102.

まず、処理装置13が、ステップS101において入力されたネット情報、製品情報に基づいて、CTSバッファ(以降、駆動バッファと称す。)のドライブ能力から決定される駆動可能なFF(フリップフロップ)数をFとして求める(ステップS1021)。   First, the processing device 13 determines the number of driveable FFs (flip-flops) determined from the drive capability of the CTS buffer (hereinafter referred to as drive buffer) based on the net information and product information input in step S101. Obtained as F (step S1021).

次に、処理装置13は、クロックツリーの末端側(フリップフロップの手前)に必要な駆動バッファの数n(駆動手段の数)をn=接続FF数の総数/Fで求める(ステップS1022)。例えば、対象となる一つのクロックドメインに接続されたFFの総数が320個、駆動バッファの駆動可能なFF数が20個であったとすると、クロックツリーの末端側に必要な駆動バッファ数nはn=320個/20個=16個となる。   Next, the processing device 13 obtains the number n (the number of drive means) of the drive buffers necessary for the terminal side of the clock tree (before the flip-flop) by n = total number of connected FFs / F (step S1022). For example, if the total number of FFs connected to one target clock domain is 320 and the number of FFs that can be driven by the drive buffer is 20, the number of drive buffers n required on the end side of the clock tree is n. = 320/20 = 16.

駆動バッファの数が決定すると、処理装置13は、親クロックツリーの段数(階層数)を決定する(ステップS1023)。例えば、クロックツリーを1つの始点、n個の終点とした2分岐構造のクロックツリーとした場合、それを構成する駆動バッファ及び中継バッファの段数、つまり親クロックツリーの段数をmとすると、m−1=logn、つまりm=(logn)+1で求める。このとき、親クロックツリーとは、配置配線がされておらず、以降のステップにおいて分割される前の仮のクロックツリーの構成を意味する。また、中継バッファとは、クロックツリーの各分岐点の前段に設けられるバッファを意味する。   When the number of drive buffers is determined, the processing device 13 determines the number of stages (number of hierarchies) of the parent clock tree (step S1023). For example, if the clock tree is a two-branch clock tree with one start point and n end points, the number of stages of the drive buffer and the relay buffer constituting the clock tree, that is, the number of stages of the parent clock tree is m−. 1 = logn, that is, m = (logn) +1. At this time, the parent clock tree means a configuration of a temporary clock tree that is not arranged and routed and is not divided in the subsequent steps. Further, the relay buffer means a buffer provided in the preceding stage of each branch point of the clock tree.

なお、logの底はクロックツリーの分岐数に対応しており、上記の例では2分岐構造であるためlogの底は2となる。前述の例に示すように、末端側に必要な中継バッファの数が16個の場合、親クロックツリーの段数mは以下の式によりm=5段と決定される。   The bottom of the log corresponds to the number of branches of the clock tree. In the above example, the bottom of the log is 2 because of the two-branch structure. As shown in the above example, when the number of relay buffers required on the terminal side is 16, the number m of stages of the parent clock tree is determined as m = 5 stages according to the following equation.

Figure 2011154537
Figure 2011154537

次に、処理装置13は、想定スキュー値記憶部141に格納されたクロックツリー性能評価結果を読み出し、クロックツリーの段数mに対応して想定されるスキュー値(以降、想定スキュー値と称す)dtを、図4のクロックツリー性能評価結果(想定スキュー値のテーブル)を参照して求める(ステップS1024)。前述の例に示すように、クロックツリーの段数mが5の場合、図4の表より想定スキュー値dtは400psとなる。なお、クロックツリー性能評価結果は、クロックツリー設計における評価実績等に基づいて、任意に設定される。   Next, the processing device 13 reads the clock tree performance evaluation result stored in the assumed skew value storage unit 141, and assumes a skew value corresponding to the number m of clock tree stages (hereinafter referred to as an assumed skew value) dt. Is obtained with reference to the clock tree performance evaluation result (assumed skew value table) in FIG. 4 (step S1024). As shown in the above example, when the number m of clock tree stages is 5, the assumed skew value dt is 400 ps from the table of FIG. The clock tree performance evaluation result is arbitrarily set based on the evaluation results in the clock tree design.

クロックツリーの段数mに応じた想定スキュー値が決定すると、処理装置13は、想定スキュー値dtと要求スキュー値とを比較する(ステップS1025)。ここで、要求スキュー値とは、設計するクロックツリーに許容される遅延時間を意味する。想定スキュー値dtが要求スキュー値より大きい場合、想定している2分岐構造のクロックツリーが要求スキュー値を満足しないものとして、処理装置13は、クロックツリーの段数mを一つ減算して(ステップS1026)、減算後のクロックツリーの段数mとクロックツリー性能評価結果とに基づいて、再度想定スキュー値dtを求める(ステップS1024)。   When the assumed skew value corresponding to the number m of clock tree stages is determined, the processing device 13 compares the assumed skew value dt with the requested skew value (step S1025). Here, the required skew value means a delay time allowed for the designed clock tree. If the assumed skew value dt is larger than the required skew value, the processor 13 decrements the number m of clock tree stages by assuming that the assumed two-branch structure clock tree does not satisfy the required skew value (step S1). S1026) Based on the clock tree stage number m after subtraction and the clock tree performance evaluation result, the assumed skew value dt is obtained again (step S1024).

前述の例に示すように、クロックツリーの段数m=5、想定スキュー値dt=400psにおいて、要求スキュー値が250psの場合、想定スキュー値dtの方が大きくなる。そのため、処理装置13は、クロックツリーの段数を一つ減算し、m=4の場合の想定スキュー値dt=300psをステップS1024で求める。そして、再度想定スキュー値dtと要求スキュー値の比較を行う(ステップS1025)。今度も想定スキュー値dt=300ps>要求スキュー値250psとなり、想定スキュー値dtの方が大きい値となる。そのため、処理装置13は、クロックツリーの段数をさらに一つ減算し(ステップS1026)、m=3としてクロックツリー性能評価結果を参照し、想定スキュー値を求める(ステップS1024)。この結果、クロックツリーの段数m=3であれば、想定スキュー値dt=200psとなり要求スキュー値250psより小さいため、次のステップS1027に移る。   As shown in the above example, when the required skew value is 250 ps when the number of clock tree stages m = 5 and the assumed skew value dt = 400 ps, the assumed skew value dt becomes larger. Therefore, the processing device 13 subtracts one stage of the clock tree and obtains an assumed skew value dt = 300 ps in the case of m = 4 in step S1024. Then, the assumed skew value dt and the requested skew value are compared again (step S1025). This time, the assumed skew value dt = 300 ps> the required skew value 250 ps, and the assumed skew value dt is larger. Therefore, the processing device 13 further subtracts the number of stages of the clock tree (step S1026), refers to the clock tree performance evaluation result with m = 3, and obtains an assumed skew value (step S1024). As a result, if the number of stages of the clock tree is m = 3, the assumed skew value dt = 200 ps, which is smaller than the required skew value 250 ps, and the process proceeds to the next step S1027.

次に、ステップS1023において求めた中継バッファの数nと中継バッファの段数mとに基づいて、ツリー分割部135が、対象としているクロックドメインを分割する分割数Jを以下の式で求める(ステップS1027)。そして、ツリー分割部135は、分割数に基づいて、親クロックツリーを複数のクロックツリーに分割する。   Next, based on the number n of relay buffers and the number m of relay buffers obtained in step S1023, the tree dividing unit 135 obtains the division number J for dividing the target clock domain by the following equation (step S1027). ). Then, the tree dividing unit 135 divides the parent clock tree into a plurality of clock trees based on the number of divisions.

Figure 2011154537
Figure 2011154537

前述の例に示すように、対象となるクロックドメインにおいて、2分岐構造としたクロックツリーの終端に必要な駆動バッファ数n=16、クロックツリーの段数m=3の場合、J=16/2の(3−1)乗=16/4=4分割となる。分割しなかった場合のクロックツリー(親クロックツリー200)を図5に示す。また、1つのクロックツリーのスキューを小さくする為、4分割した場合のクロックツリー2001〜2004を図6に示す。スキューの対象が320個から80個に低減されるので、想定スキュー値も小さくなる。   As shown in the above example, in the target clock domain, when the number of drive buffers n = 16 required for the end of the clock tree having a two-branch structure and the number m of clock tree stages m = 3, J = 16/2 (3-1) Power = 16/4 = 4 divisions. FIG. 5 shows a clock tree (parent clock tree 200) when not divided. Further, FIG. 6 shows clock trees 2001 to 2004 obtained by dividing the clock tree into four parts in order to reduce the skew of one clock tree. Since the skew target is reduced from 320 to 80, the assumed skew value is also reduced.

このとき、各クロックツリー2001〜2004の最上位側に配置されたバッファをグループバッファ204(2041〜2044)と称す。最上位側とは、クロックツリーの分岐点のうち、クロックが入力されるクロック端子201に最も近い分岐点の前段側(クロック端子201側)を意味する。クロックツリー2001には、グループバッファ2041が設けられる。同様に、クロックツリー2002にはグループバッファ2042、クロックツリー2003にはグループバッファ2043、クロックツリー2004にはグループバッファ2044が設けられる。なお、末端側に接続されるものは、フリップフロップ205に限られず、ラッチ、マクロ等の論理回路であってもよい。   At this time, the buffer arranged on the uppermost side of each of the clock trees 2001 to 2004 is referred to as a group buffer 204 (2041 to 2044). The most significant side means the preceding stage side (clock terminal 201 side) of the branch point closest to the clock terminal 201 to which the clock is input among the branch points of the clock tree. The clock tree 2001 is provided with a group buffer 2041. Similarly, a group buffer 2042 is provided in the clock tree 2002, a group buffer 2043 is provided in the clock tree 2003, and a group buffer 2044 is provided in the clock tree 2004. Note that what is connected to the terminal side is not limited to the flip-flop 205 but may be a logic circuit such as a latch or a macro.

以上のステップS1021〜S1027によって、処理装置13は、クロックツリーの構成を決定する。続いて、図2のフローチャートに戻り、ステップS103以降の工程について説明する。   Through the above steps S1021 to S1027, the processing device 13 determines the configuration of the clock tree. Subsequently, returning to the flowchart of FIG. 2, steps after step S103 will be described.

クロックツリーの構造が決定すると、処理装置13は、クロックツリーのバッファの配置を行う(ステップS103)。そして、配線部136は、図7〜10に示すように、フリップフロップ205から各グループバッファ2041〜2044までの配線を行う(ステップS104)。このときの各クロックツリー2001〜2004のスキュー値の遅延分布を図11〜図14にそれぞれ示す。図11〜図14においては、横軸はクロックツリーが有する各パスのスキュー値であり、縦軸は横軸で示されたスキュー値を有するパス数を意味している。前述したステップS1025において、想定スキュー値が要求スキュー値よりも小さくなるように設定されているため、図11〜図14に示すように、各クロックツリー2001〜2004の遅延分布曲線301〜304は、要求スキュー値の範囲内となる。   When the structure of the clock tree is determined, the processing device 13 arranges the buffer of the clock tree (step S103). Then, as illustrated in FIGS. 7 to 10, the wiring unit 136 performs wiring from the flip-flop 205 to each of the group buffers 2041 to 2044 (Step S <b> 104). The skew distributions of the skew values of the clock trees 2001 to 2004 at this time are shown in FIGS. 11 to 14, the horizontal axis indicates the skew value of each path included in the clock tree, and the vertical axis indicates the number of paths having the skew value indicated by the horizontal axis. In step S1025 described above, since the assumed skew value is set to be smaller than the required skew value, the delay distribution curves 301 to 304 of the clock trees 2001 to 2004 are as shown in FIGS. It is within the range of the requested skew value.

そして、配線部136は、各グループバッファ204からクロック端子201までの配線を行う(ステップS105)。ステップS103〜ステップS105によって配線が完了したクロックツリーを図15に示す。このとき、クロック端子201から各グループバッファ2041〜2044までの配線は、図15に示すように、階層的ではなく一束で接続することが好ましい。つまり、クロック端子201と各グループバッファ2041〜2044とが、1つの分岐点を介して接続されることとなる。そのため、クロック端子201からクロックツリー2001〜2004までの段数は変化しない。また、クロック端子201から各グループバッファ2041〜2044までに加わる遅延量が全て同じになる。その結果、クロックツリー全体の段数が制限内か否かを判断し、制限内でない場合にツリーの再構築をする必要がない。   The wiring unit 136 performs wiring from each group buffer 204 to the clock terminal 201 (step S105). FIG. 15 shows the clock tree in which the wiring has been completed in steps S103 to S105. At this time, the wiring from the clock terminal 201 to each of the group buffers 2041 to 2044 is preferably connected in a bundle rather than hierarchically as shown in FIG. That is, the clock terminal 201 and the group buffers 2041 to 2044 are connected via one branch point. Therefore, the number of stages from the clock terminal 201 to the clock trees 2001 to 2004 does not change. Further, the delay amounts applied from the clock terminal 201 to the group buffers 2041 to 2044 are all the same. As a result, it is determined whether or not the number of stages of the entire clock tree is within the limit, and if it is not within the limit, there is no need to reconstruct the tree.

次に、処理装置13は、クロック端子201からフリップフロップ205までの全てのパスの遅延時間を算出する(ステップS106)。遅延時間の算出結果に基づいて、処理装置13は、要求スキュー値を満たさないクロックツリーを検出する。具体的には、仮配線と実配線の差分や、ステップS105の配線によるスキュー見積からの遅延追加分により、要求スキュー値をオーバーしているクロックツリーのグループバッファを、グループバッファ2041〜2044の中から抽出する(ステップS107)。   Next, the processing device 13 calculates the delay time of all paths from the clock terminal 201 to the flip-flop 205 (step S106). Based on the calculation result of the delay time, the processing device 13 detects a clock tree that does not satisfy the required skew value. Specifically, the clock buffer group buffers that exceed the required skew value due to the difference between the temporary wiring and the actual wiring or the added delay from the skew estimation by the wiring in step S105 are stored in the group buffers 2041 to 2044. (Step S107).

図16〜図19に、全ての配線を完了したクロックツリー2001〜2004のスキュー値の遅延分布曲線の一例をそれぞれ示す。図16において、クロックツリー2001の遅延分布曲線301は、要求スキュー値のMAXをオーバーしている。同様に、図19のクロックツリー2004の遅延分布曲線304も要求スキュー値のMINを下回っている。一方、クロックツリー2002、2003の遅延分布曲線302、303は、要求スキュー値を満たしている。この場合、処理装置13によって、グループバッファ2041とグループバッファ2044が抽出される。   FIGS. 16 to 19 show examples of delay distribution curves of skew values of clock trees 2001 to 2004 in which all the wirings are completed. In FIG. 16, the delay distribution curve 301 of the clock tree 2001 exceeds the required skew value MAX. Similarly, the delay distribution curve 304 of the clock tree 2004 in FIG. 19 is also below the required skew value MIN. On the other hand, the delay distribution curves 302 and 303 of the clock trees 2002 and 2003 satisfy the required skew value. In this case, the group buffer 2041 and the group buffer 2044 are extracted by the processing device 13.

ステップS107において要求スキュー値を満たさないグループバッファ2041とグループバッファ2044が抽出されると、処理装置13は、当該グループバッファ2041、2044に対して要求値を満足する遅延調整バッファ206の挿入量を算出する(ステップS108)。なお、遅延調整バッファ206(遅延手段に対応する)とは、遅延時間が速くなる方向へシフトさせる高駆動型バッファ2061と、遅延時間が遅くなる方向へシフトさせる遅延バッファ2062との両方を意味する。   When the group buffer 2041 and the group buffer 2044 that do not satisfy the required skew value are extracted in step S107, the processing device 13 calculates the insertion amount of the delay adjustment buffer 206 that satisfies the required value for the group buffers 2041 and 2044. (Step S108). Note that the delay adjustment buffer 206 (corresponding to the delay means) means both the high-drive buffer 2061 that shifts in a direction in which the delay time is increased and the delay buffer 2062 that shifts in a direction in which the delay time is delayed. .

前述の例において、クロックツリー2001では、図16に示すように、クロックツリーのスキューが要求スキュー値のMAX値をオーバーしている。そのため、処理装置13は、クロックツリー2001のスキューを変えることなく、遅延時間が速くなる方向へシフトさせ、要求スキュー値を満足させる高駆動型バッファ2061の挿入量を算出する。なお、高駆動型バッファ2061は、遅延挿入部133によって、グループバッファ2041の入力ピンとクロック端子201との間に挿入される。つまり、遅延挿入部133は、クロックツリー2001の最上位側に高駆動型バッファ2061を挿入する。   In the above example, in the clock tree 2001, as shown in FIG. 16, the skew of the clock tree exceeds the MAX value of the requested skew value. Therefore, the processing device 13 shifts the delay time in the direction of increasing the delay time without changing the skew of the clock tree 2001, and calculates the insertion amount of the high drive buffer 2061 that satisfies the required skew value. Note that the high drive buffer 2061 is inserted between the input pin of the group buffer 2041 and the clock terminal 201 by the delay insertion unit 133. That is, the delay insertion unit 133 inserts the high drive type buffer 2061 on the uppermost side of the clock tree 2001.

同様に、クロックツリー2004では、要求スキュー値のMIN値をオーバーしている。そのため、処理装置13は、クロックツリー2004のスキューを変えることなく、遅延時間が遅くなる方向へシフトさせて要求スキュー値を満足させる遅延バッファ2062の挿入量を算出する。なお、遅延バッファ2062は、遅延挿入部133によって、グループバッファ2044の入力ピンとクロック端子201との間に挿入される。つまり、遅延挿入部133は、クロックツリー2004の最上位側に遅延バッファ2062を挿入する。   Similarly, in the clock tree 2004, the MIN value of the requested skew value is exceeded. Therefore, the processing device 13 calculates the insertion amount of the delay buffer 2062 that satisfies the requested skew value by shifting in the direction of delaying the delay time without changing the skew of the clock tree 2004. The delay buffer 2062 is inserted between the input pin of the group buffer 2044 and the clock terminal 201 by the delay insertion unit 133. That is, the delay insertion unit 133 inserts the delay buffer 2062 on the uppermost side of the clock tree 2004.

そして、遅延調整部134は、遅延調整バッファ206を挿入、あるいは中継バッファ203またはグループバッファ204の変更を行う(ステップS109)。つまり、遅延調整部134は、クロックツリー2001または2004全体として遅延時間を調整する。例えば、クロックツリー全体の遅延時間を速めたい時は、高駆動型バッファ2061を、遅くしたい時は遅延バッファ2062を挿入する。   Then, the delay adjustment unit 134 inserts the delay adjustment buffer 206 or changes the relay buffer 203 or the group buffer 204 (step S109). That is, the delay adjustment unit 134 adjusts the delay time of the clock tree 2001 or 2004 as a whole. For example, when it is desired to increase the delay time of the entire clock tree, the high drive type buffer 2061 is inserted, and when it is desired to delay the delay time, the delay buffer 2062 is inserted.

遅延調整バッファ206挿入後のクロックツリーの回路を図20に示す。上述したように、グループバッファ2041の入力ピンとクロック端子201との間に高駆動型バッファ2061が挿入され、グループバッファ2044の入力ピンとクロック端子201との間に遅延バッファ2062が挿入される。なお、遅延調整部134は、遅延調整バッファ206の挿入により遅延を調整しているが、遅延量が可変のバッファを用いて各クロックツリーのスキュー値を調整してもよい。   FIG. 20 shows a circuit of the clock tree after the delay adjustment buffer 206 is inserted. As described above, the high drive buffer 2061 is inserted between the input pin of the group buffer 2041 and the clock terminal 201, and the delay buffer 2062 is inserted between the input pin of the group buffer 2044 and the clock terminal 201. The delay adjustment unit 134 adjusts the delay by inserting the delay adjustment buffer 206, but the skew value of each clock tree may be adjusted using a buffer with a variable delay amount.

また、遅延調整を行ったクロックツリー2001の遅延分布を図21に、遅延調整を行ったクロックツリー2004の遅延分布を図22に示す。図21において、クロック端子201接続後、遅延調整バッファ206挿入前のクロックツリー2001の遅延分布曲線が、曲線3011である。それに対して、クロック端子201接続後、遅延調整バッファ206挿入後のクロックツリー2001の遅延分布曲線が曲線3012である。高駆動型バッファ2061の挿入によって、クロックツリー2001全体の遅延時間が速まっている。そして、高駆動型バッファ2061挿入後の遅延分布曲線3012は、要求スキュー値の範囲内に収まっている。   FIG. 21 shows the delay distribution of the clock tree 2001 after the delay adjustment, and FIG. 22 shows the delay distribution of the clock tree 2004 after the delay adjustment. In FIG. 21, the delay distribution curve of the clock tree 2001 after the connection of the clock terminal 201 and before the insertion of the delay adjustment buffer 206 is a curve 3011. On the other hand, a delay distribution curve of the clock tree 2001 after connection of the clock terminal 201 and insertion of the delay adjustment buffer 206 is a curve 3012. By inserting the high drive type buffer 2061, the delay time of the entire clock tree 2001 is accelerated. The delay distribution curve 3012 after the high drive buffer 2061 is inserted is within the required skew value range.

一方、クロックツリー2004における遅延調整について図22を用いて説明する。クロック端子201接続後、遅延調整バッファ206挿入前のクロックツリー2004の遅延分布曲線が、曲線3041である。それに対して、クロック端子201接続後、遅延調整バッファ206挿入後のクロックツリー2004の遅延分布曲線が曲線3042である。図21におけるクロックツリー2001と同様に、遅延バッファ2062が挿入されることによって、クロックツリー2004の遅延分布曲線が曲線3041から曲線3042へと移動している。これによって、クロックツリー2004のスキューも要求スキュー値の範囲内に収まっている。したがって、ステップS109の遅延調整によって、クロックツリー2001〜クロックツリー2004の遅延が、すべて要求スキュー値の範囲内に収まる。以上のステップによって本実施の形態にかかるレイアウト方法の処理は終了する。   On the other hand, delay adjustment in the clock tree 2004 will be described with reference to FIG. A delay distribution curve of the clock tree 2004 after connection of the clock terminal 201 and before insertion of the delay adjustment buffer 206 is a curve 3041. On the other hand, a delay distribution curve of the clock tree 2004 after connection of the clock terminal 201 and insertion of the delay adjustment buffer 206 is a curve 3042. Similar to the clock tree 2001 in FIG. 21, the delay distribution curve of the clock tree 2004 is moved from the curve 3041 to the curve 3042 by inserting the delay buffer 2062. As a result, the skew of the clock tree 2004 is also within the required skew value range. Therefore, all the delays of the clock tree 2001 to the clock tree 2004 are within the range of the requested skew value by the delay adjustment in step S109. With the above steps, the processing of the layout method according to the present embodiment is completed.

このように、本実施の形態にかかるレイアウト装置及びレイアウト方法においては、クロックツリー性能評価結果を参照し、想定スキュー値を用いてクロックツリーの配線を行う。そして、仮配線と実配線の差分等によって、スキュー値に誤差が生じ、要求スキュー値を満たさない場合には、遅延調整バッファ206の挿入等によって、当該誤差を解消する。そのため、クロックツリーの配線及び遅延調整バッファ206の挿入が完了すると、スキュー調整のためにクロックツリーのツリー構造は変化させなくてよい。つまり、配線後にツリー構造は変化しないためクロックツリー2001〜2004のスキュー値は変わらない。その結果、クロックツリーの末端側からクロック端子201までの配線工程は1回だけで済む。したがって、配線後に再度分割や再配線を繰り返すことなく、遅延調整バッファ206の調整のみによって簡潔なスキュー調整を短時間で行うことができる。   As described above, in the layout apparatus and layout method according to the present embodiment, the clock tree wiring is performed using the assumed skew value with reference to the clock tree performance evaluation result. Then, when the skew value has an error due to the difference between the temporary wiring and the actual wiring and the required skew value is not satisfied, the error is eliminated by inserting the delay adjustment buffer 206 or the like. Therefore, when the wiring of the clock tree and the insertion of the delay adjustment buffer 206 are completed, the tree structure of the clock tree does not have to be changed for skew adjustment. That is, since the tree structure does not change after wiring, the skew values of the clock trees 2001 to 2004 do not change. As a result, the wiring process from the end of the clock tree to the clock terminal 201 is only required once. Therefore, simple skew adjustment can be performed in a short time only by adjusting the delay adjustment buffer 206 without repeating division and rewiring again after wiring.

また、ツリー分割部135を備える構成により、クロックツリー全体のパスの数を削減することができる。そのため、スキューの対象を削減することとなり、クロック端子201からフリップフロップ205までの全てのパスの遅延時間を算出する時間を削減することができる。   In addition, the configuration including the tree dividing unit 135 can reduce the number of paths in the entire clock tree. Therefore, the number of skew targets is reduced, and the time for calculating the delay time of all paths from the clock terminal 201 to the flip-flop 205 can be reduced.

実施の形態2
本発明にかかる実施の形態2について説明する。図23に示した本実施の形態にかかるレイアウト装置2は、図1に示したレイアウト装置の構成に加えて、回路面積検出部137を備える。なお、その他の構成についてはレイアウト装置1と同様であるので、説明を省略する。
Embodiment 2
A second embodiment according to the present invention will be described. The layout apparatus 2 according to the present embodiment illustrated in FIG. 23 includes a circuit area detection unit 137 in addition to the configuration of the layout apparatus illustrated in FIG. Since other configurations are the same as those of the layout apparatus 1, description thereof is omitted.

続いて、本実施の形態にかかるレイアウト方法について、図24のフローチャートを用いて説明する。図24に示したフローチャートは、図3に示したフローチャートに加えて、ステップS201を備え、ステップS1024に替えてステップS202を備える。まず、実施の形態1において説明したように、キーボード11等を用いて、ネット情報、製品情報、クロックツリー性能評価結果、要求スキュー値(MIN、MAX)等の入力データを入力する(ステップS101)。このとき、本実施の形態においては、さらにセル設配置情報を入力する。セル配置情報とは、フリップフロップ等の論理回路がセル上にどのように配置されるかを示す情報である。   Next, the layout method according to the present embodiment will be described with reference to the flowchart of FIG. The flowchart shown in FIG. 24 includes step S201 in addition to the flowchart shown in FIG. 3, and includes step S202 instead of step S1024. First, as described in the first embodiment, input data such as net information, product information, clock tree performance evaluation results, required skew values (MIN, MAX), and the like are input using the keyboard 11 or the like (step S101). . At this time, in this embodiment, cell arrangement information is further input. The cell arrangement information is information indicating how a logic circuit such as a flip-flop is arranged on a cell.

次に、回路面積検出部137は、設計するクロックツリーが有するフリップフロップの配置面積Sを、セル配置情報に基づいて算出する(ステップS201)。図25を用いて、配置面積Sの算出方法を説明する。クロックツリーとの接続対象となるフリップフロップのセル配置情報の座標のX座標、Y座標を(X、Y)とすると、(Xmax−Xmin)×(Ymax−Ymin)で表される範囲を配置面積Sとする。図25においては、IC(Integrated Circuit)チップ401上における(Xmax−Xmin)×(Ymax−Ymin)の面積、すなわちS2が配置面積Sに相当する。   Next, the circuit area detecting unit 137 calculates the flip-flop arrangement area S of the clock tree to be designed based on the cell arrangement information (step S201). A method for calculating the arrangement area S will be described with reference to FIG. When the X coordinate and the Y coordinate of the cell arrangement information of the flip-flop to be connected to the clock tree are (X, Y), the range represented by (Xmax−Xmin) × (Ymax−Ymin) is the arrangement area. S. In FIG. 25, an area of (Xmax−Xmin) × (Ymax−Ymin) on an IC (Integrated Circuit) chip 401, that is, S2 corresponds to the arrangement area S.

以降のステップS1021〜ステップS1023については、実施の形態1と同様である。つまり、駆動バッファ202が駆動可能なフリップフロップ205の数Fを求め(ステップS1021)、そのFの値に基づいて、必要な駆動バッファ202の数を求める(ステップS1022)。そして、クロックツリーの段数を決定する(ステップS1023)。   The subsequent steps S1021 to S1023 are the same as those in the first embodiment. That is, the number F of flip-flops 205 that can be driven by the drive buffer 202 is obtained (step S1021), and the necessary number of drive buffers 202 is obtained based on the value of F (step S1022). Then, the number of clock tree stages is determined (step S1023).

次に、処理装置13は、想定スキュー値記憶部141に格納されたクロックツリー性能評価結果を読み出す。そして、回路面積検出部137がステップS201において検出した配置面積SとステップS103において決定された段数mとに基づいて、クロックツリー性能評価結果を参照し、想定スキュー値dtを求める(ステップS202)。具体的には、処理装置13は、図26に示すような表を参照して想定スキュー値dtを見積もる。なお、図26に示す表は一例であり、これに限られるものではない。   Next, the processing device 13 reads the clock tree performance evaluation result stored in the assumed skew value storage unit 141. Then, based on the layout area S detected by the circuit area detection unit 137 in step S201 and the number of stages m determined in step S103, the clock tree performance evaluation result is referred to and an assumed skew value dt is obtained (step S202). Specifically, the processing apparatus 13 estimates the assumed skew value dt with reference to a table as shown in FIG. The table shown in FIG. 26 is an example, and the present invention is not limited to this.

例えば、クロックツリーの段数mが5段であり、配置面積SがS2平方ミリメートルであるとすると、当該条件において想定されるスキュー値dtは400psとなる。   For example, assuming that the number of stages m of the clock tree is 5 and the arrangement area S is S2 square millimeters, the skew value dt assumed under this condition is 400 ps.

そして、処理装置13は、想定スキュー値dtと要求スキュー値とを比較する(ステップS1025)。その結果、想定スキュー値dtが要求スキュー値を満たしている場合には、ツリー分割部135が、クロックツリーを分割する(ステップS1027)。一方、想定スキュー値dtが要求スキュー値を満たさない場合は、処理装置13は、クロックツリーの段数mを一段減らし(ステップS1026)、再度クロックツリー性能評価結果を参照し、想定スキュー値dtを求める(ステップS202)。   Then, the processing device 13 compares the assumed skew value dt with the requested skew value (step S1025). As a result, when the assumed skew value dt satisfies the required skew value, the tree dividing unit 135 divides the clock tree (step S1027). On the other hand, when the assumed skew value dt does not satisfy the required skew value, the processing device 13 reduces the number m of clock tree stages by one (step S1026), and refers to the clock tree performance evaluation result again to obtain the assumed skew value dt. (Step S202).

以上によって、本実施の形態にかかるクロックツリー構造の決定が完了する(ステップS102)。なお、ステップS102以降の処理(ステップS103〜ステップS109)は、実施の形態1と同様であるため、説明を省略する。   Thus, the determination of the clock tree structure according to the present embodiment is completed (step S102). In addition, since the process after step S102 (step S103-step S109) is the same as that of Embodiment 1, description is abbreviate | omitted.

このように、本実施の形態にかかるレイアウト装置2及びレイアウト方法を用いると、想定スキュー値dtを求める際に配置面積Sがパラメータとして追加される。その結果、より正確な想定スキュー値dtを見積もることができる。   As described above, when the layout apparatus 2 and the layout method according to the present embodiment are used, the arrangement area S is added as a parameter when the assumed skew value dt is obtained. As a result, a more accurate estimated skew value dt can be estimated.

実施の形態3
本発明にかかる実施の形態3について説明する。本実施の形態にかかるレイアウト装置の構成は、実施の形態1と同様であるため、構成の説明は省略する。図27に本実施の形態にかかるレイアウト方法のフローチャートを示す。本実施の形態にかかるレイアウト方法は、実施の形態1のレイアウト方法に加えて、遅延バッファの配置(ステップS301)を備える。また、本実施の形態にかかるレイアウト方法は、実施の形態1にかかるレイアウト方法のステップS107〜ステップS109に替えて、ステップS302〜ステップS304を備える。
Embodiment 3
A third embodiment according to the present invention will be described. Since the configuration of the layout apparatus according to the present embodiment is the same as that of the first embodiment, description of the configuration is omitted. FIG. 27 shows a flowchart of the layout method according to the present embodiment. The layout method according to the present embodiment includes a delay buffer arrangement (step S301) in addition to the layout method of the first embodiment. The layout method according to the present embodiment includes steps S302 to S304 instead of steps S107 to S109 of the layout method according to the first embodiment.

本実施の形態にかかるレイアウト方法について説明する。データ入力(ステップS101)からクロックツリーの配置(ステップS103)までは、実施の形態1と同様であるため、説明を省略する。   A layout method according to the present embodiment will be described. Since the process from data input (step S101) to clock tree arrangement (step S103) is the same as that of the first embodiment, description thereof is omitted.

クロックツリー配置が完了すると、配線(ステップS104、105)が行われる前に、遅延挿入部133が、クロック端子201と各クロックツリーのグループバッファ204との間に遅延バッファ2062を配置する(ステップS301)。このとき、遅延挿入部133は、クロックツリー2001〜2004のスキュー値が要求スキュー値dtを上回る個数の遅延バッファ2062を配置する。   When the clock tree arrangement is completed, the delay insertion unit 133 arranges the delay buffer 2062 between the clock terminal 201 and the group buffer 204 of each clock tree before wiring (steps S104 and 105) is performed (step S301). ). At this time, the delay insertion unit 133 arranges the number of delay buffers 2062 in which the skew values of the clock trees 2001 to 2004 exceed the requested skew value dt.

次に、配線部136が、フリップフロップ205からグループバッファ204までの配線を行う(ステップS104)。図7〜10と同様に、クロックツリー2001〜2004の配線を示す図を図28〜31に示す。また、ステップS104において配線され、遅延バッファ2062の接続前のクロックツリー2001〜2004の遅延分布を図32〜図35に示す。このときは、未だ遅延バッファ2062は接続されていないため、クロックツリー2001〜2004の遅延分布は、いずれも要求スキュー値dtの範囲内である。   Next, the wiring unit 136 performs wiring from the flip-flop 205 to the group buffer 204 (step S104). As in FIGS. 7 to 10, FIGS. 28 to 31 are diagrams showing the wiring of the clock trees 2001 to 2004. FIG. Also, the delay distribution of the clock trees 2001 to 2004 wired in step S104 and before the delay buffer 2062 is connected is shown in FIGS. At this time, since the delay buffer 2062 is not yet connected, the delay distributions of the clock trees 2001 to 2004 are all within the range of the requested skew value dt.

そして、クロック端子201と各グループバッファ204とが、遅延バッファ2062を介して接続される(ステップS105)。そのときの回路図を図36に示す。ステップS105において配線が行われると、それぞれのクロックツリー2001〜2004のスキュー値には遅延バッファ2062によって遅延が生じる。   Then, the clock terminal 201 and each group buffer 204 are connected via the delay buffer 2062 (step S105). A circuit diagram at that time is shown in FIG. When the wiring is performed in step S105, the delay buffer 2062 causes a delay in the skew values of the clock trees 2001 to 2004.

処理装置13は、クロック端子201からフリップフロップ205までの全てのパスの遅延時間を算出する(ステップS106)。図37〜図40に、算出したクロックツリー2001〜2004の遅延分布曲線を示す。図37〜図40に示すように、遅延バッファ2062の挿入により生じた遅延によって、クロックツリー2001〜2004の全ての遅延分布曲線301〜304が、要求スキュー値のMAXを超えている。   The processing device 13 calculates the delay time of all paths from the clock terminal 201 to the flip-flop 205 (step S106). 37 to 40 show the calculated delay distribution curves of the clock trees 2001 to 2004. FIG. As shown in FIGS. 37 to 40, all delay distribution curves 301 to 304 of the clock trees 2001 to 2004 exceed the required skew value MAX due to the delay caused by the insertion of the delay buffer 2062.

遅延時間の算出結果に基づいて、処理装置13は、要求スキュー値のMAXをオーバーしたクロックツリーを検出し、当該クロックツリーのグループバッファ204を抽出する(ステップS302)。上述の例においては、全てのクロックツリーの遅延分布曲線が要求スキュー値のMAXをオーバーしているため、全てのグループバッファ2041〜2044が抽出される。   Based on the calculation result of the delay time, the processing device 13 detects a clock tree that exceeds the MAX of the requested skew value, and extracts the group buffer 204 of the clock tree (step S302). In the above example, since the delay distribution curves of all the clock trees exceed the required skew value MAX, all the group buffers 2041 to 2044 are extracted.

そして、処理装置13は、要求スキュー値のMAXをオーバーした遅延量を算出し、当該算出結果に基づいて、遅延バッファ2062の削除量を算出する(ステップS303)。その後、算出された遅延バッファ2062の削除量に応じて、遅延調整部134は、遅延バッファ2062を削除する(ステップS304)。   Then, the processing device 13 calculates a delay amount that exceeds the MAX of the requested skew value, and calculates a deletion amount of the delay buffer 2062 based on the calculation result (step S303). Thereafter, the delay adjusting unit 134 deletes the delay buffer 2062 according to the calculated deletion amount of the delay buffer 2062 (step S304).

上述の例において、遅延バッファ2062を削除した後のクロックツリーの回路図を図41に示す。ステップS105による配線後の遅延分布曲線を見ると、クロックツリー2001の遅延分布曲線301は、要求スキュー値のMAXを大きくオーバーしている(図37参照)。そのため、遅延調整部134は、遅延バッファ2062を3個削除する。同様に、クロックツリー2002、2003の遅延分布曲線302、303は、クロックツリー2001の遅延分布曲線301ほど要求スキュー値のMAXをオーバーしていないので(図38、39参照)、遅延調整部134は、クロックツリー2002、2003から、遅延バッファ2062を2個削除する。さらに、クロックツリー2004の遅延分布曲線304は、要求スキュー値のMAXを少しだけオーバーしているため(図40参照)、遅延調整部134は、遅延バッファ2062を1個削除する。このように、遅延調整部134は、予め挿入していた遅延バッファ2062から算出した遅延量に相当する遅延バッファ2062を削除する。   FIG. 41 shows a circuit diagram of the clock tree after the delay buffer 2062 is deleted in the above example. Looking at the delay distribution curve after wiring in step S105, the delay distribution curve 301 of the clock tree 2001 greatly exceeds the MAX of the requested skew value (see FIG. 37). Therefore, the delay adjustment unit 134 deletes three delay buffers 2062. Similarly, the delay distribution curves 302 and 303 of the clock trees 2002 and 2003 do not exceed the required skew value MAX as much as the delay distribution curve 301 of the clock tree 2001 (see FIGS. 38 and 39). The two delay buffers 2062 are deleted from the clock trees 2002 and 2003. Furthermore, since the delay distribution curve 304 of the clock tree 2004 slightly exceeds the required skew value MAX (see FIG. 40), the delay adjustment unit 134 deletes one delay buffer 2062. In this way, the delay adjustment unit 134 deletes the delay buffer 2062 corresponding to the delay amount calculated from the delay buffer 2062 inserted in advance.

ここで、遅延調整部134が、遅延バッファ2062の削除により、遅延を調整した後のクロックツリー2001〜2004の遅延分布曲線を図42〜図45に示す。クロックツリー2001〜2004全ての遅延分布曲線301〜304が要求スキュー値の範囲内に収まっている。以上により、本実施の形態にかかるレイアウト方法の処理が終了する。   Here, the delay distribution curves of the clock trees 2001 to 2004 after the delay adjusting unit 134 adjusts the delay by deleting the delay buffer 2062 are shown in FIGS. The delay distribution curves 301 to 304 of all the clock trees 2001 to 2004 are within the required skew value range. Thus, the process of the layout method according to the present embodiment is completed.

このように、本実施の形態にかかるレイアウト方法においては、グループバッファ204とクロック端子201との間に要求遅延時間を上回る個数の遅延バッファ2062を挿入しておき、遅延バッファ2062を削除することによって遅延調整を行う。そのため、遅延調整部134の遅延調整過程において、遅延値の増加はなく、遅延値の短縮のみなので遅延調整が一方向に決まる。また、調整する遅延量は、削除された遅延バッファ2062分と、分断された配線による遅延量のみとなる。その結果、想定する遅延削減量と、遅延調整後のクロックツリーの遅延削減量とは、高い確度で一致し、遅延調整の回数を削減することが出来る。したがって、短時間の遅延調整が可能となる。   As described above, in the layout method according to the present embodiment, the number of delay buffers 2062 exceeding the required delay time is inserted between the group buffer 204 and the clock terminal 201, and the delay buffer 2062 is deleted. Perform delay adjustment. Therefore, in the delay adjustment process of the delay adjustment unit 134, the delay value is not increased and only the delay value is shortened, so that the delay adjustment is determined in one direction. Further, the delay amount to be adjusted is only the delay amount due to the deleted delay buffer 2062 and the divided wiring. As a result, the expected delay reduction amount and the delay reduction amount of the clock tree after delay adjustment coincide with each other with high accuracy, and the number of delay adjustments can be reduced. Therefore, a short delay adjustment is possible.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。   Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.

1、2 レイアウト装置
11 キーボード
12 マウス
13 処理装置
14 記憶装置
15 表示装置
131 CPU
132 メモリ
133 遅延挿入部
134 遅延調整部
135 ツリー分割部
136 配線部
137 回路面積検出部
141 想定スキュー値記憶部
200 親クロックツリー
201 クロック端子
202 駆動バッファ
203 中継バッファ
204 グループバッファ
205 フリップフロップ
206 遅延調整バッファ
301〜304、3011、3012、3041、3042 遅延分布曲線
401 ICチップ
2001〜2004 クロックツリー
2041〜2044 グループバッファ
2061 高駆動型バッファ
2062 遅延バッファ
1, 2 Layout device 11 Keyboard 12 Mouse 13 Processing device 14 Storage device 15 Display device 131 CPU
132 Memory 133 Delay Insertion Unit 134 Delay Adjustment Unit 135 Tree Division Unit 136 Wiring Unit 137 Circuit Area Detection Unit 141 Assumed Skew Value Storage Unit 200 Parent Clock Tree 201 Clock Terminal 202 Drive Buffer 203 Relay Buffer 204 Group Buffer 205 Flip-Flop 206 Delay Adjustment Buffers 301 to 304, 3011, 3012, 3041, and 3042 Delay distribution curve 401 IC chip 2001 to 2004 Clock tree 2041 to 2044 Group buffer 2061 High drive buffer 2062 Delay buffer

Claims (10)

クロックツリーの段数に応じて予め定められた想定スキュー値を格納する想定スキュー値記憶手段と、
前記想定スキュー値が要求スキュー値以下である場合、当該クロックツリーの最上位側に遅延手段を挿入する遅延挿入手段と、
前記クロックツリーのスキュー値が前記要求スキュー値以下となるように、前記クロックツリーの配線後に、前記遅延手段の遅延を調整する遅延調整手段と、
を備えるレイアウト装置。
An assumed skew value storage means for storing an assumed skew value determined in advance according to the number of stages of the clock tree;
When the assumed skew value is less than or equal to the required skew value, a delay insertion unit that inserts a delay unit on the topmost side of the clock tree;
Delay adjusting means for adjusting the delay of the delay means after wiring of the clock tree so that the skew value of the clock tree is equal to or less than the required skew value;
A layout apparatus comprising:
親クロックツリーの末端側に配置された論理回路を駆動させる駆動手段の数と、前記駆動手段の数に応じた前記クロックツリーの段数とに基づいて、前記親クロックツリーから前記クロックツリーを分割するツリー分割手段をさらに備える請求項1に記載のレイアウト装置。   The clock tree is divided from the parent clock tree based on the number of driving means for driving the logic circuit arranged on the terminal side of the parent clock tree and the number of stages of the clock tree corresponding to the number of the driving means. The layout apparatus according to claim 1, further comprising a tree dividing unit. 前記想定スキュー値は、前記クロックツリーの段数に加え、前記論理回路が半導体基板上に配置される面積に応じて、予め定められている値である請求項1または2に記載のレイアウト装置。   The layout apparatus according to claim 1, wherein the assumed skew value is a value determined in advance according to an area in which the logic circuit is arranged on a semiconductor substrate in addition to the number of stages of the clock tree. 前記レイアウト装置は、クロックが出力されるクロック端子と前記クロックツリーとを配線する配線手段をさらに備え、
前記配線手段は、前記クロック端子と前記遅延手段とが、1つの分岐点を介して接続されるように配線を行う請求項1〜3のいずれか一項に記載のレイアウト装置。
The layout device further includes wiring means for wiring a clock terminal from which a clock is output and the clock tree,
The layout device according to claim 1, wherein the wiring unit performs wiring so that the clock terminal and the delay unit are connected through one branch point.
前記遅延挿入手段は、前記クロックツリーの配線前に、前記クロックツリーのスキュー値が前記要求スキュー値よりも大きくなるように、前記遅延手段を挿入する請求項1〜4のいずれか一項に記載のレイアウト装置。   The delay insertion means inserts the delay means before routing the clock tree so that the skew value of the clock tree is larger than the required skew value. Layout equipment. クロックツリーの段数に応じて予め定められた想定スキュー値を参照し、
前記想定スキュー値が要求スキュー値以下である場合、当該クロックツリーの最上位側に遅延手段を挿入し、
前記クロックツリーのスキュー値が前記要求スキュー値以下となるように、前記クロックツリーの配線後に、前記遅延手段の遅延を調整するレイアウト方法。
Refer to the assumed skew value determined in advance according to the number of stages of the clock tree,
When the assumed skew value is less than or equal to the required skew value, a delay means is inserted at the top of the clock tree,
A layout method for adjusting a delay of the delay means after wiring of the clock tree so that a skew value of the clock tree is equal to or less than the required skew value.
親クロックツリーの末端側に配置された論理回路を駆動させる駆動手段の数を決定し、
前記駆動手段の数に応じて、前記クロックツリーの段数を決定し、
前記駆動手段の数と前記クロックツリーの段数とに基づいて、前記親クロックツリーから前記クロックツリーを分割する請求項6に記載のレイアウト方法。
Determine the number of driving means for driving the logic circuit arranged at the end of the parent clock tree,
According to the number of the driving means, determine the number of stages of the clock tree,
The layout method according to claim 6, wherein the clock tree is divided from the parent clock tree based on the number of the driving units and the number of stages of the clock tree.
前記想定スキュー値は、前記クロックツリーの段数に加え、前記論理回路が半導体基板上に配置される面積に応じて、予め定められている値である請求項6または7に記載のレイアウト方法。   8. The layout method according to claim 6, wherein the assumed skew value is a value determined in advance according to an area where the logic circuit is arranged on a semiconductor substrate in addition to the number of stages of the clock tree. クロックが出力されるクロック端子と前記クロックツリーとの配線は、前記クロック端子と前記遅延手段とが、1つの分岐点を介して接続されるように配線を行う請求項6〜8のいずれか一項に記載のレイアウト方法。   The wiring between the clock terminal from which a clock is output and the clock tree is performed so that the clock terminal and the delay means are connected via one branch point. The layout method according to the item. 前記クロックツリーの配線前に、前記クロックツリーのスキュー値が前記要求スキュー値よりも大きくなるように、前記クロックツリーの最上位側に前記遅延手段を挿入する請求項6〜9のいずれか一項に記載のレイアウト方法。   10. The delay means is inserted in the uppermost side of the clock tree so that a skew value of the clock tree is larger than the required skew value before wiring of the clock tree. 11. The layout method described in 1.
JP2010015669A 2010-01-27 2010-01-27 Layout device and layout method Pending JP2011154537A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010015669A JP2011154537A (en) 2010-01-27 2010-01-27 Layout device and layout method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010015669A JP2011154537A (en) 2010-01-27 2010-01-27 Layout device and layout method

Publications (1)

Publication Number Publication Date
JP2011154537A true JP2011154537A (en) 2011-08-11

Family

ID=44540449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010015669A Pending JP2011154537A (en) 2010-01-27 2010-01-27 Layout device and layout method

Country Status (1)

Country Link
JP (1) JP2011154537A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058098A (en) * 2011-09-08 2013-03-28 Fujitsu Semiconductor Ltd Skew adjustment method and design support device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058098A (en) * 2011-09-08 2013-03-28 Fujitsu Semiconductor Ltd Skew adjustment method and design support device

Similar Documents

Publication Publication Date Title
JP4940013B2 (en) Simultaneous operation signal noise estimation method and program for semiconductor device
US20080129362A1 (en) Semiconductor device and method of designing semiconductor device
EP3239865A1 (en) Method for analyzing ir drop and electromigration of ic
US20180165405A1 (en) Timing based net constraints tagging with zero wire load validation
US9600620B2 (en) Repeater insertions providing reduced routing perturbation caused by flip-flop insertions
US8839061B2 (en) System and method for scan chain re-ordering
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
US20130055187A1 (en) Floorplan creation information generating method, floorplan creation information generating program, floorplan creation information generating device, floorplan optimizing method, floorplan optimizing program, and floorplan optimizing device
JP2005123537A (en) Semiconductor device and its manufacturing method
US8595668B1 (en) Circuits and methods for efficient clock and data delay configuration for faster timing closure
US7071754B2 (en) Semiconductor integrated circuit and manufacturing method
US8381149B2 (en) Timing analysis apparatus, timing analysis method, and timing analysis program
JP2011154537A (en) Layout device and layout method
JP2010212377A (en) Semiconductor integrated circuit designing device and semiconductor integrated circuit designing method
US20080079468A1 (en) Layout method for semiconductor integrated circuit
US7844935B2 (en) Wiring design system of semiconductor integrated circuit, semiconductor integrated circuit, and wiring design program
CN117151015B (en) Integrated circuit layout wiring method, device and integrated circuit chip
US7519926B2 (en) Semiconductor device and method for designing the same
JP2005322694A (en) Method for designing layout of semiconductor integrated circuit and its fabrication process
JP2006294707A (en) Semiconductor integrated circuit and method of wiring the same
JP3644413B2 (en) Element and wiring arrangement determination method
JP2004241699A (en) Design method of semiconductor integrated circuit device
JP2008052659A (en) Hold error prevention method and hold error prevention program in semiconductor integrated circuit design
JP5883633B2 (en) Layout apparatus and layout method
CN112257379A (en) Method for correcting circuit clock delay