JP2006107206A - Semiconductor integrated circuit design method - Google Patents

Semiconductor integrated circuit design method Download PDF

Info

Publication number
JP2006107206A
JP2006107206A JP2004294145A JP2004294145A JP2006107206A JP 2006107206 A JP2006107206 A JP 2006107206A JP 2004294145 A JP2004294145 A JP 2004294145A JP 2004294145 A JP2004294145 A JP 2004294145A JP 2006107206 A JP2006107206 A JP 2006107206A
Authority
JP
Japan
Prior art keywords
clock
group
flip
groups
semiconductor integrated
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
JP2004294145A
Other languages
Japanese (ja)
Inventor
Toshiki Onishi
俊樹 大西
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004294145A priority Critical patent/JP2006107206A/en
Publication of JP2006107206A publication Critical patent/JP2006107206A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a semiconductor integrated circuit design method that can reduce a clock skew by deterring the influence of variations such as variations in transistor characteristics. <P>SOLUTION: According to cell placement information, a plurality of flip-flops connected to the same clock net are divided into first groups of a circuit scale and shape in which a clock skew can be expected to converge at a predetermined threshold or lower. Grouping buffers for driving FFs are added to the groups respectively to generate first clock trees. Delay elements are inserted before the grouping buffers and hard macros respectively. Signal connections are examined among the first groups and others. First groups, or first groups and hard macros are grouped in descending order of signal connection degree into second groups. Relay buffers for driving a cell supplying a clock are added before the second groups to generate a second clock tree between a clock source of the clock net and the delay elements of the first groups. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、半導体集積回路の設計方法に関し、特にASIC(Application Specified Integrated Circuit)やシステムLSI(Large Scale Integration)等の大規模な半導体集積回路のクロックツリー生成方法に関するものである。   The present invention relates to a semiconductor integrated circuit design method, and more particularly to a clock tree generation method for a large-scale semiconductor integrated circuit such as an ASIC (Application Specified Integrated Circuit) or a system LSI (Large Scale Integration).

半導体集積回路はプロセスの微細化の進展により、非常に大規模な製品の実現が可能となった。また半導体集積回路のレイアウト設計に用いる自動配置配線ツールの性能も飛躍的に向上しており、より大規模な回路を扱うことが可能となっている。そのため、より大規模な半導体集積回路のレイアウト設計方法を確立することの重要性が高まってきている。   With the progress of process miniaturization, semiconductor integrated circuits have become possible to realize very large-scale products. In addition, the performance of the automatic placement and routing tool used for designing the layout of a semiconductor integrated circuit has been dramatically improved, and a larger scale circuit can be handled. Therefore, it is becoming more important to establish a layout design method for a larger scale semiconductor integrated circuit.

近年の半導体集積回路は、フリップフロップ(以下、FFと略す。)と、SRAM(Static Random Access Memory)、ROM(Read Only Memory)等のハードマクロを1つのクロックに同期させて動かす同期設計を行うことが多くなっている。同期回路では、クロックソースから各FFまでのクロック信号の伝播遅延時間差、即ちクロックスキューが大きいことは誤動作発生や、高速化の妨げの原因となる。また微細化が進んだプロセスでは、製造におけるトランジスタ特性のばらつきが原因で半導体集積回路の誤動作が起こる可能性が高くなる。特にクロックラインがばらつきの影響を受けやすい構成である場合、これは一層顕著となる。そのため、より大規模な半導体集積回路において、クロックスキューの低減と、トランジスタ特性のばらつきによるクロックスキューの変動に起因する誤動作の防止とを考慮したクロックライン設計が非常に重要になる。   2. Description of the Related Art Recent semiconductor integrated circuits perform a synchronous design in which a hard macro such as a flip-flop (hereinafter abbreviated as FF), an SRAM (Static Random Access Memory), a ROM (Read Only Memory), or the like is synchronized with one clock. A lot is happening. In the synchronous circuit, the difference in propagation delay time of the clock signal from the clock source to each FF, that is, the large clock skew, causes malfunctions and hinders speeding up. In the process of miniaturization, there is a high possibility that a malfunction of the semiconductor integrated circuit occurs due to variations in transistor characteristics in manufacturing. This is even more noticeable especially when the clock line is susceptible to variations. Therefore, in a larger-scale semiconductor integrated circuit, clock line design that takes into account the reduction of clock skew and the prevention of malfunction caused by fluctuations in clock skew due to variations in transistor characteristics becomes very important.

クロックスキューを低減するレイアウト方法として、一般的にはクロックツリー生成を行う方法が用いられている。以下に通常のクロックツリー生成について説明する。   As a layout method for reducing clock skew, a method of generating a clock tree is generally used. The normal clock tree generation will be described below.

最初にFF群を負荷容量、即ちFFの入力容量と配線容量の和、が均等になるように分割し、分割したクラスタ毎にそれらを駆動する中継バッファを追加する。中継バッファの配置位置は、追加した中継バッファから各FFまでの負荷がそれぞれ等しくなるように、FFの重心等に決定する。次に追加した中継バッファに対し、同様にクラスタ処理と中継バッファの挿入を繰り返し行い、クロックソースからFFまでの間にツリー状にクロック経路を生成する。   First, the FF group is divided so that the load capacity, that is, the sum of the input capacity and the wiring capacity of the FF becomes equal, and a relay buffer that drives them is added to each divided cluster. The arrangement position of the relay buffer is determined at the center of gravity of the FF so that the loads from the added relay buffer to each FF are equal. Next, cluster processing and insertion of the relay buffer are repeated for the added relay buffer in the same manner, and a clock path is generated in a tree shape from the clock source to the FF.

生成したクロックツリーは、各階層において負荷容量を等しく分割しているため、同じ階層の中継バッファに同一のセルを用いれば、その階層における全ての中継バッファの遅延時間は等しくなるため、クロックスキューを低減することが可能となる。   Since the generated clock tree divides the load capacity equally in each layer, if the same cell is used for the relay buffer in the same layer, the delay time of all the relay buffers in that layer will be equal, so the clock skew is reduced. It becomes possible to reduce.

レイアウト設計の際に実際にクロックスキューを低減するためには、さらに負荷容量が詳細配線を実施した後に所望の値となるようにする等の対処が必要と考えられる。また負荷容量を均一にすることが難しい場合等は、負荷に応じた駆動能力の中継バッファを用いる方法が考えられるが、この場合も詳細配線を実施した後に、負荷容量と駆動能力のバランスがとれている必要がある。これらが実現できないと、より大規模な半導体集積回路においては、クロックラインに各階層の遅延時間の差が蓄積していくため、最終的にクロックスキューは大きくなってしまう。   In order to actually reduce clock skew during layout design, it is considered necessary to take measures such that the load capacitance becomes a desired value after detailed wiring is performed. In addition, when it is difficult to make the load capacity uniform, a method using a relay buffer with a driving capacity corresponding to the load can be considered, but in this case as well, after carrying out detailed wiring, the load capacity and the driving capacity can be balanced. Need to be. If these cannot be realized, in a larger-scale semiconductor integrated circuit, the difference in delay time of each layer is accumulated in the clock line, so that the clock skew eventually becomes large.

クロックスキュー低減のための第1の例として特許文献1では、基本ゲート部をFF領域とFF以外の論理ゲート領域に分割して配置し、FF領域はFFのみを格子状に規則正しく配置し、クロックツリーシンセシスはFF領域のFFのクロックラインに限定して適用している。この方法を用いると、FFを負荷が均一になるように分割し、重心にバッファを挿入することが容易であり、回路規模やチップサイズの影響を受けることなく、クロックスキューの低減が可能である。   In Patent Document 1, as a first example for reducing clock skew, a basic gate portion is divided and arranged in an FF region and a logic gate region other than FF, and only FFs are regularly arranged in a lattice shape in the FF region. The tree synthesis is applied only to the FF clock line in the FF region. If this method is used, it is easy to divide the FF so that the load is uniform and insert a buffer at the center of gravity, and the clock skew can be reduced without being affected by the circuit scale or chip size. .

また第2の例として特許文献2では、バイナリツリー状のクロック配線経路の分岐点を一旦設定した後、共通の親分岐点を持つ兄弟分岐点間を結線し、その実配線経路上でRCディレイのバランスがとれるところを新たな親分岐点位置として更新し、これをボトムアップに繰り返して詳細配線経路を決定する。またバッファセル詳細配置位置決定後、同一階層でのディレイを等しくするようバッファセル近傍の経路に迂回部分を含ませるようにしている。また詳細配線経路の通過を許さないセルをクロックの詳細配線経路と交わらない位置に変更している。この方法では、階層毎に遅延時間が最適化され、かつ詳細配線の負荷容量も均一にしやすく、クロックラインの伝播遅延時間の削減とクロックスキューの低減が可能となる。   As a second example, in Patent Document 2, a branch point of a binary tree-like clock wiring path is set once, and then a sibling branch point having a common parent branch point is connected, and an RC delay is set on the actual wiring path. A place where balance is achieved is updated as a new parent branch point position, and this is repeated bottom-up to determine a detailed wiring path. In addition, after the buffer cell detailed arrangement position is determined, a detour portion is included in the route in the vicinity of the buffer cell so as to equalize the delay in the same layer. In addition, the cells that are not allowed to pass through the detailed wiring path are changed to positions that do not intersect with the detailed wiring path of the clock. In this method, the delay time is optimized for each layer, the load capacity of the detailed wiring is easily uniformed, and the propagation delay time of the clock line can be reduced and the clock skew can be reduced.

また第3の例として特許文献3では、クロックスキューを少なくするため、クロックネットに所定の機能素子に加えて、少なくとも1つのダミー素子を付加し、各クロックネットの負荷容量と配線長が一致、若しくは近い値になるようにしている。この方法も負荷が均一になりやすいので、クロックスキューの低減が可能である。   As a third example, in Patent Document 3, in order to reduce clock skew, at least one dummy element is added to a clock net in addition to a predetermined functional element, and the load capacity and wiring length of each clock net match. Alternatively, the values are close to each other. Since this method also tends to make the load uniform, the clock skew can be reduced.

また近年の微細化プロセスでの半導体集積回路の設計では、チップ内でのトランジスタ特性のばらつきの影響についても考慮することが重要である。ばらつきを考慮したタイミング解析について、以下に簡単に説明する。   In designing a semiconductor integrated circuit in a recent miniaturization process, it is important to consider the influence of variations in transistor characteristics within a chip. The timing analysis considering the variation will be briefly described below.

