説明

クロックツリー合成装置、クロックツリー合成方法及びプログラム

【課題】半導体集積回路のCTSにおいて、クロック遅延時間を削減すること。
【解決手段】CTS装置は、クロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出し、重心座標から遠いフリップフロップから順に、重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出し、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出し、クロック遅延時間とデータ遅延時間との和がクロックドメインのクロックの1周期よりも長いフリップフロップを選択し、選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであると判定された場合には、選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路のクロックツリー合成装置、クロックツリー合成方法及びプログラムに関する。
【背景技術】
【0002】
LSIにおけるロジック回路の設計手法として、同一のクロックで動作するフリップフロップ間でデータの受け渡しを行う同期設計が主流となっている。同期設計においては、クロックツリー合成(CTS:Clock Tree Synthesis)に基いて、各フリップフロップまでのクロックスキューの合わせ込みが行われている。LSIの大規模化に伴い、フリップフロップの数が増大し、クロックソースから最も遠いフリップフロップへの距離も長くなってきている。クロックスキューの合わせ込みは、一般に、最も遠いフリップフロップのクロックの遅延に合わせて行われるため、CTSが有する全体のクロックの遅延時間が増大している。
【0003】
一方、近年の半導体集積回路のプロセスの微細化に伴い、半導体集積回路の製造過程におけるトランジスタのばらつきが特性に与える影響が大きくなっている。ばらつきは、一般に、チップ内ばらつき(OCV:On Chip Variation)としてタイミング設計時において考慮される。OCVの値は、クロックの遅延時間の20%にも及んでいる。クロック遅延時間は、CTSが有する全体のクロックの遅延時間であり、OCVによる影響分は動作周期から差し引かれることから、遅延時間が大きくなるにしたがって、OCVがタイミング設計に与える影響も大きくなる。
【0004】
このように動作周波数が高くなるにしたがって、OCVによる影響がクロック遅延時間に占める割合は大きくなり、データパスの遅延時間を短縮することが困難となる。半導体集積回路の大規模化に伴い、設計ツールの実行時間も長くなってきている。したがって、OCVの影響によって、タイミング収束のためのイタレーション時間が増大することが問題となっている。
【0005】
上記のようにデータパスの遅延時間短縮だけではタイミング収束は困難となってきており、OCVによる影響を減らすためにクロック遅延時間を削減し、タイミング設計のイタレーション回数を削減する技術が期待されている。
【0006】
特許文献1において、回路のクロック情報に基づいて、回路におけるCTSツリーが互いに排他となり重複部分がないようにCTSツリーを分割するために必要となるフォルスパスと、CTSツリー上に存在するフリップフロップ以外のポイントをリーフ扱いするためのリーフポイントとを、コンピュータによって抽出するクロック合成方法が記載されている。
【0007】
また、特許文献2において、CTSツリーの分岐がツリー末端側に位置するように、ツリー構造を変更する技術が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−085595号公報(図2、図5)
【特許文献2】特開2007‐027841号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以下の分析は、本発明者によってなされたものである。
【0010】
特許文献1に記載されたクロック合成方法によると、CTSツリーを分割することにより、クロックソースからのクロック遅延時間は短縮するものの、分割したCTSツリー間のフリップフロップ同士のスキュー調整が必要となるため、クロック遅延時間が増大し、タイミング設計が一度で収束せず、タイミング設計のイタレーション回数が増えるという問題がある。
【0011】
特許文献1に記載された方法によると、CTSツリーを分割することにより、CTS構築後はスキュー調整対象のフリップフロップ数が少なくなるため、クロックの遅延時間は短縮される。しかし、特許文献1の図5を参照すると、フリップフロップFF2とフリップフロップFF3のスキュー調整を行うために、アンドゲートAND1とセレクタSEL2の間にバッファが挿入される。したがって、クロック遅延時間はCTSツリーを分割する以前と変わらず、タイミング設計のイタレーションが生じる。
【0012】
そこで、半導体集積回路のクロックツリー合成において、クロック遅延時間を削減することが課題となる。本発明の目的は、かかる課題を解決するクロックツリー合成装置、クロックツリー合成方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0013】
本発明の第1の視点に係るクロック合成装置は、
半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する距離算出部と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出するクロック遅延時間算出部と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出するデータ遅延時間算出部と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択部と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する判定部と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する合成部と、を備えている。
【0014】
本発明の第2の視点に係るクロック合成方法は、
コンピュータが、半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する工程と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する工程と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する工程と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択工程と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する工程と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する工程と、を含む。
【0015】
本発明の第3の視点に係るプログラムは、
半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標と各フリップフロップとの距離を算出する処理と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する処理と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する処理と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択処理と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する処理と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する処理とを、コンピュータに実行させる。
【発明の効果】
【0016】
本発明に係るクロックツリー合成装置、クロックツリー合成方法及びプログラムによると、半導体集積回路のクロックツリー合成において、クロック遅延時間を削減することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の第1の実施形態に係るクロックツリー合成装置の構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るクロックツリー合成装置の動作を示すフローチャートである。
【図3】本発明の第2の実施形態に係るクロックツリー合成方法を示すフローチャートである。
【図4】本発明の第2の実施形態に係るクロックツリー合成方法を実現するためのシステム構成を一例として示す図である。
【図5】本発明の第2の実施形態に係るクロックツリー合成方法について説明するための図である。
【発明を実施するための形態】
【0018】
本発明の第1の展開形態によると、上記第1の視点に係るクロックツリー合成装置が提供される。
【0019】
本発明の第2の展開形態によると、前記距離算出部は、前記複数のフリップフロップの座標の算術平均として前記重心座標を求める、クロックツリー合成装置が提供される。
【0020】
本発明の第3の展開形態によると、前記距離算出部は、前記重心座標と各フリップフロップとの距離を、マンハッタン距離として算出する、クロックツリー合成装置が提供される。
【0021】
本発明の第4の展開形態によると、前記選択部は、前記データ遅延時間をT、前記クロック遅延時間をT、クロックの周期をT、製造ぱらつき係数をαとし、T<T+T−α×Tを満たすフリップフロップを選択する、クロックツリー合成装置が提供される。
【0022】
本発明の第5の展開形態によると、前記選択部は、前記データ遅延時間をT、前記クロック遅延時間をT、クロックの周期をT、製造ぱらつき係数をαとし、T<T+T−α×Tを満たすフリップフロップを選択する、クロックツリー合成装置が提供される。
【0023】
本発明の第6の展開形態によると、上記第2の視点に係るクロックツリー合成方法が提供される。
【0024】
本発明の第7の展開形態によると、上記第3の視点に係るプログラムが提供される。
【0025】
クロックドメインにおけるフリップフロップの重心座標から離れており、スキュー調整対象外であるフリップフロップを、スキュー調整対象としてCTSを構築した場合には、クロック遅延が増してしまう。本発明に係るクロックツリー合成装置は、かかるフリップフロップを抽出し、スキュー調整対象外としてCTS制約に追加する。このとき、スキュー調整が必要なフリップフロップのみについてCTSを行い、クロック遅延時間を削減することができる。したがって、本発明に係るクロックツリー合成装置によると、クロック遅延が不要に増大することを防ぎ、不要なイタレーションを回避することができる。
【0026】
(実施形態1)
本発明の第1の実施形態に係るクロック合成装置について、図面を参照して説明する。図1は、本実施形態に係るクロックツリー合成装置10の構成を示すブロック図である。
【0027】
図1を参照すると、クロックツリー合成装置10は、距離算出部11、クロック遅延時間算出部12、データ遅延時間算出部13、選択部15、判定部16及び合成部17を有する。
【0028】
距離算出部11は、半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する。
【0029】
クロック遅延時間算出部12は、前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する。
【0030】
データ遅延時間算出部13は、前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する。
【0031】
選択部15は、前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する。
【0032】
判定部16は、選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する。
【0033】
合成部17は、フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する。
【0034】
図2は、本実施形態に係るクロックツリー合成装置10の動作を示すフローチャートである。
【0035】
図2を参照すると、距離算出部11は、半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する(ステップS11)。
【0036】
クロック遅延時間算出部12は、前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する(ステップS12)。
【0037】
データ遅延時間算出部13は、前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する(ステップS13)。
【0038】
選択部15は、前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する(ステップS15)
【0039】
判定部16は、選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する(ステップS16)
【0040】
合成部17は、判定部16においてフォルスであると判定された場合には(ステップS16のYes)、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する(ステップS17)。
【0041】
本実施形態のクロックツリー合成装置10は、クロックドメインにおけるフリップフロップの重心座標から離れており、スキュー調整対象外であるフリップフロップを抽出し、スキュー調整対象外としてCTS制約に追加する。このとき、スキュー調整が必要なフリップフロップのみについてCTSを行い、クロック遅延時間を削減することができる。したがって、本実施形態のクロックツリー合成装置10によると、半導体集積回路のクロックツリー合成において、クロック遅延時間を削減することができる。
【0042】
(実施形態2)
本発明の第2の実施形態に係るクロック合成方法について、図面を参照して説明する。図3は、本実施形態のクロックツリー合成方法に基く、半導体集積回路の設計方法のフローチャートを示す。図3は、セル配置(ステップS100)からCTSの構築(ステップS112)までの手順を示す。
【0043】
図4は、本実施形態に係るクロック合成方法を実現するクロック合成装置のシステム構成を一例として示す図である。図4を参照すると、クライアント204とサーバ202は、ネットワーク203を介して接続されている。
【0044】
サーバ202は、記録媒体201を有する。図3に示したクロックツリー合成方法のステップS101〜S112を実行する際、サーバ202に設けられた記録媒体201は、実行プログラム、回路素子及びマクロのライブラリ、回路のネットリスト等のデータを保持する。
【0045】
クライアント204は、記録媒体201に格納されている実行プログラム及びデータを、ネットワーク203を介してダウンロードし、自身のハードディスク、メモリなどに格納して、クロックツリー合成を行う。
【0046】
図3を参照して、本実施形態のクロック合成方法について説明する。ネット接続情報50を入力として、チップ上にセルを配置し、デザインデータファイル(以下「DEFファイル」という)51を出力する(ステップS100)。DEFファイル51は、配置されたセルの座標情報を含むデータファイルである。
【0047】
次に、チップ上に配置された同一クロックドメインに含まれるすべてのフリップフロップの重心座標からの距離が遠い順に、フリップフロップを並べる(ステップS60)。ここで、ステップS60の詳細について説明する。
【0048】
まず、CTS制約ファイル53に記載されたルート定義箇所と、セル配置(ステップS100)後のネット接続情報52を、クロックライントレースツールに入力して、CTS制約ファイル53に記載されたルート定義箇所の順に同一のクロックドメインに接続されたすべてのフリップフロップを抽出し、各クロックドメインに接続されたフリップフロップリスト54を出力する(ステップS101)。
【0049】
ここで、ルート定義情報は、CTSのルートと定義する箇所のインスタンス名が記載されている制約である。クロックライントレースツールは、指定されたインスタンス名のクロックラインに接続されたセルをトレースするツールである。
【0050】
セル配置(ステップS100)後のDEFファイル51に記載された座標情報に基いて、ステップS101で抽出された各フリップフロップのセル座標(X,Y)のX座標、Y座標のそれぞれの平均値を算出し、各クロックドメインの重心座標(X,Y)を求める(ステップS102)。ここでは、重心座標をルートバッファ位置とする。
【0051】
重心座標(X,Y)から、ステップS101で抽出された各フリップフロップまでの距離を算出する(ステップS103)。距離としては、一例として、マンハッタン距離を用いることができる。
【0052】
次に、重心座標(X,Y)からの距離が遠い順にフリップフロップを並べた、フリップフロップリスト55を出力する(ステップS103)。
【0053】
次に、データパスのデータ遅延時間(遅延時間B)を算出する処理(ステップS61)と、クロックラインのクロック遅延時間(遅延時間A)を算出する処理(ステップS106)とを並行して行う。
【0054】
次に、算出された遅延時間Aと遅延時間Bに基き、製造ばらつきを考慮して算出したデータ遅延時間(遅延時間C)が、当該クロックドメインにおけるクロックの1周期よりも長いか否かを判定する(ステップS107)。
【0055】
重心座標から最も遠いフリップフロップの前段のフリップフロップを抽出し、重心座標から最も遠いフリップフロップとその前段のフリップフロップの距離からデータ遅延時間を算出する(ステップS61)。以下にステップS61の詳細を示す。
【0056】
フリップフロップリスト55に記載された重心座標から最も遠いフリップフロップから順に、タイミング制約56を基にパス解析を行い、重心座標から最も遠いフリップフロップの前段のフリップフロップを抽出し、前段のフリップフロップ57を出力する(ステップS104)。パス解析は、一般的なパストレースツールを用いて行うことができる。
【0057】
フリップフロップリスト55に記載された重心座標から最も遠いフリップフロップと、ステップS104で抽出した重心座標から最も遠いフリップフロップの前段のフリップフロップとの距離からデータラインの遅延時間(以下「データ遅延時間(T)」という)を算出する(ステップS105)。
【0058】
重心座標から最も遠いフリップフロップとステップS104で抽出した重心座標から最も遠いフリップフロップの前段のフリップフロップとの間のデータパスの遅延時間は、後記のタイミング判定で緩い条件でもタイミング設計が困難な場合を想定するため、データパス中の論理はバッファのみとし、マンハッタン距離で最短に配置されたものとする。1つのバッファが駆動できる距離をL1、次段のバッファとの間の配線遅延時間をN1、バッファ自体の遅延時間をC1とする。このとき、1つのバッファが駆動するときに要する遅延時間は、距離L1ごとにN1+C1となる。
【0059】
ステップS102で求めた重心座標をルートとして、フリップフロップリスト55に記載された重心座標から最も遠いフリップフロップに合わせてCTSツリーを張った時のクロックラインの遅延時間(以下「クロック遅延時間(T)」という)を算出する(ステップS106)。
【0060】
CTSツリーを構成する1つのバッファが駆動し得る距離をL2とし、そのバッファと次段のバッファの間の配線遅延時間をN2とし、バッファ自身の遅延時間をC2とする。このとき、CTSツリーを構成する1つのバッファが駆動するときに要する遅延時間は、距離L2ごとにN2+C2となる。
【0061】
ステップS105で算出されたデータ遅延時間(T)とステップS106で算出されたクロック遅延時間(T)から、製造ばらつき係数をαとし、当該クロックの1周期をTとして、T<T+T−α×Tである場合には、重心座標から遠いフリップフロップであると判定し(ステップS107のYes)、ステップS109に進む。
【0062】
次に、タイミング制約56を入力して、前段のフリップフロップとのタイミングがフォルスであるか否かを判定する(ステップS109)。フォルスと判定された場合には(ステップS109のYes)、ステップS110に進む。
【0063】
次に、重心座標から遠いフリップフロップをCTS制約ファイル58に、当該クロックドメインに対するスキュー調整対象外として制約を追加する(ステップS110)。
【0064】
フリップフロップリスト55における次のフリップフロップを選択して(ステップS111)、ステップS61以降及びステップS106以降を行い、フリップフロップリスト55に記載されたフリップフロップのすべてが選択された場合には、ループを終了する。
【0065】
ステップS107又はS109において、重心座標から遠いフリップフロップでないと判定された場合(ステップS107のNo)、又は、フォルスでないと判定された場合には(ステップS109のNo)、ステップS108に進む。CTS制約ファイル53に記載された次のクロックドメインを選択し(ステップS108)、ステップS102に戻って同様の処理を繰り返す。なお、CTS制約ファイル53に記載されたクロックドメインのすべてが選択された場合には、ループ処理を終了する。
【0066】
ステップS110で作成されたCTS制約ファイル58に基いて、CTS構築を行い(ステップS112)、処理を終了する。
【0067】
図5は、本実施形態のクロックツリー合成方法について説明するための図である。図5は、本実施形態のクロックツリー合成方法に従って、重心座標から遠いフリップフロップを、クロックドメインに対するスキュー調整対象外として、CTS構築を行う場合のレイアウト図である。
【0068】
図5を参照すると、同一クロックドメインのフリップフロップが17個存在する。また、図3のステップS110においてCTSスキュー調整対象外としてCTS制約に追加された1個のフリップフロップが、存在する場合のセルの配置図を示したものである。
【0069】
図3のステップS102で算出されたルートバッファ位置にルートバッファR71を置く。フリップフロップF/FAは、ステップS109で前段のフリップフロップとはフォルスと判定された重心座標から遠いフリップフロップである。これ以外のフリップフロップは、前段のフリップフロップとはフォルスでないと判定されたフリップフロップである。
【0070】
フリップフロップF/FAを含めてCTSを構築した場合には、ルートバッファR71から最も遠いフリップフロップF/FAのクロック遅延に合わせるため、CTSツリーの領域は、図4のCTSツリー領域40となる。一方、フリップフロップF/FAをスキュー調整対象外としてCTSを構築した場合には、CTSツリーの領域は、図4のCTSツリー領域41内に納まるため、クロック遅延時間が削減される。
【0071】
本実施形態に係るクロックツリー合成方法は、半導体集積回路のクロックツリー合成方法において、
チップ上に配置された同一クロックドメインのすべてのフリップフロップの座標を抽出する工程(ステップS101)と、
抽出された座標のX座標及びY座標の平均値として、重心座標を算出する工程(ステップS102)と、
算出された重心座標から各フリップフロップまでの距離を算出する工程(ステップS103)と、
算出された距離に基いて、前記重心座標から遠いフリップフロップから順に、クロックラインにおけるクロック遅延時間(遅延時間A)を算出する工程(ステップS106)と、
前記重心座標から遠いフリップフロップから順に、当該フリップフロップとその前段のフリップフロップとの距離を抽出し、この距離に基いてデータパスにおけるデータ遅延時間(遅延時間B)を算出する工程(ステップS105)と、
前記遅延時間A及び前記遅延時間Bに基いて、製造ばらつきを考慮したデータ遅延時間(遅延時間C)を算出し、当該クロックドメインにおけるクロックの1周期よりも長い遅延時間Cを有するフリップフロップを選択する工程(ステップS107)と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する工程(ステップS109)と、
フォルスであると判断された場合には、当該フリップフロップをスキュー調整の対象外としてCTSを構築する工程(ステップS110)とを含む。
【0072】
これにより、クロック遅延が不要に大きくなることを防ぎ、不要なイタレーションを避けることができる。その理由は、次の通りである。
【0073】
同一クロックドメインのフリップフロップの重心座標から離れており、スキュー調整対象外であるフリップフロップを、スキュー調整対象としてCTSを構築した場合には、クロック遅延が増大する。本実施形態に係るクロックツリー合成方法によると、かかるフリップフロップを抽出して、スキュー調整対象外としてCTS制約に追加することで、スキュー調整が必要なフリップフロップのみについてCTSを行い、クロック遅延時間を削減することができる。
【0074】
すなわち、本実施形態のクロック合成方法では、同一のクロックドメインにおいて、製造ばらつきによるスキューが増える要因となる、他のフリップフロップから離れたフリップフロップを抽出し、前段のフリップフロップとのタイミングがフォルスである場合には、そのフリップフロップを、クロックドメインのスキュー調整対象から除外する。
【0075】
したがって、本発明によると、CTS構築後のタイミング設計が一度で収束せず、タイミング設計のイタレーション回数が多くなるという、特許文献1に記載された技術の問題を解消することができる。また、CTS構築時に不要なスキュー調整を行わないことで、不要な製造ばらつきによるスキューもなくなり、CTSにおける不要なタイミング収束のイタレーションを回避することができる。
【0076】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0077】
10 クロックツリー合成装置
11 距離算出部
12 クロック遅延時間算出部
13 データ遅延時間算出部
15 選択部
16 判定部
17 合成部
40、41 CTSツリー領域
50、52 ネット接続情報
51 デザインデータファイル(DEFファイル)
53 CTS制約ファイル
54 各クロックドメインに接続されたフリップフロップリスト
55 遠い順のフリップフロップリスト
56 タイミング制約
57 前段のフリップフロップ
58 CTS制約ファイル
201 記録媒体
202 サーバ
203 ネットワーク
204 クライアント
R71 ルートバッファ
F/FA フリップフロップ

