(57)【要約】【課題】半導体集積回路の設計において、回路の動作タイミングを保証するのに、クロックスキュー値を可能な限り抑え込んだ後で回路全体のタイミング解析を行う方法では、設計ＴＡＴや消費電力の増大を抑えられない。【解決手段】全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップ（Ｓ４〜Ｓ５）と、遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップ（Ｓ６〜Ｓ７）と、危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップ（Ｓ９〜Ｓ１０）とを含む。また、危険領域の度合いからクロック経路の回路構成を検討する（ステップＳ８）。【選択図】図１
2006244052.tif 000002
【特許請求の範囲】
【請求項１】
全クロック経路の遅延値を抽出してその遅延値の平均値を算出し、前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定し、前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施することを特徴とする半導体集積回路の設計方法。
【請求項２】
全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップと、
前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップと、
前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップとを含む半導体集積回路の設計方法。
【請求項３】
前記危険領域の決定において、前記危険領域に該当する同期回路セルの数で危険の度合いを判断し、その度合いに対応したクロック経路の構成や配置配線を再検討する請求項１または請求項２に記載の半導体集積回路の設計方法。
【請求項４】
前記静的タイミング解析において、配線遅延モデルを用いて解析を行う請求項１から請求項３までのいずれかに記載の半導体集積回路の設計方法。
【請求項５】
前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック値を判断基準として解析を行う請求項１から請求項４までのいずれかに記載の半導体集積回路の設計方法。
【請求項６】
前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック値を判断基準として行う解析は、ホールド時間またはセットアップ時間についての解析である請求項５に記載の半導体集積回路の設計方法。
【請求項７】
前記同期回路セルとしてフリップフロップを対象とする請求項１から請求項６までのいずれかに記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低消費電力化及び短ＴＡＴ（Turn Around Time）設計を実現する半導体集積回路のレイアウト設計方法に関するものである。
【背景技術】
【０００２】
製造技術の進歩による半導体集積回路の高集積化、大規模化、高速化が進む中、フリップフロップ等の同期回路セルのホールド不良を防ぐため、クロックスキューを抑え込む設計が主流である。クロックスキューとはクロック信号の位相差のことである。クロックスキューは、配線遅延のＭＡＸ値とＭＩＮ値の差が大きくなるに伴って大きくなる。
【０００３】
図５でホールド不良について説明する。フリップフロップ（以下ＦＦ）１のクロック遅延値Ｔck１とデータ遅延値Ｔdの和がＦＦ２のクロック遅延値Ｔck２とＦＦ２のホールド時間Ｔholdの和より小さいと、ホールド不良が発生する。クロックスキュー値は、上記２つのＦＦのクロック遅延値の差である。
【０００４】
従来の設計方法について、図６を用いて説明する。
【０００５】
ステップＳ２１において、回路設計を行い、ネットリストを作成する。
【０００６】
次にステップＳ２２において、作成されたネットリストを用いてセルの配置配線を行う。
【０００７】
次にステップＳ２３において、配置配線後の遅延情報を抽出する。
【０００８】
次にステップＳ２４において、クロック経路の遅延情報からクロックのＭＡＸ遅延値、ＭＩＮ遅延値を抽出し、これらの差分であるクロックスキューを抽出する。
【０００９】
次にステップＳ２５において、クロックスキューを可能な限り小さくするためにバッファの挿入などを行う（クロックスキューの低減）。
【００１０】
次にステップＳ２６において、全回路の容量抽出、遅延計算、タイミング解析を行う。
【００１１】
次いでステップＳ２７において、タイミング解析の確認を行う。解析結果に問題があればステップＳ２２に戻り、配置配線を変更し、問題がなければステップＳ２８で終了となる。
【００１２】
特許文献１においては、上記のクロックスキュー低減のステップにおいて、次のような技術を開示している。すなわち、全クロック経路の遅延値を抽出し、その遅延値の平均値を算出し、各クロック経路の遅延値と平均値とを比較し、遅延値が平均値より速いクロック経路に一括して遅延値の平均値とＭＡＸ値との差分だけ遅延挿入を行う。
【特許文献１】特開２００１−２０３２７３号公報（第４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、上記の設計方法は、消費電力と設計ＴＡＴの面で大きな問題がある。
【００１４】
図６のステップＳ２５のクロックスキューの低減において、とにかくクロックスキューの絶対値を０にするため、高駆動のバッファを過剰に挿入する。その結果、消費電力の増大を招くおそれがある。また、全ＦＦを対象とし、クロックスキューの絶対値を抑え込むため、クロックスキューによるホールド不良を判定するには、全回路について容量抽出、遅延計算、タイミング解析を行う必要がある。しかし結果として、非常に長いＴＡＴを要する。
【００１５】
一方、特許文献１で開示している設計方法ではクロックスキューを約１／２に低減することができ、従来より短いＴＡＴで設計を可能にできる。しかし、低減率が一定であり、また消費電力を考慮するまでには至っていない。
【課題を解決するための手段】
【００１６】
本発明は、上記の課題を解決するために次のような手段を講じる。
【００１７】
本発明による半導体集積回路の設計方法は、全クロック経路の遅延値を抽出してその遅延値の平均値を算出し、前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値（Ｔd）から受け側同期回路セルのホールド時間（Ｔhold）を差し引いた値をホールドエラーについての安全領域（Ｔsafe）として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定し、前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施することを特徴とするものである。
【００１８】
別言すれば、
全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップと、
前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップと、
前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップとを含む構成となっている。
【００１９】
上記の構成によれば、クロック遅延値の分布においてホールド不良の安全領域と危険領域を決定し、危険領域に該当する同期回路セルに限定した上でタイミング解析を行うので、全ての同期回路セルをタイミング解析していた従来技術に比べ、設計ＴＡＴの大幅な短縮が可能となる。また、クロック経路を初めは少数の低駆動バッファで構成するようにし、危険領域の度合いを考慮しながらバッファ挿入やランクアップを行っていけばよいので、消費電力を極力抑えることが可能となる。
【００２０】
上記の構成において好ましくは、前記危険領域の決定において、前記危険領域に該当する同期回路セルの数で危険の度合いを判断し、その度合いに対応したクロック経路の構成や配置配線を再検討するものとする。このように危険領域の判断基準を該当する同期回路セルの数で判断するようにすれば、さらに短ＴＡＴ化を図ることができる。
【００２１】
また、上記の構成において好ましくは、前記静的タイミング解析において、配線遅延モデルを用いて解析を行うものとする。これによれば、配線遅延モデルを用いてタイミング解析を行うので、ＴＡＴ短縮の効果をさらに増すことができる。
【００２２】
また、上記の構成において好ましくは、前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック（ＴＮＳ）値を判断基準として解析を行うものとする。このようにタイミング解析の判断基準をＴＮＳ値にしておき、その判断でクロック経路の回路構成にフィードバックをかければ、ＴＮＳ値によって挿入すべきバッファ数、つまり面積増加の程度を把握でき、チップサイズや回路規模を早期に見積もることが可能となる。
【００２３】
なお、このＴＮＳ値を判断基準とする解析は、ホールド時間の解析のみならず、セットアップ時間の解析にも適用可能である。
【００２４】
なお、上記の構成において、前記同期回路セルとしてフリップフロップを対象とする場合が多い。
【発明の効果】
【００２５】
上記のように本発明によれば、クロック遅延値の分布においてホールド不良の安全領域と危険領域を決定し、危険領域に該当する同期回路セル（フリップフロップ）に限定した上でタイミング解析を行うので、全ての同期回路セルをタイミング解析していた従来技術に比べ、設計ＴＡＴの大幅な短縮が可能となる。
【００２６】
また、危険領域によりクロック経路の構成の再検討もでき、無造作にクロックスキューを０に抑え込むためのバッファ挿入やセルのランクアップに比べ、消費電力を極力抑えることが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明にかかわる半導体集積回路の設計方法の実施の形態について、図面を参照しながら説明する。図１は本発明の実施の形態における半導体集積回路の設計方法の手順を示すフローチャート、図２は同実施の形態のクロック遅延値分布図、図３は同実施の形態の安全領域を決定する方法の説明図、図４は同実施の形態の安全領域及び危険領域を説明する図である。
【００２８】
図１を用いて本実施の形態における半導体集積回路の設計方法を説明する。
【００２９】
まず、ステップＳ１において、回路設計を行い、ネットリストを作成する。
【００３０】
次にステップＳ２において、クロック経路上で使用するセルの駆動サイズやファンアウト数など回路構成を決定する。このとき、できるだけ少数の低駆動能力セルで構成しておく。
【００３１】
次にステップＳ３において、セルの配置配線を実施する。
【００３２】
次にステップＳ４において、配置配線後の遅延情報を抽出する。
【００３３】
次にステップＳ５において、全クロックの遅延値を抽出して和をとり、クロック遅延値の平均値を算出する。
【００３４】
次にステップＳ６において、クロック遅延値の平均値を基準として、全クロック遅延値の分布を作成する。クロック遅延値の分布の例を図２に示す。ここでは分かりやすく正規分布としている。
【００３５】
次にステップＳ７において、ホールドエラーが起きないと判断されるクロック遅延値の安全領域を決定する。安全領域の決定の方法の一例を図３を用いて説明する。図３のように信号のやりとりが行われる２つのＦＦがある場合、Ｔck１を信号出し側ＦＦ１のクロック遅延、Ｔck２を信号受け側ＦＦ２のクロック遅延、Ｔdを無負荷時のデータ遅延値であるセル間の遅延値、Ｔholdを信号受け側ＦＦ２のホールド時間とする。
【００３６】
図３の回路構成の場合、
Ｔck２＋Ｔhold＞Ｔck１＋Ｔd
のとき、つまり、
Ｔck２−Ｔck１＞Ｔd−Ｔhold
のときにホールド不良が発生する。ここで、Ｔck２−Ｔck１はクロックスキューΔＴを意味する。
【００３７】
このとき、クロック遅延値の安全領域をクロック遅延値の平均値を基準として、プラス側とマイナス側でＴd−Ｔhold＝Ｔsafe以内の値の領域と決定する。つまり、
ΔＴ≦Ｔsafe
が安全領域を示す。また、安全領域以外の領域をホールドエラーが起きやすいと判断される危険領域と決定する。回路の遅延情報はデータベース化されており、Ｔsafe（＝Ｔd−Ｔhold）の値もデータベースとして持っておけば、直ちに安全領域及び危険領域を決定することができる。
【００３８】
図４はクロック遅延値の分布図においてクロック遅延値の安全領域と危険領域を示すものである。危険領域を斜線で示す。なお、分かりやすいように分布図は正規分布としている。図４のようにクロック遅延値の平均値を基準として考えているため、安全領域は分布図の内側領域に存在し、クロック遅延値がＭＡＸ値やＭＩＮ値に向かうと危険領域となる。
【００３９】
次にステップＳ８において、危険領域の危険度合いを判断してクロック経路の回路構成にフィードバックをかける。すなわち、クロック経路の回路構成を再度見直す条件として、危険領域に該当するＦＦ数を設定しておき、危険領域に該当するＦＦ数が設定した値を超えたときに、再度ステップＳ２まで戻ってクロック経路の構成から実行し直す。
【００４０】
次にステップＳ９において、危険領域に該当するＦＦ回路についてのみ容量抽出、遅延計算を行う。安全領域に該当するＦＦ回路ではホールドエラーが起きないものとし、容量抽出、遅延計算の対象とはしない。
【００４１】
次にステップＳ１０において、同じく危険領域に該当するＦＦ回路についてのみ静的タイミング解析を行う。なお、危険領域に該当するＦＦ回路についてのみ配線遅延モデルを用いてタイミング解析を行ってもよい。
【００４２】
次にステップＳ１１において、タイミング解析の結果確認を行う。ここで、結果ＯＫ／ＮＧの判断はＴＮＳ（トータルネガティブスラック）値に基づいて行う。すなわち、あらかじめ判断基準となるＴＮＳ値を設定しておき、タイミング解析の結果、ＴＮＳ値が判断基準値よりも大きかったときは、ステップＳ２までフィードバックし、再度クロック経路の回路構成を見直せばよい。設定するＴＮＳ値はデータベースとして持っておけばよい。
【００４３】
タイミング解析の結果、ＴＮＳ値が判断基準値よりも小さかったときは、ステップＳ１２に進み、終了となる。
【産業上の利用可能性】
【００４４】
本発明の半導体集積回路の設計方法は、クロック遅延値の安全領域と危険領域を決定することで設計ＴＡＴの短縮と消費電力の抑制効果を有し、高集積化、大規模化、高速化が進む中で、開発期間の短ＴＡＴ化や低消費電力化が求められる半導体集積回路の設計などに有用である。特に、開発初期段階でチップサイズや回路規模などを見積もる場合などには有用で、利用可能性は大いに期待できる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態における半導体集積回路の設計方法の手順を示すフローチャート
【図２】本発明の実施の形態における半導体集積回路の設計方法のクロック遅延値の分布図
【図３】本発明の実施の形態におけるクロック遅延値の安全領域を決定する方法の説明図
【図４】本発明の実施の形態におけるクロック遅延値分布図による安全領域と危険領域の説明図
【図５】ホールド不良の説明図
【図６】従来の技術における半導体集積回路の設計方法の手順を示すフローチャート
【符号の説明】
【００４６】
ＦＦ１  データ出し側フリップフロップ
ＦＦ２  データ受け側フリップフロップ
Ｔck１  データ出し側フリップフロップのクロック遅延値
Ｔck２  データ受け側フリップフロップのクロック遅延値
Ｔd  データ遅延値
Ｔhold  データ受け側フリップフロップのホールド時間
Ｔck−ＭＡＸ  クロック遅延値の最大値
Ｔck−ＭＩＮ  クロック遅延値の最小値
Ｔsafe  クロック遅延値の安全領域判定基準値
【図１】
2006244052.tif 000003
【図２】
2006244052.tif 000004
【図３】
2006244052.tif 000005
【図４】
2006244052.tif 000006
【図５】
2006244052.tif 000007
【図６】
2006244052.tif 000008