図6(a)、図6(b)は従来の半導体集積回路の設計方法におけるタイミング解析を説明するための図であり、図において、FF51、FF61にはクロック入力端子64から入力されたクロックが中継バッファ63a〜63dを経て入力される。FF52、FF62にはクロック入力端子64から入力されたクロックが、中継バッファ63a、63e〜63gを経て入力される。FF51のデータはFF52に入力され、FF61のデータはLogic65を介してFF62へ入力される。T1はデータ送り側のクロックパスの伝達遅延時間、T2はデータ送り側のデータパスの伝達遅延時間、T3はデータ受け側のクロックパスの伝達遅延時間である。   FIGS. 6A and 6B are diagrams for explaining timing analysis in a conventional method for designing a semiconductor integrated circuit. In the figure, clocks input from a clock input terminal 64 are input to FF51 and FF61. It is input via the relay buffers 63a to 63d. The clocks input from the clock input terminal 64 are input to the FFs 52 and FF62 through the relay buffers 63a and 63e to 63g. The data of FF51 is input to FF52, and the data of FF61 is input to FF62 via Logic65. T1 is the transmission delay time of the clock path on the data sending side, T2 is the transmission delay time of the data path on the data sending side, and T3 is the transmission delay time of the clock path on the data receiving side.

図6(a)において、通常のタイミング検証方法でFF52のホールドタイムを検証する場合は、FF52の入力ピンDのホールドタイムをHとすると、FF52の入力ピンDにおけるホールドタイムマージンは、
ホールドタイムマージン=T1+T2−T3−H (式1)
と表される。ホールドタイムマージン≧0であれば誤動作は発生しない。
In FIG. 6A, when the hold time of the FF 52 is verified by a normal timing verification method, when the hold time of the input pin D of the FF 52 is H, the hold time margin at the input pin D of the FF 52 is
Hold time margin = T1 + T2-T3-H (Formula 1)
It is expressed. If the hold time margin ≧ 0, no malfunction occurs.

トランジスタ特性のばらつき(以下、オンチップ変動と称す)を考慮したタイミング解析では、FF52のホールドタイムマージン´は、
ホールドタイムマージン´=(T1+T2)*[係数1]−T3*[係数2]−H (式2)
と表される。ここで係数1=1.00、係数2=1.10のように設定し、クロックラインとデータパスの伝播遅延時間にばらつきを与える。この場合は10%重み付けしたことになる。ホールドタイムマージン´≧0であれば誤動作は発生しない。
In the timing analysis considering the variation in transistor characteristics (hereinafter referred to as on-chip variation), the hold time margin 'of the FF 52 is
Hold time margin '= (T1 + T2) * [coefficient 1] -T3 * [coefficient 2] -H (Formula 2)
It is expressed. Here, the coefficient 1 is set to 1.00 and the coefficient 2 is set to 1.10 so that the propagation delay times of the clock line and the data path are varied. In this case, 10% is weighted. If the hold time margin '≧ 0, no malfunction occurs.

次に図6(b)において、FF62のセットアップマージンは、図6(a)と同じものは同一の符号を用い、クロック周期をTP、FF62のセットアップタイムをSとすると、
セットアップマージン=TP+T3−(T1+T2)−S (式3)
と表される。セットアップマージン≧0であれば誤動作は発生しない。
Next, in FIG. 6B, the setup margin of the FF 62 is the same as that in FIG. 6A using the same reference symbol, the clock cycle is TP, and the setup time of the FF 62 is S
Setup margin = TP + T3- (T1 + T2) -S (Formula 3)
It is expressed. If the setup margin ≧ 0, no malfunction occurs.

またオンチップ変動解析でのFF62のセットアップマージン´は、
セットアップマージン´=TP+T3*[係数4]−(T1+T2) *[係数3]−S (式4)
と表される。ここで係数3=1.10、係数4=1.00のように設定し、クロックラインとデータパスの伝播遅延時間等にばらつきを与える。この場合は10%重み付けしたことになる。セットアップマージン´≧0であれば誤動作は発生しない。
In addition, the setup margin of FF62 in the on-chip fluctuation analysis is
Setup margin '= TP + T3 * [coefficient 4]-(T1 + T2) * [coefficient 3] -S (Formula 4)
It is expressed. Here, the coefficient 3 is set to 1.10 and the coefficient 4 is set to 1.00, and the propagation delay time of the clock line and the data path is varied. In this case, 10% is weighted. If the setup margin '≧ 0, no malfunction occurs.

式2,式4からわかるとおり、クロックラインの分岐点からデータの送受信をするFFのクロック入力端子までの距離が長くなるほど、T1、T3の値が大きくなるため、オンチップ変動タイミング解析ではホールドマージン、セットアップマージンのいずれも不利になる。したがってクロック信号の伝播遅延時間を削減することが、ばらつきの対策として有効と考えられる。回路規模が大きく、クロック信号の伝播遅延時間の削減が難しい場合は、FF数の上限を設定し、予めその範囲内で機能ブロック毎にクロックを分割するようにネットリストを作成した上で、レイアウトを行う方法が考えられる。
特許第2850945号明細書 特許第2695078号明細書 特開平5−206414号公報
As can be seen from Equations 2 and 4, the longer the distance from the clock line branch point to the clock input terminal of the FF that transmits and receives data, the larger the values of T1 and T3. Any of the setup margins will be disadvantageous. Therefore, it is considered that reducing the propagation delay time of the clock signal is effective as a countermeasure for variation. If the circuit scale is large and it is difficult to reduce the propagation delay time of the clock signal, set an upper limit on the number of FFs and create a netlist in advance to divide the clock into functional blocks within that range. A way to do this is conceivable.
Japanese Patent No. 2850945 Japanese Patent No. 2695078 JP-A-5-206414

しかしながら、前述のような通常のクロックツリー生成では、回路規模がより大きく、またセルの配置領域が複雑な形状になるほど、負荷が均一になるようにクラスタ処理を行うことが難しくなるため、クロックスキューの低減ができなくなるという問題がある。   However, in the normal clock tree generation as described above, the larger the circuit scale and the more complicated the cell arrangement area, the more difficult it is to perform cluster processing so that the load is uniform. There is a problem that it becomes impossible to reduce this.

また、クロックスキュー低減について特許文献1に記載されている方法では、FFを予め決めた領域内に格子状に配置することしかできず、かつFF以外の論理セルも別の専用領域にしか配置できないため、FFと論理セル間の距離が長くなり、FFのデータ信号の遅延が大きくなる。そのためタイミング制約を満たせない場合があると考えられる。   Further, according to the method described in Patent Document 1 regarding clock skew reduction, FFs can only be arranged in a grid in a predetermined area, and logic cells other than FFs can be arranged only in another dedicated area. Therefore, the distance between the FF and the logic cell is increased, and the delay of the data signal of the FF is increased. For this reason, it is considered that the timing constraint may not be satisfied.

また、FF領域にはFF間の信号とFFと論理セル間の信号が集まるため、配線混雑が発生する可能性があり、そのための配線領域を確保すると、チップ面積の増加につながるという問題がある。   Further, since signals between FFs and signals between FFs and logic cells are gathered in the FF region, there is a possibility that wiring congestion may occur, and securing a wiring region for that purpose leads to an increase in chip area. .

また、特許文献2に示されている方法では、各中継バッファの負荷容量を等しくするために、クロック配線を迂回させているため、配線混雑が発生する可能性があるという問題がある。   Further, the method disclosed in Patent Document 2 has a problem that wiring congestion may occur because the clock wiring is bypassed in order to equalize the load capacity of each relay buffer.

また、特許文献3に示されているように、クロックネットを駆動するバッファの負荷容量を等しくするためにダミー素子を追加する方法を用いると、そのダミー素子を配置するための領域が必要になり、またダミー素子とバッファを接続するための配線を追加することにより配線混雑が起こる可能性もあり、チップ面積の増加が発生するという問題がある。   Further, as shown in Patent Document 3, if a method of adding a dummy element is used in order to equalize the load capacity of the buffer that drives the clock net, an area for arranging the dummy element is required. In addition, there is a possibility that wiring congestion may occur due to the addition of wiring for connecting the dummy element and the buffer, resulting in an increase in chip area.

また、チップ内でのトランジスタ特性のばらつきの影響を緩和するために、大規模な半導体集積回路において、予め機能ブロック毎にクロックを分割するようにネットリストを作成した上で、レイアウトを行う方法では、実際にタイミング制約を用いて自動配置を行うと、入力クロックが同じ機能ブロックのFF群のうち、他の機能ブロックとの間でタイミング余裕度が少ないFF等が、データの送受信をする他の機能ブロックのFFの近くに配置されることがあり、入力クロックが同一の機能ブロック内のFFが分散されて配置されていると、その機能ブロックのクロックスキューが大きくなり、問題となることがある。   Also, in order to alleviate the effects of variations in transistor characteristics within a chip, in a large-scale semiconductor integrated circuit, a netlist is created in advance so that clocks are divided for each functional block, and then a layout method is used. When automatic placement is actually performed using timing constraints, among FF groups of functional blocks having the same input clock, FFs having a small timing margin with other functional blocks are used to transmit / receive data. It may be placed near the FF of the functional block, and if the FFs in the same functional block with the same input clock are distributed and placed, the clock skew of the functional block may increase, which may be a problem. .

本発明は、上記のような問題点を解消するためになされたものであり、トランジスタ特性のばらつきや、配線容量、配線抵抗等のばらつきの影響を受けにくく、クロックスキューを低減させることができる半導体集積回路設計方法を提供することを目的とする。   The present invention has been made to solve the above-described problems, and is a semiconductor that is less susceptible to variations in transistor characteristics, wiring capacitance, wiring resistance, and the like and can reduce clock skew. An object is to provide an integrated circuit design method.

