(57)【要約】【課題】従来のバッファ回路の挿入方法では、レイアウトパターン上の配置混雑度が上昇し、配線性が低下する問題があった。【解決手段】本発明にかかるバッファ回路挿入装置は、レイアウト情報及び占有率上限値を格納する格納部１１と、レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定するバッファ回路挿入箇所検索部１０と、挿入箇所を含む所定の領域の配置混雑度を算出するセル占有率チェック部１２と、配置混雑度が占有率上限値以下である場合に所定の領域にバッファ回路を配置し、バッファ回路配置後のレイアウト情報を格納部に出力するバッファ回路挿入処理部１３と、を有する。【選択図】図８
2010146047.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト情報及び占有率上限値を格納する格納部と、
前記レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定するバッファ回路挿入箇所検索部と、
前記挿入箇所を含む所定の領域の配置混雑度を算出するセル占有率チェック部と、
前記配置混雑度が前記占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置し、前記バッファ回路配置後の前記レイアウト情報を前記格納部に出力するバッファ回路挿入処理部と、
を有するバッファ回路挿入装置。
【請求項２】
前記バッファ回路挿入箇所検索部は、前記配置混雑度が前記占有率上限値よりも高い場合、前記挿入箇所の検索範囲と前記占有率上限値の少なくとも一方の条件を緩和する請求項１に記載のバッファ回路挿入装置。
【請求項３】
前記バッファ回路は、前記半導体装置に含まれる論理回路のホールドマージンを改善するバッファ回路である請求項１又は２に記載のバッファ回路挿入装置。
【請求項４】
前記レイアウト情報は、少なくとも回路のネットリスト情報と、前記回路に含まれる素子の形状の定義情報、及び、前記素子の配置座標情報を含む請求項１乃至３のいずれか１項に記載のバッファ回路挿入装置。
【請求項５】
演算回路において実行され、半導体装置のレイアウト工程におけるバッファ回路の挿入処理を行うバッファ回路挿入プログラムであって、
格納部に格納されたレイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定し、
前記挿入箇所を含む所定の領域の配置混雑度を算出し、
前記配置混雑度が前記格納部に格納された占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置し、
前記バッファ回路配置後の前記レイアウト情報を前記格納部に格納するバッファ回路挿入プログラム。
【請求項６】
前記挿入箇所の前記配置混雑度が前記占有率上限値よりも高い場合、前記所定の領域の範囲と前記占有率上限値との少なくとも一方の条件を緩和する請求項５に記載のバッファ回路挿入プログラム。
【請求項７】
前記バッファ回路は、前記半導体装置に含まれる論理回路のホールドマージンを改善するバッファ回路である請求項４又は６に記載のバッファ回路の挿入方法。
【請求項８】
前記レイアウト情報は、少なくとも回路のネットリスト情報と、前記回路に含まれる素子の形状の定義情報、及び、前記素子の配置座標情報を含む請求項５乃至７のいずれか１項に記載のバッファ回路挿入プログラム。
【請求項９】
半導体装置のレイアウト工程におけるバッファ回路の挿入方法であって、
レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定し、
前記挿入箇所を含む所定の領域の配置混雑度を算出し、
前記配置混雑度が予め設定された占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置するバッファ回路の挿入方法。
【請求項１０】
前記挿入箇所の前記配置混雑度が前記占有率上限値よりも高い場合、前記所定の領域の範囲と前記占有率上限値との少なくとも一方の条件を緩和する請求項９に記載のバッファ回路の挿入方法。
【請求項１１】
前記バッファ回路は、前記半導体装置に含まれる論理回路のホールドマージンを改善するバッファ回路である請求項９又は１０に記載のバッファ回路の挿入方法。
【請求項１２】
前記レイアウト情報は、少なくとも回路のネットリスト情報と、前記回路に含まれる素子の形状の定義情報、及び、前記素子の配置座標情報を含む請求項９乃至１１のいずれか１項に記載のバッファ回路の挿入方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバッファ回路挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラムに関し、特に半導体装置のレイアウト工程における遅延時間調整用のバッファ回路のバッファ回路挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラムに関する。
【背景技術】
【０００２】
近年、半導体装置では、製造プロセスの微細化と動作電源電圧の低電圧化が進んでいる。このように微細化及び低電圧化が進んだ半導体装置では、配線遅延によるクロックタイミング不良の問題が大きくなっている。クロックタイミング不良の問題を解決するために、回路設計工程及びレイアウト工程におけるタイミング検証が行われる。そして、タイミング検証の結果に応じて信号伝達経路及びクロック信号伝達経路に遅延時間調整用のバッファ回路を挿入する。このようにバッファ回路を挿入することでクロックタイミングの整合性を向上させることでクロックタイミング不良の問題に対処することができる。回路設計工程におけるバッファ回路挿入は、回路素子の遅延を考慮したものである。一方、レイアウト工程では、回路素子の遅延に加えて配線遅延等も考慮される。ここで、レイアウト工程におけるバッファ回路挿入方法の一例が特許文献１に開示されている。
【０００３】
特許文献１に記載のバッファ回路の挿入方法の処理フローを図９に示す。図９に示すように、特許文献１に記載のバッファ回路の挿入方法は、回路の動作タイミングのうちホールドタイムマージンの改善を行う。
【０００４】
特許文献１に記載のバッファ回路の挿入フローでは、まず、ステップＳ１０１において、論理合成部が論理設計の段階で設計仕様格納部に格納されたデータに基づいてネットリストを作成する。このとき、ホールドタイム違反に関する制約は与えずに、セットアップ違反に関する制約のみを与えて論理合成を行う。そして、論理合成部は、作成したネットリストのデータをタイミング検証部に入力する。
【０００５】
次に、ステップＳ１０２において、タイミング検証部は、ネットリストに表される全ての論理回路の構造（ネット情報）と各論理回路間の全ての接続情報とを解析する。そして、解析レポートは、論理合成部に入力される。
【０００６】
次に、ステップＳ１０３において、論理合成部は、解析レポートに基づき、予め設定しておいた条件を参照することにより、ホールドタイム違反を起こす可能性のあるパス（以下、ホールドタイムエラーパスという）を抽出する。
【０００７】
次に、ステップＳ１０４において、タイミング検証部は、ホールドタイムエラーパスの始点に位置するＦＦ回路と終点に位置するＦＦ回路に関し、最大遅延パスＡ〜Ｄの抽出を行う。なお、最大遅延パスＡは、ホールドタイムエラーパスの始点のＦＦ回路を起点として最も遅延時間が発生するパスである。最大遅延パスＢは、ホールドタイムエラーパスの始点のＦＦ回路を終点として最も遅延時間が発生するパスである。最大遅延パスＣは、ホールドタイムエラーパスの終点のＦＦ回路を起点として最も遅延時間が発生するパスである。最大遅延パスＤは、ホールドタイムエラーパスの終点のＦＦ回路を終点として最も遅延時間が発生するパスである。
【０００８】
そして、ステップＳ１０５において、タイミング検証部は、最大遅延パスＡ〜Ｄにおけるセットアップ違反に対するマージン（すなわち、各最大遅延パスＡ〜Ｄにどの程度の遅延回路を挿入してもセットアップ違反が発生しないか）を算出し、フロア表示部に表示する。これにより、操作者は、各最大遅延パスＡ〜Ｄに遅延回路を挿入してもセットアップ違反が起こらないかどうか、すなわち各最大遅延パスＡ〜Ｄのタイミングマージンが充分かどうかを判別し、その判別結果に基づきレイアウトの修正作業を行う。
【０００９】
特許文献１では、修正方法としてケース１〜４（ステップＳ１０６〜１０９）がある。ケース１（ステップＳ１０６）は、最大遅延パスＡ及びＢのタイミングマージンが充分である場合である。そこで、ケース１では、予めライブラリに登録してある修正用ＦＦ回路ユニットを読み出し、ホールドタイムエラーパスの始点に位置するＦＦ回路を修正用ＦＦ回路ユニットに置き換える。
【００１０】
ケース２（ステップＳ１０７）は、最大遅延パスＡ又はＢのタイミングマージンが充分でなく、最大遅延パスＣ及びＤのタイミングマージンが充分である場合である。そこで、ケース２では、予めライブラリに登録してある修正用ＦＦ回路ユニットを読み出し、ホールドタイムエラーパスの終点に位置するＦＦ回路を修正用ＦＦ回路ユニットに置き換える。
【００１１】
ケース３（ステップＳ１０８）は、最大遅延パスＡのみのタイミングマージンが充分である場合である。そこで、ケース３では、既存のＦＦ回路を修正用ＦＦ回路ユニットに置き換えることは行わずに、ホールドタイムエラーパスの始点に位置するＦＦ回路の出力端子に別途遅延回路を挿入する。
【００１２】
ケース４（ステップＳ１０９）は、最大遅延パスＡのタイミングマージンが充分でなく、最大遅延パスＣ又はＤのタイミングマージンも充分でない場合である。そこで、ケース４では、既存のＦＦ回路を修正用ＦＦ回路ユニットに置き換えることは行わずに、ホールドタイムエラーパス上にのみ別途遅延回路を挿入する。
【００１３】
その後、ステップＳ１１０において、論理合成部は、ステップＳ１０６〜Ｓ１０９で行われた回路変更に基づいてネットリストを修正し、修正後のレイアウトの動作タイミングの正当性を確認する。この正当性の確認は、テストパターンを用いることなく、回路変更の正当性をカバレッジ１００%で検証するものであり、一般的にフォーマル検証と呼ばれている。ステップＳ１１０において、修正後のレイアウトの動作タイミングの正当性を確認できた場合、一連の作業は終了し、再びＳ１０３に戻る。
【特許文献１】特開２００１−４４２８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、近年、半導体装置では微細化が進み素子の配置密度が向上している。そのため、特許文献１に記載のバッファ回路挿入方法のようにＦＦ回路の置き換えやバッファ回路の挿入を行うと素子の配置混雑度が局所的に高くなる。このように配置混雑度が高くなると配線性（配線のしやすさ）が低下し、素子間を接続する配線を行うことができなくなる問題がある。この配線性が低下すると、配線間の距離が近くなる箇所が多くなる傾向があり、配線間距離が近い箇所では製造工程において配線間のショートが発生する問題が生じる。
【課題を解決するための手段】
【００１５】
本発明にかかるバッファ回路挿入装置の一態様は、レイアウト情報及び占有率上限値を格納する格納部と、前記レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定するバッファ回路挿入箇所検索部と、前記挿入箇所を含む所定の領域の配置混雑度を算出するセル占有率チェック部と、前記配置混雑度が前記占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置し、前記バッファ回路配置後の前記レイアウト情報を前記格納部に出力するバッファ回路挿入処理部と、を有する。
【００１６】
本発明にかかるバッファ回路挿入プログラムの一態様は、演算回路において実行され、半導体装置のレイアウト工程におけるバッファ回路の挿入処理を行うバッファ回路挿入プログラムであって、格納部に格納されたレイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定し、前記挿入箇所を含む所定の領域の配置混雑度を算出し、前記配置混雑度が前記格納部に格納された占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置し、前記バッファ回路配置後の前記レイアウト情報を前記格納部に格納する。
【００１７】
本発明にかかるバッファ回路の挿入方法の一態様は、半導体装置のレイアウト工程におけるバッファ回路の挿入方法であって、レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定し、前記挿入箇所を含む所定の領域の配置混雑度を算出し、前記配置混雑度が予め設定された占有率上限値以下である場合に前記所定の領域に前記バッファ回路を配置する。
【００１８】
本発明にかかるバッファ回路の挿入方法、バッファ回路挿入装置、及び、バッファ回路挿入プログラムでは、バッファ回路を挿入する挿入箇所を含む所定の領域の配置混雑度を算出する。そして、配置箇所の配置混雑度が占有率上限値以下であれば、配置混雑度の計算対象となった所定の領域にバッファ回路を挿入する。これにより、本発明にかかるバッファ回路の挿入方法、バッファ回路挿入装置、及び、バッファ回路挿入プログラムによれば、配置混雑度の局所的な上昇を防止することができる。
【発明の効果】
【００１９】
本発明にかかるバッファ回路の挿入方法、バッファ回路挿入装置、及び、バッファ回路挿入プログラムによれば、素子間を接続する配線の配線性を損なうことなくバッファ回路を挿入することができる。
【発明を実施するための最良の形態】
【００２０】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるバッファ回路の挿入方法を適用する工程はレイアウト工程に含まれる。そこで、まず、レイアウト工程について説明する。図１にレイアアウト工程のフローチャートを示す。
【００２１】
図１に示すように、レイアウト工程では、まず、配置配線を行う（ステップＳ１）。この配置配線では、回路設計工程において生成されたネットリストに基づき素子の配置及び素子間の配線を行う。続いて、配置配線により生成されたレイアウト情報に基づきレイアウト後の回路に対してタイミング検証を行う（ステップＳ２）。このタイミング検証では、回路に含まれる素子により生じる信号遅延及び配線の寄生抵抗及び寄生容量に起因する信号遅延を考慮してクロックタイミング検証が行われる。このタイミング検証の結果はＳＴＡ（Static Timing Analysis）レポートとして出力される。
【００２２】
そして、ＳＴＡレポートを参照してタイミング不良箇所の有無を判断する（ステップＳ３）。ステップＳ３の判断においてタイミング不良箇所がないと判断された場合（ステップＳ３のＹｅｓの枝）、レイアウト情報に基づきＧＤＳデータを生成して、レイアウト工程を終了する（ステップＳ５）。このＧＤＳデータは、半導体装置の製造工程で用いられるレチクルを製造するために用いられるデータであって、レイアウトの画像データを含む。一方、ステップＳ３の判断においてタイミング不良箇所があると判断された場合（ステップＳ３のＮｏの枝）、本実施の形態にかかるバッファ回路の挿入処理が行われる（ステップＳ４）。ステップＳ４の完了後は、バッファ回路を挿入した後のレイアウト情報に対してタイミング検証が行われる（ステップＳ２）。以下の説明では、ステップＳ４として行われるバッファ回路の挿入処理について詳しく説明する。
【００２３】
図２に本実施の形態にかかるバッファ回路の挿入処理のフローチャートを示す。図２に示すように、本実施の形態にかかるバッファ回路の挿入処理では、まずレイアウト情報とＳＴＡレポートとに基づきバッファ回路の挿入箇所を特定する（ステップＳ１０）。ここで、レイアウト情報には、回路の設計情報であるｖｅｒｉｌｏｇから生成されたネットリストと、回路に含まれる素子の形状等を定義したＬＥＦ（Library Exchange Format）、及び回路に含まれる素子のチップ上における座標情報を記述したＤＥＦ（Design Exchange Format）を少なくとも含む。このステップＳ１０では、ＳＴＡレポートに基づきタイミングエラーに対応するバッファ回路を選択と、選択したバッファ回路を挿入すべき経路（又は配線）を特定する。
【００２４】
続いて、ステップＳ１１では、ステップＳ１０において特定されたバッファ回路の挿入箇所を含む所定の領域の配置混雑度を算出する。より具体的には、ステップＳ１１では、計算対象とする所定の領域の大きさを予め設定しておき、当該所定の領域に配置された素子の配置混雑度を算出する。なお、計算対象とする領域の大きさはこの後の処理において拡大又は変更される。なお、配置混雑度とは、所定の領域の面積に対する素子（例えばトランジスタや抵抗など）が配置される領域の面積の比によって表される。つまり、所定の領域において素子が配置される領域の占める割合が高ければ配置混雑度は高くなる。
【００２５】
続いて、ステップＳ１２において、ステップＳ１１において計算対象となった所定の領域にバッファ回路を挿入できるか否か判断する。より具体的には、ステップＳ１２では、ステップＳ１１で算出された配置混雑度が占有率上限値以下であるか否かを判断する。そして、配置混雑度が占有率上限値以下であればバッファ回路を所定の領域に配置可能と判断する（ステップＳ１２のＹｅｓの枝）。一方、配置混雑度が占有率上限値よりも大きければバッファ回路を所定の領域に配置できないと判断する（ステップＳ１２のＮｏの枝）。なお、占有率上限値とは、バッファ回路が挿入可能な所定の領域の配置混雑度の上限を定めた値である。この占有率上限値は、予め定めされた初期値を有する。そして、本実施の形態では、この占有率上限値を処理フローに応じて更新する。
【００２６】
ステップＳ１２においてバッファ回路が挿入可能と判断された場合（ステップＳ１２のＹｅｓの枝）、ステップＳ１５においてバッファ回路の挿入処理が行われて処理は終了する。一方、ステップＳ１２においてバッファ回路が挿入不可能と判断された場合（ステップＳ１２のＮｏの枝）、ステップＳ１３においてバッファ回路の挿入を可能と判断するための条件が緩和される。条件の緩和は、例えば、ステップＳ１１において計算対象とする所定の領域の範囲の拡大、又は、占有率上限値の緩和である。なお、条件の緩和方法に関しては、所定の領域の範囲拡大のみを行っても良く、占有率上限値の緩和のみを行っても良い。また、条件の緩和方法に関して、所定の領域の範囲拡大と、占有率上限値の緩和とを交互に行っても良い。
【００２７】
そして、ステップＳ１４において緩和後の条件が上限値に達したか否かを判断する。ステップＳ１４において緩和後の条件が上限値に達していれば（ステップＳ１４のＹｅｓの枝）処理を終了する。一方、ステップＳ１４において緩和後の条件が上限値に達していなければ（ステップＳ１４のＮｏの枝）、緩和後の条件に基づきステップＳ１１〜Ｓ１２の処理を行う。
【００２８】
続いて、本実施の形態にかかるバッファ回路挿入方法の処理フローを具体例に沿って説明する。まず、レイアウト処理の対象となる回路の一例を図３に示す。図３に示す回路は、フリップフロップＦＦ１〜ＦＦ３、バッファ回路ＢＵＦ１〜ＢＵＦ３を有する。フリップフロップＦＦ１〜ＦＦ３は、半導体装置において具体的な処理を行う回路の一部である。また、フリップフロップＦＦ１〜ＦＦ３は動作クロックＣＬＫに基づき動作する。バッファ回路ＢＵＦ１〜ＢＵＦ３は、回路設計において挿入された遅延調整用のバッファ回路である。
【００２９】
図３に示す回路は、フリップフロップＦＦ１に入力信号ＩＮが入力され、フリップフロップＦＦ１の出力信号をフリップフロップＦＦ２、ＦＦ３が受ける。そして、フリップフロップＦＦ２、ＦＦ３は、入力された信号をそれぞれ出力信号ＯＵＴ２、ＯＵＴ３として出力する。このときバッファ回路ＢＵＦ１、ＢＵＦ２は、フリップフロップＦＦ１からフリップフロップＦＦ２に至る経路上に配置される。バッファ回路ＢＵＦ３は、フリップフロップＦＦ１からフリップフロップＦＦ３に至る経路上であって、バッファ回路ＢＵＦ１とバッファ回路ＢＵＦ２とを接続する配線から分岐した配線に設けられる。以下、バッファ回路ＢＵＦ１とバッファ回路ＢＵＦ２とを接続する配線上の分岐点をＮ１と称す。また、フリップフロップＦＦ１からフリップフロップＦＦ２に至る経路をパス１と称し、フリップフロップＦＦ１からフリップフロップＦＦ３に至る経路をパス２と称す。
【００３０】
次に、パス１に対して行ったタイミング検証（例えば、ホールドタイムに関するタイミング検証）の結果（ＳＴＡレポート）を図４に示す。図４に示すように、パス１では、フリップフロップＦＦ１において３ｎｓｅｃの遅延時間が生じ、バッファ回路ＢＵＦ１において１ｎｓｅｃの遅延時間が生じ、バッファ回路ＢＵＦ２において１ｎｓｅｃの遅延時間が生じ、フリップフロップＦＦ２において３ｎｓｅｃの遅延時間が生じる。なお、フリップフロップＦＦ１の遅延時間は、フリップフロップＦＦ１の入力端子に信号が到達してから信号が出力端子から出力されるまでの時間である。また、バッファ回路ＢＵＦ１、ＢＵＦ２の遅延時間は、前段の回路から信号が出力されてからバッファ回路の出力端子から出力されるまでの時間である。フリップフロップＦＦ２の遅延時間は、バッファ回路ＢＵＦ２から信号が出力されてからフリップフロップＦＦ２の入力端子に信号が達するまでの時間である。つまり、これらの遅延時間は、配線遅延を含む。そして、パス１の総遅延時間は、８ｎｓｅｃとなる。このとき、パス１のホールドタイムに関する遅延時間の制約値が９ｎｓｅｃと規定されている場合、パス１はホールドタイムの規格を満足できない。
【００３１】
一方、図５にパス２に対して行ったタイミング検証の（例えば、ホールドタイムに関するタイミング検証）の結果（ＳＴＡレポート）を示す。図５に示すように、パス２では、フリップフロップＦＦ１において３ｎｓｅｃの遅延時間が生じ、バッファ回路ＢＵＦ１において１ｎｓｅｃの遅延時間が生じ、バッファ回路ＢＵＦ２において４ｎｓｅｃの遅延時間が生じ、フリップフロップＦＦ２において２ｎｓｅｃの遅延時間が生じる。なお、フリップフロップＦＦ１の遅延時間は、フリップフロップＦＦ１の入力端子に信号が到達してから信号が出力端子から出力されるまでの時間である。また、バッファ回路ＢＵＦ１、ＢＵＦ３の遅延時間は、前段の回路から信号が出力されてからバッファ回路の出力端子から出力されるまでの時間である。フリップフロップＦＦ３の遅延時間は、バッファ回路ＢＵＦ３から信号が出力されてからフリップフロップＦＦ３の入力端子に信号が達するまでの時間である。つまり、これらの遅延時間は、配線遅延を含む。そして、パス２の総遅延時間は、１０ｎｓｅｃとなる。このとき、パス２のホールドタイムに関する遅延時間の制約値が９ｎｓｅｃと規定されている場合、パス２はホールドタイムの規格を満足できる。
【００３２】
図３に示す回路に対して、図４、図５に示すタイミング検証の結果が得られた場合、分岐点Ｎ１からフリップフロップＦＦ２に至る経路上にバッファ回路を挿入する。これにより、パス１の総遅延時間を大きくしながら、パス２の総遅延時間に変更を生じさせないことができる。例えば、フリップフロップＦＦ１から分岐点Ｎ１に至る経路にバッファ回路を挿入した場合、現状において問題のないパス２のセットアップマージンが減少し、パス２のセットアップタイムが規格を満たせなくなるおそれがある。
【００３３】
続いて、図３に示す回路のレイアウトパターンの例を図６に示し、図３に示す回路におけるバッファ回路挿入箇所の決定方法について説明する。図６に示すように、本実施の形態では、レイアウト領域には、スロットと呼ばれる単位領域が規定されている。そして、本実施の形態では、スロットに沿って回路素子を配置する。図６に示すレイアウトパターンでは、フリップフロップＦＦ１〜ＦＦ３及びバッファ回路ＢＵＦ１〜ＢＵＦ３は自動配置配線により配置されるものとする。また、論理回路Ｌｏｇｉｃは、図３に示した回路以外の回路において用いられる回路素子である。
【００３４】
本実施の形態では、図４に示したＳＴＡレポートに基づき、分岐点Ｎ１からフリップフロップＦＦ２に至る経路上を遅延バッファの挿入箇所とすることを図２に示すステップＳ１０の処理で特定する。そして、図２のステップＳ１１では、図６に示したレイアウトパターンにおいてフリップフロップＦＦ２の近傍を中心に素子混雑度の計算対象となる所定の領域Ａを設定する。このとき、所定の領域Ａの大きさは予め設定された初期値により決定されるものとする。図６に示す例では、この所定の領域Ａの配置混雑度は、占有率上限値以上であるものとする。
【００３５】
このような場合、図２に示すステップＳ１２においてＮｏの枝に進む。そして、図６に示す例では、条件緩和方法として所定の領域Ａを拡大して新たに所定の領域Ｂを設定する。そして、処理を図２に示すステップＳ１１に戻す。そして、ステップＳ１１において所定の領域Ｂの素子混雑度を計算する。図６に示す例では、この所定の領域Ｂの配置混雑度は、占有率上限値以下であるものとする。このような場合、本実施の形態では、ステップＳ１５において所定の領域Ｂに含まれる領域にバッファ回路ＩＢＵＦを挿入する。
【００３６】
ここで、バッファ回路ＩＢＵＦ挿入後のレイアウトパターンを図７に示す。図７に示すように、バッファ回路ＩＢＵＦは、フリップフロップＦＦ２の上側であって、バッファ回路ＢＵＦ２の右側に配置される。
【００３７】
上記において説明したバッファ回路の挿入方法は、ハードウェア処理により実現することができる。ここで、本実施の形態にかかるバッファ回路の挿入方法を実現するバッファ回路挿入装置について説明する。図８に本実施の形態にかかるバッファ回路挿入装置のブロック図を示す。
【００３８】
図８に示すように、バッファ回路挿入装置は、バッファ回路挿入箇所検索部１０、格納部１１、セル占有率チェック部１２、バッファ回路挿入処理部１３を有する。バッファ回路挿入箇所検索部１０は、図２に示すステップＳ１０、Ｓ１３に相当する処理を行う。つまり、バッファ回路挿入箇所検索部１０は、レイアウト情報に基づきバッファ回路を挿入する挿入箇所を特定する。より具体的には、バッファ回路挿入箇所検索部１０は、格納部１１に格納されたレイアウト情報とＳＴＡレポートに基づきバッファ回路を挿入する挿入箇所を特定し、特定した結果を挿入箇所検索結果として格納部１１に出力する。また、バッファ回路挿入箇所検索部１０は、セル占有率チェック部１２においてバッファ回路の配置対象とした所定の領域の配置混雑度が占有率上限値よりも大きい場合に検索閾値情報に含まれる条件を緩和する。ここで、レイアウト情報は、ｖｅｒｉｌｏｇに基づき生成されたネットリストと、ＤＥＦ、ＬＥＦを含む。また、ＳＴＡレポートは図１のタイミング検証（ステップＳ２）において生成されるものである。
【００３９】
格納部１１は、ｖｅｒｉｌｏｇ、ＤＥＦ、ＬＥＦ、ＳＴＡレポート、挿入箇所検索結果、検索閾値情報を格納する。ここで、検索閾値情報には、配置混雑度の計算対象とする所定の領域の範囲及び占有率上限値を含む。
【００４０】
セル占有率チェック部１２は、図２に示すステップＳ１１〜Ｓ１２、Ｓ１４に相当する処理を行う。つまり、セル占有率チェック部１２は、挿入箇所を含む所定の領域の配置混雑度を算出し、配置混雑度が占有率上限値以下であるか否かを判断する。より具体的には、セル占有率チェック部１２は、格納部１１からＤＥＦ、ＬＥＦ、挿入箇所検索結果及び検索閾値情報を読み出す。そして、挿入箇所検索結果に含まれる挿入箇所を含む所定の領域を検索閾値情報に含まれる所定の領域の範囲に基づき設定する。その後、セル占有率チェック部１２は、所定の領域の配置混雑度を算出し、配置混雑度と検索閾値情報に含まれる占有率上限値とを比較する。セル占有率チェック部１２は、比較の結果、配置混雑度が占有率上限値以下であると判断した場合は、次の処理をバッファ回路挿入処理部１３に指示する。一方、セル占有率チェック部１２は、比較の結果、配置混雑度が占有率上限値よりも大きいと判断した場合は、条件の緩和又は挿入箇所の変更をバッファ回路挿入箇所検索部１０に指示する。
【００４１】
バッファ回路挿入処理部１３は、図２に示すステップＳ１５に相当する処理を行う。より具体的には、バッファ回路挿入処理部１３は、セル占有率チェック部１２においてバッファ回路を挿入可能と判断された箇所にバッファ回路を挿入する。このとき、セル占有率チェック部１２は、格納部１１に格納されているｖｅｒｉｌｏｇ及びＤＥＦに追加したバッファ回路の情報を付加し、これらのファイルを更新することでバッファ回路の挿入処理を実行する。
【００４２】
このように、本実施の形態にかかるバッファ回路の挿入方法は、各処理フローを実現するハードウェアを設けることで実現可能である。また、バッファ回路挿入箇所検索部１０、セル占有率チェック部１２、バッファ回路挿入処理部１３の処理をＣＰＵ（Central Processing Unit）等の演算回路に行わせることも可能である。この場合、ＣＰＵにこれらの処理を行わせるバッファ回路挿入プログラムを実行させる。そして、ＣＰＵと格納部１１とを用いてバッファ回路挿入装置を実現する。
【００４３】
上記説明より、本実施の形態にかかるバッファ回路の挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラムでは、レイアウトパターン上の配置混雑が占有率上限値以下となる領域にバッファ回路を挿入する。これにより、本実施の形態にかかるバッファ回路の挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラムでは、レイアウトパターンにおける局所的な配置混雑度の上昇を防ぐことができる。従って、本実施の形態にかかるバッファ回路の挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラムでは、配置混雑度が上昇することに起因する配線性の低下を防止しながら、バッファ回路を挿入することができる。
【００４４】
回路設計後に生成される回路情報は、一般的にホールドマージン及びセットアップマージンについて制約の範囲内となっている。このような回路情報に基づきレイアウトを行った場合、配線遅延の影響によりホールドマージンが悪化することが多い。そのため、本実施の形態において挿入するバッファ回路は、回路におけるホールドマージンを改善するためのバッファ回路であることが好ましい。このように、挿入するバッファ回路の機能が特定されることで処理をバッファ回路の挿入処理にかかる時間を短縮することができる。
【００４５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、配置混雑度の計算対象とする所定の領域の条件を緩和することなく当該領域を移動し、移動後の所定の領域に対してステップＳ１１〜Ｓ１２の処理を繰り返しても構わない。
【図面の簡単な説明】
【００４６】
【図１】実施の形態１にかかるレイアウト工程の処理を示すフローチャートである。
【図２】実施の形態１にかかるバッファ回路の挿入方法の処理を示すフローチャートである。
【図３】実施の形態１にかかるレイアウトの対象とする回路の一例を示すブロック図である。
【図４】図３に示す回路のパス１を対象としたＳＴＡレポートの一例である。
【図５】図３に示す回路のパス２を対象としたＳＴＡレポートの一例である。
【図６】図３に示す回路のレイアウトパターンの一例を示した概略図である。
【図７】図３に示す回路に対してバッファ回路を挿入した場合のレイアウトパターンの一例を示した概略図である。
【図８】実施の形態１にかかるバッファ回路挿入装置のブロック図である。
【図９】特許文献１に記載のバッファ回路挿入方法の処理を示すフローチャートである。
【符号の説明】
【００４７】
１０    バッファ回路挿入箇所検索部
１１    格納部
１２    セル占有率チェック部
１３    バッファ回路挿入処理部
ＦＦ１〜ＦＦ３    フリップフロップ
ＢＵＦ１〜ＢＵＦ３    バッファ回路
ＩＢＵＦ    バッファ回路
Ｌｏｇｉｃ    論理回路
Ｎ１    分岐点
ＩＮ１    入力信号
ＯＵＴ２、ＯＵＴ３    出力信号
【図１】
2010146047.tif 000003
【図２】
2010146047.tif 000004
【図３】
2010146047.tif 000005
【図４】
2010146047.tif 000006
【図５】
2010146047.tif 000007
【図６】
2010146047.tif 000008
【図７】
2010146047.tif 000009
【図８】
2010146047.tif 000010
【図９】
2010146047.tif 000011