【特許請求の範囲】
【請求項1】
半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する距離算出部と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出するクロック遅延時間算出部と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出するデータ遅延時間算出部と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択部と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する判定部と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する合成部と、を備えていること特徴とするクロックツリー合成装置。
【請求項2】
前記距離算出部は、前記複数のフリップフロップの座標の算術平均として前記重心座標を求めることを特徴とする、請求項1に記載のクロックツリー合成装置。
【請求項3】
前記距離算出部は、前記重心座標と各フリップフロップとの距離を、マンハッタン距離として算出することを特徴とする、請求項1又は2に記載のクロックツリー合成装置。
【請求項4】
前記選択部は、前記データ遅延時間をT、前記クロック遅延時間をT、クロックの周期をT、製造ぱらつき係数をαとし、T<T+T−α×Tを満たすフリップフロップを選択することを特徴とする、請求項1乃至3のいずれか1項に記載のクロックツリー合成装置。
【請求項5】
コンピュータが、半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する工程と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する工程と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する工程と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択工程と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する工程と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する工程と、を含むこと特徴とするクロックツリー合成方法。
【請求項6】
半導体集積回路のクロックドメインに接続された複数のフリップフロップの重心座標を求め、求めた重心座標と各フリップフロップとの距離を算出する処理と、
前記重心座標から遠いフリップフロップから順に、前記重心座標からのクロックラインにおける遅延時間をクロック遅延時間として算出する処理と、
前記重心座標から遠いフリップフロップから順に、前段のフリップフロップとの距離を求め、求めた距離からデータパスにおける遅延時間をデータ遅延時間として算出する処理と、
前記クロック遅延時間と前記データ遅延時間との和が前記クロックドメインのクロックの1周期よりも長いフリップフロップを選択する選択処理と、
選択されたフリップフロップと前段のフリップフロップとのデータパスがフォルスであるか否かを判定する処理と、
フォルスであると判定された場合には、前記選択されたフリップフロップをスキュー調整の対象外としてクロックツリーを合成する処理とを、コンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−141805(P2011−141805A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−2877(P2010−2877)
【出願日】平成22年1月8日(2010.1.8)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】