本発明に係る半導体集積回路設計方法は、クロックスキューの閾値を設定する工程と、セルの配置情報に基づき、クロックスキューが、前記設定した閾値以下に収束することが推定される回路規模及び形状となるよう、同一のクロックネットに接続されている複数のフリップフロップを複数の第1のグループに分割し、該第1のグループ毎に、前記グループ化したフリップフロップの前段にグループ化バッファを追加する第1のグループ化工程と、前記グループ化バッファとフリップフロップとの間にクロックツリーを生成する第1のクロックツリー生成工程と、前記グループ化バッファの前段に遅延素子を挿入する遅延素子挿入工程と、前記第1のグループ間のクロックを除く信号の接続を調べる工程と、前記信号の接続を調べる工程により得られた信号の接続情報に基づき、前記信号の接続の度合いが大きい順に複数の前記第1のグループをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとし、該第2のグループにクロックを供給しているセルを駆動する中継バッファを前段に追加し、該追加した中継バッファに対して、前記第2のグループ化とその前段へ中継バッファを追加する処理とを繰り返し行うことにより、前記クロックネットのクロックソースと前記第1のグループの遅延素子との間にクロックツリーを生成する第2のクロックツリー生成工程と、を備えるようにしたものである。   The method for designing a semiconductor integrated circuit according to the present invention includes a step of setting a threshold value of a clock skew, and a circuit scale and a shape estimated that the clock skew converges below the set threshold value based on cell arrangement information. The plurality of flip-flops connected to the same clock net are divided into a plurality of first groups, and a grouping buffer is added to the preceding stage of the grouped flip-flops for each first group. A first grouping step, a first clock tree generating step for generating a clock tree between the grouping buffer and the flip-flop, and a delay element inserting step for inserting a delay element in the previous stage of the grouping buffer; , Examining the connection of signals excluding the clock between the first groups, and examining the connection of the signals. Based on the obtained signal connection information, a combination of the plurality of first groups is determined in descending order of the signal connection degree, and a group obtained by the combination is set as a second group in the next hierarchy. , Adding a relay buffer for driving a cell supplying a clock to the second group to the previous stage, and adding the relay buffer to the second group and the preceding stage for the added relay buffer Is repeated, and a second clock tree generation step of generating a clock tree between the clock source of the clock net and the delay element of the first group is provided.

また、上記半導体集積回路設計方法において、前記第2のクロックツリー生成工程は、前記第1のグループ間のクロックを除く信号の接続情報に基づき、前記信号の接続の度合いに応じた前記階層的グループ化により追加する中継バッファの段数を設定する、信号接続を考慮する階層数設定工程を備え、前記信号の接続の度合いに応じて前記階層数設定工程により設定した段数の中継バッファを追加し、最下層のグループに追加された前記中継バッファの配置情報に基づいて、前記クロックネットのクロックソースと前記最下層のグループに追加された中継バッファ間のクロックスキューが最小となるように、前記第2のクロックツリーを生成するようにしたものである。   In the semiconductor integrated circuit design method, the second clock tree generation step includes the hierarchical group corresponding to the degree of signal connection based on signal connection information excluding the clock between the first groups. A layer number setting step that considers signal connection and sets the number of relay buffer stages to be added by adding a relay buffer having the number of stages set by the layer number setting step according to the degree of signal connection. Based on the arrangement information of the relay buffer added to the lower layer group, the second clock is set so that the clock skew between the clock source of the clock net and the relay buffer added to the lowermost group is minimized. A clock tree is generated.

また、上記半導体集積回路設計方法において、前記第2のクロックツリーを生成する工程の、前記第1のグループ間のクロックを除く信号の接続情報に基づき、前記信号の接続の度合いに応じた前記階層的グループ化において、該グループ化の対象を1つ上の階層において隣接するグループに限定したものである。   In the semiconductor integrated circuit design method, the hierarchy corresponding to the degree of signal connection based on signal connection information excluding the clock between the first groups in the step of generating the second clock tree. In target grouping, the grouping target is limited to adjacent groups in the next higher hierarchy.

また、上記半導体集積回路設計方法において、前記第1のグループ間のクロックを除く信号のタイミング余裕度を調べる工程を備え、該タイミング余裕度を調べる工程により得られるタイミング余裕度の情報に基づき、前記タイミング余裕度が小さい順に、複数の前記第1のグループをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとするようにしたものである。   The semiconductor integrated circuit design method further includes a step of examining a timing margin of a signal excluding the clock between the first groups, and based on timing margin information obtained by the step of examining the timing margin, A combination of a plurality of the first groups is determined in ascending order of timing margin, and a group obtained by the combination is set as a second group in the next hierarchy.

また、上記半導体集積回路設計方法において、前記第1のグループ化工程において、フリップフロップ間のクロックを除く信号の接続とタイミング余裕度を調べ、該信号の接続情報とタイミング余裕度の情報に基づき、信号接続の多いフリップフロップ、及びタイミング余裕度の小さいフリップフロップが同一のグループとなるように、第1のグループを決定するようにしたものである。   Further, in the semiconductor integrated circuit design method, in the first grouping step, the signal connection and timing margin excluding the clock between the flip-flops are examined, and based on the signal connection information and timing margin information, The first group is determined so that flip-flops with many signal connections and flip-flops with a small timing margin are in the same group.

また、上記半導体集積回路設計方法において、前記グループ化バッファとフリップフロップとの間に生成するクロックツリーのバッファの段数が所定の範囲内となるように設定し、かつ、前記クロックネットのクロックソースから全フリップフロップまでのセルの段数の合計が所定の範囲内となるように設定する段数設定工程を備えているようにしたものである。   In the semiconductor integrated circuit design method, the number of clock tree buffers generated between the grouping buffer and the flip-flop is set to be within a predetermined range, and the clock source of the clock net is used. A stage number setting step for setting the total number of cell stages up to all flip-flops to be within a predetermined range is provided.

また、上記半導体集積回路設計方法において、フリップフロップの一部を、回路素子に置き換えるようにしたものである。   In the semiconductor integrated circuit design method, a part of the flip-flop is replaced with a circuit element.

また、上記半導体集積回路設計方法において、前記回路素子を、ラッチ、またはハードマクロとするようにしたものである。   In the semiconductor integrated circuit design method, the circuit element is a latch or a hard macro.

また、上記半導体集積回路設計方法において、前記回路素子を単独で第1のグループとするようにしたものである。   In the semiconductor integrated circuit design method, the circuit elements are singly formed into a first group.

また、上記半導体集積回路設計方法において、前記回路素子としてハードマクロを含み、前記ハードマクロ内部にフリップフロップまたはラッチが存在する場合に、ハードマクロのクロック入力端子からハードマクロ内部のフリップフロップまたはラッチまでの伝播遅延時間とバッファ段数とを識別するようにしたものである。   In the semiconductor integrated circuit design method, when the circuit element includes a hard macro and a flip-flop or a latch exists in the hard macro, from the clock input terminal of the hard macro to the flip-flop or latch in the hard macro The propagation delay time and the number of buffer stages are identified.

また、上記半導体集積回路設計方法において、前記第2のクロックツリー生成工程において、前記中継バッファの負荷容量の制限値を設定する工程を備えるようにしたものである。   The semiconductor integrated circuit design method may further include a step of setting a limit value of a load capacity of the relay buffer in the second clock tree generation step.

また、上記半導体集積回路設計方法において、1本のスキャンチェーンを構成するフリップフロップ群を1つの前記第1のグループ内に含まれるフリップフロップに限定するか、あるいは1本のスキャンチェーンを構成するフリップフロップ群が複数のグループにまたがる場合に前記第1のグループ内のフリップフロップを全て連続して接続するとともに同一の第1のグループ間を複数回通らないように接続変更するスキャンチェーン接続変更工程と、前記第1のグループ内において、セルの配置情報に基づき、スキャンチェーンの配線長が短くなるようにフリップフロップの接続順を変更する場合に、クロック分岐点からフリップフロップまでのクロックツリーの段数が予め設定した値以下のフリップフロップについては、優先的に連続で接続されるように接続順を決定するスキャンチェーン最適化工程と、を備えているようにしたものである。   In the semiconductor integrated circuit design method, the flip-flop group constituting one scan chain is limited to the flip-flops included in the first group, or the flip-flop constituting one scan chain. A scan chain connection changing step for continuously connecting all the flip-flops in the first group and changing the connection so that the same first group does not pass a plurality of times when the group extends over a plurality of groups. In the first group, when the connection order of the flip-flops is changed based on the cell arrangement information so that the wiring length of the scan chain is shortened, the number of clock tree stages from the clock branch point to the flip-flops is For flip-flops that are less than or equal to the preset value, A scan chain optimization process for determining the connection order as continue, in which as and a.

本発明によれば、セルの配置情報に基づき、同一のクロックネットに接続されているフリップフロップを、クロックスキューが所定の閾値以下に収束することが推定できる回路規模、形状の第1のグループに分割している。したがって分割した第1のグループ内を、最終的に目標どおりのクロックスキューに抑えられる可能性を高くすることができる。またそのグループ毎にFFを駆動するグループ化バッファを追加し、さらにグループ化バッファの前段に遅延素子を挿入しているので、クロックソースから全FFまでのクロックスキューは、追加した遅延素子の遅延値を調整することで低減することができる効果がある。   According to the present invention, based on the cell arrangement information, the flip-flops connected to the same clock net are assigned to the first group of circuit scale and shape that can be estimated that the clock skew converges to a predetermined threshold value or less. It is divided. Therefore, it is possible to increase the possibility that the divided first group can be finally suppressed to the target clock skew. In addition, a grouping buffer that drives FF is added for each group, and a delay element is inserted before the grouping buffer, so the clock skew from the clock source to all FFs is the delay value of the added delay element. There is an effect that can be reduced by adjusting.

また、本発明によれば、クロックソースから遅延素子間にクロックツリーを生成する際に、第1のグループ間について、クロックを除く信号の接続の度合いを調べ、信号の接続の度合いが大きい順に、複数のグループをまとめ、これにより得られるグループを次の階層における第2のグループとし、そのグループの前段に中継バッファを追加し、それ以後は追加した中継バッファに対し、同様のグループ化処理を繰り返し行っているので、信号接続のあるグループ間のFFについては、クロック信号の分岐点からFFまでの距離を、第2のクロックツリーの中では短く抑えられる。したがって、信号の接続の度合いが大きいグループ間の信号は、トランジスタ特性のばらつきの影響を受けにくくすることができる効果がある。   Further, according to the present invention, when generating a clock tree between the clock source and the delay element, the degree of connection of signals excluding the clock is checked between the first groups, and the order of the degree of signal connection is as follows. Combine multiple groups and make the resulting group the second group in the next layer, add a relay buffer to the previous stage of the group, and then repeat the same grouping process for the added relay buffer As a result, for the FFs between the groups having signal connections, the distance from the branch point of the clock signal to the FFs can be kept short in the second clock tree. Therefore, there is an effect that signals between groups with a high degree of signal connection can be made less susceptible to variations in transistor characteristics.

