(57)【要約】【課題】素子配置に必要な有効面積や電源パッド以外に使用できるパッド数を減らすこと無く、また処理時間を増大させること無く、ＩＲドロップがタイミングに与える影響を低減し、実動作に近いタイミングシミュレーションを可能にした半導体集積回路の設計方法を提供する。【解決手段】ＦＦ駆動能力変更手順Ｓ０１０２において、任意のフリップフロップを、電源電圧がＩＲドロップしている状態から理想電源の状態に遷移する時間よりも大きい遅延時間を有するフリップフロップに置き換える。これにより、フリップフロップだけに限定して、ＩＲドロップ考慮遅延ライブラリ０１０４を予め作成しておけばよくなり、ライブラリ作成時間が削減でき、また遅延計算手順Ｓ０１０５における遅延時間の計算精度も向上し、さらに駆動能力の低いフリップフロックに置き換えることで、面積を削減することができる。【選択図】　図１
2004102725.tif 000002
【特許請求の範囲】
【請求項１】
基本素子と、前記基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、
前記基本素子と前記配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、
前記第一のタイミング検証手順により出力されたタイミングレポートから、パスの始点および終点のフリップフロップと、前記パスを構成するセルの遅延時間およびセットアップ時間と、サイクルタイムに対するスラックとを抽出するスラック分類手順と、
任意のフリップフロップを、電源電圧が電源配線の抵抗成分により電圧降下している状態から理想電源の状態に遷移する時間よりも大きい遅延時間を有するフリップフロップに置き換えるフリップフロップ駆動能力変更手順と、
前記置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、
電圧降下を考慮に入れたフリップフロップのみの遅延ライブラリ、および理想電源の状態で作成された遅延ライブラリから遅延計算を行なう遅延計算手順と、前記遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする半導体集積回路の設計方法。
【請求項２】
基本素子と、前記基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、
前記基本素子と前記配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、
前記第一のタイミング検証手順により出力されたタイミングレポートから、パスの始点および終点のフリップフロップと、前記パスのサイクルタイムに対するスラックとを抽出するスラック分類手順と、
前記スラックが前記サイクルタイムの１／２よりも大きいパスの終端における、クロック信号の立ち上がりで動作するフリップフロップを、クロック信号の立ち下がりで動作するフリップフロップに置き換え、電源配線の抵抗成分による電源電圧の電圧降下量を均一化するフリップフロップ正負変更手順と、
前記置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、
前記均一化された電圧降下量に対応した遅延ライブラリから遅延計算を行なう遅延計算手順と、
前記遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする半導体集積回路の設計方法。
【請求項３】
基本素子と、前記基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、
前記基本素子と前記配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、
前記第一のタイミング検証手順により抽出されたタイミングレポートから、パスの始点および終点のフリップフロップと、前記パスのサイクルタイムに対するスラックとを抽出するスラック分類手順と、
前記スラックがゼロに近いパスの終端におけるフリップフロップを、前記フリップフロップのセットアップ時間と遅延時間と前記スラックの合計時間と同じ遅延時間を有するバッファに置き換えるフリップフロップ置き換え手順と、
前記置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、
理想電源の状態で作成された遅延ライブラリから遅延計算を行なう遅延計算手順と、
前記遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路の設計方法に関わり、特に、半導体集積回路中の電源配線の抵抗成分に起因する電圧降下（以下、ＩＲドロップと称する）に対してタイミングを抑制する技術、ＩＲドロップの影響を低減する回路設計方法に関する。
【０００２】
【従来の技術】
昨今、ＬＳＩの大規模化、低電力化が進むにつれて、様々な物理現象が顕著になってきている。そのため、それらの物理現象を設計段階で考慮に入れて設計しておかないと、シミュレーションでは動作しているのに、実際の製品では動作しないという現象が発生する。特に、電源配線の抵抗成分によるＩＲドロップという現象は、電源電圧が高かった０．２５μｍルールの時代には、ほとんど問題とならなかったが、微細化が進むにつれて、電源電圧が、１．８Ｖ、１．５Ｖ、１．０Ｖと下がり、無視できなくなってきている。
【０００３】
図１１Ａは、ＬＳＩにおけるＩＲドロップ量の分布を模式的に示す等電圧図である。図１１Ａにおいて、電源パッド（不図示）は、ＬＳＩの外周部分に配置されるために、ＬＳＩの中央部分の領域１１０１は、電源パッドからの距離が遠くなり、ＩＲドロップ量が大きくなる。逆に、電源パッドに近い領域１１００はＩＲドロップ量が少なくなる。
【０００４】
また、ＩＲドロップは、同期設計において、その現れ方が顕著である。というのも、同期設計では、クロック信号に同期して、すべてのフリップフロップが同時に動作するために、これらフリップフロップに電源を供給する電源配線に多くの電流が流れることになり、ＩＲドロップが発生する。
【０００５】
図１１Ｂは、サイクルタイムとＩＲドロップ量との関係を示す図である。図１１Ｂに示すように、クロック信号ＣＫの立ち上がり時点で、ＩＲドロップ量が大きくなり、時間経過と共に理想電源に近付く。
【０００６】
次に、ＩＲドロップが発生した時にどういう影響があるかについて説明する。
【０００７】
ＩＲドロップが発生すると、ＬＳＩを構成するセルへの電源供給量が減るために、セルの動作が遅くなり、タイミングが変動する。しかし、現在のタイミング設計では、電源は理想電源、つまりＩＲドロップが発生しないという前提でタイミング設計している。このため、このＩＲドロップによるタイミング変動が生じると、検証段階ではタイミングに問題なかったＬＳＩが、実際の製品になるとタイミングエラーが発生するという事態が発生する。
【０００８】
そこで、従来では、ＩＲドロップを起こさない電源設計をするという取り組みが行なわれていた。具体的には、図１２Ａに示すように、電源パッド１２００の数を多くして、電源配線の数を多くしたり、図１２Ｂに示すように、メッシュ配線にすることで、ＬＳＩ中央部への電源供給量を増やし、ＩＲドロップを回避しようという試みである。
【０００９】
また他の方法として、ＩＲドロップは当然起こるものとして、ＩＲドロップによるタイミング変動を予め、そのタイミングを計算する時に用いる遅延ライブラリに取り込み、設計時に、その遅延ライブラリを用いて、タイミング設計をするという方法があった。この考え方には二種類のアプローチがあった。
【００１０】
一つは、レイアウトをした後、ＩＲドロップを解析し、そのＩＲドロップ量に従い、遅延計算を行なって、タイミング検証するという方法である。図１３は、この設計方法のフローチャートである。
【００１１】
レイアウト手順Ｓ１３００において、ＩＲドロップは考慮せずにレイアウトを行ない、レイアウト１３００を出力する。次に、ＩＲドロップ解析手順Ｓ１３０１において、レイアウト１３００から、ＬＳＩを構成するすべてのセルについて、ＩＲドロップ量１３０１を計算する。次に、遅延計算手順Ｓ１３０２において、様々な電源電圧でキャラクタライズされたＩＲドロップ考慮遅延ライブラリ１３０２と各セル毎のＩＲドロップ量１３０１を使って、遅延計算を行なう。ここで、ＩＲドロップ考慮遅延ライブラリ１３０２の作成時には、どれだけのＩＲドロップが起こるかわからないので、何種類もの電源電圧で遅延をキャラクタライズしておく必要がある。次に、タイミング検証手順Ｓ１３０３では、ＩＲドロップ考慮遅延情報１３０３を使ってタイミング検証を行ない、タイミングが間に合っているかを判定する。
【００１２】
また、別な方法としては、予め、ＬＳＩのＩＲドロップ量を決めておき、そのＩＲドロップ量になるようにレイアウトを行ない、遅延計算、タイミング検証を行なうという方法がある。これは、例えば、５０ｍＶのＩＲドロップが起こると予め決めておいて、そうなるようにレイアウトを行なう方法である。図１４は、この設計方法のフローチャートである。
【００１３】
ＩＲドロップ考慮レイアウト手順Ｓ１４０１において、予め定められたＩＲドロップ量になるようにＩＲドロップ考慮レイアウト１４００を生成する。次に、遅延計算手順Ｓ１４０１において、予め定められたＩＲドロップ量でキャラクタライズされたＩＲドロップ考慮遅延ライブラリ１４０１とＩＲドロップ考慮レイアウト１４００から、遅延計算を行ない、ＩＲドロップ考慮遅延情報１３０３を出力し、タイミング検証手順Ｓ１３０３でタイミング検証を行う。
【００１４】
【発明が解決しようとする課題】
前述した従来の設計方法には、以下の問題点がある。
【００１５】
まず、ＩＲドロップ量を押さえるように電源配線や電源パッドの数を増やす電源配線設計では、電源配線の数を多くする必要があり、素子配置に必要な有効面積が少なくなるという問題や、電源パッドの数が増えることによって、電源以外に使えるパッドの数が少なくなるという問題がある。
【００１６】
また、ＩＲドロップを解析して、各セル毎に、そのＩＲドロップ量での遅延計算をする図１３の設計方法では、ＩＲドロップ考慮遅延ライブラリ１３０２の生成時に、すべてのセルに対し、考えうる様々な電源電圧でのキャラクタライズが必要となり、遅延ライブラリの生成時間が膨大になるという問題がある。
【００１７】
また、予めＩＲドロップ量を定めておいて、レイアウトを生成する図１４の設計方法では、すべてのセルが同一のＩＲドロップ量に操作するのが難しいという問題があった。
【００１８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、素子配置に必要な有効面積や電源パッド以外に使用できるパッド数を減らすこと無く、また処理時間を増大させること無く、ＩＲドロップがタイミングに与える影響またはＩＲドロップ量自体を低減し、実動作に近いタイミングシミュレーションを可能にした半導体集積回路の設計方法を提供することにある。
【００１９】
【課題を解決するための手段】
前記の目的を達成するため、本発明に係る第１の半導体集積回路の設計方法は、基本素子と、基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、基本素子と配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、第一のタイミング検証手順により出力されたタイミングレポートから、パスの始点および終点のフリップフロップと、パスを構成するセルの遅延時間およびセットアップ時間と、サイクルタイムに対するスラックとを抽出するスラック分類手順と、任意のフリップフロップを、電源電圧が電源配線の抵抗成分により電圧降下している状態から理想電源の状態に遷移する時間よりも大きい遅延時間を有するフリップフロップに置き換えるフリップフロップ駆動能力変更手順と、置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、電圧降下を考慮に入れたフリップフロップのみの遅延ライブラリ、および理想電源の状態で作成された遅延ライブラリから遅延計算を行なう遅延計算手順と、遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする。
【００２０】
前記の目的を達成するため、本発明に係る第２の半導体集積回路の設計方法は、基本素子と、基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、基本素子と配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、第一のタイミング検証手順により出力されたタイミングレポートから、パスの始点および終点のフリップフロップと、パスのサイクルタイムに対するスラックとを抽出するスラック分類手順と、スラックが前記サイクルタイムの１／２よりも大きいパスの終端における、クロック信号の立ち上がりで動作するフリップフロップを、クロック信号の立ち下がりで動作するフリップフロップに置き換え、電源配線の抵抗成分による電源電圧の電圧降下量を均一化するフリップフロップ正負変更手順と、置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、均一化された電圧降下量に対応した遅延ライブラリから遅延計算を行なう遅延計算手順と、遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする。
【００２１】
前記の目的を達成するため、本発明に係る第３の半導体集積回路の設計方法は、基本素子と、基本素子の間を接続する配線とから構成される半導体集積回路の設計方法であって、基本素子と配線の遅延時間を足し合わせて、フリップフロップ間のタイミングを検証する第一のタイミング検証手順と、第一のタイミング検証手順により抽出されたタイミングレポートから、パスの始点および終点のフリップフロップと、パスのサイクルタイムに対するスラックとを抽出するスラック分類手順と、スラックがゼロに近いパスの終端におけるフリップフロップを、フリップフロップのセットアップ時間と遅延時間とスラックの合計時間と同じ遅延時間を有するバッファに置き換えるフリップフロップ置き換え手順と、置き換えにより変更されたネットリストをレイアウトに反映させるレイアウト修正手順と、理想電源の状態で作成された遅延ライブラリから遅延計算を行なう遅延計算手順と、遅延計算手順の出力である遅延情報を用いてタイミング検証を行なう第二のタイミング検証手順を備えたことを特徴とする。
【００２２】
【発明の実施の形態】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００２３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャートである。図１において、まず、第一のタイミング検証手順Ｓ０１００では、ネットリスト、遅延情報、制約を入力として、タイミング検証を行ない、すべてのフリップフロップ間のパスのタイミングレポート０１００を出力する。ここで、ネットリストとは、例えばｖｅｒｉｌｏｇネットリストであり、遅延情報とはＳＤＦ（Ｓｔａｎｄａｒｄ　Ｄｅｌａｙ　Ｆｏｒｍａｔ）であり、制約とは、クロックの定義や、フォールスパス、マルチサイクルパスの指定などを記載したタイミング制約ファイルである。また、出力されるタイミングレポート０１００には、始点のフリップフロップから終点のフリップフロップまでの、各セルの遅延時間、配線遅延時間、スラックが記載されている。このタイミングレポート０１００は、市販の静的なタイミング検証ツールであれば、いかなるツールでも、簡単に出力できる情報である。
【００２４】
例えば、図２Ａに示すように、フリップフロップ（ＦＦ）０２００から、配線０２０５、セル０２０１、配線０２０６、セル０２０２、配線０２０７、セル０２０３、配線０２０８、フリップフロップ（ＦＦ）０２０４へと接続された回路について説明する。図２Ａの各要素に対応する遅延時間が、図２Ｂに示すように、遅延時間０２１２、遅延時間０２１６、遅延時間０２１３、遅延時間０２１７、遅延時間０２１４、遅延時間０２１８、遅延時間０２１５、遅延時間０２１９であった場合には、これらの遅延時間すべてと、フリップフロップ０２０４のセットアップ時間０２２０が足し合わされて、フリップフロップ０２００からフリップフロップ０２０４のパスの遅延時間として、タイミングレポート０１００（図１）が生成される。また、サイクルタイム０２０９に対し、上記パスの遅延時間の余裕度として、スラック０２２１が計算される。スラックの０２２１値が、正の値であればタイミングが間に合っている状態を表し、負の値であればタイミングが間に合っていない状態を表す。
【００２５】
この場合のサイクルタイム０２０９に対するＩＲドロップ量０２１０は、図２Ｂのようになる。
【００２６】
ＩＲドロップ量０２１０は、クロック同期のフリップフロップにクロック信号ＣＫが入った瞬間に、すべてのフリップフロップが動作するために、クロック信号ＣＫが入力された時に、最も大きく変動し、時間の経過と共に理想電源に回復する。図２Ｂの場合、ＩＲドロップが発生し、電源が理想状態になるまでの遷移時間０２１１中に動作するのは、フリップフロップ０２００（遅延時間０２１２）、配線０２０５（遅延時間０２１６）、およびセル０２０１（遅延時間０２１３）である。
【００２７】
図１に戻って、次に、スラック分類手順Ｓ０１０１では、第一のタイミング検証手順Ｓ０１００で出力されたタイミングレポート０１００から、必要な情報だけを取得し、スラックリスト０１０１として出力する。図３に、スラックリスト０１０１の内容例を示す。図３における用語の意味は以下の通りである。
【００２８】
・Ｓｔａｒｔ　Ｐｏｉｎｔ：始点のフリップフロップ名と端子名
・Ｅｎｄ　Ｐｏｉｎｔ：終点のフリップフロップ名と端子名
・Ｔｈｒｏｕｇｈ　Ｐｏｉｎｔ：途中点のフリップフロップ名と端子名
・Ｖａｌｕｅ：パスのスラック
・Ｓｔａｒｔ　ＦＦ　ｔｙｐｅ：始点のフリップフロップの駆動能力
・Ｓｔａｒｔ　ＦＦ　ｄｅｌａｙ：始点のフリップフロップの遅延時間
・ｃｅｌｌｘ　ｔｙｐｅ：パスを構成するセルの駆動能力（ｘは各セル毎に付された固有の自然数）
・ｃｅｌｌｘ　ｄｅｌａｙ：パスを構成するセルの遅延時間
・ｗｉｒｅｘ　ｄｅｌａｙ：パスを構成する配線遅延時間（ｘは各配線毎につけられた固有の自然数）
・Ｅｎｄ　ＦＦ　ｓｅｔｕｐ：終点のフリップフロップのセットアップ時間
次に、ＦＦ駆動能力変更手順Ｓ０１０２では、パスを駆動するフリップフロップ０２００（図２Ａ）を駆動能力の低い（すなわち、遅延時間の大きい）フリップフロップに置き換えて、ネットリストを変更し、ネットリスト修正ファイル０１０２として出力する。フリップフロップの置き換えの手順において、具体的には、図４に示すように、図２Ａに示す遅延時間０２１２のフリップフロップ０２００に対し、遅延時間０２１２よりも大きい遅延時間０４０１（図４Ｂ）を有するフリップフロップ０４００に置き換える。この時、フリップフロップ０４００の遅延時間０４０１と、フリップフロップ０２００の遅延時間０２１２との間に、以下の式（１）で示す関係がある。
【００２９】
遅延時間０４０１＞遅延時間０２１２　　　　　…（１）
このフリップフロップの置き換えによって遅延時間が増大した結果、図４Ｂに示すように、ＩＲドロップが発生している状態（遷移時間０２１１の間）で、動作するのは、フリップフロップ０４００のみとなり、それ以降のセルは理想電源での動作となる。
【００３０】
次に、レイアウト修正手順Ｓ０１０３では、ネットリスト修正ファイル０１０２に従って、レイアウトを修正し、レイアウト０１０３として出力する。この修正において、駆動能力の低いフリップフロップに変更しているので、フリップフロップ自体の面積は必ず小さくなり、ＬＳＩ全体での面積の増大はなく、また、配線位置の変更もほとんどなく、修正することが可能である。
【００３１】
次に、遅延計算手順Ｓ０１０４では、修正されたレイアウト０１０３から抵抗、容量成分を抽出した後、ＩＲドロップ考慮遅延ライブラリ０１０４と理想電源遅延ライブラリ０１０５を読み込んで、遅延計算を行ない、遅延情報０１０６を出力する。ここで、ＩＲドロップ考慮遅延ライブラリ０１０４には、セル種別では、フリップフロップだけが記載されている。また、理想電源遅延ライブラリ０１０５には、フリップフロップ以外のすべてのセル種別の情報が記載されている。ＦＦ駆動能力変更手順Ｓ０１０２において、ＩＲドロップが起こっている状態では、フリップフロップしか動作しないので、フリップフロップだけＩＲドロップの影響を考慮した遅延ライブラリを作成すれば良い。逆に、フリップフロップ以外のセルは、すべて理想電源状況下でしか動作しないので、理想電源で作成した遅延ライブラリで良い。
【００３２】
最後に、第二のタイミング検証手順Ｓ０１０５において、フリップフロップの置き換えにより、新たなタイミングエラーが発生していないかを確認する。もし、第二のタイミング検証手順Ｓ０１０５で、タイミングエラーが発生した場合は、フリップフロップ以外のセルの遅延時間を調整することにより、タイミング収束を図る。
【００３３】
以上、説明したように、フリップフロップの遅延時間を増大させ、ＩＲドロップが発生している時間帯にはフリップフロップだけが動作するようにする。ＩＲドロップが発生している時にフリップフロップ以外のセルが動作するような場合（図２Ａおよび図２Ｂのような場合）には、すべてのセルについて、ＩＲドロップを考慮に入れた遅延ライブラリを作成し、タイミング検証をする必要がある。しかし、本実施形態によれば、フリップフロップだけに限定して、予め、ＩＲドロップを考慮に入れた遅延ライブラリを作成しておけばよくなり、ライブラリ作成時間が削減できる。
【００３４】
また、ＩＲドロップ考慮遅延ライブラリ０１０４を使うことで、フリップフロップの遅延計算精度が向上し、かつ、その他のセルは理想電源遅延ライブラリ０１０５を用いて高精度に遅延計算をすることができるので、より、実際の製品に近いタイミングシミュレーションを行うことが可能となる。
【００３５】
さらに、本実施形態のフリップフロップ置き換えにおいて、フリップフロップの単体の面積は、駆動能力が低いほど面積が小さくなるので、素子配置に必要な有効面積が削減されることはない。また、すべてのフリップフロップの遅延時間を増大させているために、ホールドエラーが発生しにくくなるという利点もある。
【００３６】
（第２の実施形態）
図５は、本発明の第２の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャートである。なお、図５において、図１に示す第１の実施形態の構成と同じ部分については同一の符号を付す。
【００３７】
本実施形態が第１の実施形態と異なるのは、スラック分類手順Ｓ０１０１、ＦＦ駆動能力変更手順Ｓ０１０２、スラックリスト０１０１、ネットリスト修正ファイル０１０２、およびＩＲドロップ考慮遅延ライブラリ０１０４を、それぞれ、スラック分類手順Ｓ０５００、クロック信号の立ち上がりで動作するフリップフロップを、その立ち下がりで動作するフリップフロップに変更するＦＦ正負変更手順Ｓ０５０１、スラックリスト０５００、ネットリスト修正ファイル０５０１、およびＩＲドロップ考慮遅延ライブラリＳ０５０２に置き換えた点と、理想電源遅延ライブラリ０１０５を削除した点にある。
【００３８】
図５において、スラック分類手順Ｓ０５００において、第一のタイミング検証手順Ｓ０１００で生成されたタイミングレポート０１００から、情報を抽出し、スラックリスト０５００として出力する。ここで、図６Ｃに、スラックリスト０５００の内容例を示す。図６Ｃにおける用語の意味は以下の通りである。
【００３９】
・Ｓｔａｒｔ　Ｐｏｉｎｔ：パスの始点となるフリップフロップとその端子名
・Ｅｎｄ　Ｐｏｉｎｔ：パスの終点となるフリップフロップとその端子名
・Ｔｈｒｏｕｇｈ　Ｐｏｉｎｔ：パスを一意に特定するための経路途中のセル名とその端子名
・Ｖａｌｕｅ：パスのスラック
図６Ａに示すように、フリップフロップ０６００からフリップフロップ０６０１へのパスと、フリップフロップ０６０１からフリップフロップ０６０２のパスがある場合について説明する。図６Ａにおいて、フリップフロップ０６００、０６０１、０６０２はすべて、クロック信号（ＣＫ）０６０３（図６Ｂ）の立ち上がりで動作するフリップフロップであり、以降、正フリップフロップ（ＦＦ（ｐｏｓｅｄｇｅ））と呼ぶ。このような構成の場合、クロック信号ＣＫに対するＩＲドロップ量は、図６Ｂのようになる。すべて、正フリップフロップで構成される回路の場合、クロック信号ＣＫの立ち上がり時に、すべてのフリップフロップが動作することにより、ＩＲドロップ量が最大となる。
【００４０】
次に、ＦＦ正負変更手順Ｓ０５０１において、スラックリスト０５００より、スラックが、クロックサイクルの１／２よりも大きいパスを抽出し、そのパスの終点にあるフリップフロップを、図７Ａに示すように、クロック信号ＣＫの立ち下がりで動作するフリップフロップ０７００（以降、このような動作をするフリップフロップを負フリップフロップ（ＦＦ（ｎｅｇｅｄｇｅ））と呼ぶ）に置き換え、ネットリスト修正ファイル０５０１として出力する。すべてのパスに対し、ＦＦ正負変更手順Ｓ５０１を実行し、正フリップフロップから、負フリップフロップに置き換えられるものはすべて置き換える。ただし、正フリップフロップと、負フリップフロップの数が同数になった時点で、置き換え処理は停止する。
【００４１】
次に、レイアウト修正手順Ｓ０１０３では、ネットリスト修正ファイル０５０１に従って、レイアウトを修正し、レイアウト０１０３として出力する。
【００４２】
次に、遅延計算手順Ｓ０１０４では、修正されたレイアウトから抵抗、容量成分を抽出した後、ＩＲドロップ考慮遅延ライブラリ０５０１を読み込んで、遅延計算を行ない、遅延情報０１０６を出力する。ＩＲドロップ考慮遅延ライブラリ０５０１には、フリップフロップを含むすべてのセルの遅延計算に必要な情報が記載されている。ＦＦ正負変更手順Ｓ０５０１において、クロック信号ＣＫの立ち上がりで動作するフリップフロップが、その立ち下がりで動作するフリップフロップに置き換えられたことにより、図７Ｂに示すように、ＩＲドロップ量０７０１がクロック信号ＣＫに対して均一化される（比較のため、置き換え前のＩＲドロップ量０６０４を破線で示す）。この場合、フリップフロップを含むすべてのセルが、同程度のＩＲドロップ量が発生している状態で動作することになる。よって、予め、すべてのセルに対し、同一のＩＲドロップ量が発生したという仮定で作成したものが、ＩＲドロップ考慮遅延ライブラリ０５０１である。
【００４３】
最後に、第二のタイミング検証手順Ｓ０１０５において、フリップフロップの置き換えにより、新たなタイミングエラーが発生していないかを確認する。この時、フリップフロップ０６００からフリップフロップ０７００へのパスは、サイクルタイムの半分でタイミングチェックが実行され、フリップフロップ０７００からフリップフロップ０６０２へのパスは、サイクルタイムの１．５倍でタイミングチェックが実施される。具体的な数字を挙げて説明すると、サイクルタイムが１０ｎｓであった場合、前者のパスは５ｎｓでチェックされ、後者のパスは１５ｎｓでチェックされる。二つのパスを合計すると、フリップフロップの置き換え前後で変化せず、２０ｎｓとなる。
【００４４】
以上のように、本実施形態によれば、正フリップフロップを負フリップフロップに変更することで、図７Ｂに示したように、クロック信号の立ち下がり時にも、ＩＲドロップが発生し、正フリップフロップと負フリップフロップの数を同数に近付けることで、クロック信号の立ち上がりから立ち下がりまで、ＩＲドロップ量の時間変化が少なくなる。この結果、タイミング検証用の遅延時間を計算する際に用いる遅延ライブラリの生成時に、すべてのセルに対して、ある一定のＩＲドロップ量を考慮しておけば、精度良く遅延計算することが可能となり、より実動作に近い動作をシミュレーションできる。
【００４５】
また、図６Ｂに示すようなＩＲドロップ量がある場合には、それぞれのセル毎にＩＲドロップ量が異なるので、すべてのセル毎に異なるＩＲドロップ量を計算し、それを使って遅延計算を行なう必要があったが、本実施形態によれば、ＩＲドロップ量の時間変化が少なくなるので、任意の一つのセルを選びだしＩＲドロップ量を計算するだけで、そのＩＲドロップ量をすべてのセルに適用することができるので、処理時間の削減につながる。
【００４６】
（第３の実施形態）
図８は、本発明の第３の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャートである。なお、図８において、図１に示す第１の実施形態の構成と同じ部分については同一の符号を付す。
【００４７】
本実施形態が第１の実施形態と異なるのは、スラック分類手順Ｓ０１０１、ＦＦ駆動能力変更手順Ｓ０１０２、スラックリスト０１０１、およびネットリスト修正ファイル０１０２、それぞれ、スラック分類手順Ｓ０８００、フリップフロップをバッファに置き換えるＦＦ置き換え手順Ｓ０８０１、スラックリスト０８００、ネットリスト修正ファイル０８０１、およびＩＲドロップ考慮遅延ライブラリＳ０５０２に置き換えた点と、ＩＲドロップ考慮遅延ライブラリ０１０４および理想電源遅延ライブラリ０１０５を削除して、フリップフロップをバッファに置き換えたことによる追加タイミング制約０８０２を追加した点にある。
【００４８】
図８において、スラック分類手順Ｓ０８００において、第一のタイミング検証手順Ｓ０１００で生成されたタイミングレポート０１００から、情報を抽出し、スラックリスト０８００として出力する。ここで、図９Ｃに、スラックリスト０８００の内容例を示す。図９Ｃにおける用語の意味は以下の通りである。
【００４９】
・Ｓｔａｒｔ　Ｐｏｉｎｔ：パスの始点となるフリップフロップとその端子名
・Ｅｎｄ　Ｐｏｉｎｔ：パスの終点となるフリップフロップとその端子名
・Ｔｈｒｏｕｇｈ　Ｐｏｉｎｔ：パスを一意に特定するための経路途中のセル名とその端子名
・Ｖａｌｕｅ：パスのスラック
図９Ａに示すように、フリップフロップ０９００からフリップフロップ０９０１へのパスと、フリップフロップ０９０１からフリップフロップ０９０２へのパスがある場合について説明する。フリップフロップ０９００、０９０１、０９０２はすべて、クロック信号（ＣＫ）０９０３（図９Ｂ）の立ち上がりで動作するフリップフロップであるために、図９Ｂに示すように、クロック信号ＣＫの立ち上がり時に、ＩＲドロップ量９０４が最大となる。
【００５０】
次に、ＦＦ置き換え手順Ｓ８０１において、スラックリスト０８００より、スラックがゼロに近い順番にパスを抽出し、そのパスの終点にあるフリップフロップ０９０１を、図１０Ａに示すバッファ１０００に置き換える。その時、バッファ１０００の遅延時間は、以下の式（２）で計算されるものとする。
【００５１】
バッファ１０００の遅延時間
＝（フリップフロップ０９０１のセットアップ時間）
＋（スラック）＋（フリップフロップ０９０１の遅延時間）　…（２）
スラックがゼロに近いものから順番に置き換えを行っていくが、スラックが大きくなると、式（２）から、バッファ１０００の遅延時間が大きくなっていくので、すべてのフリップフロップを置き換えることは不可能である。よって、予め置き換えるバッファ１０００の遅延時間の最大値を計測しておき、式（２）を満たすことができるスラックまで置き換えるようにする。
【００５２】
ＦＦ置き換え手順Ｓ８０１において、フリップフロップがなくなったために、通常のタイミング検証ができなくなる。よって、フリップフロップ０９００からフリップフロップ０９０２へのパスに対し、クロック信号ＣＫの２サイクル以内に、フリップフロップ０９００からフリップフロップ０９０２にデータが伝播するかをチェックするタイミング制約を追加し、追加タイミング制約０８０２として出力する。
【００５３】
次に、レイアウト修正手順Ｓ０１０３では、ネットリスト修正ファイル０８０１に従って、レイアウトを修正し、レイアウト０１０３として出力する。
【００５４】
次に、遅延計算手順Ｓ０１０４では、修正されたレイアウトから抵抗、容量成分を抽出した後、遅延計算を行ない、遅延情報０１０６を出力する。
【００５５】
最後に、第二のタイミング検証手順Ｓ０１０５において、フリップフロップの置き換えにより、新たなタイミングエラーが発生していないかを確認する。
【００５６】
以上のように、本実施形態によれば、スラックがゼロに近いフリップフロップから順番に、バッファに置き換えることにより、クロック信号に同期して動作するフリップフロップの数が少なくなり、ＩＲドロップ量が低減する。ＩＲドロップ量が低減すると、理想電源遅延ライブラリを使った遅延計算結果でも、実動作との誤差が少なくなり、より実動作をシミュレーションできるようになる。
【００５７】
また、フリップフロップが削減されたことにより、そのフリップフロップに接続されていたクロック配線がなくなり、面積を削減することができる。さらに、フリップフロップよりもバッファの単体の面積のほうが、その構成上トランジスタ数が少ないために、小さくなり、回路全体の面積削減が可能となる。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、素子配置に必要な有効面積や電源パッド以外に使用できるパッド数を減らすこと無く、また処理時間を増大させること無く、ＩＲドロップがタイミングに与える影響またはＩＲドロップ量自体を低減し、実動作に近いタイミングシミュレーションを可能にし、ＩＲドロップに対して強い耐性を有する半導体集積回路の設計方法を提供することが可能になる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャート
【図２Ａ】図１に示すＦＦ駆動能力変更手順Ｓ０１０２を実行する前の回路構成を示す回路図
【図２Ｂ】図２Ａに示す回路構成における、サイクルタイムに対するＩＲドロップ量および各要素のパス遅延時間を示す図
【図３】図１に示すスラックリスト０１０１の内容例を示す図
【図４Ａ】図１に示すＦＦ駆動能力変更手順Ｓ０１０２を実行した後の回路構成を示す回路図
【図４Ｂ】図４Ａに示す回路構成における、サイクルタイムに対するＩＲドロップ量および各要素のパス遅延時間を示す図
【図５】本発明の第２の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャート
【図６Ａ】図５に示すＦＦ正負変更手順Ｓ０５０１を実行する前の回路構成を示す回路図
【図６Ｂ】図６Ａに示す回路構成における、クロック信号ＣＫに対するＩＲドロップ量を示す図
【図６Ｃ】図５に示すスラックリスト０５００の内容例を示す図
【図７Ａ】図５に示すＦＦ正負変更手順Ｓ０５０１を実行した後の回路構成を示す回路図
【図７Ｂ】図７Ａに示す回路構成における、クロック信号ＣＫに対するＩＲドロップ量を示す図
【図８】本発明の第３の実施形態に係る半導体集積回路の設計方法における処理手順を示すフローチャート
【図９Ａ】図８に示すＦＦ置き換え手順Ｓ０８０１を実行する前の回路構成を示す回路図
【図９Ｂ】図９Ａに示す回路構成における、クロック信号ＣＫに対するＩＲドロップ量を示す図
【図９Ｃ】図８に示すスラックリスト０８００の内容例を示す図
【図１０Ａ】図８に示すＦＦ置き換え手順Ｓ０８０１を実行した後の回路構成を示す回路図
【図１０Ｂ】図１０Ａに示す回路構成における、クロック信号ＣＫに対するＩＲドロップ量を示す図
【図１１Ａ】従来例におけるＩＲドロップ量の分布を模式的に示す等電圧図
【図１１Ｂ】従来例におけるクロック信号ＣＫに対するＩＲドロップ量を示す図
【図１２Ａ】従来の電源配線方法の一例を示す平面図
【図１２Ｂ】従来の電源配線方法の他の例を示す平面図
【図１３】従来のＩＲドロップを考慮した設計方法における処理手順を示すフローチャート
【図１４】従来のＩＲドロップを考慮した他の設計方法における処理手順を示すフローチャート
【符号の説明】
Ｓ０１００　第一のタイミング検証手順
Ｓ０１０１、Ｓ０５００、Ｓ０８００　スラック分類手順
Ｓ０１０２　ＦＦ駆動能力変更手順
Ｓ０１０３　レイアウト修正手順
Ｓ０１０４　遅延計算手順
Ｓ０１０５　第二のタイミング検証手順
Ｓ０５０１　ＦＦ正負変更手順
Ｓ０８０１　ＦＦ置き換え手順
０１００　タイミングレポート
０１０１、０５００、０８００　スラックリスト
０１０２、０５０１、０８０１　ネットリスト修正ファイル
０１０３　レイアウト
０１０４、０５０１　ＩＲドロップ考慮遅延ライブラリ
０１０５　理想電源遅延ライブラリ
０１０６　遅延情報
０８０２　追加タイミング制約
【図１】
2004102725.tif 000003
【図２Ａ】
2004102725.tif 000004
【図２Ｂ】
2004102725.tif 000005
【図３】
2004102725.tif 000006
【図４Ａ】
2004102725.tif 000007
【図４Ｂ】
2004102725.tif 000008
【図５】
2004102725.tif 000009
【図６Ａ】
2004102725.tif 000010
【図６Ｂ】
2004102725.tif 000011
【図６Ｃ】
2004102725.tif 000012
【図７Ａ】
2004102725.tif 000013
【図７Ｂ】
2004102725.tif 000014
【図８】
2004102725.tif 000015
【図９Ａ】
2004102725.tif 000016
【図９Ｂ】
2004102725.tif 000017
【図９Ｃ】
2004102725.tif 000018
【図１０Ａ】
2004102725.tif 000019
【図１０Ｂ】
2004102725.tif 000020
【図１１Ａ】
2004102725.tif 000021
【図１１Ｂ】
2004102725.tif 000022
【図１２Ａ】
2004102725.tif 000023
【図１２Ｂ】
2004102725.tif 000024
【図１３】
2004102725.tif 000025
【図１４】
2004102725.tif 000026