JP2006107206A - Semiconductor integrated circuit design method - Google Patents
Semiconductor integrated circuit design method Download PDFInfo
- 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
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
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
また第2の例として特許文献2では、バイナリツリー状のクロック配線経路の分岐点を一旦設定した後、共通の親分岐点を持つ兄弟分岐点間を結線し、その実配線経路上でRCディレイのバランスがとれるところを新たな親分岐点位置として更新し、これをボトムアップに繰り返して詳細配線経路を決定する。またバッファセル詳細配置位置決定後、同一階層でのディレイを等しくするようバッファセル近傍の経路に迂回部分を含ませるようにしている。また詳細配線経路の通過を許さないセルをクロックの詳細配線経路と交わらない位置に変更している。この方法では、階層毎に遅延時間が最適化され、かつ詳細配線の負荷容量も均一にしやすく、クロックラインの伝播遅延時間の削減とクロックスキューの低減が可能となる。
As a second example, in
また第3の例として特許文献3では、クロックスキューを少なくするため、クロックネットに所定の機能素子に加えて、少なくとも1つのダミー素子を付加し、各クロックネットの負荷容量と配線長が一致、若しくは近い値になるようにしている。この方法も負荷が均一になりやすいので、クロックスキューの低減が可能である。
As a third example, in
また近年の微細化プロセスでの半導体集積回路の設計では、チップ内でのトランジスタ特性のばらつきの影響についても考慮することが重要である。ばらつきを考慮したタイミング解析について、以下に簡単に説明する。 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
図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
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
次に図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
式2,式4からわかるとおり、クロックラインの分岐点からデータの送受信をするFFのクロック入力端子までの距離が長くなるほど、T1、T3の値が大きくなるため、オンチップ変動タイミング解析ではホールドマージン、セットアップマージンのいずれも不利になる。したがってクロック信号の伝播遅延時間を削減することが、ばらつきの対策として有効と考えられる。回路規模が大きく、クロック信号の伝播遅延時間の削減が難しい場合は、FF数の上限を設定し、予めその範囲内で機能ブロック毎にクロックを分割するようにネットリストを作成した上で、レイアウトを行う方法が考えられる。
しかしながら、前述のような通常のクロックツリー生成では、回路規模がより大きく、またセルの配置領域が複雑な形状になるほど、負荷が均一になるようにクラスタ処理を行うことが難しくなるため、クロックスキューの低減ができなくなるという問題がある。 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
また、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
また、特許文献3に示されているように、クロックネットを駆動するバッファの負荷容量を等しくするためにダミー素子を追加する方法を用いると、そのダミー素子を配置するための領域が必要になり、またダミー素子とバッファを接続するための配線を追加することにより配線混雑が起こる可能性もあり、チップ面積の増加が発生するという問題がある。
Further, as shown in
また、チップ内でのトランジスタ特性のばらつきの影響を緩和するために、大規模な半導体集積回路において、予め機能ブロック毎にクロックを分割するようにネットリストを作成した上で、レイアウトを行う方法では、実際にタイミング制約を用いて自動配置を行うと、入力クロックが同じ機能ブロックの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
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
図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
次に工程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
工程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
以上のように、まず配置情報に基づいて、クロックスキューが目標値以下になるまで第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
次に第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
工程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
ここでグループ間の信号接続の度合いを考慮して階層的にグループ化処理を行う段数を工程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
以下、図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
工程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
以上のように本実施の形態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〜8 第1のグループ
9,64 クロック入力端子
10〜15 ハードマクロ
20 フリップフロップ
21 中継バッファ
22 遅延素子
23 中継バッファ
24 中継バッファ
SI0〜SI6 スキャン入力端子
SO0〜SO6 スキャン出力端子
1-8
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.
前記第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.
該グループ化の対象を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のグループをまとめる組み合わせを決定し、これらの組み合わせにより得られるグループを次の階層における第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.
前記ハードマクロ内部にフリップフロップまたはラッチが存在する場合に、ハードマクロのクロック入力端子からハードマクロ内部のフリップフロップまたはラッチまでの伝播遅延時間とバッファ段数とを識別することを特徴とする請求項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.
前記第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.
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)
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 |
-
2004
- 2004-10-06 JP JP2004294145A patent/JP2006107206A/en active Pending
Cited By (2)
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 |