また、本発明によれば、第1及び第2のクロックツリー生成において、クロックツリーを構成する中継バッファの段数の範囲を設定しているので、クロックソースから全FFまでのバッファの段数は所定の制限の範囲内として、それぞれの伝播遅延時間は比較的近い値にすることができる。したがって全FFまでの伝播遅延時間を調整する際に、各遅延素子の遅延値には近い値を設定しても調整可能として、配線容量、配線抵抗のばらつきの影響を受けにくくすることができる効果がある。   Further, according to the present invention, since the range of the number of stages of the relay buffer constituting the clock tree is set in the first and second clock tree generation, the number of stages of the buffer from the clock source to all the FFs is predetermined. Within the limits, each propagation delay time can be relatively close. Therefore, when adjusting the propagation delay time to all FFs, the delay value of each delay element can be adjusted even if a close value is set, and the effect of being less susceptible to variations in wiring capacitance and wiring resistance. There is.

また、本発明によれば、前記第2のクロックツリー生成工程は、前記第1のグループ間のクロックを除く信号の接続情報に基づき、前記信号の接続の度合いに応じた前記階層的グループ化により追加する中継バッファの段数を設定する、信号接続を考慮する階層数設定工程を備え、前記信号の接続の度合いに応じて前記階層数設定工程により設定した段数の中継バッファを追加し、最下層のグループに追加された前記中継バッファの配置情報に基づいて、前期従来のクロックツリー生成方法により、前記クロックネットのクロックソースと前記最下層のグループに追加された中継バッファ間のクロックスキューが最小となるように、前記第2のクロックツリーを生成するので、前期第2のクロックツリーが必要以上に複雑な構成にならないように制御することが可能となる。   Also, according to the present invention, the second clock tree generation step is based on the hierarchical grouping according to the degree of signal connection based on connection information of signals excluding the clocks between the first groups. A step of setting the number of layers of the relay buffer to be added, and a step of setting the number of layers in consideration of signal connection, adding a relay buffer of the number of steps set by the step of setting the number of layers according to the degree of connection of the signal, Based on the arrangement information of the relay buffer added to the group, the clock skew between the clock source of the clock net and the relay buffer added to the lowermost group is minimized by the conventional clock tree generation method. As described above, since the second clock tree is generated, the second clock tree in the previous period does not have an unnecessarily complicated configuration. It can be controlled to.

また、本発明によれば、前記第2のクロックツリー生成工程において、第2のグループ化の対象を1つ上の階層において隣接するグループに限定することにより、前期第2のクロックツリーがより簡素な構成になるように制御することが可能となる。   Further, according to the present invention, in the second clock tree generation step, the second clock tree can be simplified by limiting the second grouping target to adjacent groups in the next higher hierarchy. It becomes possible to control so that it becomes a simple structure.

また、本発明によれば、クロックソースから遅延素子間にクロックツリーを生成する際に、第1のグループ間について、クロックを除く信号のタイミング余裕度を調べ、タイミング余裕度が小さい順に、複数の第1のグループをまとめ、これにより得られるグループを次の階層における第2のグループとし、そのグループの前段に中継バッファを追加し、同様のグループ化処理を繰り返し行っているので、タイミング余裕度の小さいグループ間のFFについては、クロック信号の分岐点からFFまでの距離を、第2のクロックツリーの中では短く抑えられる。したがって、タイミング余裕度が小さいグループ間の信号は、トランジスタ特性のばらつきの影響を受けにくくすることができる効果がある。   Further, according to the present invention, when generating a clock tree between a clock source and a delay element, a timing margin of a signal excluding a clock is checked between the first groups, and a plurality of timing margins are arranged in ascending order. The first group is grouped, and the group obtained by this is set as the second group in the next hierarchy, the relay buffer is added to the previous stage of the group, and the same grouping process is repeatedly performed. For FFs between small groups, the distance from the branch point of the clock signal to the FFs can be kept short in the second clock tree. Therefore, there is an effect that signals between groups having a small timing margin can be made less susceptible to variations in transistor characteristics.

また、本発明によれば、前記第1のグループ化工程において、FF間のクロックを除く信号の接続とタイミング余裕度を調べ、該信号の接続情報とタイミング余裕度の情報に基づき、信号接続の多いFF群、及びタイミング余裕度の小さいFF群が同一のグループに属するように、第1のグループを決定するため、トランジスタ特性のばらつきの影響を受けタイミング制約違反が発生しやすいFF群は、同一の第1のグループ内に存在するように第1のグループ化が行われる可能性が高くなる。したがって、それらのFF群はクロックの分岐点からセルまでの距離がより短くなるため、トランジスタ特性のばらつきの影響を受けにくくなるという効果がある。   Further, according to the present invention, in the first grouping step, the signal connection and timing margin excluding the clock between the FFs are examined, and the signal connection is determined based on the connection information of the signal and the timing margin information. Since the first group is determined so that many FF groups and FF groups with a small timing margin belong to the same group, the same FF groups that are likely to cause timing constraint violations due to variations in transistor characteristics. There is a high possibility that the first grouping is performed so as to exist in the first group. Therefore, these FF groups have an effect that the distance from the clock branch point to the cell becomes shorter, so that the FF group is less affected by variations in transistor characteristics.

また、本発明によれば、前記複数のFFの一部を、ラッチ、ハードマクロ等の回路素子に置き換えられるようにしているため、前期回路素子を含むシステムLSIにおいても適用可能である。   In addition, according to the present invention, a part of the plurality of FFs can be replaced with circuit elements such as latches and hard macros, so that the present invention can be applied to a system LSI including the previous circuit elements.

また、本発明によれば、前記回路素子としてハードマクロを含み、前記ハードマクロ内部にFFまたはラッチが存在する場合に、ハードマクロのクロック入力端子からハードマクロ内部のFFまたはラッチまでの伝播遅延時間とバッファ段数とを識別するようにしているため、ハードマクロを含む複雑なシステムLSIにおいても、クロックソースから全セルまでのクロックラインを対称な構成にすることが可能となる効果がある。   According to the present invention, when the circuit element includes a hard macro and an FF or a latch exists in the hard macro, a propagation delay time from the clock input terminal of the hard macro to the FF or latch in the hard macro Therefore, even in a complicated system LSI including a hard macro, there is an effect that the clock lines from the clock source to all the cells can be configured symmetrically.

また、本発明によれば、1本のスキャンチェーンを構成するFF群を1つの前記第1のグループ内に含まれるFFに限定するか、あるいは1本のスキャンチェーンを構成するフリップフロップ群が複数のグループにまたがる場合に前記第1のグループ内のFFを全て連続して接続するとともに同一の第1のグループ間を複数回通らないようにスキャンチェーンを接続変更し、前記第1のグループ内において、セルの配置情報に基づき、スキャンチェーンの配線長が短くなるようにFFの接続順を変更する場合に、クロック分岐点からFFまでのクロックツリーの段数が予め設定した値以下のFFについては、優先的に連続で接続されるように接続順を決定するスキャンチェーン最適化を行うため、トランジスタ特性のばらつきの影響を受け、特にホールドマージンについてタイミング制約違反が発生しやすいスキャンチェーンを、トランジスタ特性のばらつきの影響を受けにくい構成に変更できるという効果がある。   According to the present invention, the FF group constituting one scan chain is limited to the FFs included in one first group, or a plurality of flip-flop groups constituting one scan chain are provided. When all the FFs in the first group are connected continuously and the scan chain is changed in connection so as not to pass through the same first group multiple times, When the FF connection order is changed so that the scan chain wiring length is shortened based on the cell arrangement information, the number of clock tree stages from the clock branch point to the FF is less than or equal to a preset value. In order to perform scan chain optimization that determines the connection order so that connections are preferentially connected, it is affected by variations in transistor characteristics, There is an effect that the timing constraint violation was easily scan chain generator for hold margin can be changed in less susceptible configure the influence of variation in transistor characteristics.

(実施の形態1)
図1は本発明の実施の形態1に係る半導体集積回路設計方法を示すフローチャートである。
図3は本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、ネットリストのグループ化前の状態を説明する図であり、クロック入力端子9から入力されるクロックが、メモリ等のハードマクロ10〜15と複数のFF20とに入力される半導体集積回路の例が示されている。なお、本実施の形態1においては、複数のFF20を配置する場合について説明するが、本発明はFFの代わりに、ラッチを配置する場合についても適用可能である。
(Embodiment 1)
FIG. 1 is a flowchart showing a semiconductor integrated circuit design method according to Embodiment 1 of the present invention.
FIG. 3 is a diagram for explaining a state before grouping of netlists for explaining the semiconductor integrated circuit design method according to the first embodiment of the present invention. A clock inputted from clock input terminal 9 is a memory. An example of a semiconductor integrated circuit input to the hard macros 10 to 15 and the plurality of FFs 20 is shown. In the first embodiment, a case where a plurality of FFs 20 are arranged will be described. However, the present invention can also be applied to a case where a latch is arranged instead of an FF.

図4(a)、図4(b)は本発明を実施の形態1に係る半導体集積回路設計方法を説明するための、回路の第1のグループ化を示す図であり、図において、図3と同一符号は同一または相当する部分を示している。   4 (a) and 4 (b) are diagrams showing a first grouping of circuits for explaining the semiconductor integrated circuit design method according to the first embodiment of the present invention. The same reference numerals denote the same or corresponding parts.

図5は本発明を実施の形態1に係る半導体集積回路設計方法を説明するための、回路の第2のグループ化を示す図であり、図において、図3と同一符号は同一または相当する部分を示している。   FIG. 5 is a diagram showing a second grouping of circuits for explaining the semiconductor integrated circuit design method according to the first embodiment of the present invention. In the figure, the same reference numerals as those in FIG. 3 denote the same or corresponding parts. Is shown.

図2は本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、フロアプラン情報により決定されるハードマクロの配置位置を示す図であり、図において、図3と同一符号は同一または相当する部分を示している。   FIG. 2 is a diagram showing the placement positions of the hard macros determined by the floor plan information for explaining the semiconductor integrated circuit design method according to the first embodiment of the present invention. In the figure, the same reference numerals as those in FIG. The same or corresponding parts are shown.

