(57)【要約】【課題】回路の混雑度を低減し、回路設計期間を短縮することができる回路設計支援装置を提供する。【解決手段】回路設計情報に基づき素子配置領域に素子を配置する配置部１１と、所定のタイミング制約を満たすように前記素子へのクロック配線を行う配線部１２、１３と、クロックツリー及び各サブツリーの最大遅延時間及び最小遅延時間、及び各サブツリーまでの遅延時間に基づいて各サブツリーの遅延時間変動余裕度を算出する遅延分布抽出部１４と、クロックレイアウトの変更を行った場合の前記遅延時間変動余裕度及び回路混雑度の低減度を算出し、クロックレイアウトの変更を行うサブツリーを決定するサブツリー判定部１５と、遅延時間が所定範囲内となるようにサブツリーのクロックレイアウトの変更を行うレイアウト変更部１６と、を備える。【選択図】図１
2009016487.tif 000002
【特許請求の範囲】
【請求項１】
素子及び素子間の接続に関する回路設計情報を格納する回路情報格納部と、
前記回路設計情報に基づき素子配置領域に前記素子を配置する配置部と、
所定のタイミング制約を満たすように前記素子へのクロック配線を行う配線部と、
クロックツリーにおける最大遅延時間及び最小遅延時間、各サブツリーにおける最大遅延時間及び最小遅延時間、及び前記各サブツリーまでの遅延時間に基づいて前記各サブツリーの遅延時間変動余裕度を算出する遅延分布抽出部と、
各サブツリーに対しクロックレイアウトの変更を行った場合の前記遅延時間変動余裕度及び回路混雑度の低減度を算出し、この遅延時間変動余裕度及び回路混雑度の低減度に基づいてクロックレイアウトの変更を行うか否か判定するサブツリー判定部と、
前記サブツリー判定部によりクロックレイアウトの変更を行うと判定されたサブツリーに対し、遅延時間が所定範囲内となるようにクロックレイアウトの変更を行うレイアウト変更部と、
を備える回路設計支援装置。
【請求項２】
前記レイアウト変更部は、前記クロックツリーにおける最小遅延時間をＤｍｉｎ、前記クロックツリーにおける最大遅延時間をＤｍａｘ、前記サブツリーまでの遅延時間をＤｓ、前記サブツリー内の各パスの遅延時間をＤｎとした場合、Ｄｍｉｎ≦Ｄｎ＋Ｄｓ≦Ｄｍａｘを満たすように前記サブツリーのクロックレイアウトの変更を行うことを特徴とする請求項１に記載の回路設計支援装置。
【請求項３】
前記レイアウト変更部は、バッファの削除、バッファのサイズ変更、及び迂回配線の再配線を行うことを特徴とする請求項２に記載の回路設計支援装置。
【請求項４】
前記回路混雑度は後工程における信号線の配線可能面積に基づいて求められることを特徴とする請求項１乃至３のいずれかに記載の回路設計支援装置。
【請求項５】
素子及び素子間の接続に関する回路設計情報に基づき素子配置領域に前記素子を配置するステップと、
所定のタイミング制約を満たすように前記素子へのクロック配線を行うステップと、
クロックツリーにおける最大遅延時間及び最小遅延時間、各サブツリーにおける最大遅延時間及び最小遅延時間、及び前記各サブツリーまでの遅延時間に基づいて前記各サブツリーの遅延時間変動余裕度を算出するステップと、
各サブツリーに対しクロックレイアウトの変更を行った場合の前記遅延時間変動余裕度及び回路混雑度の低減度を算出し、この遅延時間変動余裕度及び回路混雑度の低減度に基づいてクロックレイアウトの変更を行うか否か判定するステップと、
前記クロックレイアウトの変更を行うと判定されたサブツリーに対し、遅延時間が所定範囲内となるようにバッファの削除、バッファのサイズ変更、及び迂回配線の再配線を行うステップと、
を有する回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計方法及び回路設計支援装置に関するものである。
【背景技術】
【０００２】
ＬＳＩのレイアウトにおいては、チップ内に散在するフリップフロップ等の複数の論理回路間に供給されるクロック信号の位相ずれ（クロックスキュー）を小さくするために、クロックツリー合成（クロックツリーシンセシス）が用いられている。
【０００３】
従来のクロックツリー合成方法としては、例えば、基本回路セルを配置し、クロックネット合成によりクロックネットにバッファを挿入・配置し、配線を行い、実配線から配線抵抗・配線容量を考慮しての遅延計算を行い、遅延計算結果に基づいて既に配置済みのバッファを特性（ドライブ能力やセル内遅延時間）が異なるバッファに置換するものが知られている（例えば特許文献１参照）。特性が異なるバッファとは例えば複数のバッファを縦列接続又は並列接続したものである。
【０００４】
クロックツリー合成はゼロスキュー（各セルまでの遅延を一定にする）を目標とするが、完全にゼロスキューとすることは困難であるため、ある範囲でのスキューは許容するように設定される。スキューは各セルまでのパスの最小遅延及び最大遅延で決定される。最小遅延、最大遅延を有するパス以外のパスの遅延は許容スキュー範囲に含まれていればどのような値でも良い。しかし、クロックツリー合成がゼロスキューを目標としているため、パスの遅延分布は、特定の遅延付近に集中するような分布となる。
【０００５】
スキューを規定するパス（最大遅延パス、最小遅延パス）以外のパスは必要以上に遅延調整されており、不要なバッファの挿入、迂回配線が行われている。このような不要バッファ、迂回配線は回路の混雑度を上昇させ、後工程（信号配線等）を困難にし、設計期間を増加させるという問題を有する。
【特許文献１】特開２００４−３２６４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は回路の混雑度を低減し、回路設計期間を短縮することができる回路設計方法及び回路設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様による回路設計支援装置は、素子及び素子間の接続に関する回路設計情報を格納する回路情報格納部と、前記回路設計情報に基づき素子配置領域に前記素子を配置する配置部と、所定のタイミング制約を満たすように前記素子へのクロック配線を行う配線部と、クロックツリーにおける最大遅延時間及び最小遅延時間、各サブツリーにおける最大遅延時間及び最小遅延時間、及び前記各サブツリーまでの遅延時間に基づいて前記各サブツリーの遅延時間変動余裕度を算出する遅延分布抽出部と、各サブツリーに対しクロックレイアウトの変更を行った場合の前記遅延時間変動余裕度及び回路混雑度の低減度を算出し、この遅延時間変動余裕度及び回路混雑度の低減度に基づいてクロックレイアウトの変更を行うか否か判定するサブツリー判定部と、前記サブツリー判定部によりクロックレイアウトの変更を行うと判定されたサブツリーに対し、遅延時間が所定範囲内となるようにクロックレイアウトの変更を行うレイアウト変更部と、を備えるものである。
【０００８】
本発明の一態様による回路設計方法は、素子及び素子間の接続に関する回路設計情報に基づき素子配置領域に前記素子を配置するステップと、所定のタイミング制約を満たすように前記素子へのクロック配線を行うステップと、クロックツリーにおける最大遅延時間及び最小遅延時間、各サブツリーにおける最大遅延時間及び最小遅延時間、及び前記各サブツリーまでの遅延時間に基づいて前記各サブツリーの遅延時間変動余裕度を算出するステップと、各サブツリーに対しクロックレイアウトの変更を行った場合の前記遅延時間変動余裕度及び回路混雑度の低減度を算出し、この遅延時間変動余裕度及び回路混雑度の低減度に基づいてクロックレイアウトの変更を行うか否か判定するステップと、前記クロックレイアウトの変更を行うと判定されたサブツリーに対し、遅延時間が所定範囲内となるようにバッファの削除、バッファのサイズ変更、及び迂回配線の再配線を行うステップと、を有するものである。
【発明の効果】
【０００９】
本発明によれば、回路の混雑度を低減し、回路設計期間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態による回路設計方法及び回路設計支援装置を図面に基づいて説明する。
【００１１】
図１に本発明の実施形態に係る回路設計支援装置の概略構成を示す。回路設計支援装置は演算装置１、記憶装置２、制御装置３を備え、表示装置４及び入出力装置５に接続されている。記憶装置２は回路情報格納部２１、チップ情報格納部２２、回路図データ格納部２３、セル情報格納部２４、サブツリー余裕度格納部２５を有する。
【００１２】
回路情報格納部２１は、チップに配置される論理ゲートや記憶素子（フリップフロップやラッチ）等の素子情報や各素子の接続情報（ネットリスト）等の回路設計情報を格納する。
【００１３】
チップ情報格納部２２は、素子が配置されるチップのサイズ等の情報を格納する。回路図データ格納部２３は、素子が配置されたチップ情報である回路図データを格納する。セル情報格納部２４は、素子に対応付けられた属性値等の情報を格納する。サブツリー余裕度格納部２５は各サブツリーの余裕度（遅延時間変動余裕度）を格納する。
【００１４】
余裕度とは「サブツリー内のパスのうち最大遅延及び最小遅延」と、「クロックツリー内のパスのうち最大遅延及び最小遅延からサブツリーまでの遅延を引いた値」との差である。
【００１５】
例えば、図２に示すように、抽出されたサブツリーＳＴ１に含まれる複数のパスのうち、最小遅延パスの遅延時間が０．２ｎｓ、最大遅延パスの遅延時間が０．４ｎｓ、このサブツリーＳＴ１までの遅延時間、すなわちクロックツリーの頂点Ｎ１からサブツリーＳＴ１の頂点Ｎ２までの遅延時間（クロック信号伝播時間）が０．４ｎｓとする。また、クロックツリー全体におけるパスのうち最小遅延パスの遅延時間が０．５ｎｓ、最大遅延パスの遅延時間が１．５ｎｓ、つまり許容遅延時間範囲が０．５ｎｓ〜１．５ｎｓであるとする。
【００１６】
このとき、頂点Ｎ１から見たサブツリーＳＴ１内のパスの遅延分布は０．６（＝０．２＋０．４）〜０．８（０．６＋０．２）ｎｓである。従って、クロックツリーの許容遅延時間範囲に収まるような遅延時間の変動範囲は遅延時間を小さくする方向に０．１ｎｓ、遅延時間を大きくする方向に０．７ｎｓとなり、余裕度は（０．１、０．７）となる。
【００１７】
演算装置１は自動配置部１１、配線部１２、クロックツリー合成部１３、遅延分布抽出部１４、サブツリー判定部１５、レイアウト変更部１６を有する。
【００１８】
自動配置部１１は、回路設計情報、チップ情報、セル情報等に基づいて素子の自動配置を行う。配線部１２は素子間のクロック配線を行う。素子の自動配置、クロック配線は公知の自動配置配線ツールを用いて行うことが出来る。
【００１９】
クロックツリー合成部１３は、所定のタイミング制約を満たすようにクロックバッファの挿入や迂回配線を行う。遅延分布抽出部１４はサブツリーの遅延分布を求める。また、各サブツリーの余裕度を求め、サブツリー余裕度格納部２５に格納する。
【００２０】
サブツリー判定部１５は、クロックツリーに含まれる複数のサブツリーそれぞれに対してレイアウト変更を行った場合の余裕度と混雑度低減度を算出する。
【００２１】
混雑度は後工程で信号線等を配線できる面積等に基づく値であり、この面積が小さい程、混雑度は大きい値となる。
【００２２】
余裕度に負の値が含まれておらず、かつ混雑度低減度が所定値以上であればそのサブツリーに対してレイアウト変更を行うと判定する。
【００２３】
一方、余裕度に負の値が含まれている場合は、サブツリーに含まれるパスのうち最大遅延パス又は最小遅延パスの遅延時間がクロックツリーの許容遅延時間範囲から外れることを意味するので、レイアウト変更は行わないと判定する。また、混雑度低減度が所定値未満の場合もレイアウト変更を行わないと判定する。
【００２４】
レイアウト変更を行うか否かの判定を行うサブツリーはサブツリー余裕度格納部２５に格納された各サブツリーの余裕度を参照し、余裕度の大きい順に行うようにしても良い。余裕度が大きい方がレイアウト変更後の余裕度に負の値が含まれることが少ないためである。
【００２５】
レイアウト変更部１６は、レイアウト変更を行うと判定されたサブツリーに対して、レイアウト変更を行う。レイアウト変更はバッファの削除、バッファのリサイズ、迂回配線の再配線である。
【００２６】
「バッファの削除」とは、それを削除しても遅延時間が許容遅延時間範囲内に収まるような過剰（無駄）なバッファを削除することである。
【００２７】
例えば図３（ａ）に示すように、バッファｂ１、ｂ２を介してクロック信号が１．３ｎｓ遅延して供給される回路ブロックＣ１とバッファｂ３、ｂ４を介してクロック信号が１．５ｎｓ遅延して供給される回路ブロックＣ２を有するサブツリーがあり（つまり回路ブロックＣ１とＣ２のスキューは０．２ｎｓ）、このサブツリーの余裕度が（０．４、０．１）、つまり許容遅延時間が０．９ｎｓ（＝１．３−０．４）〜１．６ｎｓ（＝１．５＋０．１）であるとする。
【００２８】
ここで、図３（ｂ）に示すようにバッファｂ４を削除し、回路ブロックＣ２にクロック信号を１．０ｎｓ遅延して供給するようにした場合、回路ブロックＣ１とＣ２のスキューは０．３ｎｓとなり、図３（ａ）の時よりもスキューが増加する。しかし、許容遅延時間範囲は０．９〜１．６ｎｓであるため、許容遅延時間範囲に収まっている。つまりバッファｂ４を削除しても回路動作には影響がなく、バッファｂ４を削除した分このサブツリーの混雑度を低減することが出来る。
【００２９】
バッファの削除では、このバッファｂ４のような、許容遅延時間範囲内に収まる上で不要なバッファを削除し、回路の混雑度を低くする。
【００３０】
「バッファのリサイズ」とは、そのサイズを小さくして遅延時間を小さくしてもスキューが許容スキュー範囲内に収まるような過度（無駄）にサイズの大きいバッファを、サイズの小さいバッファに変更することである。
【００３１】
例えば図４（ａ）に示すように、バッファｂ５、ｂ６を介してクロック信号が１．３ｎｓ遅延して供給される回路ブロックＣ３とバッファｂ７、ｂ８を介してクロック信号が１．５ｎｓ遅延して供給される回路ブロックＣ４を有するサブツリーがあり（つまり回路ブロックＣ３とＣ４のスキューは０．２ｎｓ）、このサブツリーの余裕度が（０．４、０．１）、つまり許容遅延時間が０．９ｎｓ〜１．６ｎｓであるとする。
【００３２】
ここで、図４（ｂ）に示すように、バッファｂ８をサイズの小さいバッファｂ９に変更し、回路ブロックＣ４にクロック信号を１．０ｎｓ遅延して供給するようにした場合、回路ブロックＣ３とＣ４のスキューは０．３ｎｓとなり、図４（ａ）の時よりもスキューが増加する。しかし、許容遅延時間範囲は０．９〜１．６ｎｓであるため、許容遅延時間範囲に収まっている。つまりバッファｂ８をサイズの小さいバッファｂ９に置換しても回路動作には影響がなく、バッファサイズを小さくした分このサブツリーの混雑度を低減することが出来る。
【００３３】
バッファのリサイズでは、このバッファｂ８のような、許容遅延時間範囲に収まる上で不必要にサイズの大きいバッファのサイズを小さくし、回路の混雑度を低くする。
【００３４】
また、「バッファの削除」と「バッファのリサイズ」を併せるようにしても良い。例えば図５（ａ）に示すように、バッファｂ１０、ｂ１１を介してクロック信号が１．３ｎｓ遅延して供給される回路ブロックＣ５とバッファｂ１２、ｂ１３を介してクロック信号が１．５ｎｓ遅延して供給される回路ブロックＣ６を有するサブツリーがあり（つまり回路ブロックＣ５とＣ６のスキューは０．２ｎｓ）、このサブツリーの余裕度が（０．４、０．１）、つまり許容遅延時間が０．９ｎｓ〜１．６ｎｓであるとする。
【００３５】
ここで、図５（ｂ）に示すように、２つのバッファｂ１２、ｂ１３を１つのバッファｂ１４（但し、バッファｂ１２、ｂ１３のサイズ＜バッファｂ１４のサイズ＜バッファｂ１２とｂ１３のサイズの和）に変更し、回路ブロックＣ６にクロック信号を１．０ｎｓ遅延して供給するようにした場合、回路ブロックＣ５とＣ６のスキューは０．３ｎｓとなり、図５（ａ）の時よりもスキューが増加する。しかし、許容遅延時間範囲は０．９〜１．６ｎｓであるため、許容遅延時間範囲に収まっている。つまりバッファｂ１２、ｂ１３をまとめて１つのバッファｂ１４に置換しても回路動作には影響がなく、合計バッファサイズを小さくした分このサブツリーの混雑度を低減することが出来る。
【００３６】
「迂回配線の再配線」とは、配線を迂回させ遅延時間を確保している配線（迂回配線）のうち、迂回を小さくして遅延時間を短くしてもスキューが許容スキュー範囲内に収まるような過剰（無駄）な迂回をしている迂回配線の迂回を小さくするように配線し直すことである。例えば迂回配線を最短経路配線に再配線する。
【００３７】
例えば図６（ａ）に示すように、  バッファｂ１５を介してクロック信号が１．３ｎｓ遅延して供給される回路ブロックＣ７とバッファｂ１６、迂回配線Ｌ１を介してクロック信号が１．５ｎｓ遅延して供給される回路ブロックＣ８を有するサブツリーがあり（つまり回路ブロックＣ７とＣ８のスキューは０．２ｎｓ）、このサブツリーの余裕度が（０．４、０．１）、つまり許容遅延時間が０．９ｎｓ〜１．６ｎｓであるとする。
【００３８】
ここで、図６（ｂ）に示すように、迂回配線Ｌ１を迂回が小さく（遅延時間が短く）なるような最短経路配線Ｌ２に配線し直し、回路ブロックＣ８にクロック信号を１．０ｎｓ遅延して供給するようにした場合、回路ブロックＣ７とＣ８のスキューは０．３ｎｓとなり、図６（ａ）の時よりもスキューが増加する。しかし、許容遅延時間範囲は０．９〜１．６ｎｓであるため、許容遅延時間範囲に収まっている。つまり迂回配線Ｌ１を最短経路配線Ｌ２に変更しても回路動作には影響がなく、配線の迂回を小さくした分このサブツリーの混雑度を低減することが出来る。
【００３９】
迂回配線の再配線では、この迂回配線Ｌ１のような、許容遅延時間範囲に収まる上で不必要に迂回をして遅延時間を確保している配線を迂回が小さく（遅延時間が短く）なるように配線し直して、回路の混雑度を低くする。
【００４０】
制御装置３はデータ転送制御を行う。表示装置４は、論理ゲートや記憶素子の配置、配線等が行われた回路図を表示する。入出力装置５は、ユーザからのタイミング制約等の指示入力や回路図データの外部への出力などを行う。
【００４１】
本実施形態による回路設計支援装置によれば許容遅延時間範囲を満たす上で不要なバッファの削除、不要に大きいバッファサイズの低減、不要に迂回した配線の再配線を行う。これにより、回路の混雑度が低減され、後工程（信号線の配線等）が容易になり、回路設計期間を短縮することができる。
【００４２】
本実施形態による回路設計方法を図７に示すフローチャートを用いて説明する。
（ステップＳ７０１）自動配置部１１により素子が自動配置される。
（ステップＳ７０２）配線部１２により配線処理が行われ、クロックツリー合成部１３によりタイミング制約を満たすようにクロックツリーが構成される。
（ステップＳ７０３）遅延分布抽出部１４により各サブツリーの遅延分布及び余裕度が算出される。
（ステップＳ７０４）サブツリー判定部１５により、レイアウト変更（バッファの削除、バッファのリサイズ、迂回配線の再配線）を行った場合の各サブツリーの余裕度と、混雑度低減度が算出される。
（ステップＳ７０５）レイアウト変更後の余裕度に負の値がなく、かつ混雑度低減度が所定値以上のサブツリーがある場合はステップＳ７０６へ進む。無い場合は処理を終了する。
（ステップＳ７０６）サブツリーに対してレイアウト変更部１６によりレイアウト変更（バッファの削除、バッファのリサイズ、迂回配線の再配線）が行われる。
【００４３】
ステップＳ７０１、Ｓ７０２ではゼロスキューを目標としてクロックレイアウトを行うため、ステップＳ７０２終了時におけるサブツリー内のパスの遅延分布は、図８（ａ）に示すように特定の遅延（図中ｄ１）に集中するような分布になる。
【００４４】
しかし、スキューを決定するのは最大遅延パスと最小遅延パスであり、その他のパスの遅延時間は最小遅延以上最大遅延以下であればどのような値でも良い。従って、上記のように許容スキュー範囲に収まる上で不要なバッファの削除等のレイアウト変更を行い、回路の混雑度を低減する。なお、レイアウト変更後の遅延分布は例えば図８（ｂ）に示すような分布になる。
【００４５】
本実施形態に係る回路設計方法によれば許容遅延時間範囲を満たす上で不要なバッファの削除、不要に大きいバッファサイズの低減、不要に迂回した配線の再配線を行い、回路の混雑度を低減させる。これにより、後工程（信号線の配線等）が容易になり、回路設計期間を短縮することができる。
【００４６】
上述した実施の形態は一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４７】
【図１】本実施形態による回路設計支援装置の概略構成図である。
【図２】サブツリーの遅延分布の一例を示す図である。
【図３】レイアウト変更の一例を示す図である。
【図４】レイアウト変更の一例を示す図である。
【図５】レイアウト変更の一例を示す図である。
【図６】レイアウト変更の一例を示す図である。
【図７】本実施形態による回路設計方法を示すフローチャートである。
【図８】レイアウト変更前後の遅延分布を示す図である。
【符号の説明】
【００４８】
１  演算装置
２  記憶装置
３  制御装置
４  表示装置
５  入出力装置
１１  自動配置部
１２  配線部
１３  クロックツリー合成部
１４  遅延分布抽出部
１５  サブツリー判定部
１６  レイアウト変更部
２１  回路情報格納部
２２  チップ情報格納部
２３  回路図データ格納部
２４  セル情報格納部
２５  サブツリー余裕度格納部
【図１】
2009016487.tif 000003
【図２】
2009016487.tif 000004
【図３】
2009016487.tif 000005
【図４】
2009016487.tif 000006
【図５】
2009016487.tif 000007
【図６】
2009016487.tif 000008
【図７】
2009016487.tif 000009
【図８】
2009016487.tif 000010