(57)【要約】【課題】チップを任意のブロック化条件下で切り出したブロックに対し、適切なタイミング制約を作成することにより、効率的な階層設計を実現する。【解決手段】チップのネットリスト、配置配線情報を読込む（チップレイアウト読込み手段１０５）。次に、ブロック化条件を与え、ブロックに関するレイアウト情報を抽出する（ブロックのレイアウト情報抽出手段１０６）。次に、チップのタイミング解析を行ない、チップのタイミング制約と、タイミング解析結果を格納する（チップのタイミング解析手段１０７）。チップのタイミング制約をもとに、回路を探索しながらブロックのクロック制約を作成する。チップのタイミング解析結果から、ブロックの境界端子制約を作成する。チップのタイミング例外制約及びチップのタイミング解析結果を利用して、ブロックのタイミング例外制約を作成する（ブロックのタイミング制約算出手段１０８）。【選択図】図１
2009199466.tif 000002
【特許請求の範囲】
【請求項１】
集積回路が形成されるチップのタイミング解析を実行し、
任意のブロック化条件に基づいて前記チップから特定されたブロックについて、チップのタイミング制約と、前記チップのタイミング解析結果と、ブロックのレイアウト情報とからブロックのタイミング制約を算出する、
ことを特徴とするタイミング制約生成方法。
【請求項２】
前記チップのタイミング解析は、該チップのタイミング制約を読込み、タイミング解析結果を記憶装置に格納することを特徴とする請求項１に記載のタイミング制約生成方法。
【請求項３】
前記チップのタイミング解析は、該チップのタイミング制約を読込み、複数のブロック間を経由するパス或はブロック内を出入りするパスについて、タイミングバジェッティングを行い、バジェッティング結果を考慮したタイミング解析結果を記憶装置に格納することを特徴とする請求項１または２に記載のタイミング制約生成方法。
【請求項４】
前記ブロックのタイミング制約の算出は、前記チップのクロック制約から該ブロックのクロック制約を抽出し、該抽出したクロック制約と、前記チップのタイミング解析結果と、前記ブロックのレイアウト情報とから、ブロックの境界端子制約を算出することを含むことを特徴とする請求項１乃至３のいずれか１項に記載のタイミング制約生成方法。
【請求項５】
前記ブロックのタイミング制約の算出は、前記算出した境界端子制約と、チップのタイミング例外制約と、前記チップのタイミング解析結果と、前記ブロックのレイアウト情報とから、ブロックのタイミング例外制約を算出すること含むことを特徴とする請求項４に記載のタイミング制約生成方法。
【請求項６】
集積回路が形成されるチップのタイミング制約を読込み、タイミング解析を行うチップのタイミング解析手段と、
任意のブロック化条件に基づいて前記チップから特定されたブロックのタイミング制約を、チップのタイミング制約と前記チップのタイミング解析結果とブロックのレイアウト情報とから算出するブロックのタイミング制約算出手段と、
を備えたことを特徴とするタイミング制約生成装置。
【請求項７】
前記チップのタイミング解析手段は、
前記チップのタイミング制約を読込むチップのタイミング制約読込み手段と、
チップのタイミング解析を行うタイミング解析手段と、
を含むことを特徴とする請求項６に記載のタイミング制約生成装置。
【請求項８】
前記チップのタイミング解析手段は、
前記チップのタイミング制約読込み手段と、
複数のブロック間を経由するパス或はブロック内を出入りするパスについて、タイミングバジェッティングを行うタイミングバジェッティング手段と、
前記バジェッティング結果を考慮したタイミング解析を行う前記タイミング解析手段と、
を含むことを特徴とする請求項７に記載のタイミング制約生成装置。
【請求項９】
前記ブロックのタイミング制約算出手段は、
前記ブロックにおけるクロック制約を抽出するクロック制約抽出手段と、
前記ブロックにおける境界端子制約を算出する境界端子制約算出手段と、
を含むことを特徴とする請求項６乃至８のいずれか１項に記載のタイミング制約生成装置。
【請求項１０】
前記ブロックのタイミング制約算出手段は、
前記ブロックにおけるタイミング例外制約を算出するタイミング例外制約算出手段を含むことを特徴とする請求項９に記載のタイミング制約生成装置。
【請求項１１】
前記タイミング例外制約算出手段は、
該当するチップのタイミング例外制約の該当するパスがブロック内に含まれる場合の抽出手段と、
該当するチップのタイミング例外制約の該当するパスがブロック内に一部含まれる場合の算出手段と
を含むことを特徴とする請求項１０に記載のタイミング制約生成装置。
【請求項１２】
前記ブロック内に一部含まれる場合の算出手段は
該当するチップのタイミング例外制約の該当するパスの始点或は終点がブロック内に含まれる場合の算出手段と、
該当するチップのタイミング例外制約の該当するパスの始点、終点いずれもブロック内に含まれない場合の算出手段と、
を含むことを特徴とする請求項１１記載のタイミング制約生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイミング制約生成方法及びタイミング制約生成装置に関する。
【背景技術】
【０００２】
近年の半導体集積回路は、プロセス技術の進歩に伴って回路の大規模化、複雑化が進み、数千万ゲートを超える回路が出現するようになっている。このような回路は、一般に一括最適化が困難であるため、回路の論理構造を基に、複数の部分回路（以後、ブロックと呼ぶ）に分割し、各ブロックを設計した後、全てのブロックを１つに統合し、全体の設計を完成させる階層設計手法が一般に用いられている。
【０００３】
特許文献１では、一般的なトップダウン階層設計手法及びボトムアップ階層設計手法を例示し、それらの問題点を解決するために、レイアウト後の設計データから、任意の物理領域を１つ、或は複数個のブロックとして抽出し、抽出したブロックの再設計をし、元の回路（以後、チップと呼ぶ）へ復元するという階層設計手法について述べている。
【０００４】
また、階層設計手法を効率よく行うためには、各ブロックのタイミング制約を適切に作成する必要がある。特許文献２では、各ブロックのタイミング制約をそのブロックの下位階層でのタイミング制約を流用して、作成している。
【特許文献１】特開２００７−２５７２９３号公報
【特許文献２】特開２００５−３２１９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述の特許文献１のように、任意のブロック化条件下でブロックを１つ、或は複数個抽出する場合、そのブロックの下位階層のタイミング制約が存在しないため、特許文献２に示すような手法は適用できない。よって、任意のブロック化条件下でブロックを１つ、或は複数個抽出する階層設計手法では、そのブロックに対応する適切なタイミング制約を作成できないために、効率的な階層設計ができない。
【０００６】
本発明は、前述のような現状に鑑みてなされた発明であり、チップに設計された回路を任意のブロック化条件下でブロックにした場合に、そのブロックに対応する適切なタイミング制約を作成することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係るタイミング制約生成方法は、
集積回路が形成されるチップのタイミング解析を実行し、
任意のブロック化条件に基づいて前記チップから特定されたブロックについて、チップのタイミング制約と、前記チップのタイミング解析結果と、ブロックのレイアウト情報とからブロックのタイミング制約を算出する、ことを特徴とする。
【０００８】
上記目的を達成するために、本発明の第２の観点に係るタイミング制約生成装置は、
集積回路が形成されるチップのタイミング制約を読込み、タイミング解析を行うチップのタイミング解析手段と、
任意のブロック化条件に基づいて前記チップから特定されたブロックのタイミング制約を、チップのタイミング制約と前記チップのタイミング解析結果とブロックのレイアウト情報とから算出するブロックのタイミング制約算出手段と、
を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、チップに設計された回路を任意のブロック化条件下でブロックにしたときに、ブロックの下位階層のタイミング制約が存在しなくても、そのブロックに対応するタイミング制約を作成することが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明の実施形態に係るタイミング制約生成装置を示すブロック図である。
【００１１】
タイミング制約生成装置１００は、コンピュータ等で構成され、プログラム制御により動作するデータ処理装置１０１と、記憶装置１０２と、入力装置１０３と、出力装置１０４とを備えている。
データ処理装置１０１は、チップのレイアウト情報読込み手段１０５と、ブロックのレイアウト情報抽出手段１０６と、チップのタイミング解析手段１０７と、ブロックのタイミング制約算出手段１０８とを有する。
【００１２】
記憶装置１０２は記憶領域を持ち、その記憶領域は、チップのレイアウト情報記憶部１０９と、ブロックのレイアウト情報記憶部１１０と、チップのタイミング制約記憶部１１１と、チップのタイミング解析結果記憶部１１２とを含んでいる。
【００１３】
図２は、図１中のチップのタイミング解析手段１０７を示す機能ブロック図である。
チップのタイミング解析手段１０７は、チップのタイミング制約読込み手段２０１と、タイミングバジェッティング手段２０２と、タイミング解析手段２０３とを含んでいる。
【００１４】
図３は、図１中のブロックのタイミング制約算出手段１０８を示す機能のブロック図である。
ブロックのタイミング制約算出手段１０８は、クロック制約抽出手段３０１と、境界端子制約算出手段３０２と、タイミング例外制約算出手段３０３とを含んでいる。
【００１５】
図４は、図３中のタイミング例外制約算出手段３０３を示す機能ブロック図である。
タイミング例外制約算出手段３０３は、ブロック内にパスが全て含まれている場合の抽出手段４０１と、ブロック内にパスの一部が含まれる場合の算出手段４０２とを含んでいる。
【００１６】
図５は、図４中のブロック内にパスの一部が含まれる場合の算出手段４０２を示す機能ブロック図である。
ブロック内にパスの一部が含まれる場合の算出手段４０２は、パスの始点或は終点がブロック内に含まれる場合の算出手段５０１と、パスの始点及び終点がブロック内に含まれない場合の算出手段５０２とを含んでいる。
【００１７】
データ処理装置１０１の各手段は、概略つぎのように機能する。
チップのレイアウト情報読込み手段１０５は、入力装置１０３から入力されたチップのレイアウト情報であるネットリスト、そのネットリストを構成する部品（以下、インスタンスという）の配置情報、インスタンス間を接続する配線の配線経路情報を読込み、チップのレイアウト情報記憶部１０９に記憶する。
【００１８】
ブロックのレイアウト情報抽出手段１０６は、チップのレイアウト情報記憶部１０９に記憶されているチップのレイアウト情報から、入力装置１０３から入力されたブロック化条件に合致するレイアウト情報を抽出し、ブロックのレイアウト情報記憶部１１０へ記憶する。ブロック化条件としては、例えばチップの任意の領域の指定、任意の論理階層の指定、任意のインスタンス名のリストの指定等が考えられる。この抽出処理には、ブロック化条件に合致するインスタンスとネットを抽出する処理だけでなく、ブロック内外を経由する配線について、ブロックの境界端子の追加、及びその境界端子の位置を設定する処理も含まれる。
【００１９】
チップのタイミング解析手段１０７は、チップにおけるタイミング解析を行う機能を持ち、このチップのタイミング解析手段１０７中のチップのタイミング制約読込み手段２０１は、入力装置１０３から入力されたチップのタイミング制約を記憶装置に１０２に転送し、チップのタイミング制約記憶部１１１へ記憶させる。
【００２０】
チップのタイミング解析手段１０７中のタイミングバジェッティング手段２０２は、複数のブロック間を経由するパス、或はブロックを出入りするパスについて、そのパスのスラックをパスが経由するブロック内のインスタンスの端子へ分配する。
【００２１】
チップのタイミング解析手段１０７中のタイミング解析手段２０３は、タイミング解析を行う。チップのタイミング解析にあたり、タイミング解析手段２０３はチップ内の各インスタンスの内部遅延値、及び各ネットの配線遅延値はライブラリを利用して計算する。タイミング解析後、各インスタンスの端子、或は各境界端子について、前方到達時間と後方到達時間をそれぞれ１つ、或は複数個、タイミング解析結果記憶部１１２に記憶させる。ここで、前方到達時間とは、あるパス始点となるフリップフロップ（以下、ＦＦという）やメモリなどから、スラックの分配されたインスタンスの端子へ到達するまでに要する最大時間を指し、後方到達時間とは、スラックの分配されたインスタンスからあるパス終点となるＦＦやメモリ等へ到達するまでに要する最大時間を指す。これらの前方到達時間、後方到達時間はタイミングバジェッティング手段２０２によって分配されたスラック値も考慮して計算する。
【００２２】
ブロックのタイミング制約算出手段１０８は、ブロックおけるタイミング制約を算出する手段であり、ブロックのタイミング制約算出手段１０８中のクロック制約抽出手段３０１は、チップのタイミング制約記憶部１１１から、チップの各クロック制約を、ブロックのレイアウト情報記憶部１１０からのレイアウト情報と矛盾が生じないように抽出する。クロック制約で定義されているクロックソースがブロックのレイアウト情報に存在する場合、それをブロックのクロックソースとする。次に、クロックソースからパスの始点或は終点のインスタンスのクロック端子に至るまで前方探索を行い、ブロックの境界入力端子を含む場合は、その境界入力端子をブロックのクロックソースとして追加する。
【００２３】
ブロックのタイミング制約算出手段１０８中の境界端子制約算出手段３０２は、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、その境界端子の制約を算出する。チップのタイミング解析結果記憶部１１２には、ブロックの境界端子に関する到達時間、要求時間が記憶されていないため、そのブロックの境界端子の前後のインスタンスの端子の前方到達時間、後方到達時間、及びチップのレイアウト情報記憶部１１０に記憶されているインスタンスの端子の物理情報、セル情報などから、境界端子の制約を算出する。
【００２４】
ブロックのタイミング制約算出手段１０８中のタイミング例外制約算出手段３０３は、ブロックにおけるタイミング例外制約を算出する手段であり、タイミング例外制約算出手段３０３中のブロック内にパスの全てが含まれる場合の抽出手段４０１は、チップのタイミング制約記憶部１１１に記憶されている各タイミング例外制約について、定義されている記述（インスタンスの端子など）がブロックのレイアウト情報記憶部１１０に含まれているかを判定し、含まれる場合は、そのタイミング例外制約をブロックのタイミング例外制約として抽出する。含まれない場合は何もしない。
【００２５】
タイミング制約算出手段３０３中のブロック内にパスの一部が含まれる場合の抽出手段４０２は、ブロック内にパスの一部が含まれる場合におけるタイミング例外制約を抽出する手段である。このブロック内にパスの一部が含まれる場合の抽出手段４０２中のパスの始点或は終点がブロック内に含まれる場合の算出手段５０１は、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、各境界端子について、チップのタイミング制約記憶部１１１に記憶さされている各タイミング例外制約で定義されるパスが通過するか否かの判定を行い、新たな制約を算出する。
【００２６】
ブロック内にパスの一部が含まれる場合の抽出手段４０２中のパスの始点及び終点のいずれもブロック内に含まれない場合の算出手段５０２は、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、各境界入力端子について、チップのタイミング制約記憶部１１１からの各タイミング例外制約で定義されるパスが通過するか否かの判定を行い、通過する場合、その境界入力端子から前方へ、ブロックの境界端子を探索する。見つかった境界入力端子と該境界出力端子のタイミング例外パスの通過状態を鑑みて、新たな制約を算出する。
【００２７】
次に、図１〜５に示されたタイミング制約生成装置の全体の動作を、図６のフローチャートを参照して説明する。
図６は、タイミング制約生成装置１００の行うタイミング制約生成方法を示すフローチャートである。
タイミング制約生成装置１００は、図６のステップＳ１〜Ｓ１０を行い、ブロックのタイミング制約生成を行う。
【００２８】
設計者は入力装置１０３を用い、チップのレイアウト情報として、チップのネットリスト及びそのネットリストを構成する各インスタンスの配置情報、及びインスタンス間を接続するネットの配線経路情報を入力する。チップのレイアウト情報読込み手段１０５は、入力されたチップのレイアウト情報を記憶装置１０２に転送し、チップのレイアウト情報記憶部１０９に記憶させる（ステップＳ１）。
【００２９】
次に、設計者は入力装置１０３を用い、ブロック化条件として、チップの任意の領域、任意の論理階層、任意のインスタンスのリストなど指示する。ブロックのレイアウト情報抽出手段１０６は、チップのレイアウト情報記憶部１０９に記憶されているチップのレイアウト情報から、ブロック化条件に合致するブロックのレイアウト情報を抽出する。この抽出処理はインスタンス、ネットだけではなく、ブロックの境界端子の追加、及びブロックの境界端子の位置設定も含む。ブロックのレイアウト情報抽出手段１０６は、記憶装置１０２内のブロックのレイアウト情報記憶部１１０にブロックのレイアウト情報を記憶させる（ステップＳ２）。
【００３０】
次に、ステップＳ３〜Ｓ５によるチップのタイミング解析処理を行う。
チップのタイミング解析手段１０７は、入力装置１０３から入力されたチップのタイミング制約を記憶装置１０２に転送し、記憶装置１０２内のチップのタイミング制約記憶部１１１に記憶させる（ステップＳ３）。
【００３１】
続いて、チップのタイミング解析手段１０７は、複数個のブロックを経由するパス、或はブロック内を出入りするパスについて、パスが通過するブロック内のインスタンスの端子にタイミングバジェッティングを行い、該パスのスラックをインスタンスの端子に分配する（ステップＳ４）。
【００３２】
そして、チップのタイミング解析手段１０７は、分配されたスラックを考慮したタイミング解析を実行し、そのタイミング解析結果を記憶部１０２内のチップのタイミング解析結果記憶部１１２に記憶させる（ステップＳ５）。
【００３３】
次に、タイミング制約生成装置１００は、ステップＳ７〜Ｓ１１からなる、ブロックのタイミング制約の算出処理を行う。
ブロックのタイミング制約の算出処理では、クロック制約抽出手段３０１が、チップのタイミング制約記憶部１１１に記憶されている各クロック制約のクロックソースについて、ブロックのレイアウト情報記憶部１１０に記憶されているブロックのレイアウト情報に含まれる場合は、ブロックのクロック制約として抽出し、クロックソースから前方へ探索し、クロックソースがブロックの境界入力端子へ接続されている場合は、その境界入力端子をブロックのクロック制約として抽出する（ステップＳ７）。
【００３４】
ここで、ブロックのクロック制約を抽出する例を示す。
図７は、ブロックのクロック制約を抽出する例の説明図であり、クロック制約のフォーマットは業界標準のＳＤＣ（Ｓｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔｓ）で示している。以下、後述する図８〜図１２においても、図７と同様に、各制約をＳＤＣで示している。
【００３５】
クロック制約とは、クロック生成制約と、それに付随した制約から構成される。
図７には、チップ７０１の概要と、チップ７０１のクロック制約７０３と、ブロック制約７０４が示されている。
図７のチップ７０１におけるクロック制約７０５のクロックソースであるインスタンスの出力端子ｉｎｓ１／ｏ１は、ブロック７０２に含まれないため、クロック制約抽出手段３０１は、インスタンスの出力端子ｉｎｓ１／ｏ１の前方へ回路を探索する。インスタンスの出力端子ｉｎｓ１／ｏ１の前方を探索すると、ブロックの境界入力端子である０＿Ｎ４と２＿Ｎ４に達するので、これら境界入力端子の０＿Ｎ４及び２＿Ｎ４をブロック７０２のクロクソースとする（クロック生成）。
【００３６】
これらのクロックソースはもともとチップ７０１では同じクロックソースであるので、クロック制約抽出手段３０１は、ブロックのクロックソース生成制約７０７のように１つにまとめ、共通の名前を設定する。クロック生成制約７０７に付随する制約７０８は、チップ７０１のクロック生成制約７０５に付随した制約７０６の名称を、その共通の名前に変更してブロックのクロック生成制約７０７に付随した制約７０８とする。
【００３７】
ブロックのクロック制約を抽出した後、境界端子制約算出手段３０２が、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、そのブロックの境界端子の制約を算出する（ステップＳ８）。
【００３８】
前述のステップＳ５の処理において、チップのタイミング解析手段１０７は、タイミング解析結果をチップのタイミング解析結果記憶部１１２に記憶させるが、ブロックの境界端子に関する到達時間、要求時間は記憶させていない。そのため、境界端子制約算出手段３０２は、ブロックの境界端子の前後のインスタンスの端子の前方到達時間、後方到達時間、及びチップのレイアウト情報記憶部１０８から得られる該インスタンスの端子の物理情報、セル情報等から、ブロックの境界端子の制約を算出する。
【００３９】
ここで、ブロックの境界端子の制約を算出する例を説明する。
図８は、ブロックの境界端子の制約の算出例を示す説明図である。
図８には、チップ８０１の概要と、チップ８０１のクロック制約８０７と、ブロックの境界端子制約８０８とが示されている。
チップのタイミング解析結果記憶部１１２には、チップ８０１のブロック８０２の境界入力端子０＿Ｎ２に関する例えば前方到達時間は含まれていないので、境界端子制約算出手段３０２は、境界入力端子０＿Ｎ２の前段のインスタンスの入力端子ｉｎｓ１／ｉ１の前方到達時間８０３、及びチップのレイアウト情報記憶部１０９に記憶されている該インスタンスの入力端子ｉｎｓ１／ｉ１の物理情報、セル情報を利用して、ブロックの境界入力端子０＿Ｎ２の前方到達時間を表現する。
【００４０】
具体的には、図８のように、境界入力端子０＿Ｎ２の制約を、境界入力端子の接続元であるインスタンスの入力端子ｉｎｓ１／ｉ１の前方到達時間８０３を用いた遅延制約８０９と、インスタンスｉｎｓ１の機能を示すセル情報の駆動セル８０４を用いた駆動セル制約８１０と、インスタンスの入力端子ｉｎｓ１／ｉ１の物理情報である波形鈍り８０５を用いた波形鈍り制約８１１と、インスタンスの出力端子ｉｎｓ１／ｏ１から該境界入力端子０＿Ｎ２までのネット容量８０６を用いたネット容量制約８１２とで表現することが可能である。境界端子が境界出力端子の場合には、同様にして後方到達時間を算出する。
算出されたブロックの境界端子の制約を、タイミング解析手段２０３がチップのタイミング解析結果として、チップのタイミング解析結果記憶部１１２に記憶させる。
【００４１】
なお、ブロックの境界入力端子制約を抽出する際にタイミングバジェッティングが必要な場合がある。
図９（ａ）〜（ｃ）は、タイミングバジェッティングを行わない場合の説明図であり、図１０（ａ）〜（ｃ）は、タイミングバジェッティングを行う場合の説明図である。
図９（ａ）及び図１０（ａ）は、ブロック内のパスの始点からパスが境界出力端子Ａ及び境界入力端子Ｂを介してブロック内のパス終点に至っていることを示している。
図９（ａ）のように、タイミングバジェッティングを行わず、境界端子制約を抽出すると、境界出力端子Ａについての制約は、境界出力端子Ａからパス終点までに要する時間６ｎｓ（＝２ｎｓ＋２ｎｓ＋２ｎｓ）となり、境界入力端子Ｂについての制約は、パス始点から境界入力端子Ｂまでに要する時間６ｎｓ（＝２ｎｓ＋２ｎｓ＋２ｎｓ）となる。
この場合、パスの始点から終点までの許容遅延を１０ｎｓとしたとき、パス始点からパス終点までに要する時間は８ｎｓであり、タイミング違反にはなっていない。しかしながら、図９（ｂ）のように、ブロックの再レイアウトを行うと、パス始点から境界出力端子Ａまでの制約は４ｎｓ（＝１０ｎｓ−６ｎｓ）、境界入力端子Ｂからパス終点までの制約は４ｎｓ（＝１０ｎｓ−６ｎｓ）となる。図９（ｃ）のように、ブロックをチップに復元したとき、パス始点から境界出力端子Ａ、境界入力端子Ｂからパス終点までに要する時間はともに２ｎｓから４ｎｓに増加するため、パス始点からパス終点までに要する時間は１２ｎｓ（＝４ｎｓ＋２ｎｓ＋２ｎｓ＋４ｎｓ）となり、２ｎｓタイミング違反してしまう。
【００４２】
そこで、図１０（ａ）では、タイミングバジェッティングを行ってから境界端子の制約を与える。パス始点からパス終点までに要する時間は８ｎｓであり、タイミング違反していない。パス始点からパス終点までの制約は１０ｎｓのため、スラックは２ｎｓ（＝１０ｎｓ−８ｎｓ）となる。タイミングバジェッティングでは、このスラックをパス始点から境界出力端子Ａと、境界入力端子Ｂからパス終点とに、例えば１ｎｓずつ分配する。即ち、境界出力端子Ａの遅延制約はＡからパス終点までに要する時間７ｎｓ（＝２ｎｓ＋２ｎｓ＋２ｎｓ＋１ｎｓ）となり、境界入力端子Ｂについてはパス始点から境界入力端子Ｂまでに要する時間７ｎｓ（＝２ｎｓ＋１ｎｓ＋２ｎｓ＋２ｎｓ）となる。
【００４３】
ここで、図１０（ｂ）のように、ブロックの再レイアウトを行うと、パス始点から境界出力端子Ａまでの制約は３ｎｓ（＝１０ｎｓ−７ｎｓ）、境界入力端子Ｂからパス終点までの制約は３ｎｓ（＝１０ｎｓ−７ｎｓ）となる。ここで、図１０（ｃ）のように、ブロックをチップに復元したとき、パス始点から境界出力端子Ａ、境界入力端子Ｂからパス終点までに要する時間はともに２ｎｓから３ｎｓに増加するが、パス始点からパス終点までに要する時間は１０ｎｓ（＝３ｎｓ＋２ｎｓ＋２ｎｓ＋３ｎｓ）となり、タイミング制約違反とはならない。
【００４４】
ブロックの境界端子の制約を算出した後に、タイミング例外制約算出手段３０３がブロックのタイミング例外制約を算出する。
タイミング例外制約算出手段３０３は、タイミング例外制約を抽出するフォルスパスのすべてがブロック内に含まれる場合、即ち、フォルスパスの始点と終点がブロック内に存在する場合、ブロック内にパスの全てが含まれる場合の算出手段４０１を起動する。
【００４５】
ブロック内にパスの全てが含まれる場合の算出手段４０１は、チップのタイミング制約記憶部１１１に記憶されている各タイミング例外制約について、定義されている記述（インスタンスの端子など）がブロックのレイアウト情報記憶部１１０に記憶されているブロックのレイアウト情報に含まれているか否かを判定し、含まれる場合は、そのチップのタイミング例外制約をブロックのタイミング制約としてを抽出する（ステップＳ９）。含まれない場合は何もしない。
【００４６】
タイミング例外制約算出手段３０３は、ブロック内にフォルスパスの一部が含まれる場合、ブロック内にパスの一部が含まれる場合の算出手段４０２を起動する。ブロック内にパスの一部が含まれる場合の算出手段４０２は、パスの始点或は終点の一方がブロック内に含まれる場合、パスの始点或は終点が含まれる場合の算出手段５０１を起動し、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、各境界端子について、チップのタイミング制約記憶部１１１に記憶された各タイミング例外制約で定義されるパスが通過するか否かの判定を行い、通過する場合に新たな制約を算出する（ステップＳ１０）。
【００４７】
ここで、フォルスパスの始点または終点がブロック内に含まれる場合に、ブロックのタイミング例外制約を抽出する例を説明する。
図１１（ａ）〜（ｄ）は、フォルスパスの始点がブロック内に含まれる場合に、ブロックのタイミング例外パス制約を抽出する例の説明図である。
【００４８】
図１１（ａ）に示されるチップ１１０１には、ブロック１１０２が設定されている。ブロック１１０２中のインスタンスｉｎｓ１のクロック端子ｃｌｋからインスタンスｉｎｓ１、インスタンスｉｎｓ２、境界出力端子０＿Ｎ２、インスタンスｉｎｓ４を経由してインスタンスｉｎｓ６のデータ端子ｄａｔまでが、チップに１１０１おけるフォルスパスになっている。
【００４９】
この場合、図１１（ｂ）のように、クロック制約１１０３に対して、後方到達時間１１０４は、境界出力端子０＿Ｎ２からインスタンスｉｎｓ５のデータ端子ｄａｔまでに要する時間で算出される。後方到達時間１１０５は、境界出力端子０＿Ｎ２からインスタンスｉｎｓ６のデータ端子ｄａｔまでに要する時間で算出される。また、チップのタイミング例外パス制約は、図１１（ｃ）のように、インスタンスｉｎｓ１のクロック端子ｃｌｋからインスタンスｉｎｓ６のデータ端子ｄａｔまでと設定される。
【００５０】
チップ１１０１からブロック１１０２を切り出したとき、境界出力端子０＿Ｎ２はフォルスパスが通過し、後方到達時間１１０５はフォルスパスになるため、ブロック内にパスの一部が含まれる場合の算出手段４０２は、図１１（ｄ）のように、タイミング例外制約の遅延値を、クロック制約１１０３から後方到達時間１１０５を減じた値とし、ブロックのタイミング例外制約１１０７として出力する。
【００５１】
一方、ブロック内にパスの一部が含まれる場合の算出手段４０２は、フォルスパスの始点及び終点のいずれもブロックに含まれない場合、パスの始点及び終点のいずれもブロック内に含まれない場合の算出手段５０２を起動する。フォルスパスの始点及び終点のいずれもブロックに含まれない場合とは、パスの始点及び終点は含まれていなくとも、経路がブロックに含まれている場合を指す。
【００５２】
パスの始点及び終点のいずれもブロック内に含まれない場合の算出手段５０２は、ブロックのレイアウト情報記憶部１１０からブロックの境界端子情報を取得し、各境界入力端子について、チップのタイミング制約記憶部１１１からの各タイミング例外制約で定義されるパスが通過するか判定を行い、通過する場合、その境界入力端子から前方へ、ブロックの境界端子を探索する。見つかった境界入力端子と該境界出力端子のタイミング例外パスの通過状態を鑑みて、新たな制約を算出する（ステップＳ１１）。
【００５３】
ここで、フォルスパスの始点と終点のいずれもがブロック内に含まれない場合に、ブロックのタイミング例外パス制約を抽出する例を説明する。
図１２（ａ）〜（ｄ）は、フォルスパスの始点及び終点がブロック内に含まれない場合に、ブロックのタイミング例外パス制約を抽出する例の説明図である。
【００５４】
図１２（ａ）に示されるチップ１２０１には、ブロック１２０２が設定されている。ブロック１２０２中のインスタンスｉｎｓ１のクロック端子ｃｌｋからインスタンスｉｎｓ１、インスタンスｉｎｓ２、インスタンスｉｎｓ５、境界入力端子０＿Ｎ５、ブロック１２０２内、境界出力端子０＿Ｎ９、インスタンスｉｎｓ１０を経由してインスタンスｉｎｓ１１のデータ端子ｄａｔまでが、チップに１２０１おけるフォルスパスになっている。
【００５５】
図１２（ａ）の場合、図１２（ｂ）のように、ブロックのクロック制約１２０３に対して、前方到達時間１２０４はインスタンスｉｎｓ１のクロック端子ｃｌｋから境界入力端子０＿Ｎ５までに要する時間で算出される。前方到達時間１２０５は、インスタンスｉｎｓ３のクロック端子ｃｌｋから境界入力端子０＿Ｎ５までに要する時間で算出される。前方到達時間１２０６は、前方到達時間１２０４と前方到達時間１２０５の大きい方の時間で算出される。後方到達時間１２０７は、境界出力端子０＿Ｎ９からインスタンスｉｎｓ１１のデータ端子ｄａｔまでに要する時間で算出される。後方到達時間１２０８は、境界出力端子０＿Ｎ９からインスタンスｉｎｓ１２のデータ端子ｄａｔまでに要する時間で算出される。後方到達時間１２０９は、後方到達時間１２０７と後方到達時間１２０８の大きい方の時間で算出される。
【００５６】
また、チップのタイミング例外パス制約は、図１２（ｃ）のように、インスタンスｉｎｓ１のクロック端子ｃｌｋからインスタンスｉｎｓ１１のデータ端子ｄａｔまでと設定される。
【００５７】
この場合、チップ１２０１からブロック１２０２を切り出したとき、フォルスパスは境界入力端子０＿Ｎ５を通過し、ブロック１２０２内のインスタンスを経由して、境界出力端子０＿Ｎ９を通過する。そこで、パスの始点及び終点のいずれもブロック内に含まれない場合の算出手段５０２は、境界端子０＿Ｎ５から境界端子０＿Ｎ９までのブロックのタイミング例外制約としての遅延値を、図１２（ｄ）のように、クロック制約１２０３から、前方到達時間１２０５及び後方到達時間１２０９の和と、前方到達時間１２０６及び後方到達時間１２０８の和の２つの候補のうち、大きい値を減じた値で求める。
【００５８】
最後に、ブロックのタイミング制約算出手段１０８は、ステップＳ７〜Ｓ１１で得られたクロック制約、境界端子の制約、タイミング例外制約をブロックのタイミング制約として出力装置１０４に転送する。
【００５９】
次に、本実施の形態の効果について説明する。
本実施のタイミング制約作成装置は、次のような作用効果を奏する。
（１）  チップのタイミング制約と、チップのタイミング解析結果、ブロックのレイアウト情報を流用してブロックのタイミング制約を作成するので、ブロックの下位階層のタイミング制約を必要としない。
【００６０】
（２）  チップのタイミング解析結果を利用してブロックのタイミング制約を作成するので、正確な値での制約が算出可能である。
【００６１】
（３）  クロック制約を漏れなく算出することが可能であるため、以降のブロックの最適化処理を漏れなく行うことが可能である。
【００６２】
（４）  境界端子の制約に与える遅延値に、タイミングバジェッティングによる分配されたスラック値を考慮しているため、以降のブロックの最適化処理、及びチップへ復元する処理、チップへ復元した後のタイミング解析処理において、設計者が予期しなかったタイミング違反パスが生じるのを未然に防ぐことが可能である。
【００６３】
（５）  タイミング例外制約で与える遅延値は、チップでのタイミング解析結果と、ブロックの境界端子のタイミング例外パスの通過状態を鑑みて算出するので、以降のブロックの最適化処理において、これらのブロックの境界端子に関連する最適化を正しく行うことが可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施形態に係るタイミング制約生成装置を示すブロック図である。
【図２】図１中のチップのタイミング解析手段を示す機能ブロック図である。
【図３】図１中のブロックのタイミング制約算出手段を示す機能のブロック図である。
【図４】図３中のタイミング例外制約算出手段を示す機能ブロック図である。
【図５】図４中のブロック内にパスの一部が含まれる場合の算出手段を示す機能ブロック図である。
【図６】タイミング制約生成装置の行うタイミング制約生成方法を示すフローチャートである。
【図７】ブロックのクロック制約を抽出する例の説明図である。
【図８】ブロックの境界端子の制約の算出例を示す説明図である。
【図９】タイミングバジェッティングを行わない場合の説明図である。
【図１０】タイミングバジェッティングを行う場合の説明図である。
【図１１】フォルスパスの始点がブロック内に含まれる場合に、ブロックのタイミング例外パス制約を抽出する例の説明図である。
【図１２】フォルスパスの始点及び終点がブロック内に含まれない場合に、ブロックのタイミング例外パス制約を抽出する例の説明図である。
【符号の説明】
【００６５】
１００    タイミング制約生成装置
１０１    データ処理装置
１０２    記憶装置
１０３    入力装置
１０４    出力装置
１０５    チップのレイアウト情報読込み手段
１０６    ブロックのレイアウト情報抽出手段
１０７    チップのタイミング解析手段
１０８    ブロックのタイミング制約算出手段
１０９    チップのレイアウト情報記憶部
１１０    ブロックのレイアウト情報記憶部
１１１    チップのタイミング制約記憶部
１１２    チップのタイミング解析結果記憶部
２０１    チップのタイミング制約読込み手段
２０２    タイミングバジェッティング手段
２０３    タイミング解析手段
３０１    クロック制約抽出手段
３０２    境界端子制約算出手段
３０３    タイミング例外制約算出手段
４０１    ブロック内にパスの全てが含まれる場合の抽出手段
４０２    ブロック内にパスの一部が含まれる場合の算出手段
５０１    パスの始点或は終点がブロック内に含まれる場合の算出手段
５０２    パスの始点及び終点のいずれもブロック内に含まれない場合の算出手段
７０１，８０１，１１０１，１２０１    チップ
７０２，８０２，１１０２，１２０２    ブロック
７０３，８０７，１１０３，１２０３    チップのクロック制約
７０４    ブロックのクロック制約
７０５    チップのクロック生成制約
７０６    チップのクロック生成制約に関連した制約
７０７    ブロックのクロック生成制約
７０８    ブロックのクロック生成制約に関連した制約
８０３    パスの始点ＦＦ１からブロックの境界入力端子０＿Ｎ２の前段インスタンスの端子ｉｎｓ１／ｉ１までの前方到達時間
８０４    インスタンスｉｎｓ１のセルをブロックの境界入力端子０＿Ｎ２の駆動セルとする
８０５    インスタンスの入力端子ｉｎｓ１／ｉ１の入力波形鈍り
８０６    インスタンスの出力端子ｉｎｓ１／ｏ１からブロックの境界入力端子０＿Ｎ２のネット容量
８０８    ブロックの境界入力端子制約
１１０４    境界出力端子０＿Ｎ２からインスタンスｉｎｓ５のデータ端子ｄａｔまでに要する時間（後方到達時間）
１１０５    境界出力端子０＿Ｎ２からインスタンスｉｎｓ６のデータ端子ｄａｔまでに要する時間（後方到達時間）
１１０６    境界出力端子０＿Ｎ２を通過するチップのタイミング例外制約
１１０７    境界出力端子０＿Ｎ２のブロックのタイミング例外制約
１２０４    インスタンスｉｎｓ１のクロック端子ｃｌｋから境界入力端子０＿Ｎ５までに要する時間（前方到達時間）
１２０５    インスタンスｉｎｓ３のクロック端子ｃｌｋから境界入力端子０＿Ｎ５までに要する時間（前方到達時間）
１２０６    ｍａｘ（前方到達時間１２０４、前方到達時間１２０５）
１２０７    境界出力端子０＿Ｎ９からインスタンスｉｎｓ１１のデータ端子ｄａｔまでに要する時間（後方到達時間）
１２０８    境界出力端子０＿Ｎ９からインスタンスｉｎｓ１２のデータ端子ｄａｔまでに要する時間（後方到達時間）
１２０９    ｍａｘ（後方到達時間１２０７、後方到達時間１２０８）
１２１０    境界入力端子０＿Ｎ５、境界出力端子０＿Ｎ９を通過するチップのタイミング例外制約
１２１１    １２１０に対するブロックのタイミング例外制約
【図１】
2009199466.tif 000003
【図２】
2009199466.tif 000004
【図３】
2009199466.tif 000005
【図４】
2009199466.tif 000006
【図５】
2009199466.tif 000007
【図６】
2009199466.tif 000008
【図７】
2009199466.tif 000009
【図８】
2009199466.tif 000010
【図９】
2009199466.tif 000011
【図１０】
2009199466.tif 000012
【図１１】
2009199466.tif 000013
【図１２】
2009199466.tif 000014