以下、図1、図2、図3、図4(a)、図4(b)、及び図5を用いて本発明の実施の形態1に係る半導体集積回路設計方法について説明する。まず、最初の工程S101では、図3に示すような半導体集積回路のネットリストとタイミング制約、物理ライブラリ情報、フロアプラン情報等のレイアウト設計に必要な情報を半導体集積回路の自動配置配線ツールに入力する。続いて、工程S102では、次工程S103における自動配置処理に必要のないスキャンチェーンの接続情報を削除する。   Hereinafter, the semiconductor integrated circuit design method according to the first embodiment of the present invention will be described with reference to FIGS. 1, 2, 3, 4 (a), 4 (b), and 5. First, in the first step S101, information necessary for layout design such as a net list of a semiconductor integrated circuit and timing constraints, physical library information, floor plan information and the like as shown in FIG. 3 is input to an automatic placement and routing tool of the semiconductor integrated circuit. To do. In step S102, scan chain connection information that is not necessary for the automatic placement processing in the next step S103 is deleted.

次に工程S103では、入力されたネットリストとタイミング制約とを用いてレイアウト設計装置により自動配置を行う。工程S101においてフロアプラン情報を入力した際に、図2に示すように、ハードマクロ10〜15の配置位置は決定しているので、ここでは論理セルの配置のみが実行される。   Next, in step S103, automatic layout is performed by the layout design apparatus using the input netlist and timing constraints. When the floor plan information is input in step S101, as shown in FIG. 2, since the arrangement positions of the hard macros 10 to 15 are determined, only the arrangement of the logic cells is executed here.

次に工程S104では、工程S107で生成するクロックツリーのスキューの目標値とツリー段数の最大値、最小値等を設定する。ツリーの段数は一意に設定してもよい。工程S106では、工程S103で配置されたFF20の配置情報に基づいて、工程S102で設定したクロックスキューの目標値に収束することが推定される回路規模と形状に、FF群を複数に分割し、それらを第1のグループとする。この実施の形態1においては、図4(a)に示すようにFF群は第1のグループ1〜8に分割される。クロックスキューを低減するためには、配置領域は上下、左右に対称に近い形状である方が有利と考えられるが、作成したフロアプランによっては、そのように分割できない場合もあり得る。ここでは、予めクロックスキューを低減しやすい形状についてのデータを準備しておき、そのデータを参考に形状を決定するものとする。また作成するグループのFF数の上限値、禁止する形状等を予め設定しておいてもよい。   In step S104, the target value of the clock tree skew generated in step S107 and the maximum and minimum values of the number of tree stages are set. The number of tree stages may be set uniquely. In step S106, based on the arrangement information of the FF 20 arranged in step S103, the FF group is divided into a plurality of circuit sizes and shapes estimated to converge to the target value of the clock skew set in step S102. Let them be the first group. In the first embodiment, the FF group is divided into first groups 1 to 8 as shown in FIG. In order to reduce the clock skew, it is considered that the arrangement area has a shape that is nearly symmetrical in the vertical and horizontal directions. However, depending on the created floor plan, it may not be possible to do so. Here, it is assumed that data on a shape that can easily reduce clock skew is prepared in advance, and the shape is determined with reference to the data. Further, an upper limit value of the number of FFs of the group to be created, a prohibited shape, and the like may be set in advance.

工程S106では、決定した各グループのFF20の前段に第1のグループ化バッファ21を追加するようにネットリストを変更し、工程S107では、決定した各グループ1〜8に対して、従来の技術において説明したような通常のクロックツリー方式により複数の中継バッファ23を追加して図4(b)に示すツリーを生成する。そして生成したクロックラインに対して、マンハッタン長または概略配線の結果等から求められる配線容量と配線抵抗を用いてクロック信号の伝播遅延時間を仮計算する。工程S108では、仮計算の結果から各グループ1〜8のクロックスキューが目標値に収束しているかを調べ、全てのグループ1〜8のクロックスキューが目標値以下であれば工程S109に移行し、目標値を超えるものがあれば工程S104に移行する。工程S109では、図4(a)に示すように、第1のグループ化バッファの前段に遅延素子22を挿入し、工程S110に移行する。   In step S106, the netlist is changed so that the first grouping buffer 21 is added to the preceding stage of the FF 20 of each determined group. In step S107, for each of the determined groups 1 to 8, the conventional technique is used. A plurality of relay buffers 23 are added by the normal clock tree method as described to generate a tree shown in FIG. Then, the propagation delay time of the clock signal is provisionally calculated for the generated clock line using the wiring capacity and the wiring resistance obtained from the Manhattan length or the result of the schematic wiring. In step S108, it is checked whether the clock skew of each group 1 to 8 has converged to the target value from the result of the provisional calculation. If the clock skew of all the groups 1 to 8 is less than the target value, the process proceeds to step S109. If there is something exceeding the target value, the process proceeds to step S104. In step S109, as shown in FIG. 4A, the delay element 22 is inserted in the previous stage of the first grouping buffer, and the process proceeds to step S110.

以上のように、まず配置情報に基づいて、クロックスキューが目標値以下になるまで第1のグループ化処理と第1のグループ1〜8のクロックツリー生成、クロックの遅延計算とを行い、クロックスキューの判定を行う。そしてクロックスキューが目標値以下となるようにグループが決まると、遅延素子22の挿入を行う。ここまでが第1のクロックツリーの生成についての説明である。   As described above, first, based on the arrangement information, the first grouping process, the clock tree generation of the first groups 1 to 8 and the clock delay calculation are performed until the clock skew becomes below the target value, and the clock skew is calculated. Judgment is made. When the group is determined so that the clock skew is equal to or less than the target value, the delay element 22 is inserted. Thus far, the generation of the first clock tree has been described.

次に第2のクロックツリー生成について説明する。工程S110では、作成した第1のグループ間と第1のグループとハードマクロ間のクロック信号以外の信号接続とタイミング余裕度を調べる。   Next, the second clock tree generation will be described. In step S110, signal connections and timing margins other than the clock signals between the created first groups and between the first group and the hard macro are examined.

工程S111では、工程S113の第2のクロックツリー生成におけるツリーのバッファ段数の制限値を設定する。このとき、この制限値に加えて、クロックネットのクロックソースから全フリップフロップ、及びハードマクロまでのセルの段数の合計を所定の範囲内となるように設定するようにしてもよい。   In step S111, a limit value of the number of buffer stages in the tree in the second clock tree generation in step S113 is set. At this time, in addition to the limit value, the total number of cell stages from the clock source of the clock net to all flip-flops and hard macros may be set to be within a predetermined range.

工程S112では第1のグループ1〜8と前記ハードマクロ10〜15間の信号接続とタイミング余裕度を考慮する階層数の設定を行う。例えば、タイミング余裕度が小さい順に、複数の第1のグループ1〜8と前記ハードマクロ10〜15とをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとし、同様に階層的にグループ化処理を実施し、中継バッファを追加する段数を設定する。   In step S112, the number of hierarchies is set in consideration of signal connection and timing margin between the first groups 1 to 8 and the hard macros 10 to 15. For example, a combination of a plurality of first groups 1 to 8 and the hard macros 10 to 15 is determined in ascending order of timing margin, and a group obtained by the combination is set as a second group in the next hierarchy. Similarly, the grouping process is executed hierarchically, and the number of stages for adding the relay buffer is set.

工程S113では、図5に示すように、工程S110で調べた信号接続の度合いの情報に基づき、信号の接続の度合いが大きい順に、複数の第1のグループ1〜8とハードマクロ10〜15をまとめるように組み合わせを決定し、次の階層における第2のグループとする。あるいは、タイミング余裕度が小さい順に、複数の第1のグループ1〜8と前記ハードマクロ10〜15とをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとするようにしてもよい。なお、このグループ化の対象を1つ上の階層において隣接する第1グループ1〜8またはハードマクロ10〜15に限定してもよい。次にクロックを供給しているセルを駆動する中継バッファ24を前段に追加する。追加した中継バッファ24は、駆動するセルに対して負荷が均等にかかるようにするため、駆動するセルの重心付近等に配置する。また第2のグループを決定する際には、予め中継バッファの負荷容量の制限値を設定しておき、駆動する中継バッファ24の負荷が大きくならないように、組み合わせるグループ数等を決定するものとする。さらにクロック経路が短くなるように、必要に応じて遅延素子の配置位置を移動してもよい。以後は追加した中継バッファ24に対して、同様にグループ化を行う処理を繰り返し、クロックソースから遅延素子までの間に第2のクロックツリーを生成する。   In step S113, as shown in FIG. 5, based on the information on the degree of signal connection checked in step S110, the plurality of first groups 1 to 8 and hard macros 10 to 15 are arranged in descending order of signal connection. The combination is determined so as to be put together, and is set as the second group in the next hierarchy. Alternatively, a combination of the plurality of first groups 1 to 8 and the hard macros 10 to 15 is determined in ascending order of timing margin, and a group obtained by the combination is determined as a second group in the next hierarchy. You may make it do. Note that this grouping target may be limited to the first groups 1 to 8 or the hard macros 10 to 15 that are adjacent to each other in the next higher hierarchy. Next, the relay buffer 24 for driving the cell supplying the clock is added to the preceding stage. The added relay buffer 24 is arranged near the center of gravity of the cell to be driven so that the load is evenly applied to the cell to be driven. When determining the second group, a limit value of the load capacity of the relay buffer is set in advance, and the number of groups to be combined is determined so that the load of the relay buffer 24 to be driven does not increase. . Furthermore, the arrangement position of the delay element may be moved as necessary so that the clock path is shortened. Thereafter, the same grouping process is repeated for the added relay buffer 24 to generate a second clock tree between the clock source and the delay element.

ここでグループ間の信号接続の度合いを考慮して階層的にグループ化処理を行う段数を工程S112で設定しているので、設定した階層数のグループ化処理を実行後、さらに第2のクロックツリーに中継バッファを追加する必要がある場合は、従来の技術において示した通常のクロックツリー方式で処理を行うものとする。   Here, in consideration of the degree of signal connection between the groups, the number of stages for performing the grouping process in a hierarchical manner is set in step S112. Therefore, after the grouping process for the set number of hierarchies is performed, the second clock tree is further added. When it is necessary to add a relay buffer, the processing is performed by the normal clock tree method shown in the prior art.

次に工程S114では、生成したクロックツリーの段数が設定した制限値を満たしているかを判定する。制限の範囲内であれば工程S115に移行し、範囲外であれば工程S111に移行する。   Next, in step S114, it is determined whether the number of stages of the generated clock tree satisfies the set limit value. If it is within the limit range, the process proceeds to step S115, and if it is out of the range, the process proceeds to step S111.

