JP2006244052A - 半導体集積回路の設計方法 - Google Patents
半導体集積回路の設計方法 Download PDFInfo
- Publication number
- JP2006244052A JP2006244052A JP2005057684A JP2005057684A JP2006244052A JP 2006244052 A JP2006244052 A JP 2006244052A JP 2005057684 A JP2005057684 A JP 2005057684A JP 2005057684 A JP2005057684 A JP 2005057684A JP 2006244052 A JP2006244052 A JP 2006244052A
- Authority
- JP
- Japan
- Prior art keywords
- value
- delay
- area
- clock
- semiconductor integrated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】半導体集積回路の設計において、回路の動作タイミングを保証するのに、クロックスキュー値を可能な限り抑え込んだ後で回路全体のタイミング解析を行う方法では、設計TATや消費電力の増大を抑えられない。
【解決手段】全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップ(S4〜S5)と、遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップ(S6〜S7)と、危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップ(S9〜S10)とを含む。また、危険領域の度合いからクロック経路の回路構成を検討する(ステップS8)。
【選択図】図1
【解決手段】全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップ(S4〜S5)と、遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップ(S6〜S7)と、危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップ(S9〜S10)とを含む。また、危険領域の度合いからクロック経路の回路構成を検討する(ステップS8)。
【選択図】図1
Description
本発明は、低消費電力化及び短TAT(Turn Around Time)設計を実現する半導体集積回路のレイアウト設計方法に関するものである。
製造技術の進歩による半導体集積回路の高集積化、大規模化、高速化が進む中、フリップフロップ等の同期回路セルのホールド不良を防ぐため、クロックスキューを抑え込む設計が主流である。クロックスキューとはクロック信号の位相差のことである。クロックスキューは、配線遅延のMAX値とMIN値の差が大きくなるに伴って大きくなる。
図5でホールド不良について説明する。フリップフロップ(以下FF)1のクロック遅延値Tck1とデータ遅延値Tdの和がFF2のクロック遅延値Tck2とFF2のホールド時間Tholdの和より小さいと、ホールド不良が発生する。クロックスキュー値は、上記2つのFFのクロック遅延値の差である。
従来の設計方法について、図6を用いて説明する。
ステップS21において、回路設計を行い、ネットリストを作成する。
次にステップS22において、作成されたネットリストを用いてセルの配置配線を行う。
次にステップS23において、配置配線後の遅延情報を抽出する。
次にステップS24において、クロック経路の遅延情報からクロックのMAX遅延値、MIN遅延値を抽出し、これらの差分であるクロックスキューを抽出する。
次にステップS25において、クロックスキューを可能な限り小さくするためにバッファの挿入などを行う(クロックスキューの低減)。
次にステップS26において、全回路の容量抽出、遅延計算、タイミング解析を行う。
次いでステップS27において、タイミング解析の確認を行う。解析結果に問題があればステップS22に戻り、配置配線を変更し、問題がなければステップS28で終了となる。
特許文献1においては、上記のクロックスキュー低減のステップにおいて、次のような技術を開示している。すなわち、全クロック経路の遅延値を抽出し、その遅延値の平均値を算出し、各クロック経路の遅延値と平均値とを比較し、遅延値が平均値より速いクロック経路に一括して遅延値の平均値とMAX値との差分だけ遅延挿入を行う。
特開2001−203273号公報(第4頁、第1図)
しかし、上記の設計方法は、消費電力と設計TATの面で大きな問題がある。
図6のステップS25のクロックスキューの低減において、とにかくクロックスキューの絶対値を0にするため、高駆動のバッファを過剰に挿入する。その結果、消費電力の増大を招くおそれがある。また、全FFを対象とし、クロックスキューの絶対値を抑え込むため、クロックスキューによるホールド不良を判定するには、全回路について容量抽出、遅延計算、タイミング解析を行う必要がある。しかし結果として、非常に長いTATを要する。
一方、特許文献1で開示している設計方法ではクロックスキューを約1/2に低減することができ、従来より短いTATで設計を可能にできる。しかし、低減率が一定であり、また消費電力を考慮するまでには至っていない。
本発明は、上記の課題を解決するために次のような手段を講じる。
本発明による半導体集積回路の設計方法は、全クロック経路の遅延値を抽出してその遅延値の平均値を算出し、前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値(Td)から受け側同期回路セルのホールド時間(Thold)を差し引いた値をホールドエラーについての安全領域(Tsafe)として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定し、前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施することを特徴とするものである。
別言すれば、
全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップと、
前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップと、
前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップとを含む構成となっている。
全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップと、
前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップと、
前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップとを含む構成となっている。
上記の構成によれば、クロック遅延値の分布においてホールド不良の安全領域と危険領域を決定し、危険領域に該当する同期回路セルに限定した上でタイミング解析を行うので、全ての同期回路セルをタイミング解析していた従来技術に比べ、設計TATの大幅な短縮が可能となる。また、クロック経路を初めは少数の低駆動バッファで構成するようにし、危険領域の度合いを考慮しながらバッファ挿入やランクアップを行っていけばよいので、消費電力を極力抑えることが可能となる。
上記の構成において好ましくは、前記危険領域の決定において、前記危険領域に該当する同期回路セルの数で危険の度合いを判断し、その度合いに対応したクロック経路の構成や配置配線を再検討するものとする。このように危険領域の判断基準を該当する同期回路セルの数で判断するようにすれば、さらに短TAT化を図ることができる。
また、上記の構成において好ましくは、前記静的タイミング解析において、配線遅延モデルを用いて解析を行うものとする。これによれば、配線遅延モデルを用いてタイミング解析を行うので、TAT短縮の効果をさらに増すことができる。
また、上記の構成において好ましくは、前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック(TNS)値を判断基準として解析を行うものとする。このようにタイミング解析の判断基準をTNS値にしておき、その判断でクロック経路の回路構成にフィードバックをかければ、TNS値によって挿入すべきバッファ数、つまり面積増加の程度を把握でき、チップサイズや回路規模を早期に見積もることが可能となる。
なお、このTNS値を判断基準とする解析は、ホールド時間の解析のみならず、セットアップ時間の解析にも適用可能である。
なお、上記の構成において、前記同期回路セルとしてフリップフロップを対象とする場合が多い。
上記のように本発明によれば、クロック遅延値の分布においてホールド不良の安全領域と危険領域を決定し、危険領域に該当する同期回路セル(フリップフロップ)に限定した上でタイミング解析を行うので、全ての同期回路セルをタイミング解析していた従来技術に比べ、設計TATの大幅な短縮が可能となる。
また、危険領域によりクロック経路の構成の再検討もでき、無造作にクロックスキューを0に抑え込むためのバッファ挿入やセルのランクアップに比べ、消費電力を極力抑えることが可能となる。
以下、本発明にかかわる半導体集積回路の設計方法の実施の形態について、図面を参照しながら説明する。図1は本発明の実施の形態における半導体集積回路の設計方法の手順を示すフローチャート、図2は同実施の形態のクロック遅延値分布図、図3は同実施の形態の安全領域を決定する方法の説明図、図4は同実施の形態の安全領域及び危険領域を説明する図である。
図1を用いて本実施の形態における半導体集積回路の設計方法を説明する。
まず、ステップS1において、回路設計を行い、ネットリストを作成する。
次にステップS2において、クロック経路上で使用するセルの駆動サイズやファンアウト数など回路構成を決定する。このとき、できるだけ少数の低駆動能力セルで構成しておく。
次にステップS3において、セルの配置配線を実施する。
次にステップS4において、配置配線後の遅延情報を抽出する。
次にステップS5において、全クロックの遅延値を抽出して和をとり、クロック遅延値の平均値を算出する。
次にステップS6において、クロック遅延値の平均値を基準として、全クロック遅延値の分布を作成する。クロック遅延値の分布の例を図2に示す。ここでは分かりやすく正規分布としている。
次にステップS7において、ホールドエラーが起きないと判断されるクロック遅延値の安全領域を決定する。安全領域の決定の方法の一例を図3を用いて説明する。図3のように信号のやりとりが行われる2つのFFがある場合、Tck1を信号出し側FF1のクロック遅延、Tck2を信号受け側FF2のクロック遅延、Tdを無負荷時のデータ遅延値であるセル間の遅延値、Tholdを信号受け側FF2のホールド時間とする。
図3の回路構成の場合、
Tck2+Thold>Tck1+Td
のとき、つまり、
Tck2−Tck1>Td−Thold
のときにホールド不良が発生する。ここで、Tck2−Tck1はクロックスキューΔTを意味する。
Tck2+Thold>Tck1+Td
のとき、つまり、
Tck2−Tck1>Td−Thold
のときにホールド不良が発生する。ここで、Tck2−Tck1はクロックスキューΔTを意味する。
このとき、クロック遅延値の安全領域をクロック遅延値の平均値を基準として、プラス側とマイナス側でTd−Thold=Tsafe以内の値の領域と決定する。つまり、
ΔT≦Tsafe
が安全領域を示す。また、安全領域以外の領域をホールドエラーが起きやすいと判断される危険領域と決定する。回路の遅延情報はデータベース化されており、Tsafe(=Td−Thold)の値もデータベースとして持っておけば、直ちに安全領域及び危険領域を決定することができる。
ΔT≦Tsafe
が安全領域を示す。また、安全領域以外の領域をホールドエラーが起きやすいと判断される危険領域と決定する。回路の遅延情報はデータベース化されており、Tsafe(=Td−Thold)の値もデータベースとして持っておけば、直ちに安全領域及び危険領域を決定することができる。
図4はクロック遅延値の分布図においてクロック遅延値の安全領域と危険領域を示すものである。危険領域を斜線で示す。なお、分かりやすいように分布図は正規分布としている。図4のようにクロック遅延値の平均値を基準として考えているため、安全領域は分布図の内側領域に存在し、クロック遅延値がMAX値やMIN値に向かうと危険領域となる。
次にステップS8において、危険領域の危険度合いを判断してクロック経路の回路構成にフィードバックをかける。すなわち、クロック経路の回路構成を再度見直す条件として、危険領域に該当するFF数を設定しておき、危険領域に該当するFF数が設定した値を超えたときに、再度ステップS2まで戻ってクロック経路の構成から実行し直す。
次にステップS9において、危険領域に該当するFF回路についてのみ容量抽出、遅延計算を行う。安全領域に該当するFF回路ではホールドエラーが起きないものとし、容量抽出、遅延計算の対象とはしない。
次にステップS10において、同じく危険領域に該当するFF回路についてのみ静的タイミング解析を行う。なお、危険領域に該当するFF回路についてのみ配線遅延モデルを用いてタイミング解析を行ってもよい。
次にステップS11において、タイミング解析の結果確認を行う。ここで、結果OK/NGの判断はTNS(トータルネガティブスラック)値に基づいて行う。すなわち、あらかじめ判断基準となるTNS値を設定しておき、タイミング解析の結果、TNS値が判断基準値よりも大きかったときは、ステップS2までフィードバックし、再度クロック経路の回路構成を見直せばよい。設定するTNS値はデータベースとして持っておけばよい。
タイミング解析の結果、TNS値が判断基準値よりも小さかったときは、ステップS12に進み、終了となる。
本発明の半導体集積回路の設計方法は、クロック遅延値の安全領域と危険領域を決定することで設計TATの短縮と消費電力の抑制効果を有し、高集積化、大規模化、高速化が進む中で、開発期間の短TAT化や低消費電力化が求められる半導体集積回路の設計などに有用である。特に、開発初期段階でチップサイズや回路規模などを見積もる場合などには有用で、利用可能性は大いに期待できる。
FF1 データ出し側フリップフロップ
FF2 データ受け側フリップフロップ
Tck1 データ出し側フリップフロップのクロック遅延値
Tck2 データ受け側フリップフロップのクロック遅延値
Td データ遅延値
Thold データ受け側フリップフロップのホールド時間
Tck−MAX クロック遅延値の最大値
Tck−MIN クロック遅延値の最小値
Tsafe クロック遅延値の安全領域判定基準値
FF2 データ受け側フリップフロップ
Tck1 データ出し側フリップフロップのクロック遅延値
Tck2 データ受け側フリップフロップのクロック遅延値
Td データ遅延値
Thold データ受け側フリップフロップのホールド時間
Tck−MAX クロック遅延値の最大値
Tck−MIN クロック遅延値の最小値
Tsafe クロック遅延値の安全領域判定基準値
Claims (7)
- 全クロック経路の遅延値を抽出してその遅延値の平均値を算出し、前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定し、前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施することを特徴とする半導体集積回路の設計方法。
- 全クロック経路の遅延値を抽出してその遅延値の平均値を算出するステップと、
前記遅延値の平均値を基準として、ある同期回路セル間のデータ遅延値から受け側同期回路セルのホールド時間を差し引いた値をホールドエラーについての安全領域として、前記安全領域から同期回路セル間のクロックスキュー値がはみ出た領域をホールドエラーの危険領域と決定するステップと、
前記危険領域に該当する同期回路セルについてのみ容量抽出、遅延計算、静的タイミング解析を実施するステップとを含む半導体集積回路の設計方法。 - 前記危険領域の決定において、前記危険領域に該当する同期回路セルの数で危険の度合いを判断し、その度合いに対応したクロック経路の構成や配置配線を再検討する請求項1または請求項2に記載の半導体集積回路の設計方法。
- 前記静的タイミング解析において、配線遅延モデルを用いて解析を行う請求項1から請求項3までのいずれかに記載の半導体集積回路の設計方法。
- 前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック値を判断基準として解析を行う請求項1から請求項4までのいずれかに記載の半導体集積回路の設計方法。
- 前記静的タイミング解析において、解析の判断基準を許容トータルネガティブスラック値を判断基準として行う解析は、ホールド時間またはセットアップ時間についての解析である請求項5に記載の半導体集積回路の設計方法。
- 前記同期回路セルとしてフリップフロップを対象とする請求項1から請求項6までのいずれかに記載の半導体集積回路の設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005057684A JP2006244052A (ja) | 2005-03-02 | 2005-03-02 | 半導体集積回路の設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005057684A JP2006244052A (ja) | 2005-03-02 | 2005-03-02 | 半導体集積回路の設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006244052A true JP2006244052A (ja) | 2006-09-14 |
Family
ID=37050419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005057684A Pending JP2006244052A (ja) | 2005-03-02 | 2005-03-02 | 半導体集積回路の設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006244052A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011096014A (ja) * | 2009-10-29 | 2011-05-12 | Renesas Electronics Corp | タイミング解析装置、タイミング解析方法、及びタイミング解析プログラム |
CN110555733A (zh) * | 2019-09-02 | 2019-12-10 | 上海评驾科技有限公司 | 一种基于智能手机的用户行程驾乘识别的方法 |
-
2005
- 2005-03-02 JP JP2005057684A patent/JP2006244052A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011096014A (ja) * | 2009-10-29 | 2011-05-12 | Renesas Electronics Corp | タイミング解析装置、タイミング解析方法、及びタイミング解析プログラム |
CN110555733A (zh) * | 2019-09-02 | 2019-12-10 | 上海评驾科技有限公司 | 一种基于智能手机的用户行程驾乘识别的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102324782B1 (ko) | 집적 회로의 정적 타이밍 분석 방법 | |
US9830415B2 (en) | Standard cell library, method of using the same, and method of designing semiconductor integrated circuit | |
JP4629607B2 (ja) | 半導体集積回路のタイミング検証方法及びタイミング検証装置 | |
KR102434991B1 (ko) | 집적 회로 및 집적 회로의 설계 방법 | |
US6145116A (en) | Layout design apparatus | |
JP2006135152A (ja) | 半導体装置の設計方法及び半導体装置 | |
US8726201B2 (en) | Method and system to predict a number of electromigration critical elements | |
US6915497B2 (en) | Automatic design system for wiring on LSI | |
JP2006244052A (ja) | 半導体集積回路の設計方法 | |
WO2012015689A1 (en) | Hyper-concurrent multi-scenario optimization | |
US7984404B2 (en) | Black box timing modeling method and computer system for latch-based subsystem | |
JP2009020575A (ja) | 半導体集積回路の設計方法および設計装置 | |
JP4473163B2 (ja) | スキャンチェーンのホールドエラー解消方法 | |
US10902167B1 (en) | Feedback-aware slack stealing across transparent latches empowering performance optimization of digital integrated circuits | |
US8972919B2 (en) | Static timing analysis method and system considering capacitive coupling and double patterning mask misalignment | |
Blaauw et al. | CPU, heal thyself | |
US11113446B2 (en) | Yield improving leaf cells optimization for semiconductor netlists | |
CN117952064B (en) | Multiple patterning method for layout, electronic equipment and storage medium | |
US10527932B2 (en) | Structure design generation for fixing metal tip-to-tip across cell boundary | |
JP2003296386A (ja) | 半導体集積回路の設計方法及び半導体集積回路 | |
JP2007323203A (ja) | 半導体集積回路の設計装置および設計方法 | |
JP2006201825A (ja) | 集積回路の遅延解析方法及び遅延解析プログラム | |
JP4320265B2 (ja) | 半導体集積回路の設計装置 | |
JP6435892B2 (ja) | 回路設計方法、回路設計ツール用セル・ライブラリのコンポーネント | |
JP2006302995A (ja) | 半導体集積回路、回路レイアウト装置、回路レイアウト方法および回路レイアウトプログラム |