(57)【要約】      （修正有）【課題】タイミングチェック後の配置配線工程において、タイミング制約違反が発生することを抑止し、イタレーションを防止する設計装置の提供。【解決手段】コンピュータ装置１００は、半導体回路の接続情報を記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセルを挿入し、タイミング制約情報を記憶部から読み出し、記憶部のセルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセルで置き換えるダミーセル置換部３５を備えている。【選択図】図１
2014048821.tif 000002
【特許請求の範囲】
【請求項１】
半導体回路の接続情報を記憶保持する第１の記憶部と、
セルの遅延情報を記憶保持する第２の記憶部と、
タイミング制約情報を記憶保持する第３の記憶部と、
前記半導体回路の接続情報を前記第１の記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセルを挿入するダミーセル挿入部と、
前記タイミング制約情報を前記第３の記憶部から読み出し、前記第２の記憶部の前記セルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセルで置き換えるダミーセル置換部と、
配置を考慮して論理合成を行うフィジカル合成後に前記信号経路に残っている前記第１のダミーセルを、前記第１のダミーセルの遅延時間と同等の遅延時間を有する遅延セルで置き換える遅延セル置換部と、
前記フィジカル合成後に前記信号経路に残っている前記第２のダミーセルを削除するダミーセル削除部と、
を備えた、半導体装置の設計装置。
【請求項２】
前記ダミーセル置換部は、前記セットアップ制約違反と判定された前記信号経路に挿入された前記第１のダミーセルのうち、削除することで前記セットアップ制約違反を解消する前記第１のダミーセルを前記第２のダミーセルで置き換え、他の前記第１のダミーセルは削除せずに残す、請求項１記載の半導体装置の設計装置。
【請求項３】
前記ダミーセル置換部は、配置を考慮して論理合成を行うフィジカル合成部に含まれ、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを前記第２のダミーセルに置き換えてフィジカル合成を行う、請求項１記載の半導体装置の設計装置。
【請求項４】
前記ダミーセル置換部に対して、前記第１のダミーセルの前記第２のダミーセルへの置き換えのみを許可する制約を付加するダミーセル置換制約付加部をさらに含む、請求項１記載の半導体装置の設計装置。
【請求項５】
前記ダミーセル置換部は、前記タイミング制約違反が検出された前記信号経路上に、前記第１のダミーセルが存在しない場合、タイミング制約違反調査対象外に設定する、請求項１記載の半導体装置の設計装置。
【請求項６】
前記第１のダミーセルの遅延時間を設定し、ダミーセル情報を記憶する第４の記憶部に格納するダミーセル遅延設定部と、
前記第２のダミーセルのサイズを設定し前記第４の記憶部に格納するダミーセルサイズ設定部と、
をさらに含む、請求項１記載の半導体装置の設計装置。
【請求項７】
前記ダミーセル挿入部は、前記信号経路上のセルの信号入力端子に、前記第１のダミーセルを挿入する、請求項１記載の半導体装置の設計装置。
【請求項８】
半導体回路の接続情報を記憶保持する第１の記憶部と、セルの遅延情報を記憶保持する第２の記憶部と、タイミング制約情報を記憶保持する第３の記憶部と、を備えたデータ処理装置による半導体装置の設定方法であって、
前記データ処理装置のダミーセル挿入部が、前記半導体回路の接続情報を前記第１の記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセルを挿入し、
前記データ処理装置のダミーセル置換部が、前記タイミング制約情報を前記第３の記憶部から読み出し、前記第２の記憶部の前記セルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセルで置き換え、
前記データ処理装置の遅延セル置換部が、配置を考慮して論理合成を行うフィジカル合成後に、前記信号経路に残っている前記第１のダミーセルを、前記第１のダミーセルの遅延時間と同等の遅延時間を有する遅延セルで置き換え、
前記データ処理装置のダミーセル削除部が、前記フィジカル合成後に前記信号経路に残っている前記第２のダミーセルを削除する、
上記工程を含む、半導体装置の設計方法。
【請求項９】
前記ダミーセル置換部が、前記セットアップ制約違反と判定された前記信号経路に挿入された前記第１のダミーセルのうち、削除することで前記セットアップ制約違反を解消する前記第１のダミーセルを前記第２のダミーセルで置き換え、他の前記第１のダミーセルは削除せずに残す、請求項８記載の半導体装置の設計方法。
【請求項１０】
前記ダミーセル置換部の処理は、配置を考慮して論理合成を行うフィジカル合成で行われ、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを前記第２のダミーセルに置き換えて前記フィジカル合成を行う、請求項８記載の半導体装置の設計方法。
【請求項１１】
前記データ処理装置のダミーセル置換制約付加部が、前記ダミーセル置換部に対して、前記第１のダミーセルの前記第２のダミーセルへの置き換えのみを許可する制約を付加する、請求項８記載の半導体装置の設計方法。
【請求項１２】
前記ダミーセル置換部は、前記タイミング制約違反が検出された前記信号経路上に、前記第１のダミーセルが存在しない場合、タイミング制約違反調査対象外に設定する、請求項８記載の半導体装置の設計方法。
【請求項１３】
前記データ処理装置のダミーセル遅延設定部が、前記第１のダミーセルの遅延時間を設定し、ダミーセル情報を記憶する第４の記憶部に格納し、
前記データ処理装置のダミーセルサイズ設定部が、前記第２のダミーセルのサイズを設定し前記第４の記憶部に格納する、請求項８記載の半導体装置の設計方法。
【請求項１４】
前記ダミーセル挿入部は、前記信号経路上のセルの信号入力端子に、前記第１のダミーセルを挿入する、請求項８記載の半導体装置の設計方法。
【請求項１５】
半導体回路の接続情報を記憶保持する第１の記憶部と、
セルの遅延情報を記憶保持する第２の記憶部と、
タイミング制約情報を記憶保持する第３の記憶部と、を備えたコンピュータに、
前記半導体回路の接続情報を前記第１の記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセルを挿入するダミーセル挿入処理と、
前記タイミング制約情報を前記第３の記憶部から読み出し、前記第２の記憶部の前記セルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセルで置き換えるダミーセル置換処理と、
配置を考慮して論理合成を行うフィジカル合成後に、前記信号経路に残っている前記第１のダミーセルを、前記第１のダミーセルの遅延時間と同等の遅延時間を有する遅延セルで置き換える遅延セル置換処理と、
前記フィジカル合成後に前記信号経路に残っている前記第２のダミーセルを削除するダミーセル削除処理と、
を実行させるプログラム。
【請求項１６】
前記ダミーセル置換処理が、前記セットアップ制約違反と判定された前記信号経路に挿入された前記第１のダミーセルのうち、削除することで前記セットアップ制約違反を解消する前記第１のダミーセルを、前記第２のダミーセルで置き換え、他の前記第１のダミーセルは削除せずに残す、請求項１５記載のプログラム。
【請求項１７】
前記ダミーセル置換処理が、配置を考慮して論理合成を行うフィジカル合成で行われ、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、前記第２のダミーセルに置き換えて前記フィジカル合成を行う、請求項１５記載のプログラム。
【請求項１８】
前記ダミーセル置換処理に対して、前記第１のダミーセルの前記第２のダミーセルへの置き換えのみを許可する制約を付加するダミーセル置換制約付加処理を、前記コンピュータに実行させる、請求項１５記載のプログラム。
【請求項１９】
前記ダミーセル置換処理は、前記タイミング制約違反が検出された前記信号経路上に、前記第１のダミーセルが存在しない場合、タイミング制約違反調査対象外に設定する、請求項１５記載のプログラム。
【請求項２０】
前記第１のダミーセルの遅延時間を設定し、ダミーセル情報を記憶する第４の記憶部に格納するダミーセル遅延設定処理と、
前記第２のダミーセルのサイズを設定し前記第４の記憶部に格納するダミーセルサイズ設定処理と、を前記コンピュータに実行させる、請求項１５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の設計装置および方法とプログラムに関し、特に、半導体装置のタイミング制約違反の解消を図る設計装置および方法とプログラムに関する。
【背景技術】
【０００２】
半導体装置の設計装置を用いた典型的な半導体集積回路の設計工程においては、例えば配置配線後にタイミング制約違反のチェックが行われる。その結果、当該半導体集積回路内の順序回路（フリップフロップ等）にホールドタイムエラー（「ホールドタイム違反」、「ホールドタイミング違反」、あるいは「ホールド違反」ともいう）が検出された場合、ホールドタイム違反の修正が行われる。
【０００３】
ここで、ホールドタイムとは、順序回路へタイミング信号（例えばクロック信号のトリガーエッジ（例えば立ち上がりエッジ））を与えたのちもデータ信号のレベル（論理レベル）を保持しておかなければならない最小の時間である。また、後述されるセットアップタイムとは、順序回路に入力されるデータ信号のレベル（論理レベル）をタイミング信号（例えばクロック信号のトリガーエッジ）に先立って確定・保持しておかなければならない最小の時間をいう。
【０００４】
信号の送り手側の順序回路（現クロックで信号をサンプル出力）から出力されたデータ信号が受け側の順序回路に到達するタイミングは、当該現クロックの次のクロックのトリガーエッジの前でなければならない。受け側の順序回路への信号の到達が現クロックの次のクロックよりも前であること（したがって、当該次のクロックのトリガーエッジよりもセットアップタイム以前に信号が確定しそのレベルが保持されていること）を保証するのが、セットアップ制約（「セットアップタイム制約」ともいう）である。また、前記受け側の順序回路への信号の到達がクロックのトリガーエッジよりもホールドタイム以上後であることを保証するのがホールド制約（「ホールドタイム制約」ともいう）である。
【０００５】
上記タイミングチェックの結果、順序回路間のパスの遅延値が小さ過ぎて、パス終端の順序回路でホールドタイム違反が発生していることが検出された場合、このホールドタイム違反の修正の一例として、例えばパスの終端の前記順序回路の前段等に遅延セル等を挿入して、クロック信号のエッジ（例えば立ち上がりエッジ）からのデータ保持時間をさらに遅延させ、ホールドタイムを確保する処理が行われる。
【０００６】
しかしながら、パス終端の順序回路へのデータパスに遅延セルを挿入することで、ホールドタイム違反は解消するが、当該順序回路においてセットアップタイム違反に対する余裕度（マージン）は減少する。この結果、セットアップタイム違反が発生する場合もある。このため、セットアップタイムの余裕度を確保しておくことが必要とされる。
【０００７】
一般に、ホールドタイム違反を解消する修正処理として、セットアップタイム違反に対する余裕度を確保した上で、ホールドタイム違反が発生した順序回路に接続するパスに遅延セル等を挿入する処理が行われる。
【０００８】
その際、当該順序回路でのホールドタイム違反を解消するために、順序回路間のパスに挿入される遅延セルに関して、当該遅延セルを挿入したい箇所の近傍に、当該遅延セルを配置する空き領域がなく、当該遅延セルを、本来挿入すべき箇所から遠く離れた箇所に配置せざるを得ない場合がある。
【０００９】
この場合、該遅延セルの配置箇所によっては、パスに見積もり以上の遅延値がついてしまい、セットアップタイム違反に対する余裕度がなくなり、セットアップタイム違反が発生する場合がある。
【００１０】
また、当該遅延セルの本来の挿入箇所から離れた箇所に当該遅延セルを配置することを前提として、順序回路間のパスの遅延値を見積もった場合、セットアップ制約違反を発生させない程度の遅延値で収まる位置（距離）に空き領域（遅延セルを配置することが可能な領域）が存在しなければ、当該遅延セルを挿入することはできない。
【００１１】
このように、遅延セルを配置するための空き領域が無いために遅延セルを挿入することができない場合には、例えば、当該遅延セルの挿入領域の周辺に配置されている既存のセルを移動させて、当該遅延セルを配置するための空き領域を確保することになる。
【００１２】
しかしながら、既存セルの配置を移動させると、当該既存セルに関連するパスの遅延値が変化し、その結果、他のパスのタイミング制約違反が繰り返して発生する可能性がある（イタレーションの発生）。
【００１３】
なお、特許文献１には、順序回路間のホールド違反解消という点において良好なタイミング収束性を実現する、という課題に対応するために、配置配線処理の前に、ホールドタイム違反を解消する技術（関連技術）が開示されている。この関連技術は、配置配線処理（Physical Synthesis含む）の前に、ゲートレベルネットリスト（ゲートレベルでの回路の接続情報）を対象に、ホールドタイミング違反箇所を特定し、バッファ挿入等により、先にホールドタイミング違反を解消することで、配置配線でのタイミング収束性の向上を図るものである。図９は、特許文献１の図２に基づく図である。図９を参照して関連技術を概説する。タイミング情報取得（Ｓ１１）、タイミング例外抽出（Ｓ１２）、バッファ挿入処理（Ｓ１３）、タイミング情報更新処理（Ｓ１４）、挿入不能構造解消処理（Ｓ１５）を有する。
【００１４】
タイミング情報取得（Ｓ１１）では、順序回路間の組み合わせ回路を、ＤＡＧ（Directed Acyclic Graph：無閉路有効グラフ）で表現し、組み合わせ回路を表す各ノードに対して、パス毎に、終点から当該組み合わせ回路までの到達遅延又はパス制約遅延−到達遅延の情報を付加したテーブルを作成する。
【００１５】
タイミング例外抽出（Ｓ１２）では、このテーブルを基に、セットアップ遅延が破綻するノード（クリティカルパス）を抽出し、さらに、順序回路間の始点からの到達遅延と前記終点からの到達遅延、またはパス制約遅延−到達遅延の情報とを用いて、ホールドタイム違反のパスを抽出する。
【００１６】
バッファ挿入処理（Ｓ１３）では、クリティカルパスが除外されたホールドタイミング違反のパスに対して、バッファの挿入候補を選択する。選択に当たっては、バッファ挿入数の最小化、及び、原理的にバッファ挿入不能なＤＡＧ構造を作りこまないように考慮し、選択された挿入候補のパスに、ホールドタイム対策用のバッファを挿入する。
【００１７】
タイミング情報の更新処理（Ｓ１４）は、バッファ挿入があった場合、当該ノードからファンイントレースとファンアウトトレースを実施し、バッファ挿入が行われたパス上の、遅延情報の更新を行う。
【００１８】
挿入不能構造解消処理（Ｓ１５）は、バッファ挿入不能構造を減らすために、最初はセットアップ制約を実際よりも厳しく設定してタイミング情報取得乃至バッファ挿入を行い、それによってホールドタイミングエラーのパスがあるならば、セットアップ制約を緩和して、タイミング情報取得乃至バッファ挿入処理を継続する。バッファ挿入不能構造があるなら、回路複製による解消を実施する。すなわち、当該不能構造を生成する組み合わせ回路を複製し、ホールド制約例外パスとクリティカルパスとを分離するように、当該複製回路を並列に挿入し、分離されたホールド制約例外パスにバッファを挿入する。これにより、バッファ挿入によるバッファ挿入不能構造生成を抑止することが可能となり、また最大遅延の偏った改悪を回避できる。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００８−３０５１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
以下に関連技術の分析を与える。
【００２１】
一般に、タイミング制約違反のチェックでは、セルの遅延情報を登録したデータベースであるセル遅延情報ライブラリを参照して、セットアップ制約違反、ホールド制約違反の見積もりが行われる。このため、実際に配置配線を行った結果との間で誤差が生じ易い。
【００２２】
そこで、特許文献１では、実際に配置配線を行った結果をセル遅延情報ライブラリ（図９の１１）として入力している。
【００２３】
しかしながら、特許文献１では、イタレーション（繰り返し処理）を前提としており、例えば以降の配置配線工程等において、タイミング制約違反が繰り返し発生することを抑止することは解決できていない。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２４】
一実施形態の装置は、半導体回路の接続情報を記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセルを挿入し、タイミング制約情報を記憶部から読み出し、記憶部のセルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセルで置き換えるダミーセル置換部を備えている。さらに、配置を考慮して論理合成を行うフィジカル合成後に前記信号経路に残っている前記第１のダミーセルを、前記第１のダミーセルの遅延時間と同等の遅延時間を有する遅延セルで置き換える遅延セル置換部と、前記フィジカル合成後に前記信号経路に残っている前記第２のダミーセルを削除するダミーセル削除部とを備える。
【発明の効果】
【００２５】
前記実施形態によれば、例えばタイミングチェック後の配置配線工程において、タイミング制約違反が発生することを抑止し、イタレーションを防止することができる。
【図面の簡単な説明】
【００２６】
【図１】実施形態の設計支援システムのシステム構成例である。
【図２】実施形態の処理手順を説明するためのフローチャートである。
【図３】実施形態の対象となる順序回路間の組み合わせ回路例である。
【図４】ダミーセルＤ１を挿入後の回路例である。
【図５】フィジカル合成での遅延見積もり例である。
【図６】ダミーセルＤ１、Ｄ２の置換処理後の回路例である。
【図７】ホールドタイム違反を解消する処理終了後の回路例である。
【図８】実施形態のシステム構成図である。
【図９】関連技術である特許文献１の図２に基づく図である。
【図１０】実施形態のいくつかの技術的特徴の一部を例示した図である。
【発明を実施するための形態】
【００２７】
実施形態について説明する。図１０は、実施形態のいくつかの技術的特徴の一例を例示した図である。図１０を参照すると、一実施形態の設計装置（システム）は、半導体回路の接続情報（修正前のゲートレベルネットリスト）を記憶保持する第１の記憶部（２０）と、セルの遅延情報を記憶保持する第２の記憶部（２１）と、タイミング制約情報を記憶保持する第３の記憶部（２２）と、を備えている。さらに、前記半導体回路の接続情報（ゲートレベルネットリスト）を前記第１の記憶部から読み出し、所定の順序回路間の少なくとも１つの信号経路に関して（例えば、信号経路に接続する受け側の順序回路でホールドタイム違反が検出された場合の修正として）、前記少なくとも１つの信号経路に、サイズが０で予め定められた所定の遅延時間を有する第１のダミーセル（ダミーセルＤ１）を挿入するダミーセル挿入部（３３Ａ）を備えている。さらに、前記タイミング制約情報を前記第３の記憶部から読み出し、前記第２の記憶部の前記セルの遅延情報を参照して、前記第１のダミーセルを挿入した前記信号経路がセットアップ制約違反であるか否か判定し、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、所定のサイズで遅延時間が０の第２のダミーセル（ダミーセルＤ２）で置き換えるダミーセル置換部（３５）を備えている。さらに、配置を考慮して論理合成を行うフィジカル合成後に、前記信号経路に残っている前記第１のダミーセルを、前記第１のダミーセルの遅延時間と同等の遅延時間を有する遅延セルで置き換える遅延セル置換部（３８）と、前記フィジカル合成後に前記信号経路に残っている前記第２のダミーセルを削除するダミーセル削除部（３９Ａ）とを備えている。設計装置（システム）は、修正後の半導体回路の接続情報（修正後のゲートレベルネットリスト）を第５の記憶部（２４）に格納する。
【００２８】
実施形態によれば、ダミーセル置換部（３５）は、前記セットアップ制約違反と判定された前記信号経路に挿入された前記第１のダミーセルのうち、削除することで前記セットアップ制約違反を解消する前記第１のダミーセルのみを、前記第２のダミーセルで置き換え、他の前記第１のダミーセルは削除せずに残す。
【００２９】
一実施形態によれば、前記ダミーセル置換部（３５）の処理は、配置を考慮して論理合成を行うフィジカル合成（Physical Synthesis）部で行うようにしてもよい。フィジカル合成において、前記セットアップ制約違反と判定された前記信号経路上に挿入されている前記第１のダミーセルを、前記第２のダミーセルに置き換えて、フィジカル合成（論理合成）を行う。
【００３０】
一実施形態によれば、前記ダミーセル置換部（３５）に対して、前記第１のダミーセルの前記第２のダミーセルへの置き換えのみを許可する制約を付加するダミーセル置換制約付加部（図１の３４）を備える。
【００３１】
一実施形態によれば、前記ダミーセル置換部（３５）は、前記タイミング制約違反が検出された前記信号経路上に、前記第１のダミーセルが存在しない場合、タイミング制約違反調査対象外に設定する構成としてもよい。
【００３２】
一実施形態によれば、前記第１のダミーセルの遅延時間を設定し、ダミーセル情報を記憶する第４の記憶部（２３）に格納するダミーセル遅延設定部（図１の３１）と、前記第２のダミーセルのサイズを設定し前記第４の記憶部（２３）に格納するダミーセルサイズ設定部（図１の３２）とを備えた構成としてもよい。
【００３３】
一実施形態によれば、前記ダミーセル挿入部（３３Ａ）は、前記信号経路上のセルの信号入力端子に、前記第１のダミーセルを挿入する（例えば図４のダミーセルＤ１（４６、４７、４８、４９）参照）。
【００３４】
一実施形態によれば、サイズ０（物理サイズが０）で任意の遅延を有する第１のダミーセル（ダミーセルＤ１）と、遅延０で任意のサイズ（セルサイズ）を有する第２のダミーセル（ダミーセルＤ２）を用意する。第１のダミーセル（Ｄ１）の遅延、第２のダミーセル（Ｄ２）のセルサイズが設定される。あるいは、遅延、セルサイズが既に設定されている第１、第２のダミーセル（Ｄ１、Ｄ２）の中から、所望の遅延、セルサイズの第１、第２のダミーセル（Ｄ１、Ｄ２）を選択するようにしてもよい。第１のダミーセル（Ｄ１）を、ホールドタイム違反修正対象のパス上のセル（論理ゲート）の入力端子に配置する。
【００３５】
一実施形態によれば、ホールドタイム違反修正のために前記パスに挿入した第１のダミーセル（Ｄ１）の遅延により、セットアップタイム違反に対する余裕度（マージン）が減少する。第１のダミーセル（Ｄ１）の挿入の結果、セットアップ制約違反が発生したパスに挿入された第１のダミーセル（Ｄ１）を、第２のダミーセル（Ｄ２）で置換する。一方、セットアップ制約違反が検出されず、フィジカル合成後に前記パス上に残った第１のダミーセル（Ｄ１）を、第２のダミーセル（Ｄ１）と同等の遅延時間を持つ遅延セルに置き換える。最後に、フィジカル合成後のネットリストに残ったダミーセルＤ２を削除する。
【００３６】
一実施形態によれば、サイズ０で所定の遅延時間のダミーセルＤ１と、遅延が０で所定サイズのダミーセルＤ２を用いることで、例えば、論理最適化、配置最適化を同時に行うフィジカル合成による、精度の高い遅延計算を用いてセットアップタイムの余裕度を見積もることができる。
【００３７】
一実施形態によれば、セットアップタイムが十分な余裕度を有するパスに対して、ホールドタイム違反を解消するための遅延セルを配置したネットリストを作成する。このため、これ以降に行われる配置配線工程（詳細な配置配線工程）において、タイミング違反の発生を抑止することが出来る。このため、イタレーションを防止する。
【００３８】
以下では、実施形態に関して、システム構成、装置構成、具体例、処理手順等について図面を参照してより詳細に説明する。
【００３９】
＜実施形態１＞
図８は、実施形態のシステム構成を例示する図である。図８を参照すると、コンピュータ装置１００とサーバ１０４と記録媒体１０５とネットワーク１０６とを備ええいる。記録媒体１０５は、実行プログラムの提供に供されるサーバ１０４に保持されている。サーバ１０４は、例えばインターネット、あるいは、ＬＡＮ（ローカルエリアネットワーク）などのネットワーク１０６を介して、特に制限されないが、エンジニアリングワークステーションなどのコンピュータ装置１００に接続される。記録媒体１０５に格納されている実行プログラムは、ネットワーク１０６を介して、コンピュータ装置１００にダウンロードされる。ダウンロードされたプログラムは、コンピュータ装置１００のローカルなハードディスク又はメモリ等に格納され、実行される。コンピュータ装置１００には、図１０を参照して説明した前記実施形態の装置、あるいは、後述する実施形態２の装置が実装される。
【００４０】
＜実施形態２＞
図１は、実施形態による、半導体装置の設計装置の構成を例示する図である。半導体装置の設計装置は、データ処理装置（コンピュータ装置）と、記憶装置と、図示されない表示装置、入力装置、出力装置、通信装置（インタフェース）等を備え、半導体装置の回路設計、配置配線を行う装置である。半導体装置の設計装置１１０は、データを入力するコンピュータ装置１００と、コンピュータ装置１００に接続された、データやプログラムを記憶する記録媒体１０５（記憶装置）を備えている。図１において、コンピュータ装置１００、記録媒体１０５は、図８のコンピュータ装置１００、記録媒体１０５にそれぞれ対応する。ただし、図８において、サーバ１０４の記録媒体１０５をコンピュータ装置１００側に備えた構成としてもよいことは勿論である。
【００４１】
記録媒体１０５は、ゲートレベルネットリスト（修正前のゲートレベルネットリスト）２０、セル遅延情報ライブラリ２１、遅延制約ファイル２２、ダミーセルライブラリ２３、修正後のゲートレベルネットリスト２４を記憶する。図１では、ゲートレベルネットリスト（修正前のゲートレベルネットリスト）２０、セル遅延情報ライブラリ２１、遅延制約ファイル２２、ダミーセルライブラリ２３、修正後のゲートレベルネットリスト２４は、別々の記録媒体１０５に格納されている例が図示されているが、別々の記録媒体１０５ではなく、１つの記憶媒体の別々の記憶領域に記憶してもよいことは勿論である。
【００４２】
ゲートレベルネットリスト２０は、設計対象とされる半導体集積回路の回路構成をゲートレベルで規定するネットリストある。図１では、この点を明示するため、修正前のゲートレベルネットリストと記載している。
【００４３】
セル遅延情報ライブラリ２１は、各セルの遅延量、駆動能力等遅延値を計算するための遅延情報を保持するライブラリである。
【００４４】
遅延制約ファイル２２は、順序回路のタイミング制約（クロック制約）、すなわち、セットアップタイム制約とホールドタイム制約を示す情報ファイルである。
【００４５】
ダミーセルライブラリ２３は、ダミーセルＤ１の遅延情報とダミーセルＤ２のセルサイズ情報を格納したライブラリである。
【００４６】
修正後のゲートレベルネットリスト２４は、ホールドタイム違反を解消したゲートレベルのネットリストである。
【００４７】
修正前のゲートレベルネットリスト２０は、回路の規定形態は、特に制限されない。なお、ゲートレベルのネットリストは、その回路表現が、システムレベル、動作レベル、ＲＴＬ（Register Transfer Level）よりも下位であるがトランジスタレベルよりも上位のネットリストであり、論理ゲートを接続したネットリスト構造として表現される。例えばＶｅｒｉｌｏｇ−ＨＤＬ（Hardware Description Language）／ＶＨＤＬ(VHSIC (Very High Speed Integrated Circuits) Hardware Description Language)やＥＤＩＦ(Electronic Design Interchange Format)等が用いられる。
【００４８】
ダミーセルライブラリ２３において、ダミーセルＤ１と、ダミーセルＤ２の遅延情報とセルサイズ情報は、任意に設定変更可能である。なお、サイズ０で遅延が任意に設定可能とされるダミーセルＤ１と、遅延が０でサイズが任意に設定可能とされるダミーセルＤ２は、適用されるテクノロジ、デザインルール等に対応して、事前に、ダミーセルライブラリ２３内に複数種用意しておくようにしてもよい。
【００４９】
修正後のゲートレベルネットリスト２４は、ゲートレベルで記述された回路の接続情報である。
【００５０】
遅延挿入処理部３０は、修正前のゲートレベルネットリスト２０、セル遅延情報ライブラリ２１、遅延制約ファイル２２、ダミーセルライブラリ２３を入力し、修正後ゲートレベルネットリスト２４を、記録媒体１０５に出力する。
【００５１】
遅延挿入処理部３０は、ダミーセルＤ１遅延値設定部３１、ダミーセルＤ２セルサイズ設定部３２、ダミーセルＤ１挿入部３３、ダミーセル置換制約付加部３４、ダミーセル置換部３５、遅延セル置換部３８、ダミーセルＤ２削除部３９を備えている。遅延挿入処理部３０の各部は、コンピュータ装置１００で実行されるプログラムによりその機能、処理が実現される構成としてもよい。
【００５２】
ダミーセル置換部３５は、セットアップ制約違反判定部３６、ダミーセルＤ１、Ｄ２置換処理部３７を備えている。特に制限されないが、ダミーセル置換部３５におけるセットアップ制約違反判定部３６と、ダミーセルＤ１、Ｄ２置換処理部３７の処理は、フィジカル合成部で行うようにしてもよい。この場合、ダミーセル置換部３５は、フィジカル合成部に実装される。なお、フィジカル合成部は、論理合成機能と配置機能（セル配置機能）が統合化され、配置を考慮して論理合成を行う（論理最適化と配置最適化を連動して行う）。特に制限されないが、フィジカル合成では、例えばタイミング制約、論理ライブラリ、物理ライブラリ、ゲートレベルネットリスト（又はRTL記述）、フロアプラン情報等を入力し、配置情報を基に配線パスを求め、配線容量等の特性を見積もる。このため、タイミング見積もり精度等を向上し、タイミング収束を容易化している。
【００５３】
ダミーセルＤ１遅延値設定部３１では、ダミーセルＤ１の遅延値を設定し、ダミーセルＤ１の遅延設定値を、ダミーセルライブラリ２３に格納する。あるいは、ダミーセルＤ１遅延値設定部３１は、ダミーセルライブラリ２３に格納されている、遅延時間が設定されている複数のダミーセルＤ１の中から、適切な遅延時間のダミーセルＤ１を選択する構成としてもよい。この場合、ダミーセルＤ１遅延値設定部３１では、ダミーセルライブラリ２３に格納されている、ダミーセルＤ１の遅延時間の一覧が例えば表示装置に表示され、設計者（ユーザ）は、その中から適切な遅延時間のダミーセルＤ１を選択する。
【００５４】
ダミーセルＤ２セルサイズ設定部３２では、ダミーセルＤ２のセルサイズを設定し、ダミーセルＤ２のセルサイズ設定値をダミーセルライブラリ２３に格納する。あるいは、ダミーセルＤ２セルサイズ設定部３２は、ダミーセルライブラリ２３に格納されている、セルサイズが設定されている複数のダミーセルＤ２の中から、適切なセルサイズのダミーセルＤ２を選択する構成としてもよい。この場合、ダミーセルＤ２セルサイズ設定部３２では、ダミーセルライブラリ２３に格納されている、ダミーセルＤ２のセルサイズの一覧が例えば表示装置に表示され、設計者（ユーザ）は、その中から適切なセルサイズのダミーセルＤ２を選択する。
【００５５】
ダミーセルＤ１挿入部３３は、記憶媒体１０５から読み出した修正前のゲートレベルネットリスト２０の全てのセルの入力端子に対して、ダミーセルＤ１を挿入する。
【００５６】
ダミーセル置換制約付加部３４は、ダミーセルＤ１挿入部３３で生成したネットリストに対して、ダミーセルＤ１とダミーセルＤ２の置き換えのみを許可する制約を、ダミーセル置換部３５（フィジカル合成部）に与える。
【００５７】
ダミーセルＤ１、Ｄ２置換処理部３７では、セットアップ制約違反判定部３６と協働して、セットアップ制約違反が無くなるように（したがってセットアップ制約を満たすように）、ダミーセルＤ１をダミーセルＤ２に置き換える。
【００５８】
ダミーセル置換制約付加部３４で設定されたダミーセルの置換制約により、ダミーセルＤ１、Ｄ２置換処理部３７は、ダミーセルＤ１をダミーセルＤ２でのみ置換する。すなわち、この置換制約により、ダミーセル置換部３５では、セットアップ制約違反判定部３６で、セットアップ制約違反の有無を判定し、セットアップ制約違反が生じたパスのダミーセルＤ１をダミーセルＤ２で置換する。ダミーセル置換部３５の処理を実行するフィジカル合成部による論理最適化・配置最適化の過程において、ダミーセルＤ１を削除する場合、削除対象の該ダミーセルＤ１に対するダミーセルＤ２による置き換えを伴う。さらに、ダミーセルＤ１挿入部３３によってゲートレベルネットリストに挿入されたダミーセルＤ１を全てダミーセルＤ２に置き換えるのではなく、セットアップタイム制約を満たすために削除が必要と判断されたダミーセルＤ１のみを、ダミーセルＤ２で置き換える。これ以外のダミーセルＤ１は、ダミーセルＤ２で置換されずに（削除されずに）、残される。
【００５９】
遅延セル置換部３８は、ダミーセル置換部３５によるダミーセルＤ２への置き換えが終了したゲートレベルネットリスト（フィジカル合成後のゲートレベルネットリスト）において、フィジカル合成でダミーセルＤ２に置き換えられずに残ったダミーセルＤ１を、実際に配置配線処理で使用される遅延セル（ダミーセルＤ１と同等の遅延値を持つバッファ回路あるいは組み合わせ回路等からなる遅延セル）に置き換える。
【００６０】
ダミーセルＤ２削除部３９は、フィジカル合成後のゲートレベルネットリストにおいて、遅延セル置換部３８による遅延セルへの置き換えが終了したゲートレベルネットリストから、ダミーセルＤ２を削除し、修正後のゲートレベルネットリスト２４を出力し記憶媒体１０５に格納する。
【００６１】
図３は、実施形態によるホールドタイム違反の解消を説明するためのゲートレベルネットリスト（図１の修正前のゲートレベルネットリスト２０）を論理回路の接続構成で示した図である。図３を参照すると、フリップフロップ（クロックの立ち上がりエッジでデータ入力端子の信号をキャプチャするＤ型フリップフロップ）４１は、クロック信号ＣＬＫを入力とするクロック入力端子Ｃと、組み合わせ回路４２の出力端子に接続されたデータ入力端子Ｄと、端子ＯＵＴと接続されたデータ出力端子Ｑとを備えている。
【００６２】
組み合わせ回路４２は、組み合わせ回路４３の出力端子に接続された第１の入力端子と、フリップフロップ（Ｄ型フリップフロップ）４５のデータ出力端子Ｑに接続された第２の入力端子と、フリップフロップ４１のデータ入力端子Ｄに接続された出力端子を備えている。
【００６３】
組み合わせ回路４３は、フリップフロップ４４のデータ出力端子Ｑに接続された入力端子と、組み合わせ回路４２の第１の入力端子に接続された出力端子とを備えている。
【００６４】
フリップフロップ４４は、クロック信号ＣＬＫを入力とするクロック入力端子Ｃと、組み合わせ回路４２の第２の入力端子に接続したデータ出力端子Ｑとを備えている。
【００６５】
フリップフロップ（Ｄ型フリップフロップ）４５は、クロック信号ＣＬＫを入力とするクロック入力端子Ｃと、組み合わせ回路４３の入力端子と接続したデータ出力端子Ｑを備えている。
【００６６】
図３のゲートレベルネットリストの（修正前のゲートレベルネットリスト）において、フリップフロップ４４からフリップフロップ４１、フリップフロップ４５からフリップフロップ４１までのパスが、実施形態によるタイミング制約のチェック対象とされる（ホールドタイム違反修正対象）。
【００６７】
図４は、図１のダミーセルＤ１挿入部３３により、図３のネットリストに、ダミーセルＤ１を挿入した後のネットリストを論理回路の接続構成で示した図である。図３のフリップフロップ４１のデータ入力端子Ｄ、組み合わせ回路４２の第１、第２の入力端子、組み合わせ回路４３の入力端子にダミーセルＤ１（４６、４７、４８、４９）がそれぞれ挿入されている。
【００６８】
図４を参照すると、フリップフロップ４１のデータ入力端子ＤはダミーセルＤ１（４６）の出力端子に接続されている。
【００６９】
ダミーセルＤ１（４６）の入力端子と出力端子は、組み合わせ回路４２の出力端子と、フリップフロップ４１のデータ入力端子Ｄに、それぞれ接続されている。
【００７０】
組み合わせ回路４２の第１、第２の入力端子は、それぞれ、ダミーセルＤ１（４７）、ダミーセルＤ１（４９）の出力端子に接続され、組み合わせ回路４２の出力端子はダミーセルＤ１（４６）の入力端子に接続されている。
【００７１】
ダミーセルＤ１（４７）の入力端子と出力端子は、それぞれ、組み合わせ回路４３の出力端子と組み合わせ回路４２の第１の入力端子に接続されている。
【００７２】
組み合わせ回路４３の入力端子と出力端子は、それぞれ、ダミーセルＤ１（４８）の出力端子とダミーセルＤ１（４７）の入力端子に接続されている。
【００７３】
ダミーセルＤ１（４８）の入力端子の出力端子は、それぞれ、フリップフロップ４４のデータ出力端子Ｑと組み合わせ回路４３の入力端子にそれぞれ接続されている。
【００７４】
ダミーセルＤ１（４９）の入力端子と出力端子は、それぞれ、フリップフロップ４５のデータ出力端子Ｑと、組み合わせ回路４２の第２の入力端子に接続されている。
【００７５】
図５は、フィジカル合成での遅延見積もり例である。接続構成自体は、図４と同じであるが、フリップフロップ４４からフリップフロップ４１のパスが、フリップフロップ４５からフリップフロップ４１までのパスよりも、距離が短いものとして見積もられている。この見積もりを反映して、図５では、フリップフロップ４５は、フリップフロップ４１に対して、フリップフロップ４４よりも遠くに配置されている。
【００７６】
図６は、図５に対して、ダミーセルＤ１、Ｄ２の置換処理後のネットリストを論理回路の接続構成で示した図である。図５の接続構成では、フリップフロップ４１のデータ入力端子Ｄへのパス（組み合せ回路４２の出力端子とフリップフロップ４１のデータ入力端子Ｄの間のパス）に、ダミーセルＤ１（４６）が存在しており、フリップフロップ４１において、セットアップ制約違反が発生しているため、図５のダミーセルＤ１（４６）を、図６に示すように、遅延０のダミーセルＤ２（５０）で置き換える。また、図５において、フリップフロップ４５のデータ出力端子Ｑと組み合せ回路４２の第２の入力端子の間のパスに挿入されているダミーセルＤ１（４９）を、図６に示すように、遅延０のダミーセルＤ２（５２）で置き換える。さらに、図５において、フリップフロップ４４と組み合せ回路４３の入力との間のダミーセルＤ１（４８）を、図６に示すように、遅延０のダミーセルＤ２（５１）で置き換える。図６において、フリップフロップ４４からフリップフロップ４１へのパスには、ダミーセルＤ１（４７）による遅延のみが挿入されており、フリップフロップ４１における、セットアップ制約違反は解消される。
【００７７】
図６を参照すると、フリップフロップ４１のデータ入力端子Ｄは、ダミーセルＤ２（５０）の出力端子に接続され、ダミーセルＤ２（５０）の入力端子は、組み合わせ回路４２の出力端子に接続されている。組み合わせ回路４２の第１の入力端子は、ダミーセルＤ１（４７）の出力端子に接続され、第２の入力端子はダミーセルＤ２（５２）の出力端子に接続されている。ダミーセルＤ１（４７）の入力端子は、組み合わせ回路４３の出力端子に接続されている。組み合わせ回路４３の入力端子は、ダミーセルＤ２（５１）の出力端子に接続されている。ダミーセルＤ２（５１）の入力端子は、フリップフロップ４４のデータ出力端子Ｑに接続されている。フリップフロップ４４のクロック入力端子Ｃにはクロック信号ＣＬＫが入力される。ダミーセルＤ２（５２）の入力端子は、フリップフロップ４５のデータ出力端子Ｑに接続されている。フリップフロップ４５のクロック入力端子Ｃはクロック信号ＣＬＫが入力される。
【００７８】
図７は、遅延挿入処理部３０の処理終了後の修正後のゲートレベルネットリスト２４を論理回路の接続構成で示した図である。図７において、図６のダミーセルＤ１（４７）は、バッファ、組み合せ回路等の遅延セル７７で置き換えられ、ダミーセルＤ２（５０）、ダミーセルＤ２（５１）、ダミーセルＤ２（５２）は削除される。
【００７９】
図７を参照すると、フリップフロップ４１のデータ入力端子Ｄは、組み合わせ回路４２の出力端子に接続されている。組み合わせ回路４２の第１の入力端子は、遅延セル７７の出力端子に接続され、第２の入力端子はフリップフロップ４５のデータ出力端子Ｑに接続されている。遅延セル７７の入力端子は、組み合わせ回路４３の出力端子に接続されている。組み合わせ回路４３の入力端子は、フリップフロップ４４のデータ出力端子Ｑに接続されている。フリップフロップ４４、４５のクロック入力端子Ｃにはクロック信号ＣＬＫが入力される。
【００８０】
図２は、実施形態の処理手順を説明する流れ図である。図１及び図２を参照して、実施形態の処理を説明する。
【００８１】
ダミーセルＤ１遅延値設定部３１で、ダミーセルＤ１の遅延値を決定する（図２のステップＳ３０１）。ダミーセルＤ１の遅延値は、ホールドタイム違反が発生しない遅延値を与える必要があり、例えば、
・回路の設計マージンと、
・クロックスキューと、
・ホールドタイム
の合計である。
【００８２】
ダミーセルＤ２セルサイズ設定部３２は、遅延０で任意の物理サイズを有するセルであり、ダミーセルＤ２のセルサイズを決定する（図２のステップＳ３０２）。ダミーセルＤ２は、ダミーセルＤ１のセルサイズよりも大きければよい。ダミーセルＤ２のセルサイズとして、例えば、設計する回路の最小単位にて設定してもよい。
【００８３】
ダミーセルＤ１挿入部３３は、遅延解析対象の修正前のゲートレベルネットリスト２０のセルの入力端子に対してダミーセルＤ１を挿入する（図２のステップＳ３０３）。図５の例では、各セルの入力端子に、４６、４７、４８、４９のダミーセルＤ１を挿入する。
【００８４】
ダミーセル置換制約付加部３４は、ダミーセルＤ１挿入部３３で生成したネットリストに対してダミーセルＤ１とダミーセルＤ２の置き換えのみを許可する制約を付加する（図２のステップＳ３０４）。
【００８５】
セットアップ制約違反判定部３６は、セットアップ制約違反が発生しているか否か判定する（図２のステップＳ３０５）。
【００８６】
セットアップ制約違反が発生している場合（図２のステップＳ３０５のＹｅｓ分岐）、ダミーセルＤ１、Ｄ２置換処理部３７は、パス上にダミーセルＤ１が存在しているか否かを判断する（図２のステップＳ３０６）。セットアップ制約違反が発生しているパス上に、ダミーセルＤ１が存在している場合（図２のステップＳ３０６のＹｅｓ分岐）、セットアップ制約違反が無くなるように、ダミーセルＤ１、Ｄ２置換処理部３７は、ダミーセルＤ１をダミーセルＤ２で置き換え（図２のステップＳ３０７）、その後、ステップＳ３０５のセットアップ制約違反の判定に戻る。
【００８７】
セットアップ制約違反が発生しているパス上に、ダミーセルＤ１が存在しない場合には（図２のステップＳ３０６のＮｏ分岐）、入力された修正前のゲートレベルネットリスト２０に発生していたセットアップ制約違反であるため、ダミーセルＤ１、Ｄ２置換処理部３７は、当該パスをセットアップ制約違反調査の対象外に設定し（図２のステップＳ３０８）、ステップＳ３０５に戻る。以降、ダミーセル置換部３５では、セットアップ制約違反調査の対象外のパスは、セットアップ制約違反判定部３６によるセットアップ制約違反の調査は行わず、当該パスはセットアップ制約違反が無いものとして扱われる。
【００８８】
ステップＳ３０５からＳ３０６、Ｓ３０７、Ｓ３０８の処理は、セットアップ制約違反が無くなるまで繰り返される。ステップＳ３０５からＳ３０６、Ｓ３０７、Ｓ３０８を含むステップＳ３１５の処理は、例えばフィジカル合成部による、論理合成の最適化で実行するようにしてもよい。
【００８９】
図２のステップＳ３０５で、セットアップ制約違反が発生しない場合には、遅延セル置換部３８で、残ったダミーセルＤ１を遅延セルに置き換える（図２のステップＳ３０９）。
【００９０】
ダミーセルＤ２削除部３９は、フィジカル合成後のゲートレベルネットリストからダミーセルＤ２を削除し、修正後ゲートレベルネットリスト２４として出力する（図２のステップＳ３１０）。
【００９１】
遅延挿入処理部３０により出力された修正後のゲートレベルネットリスト２４（記憶部に記憶される）は、初期配置処理で配置が行われる（図２のステップＳ３１１）。なお、初期配置処理は、図１では図示されない。
【００９２】
初期配置処理終了後、セットアップタイミング例外抽出処理により、セットアップ制約違反が発生したパスが抽出される（図２のステップＳ３１２）。なお、セットアップタイミング例外抽出処理は、図１では図示されない。
【００９３】
部分再論理合成処理により、セットアップ制約違反を改善したネットリストが作成される（図２のステップＳ３１３）。なお、部分再論理合成処理は、図１では図示されない。
【００９４】
部分再論理合成処理により作成されたネットリストは、配置改善処理で配置が実行される（図２のステップＳ３１３）。なお、配置改善処理は、図１では図示されない。
【００９５】
セットアップ制約違反がなくなるまで、図２のステップＳ３１２、Ｓ３１３、Ｓ３１４の処理が繰り返される。なお、図２のステップＳ３１２、Ｓ３１３、Ｓ３１４は、発明の主題等には関係しないので詳細は省略する。
【００９６】
＜実施例＞
以下、より具体的な例として、前述した図３の論理回路を再び参照して説明する。特に制限されないが、各組み合わせ回路は、遅延時間（信号が入力されてから出力されるまでの伝搬遅延時間）を「１」とし、フリップフロップ４１は、
・セットアップ制約を「１５」、
・ホールド制約を「８」
とする。
【００９７】
図３において、あるクロックサイクルのクロック信号ＣＬＫの立ち上がりエッジに同期してフリップフロップ４４又は４５のデータ出力端子Ｑから出力されたデータ信号が、組み合せ回路４３、４２、又は組み合せ回路４２を介して、フリップフロップ４１のデータ入力端子Ｄに到達するタイミングは、次のクロックサイクルのクロック信号ＣＬＫの立ち上がりエッジの前でなければならない。フリップフロップ４４又は４５からのデータ信号がフリップフロップ４１のデータ入力端子Ｄに、次のクロック信号ＣＬＫの立ち上がりエッジよりも前に到達することを保証するのがセットアップ制約である。フリップフロップ４４又は４５からの次のデータ信号が、フリップフロップ４１のデータ入力端子Ｄに、クロック信号ＣＬＫの立ち上がりエッジよりも後に到達する（現在のデータ信号はクロック信号の立ちあがりエッジののちホールドタイム以上一定の論理レベルに保持される）ことを保証するのが、ホールド制約である。
【００９８】
ダミーセルＤ１の遅延値設定処理（図２のステップＳ３０１）により、ダミーセルＤ１の遅延値が決定される。例として、
設計マージン：２、
クロックスキュー：５、
ホールドタイム：１
とし、
設計マージン：１とクロックスキュー：５とホールドタイム：１の合計値「８」をダミーセルＤ１の遅延値として与える。
【００９９】
ダミーセルＤ２のセルサイズ設定処理（図２のステップＳ３０２）により、ダミーセルＤ２のセルサイズが決定される。一例としてセルサイズ「１」を設定する。
【０１００】
図４は、ダミーセルＤ１の挿入処理（図２のステップＳ３０３）により、図３の回路にダミーセルＤ１（４６〜４９）を挿入した後の回路接続を示す図である。ダミーセルＤ１（４６〜４９）を回路中に挿入した場合は、回路面積には、影響を及ぼさずに、遅延が増加する。
【０１０１】
ダミーセルＤ１は、遅延値を増加させるだけの存在であるため、ダミーセルＤ１を挿入したネットリストを使用して、論理合成を行った場合に、論理合成後は、全て削除されてしまう。ダミーセルＤ１は、セットアップ制約違反が発生しないパスであることを示す目印として用いることを目的としている。
【０１０２】
このため、セットアップタイムに余裕度（マージン）がある箇所については、ダミーセルＤ１が削除されないように工夫する必要がある。実施形態では、ダミーセルＤ１を削除させずに、論理合成を実現するための手段として、ダミーセルＤ２が配置される。
【０１０３】
ダミーセルＤ１は、遅延を増加させる作用があるため、通常は、論理合成時（後）に削除されるが、実施形態では、ダミーセル置換制約付加部３４の処理（図２のステップＳ３０４）により、ダミーセルＤ１をダミーセルＤ２で置き換える処理のみが実行される。すなわち、ダミーセルＤ１を削除するだけの処理は行われず、ダミーセルＤ１の削除には必ず、ダミーセルＤ２との置換が伴う。また、ダミーセルＤ１をダミーセルＤ２以外の他のセルと置換は行われない。
【０１０４】
ただし、ダミーセルＤ１（所定の遅延＞０、サイズ０）をダミーセルＤ２（所定サイズ＞０、遅延０）で置き換えた場合は、回路面積が増加してしまう。
【０１０５】
そこで、本実施形態において、フィジカル合成（図１の３５、図２のＳ３１５）では、ダミーセルＤ１が存在しているために、セットアップ制約違反が発生する場合にだけ、ダミーセルＤ１をダミーセルＤ２へ置き換えを行う。すなわち、その削除により、セットアップ制約違反を解消することが可能なダミーセルＤ１だけをダミーセルＤ２へ置き換えてフィジカル合成（配置を考慮した論理合成）を行う。
【０１０６】
図５は、ダミーセルＤ１とＤ２の置換処理（図２のステップＳ３０７）を実行する際、フィジカル合成により、フリップフロップ４１に対して、フリップフロップ４５が、フリップフロップ４４よりも遠くに配置されると見積もられた場合の図である。
【０１０７】
セル遅延情報ライブラリ２１では、フリップフロップ４５の遅延値が１と見積もられていたが、フィジカル合成により、フリップフロップ４５がダミーセルＤ１（４９）と離れて配置されると見積もられ、フリップフロップ４５の遅延値が「１」から「１０」に変更されたものとする。
【０１０８】
フリップフロップ４４からフリップフロップ４１までのパスの遅延値は、
・フリップフロップ４４からダミーセルＤ１（４８）までの遅延値は「１」、
・ダミーセルＤ１（４８）から組み合わせ回路４３までの遅延値は「８」、
・組み合わせ回路４３からダミーセルＤ１（４７）までの遅延値は「１」、
・ダミーセルＤ１（４７）から組み合わせ回路４２までの遅延値は「８」、
・組み合わせ回路４２からダミーセルＤ１（４６）までの遅延値は「１」、
・ダミーセルＤ１（４６）からフリップフロップ４１までの遅延値は「８」、
であるため、
合計で「２７」と見積もられる。
【０１０９】
フリップフロップ４５からフリップフロップ４１までの遅延値は、
・フリップフロップ４５からダミーセルＤ１（４９）までの遅延値は「１０」、
・ダミーセルＤ１（４９）から組み合わせ回路４２までの遅延値は「８」、
・組み合わせ回路４２からダミーセルＤ１（４６）までの遅延値は「１」、
・ダミーセルＤ１（４６）からフリップフロップ４１までの遅延値は「８」、
であるため、
合計で「２７」と見積もられる。
【０１１０】
フリップフロップ４４からフリップフロップ４１までのパスのセットアップ制約は、遅延制約ファイル２２により、「１５」と設定されている。
【０１１１】
このため、セットアップ制約違反判定部３６では、セットアップ制約違反が発生していると判定し、ダミーセルＤ１、Ｄ２置換処理部３７により、セットアップ制約違反がなくなるまで、ダミーセルＤ１がダミーセルＤ２に置き換えられる（図２のステップＳ３０７）。
【０１１２】
置き換え対象となるダミーセルＤ１は、フィジカル合成処理（図１の３５）により、任意の順番に選択される。
【０１１３】
ダミーセルＤ１挿入部３３（図２のＳ３０３）で出力したネットリストは、フリップフロップ４５からフリップフロップ４１までのパスも、フリップフロップ４４からフリップフロップ４１までのパスと同様に、セットアップ制約違反が発生しているとセットアップ制約違反判定部３６で判定される。
【０１１４】
ダミーセルＤ１、Ｄ２置換処理部３７の処理（図２のステップＳ３０７）により、セットアップ制約違反と判定されたパスにおいて、セットアップ制約違反がなくなるまで、ダミーセルＤ１がダミーセルＤ２に置き換えられる。
【０１１５】
図５において、ダミーセルＤ１、Ｄ２置換処理部３７により、ダミーセルＤ１がダミーセルＤ２に置き換えられた後の回路構成は、図６となる。セットアップ制約違反と判定されないパスのダミーセルＤ１（４６、４８、４９）はダミーセルＤ２（５０、５１、５２）と置き換えられている。ダミーセルＤ１（４７）は削除されず、残される。
【０１１６】
図７は、遅延セル置換部３８でダミーセルＤ１（４７）を、ダミーセルＤ１と同等の遅延値を持つ遅延セル７７で置換し、ダミーセルＤ２削除部３９でダミーセルＤ２（５０、５１、５２）を削除した後の、修正後のゲートレベルネットリストを論理回路の接続構成で示した図である。
【０１１７】
図７に示すように、セットアップタイムの余裕度のあるパス（フリップフロップ４４からフリップフロップ４１へのパス）にのみ、ホールドタイム違反対策用のバッファ等の遅延セル（７７）が挿入された状態のネットリストが作成される。
【０１１８】
図７において、フリップフロップ４４からフリップフロップ４１までのパスの遅延値は、
・フリップフロップ４４から組み合わせ回路４３までの遅延値は「１」、
・組み合わせ回路４３から遅延セル７７までの遅延値は「１」、
・遅延セル７７から組み合わせ回路４２までの遅延値は「８」、
・組み合わせ回路４２からフリップフロップ４１までの遅延値は「１」、
であるため、
合計で「１１」と見積もられる。
【０１１９】
フリップフロップ４４のデータ出力端子Ｑから出力されたデータ信号は、フリップフロップ４１のデータ入力端子Ｄに遅延値「１１」で到達し、セットアップ制約「１５」以内である。さらに、フリップフロップ４１のデータ入力端子Ｄに到達したデータ信号は、１クロックサイクル分（セットアップ制約とセットアップタイムを考慮して例えば「２０」とする）、データ信号の論理レベルを保つとした場合、前のクロックの立ち上がりエッジから「１１」の時点で到達した信号は、その時点から「２０」の時間期間、レベルが保持されるため、現クロックの立ち上がりエッジを基準に、「１１」の期間、データが保持されることになり、ホールド制約「８」以上となる。すなわち、ホールド制約も満たす。
【０１２０】
フリップフロップ４５からフリップフロップ４１までのパスの遅延値は、
・フリップフロップ４５か組み合わせ回路４２までの遅延値は「１０」、
・組み合わせ回路４２からフリップフロップ４１までの遅延値は「１」、
であるため、
合計で「１１」と見積もられ、上記と同様、セットアップ制約「１５」を満たす。同様に、ホールド制約も満たす。
【０１２１】
上記実施形態によれば、ダミーセルＤ１、ダミーセルＤ２の置き換えを行う際に、フィジカル合成を用いて遅延値の見積もりを行うため、概略配置結果に基づいた遅延値が適用され、ホールドタイム違反対策用バッファの挿入不足や、余分なホールドタイム違反対策用バッファの挿入が無くなる。
【０１２２】
また、上記実施形態によれば、詳細な配置配線実行前のネットリストにホールドタイム違反対策用バッファを挿入することができる。この結果、以降の詳細な配置配線工程においてホールドタイム違反解消のために、新たなタイミング違反発生や、致命的な配線性悪化を抑止することができ、イタレーション（繰り返し処理）を防止することができる。
【０１２３】
また、上記実施形態によれば、配置配線後の性能を加味するフィジカル合成を使用して、詳細の配置配線の状態に近い配線負荷モデルを使用して遅延見積もりを行うことで詳細な配置配線実行前のネットリストにホールドタイム違反対策用バッファを挿入することができる。
【０１２４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１２５】
２０  修正前のゲートレベルネットリスト
２１  セル遅延情報ライブラリ
２２  遅延制約ファイル
２３  ダミーセルライブラリ
２４  修正後のゲートレベルネットリスト
３０  遅延挿入処理部
３１  ダミーセルＤ１遅延値設定部
３２  ダミーセルＤ２セルサイズ設定部
３３  ダミーセルＤ１挿入部
３３Ａ  ダミーセル挿入部
３４  ダミーセル置換制約付加部
３５  ダミーセル置換部（フィジカル合成部）
３６  セットアップ制約違反判定部
３７  ダミーセルＤ１、Ｄ２置換処理部
３８  遅延セル置換部
３９  ダミーセルＤ２削除部
３９Ａ  ダミーセル削除部
４２、４３  組み合わせ回路
４１、４４、４５  フリップフロップ
４６〜４９  ダミーセルＤ１
５０〜５２  ダミーセルＤ２
７７  遅延セル
１００  コンピュータ装置
１０４  サーバ
１０５  記録媒体（記憶装置）
１０６  ネットワーク
１１０  半導体装置の設計装置（配置配線装置）
【図１】
2014048821.tif 000003
【図２】
2014048821.tif 000004
【図３】
2014048821.tif 000005
【図４】
2014048821.tif 000006
【図５】
2014048821.tif 000007
【図６】
2014048821.tif 000008
【図７】
2014048821.tif 000009
【図８】
2014048821.tif 000010
【図９】
2014048821.tif 000011
【図１０】
2014048821.tif 000012