工程S115では、工程S102で削除したスキャンチェーンの再接続を行う。このとき、1本のスキャンチェーンを構成するFF群を1つの第1のグループ内に含まれるFFに限定するか、あるいは1本のスキャンチェーンを構成するFF群が複数の第1のグループにまたがる場合に第1のグループ内のFFを全て連続して接続するとともに同一の第1のグループ間を複数回通らないようにスキャンチェーンを接続変更するようにし、第1のグループ内においては、入力される配置情報に基づきスキャンチェーンの配線長が短くなるようにFFの接続順を変更する。   In step S115, the scan chain deleted in step S102 is reconnected. At this time, the FF group constituting one scan chain is limited to the FFs included in one first group, or the FF group constituting one scan chain spans a plurality of first groups. In this case, all the FFs in the first group are connected continuously, and the scan chain is changed in connection so that it does not pass through the same first group multiple times. The connection order of the FFs is changed so that the wiring length of the scan chain is shortened based on the arrangement information.

図7(a)はスキャンチェーン最適化前の接続を示し、 図7(b)はスキャンチェーン最適化後の接続を示している。図7(a), 図7(b)において、図2と同一符号は同一または相当する部分を示しており、SI1ないしSI6はスキャン入力端子、SO1ないしSO6はスキャン出力端子を示している。また、Fはフリップフロップを示している。図7(b)では、同一の第1のグループに属するFFは全て連続して接続されるように、接続変更が行われている。また第1のグループ内において、セルの配置情報に基づきスキャンチェーンの配線長が短くなるようにFFの接続順を変更する場合に、工程S115においてクロック分岐点からFFまでのクロックツリーの段数が予め設定した値以下のFFについては、優先的に連続で接続されるように接続順を決定して、スキャンチェーンを最適化するようにしてもよい。   FIG. 7A shows the connection before the scan chain optimization, and FIG. 7B shows the connection after the scan chain optimization. 7A and 7B, the same reference numerals as those in FIG. 2 denote the same or corresponding parts, SI1 to SI6 denote scan input terminals, and SO1 to SO6 denote scan output terminals. F indicates a flip-flop. In FIG. 7B, the connection change is performed so that all the FFs belonging to the same first group are continuously connected. Further, in the first group, when the FF connection order is changed so that the scan chain wiring length is shortened based on the cell arrangement information, the number of clock tree stages from the clock branch point to the FF is previously set in step S115. For the FFs below the set value, the scan order may be optimized by determining the connection order so that the FFs are successively connected preferentially.

工程S116では第1のクロックツリーの詳細配線を実行し、工程S117では第2のクロックツリーの詳細配線を実行し、また工程S118では、クロック以外の信号の詳細配線を実行する。   In step S116, detailed wiring of the first clock tree is executed, in step S117, detailed wiring of the second clock tree is executed, and in step S118, detailed wiring of signals other than the clock is executed.

工程S119では、詳細配線まで完了したレイアウトデータの遅延計算を実行してクロックソースから全セルまでのクロック信号の伝播遅延時間を求め、第1のグループ毎とハードマクロ毎に平均値が同じになるように、第1のグループとハードマクロの前段に追加した遅延素子を調整する。遅延素子は例えば、クロックラインに追加した中継バッファと同じセルを一列に並べたものでもよいし、遅延時間の調整が行いやすいように遅延値の小さいセルを作成し、その遅延調整用セルを並べて構成したものでもよい。工程S119が完了すると、全ての処理が終了となる。   In step S119, the delay calculation of the layout data completed up to the detailed wiring is executed to obtain the propagation delay time of the clock signal from the clock source to all the cells, and the average value is the same for each first group and each hard macro. As described above, the delay elements added to the first stage and the preceding stage of the hard macro are adjusted. For example, the delay element may be the same cell as the relay buffer added to the clock line arranged in a line, or a cell with a small delay value is created so that the delay time can be easily adjusted, and the delay adjustment cells are arranged. It may be configured. When step S119 is completed, all the processes are completed.

なお、本発明においては、ハードマクロ内部にFFまたはラッチが存在する場合には、ハードマクロのクロック入力端子からハードマクロ内部のFFまたはラッチまでの伝播遅延時間とバッファ段数とを識別してクロックツリー生成の際にこれらを考慮するようにする。   In the present invention, when an FF or latch exists in the hard macro, the clock tree is identified by identifying the propagation delay time from the hard macro clock input terminal to the FF or latch in the hard macro and the number of buffer stages. Consider these in the generation.

以上のように本実施の形態1では、セルの配置情報に基づき、同一のクロックネットに接続されているFFを、クロックスキューが所定の閾値以下に収束することが推定できる回路規模や形状の第1のグループに分割している。したがって分割した第1のグループ内は最終的に目標どおりのクロックスキューに抑えられる可能性を高くすることができる。またそのグループ毎にFFを駆動するグループ化バッファを追加し、さらにグループ化バッファとハードマクロの前段に遅延素子を挿入しているので、クロックソースから全FFとハードマクロまでのクロックスキューは、追加した遅延素子の遅延値を調整することで低減することが可能となる。   As described above, in the first embodiment, based on the cell arrangement information, the FFs connected to the same clock net can be estimated to have the circuit scale and shape that can be estimated that the clock skew converges to a predetermined threshold value or less. It is divided into one group. Therefore, it is possible to increase the possibility that the divided first group can be finally suppressed to the target clock skew. In addition, a grouping buffer that drives FF is added for each group, and a delay element is inserted in front of the grouping buffer and hard macro, so clock skew from the clock source to all FFs and hard macro is added. It is possible to reduce by adjusting the delay value of the delay element.

またクロックソースから遅延素子間にクロックツリーを生成する際に、第1のグループ間と第1のグループとハードマクロ間について、クロックを除く信号の接続の度合い、またはタイミング余裕度を調べ、信号の接続の度合いが大きい順、またはタイミング余裕度の小さい順に、複数のグループとハードマクロをまとめ、次の階層における第2のグループとし、そのグループの前段に中継バッファを追加している。以後は追加した中継バッファに対し、同様のグループ化処理を繰り返し行っているので、信号接続が多い、またはタイミング余裕度の小さいグループ間のFFとハードマクロについては、クロック信号の分岐点からFF、ハードマクロ等のセルまでの距離が、第2のクロックツリーの中では短く抑えられる。したがって、トランジスタ特性のばらつきの影響を受けにくい構成とすることができる効果がある。   Further, when generating a clock tree between delay elements from the clock source, the degree of connection of signals other than the clock or the timing margin between the first group and between the first group and the hard macro is examined, A plurality of groups and hard macros are grouped together in descending order of the degree of connection or in ascending order of timing margin to form a second group in the next hierarchy, and a relay buffer is added in the preceding stage of the group. Thereafter, the same grouping process is repeatedly performed on the added relay buffer. Therefore, for the FF and the hard macro between the groups having a large signal connection or a small timing margin, the FF, The distance to a cell such as a hard macro is kept short in the second clock tree. Therefore, there is an effect that the structure can be hardly affected by variations in transistor characteristics.

また第1及び第2のクロックツリー生成において、クロックツリーを構成する中継バッファの段数の範囲を設定しているので、クロックソースからFF、ハードマクロ等の全セルまでのバッファの段数は所定の制限の範囲内となっており、伝播遅延時間は比較的近い値になりやすい。したがって全セルまでの伝播遅延時間を調整する際に、各遅延素子の遅延値には近い値を設定しての調整が可能となり、配線容量、配線抵抗のばらつきの影響を受けにくい構成とすることができる効果がある。   In addition, in the first and second clock tree generation, since the range of the number of stages of the relay buffer constituting the clock tree is set, the number of buffer stages from the clock source to all the cells such as FFs and hard macros has a predetermined limit. The propagation delay time tends to be relatively close. Therefore, when adjusting the propagation delay time to all cells, it is possible to adjust the delay value of each delay element to a value close to that of the delay element, making it difficult to be affected by variations in wiring capacitance and wiring resistance. There is an effect that can.

また1本のスキャンチェーンを構成するFF群を1つの第1のグループ内に含まれるFFに限定するか、あるいは1本のスキャンチェーンを構成するFF群が複数の第1のグループにまたがる場合に第1のグループ内のFFを全て連続して接続するとともに同一の第1のグループ間を複数回通らないようにスキャンチェーンを接続変更するようにしているため、スキャンチェーンにおいてクロックの分岐点からセルまでの距離が長くなることを抑制しており、スキャンチェーンを配線容量、配線抵抗のばらつきの影響を受けにくい構成とする効果がある。   Further, when the FF group constituting one scan chain is limited to the FFs included in one first group, or when the FF group constituting one scan chain spans a plurality of first groups Since all the FFs in the first group are connected in succession and the scan chain is changed so as not to pass through the same first group multiple times, the cells from the clock branch point in the scan chain Thus, the scan chain is prevented from being affected by variations in wiring capacitance and wiring resistance.

(実施の形態2)
図8は本発明を実施の形態2に係る半導体集積回路設計方法を示すフローチャートである。実施の形態1との違いは、工程S105において、FF間のクロック以外の信号接続とタイミング余裕度を調べるようにし、工程S106aにおいてその情報を基に第1のグループ化を行うようにしたことである。図8において、図1と同一符号は同一または相当する部分を示している。
(Embodiment 2)
FIG. 8 is a flowchart showing a semiconductor integrated circuit design method according to the second embodiment of the present invention. The difference from the first embodiment is that the signal connection other than the clock between the FFs and the timing margin are examined in step S105, and the first grouping is performed based on the information in step S106a. is there. 8, the same reference numerals as those in FIG. 1 denote the same or corresponding parts.

図9、図10は、図8の工程S106aにおいて工程S105で得られた情報を基に第1のグループ化を実施する処理を示す図であり、図において、図2と同一符号は同一または相当する部分を示している。FF群101〜107は、信号接続の多いFFをまとめて作成したものである。領域201ないし203及び領域205はタイミング余裕度の大きい領域である。領域204はタイミング余裕度の小さい領域である。   FIGS. 9 and 10 are diagrams showing processing for performing the first grouping based on the information obtained in step S105 in step S106a of FIG. 8, and the same reference numerals as those in FIG. The part to do is shown. The FF groups 101 to 107 are created by collecting FFs having many signal connections. Areas 201 to 203 and area 205 are areas with a large timing margin. An area 204 is an area with a small timing margin.

