JP4602909B2 - 半導体集積回路のクロックツリー形成方法およびプログラム。 - Google Patents
半導体集積回路のクロックツリー形成方法およびプログラム。 Download PDFInfo
- Publication number
- JP4602909B2 JP4602909B2 JP2006002958A JP2006002958A JP4602909B2 JP 4602909 B2 JP4602909 B2 JP 4602909B2 JP 2006002958 A JP2006002958 A JP 2006002958A JP 2006002958 A JP2006002958 A JP 2006002958A JP 4602909 B2 JP4602909 B2 JP 4602909B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- pair
- value
- path
- clock tree
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Manipulation Of Pulses (AREA)
Description
また、図12に示す設計上のゲートセル101〜104、106〜108、FF105、109から構成される回路について、製造ばらつきを考慮してタイミングチェックを行う場合について説明する。図12に示すセットアップ解析では送り手側のFF105aのクロックパス遅延はmax側、受け手側のFF109aのクロックパス遅延はmin側の遅延を用い、ホールド解析では送り手側のFF105bのクロックパス遅延はmin側、受け手側のFF109bのクロックパス遅延はmax側の遅延を用いて、チェックが行われる。
(実施例1)
(本発明のシステムのブロック図)
図1は本発明の半導体集積回路を実現するためのハードウェア設計装置のブロック図である。図1において、設計装置10は、CPU11、ROM12、RAM13、ハードディスクドライブ(HDD)14、フレキシブルディスクドライブ(FDD)15、入力インタフェース(入力I/F)16、通信インタフェース(通信I/F)17、出力インタフェース(出力I/F)19、グラフィック処理部110などを備えている。また、上記各構成部はバス111によってそれぞれ接続されている。
(本発明の原理)
ハードウェア設計装置には、入力装置16aから入力されたHDL(Hardware Description Language:ハードウェア記述言語)や回路図レベルで入力されたソースに基づいて論理合成をし、レイアウトおよびパターンを生成する。図2は本発明の原理を示す機能ブロック図である。図2に示すクロックツリーを最適化するブロックであるクロックツリー生成部21は、CPU11にHDD14やROM12に記録されている。クロックツリー生成部21は、ホールドスラック計算部22、バッファ遅延計算部23、FF対集合操作部24、バッファ挿入部25、ホールドスラック再計算部26などから構成されている。
(本実施例のフロー)
図3はクロックツリー生成手法について示したフロー図である。上記説明したように、ステップS21では、クロックスキュー=0でタイミング解析を行い、パスが存在するFF対に対して図4に示すようにFF間のホールドスラック値を計算する。
ステップS23では、(該当FF対のホールドスラック値)<(Tmax−Tmin)であるFF対は、同じバッファで駆動するようにバッファを挿入する。
図5(a)に示す場合は、バッファ51からFF54のルートにバッファ52がある。またFF55までの間にはバッファ53が配置されている。このような場合、上記説明したようにホールドスラック値<(Tmax−Tmin)の関係であると、別々のバッファ52、53で駆動した場合ホールドエラーが発生する。しかし図5(b)のようにバッファ56から分岐するようにすれば、同じバッファで駆動しているため、バッファばらつきの影響を受けないので、ホールドエラーが発生しない。このようにして、ホールドスラック値と遅延(Tmin、Tmax)の関係に着目し、FF直前のバッファを挿入したあと、同様の手法で2段目のバッファを挿入する。なお、1段目で挿入したバッファのばらつきによるクロックスキューを含めてバッファ挿入を行う。この処理を繰り返し行うことにより、ホールドエラーの発生を確実に防止するようなバッファ挿入が可能となる。
(実施例2)
実施例2(繰り返しありのケース)のフローチャートを図6に示す。
未処理FF対集合={(FF1,FF2),(FF2,FF3),(FF3,FF4),(FF4,FF5),(FF5,FF6),(FF6,FF7),(FF7,FF8)}
仮未処理FF対集合={ }(空集合)
ステップS64では、未処理FF対集合が空であるかを判断する。すべてのFF対について最適化を完了している場合は、クロックツリー生成部の処理を終了する。まだ、未処理のFF対がある場合はステップS65に移行する。
図8(a)に上記ステップS65〜S610の処理結果を示す(FF直前:FFから数えて1段目のバッファの挿入)。
仮未処理FF対集合={(FF2,FF3),(FF4,FF5),(FF6,FF7)}
ステップS611では、上記仮未処理FF対集合に属するFF対を未処理FF対集合に追加し、仮未処理FF対集合からは削除する。未処理FF対集合に仮未処理FF対集合に属するFF対を追加する。
また、仮未処理対集合を空とする。仮未処理FF対集合={ }(空集合)
ステップS612では、未処理FF対集合に属するFF対のホールドスラック値を再計算する。現在のホールドスラックからクロックスキュー値(Tmax−Tmin)を減算して新しいホールドスラック値とする。
さらに、FFから数えて3段目のバッファ挿入に関してステップS65〜S610までの処理をする。ホールドスラック値<Tmax−TminであるFF対に相当するバッファをグループ化(グループ7={Buf5,Buf6})する。
各グループに対して、バッファ(buf7)の挿入を行う。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
ハードウェア設計装置による半導体集積回路のクロックツリーの形成方法であって、
前記ハードウェア設計装置に記録されている回路配置情報に基づいて、クロックツリー回路のFF対のフリップフロップ間の経路に対して、クロックスキューがない状態でタイミング解析を行い、ホールドエラーが発生する基準値に対しての余裕度としてホールドスラック値を求めるホールドスラック計算処理と、
前記クロックツリー回路に用いられているバッファの前記回路配置情報に基づき前記クロックツリー回路の分岐点となる前記バッファから前記FF対ごとの前記フリップフロップ入力間の経路に対して、前記経路の遅延の最小値、最大値を計算し記憶するバッファ遅延計算処理と、
前記経路ごとに前記ホールドスラック値と前記最大値から前記最小値を減算した結果を比較して、ホールドスラック値より大きいと判断された場合は前記FF対をグループ化するFF対集合操作処理と、
同一の前記グループの前記FF対の前記経路ごとに、前記FF対が同一の前記バッファで駆動するように前記バッファを挿入するバッファ挿入処理処理を行うことを特徴とするクロックツリー形成方法。
(付記2)
前記バッファ挿入処理で生成した結果に対して再度ホールドスラック値の計算を行うホールドスラック再計算処理をし、
前記ホールドスラック再計算処理の値に基づいて前記FF対集合操作処理から再処理をし、前記経路ごとに前記比較の結果がホールドスラック値より小さいと判断されるまで処理をすることを特徴とする付記1に記載のクロックツリー形成方法。
(付記3)
半導体集積回路のクロックツリーの形成設計を実行するプログラムであって、
前記ハードウェア設計装置に記録されている回路配置情報に基づいて、クロックツリー回路のFF対のフリップフロップ間の経路に対して、クロックスキューがない状態でタイミング解析を行い、ホールドエラーが発生する基準値に対しての余裕度として初期のホールドスラック値を求めるホールドスラック計算機能と、
前記クロックツリー回路に用いられているバッファの前記回路配置情報に基づき前記クロックツリー回路の分岐点となる前記バッファから前記FF対ごとの前記フリップフロップ入力間の経路に対して、前記経路の遅延の最小値、最大値を計算し記憶するバッファ遅延計算機能と、
前記経路ごとに前記ホールドスラック値と前記最大値から前記最小値を減算した結果を比較して、ホールドスラック値より大きいと判断された場合は前記FF対をグループ化するFF対集合操作機能と、
同一の前記グループの前記FF対の前記経路ごとに、前記FF対が同一の前記バッファで駆動するように前記バッファを挿入するバッファ挿入機能と、
を有するプログラムでありコンピュータが実行可能な半導体集積回路のクロックツリーの形成設計プログラム。
(付記4)
前記バッファ挿入機能で生成した結果に対して再度ホールドスラック値の計算を行い、再度計算したホールドスラック値に基づいて前記FF対集合操作機能から再処理をして、前記経路ごとに前記比較の結果がホールドスラック値より小さいと判断されるまで処理することを特徴とする付記3に記載のコンピュータが実行可能な半導体集積回路のクロックツリーの形成設計プログラム。
(付記5)
半導体集積回路のクロックツリーの形成設計を行うのためのプログラムを記録した記録媒体であって、
前記ハードウェア設計装置に記録されている回路配置情報に基づいて、クロックツリー回路のFF対のフリップフロップ間の経路に対して、クロックスキューがない状態でタイミング解析を行い、ホールドエラーが発生する基準値に対しての余裕度として初期のホールドスラック値を求めるホールドスラック計算機能と、
前記クロックツリー回路に用いられているバッファの前記回路配置情報に基づき前記クロックツリー回路の分岐点となる前記バッファから前記FF対ごとの前記フリップフロップ入力間の経路に対して、前記経路の遅延の最小値、最大値を計算し記憶するバッファ遅延計算機能と、
前記経路ごとに前記ホールドスラック値と前記最大値から前記最小値を減算した結果を比較して、ホールドスラック値より大きいと判断された場合は前記FF対をグループ化するFF対集合操作機能と、
同一の前記グループの前記FF対の前記経路ごとに、前記FF対が同一の前記バッファで駆動するように前記バッファを挿入するバッファ挿入機能と、
をコンピュータで実行させるための実行可能な半導体集積回路のクロックツリーの形成設計プログラムを記録したコンピュータで読み取り可態な記録媒体。
(付記6)
前記バッファ挿入機能で生成した結果に対して再度ホールドスラック値の計算を行い、再度計算したホールドスラック値に基づいて前記FF対集合操作機能から再処理をして、前記経路ごとに前記比較の結果がホールドスラック値より小さいと判断されるまで処理することを特徴とする付記5に記載のコンピュータで実行可能な半導体集積回路のクロックツリーの形成設計プログラムを記録したコンピュータで読み取り可態な記録媒体。
11 CPU
12 ROM
13 RAM
14 ハードディスクドライブ(HDD)
15 フレキシブルディスクドライブ(FDD)
15a FD
16 入力インタフェース(入力I/F)
16a 入力装置
17 通信インタフェース(通信I/F)
18 通信回線
19 出力インタフェース(出力I/F)
19a 出力装置
110 グラフィック処理部
110a 表示装置
111 バス
21 クロックツリー生成部
22 ホールドスラック計算部
23 バッファ遅延計算部
24 FF対集合操作部
25 バッファ挿入部
26 ホールドスラック再計算部
27 入力データ
28 出力データ
51、52、53、56 バッファ
54、55 FF(フリップフロップ)
Claims (2)
- ハードウェア設計装置が実行する半導体集積回路のクロックツリーの形成方法であって、
コンピュータが、
前記ハードウェア設計装置の記録部に記録されている回路配置情報に基づいて、クロックツリー回路のFF対のフリップフロップ間の経路に対して、クロックスキューがない状態でタイミング解析を行い、ホールドエラーが発生する基準値に対しての余裕度としてホールドスラック値を求めるホールドスラック計算処理と、
前記記録部に記録されている、前記クロックツリー回路に用いられているバッファの前記回路配置情報に基づき前記クロックツリー回路の分岐点となる前記バッファから前記FF対ごとの前記フリップフロップ各々までの経路各々に対する遅延の最小値、最大値を計算し、前記記録部に記録するバッファ遅延計算処理と、
前記経路ごとに前記ホールドスラック値と前記バッファから前記FF対ごとの前記フリップフロップまでの一方の経路の前記最大値から他方の経路の前記最小値を減算した結果を比較して、ホールドスラック値より大きいと判断された場合は前記FF対をグループ化するFF対集合操作処理と、
同一の前記グループの前記FF対の前記経路各々に、前記FF対が同一の前記バッファで駆動するように前記バッファを挿入するバッファ挿入処理と、
前記バッファ挿入処理で生成した結果に対して再度ホールドスラック値の計算を行うホールドスラック再計算処理と、
前記ホールドスラック再計算処理の値に基づいて前記FF対集合操作処理から再処理をし、前記経路ごとに前記比較の結果がホールドスラック値より小さいと判断されるまで処理をする処理と、
を実行することを特徴とするクロックツリー形成方法。 - コンピュータに、
前記ハードウェア設計装置の記録部に記録されている回路配置情報に基づいて、クロックツリー回路のFF対のフリップフロップ間の経路に対して、クロックスキューがない状態でタイミング解析を行い、ホールドエラーが発生する基準値に対しての余裕度として初期のホールドスラック値を求めさせるホールドスラック計算処理と、
前記記録部に記録されている、前記クロックツリー回路に用いられているバッファの前記回路配置情報に基づき前記クロックツリー回路の分岐点となる前記バッファから前記FF対ごとの前記フリップフロップ各々までの経路各々に対する遅延の最小値、最大値を計算させ、前記記録部に記録させるバッファ遅延計算処理と、
前記経路ごとに前記ホールドスラック値と前記バッファから前記FF対ごとの前記フリップフロップまでの一方の経路の前記最大値から他方の経路の前記最小値を減算した結果を比較して、ホールドスラック値より大きいと判断された場合は前記FF対をグループ化させるFF対集合操作処理と、
同一の前記グループの前記FF対の前記経路各々に、前記FF対が同一の前記バッファで駆動するように前記バッファを挿入させるバッファ挿入処理と、
前記バッファ挿入処理で生成した結果に対して再度ホールドスラック値の計算をさせるホールドスラック再計算処理と、
再度計算したホールドスラック値に基づいて前記FF対集合操作処理から再処理をさせ、前記経路ごとの前記比較の結果がホールドスラック値より小さいと判断されるまで処理をさせる処理と、
を実行させるためのハードウェア設計における半導体集積回路のクロックツリーの形成設計プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006002958A JP4602909B2 (ja) | 2006-01-10 | 2006-01-10 | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006002958A JP4602909B2 (ja) | 2006-01-10 | 2006-01-10 | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007183887A JP2007183887A (ja) | 2007-07-19 |
JP4602909B2 true JP4602909B2 (ja) | 2010-12-22 |
Family
ID=38339911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006002958A Expired - Fee Related JP4602909B2 (ja) | 2006-01-10 | 2006-01-10 | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4602909B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5696407B2 (ja) * | 2010-09-14 | 2015-04-08 | 株式会社リコー | 半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路 |
JP5743063B2 (ja) | 2011-02-09 | 2015-07-01 | ラピスセミコンダクタ株式会社 | 半導体集積回路、半導体チップ、及び半導体集積回路の設計手法 |
CN110147139B (zh) * | 2018-02-12 | 2022-10-18 | 创意电子股份有限公司 | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0360776A (ja) * | 1989-07-27 | 1991-03-15 | Mita Ind Co Ltd | 洗浄液循環装置 |
JP2005004496A (ja) * | 2003-06-12 | 2005-01-06 | Matsushita Electric Ind Co Ltd | 半導体集積回路のレイアウト方法およびレイアウト装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003060776A (ja) * | 2001-08-10 | 2003-02-28 | Tamura Electric Works Ltd | 電話装置 |
-
2006
- 2006-01-10 JP JP2006002958A patent/JP4602909B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0360776A (ja) * | 1989-07-27 | 1991-03-15 | Mita Ind Co Ltd | 洗浄液循環装置 |
JP2005004496A (ja) * | 2003-06-12 | 2005-01-06 | Matsushita Electric Ind Co Ltd | 半導体集積回路のレイアウト方法およびレイアウト装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007183887A (ja) | 2007-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7784003B2 (en) | Estimation of process variation impact of slack in multi-corner path-based static timing analysis | |
US8327308B2 (en) | Method and apparatus for designing integrated circuit | |
US7886245B2 (en) | Structure for optimizing the signal time behavior of an electronic circuit design | |
US7467367B1 (en) | Method and system for clock tree synthesis of an integrated circuit | |
US8566767B1 (en) | System and method for parametric intercoupling of static and dynamic analyses for synergistic integration in electronic design automation | |
US20080034338A1 (en) | Timing analysis method and device | |
US20070136705A1 (en) | Timing analysis method and device | |
Han et al. | A global-local optimization framework for simultaneous multi-mode multi-corner clock skew variation reduction | |
US20090293033A1 (en) | System and method for layout design of integrated circuit | |
US9646122B2 (en) | Variable accuracy parameter modeling in statistical timing | |
CN104981805A (zh) | 自动时钟树布线规则生成 | |
JP4351207B2 (ja) | タイミング検証方法及びタイミング検証装置 | |
JP4602909B2 (ja) | 半導体集積回路のクロックツリー形成方法およびプログラム。 | |
JP2008250721A (ja) | モデル生成方法及びモデル生成装置 | |
US20050283750A1 (en) | Method and apparatus for designing a layout, and computer product | |
US7945882B2 (en) | Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium | |
JP2010073136A (ja) | ホールドタイムエラーの収束方法、収束装置、及び収束プログラム | |
JP4664222B2 (ja) | 許容値算出方法及び検証方法 | |
US20080229260A1 (en) | Structure for automated transistor tuning in an integrated circuit design | |
US20080209368A1 (en) | Layout design method, layout design apparatus, and computer product | |
JP2006344165A (ja) | レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体 | |
JPWO2010101029A1 (ja) | 半導体集積回路設計装置、半導体集積回路設計方法、及び半導体集積回路設計プログラム | |
JP2001134625A (ja) | 集積回路最適化方法、集積回路最適化装置及び集積回路最適化プログラムを記録した記録媒体 | |
JP2009086700A (ja) | 半導体特性調整プログラム、半導体特性調整方法および半導体特性調整装置 | |
TW202405690A (zh) | 靜態時序分析方法及靜態時序分析系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100928 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100930 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |