(57)【要約】【課題】ＡＣスペックの実現性を判断してからセル配置の処理に進むことにより、ＡＣスペックを満たす為に再度セル配置をやり直す必要をなくす【解決手段】レイアウト設計方法が、ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もるステップ（Ｓ１０３）と、前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出するステップ（Ｓ１０４）と、前記タイミング収束判定手段が、前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するステップ（Ｓ１０５）とを具備している。【選択図】図４
2012137891.tif 000002
【特許請求の範囲】
【請求項１】
最小クロック遅延見積手段と、必要クロック遅延算出手段と、タイミング収束判定手段とを具備するレイアウト設計装置を用いて集積回路のレイアウト設計を行うレイアウト設計方法であって、
前記最小クロック遅延見積手段が、ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もるステップと、
前記必要クロック遅延算出手段が、前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出するステップと、
前記タイミング収束判定手段が、前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するステップ
とを具備する
レイアウト設計方法。
【請求項２】
請求項１に記載のレイアウト設計方法であって、
前記最小クロック遅延を見積もるステップでは、前記外部端子を包含する円の中心位置と前記円の半径とを求め、前記概略遅延算出テーブルを参照して得られた、外部から入力クロック信号が入力される入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間から前記最小クロック遅延を算出する
レイアウト設計方法。
【請求項３】
請求項２に記載のレイアウト設計方法であって、
前記タイミングの基準となるクロック信号が前記入力クロック信号である場合、前記最小クロック遅延が、前記入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間として算出され、
前記タイミングの基準となるクロック信号が前記入力クロック信号から生成され、且つ、出力クロック端子から出力される出力クロック信号である場合、前記最小クロック遅延が、前記入力クロック端子と前記出力クロック信号との間の距離に対応する遅延時間と前記出力クロック端子に接続されたフリップフロップから前記出力クロック端子までの遅延時間の和から前記入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間を減じた差として算出される
レイアウト設計方法。
【請求項４】
集積回路のレイアウト設計を行うレイアウト設計装置であって、
ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もる最小クロック遅延見積手段と、
前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出する必要クロック遅延算出手段と、
前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するタイミング収束判定手段
とを具備する
レイアウト設計装置。
【請求項５】
請求項４に記載のレイアウト設計装置であって、
前記最小クロック遅延見積手段が、前記外部端子を包含する円の中心位置と前記円の半径とを求め、前記概略遅延算出テーブルを参照して得られた、外部から入力クロック信号が入力される入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間から前記最小クロック遅延を算出する
レイアウト設計装置。
【請求項６】
請求項５に記載のレイアウト設計装置であって、
前記タイミングの基準となるクロック信号が前記入力クロック信号である場合、前記最小クロック遅延が、前記入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間として算出され、
前記タイミングの基準となるクロック信号が前記入力クロック信号から生成され、且つ、出力クロック端子から出力される出力クロック信号である場合、前記最小クロック遅延が、前記入力クロック端子と前記出力クロック信号との間の距離に対応する遅延時間と前記出力クロック端子に接続されたフリップフロップから前記出力クロック端子までの遅延時間の和から前記入力クロック端子と前記中心位置との間の距離と前記円の半径との和に対応する遅延時間を減じた差として算出される
レイアウト設計装置。
【請求項７】
集積回路のレイアウト設計を行うために使用されるレイアウト設計用プログラムであって、コンピュータを、
ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もる最小クロック遅延見積手段と、
前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出する必要クロック遅延算出手段と、
前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するタイミング収束判定手段
として機能させる
レイアウト設計用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のレイアウト設計方法、レイアウト設計装置、及び、プログラムに関し、特に、ＡＣスペックを考慮した配置を行うための技術に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（large scale integrated circuit）が実装されるシステムの高速化により、ＬＳＩと外部メモリとのアクセスも高速化し、タイミング収束が厳しくなってきている。また、ＬＳＩが実装されるシステムの複雑化によるＬＳＩの回路規模の増大に伴い、ＬＳＩのレイアウト設計において配置・配線に掛かるレイアウト設計ＴＡＴ（turn around time）も増大している。このような問題を解消するために、様々なレイアウト手法が提案されている。例えば、特開平６−２３２２６３号公報（特許文献１）は、レイアウトの配置の段階において配線経路を正確に予測し、ネット全体について予測された配線経路を用いて信号伝播遅延時間を最適化する技術を開示している。
【０００３】
一つの問題は、ＡＣスペックとして規定されているタイミング制約を遵守してレイアウトを設計することである。ＡＣスペックとしては、外部端子への入力のタイミング制約及び外部端子からの出力のタイミング制約が挙げられる。レイアウト設計の終盤にＡＣスペックを順守するようにタイミングを収束させることが不可能だった場合には、後戻りによる設計イタレーションの発生でレイアウト設計ＴＡＴが増加する。したがって、早期にＡＣスペックのタイミングが収束可能かを見極める要求が高まってきた。
【０００４】
特開２００３−９９４９１号公報（特許文献２）は、ＡＣスペックを遵守するようにタイミングを収束させるような配置処理を行うことを目的とする設計技術を開示している。この公知技術では、セル配置前にゲート数とフリップフロップ個数のテーブルから仮想的にクロックツリーの遅延が見積もられる。更に、見積もったクロックツリーの遅延を考慮してセル配置が実施される。
【０００５】
図１２は、上記公報に開示されたレイアウト装置のブロック図である。図１２において、パソコン、ワークステーション等のコンピュータ１１０は、設計者が作成したネットリスト１２０、ライブラリ１３０、タイミングドリブンレイアウトをする為に必要な制約ファイル（以降、制約ファイルと称す）１４０を読み込み、レイアウトを実行し、レイアウト完了したネットリストを出力装置１５０に出力する。出力装置１５０は外部記憶装置、ディスプレイ等の総称である。
【０００６】
図１３は、上記公報に開示されているレイアウト処理のフローチャートである。まず、設計者が作成したネットリスト１２０及びライブラリ１３０を、コンピュータ１１０が読み込む（ステップ１０１）。ライブラリ１３０には、クロックツリー遅延見積テーブル１３１が含まれている。次に、このネットリスト１２０をタイミングドリブンレイアウトするために必要な制約ファイル１４０が読み込まれる（ステップ１０２）。この制約ファイル１４０には、クロック周波数情報、ＦａｌｓｅＰａｔｈ情報等が記載されている。
【０００７】
更に、クロックツリーの遅延値が、対象ＬＳＩのゲート数、ＦＦの数などを元にして、クロックツリー遅延見積テーブル１３１から仮想的に見積もられる（ステップ１０３）。クロックツリー遅延見積テーブル１３１は、既存レイアウトのデータを元にしてあらかじめ準備しておく。なお、対象ＬＳＩにおける試行レイアウトデータがあれば、クロックツリー遅延見積テーブル１３１を使用せず、この段階でクロックの遅延値を与えてやってもよい。
【０００８】
次に、タイミングドリブンレイアウトによるセル配置が実施される（ステップ１０４）。クロックツリーの遅延値を与えていることにより、内部ＦＦ間だけでなく、ＡＣ特性、異種クロック間のデータのやり取りも考慮したセル配置を行うことができる。その後、実際にクロックツリーが作成される（ステップ１０５）。クロックツリー作成後、実際のクロックツリーの遅延と、ステップ１０３で見積もった仮想クロックツリーの遅延の遅延を比較し（ステップ１０６）、大きな誤差がなければ次のステップ１０７へ進む。見積もりに大きな差があった場合は、ステップ１０３へ戻り、再度遅延を与え直し、配置をやり直す。この比較工程を入れてやることにより、時間のかかる配線後にタイミングを調整する作業を軽減でき、ＴＡＴの短縮を図ることができる。最後に詳細配線を行い（ステップ１０７）、ネットリストを出力し（ステップ１０８）、レイアウト完了となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平６−２３２２６３号公報
【特許文献２】特開２００３−９９４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術には、なおもＡＣスペックのタイミングを収束させる為のセル配置工程でイタレーションが発生し、レイアウト設計イタレーションが増大する可能性があるという問題がある。従来技術では、ＡＣスペックを満足させる為に、セル配置時に仮想的に見積もったクロック遅延を与えることでＡＣスペックのタイミング収束を可能にしている。しかし、見積もりクロック遅延をゲート数とフリップフロップ数のテーブルから算出しているため、セル配置結果によっては見積もり遅延との間に差が生じる場合がある。この場合、ステップ１０６の遅延比較でセル配置前の処理に戻ることになり、その結果、ステップ１０３〜１０６を繰り返し、レイアウト設計イタレーションが増大してしまう。
【課題を解決するための手段】
【００１１】
本発明の一の観点では、最小クロック遅延見積手段と、必要クロック遅延算出手段と、タイミング収束判定手段とを具備するレイアウト設計装置を用いて集積回路のレイアウト設計を行うレイアウト設計方法が提供される。当該レイアウト設計方法は、前記最小クロック遅延見積手段が、ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もるステップと、前記必要クロック遅延算出手段が、前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出するステップと、前記タイミング収束判定手段が、前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するステップとを具備する。
【００１２】
本発明の他の観点では、集積回路のレイアウト設計を行うレイアウト設計装置が、ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もる最小クロック遅延見積手段と、前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出する必要クロック遅延算出手段と、前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するタイミング収束判定手段とを具備する。
【００１３】
本発明の更に他の観点では、集積回路のレイアウト設計を行うために使用されるレイアウト設計用プログラムが、コンピュータを、ＡＣスペックとしてタイミング制約が定義された外部端子の配置を示す配置情報に基づいて、タイミングの基準となるクロック信号からの遅延時間の最小値である最小クロック遅延を、距離と遅延時間の対応関係を示す概略遅延算出テーブルを用いて見積もる最小クロック遅延見積手段と、前記タイミング制約から、タイミング収束に必要な遅延時間の範囲である必要クロック遅延範囲の上限値を算出する必要クロック遅延算出手段と、前記最小クロック遅延と前記必要クロック遅延範囲の上限値とから、前記ＡＣスペックについてタイミング収束が可能かを、セル配置の前に判定するタイミング収束判定手段として機能させる。
【発明の効果】
【００１４】
本発明によれば、ＡＣスペックの実現性を判断してからセル配置の処理に進む為、ＡＣスペックを満たす為に再度セル配置をやり直す必要をなくすことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の設計システムの構成を示すブロック図である。
【図２】本発明の一実施形態における制約ファイルの内容の例を示す図である。
【図３】本発明の一実施形態における概略遅延計算テーブルの一例を示す図である。
【図４】本発明の一実施形態において行われる設計手順を示すフローチャートである。
【図５Ａ】本発明の一実施形態における最小クロック遅延の算出手順を示すフローチャートである。
【図５Ｂ】本発明の一実施形態における最小クロック遅延の算出手順を示すフローチャートである。
【図６】複数の辺に位置する３つの端子の座標を抽出する手順を示す模式図である。
【図７】図６の３つの座標を通る円の中心と半径を示す模式図である。
【図８】同一辺に位置する２つの端子の座標を抽出する手順を示す模式図である。
【図９】入力クロック端子からクロックツリーに沿ってフリップフロップまで到達する距離を概略的に求める手順を示す模式図である。
【図１０】入力クロック端子から出力クロック端子までの距離と、入力クロック端子からクロックツリーに沿ってフリップフロップまで到達する距離とを概略的に求める手順を示す模式図である。
【図１１】本発明の一実施形態において、必要クロック遅延範囲を求める手順を示すフローチャートである。
【図１２】従来の設計システムの構成を示すブロック図である。
【図１３】従来のレイアウト処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図１は、本発明の一実施形態の設計システムの構成を示すブロック図である。当該設計システムは、コンピュータ装置１と、サーバ２と、ネットワーク４とを備えている。コンピュータ装置１は、プログラムを実行するＣＰＵ５と、コンピュータ装置１を起動、制御するためのプログラムが格納されているＲＯＭ６と、ハードディスク装置等に保存されているプログラムをロードするＲＡＭ７とを備えている。サーバ２は、実行プログラムなどを格納する記憶媒体３を備えている。サーバ２は、インターネットなどのネットワーク４を介してワークステーション等のコンピュータ装置１に接続される。
【００１７】
図１において、コンピュータ装置１は、サーバ２の記憶媒体３に格納されたレイアウト設計のための実行プログラムをダウンロードすると共に、ライブラリ８、ネットリスト１０、端子配置データ１１及び制約ファイル１２を読み込んで所望の集積回路のレイアウト設計を実行し、その結果として得られるセル配置情報１３及びレイアウト後ネットリスト１４を記憶媒体３に出力する。
【００１８】
ライブラリ８には、概略遅延計算テーブル９が含まれている。図２は、概略遅延計算テーブル９の内容の例を示す表である。概略遅延計算テーブル９は、クロックツリーにおいてリピータとして使用されるクロックバッファの種類毎に、クロックツリー上の距離とその距離について実現できる最小の遅延時間との対応関係が格納されたテーブルである。例えば、クロックバッファの種類が「ＢＵＦ１６」で、クロックツリー上の距離が４ｍｍであれば、実現可能な最小の遅延時間は２．２ｎｓである。
【００１９】
一方、図３は、制約ファイル１２の一例を示す。図３の例では、タイミング制約がＳＤＣ（Synopsys Design Constraints）文法で記述されている。制約ファイル１２には、クロック周期２１と、入力端子のタイミング制約２２と、出力端子のタイミング制約２３と、ＦａｌｓｅＰａｔｈ制約２４とが記述されている。ここで、入力端子のタイミング制約２２と出力端子のタイミング制約２３は、ＡＣスペックとして定義されるものである。
【００２０】
図４は、本発明の一実施形態におけるレイアウト設計の手順を示すフローチャートである。図４で示された手順がサーバ２の記憶媒体３に格納された実行プログラムに記述されており、コンピュータ装置１は、当該実行プログラムをダウンロードして実行することにより、図４の設計手順を実行する。
【００２１】
まず、ステップＳ１０１では端子配置データ１１がコンピュータ装置１に読み込まれ、次にステップＳ１０２で制約ファイル１２が読み込まれる。次に、ＡＣスペックが定義された端子の配置から実現可能な最小クロック遅延を見積もるステップＳ１０３の処理に進む。ここで、ステップＳ１０３で見積もられる最小クロック遅延とは、クロック信号が、入力クロック端子３１からクロックツリーのルートバッファを経由してＡＣスペックが定義された端子に接続されたフリップフロップに到達すると仮定した場合における、当該フリップフロップにおいて実現可能なクロック遅延の最小値を概略的に見積もった値である。本実施形態では、ＡＣスペックが定義されている外部端子を包含する円の中心位置と当該円の半径とを求める処理が行われ、更に、
（１）入力クロック端子から当該円の中心位置までの距離Ｄ１と当該円の半径Ｒの和に対応する遅延時間（入力クロック同期端子の場合）又は、
（２）入力クロック端子から当該円の中心位置までの距離Ｄ１と当該円の半径の和Ｒから入力クロック端子と出力クロック端子の距離Ｄｏｕｔを減じた距離に対応する遅延時間（（出力クロック同期端子の場合）
が最小クロック遅延として算出される。ここで、入力クロック同期端子とは、入力クロックに同期して入出力が行われる端子をいい、出力クロック同期端子とは、出力クロックに同期して入出力が行われる端子をいう。（１）の遅延時間は、概ね、入力クロック信号が、入力クロック端子３１から、クロックツリーのルートバッファを経由して、ＡＣスペックが定義された端子に接続されたフリップフロップに到達するのに要する時間の最小値に対応している。（２）の遅延時間は、概ね、クロック信号が入力クロック端子からクロックジェネレータを経て出力クロック端子に到達するのに要する時間と、当該クロック信号が入力クロック端子３１からクロックツリーのルートバッファを経由してＡＣスペックが定義された端子に接続されたフリップフロップに到達するのに要する時間との差の最小値に対応している。
【００２２】
図５Ａ、図５Ｂは、最小クロック遅延を見積もる処理（ステップＳ１０３）の詳細を示すフローチャートである。図５Ａを参照して、ステップＳ２０１にて、読み込んだ制約ファイル１２から、ＡＣスペックが定義された端子の情報である端子情報２０が抽出される。更に、ＡＣスペックが定義されている全端子の配置座標がステップＳ１０１で読み込んだ端子配置データ１１から抽出される。（ステップＳ２０２）
【００２３】
次に、ＡＣスペックが定義された端子がチップの一辺のみに沿って配置されているか、チップの複数辺に沿って配置されているかが判別される。（ステップＳ２０３）
【００２４】
図６に図示されているように、ＡＣスペックが定義されている端子が複数辺に配置されている場合には、ＡＣスペックが定義されている端子を包含する円の円周上にある３つの端子の座標が求められる（ステップＳ２０４）。詳細には、まず、入力クロック端子３１の配置座標とＡＣスペックが定義された各端子の配置座標から、ＡＣスペックが定義された端子毎に入力クロック端子３１からの距離Ｄが求められ、更に、入力クロック端子３１からの距離が最も大きい端子１５の配置座標が求められる。以下では、入力クロック端子３１からの距離が最も大きい端子１５についての入力クロック端子３１からの距離をＤｍａｘと記載する。更に、配置座標の大小比較で、最もＸ座標の小さい端子１６の配置座標、最もＹ座標の小さい端子１７の配置座標が求められる（ステップＳ２０４）。
【００２５】
続いて、図７に図示されているように、ステップ２０４で求めた３点の座標（最も距離が大きい端子１５の配置座標と最もＸ座標の小さい端子１６の配置座標と最もＹ座標の小さい端子１７の配置座標）と一般的な円の性質と直線の公式を利用して、端子１５〜１７の配置座標が円周上にある円の中心Ｑの座標と当該円の半径Ｒが求められる（ステップＳ２０５）。
【００２６】
一方、図８に図示されているように、ＡＣスペックが定義された端子が一辺に並んでいる場合には、入力クロック端子３１の配置座標とＡＣスペックが定義された各端子の配置座標から、入力クロック端子３１からＡＣスペックが定義された端子への距離Ｄがそれぞれに求められる。更に、最も距離が大きな端子１８の配置座標と最も距離が小さい端子１６の配置座標が求められ（ステップＳ２０６）、２点を直径とする円の中心Ｑの座標と半径Ｒが求められる。（ステップＳ２０７）
【００２７】
続いて、図９に図示されているように、ステップＳ２０５又はＳ２０７にて求められた円の中心Ｑの座標と入力クロック端子３１の配置座標とから、入力クロック端子３１から円の中心Ｑまでの距離Ｄ１を求める。（ステップＳ２０８）。距離Ｄ１は、クロックツリーが理想的に配置されたときの、入力クロック端子３１からクロックツリーのルートバッファまでの距離に相当する。
【００２８】
続いて、図５Ｂに図示されているように、ステップ２０８で求めた距離Ｄ１と円の半径Ｒを合計した値（Ｄ１＋Ｒ）に対応する遅延時間を概略遅延計算テーブル９のテーブルルックアップによって得る事により、概略クロック遅延値Ｃａｐｐが決定される（ステップＳ２０９）。概略遅延計算テーブル９のテーブルルックアップの際に使用されるクロックバッファの種類に関しては、基本的には距離に対して最も遅延が小さいクロックバッファ（図３の例ではＢＵＦ１６）が選択されるが、そのクロックバッファがデザインの制限で使用禁止だった場合には、次に遅延が小さくなるクロックバッファが選択される。続いて、処理手順がステップＳ２１０に進む。
【００２９】
ステップＳ２１０では、ＡＣスペックが定義された端子のそれぞれが、入力クロック同期端子か出力クロック同期端子のいずれであるかが判別される。ＡＣスペックが定義された端子のうちの入力クロック同期端子については、ステップＳ２０９で求めた概略クロック遅延値Ｃａｐｐを最終的に当該端子における最小クロック遅延Ｃｉと決定する（ステップＳ２１１）。
【００３０】
一方、ＡＣスペックが定義された端子のうちの出力クロック同期端子については、ステップＳ２１２〜Ｓ２１４が行われる。まず、図１０に図示されているように、入力クロック端子３１から出力クロック端子３２までの距離Ｄｏｕｔが算出される（ステップＳ２１１）。次に、ステップＳ２０９と同様に距離Ｄｏｕｔの値と概略遅延計算テーブル９を用いて、クロック端子から出力クロック端子までの概略出力クロック遅延値（ｃ１）が算出される（ステップＳ２１２）。
【００３１】
更に、ステップＳ２１２で求めた概略出力クロック遅延値ｃ１と出力クロック端子の遅延ｃ２との和からステップＳ２０９で求めた最小クロック遅延値を減じて得られる差が出力クロック同期の場合の最小クロック遅延Ｃｏｕｔとして算出される（ステップＳ２１３）。即ち、
Ｃｏｕｔ  ＝  （ｃ１＋ｃ２）−Ｃｉ．      ・・・（１）
【００３２】
図４に戻り、最小クロック遅延の算出処理（ステップＳ１０３）が完了した後、ステップＳ１０４では、読み込んだ制約ファイル１２を元に、ＡＣスペックのタイミング収束に必要なクロック遅延の範囲（以下、必要クロック遅延範囲と称す）を算出する処理が行われる。必要クロック遅延範囲は、ＡＣスペックの値と、ＡＣスペックのある端子に接続するＦＦと当該端子の間で発生する遅延の値とで定まる。
【００３３】
図１１は、必要クロック遅延範囲を算出するフローチャートを示す。ステップＳ２０１で抽出したＡＣスペックのある端子を示す端子情報２０から、ＡＣスペックのある端子に接続するフリップフロップ及び端子とフリップフロップの間の途中経路の組み合わせ論理が抽出される（ステップＳ３０１）。
【００３４】
更に、必要クロック遅延範囲が、クロック周期と、制約ファイル１２に記述されたＡＣスペックと、ＡＣスペックが定義された端子とそれに信号を入出力するフリップフロップとの間のデータ遅延から算出される（ステップ３０２）。必要クロック遅延範囲の下限値ＣＭＩＮは、ＡＣスペックのある端子に信号を入力する場合に、タイミングの基準となるクロック信号（入力クロック信号、又は出力クロック信号）がアサートされた後、当該クロック信号がフリップフロップのクロック端子において次にアサートされる前に、ＡＣスペックの入力タイミング制約（Ｉ）に規定されたセットアップ時間を確保できるように信号が入力されるように決定される。一方、必要クロック遅延範囲の上限値ＣＭＡＸは、ＡＣスペックのある端子から信号を出力する場合に、タイミングの基準となるクロック信号（入力クロック信号、又は出力クロック信号）がアサートされた後、ＡＣスペックの出力タイミング制約（Ｏ）に規定された遅延値だけの遅延を許容しても、なお、当該クロック信号が次にアサートされるタイミングよりも前に信号が出力されるという条件を満足するように決定される。必要クロック遅延範囲の下限値ＣＭＩＮ、上限値ＣＭＡＸは、具体的には、下記の式（２ａ）、（２ｂ）で決定される。
ＣＭＩＮ＝（Ｉ＋ＤＩ）−Ｐ，      ・・・（２ａ）
ＣＭＡＸ＝Ｐ−（Ｏ＋ＤＯ）．      ・・・（２ｂ）
Ｐ：クロック周期（図２の符号２１）
Ｉ：入力端子のタイミング制約（図２の符号２２）
Ｏ：出力端子のタイミング制約（図２の符号２３）
ＤＩ  ：入力端子からフリップフロップまでのデータ遅延値
ＤＯ  ：フリップフロップから出力端子までのデータ遅延値
【００３５】
尚、データ遅延ＤＩ、ＤＯに関しては、高速なＩＦの場合には、タイミング収束の為にデータ遅延を最速にする目的で、フリップフロップ及び組み合わせ回路がＡＣスペックのある端子の近傍に配置されているのが一般的である。よって、データ遅延ＤＩ、ＤＯは、ステップＳ３０１で抽出したＡＣスペックのある端子に接続されているＦＦ及び組み合わせ論理の情報から、一般的に遅延計算で使用するライブラリ８から算出する。
【００３６】
図２の制約ファイル１２をつかって、必要クロック遅延Ｃを算出する例を示す。データ遅延ＤＩ、ＤＯをそれぞれ０．５ｎｓ、０．８ｎｓとすると、必要クロック遅延範囲は以下のようになる：
必要クロック遅延範囲の下限値：ＣＭＩＮ＝（５ｎｓ＋０．５ｎｓ）−４ｎｓ
＝１．５ｎｓ
必要クロック遅延範囲の上限値：ＣＭＡＸ＝  ４ｎｓ−（１ｎｓ＋０．８ｎｓ）
＝２．２ｎｓ
【００３７】
図４に戻り、必要クロック遅延範囲が算出された後、ＡＣスペックのタイミング判定が行われる（ステップＳ１０５）。タイミング判定の対象になるのは、必要クロック遅延範囲の上限値ＣＭＡＸである。最小クロック遅延算出処理（ステップＳ１０３）で算出した最小クロック遅延（Ｃｉ又はＣｏｕｔ）が、必要クロック遅延範囲の上限値ＣＭＡＸよりも大きい場合には、物理的にタイミング収束が不可能な端子の配置がなされていると推測される。このような場合には、タイミング制約の再検討や、端子の再配置が行われる必要がある。なお、最小クロック遅延（Ｃｉ又はＣｏｕｔ）が必要クロック遅延範囲の下限値ＣＭＩＮより小さい場合は問題にする必要がない。これは、クロック遅延を増大させることにより、クロック遅延を最終的に必要クロック遅延範囲に入れる事が可能であるためである。
【００３８】
即ち、最小クロック遅延の見積もり処理（ステップＳ１０４）で算出した最小クロック遅延が必要クロック遅延範囲の上限値ＣＭＡＸよりも小さければ（ＯＫ）、必要クロック遅延範囲内にクロック遅延を設定することが可能となる為、ステップＳ１０６の制約ファイル追加の処理に進み、制約ファイル１２にステップＳ１０４で算出した必要クロック遅延範囲の上限値ＣＭＡＸを追加する。
【００３９】
一方、必要クロック遅延見積もり処理（ステップＳ１０４）で算出した必要クロック遅延範囲の上限値ＣＭＡＸが、ステップＳ１０３で算出した最小クロック遅延（Ｃｉｎ  ｏｒ  Ｃｏｕｔ）よりも小さい場合（ＮＧ）は、物理的に実現不可能なクロック遅延を要求されている為、ＡＣスペックの制約ファイル修正処理（ステップＳ１０９）に進む。
【００４０】
ＡＣスペックのタイミング制約が外部ＬＳＩやメモリとのアクセス速度の観点で、タイミング制約値の見直しが可能な場合（ＹＥＳ）は、制約ファイル１２を修正し、ステップＳ１０２の処理に戻る。タイミング制約の見直しが不可能な場合（ＮＯ）は、現状の端子配置では、クロック端子とＡＣスペックのある端子群との距離が大きすぎる為に、要求されているクロック遅延を物理的に実現できない為、クロック端子との距離が小さくなるように端子配置の見直しを実施し、修正後の端子配置データ１１を用いて、ステップＳ１０１の処理に戻る。
【００４１】
ステップＳ１０６で必要クロック遅延範囲の上限値ＣＭＡＸが追加された制約ファイル１２をステップＳ１０７のタイミングドリブン配置処理に与えて、ＡＣスペックを考慮した自動配置処理を実施し、ステップ１０８でセル配置情報１３とレイアウト後のネットリスト１４を出力して終了する。
【００４２】
以上に説明されているように、本実施形態の設計手順によれば、端子配置後のＡＣスペックの実現性を判定してからセル配置の処理に進む為、設計イタレーションを減らすことができる。詳細には、本実施形態の設計手順では、概略遅延計算テーブルを利用して端子配置から実現できる最小クロック遅延が見積もられる一方で、ＡＣスペックからタイミング収束に必要なクロック遅延の範囲である必要クロック遅延範囲が算出される。そして、最小クロック遅延が必要クロック遅延範囲に設定可能かに基づいてＡＣスペックについてタイミング収束可能かが判定される。このように、本実施形態の設計手順は、ＡＣスペックの実現性を判断してからセル配置の処理に進む為、ＡＣスペックを満たす為に再度セル配置をやり直す必要をなくすことができる。
【符号の説明】
【００４３】
１：コンピュータ装置
２：サーバ
３：記憶媒体
４：ネットワーク
５：ＣＰＵ
６：ＲＯＭ
７：ＲＡＭ
８：ライブラリ
９：概略遅延計算テーブル
１０：ネットリスト
１１：端子配置データ
１２：制約ファイル
１３：セル配置情報
１４：レイアウト後ネットリスト
１５、１６、１７、１８、１９：端子
２０：端子情報
２１：クロック周期
２２：入力端子のタイミング制約
２３：出力端子のタイミング制約
３１：入力クロック端子
３２：出力クロック端子
１１０：コンピュータ
１２０：ネットリスト
１３０：ライブラリ
１３１：クロックツリー遅延見積テーブル
１４０：制約ファイル
１５０：出力装置
【図１】
2012137891.tif 000003
【図２】
2012137891.tif 000004
【図３】
2012137891.tif 000005
【図４】
2012137891.tif 000006
【図５Ａ】
2012137891.tif 000007
【図５Ｂ】
2012137891.tif 000008
【図６】
2012137891.tif 000009
【図７】
2012137891.tif 000010
【図８】
2012137891.tif 000011
【図９】
2012137891.tif 000012
【図１０】
2012137891.tif 000013
【図１１】
2012137891.tif 000014
【図１２】
2012137891.tif 000015
【図１３】
2012137891.tif 000016