以下、図8、図9、図10を用いて本発明の実施の形態2に係る半導体集積回路設計方法について説明する。なお、工程S101〜S103と工程S107以降の工程においては、実施の形態1と同様に処理を行うため、ここでの説明は省略する。   The semiconductor integrated circuit design method according to the second embodiment of the present invention will be described below with reference to FIGS. In addition, in process S101-S103 and the process after process S107, since it processes similarly to Embodiment 1, description here is abbreviate | omitted.

工程S105では、まず工程S101で入力されたネットリストのFF間、またはFFとハードマクロ間の接続とタイミング制約に対するタイミング余裕度を調べる。次に工程S106aにおいて、工程S105で得られた情報を基に、接続の多いFF、あるいはタイミング余裕度の小さいFFができるだけ同一の第1のグループに属するようにFFの分割領域を決定し、かつ実施の形態1と同様に、工程S103で配置されたFF20の配置情報に基づいて、工程S102で設定したクロックスキューの目標値に収束することが推定される回路規模と形状にFF群を調整して複数に分割し、第1のグループ化を行う。例として図9では、工程S105で得られたFF間の接続情報を基に、接続の多いFFをFF群101〜107にまとめている。実施の形態2では、このFF群101〜107の領域を基準に、オンチップ変動の影響を受けにくいと考えられるタイミング余裕度の大きいFFを他のFF群と組み合わせることにより、クロックスキューが所定値以下になるようにFFの分割領域を調整し、図10に示すように、第1のグループ1〜8を決定する。図10の第1のグループ2は、図9のFF群102と、FF群101中のタイミング余裕度の大きいFFを含む領域201をまとめて作成されており、同じく図10の第1のグループ3は、図9のFF群103と、FF群101中のタイミング余裕度の大きいFFを含む領域202とから作成され、図10の第1のグループ4は、図9のFF群104と、FF群106中のタイミング余裕度の大きいFFを含む領域203とから、それぞれ作成されている。また、図10の第1のグループ1は、図9のFF群101から領域201、202を除いた領域である。また第1のグループ5,7は、図10のFF群105を、タイミング余裕度の小さい領域204とタイミング余裕度の大きい領域205に分割し作成したものである。   In step S105, first, the timing margin for the connection between the FFs in the netlist input in step S101 or between the FF and the hard macro and the timing constraint is checked. Next, in step S106a, based on the information obtained in step S105, FF divided regions are determined so that FFs with many connections or FFs with a small timing margin belong to the same first group as much as possible, and As in the first embodiment, the FF group is adjusted to the circuit scale and shape estimated to converge to the target value of the clock skew set in step S102 based on the arrangement information of the FF 20 arranged in step S103. The first grouping is performed. For example, in FIG. 9, FFs with many connections are grouped into FF groups 101 to 107 based on connection information between FFs obtained in step S <b> 105. In the second embodiment, on the basis of the area of the FF groups 101 to 107, a clock skew is set to a predetermined value by combining an FF with a large timing margin considered to be hardly affected by on-chip fluctuation with another FF group. The divided areas of the FFs are adjusted as follows, and the first groups 1 to 8 are determined as shown in FIG. The first group 2 in FIG. 10 is created by combining the FF group 102 in FIG. 9 and the area 201 including the FFs having a large timing margin in the FF group 101. Similarly, the first group 3 in FIG. 9 is created from the FF group 103 in FIG. 9 and the region 202 including the FF having a large timing margin in the FF group 101. The first group 4 in FIG. 10 includes the FF group 104 in FIG. 106 are created respectively from the areas 203 including FFs having a large timing margin in 106. Further, the first group 1 in FIG. 10 is an area obtained by removing the areas 201 and 202 from the FF group 101 in FIG. The first groups 5 and 7 are created by dividing the FF group 105 of FIG. 10 into a region 204 with a small timing margin and a region 205 with a large timing margin.

以上のように本実施の形態2では、入力されたネットリストのFF間、またはFFとハードマクロ間の接続とタイミング制約に対するタイミング余裕度を調べ、得られた情報を基に、接続の多いFF、あるいはタイミング余裕度の小さいFFが同一の第1のグループに属するようにFFの分割領域を調整し、第1のグループ化を行っている。したがって接続の多い、あるいはタイミング余裕度の小さいデータパスのFFはクロックの分岐点からセルまでの距離が短くなるため、オンチップ変動の影響によるタイミング制約違反発生を抑制できるという効果がある。   As described above, in the second embodiment, the timing margin with respect to the connection and the timing constraint between the FFs in the input netlist or between the FF and the hard macro is checked, and the FFs with many connections are obtained based on the obtained information. Alternatively, the first grouping is performed by adjusting the division region of the FFs so that the FFs having a small timing margin belong to the same first group. Therefore, the FF of a data path with many connections or a small timing margin has an effect of suppressing the occurrence of timing constraint violation due to the influence of on-chip variation because the distance from the clock branch point to the cell is shortened.

本発明に係る半導体集積回路設計方法は、クロックスキューが小さく、トランジスタ特性のばらつきの影響を受けにくいクロックツリーを生成することを可能とするものであり、ASICやシステムLSI等の大規模な半導体集積回路のレイアウト設計方法等として有用である。   The semiconductor integrated circuit design method according to the present invention is capable of generating a clock tree having a small clock skew and being hardly affected by variations in transistor characteristics, and is capable of generating a large-scale semiconductor integrated circuit such as an ASIC or a system LSI. This is useful as a circuit layout design method.

本発明の実施の形態1に係る半導体集積回路設計方法のフローチャートである。3 is a flowchart of a semiconductor integrated circuit design method according to the first embodiment of the present invention. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、半導体集積回路のフロアプランである。2 is a floor plan of a semiconductor integrated circuit for explaining the semiconductor integrated circuit design method according to the first embodiment of the present invention; 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、回路のグループ化前の構成を示す図である。It is a figure which shows the structure before grouping of the circuits for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、回路の第1のグループ化を示す図である。It is a figure which shows the 1st grouping of the circuit for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、回路の第1のグループ化を示す図である。It is a figure which shows the 1st grouping of the circuit for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、回路の第2のグループ化を示す図である。It is a figure which shows the 2nd grouping of a circuit for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 従来の半導体集積回路設計方法を説明するための図である。It is a figure for demonstrating the conventional semiconductor integrated circuit design method. 従来の半導体集積回路設計方法を説明するための図である。It is a figure for demonstrating the conventional semiconductor integrated circuit design method. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、スキャンチェーンの接続を示す図である。It is a figure which shows the connection of a scan chain for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る半導体集積回路設計方法を説明するための、スキャンチェーンの接続を示す図である。It is a figure which shows the connection of a scan chain for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 1 of this invention. 本発明の実施の形態2に係る半導体集積回路設計方法のフローチャートである。It is a flowchart of the semiconductor integrated circuit design method which concerns on Embodiment 2 of this invention. 本発明の実施の形態2に係る半導体集積回路設計方法を説明するための、回路のグループ化前の構成を示す図である。It is a figure which shows the structure before grouping of the circuit for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 2 of this invention. 本発明の実施の形態2に係る半導体集積回路設計方法を説明するための、回路の第1のグループ化を示す図である。It is a figure which shows the 1st grouping of the circuit for demonstrating the semiconductor integrated circuit design method which concerns on Embodiment 2 of this invention.

符号の説明Explanation of symbols

1〜8 第1のグループ
9,64 クロック入力端子
10〜15 ハードマクロ
20 フリップフロップ
21 中継バッファ
22 遅延素子
23 中継バッファ
24 中継バッファ
SI0〜SI6 スキャン入力端子
SO0〜SO6 スキャン出力端子
1-8 First group 9, 64 Clock input terminals 10-15 Hard macro 20 Flip-flop 21 Relay buffer 22 Delay element 23 Relay buffer 24 Relay buffers SI0-SI6 Scan input terminals SO0-SO6 Scan output terminals

Claims (12)

クロックスキューの閾値を設定する工程と、
入力される配置情報に基づき、クロックスキューが、前記設定した閾値以下に収束することが推定される回路規模及び形状となるよう、同一のクロックネットに接続されている複数のフリップフロップを複数の第1のグループに分割し、該第1のグループ毎に、前記グループ化したフリップフロップの前段にグループ化バッファを追加する第1のグループ化工程と、
前記グループ化バッファとフリップフロップとの間にクロックツリーを生成する第1のクロックツリー生成工程と、
前記グループ化バッファの前段に遅延素子を挿入する遅延素子挿入工程と、
前記第1のグループ間のクロックを除く信号の接続を調べる工程と、
前記信号の接続を調べる工程により得られた信号の接続情報に基づき、前記信号の接続の度合いが大きい順に複数の前記第1のグループをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとし、該第2のグループにクロックを供給しているセルを駆動する中継バッファを前段に追加し、該追加した中継バッファに対して、前記第2のグループ化とその前段へ中継バッファを追加する処理とを繰り返し行うことにより、前記クロックネットのクロックソースと前記第1のグループの遅延素子との間にクロックツリーを生成する第2のクロックツリー生成工程と、を備えることを特徴とする半導体集積回路設計方法。
Setting a clock skew threshold;
Based on the input arrangement information, a plurality of flip-flops connected to the same clock net are connected to a plurality of flip-flops so that the clock scale has a circuit scale and shape estimated to converge below the set threshold value. A first grouping step of dividing the group into one group and adding a grouping buffer to the preceding stage of the grouped flip-flops for each of the first groups;
A first clock tree generation step of generating a clock tree between the grouping buffer and the flip-flop;
A delay element insertion step of inserting a delay element in a preceding stage of the grouping buffer;
Examining the connection of signals excluding the clock between the first groups;
Based on the signal connection information obtained in the step of examining the signal connection, a combination of the plurality of first groups is determined in descending order of the degree of signal connection, and the group obtained by the combination is determined as follows. And a relay buffer that drives a cell that supplies a clock to the second group is added to the previous stage, and the second grouping and its And a second clock tree generation step of generating a clock tree between the clock source of the clock net and the delay element of the first group by repeatedly performing the process of adding the relay buffer to the previous stage. A method for designing a semiconductor integrated circuit.
前記第2のクロックツリー生成工程は、
前記第1のグループ間のクロックを除く信号の接続情報に基づき、前記信号の接続の度合いに応じた前記階層的グループ化により追加する中継バッファの段数を設定する、信号接続を考慮する階層数設定工程を備え、
前記信号の接続の度合いに応じて前記階層数設定工程により設定した段数の中継バッファを追加し、
最下層のグループに追加された前記中継バッファの配置情報に基づいて、前記クロックネットのクロックソースと前記最下層のグループに追加された中継バッファ間のクロックスキューが最小となるように、前記第2のクロックツリーを生成することを特徴とする請求項1記載の半導体集積回路設計方法。
The second clock tree generation step includes:
Based on connection information of signals excluding the clock between the first groups, setting the number of relay buffers to be added by the hierarchical grouping according to the degree of signal connection, setting the number of layers considering signal connection With a process,
Add a relay buffer of the number of stages set by the hierarchy number setting step according to the degree of connection of the signal,
Based on the arrangement information of the relay buffer added to the lowest layer group, the second clock signal skew between the clock source of the clock net and the relay buffer added to the lowest layer group is minimized. 2. The semiconductor integrated circuit design method according to claim 1, wherein the clock tree is generated.
前記第2のクロックツリーを生成する工程の、前記第1のグループ間のクロックを除く信号の接続情報に基づき、前記信号の接続の度合いに応じた前記階層的グループ化において、
該グループ化の対象を1つ上の階層において隣接するグループに限定したことを特徴とする請求項2記載の半導体集積回路設計方法。
In the hierarchical grouping according to the degree of connection of the signals, based on connection information of signals excluding the clock between the first groups in the step of generating the second clock tree,
3. The method of designing a semiconductor integrated circuit according to claim 2, wherein the grouping target is limited to a group adjacent in the hierarchy one level higher.
前記第1のグループ間のクロックを除く信号のタイミング余裕度を調べる工程を備え、
該タイミング余裕度を調べる工程により得られるタイミング余裕度の情報に基づき、前記タイミング余裕度が小さい順に、複数の前記第1のグループをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第2のグループとすることを特徴とする請求項1記載の半導体集積回路設計方法。
Examining the timing margin of signals excluding the clock between the first groups,
Based on the timing margin information obtained by the step of examining the timing margin, the combination of the plurality of first groups is determined in ascending order of the timing margin, and the group obtained by these combinations is determined as 2. The semiconductor integrated circuit design method according to claim 1, wherein the second group in the hierarchy is used.
前記第1のグループ化工程において、フリップフロップ間のクロックを除く信号の接続とタイミング余裕度を調べ、該信号の接続情報とタイミング余裕度の情報に基づき、信号接続の多いフリップフロップ、及びタイミング余裕度の小さいフリップフロップが同一のグループとなるように、第1のグループを決定することを特徴とする請求項1記載の半導体集積回路設計方法。   In the first grouping step, the connection of the signals other than the clocks between the flip-flops and the timing margin are examined, and the flip-flops having a large number of signal connections and the timing margin based on the connection information of the signals and the timing margin information 2. The semiconductor integrated circuit design method according to claim 1, wherein the first group is determined so that the flip-flops having a small degree are in the same group. 前記グループ化バッファとフリップフロップとの間に生成するクロックツリーのバッファの段数が所定の範囲内となるように設定し、かつ、前記クロックネットのクロックソースから全フリップフロップまでのセルの段数の合計が所定の範囲内となるように設定する段数設定工程を備えていることを特徴とする請求項1乃至請求項5のいずれか一項に記載の半導体集積回路設計方法。   The number of stages of the clock tree buffer generated between the grouping buffer and the flip-flop is set to be within a predetermined range, and the total number of stages of cells from the clock source of the clock net to all flip-flops 6. The method of designing a semiconductor integrated circuit according to claim 1, further comprising a step number setting step for setting the step number so as to be within a predetermined range. 前記複数のフリップフロップの一部を、回路素子に置き換えたことを特徴とする請求項1記載の半導体集積回路設計方法。   2. The semiconductor integrated circuit design method according to claim 1, wherein a part of the plurality of flip-flops is replaced with a circuit element. 前記回路素子を、ラッチ、またはハードマクロとしたことを特徴とする請求項7記載の半導体集積回路設計方法。   8. The method of designing a semiconductor integrated circuit according to claim 7, wherein the circuit element is a latch or a hard macro. 前記回路素子を単独で前記第1のグループとすることを特徴とする請求項7に記載の半導体集積回路設計方法。   8. The method of designing a semiconductor integrated circuit according to claim 7, wherein the circuit elements are independently made into the first group. 前記回路素子としてハードマクロを含み、
前記ハードマクロ内部にフリップフロップまたはラッチが存在する場合に、ハードマクロのクロック入力端子からハードマクロ内部のフリップフロップまたはラッチまでの伝播遅延時間とバッファ段数とを識別することを特徴とする請求項7乃至9記載の半導体集積回路設計方法。
Including a hard macro as the circuit element,
8. A propagation delay time from a clock input terminal of a hard macro to a flip-flop or a latch in the hard macro and the number of buffer stages are identified when a flip-flop or a latch exists in the hard macro. 10. A method for designing a semiconductor integrated circuit according to any one of items 9 to 9.
前記第2のクロックツリー生成工程において、前記中継バッファの負荷容量の制限値を設定する工程を備えることを特徴とする請求項1記載の半導体集積回路設計方法。   2. The method for designing a semiconductor integrated circuit according to claim 1, further comprising a step of setting a limit value of a load capacity of the relay buffer in the second clock tree generation step. 1本のスキャンチェーンを構成するフリップフロップ群を1つの前記第1のグループ内に含まれるフリップフロップに限定するか、あるいは1本のスキャンチェーンを構成するフリップフロップ群が複数のグループにまたがる場合に前記第1のグループ内のフリップフロップを全て連続して接続するとともに同一の第1のグループ間を複数回通らないように接続変更するスキャンチェーン接続変更工程と、
前記第1のグループ内において、入力される配置情報に基づき、スキャンチェーンの配線長が短くなるようにフリップフロップの接続順を変更する場合に、クロック分岐点からフリップフロップまでのクロックツリーの段数が予め設定した値以下のフリップフロップについては、優先的に連続で接続されるように接続順を決定するスキャンチェーン最適化工程と、を備えていることを特徴とする請求項1記載の半導体集積回路設計方法。
When flip-flop groups constituting one scan chain are limited to flip-flops included in one first group, or when flip-flop groups constituting one scan chain span a plurality of groups A scan chain connection changing step of continuously connecting all the flip-flops in the first group and changing the connection so as not to pass through the same first group multiple times;
In the first group, when the connection order of the flip-flops is changed based on the input arrangement information so that the wiring length of the scan chain is shortened, the number of clock tree stages from the clock branch point to the flip-flops is 2. The semiconductor integrated circuit according to claim 1, further comprising: a scan chain optimizing step for determining a connection order so that flip-flops having a predetermined value or less are connected preferentially continuously. Design method.
JP2004294145A 2004-10-06 2004-10-06 Semiconductor integrated circuit design method Pending JP2006107206A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004294145A JP2006107206A (en) 2004-10-06 2004-10-06 Semiconductor integrated circuit design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004294145A JP2006107206A (en) 2004-10-06 2004-10-06 Semiconductor integrated circuit design method

Publications (1)

Publication Number Publication Date
JP2006107206A true JP2006107206A (en) 2006-04-20

Family

ID=36376863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004294145A Pending JP2006107206A (en) 2004-10-06 2004-10-06 Semiconductor integrated circuit design method

Country Status (1)

Country Link
JP (1) JP2006107206A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526283A (en) * 2006-02-07 2009-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus and computer readable recording medium for clustering circuit elements of circuit design
JP2012063886A (en) * 2010-09-14 2012-03-29 Ricoh Co Ltd Automatic layout wiring method of semiconductor integrated circuit, layout device, automatic layout wiring program, and semiconductor integrated circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526283A (en) * 2006-02-07 2009-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus and computer readable recording medium for clustering circuit elements of circuit design
JP2012063886A (en) * 2010-09-14 2012-03-29 Ricoh Co Ltd Automatic layout wiring method of semiconductor integrated circuit, layout device, automatic layout wiring program, and semiconductor integrated circuit

Similar Documents

Publication Publication Date Title
US6857107B2 (en) LSI layout method and apparatus for cell arrangement in which timing is prioritized
US8015522B2 (en) System for implementing post-silicon IC design changes
US8984470B2 (en) Method and apparatus for performing redundant via insertion during circuit design
US7795943B2 (en) Integrated circuit device and layout design method therefor
CN101587508B (en) Method, system and computer program product for determining routing of data paths in interconnect circuitry
CN100423012C (en) Techniqes for making sure of buffer insertion
US6625787B1 (en) Method and apparatus for timing management in a converted design
US6981233B2 (en) Method for analyzing path delays in an IC clock tree
US20150186589A1 (en) System for and method of placing and routing clock stations using variable drive-strength clock drivers built out of a smaller subset of base cells for hybrid tree-mesh clock distribution networks
US10068048B1 (en) Generating clock trees for a circuit design
US6938236B1 (en) Method of creating a mask-programmed logic device from a pre-existing circuit design
Ogawa et al. Efficient placement algorithms optimizing delay for high-speed ECL masterslice LSI's
US7612599B2 (en) Semiconductor device
CN115659901B (en) Distance wiring optimization method and device for chip physical design
US20050097493A1 (en) Gate reuse methodology for diffused cell-based IP blocks in platform-based silicon products
US7913219B2 (en) Orientation optimization method of 2-pin logic cell
Chang et al. On construction low power and robust clock tree via slew budgeting
JP2006146345A (en) Method and device for designing semiconductor integrated circuit
US6938232B2 (en) Floorplanning apparatus deciding floor plan using logic seeds associated with hierarchical blocks
JP2006107206A (en) Semiconductor integrated circuit design method
JP2013182600A (en) Design method for semiconductor integrated circuit, design device for semiconductor integrated circuit, circuit design program, and computer readable recording medium
US20080079468A1 (en) Layout method for semiconductor integrated circuit
JP5696407B2 (en) Semiconductor integrated circuit automatic placement and routing method, layout apparatus, automatic placement and routing program, and semiconductor integrated circuit
Zha et al. Defect-tolerant mapping of CMOL circuits with delay optimization
Sumanth Kumar et al. Minimal buffer insertion based low power clock tree synthesis for 3D integrated circuits