JP2013171503A - Lsi設計方法 - Google Patents

Lsi設計方法 Download PDF

Info

Publication number
JP2013171503A
JP2013171503A JP2012036097A JP2012036097A JP2013171503A JP 2013171503 A JP2013171503 A JP 2013171503A JP 2012036097 A JP2012036097 A JP 2012036097A JP 2012036097 A JP2012036097 A JP 2012036097A JP 2013171503 A JP2013171503 A JP 2013171503A
Authority
JP
Japan
Prior art keywords
buffer
branch
target
clock
timing
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.)
Granted
Application number
JP2012036097A
Other languages
English (en)
Other versions
JP5883676B2 (ja
Inventor
Ayayuki Ishikawa
綾志 石川
Osamu Kobayakawa
修 小早川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012036097A priority Critical patent/JP5883676B2/ja
Priority to US13/769,885 priority patent/US9141739B2/en
Publication of JP2013171503A publication Critical patent/JP2013171503A/ja
Priority to US14/833,562 priority patent/US20150363530A1/en
Application granted granted Critical
Publication of JP5883676B2 publication Critical patent/JP5883676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】セットアップ余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減する。
【解決手段】クロックツリー内の分岐に着目し削除候補の対象バッファを規定し、着目した分岐から拡がるクロックツリーの一部である部分ツリーにおいて、接続されるFF群の全部または一部を対象FFとし、それ以外のFFを非対象FFとする。このとき、バッファを削除しても、非対象FF相互間の信号伝搬経路でのスラックが原理的に変動しないように、削除候補の対象バッファと対象および非対象FFを規定する。非対象FFを始点、対象FFを終点とする信号伝搬経路と対象FF間の信号伝搬経路がいずれもセットアップ違反を発生させない範囲内で、対象バッファの中から削除できるバッファを特定して削除する。
【選択図】図4

Description

本発明は、LSI設計方法に係り、特に、クロックツリーによる電力消費を抑えるために有効な技術に関する。
ロジックLSIでは、クロック発生源からそのクロックに同期して動作するフリップフロップ(以下FFと略記する)までクロックツリーを備える同期設計が一般的である。FF間には組合せ回路があり、クロックスキューと、組合せ回路による信号伝搬遅延と、クロック周期との関係で、セットアップ時間、ホールド時間などのタイミング仕様が定められている。クロックスキューは、クロック発生源から信号伝搬の始点と終点となる1組のFFそれぞれにクロックが到達する時間の差を表す。始点のFFの出力がクロックに同期して遷移すると、組合せ回路による信号伝搬遅延を経て、終点のFFにその論理演算の結果が到達する。到達するタイミングは、クロック周期に対してある程度の余裕を必要としており、その余裕をセットアップ時間という。また、信号伝搬遅延が少なすぎて始点における信号遷移がそのクロックサイクルのうちに終点の出力に現れるレーシングという不具合を防止するために、ホールド時間が規定されている。
このようなLSIの設計方法には、一般に、論理合成(Logic Synthesis)、クロックツリー合成(CTS; Clock Tree Synthesis)、配置配線、タイミング解析、および検証を行う各ステップが含まれている。
論理合成では、設計者によって高位論理記述の形で設計された論理を入力として、ゲートレベルの論理回路を合成する。論理回路は、クロック発生源からそのクロックに同期して動作するFFまでクロックツリーを備える、同期設計が一般的である。FFは、組合せ回路による信号伝搬遅延の始点および終点であって、同期設計におけるタイミング規定回路である。始点のタイミング規定回路であるFFの出力がクロックに同期して遷移すると、組合せ回路による信号伝搬遅延を経て、終点のタイミング規定回路であるFFにその論理演算の結果が到達する。到達するタイミングは、クロック周期に対してある程度の余裕を必要としており、その余裕をセットアップ時間という。一方、信号伝搬遅延が少なすぎて始点における信号遷移がそのクロックサイクルのうちに終点の出力に現れるレーシングという不具合を防止するために、ホールド時間が規定されている。タイミング規定回路には、FFだけではなく、ラッチ回路、クロック同期式のメモリ、クロックゲーティングを制御するゲート回路などが含まれる。
クロックツリー合成(CTS)では、クロック発生源から、FFなどのすべてのタイミング規定回路に対して、クロックが供給されるように、クロックバッファをツリー状に構成する。1個のクロック発生源から多数のタイミング規定回路にクロックを供給するために、複数回の分岐を経て供給対象を増やす。分岐から延びる複数の枝のそれぞれに1個乃至複数個のバッファを直列に備え、さらに次の分岐に至る。同期設計においては、すべてのタイミング規定回路に同時にクロックが到達するように設計されるのが一般的である。論理合成がそれを前提として実行されているからである。タイミング規定回路にクロックが到達する時刻の誤差をスキューという。
配置配線では、論理回路の各ゲートに対応するセルの配置を決め、セル間の配線を行う。これにより、LSIのレイアウト情報が生成される。
タイミング解析には、過渡解析を行う動的タイミング解析と、過渡解析を行わずに、配線の負荷容量と配線抵抗を抽出しそれに基づいてゲートごとに遅延時間を算出してその加減算によってのみ行う、静的タイミング解析(STA; Static Timing Analysis)がある。回路規模の膨大なLSI設計では、一般に、演算量の少ないSTAが採用されている。STAでは、クロック発生源から、クロックバッファによる遅延を累積しながら始点または終点であるタイミング規定回路までの信号伝搬遅延を計算し、始点から終点までの組合せ回路による信号伝搬遅延を計算し、セットアップ時間とホールド時間に対する余裕を算出する。セットアップ時間に対する余裕をスラック(slack)と呼び、違反している場合にはスラックを負で表し、余裕がある場合にはスラックを正で表す。STAでは、すべてのタイミング規定回路を始点および終点とするすべての組合せについて、セットアップ時間とホールド時間に対する余裕を算出する。配置配線後にSTAを行う場合には、レイアウト情報から負荷容量と配線抵抗などの遅延に影響するパラメータを抽出して、より正確に遅延を計算することができる。
検証には、設計ルールチェック(DRC; Design Rule Check)と回路レイアウト検証(LVS; Layout vs. Schematic)が含まれ、レイアウト情報における各種ルールについての検証と、レイアウトの回路図との一致検証を行う。
一方、ロジックLSIにおける消費電力の低減は、益々重要度が高まっている課題であり、特にクロックツリーを始めとするクロック系の消費電力の低減は極めて重要である。クロックツリーは回路規模において組合せ回路より小さいにも関わらず、クロックが通常のデータと比べて単位時間当たりの状態遷移確率が数倍高いため、ロジックLSIにおけるクロックツリーによる消費電力は、比較的高い割合を占める。したがって、クロックツリーの消費電力を抑えることは、ロジックLSI全体の消費電力の低減に大きく寄与する。
特許文献1には、セットアップ違反を解消するために、FFへのクロックの到達時間を調節する技術が開示されている。複数のセットアップ違反の最悪スラックを、クロックツリーにおけるクロックバッファの追加または削除によって解消する技術である。
特許文献2には、セットアップ違反を解消するためのクロックラインの最適化フローが開示されている。セットアップ違反のパスの終点のFFを、クロックを遅延させる遅延付きFFに置き換える。
特許文献3には、消費電力の低減とセットアップ/ホールドエラー改善を行うことができるクロックツリー作成方法が開示されている。クロックツリー上の遅延素子の数を減らすことによって消費電力を低減し、セットアップ/ホールドエラーを発生させているパスを構成するセルの配置をやり直して配線を短縮することによりエラーを解消する技術である。クロック発生源からクロック負荷セル(通常はFF)までの配線長が所定範囲内になるように、クロック負荷セルを再配置することにより、クロックツリー上のバッファ数を必要最小限とし、合わせてセットアップ/ホールドエラーを解消する。
特開2006−031141号公報 特開2002−108962号公報 特開2006−319162号公報
上で述べたように、CTSはFFなどすべてのタイミング規定回路までのクロック遅延を等しく(スキューを0に)するようにしてクロックツリーを合成するので、クロック発生源から最も遠いタイミング規定回路までのクロック遅延を基準として、他の全てのクロック伝搬経路の遅延をこれと一致させている。したがって、クロック発生源に近いFFに対するクロックツリーには、スキュー調整のためのバッファが多数挿入されていることになる。
本願の発明者はこの点に着目し、タイミング違反を発生させないならば、このようなスキュー調整のために挿入されたバッファを削除することにより、クロックツリーによる消費電力を抑えることができることを見出した。
特許文献1に開示される技術において、セットアップ違反を解消するために、クロックツリー上のクロックバッファを追加または削除するので、削除すれば結果的にクロックツリーにおける消費電力を削減する効果はあるが、同文献には、消費電力を削減するための技術的思想は開示されていない。
特許文献2に開示される技術において、セットアップ違反を解消するために終点のFFを、クロックを遅延させる遅延付きFFに置き換えるのは、クロックツリーに遅延素子を挿入するのと回路的に等価であって、結果的にクロックツリーにおける消費電力を増加させる。
特許文献3に開示される技術において、消費電力を低く抑えながらセットアップ/ホールドエラー改善を行うことができるが、スキューを保ったままセルの配置を最適化することによって、配線負荷を必要最小限に抑えることによる消費電力低減に留まる。
本願において開示される実施の形態においては、タイミング余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減することを課題とする。
その他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される実施の形態の概要を簡単に説明すれば下記の通りである。
すなわち、クロックツリー内の分岐に着目し、前記分岐から拡がる前記クロックツリーの一部である部分ツリーに接続されるFF群の全部または一部を対象FFとし、非対象FF相互間の信号伝搬経路でのスラックが原理的に変動しない条件下で、削除対象バッファを特定する。非対象FFを始点、対象FFを終点とする信号伝搬経路と対象FF間の信号伝搬経路がいずれもタイミング仕様違反を発生させない範囲内で、削除対象バッファの中から削除できるバッファを特定して削除する。
本願において開示される実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、セットアップ余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減することができる。
図1は、実施形態1または実施形態2を適用したLSI設計方法を表す設計フローの中核部分である。 図2は、実施形態1または実施形態2を適用したLSI設計方法を表す設計フローの全体である。 図3は、実施形態1または実施形態2の変形例を適用したLSI設計方法を表す設計フローの中核部分である。 図4は、実施形態1によるバッファの削除方法の一例を示す説明図である。 図5は、実施形態1によるバッファの削除のためのタイミング解析の一例を示す説明図である。 図6、バッファを削除した後の再配線による遅延値の更新についての説明図である。 図7は、実施形態2によるバッファの削除方法の一例を示す説明図である。 図8は、実施形態2によるバッファの削除のためのタイミング解析の一例を示す説明図である。
1.実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<1本の枝に含まれるバッファを対象とするバッファ削除ステップ>
クロック発生源(200)から複数のタイミング規定回路(FF1〜FF8)まで複数のバッファ(101〜166)を含んで構成されるクロックツリー(100)に対して、以下のステップを実行するLSI設計方法である。
前記クロックツリー内の1つの分岐(22)と、前記分岐から前記タイミング規定回路方向に延びる1つの枝(31)における次の分岐(24)との間に存在するバッファ(111、112、113)を対象バッファとする(ステップ1)。前記枝から拡がるクロックツリー(41)の末端に接続されているタイミング規定回路(FF1,FF2)を対象タイミング規定回路(51)とし、前記複数のタイミング規定回路のうち前記対象タイミング規定回路以外のタイミング規定回路(FF3〜FF8)を非対象タイミング規定回路(52)とする(ステップ1)。
前記非対象タイミング規定回路を始点とし前記対象タイミング規定回路を終点とするすべての信号伝搬経路(61)におけるセットアップ余裕を0以上に保つことができる範囲内で(ステップ3)、前記対象バッファに含まれる1個または複数のバッファを削除する(ステップ5)。
これにより、タイミング余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減することができる。
〔2〕<予めセットアップ余裕(スラック)≧0に調整>
項1において、バッファを削除する前記ステップ(15)に先立って、前記複数のタイミング規定回路相互間のすべての信号伝搬経路におけるセットアップ余裕を0以上に調整するステップ(ステップ14)をさらに含む。
これにより、削除可能なバッファの数をさらに多くすることができる。
〔3〕<全ての分岐および枝についてバッファ削除ステップの繰り返し>
項1または2において、前記クロックツリー内の全ての分岐を順次選び、前記分岐から延びる全ての枝を順次選んでバッファを削除する前記ステップを繰り返し実施する(ステップ2)。
これにより、クロックツリー内の全てのバッファを対象に、削除可能か否かの判断を行うことができ、より多くのバッファを削除することができる。
〔4〕<クロック発生源に近い分岐から順次繰り返し>
項3において、前記分岐の選択は、前記クロック発生源に近い分岐を先に選択する。
これにより、削除可能なバッファの数をさらに多くすることができる。
〔5〕<削除候補の絞込み(削除からの除外対象の指定)>
項3または4において、バッファを削除する前記ステップに先立って除外対象の枝を規定し(ステップ6)、前記対象バッファが前記除外対象の枝に含まれるときに、前記バッファを削除するステップをスキップして次の分岐に移る(ステップ7)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。
〔6〕<電気的最長パスを削除対象から除外>
項5において、前記クロックツリー内の、電気的設計ルールに対する余裕の最も少ない経路にある枝を、前記除外対象の枝と規定する(ステップ6)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。電気的設計ルールとは、例えば、波形の立上り時間を所定の時間内以下に制限する規定など、信頼性を確保するためなどの目的で速度性能の仕様とは別に設けられているルールを指す。信頼性を確保するために挿入されたバッファを削除することは許されないため、仮に削除すると後の検証で電気的設計ルール違反となり、削除したバッファを元に戻すような手戻りを生じることとなる。このようなバッファを予め削除対象とすることにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。
〔7〕<バッファを含まないパスを削除対象から除外>
請求項5または6において、前記クロックツリー内の、バッファを含まない枝を前記除外対象の枝と規定する(ステップ6)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。バッファを含まない枝においては、バッファが削除されることはあり得ないので、これをスキップすることにより、無駄な実行時間を節約することができる。
〔8〕<配置配線後の設計データを対象>
項1乃至7のうちの1項において、配置配線(ステップ14)後の設計データを対象とする。
これにより、より正確な遅延値に基づいてバッファを削除することができる。
〔9〕<バッファ削除後の再配線と遅延値の更新>
項8において、バッファを削除する前記ステップ(ステップ5)を実行した後、前記削除されたバッファの入力を駆動していたバッファから前記削除されたバッファが駆動していたバッファへの配線を配線するステップを実行し、前記配線の容量と抵抗を抽出し前記容量と前記抵抗に基づいて前記削除されたバッファの入力を駆動していた前記バッファの遅延値を算出する(ステップ8)。
これにより、バッファ削除後のタイミング解析、例えば別のバッファを対象としてさらなるバッファ削除(ステップ15)を実行しようとするときのタイミング解析を正確に行うことができる。
〔10〕<タイミング規定回路とは、FFなど>
請求項1乃至9のうちの1項において、前記タイミング規定回路が、フリップフロップ、ラッチ、クロック同期式メモリ、または、クロックゲーティングのためのゲートである。
これにより、タイミング規定回路がフリップフロップ以外の回路であっても、本LSI設計方法を適用することができる。
〔11〕<1つの分岐から延びるすべての枝に含まれるバッファを対象とする削除>
クロック発生源(200)から複数のタイミング規定回路(FF1〜FF8)まで複数のバッファ(101〜166)を含んで構成されるクロックツリー(100)に対して、以下のステップを実行するLSI設計方法である。
前記クロックツリー内の1つの分岐(24)から、前記分岐から拡がる部分ツリー(41)の末端までに存在するバッファ(131〜136)を対象バッファとする。前記部分ツリーの末端に接続されているタイミング規定回路(FF1〜FF2)を対象タイミング規定回路(51)とし、前記複数のタイミング規定回路のうち前記対象タイミング規定回路以外のタイミング規定回路(FF3〜FF8)を非対象タイミング規定回路(52)とする(ステップ1)。
前記対象タイミング規定回路相互間の全ての信号伝搬経路(62)におけるセットアップ余裕およびホールド余裕を0以上に保つことができる範囲内で、且つ、前記非対象タイミング規定回路を始点とし前記対象タイミング規定回路を終点とする全ての信号伝搬経路(61)におけるセットアップ余裕を0以上に保つことができる範囲内(ステップ3)で、前記対象バッファに含まれる1個または複数のバッファを削除する(ステップ5)。
これにより、タイミング余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減することができる。
〔12〕<予めセットアップ余裕(スラック)≧0に調整>
項11において、バッファを削除する前記ステップに先立って、前記複数のタイミング規定回路相互間のすべての信号伝搬経路におけるセットアップ余裕を0以上に調整するステップ(ステップ11〜14)をさらに含む。
これにより、削除可能なバッファの数を多くすることができる。
〔13〕<クラスタリング>
項11または項12において、バッファを削除する前記ステップに先立って、前記複数のタイミング規定回路のうち、同一の組合せ回路を経由する信号伝搬経路の始点のタイミング規定回路と前記信号伝搬経路の終点のタイミング規定回路とを、同じ分岐から拡がる部分ツリーに接続するステップをさらに含む。
これにより、削除可能なバッファの数をさらに多くすることができる。互いに関連の強い一連の組合せ回路群をまとめて同じ部分ツリーに接続するため、バッファ削除のための条件を満たしやすくなるためである。
〔14〕<複数本の枝から同時にバッファを削除>
項11乃至13のうちの1項において、前記対象タイミング規定回路相互間の信号伝搬経路において、第1の枝から拡がる部分ツリーに接続されるタイミング規定回路を始点とし、第1の枝とは異なる第2の枝から拡がる部分ツリーに接続されるタイミング規定回路を終点とする。そのときのセットアップ余裕およびホールド余裕を0以上に保つことができる範囲内で、前記第1の枝に含まれる前記対象バッファに含まれる1個または複数のバッファと前記第2の枝に含まれる前記対象バッファに含まれる1個または複数のバッファとを削除する。
これにより、1本の枝に含まれるバッファのみを対象とした削除ステップでは削除できないバッファまで削除可能とすることができる。
〔15〕<分岐ごとの繰り返し>
項11乃至14のうちの1項において、前記クロックツリーに含まれるすべての分岐について、バッファを削除する前記ステップを繰り返す。
これにより、クロックツリー内の全てのバッファを対象に、削除可能か否かの判断を行うことができ、より多くのバッファを削除することができる。
〔16〕<クロック発生源に遠い分岐から順次繰り返し>
項15において、前記クロック発生源から遠い分岐から順に、バッファを削除する前記ステップを繰り返す。
これにより、削除可能なバッファの数をさらに多くすることができる。
〔17〕<削除候補の絞込み(削除からの除外対象の指定)>
項15または16において、バッファを削除する前記ステップに先立って除外対象の枝を規定し(ステップ6)、前記対象バッファが前記除外対象の枝に含まれるときに、前記バッファを削除するステップをスキップして次の分岐に移る(ステップ7)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。
〔18〕<電気的最長パスを削除対象から除外>
項17において、前記クロックツリー内の、電気的設計ルールに対する余裕の最も少ない経路にある枝を、前記除外対象の枝と規定する(ステップ6)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。
〔19〕<バッファを含まないパスを削除対象から除外>
項17または項18において、前記クロックツリー内の、バッファを含まない枝を前記除外対象の枝と規定する(ステップ6)。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。バッファを含まない枝においては、バッファが削除されることはあり得ないので、これをスキップすることにより、無駄な実行時間を節約することができる。
〔20〕<タイミング規定回路とは、FFなど>
項11乃至19のうちの1項において、前記タイミング規定回路が、フリップフロップ、ラッチ、クロック同期式メモリ、または、クロックゲーティングのためのゲートである。
これにより、タイミング規定回路がフリップフロップ以外の回路であっても、本LSI設計方法を適用することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
〔実施形態1〕
図1と図2は、実施形態1を適用したLSI設計方法を表す設計フローであり、図1はその中核部分、図2は中核部分を含む設計フロー全体である。図4は実施形態1によるバッファの削除方法の一例を示す説明図、図5はそのバッファの削除のためのタイミング解析の一例を示す説明図である。
実施形態1を適用したLSI設計方法を表す設計フローについて、図1を参照して説明する。
本実施形態においては、クロックツリーの分岐点に着目し、その分岐点から延びる複数の枝のうちの1本に含まれるクロックバッファを対象として、削除が可能かどうかを判定するステップを含む。
ステップ1は、分岐点サーチである。クロックツリー内の1つの分岐と、その分岐から延びる1つの枝において次の分岐との間に存在するバッファを削除候補の対象バッファとする。着目する枝から拡がるクロックツリーの末端に接続されているFFを対象FFとし、それ以外のFFを非対象FFとする。
ステップ3は、バッファが削除可能かどうかを判定するためのタイミング解析である。対象バッファのうちのいくつかを削除したと仮定したときに、非対象FFを始点とし対象FFを終点とするすべての信号伝搬経路におけるセットアップ余裕を0以上に保つことができる範囲内にあるか否かのタイミング解析を行う。
ステップ5は、バッファ削除である。上記タイミング解析の結果に基づいて、対象バッファの中から1個乃至複数個のバッファを削除する。上記タイミング解析の結果、バッファを削除するとセットアップ余裕を0以上に保つことができないと判断した場合には、バッファの削除は実行しない。
以上のステップは、実施形態1を適用したLSI設計方法を表す設計フローの中核部分であって、図2に示すように、LSIの設計フローにおいて、論理合成(ステップ11)、配置(ステップ12)、クロックツリー生成(CTS)(ステップ13)、配線(ステップ14)の後に実行するのが好適である。バッファ削除(ステップ15)の後で検証(ステップ16)を実行する。論理合成(ステップ11)、CTS(ステップ13)の後、配置配線(ステップ12、14)の前に、バッファ削除(ステップ15)を実行してもよい。後者の場合は、レイアウト前にバッファ削除ステップを行うため、そのタイミング解析(ステップ3)において、レイアウト情報から抽出した配線容量と配線抵抗に基づく遅延値を参照することができない。配線容量と配線抵抗を仮定してモデル化した遅延値を仮定して実行する。一般にモデル化した遅延値は、マージンを大きくとるので、図2に示したように、配置配線後にバッファ削除(ステップ15)を実行した方が、ステップ3でバッファを削除することができると判断される確率は高く、より多くのバッファを削除することができる。バッファの削除(ステップ15)が完了した後は、デザインルールチェック(DRC)、レイアウトと回路図の照合(LVS)などの検証を行って(ステップ16)設計フローを終了する。
バッファ削除(ステップ15)を実行する前には、全てのFF間でのセットアップ余裕(スラック)を0以上に調整しておくと良い。タイミング解析(ステップ3)において、バッファを削除してもスラックが0以上に保持できるか否かを判断しているので、削除前のスラックが負であるとバッファを削除することができないからである。
タイミング解析(ステップ3)について、詳述する。対象バッファを削除すると、非対象FFを始点とし対象FFを終点とするすべての信号伝搬経路におけるセットアップ余裕即ちスラックが、削除したバッファの遅延分だけ減る。対象バッファの中から、その合計の遅延値がスラックの値を超えない遅延値を持つバッファを削除することができる。一方、その他の信号伝搬経路については考慮する必要がない。対象FFを始点とし非対象FFを終点とする信号伝搬経路のスラックは、対象バッファからのバッファの削除によってむしろ増加する。始点である対象FFからの出力タイミングが、対象バッファの削除によって早まるからである。非対象FF相互間および対象FF相互間の信号伝搬経路のスラックは、対象バッファからのバッファの削除によって変動しない。非対象FFへのクロックの到達時間は、対象バッファの削除によって変化せず、対象FFへのクロックの到達時間は、対象バッファの削除によって一律に早まるからである。
本実施形態において、対象バッファ、対象と非対象のFFを上記のように規定することによって、バッファの削除によってスラックに影響が現れる組合せ回路と影響を受けない組合せ回路とに、明確に区別できるようになり、スラックが悪化する経路にのみ注目すれば足りることを明らかにしている。これにより、クロックツリーにおけるバッファの削除を、系統的に実施することができることとなった。
図4を参照して、具体的に例示して説明する。ステップ4において着目した分岐を22、着目した枝を31とする。着目した枝31の次の分岐24までに含まれるバッファ111、112、113が対象バッファである。着目した枝31から拡がる部分ツリー41の末端に接続されているFF1、FF2が対象FF(51)であり、それ以外のFF3、FF4、FF5、FF6、FF7、FF8が非対象FF(52)である。FF間には組合せ回路が存在するが、非対象FFを始点とし対象FFを終点とする組合せ回路61、対象FFどうしを始点および終点とする組合せ回路62、対象FFを始点とし非対象FFを終点とする組合せ回路63、および、非対象FFどうしを始点および終点とする組合せ回路64のみを代表して示した。
本実施形態で利用しているのは、対象バッファ111、112、113を何個削除しても、組合せ回路62、64のスラックには影響しないという特性である。
組合せ回路64は、クロックツリーにおいて対象バッファの削除によって影響を受けない位置に接続されている。組合せ回路62に対しては、削除するバッファの遅延時間だけ、始点と終点のクロック到達時刻を早めるが、始点と終点について等しく早めるに過ぎないので、スラックには影響しない。組合せ回路63については、対象FFを始点としているので、始点における出力が早まることになり、スラック即ち余裕は大きくなる。
一方、組合せ回路61は、非対象FFを始点として対象FFを終点としているので、対象バッファの削除によって、始点へのクロック到達時刻が変化しないのに対して、終点へのクロック到達時刻が早まる。スラックは、削除したバッファの遅延時間分だけ、余裕を減らすことになる。逆に言うと、組合せ回路61のように、非対象FFを始点として対象FFを終点としている信号伝搬遅延のスラックにのみ着目して、このスラックが負にならない限り対象バッファから1個乃至複数のバッファを削除することができる。非対象FFを始点とし対象FFを終点とするすべての信号伝搬経路のうち、ワーストケースとなったFFペアについて、スラックが負にならないように、対象バッファから1個乃至複数のバッファを削除するとよい。ワーストケースのペアのスラックが負にならなければ、他のペアのスラックは負にならないことは明らかだからである。
図5に、バッファの削除のためのタイミング解析(ステップ3)の一例をさらに詳細に示す。非対象FF52から対象FF51への信号伝搬経路のうち、ワーストケースとなったFFペアを示したものである。ここで、タイミング解析において、スラックを求める式は、下記のとおりである。
スラック=(対象FFまでのクロック遅延+クロック周期)−(非対象FFまでのクロック遅延+データパスにおける信号伝搬遅延)
図5において、スラック=(265+300)−(275+220)=70psと算出される。ここで、クロック周期を300psとし、FF自体が要求するセットアップ余裕は、説明を簡略化するために無視している。非対象FFであるFF3を始点とし、対象FFであるFF2を終点とする組合せ回路61の信号伝搬遅延は220psである。FF3へのクロック遅延が265ps、FF2へのクロック遅延が270psであるので、スラックは70psとなる。対象バッファからは、70psの遅延に相当する分のバッファを削除してもよいことになる。111と112を削除すると遅延の合計は50psなので、スラックは20psとなる。112と113を削除すると遅延の合計は55psなのでスラックは15psとなる。111、112および113の3個の対象バッファの遅延の合計80psなので、仮に3個すべてを削除すると、スラックは−10psとなり、セットアップ違反となるから、すべてを削除することはできない。上記ワーストケースとなったFFペアについてさえ、スラックが負にならない限り、タイミング違反を発生させずにバッファを削減することができ、クロックツリーによる消費電力を削減することができる。
これにより、セットアップ余裕がある限り、より積極的にクロックツリー上のバッファを削減して、クロックツリーにおける消費電力を削減することができる。CTS(ステップ13)の結果、スキューを0にするため、クロックツリーはクロック発生源から全てのFFまでの遅延を一定とするように調整されている。本実施形態では、削除してもセットアップ違反を発生させないバッファを解析的かつ効率的に判定して削除することができる。
以上は、タイミング規定点がFFである場合についてのみ説明したが、タイミング規定点がラッチ、同期式クロック、クロックゲーティングのためのゲートであっても、同様に本実施形態を適用することができる。以下の変形例においても同様である。
〔実施形態1の変形(全ての分岐・枝についてバッファ削除ステップの繰返し)〕
図3は、実施形態1に種々の変形を適用したLSI設計方法を表す設計フローである。
全ての分岐・枝についてバッファ削除ステップを繰返すため、分岐点サーチ(ステップ1)の後に全ての分岐点をサーチしたか否かの判断ステップ(ステップ2)を設ける。クロックツリー内の全ての分岐を順次選び、その分岐から延びる全ての枝を順次選んでバッファを削除するステップ(ステップ3〜5)を繰り返し実施する。
必ずしもクロックツリー内のすべての分岐点を順次判定対象とする必要はないが、クロックツリー内の全てのバッファを網羅的に判定対象とし、本実施形態のアルゴリズムで削除可能なバッファを漏れなく削除することができる。
サーチする順序に特に制限はないが、一つの分岐から延びる枝を順次判定対象とした後、着目する分岐点をクロック発生源に近い上流側から下流側に、順次移すとより好適である。上流側を優先することにより、より広範囲のタイミング解析から順次削除対象バッファを抽出していくことができるので、より多くのバッファが削除できる可能性が高まる。
〔実施形態1の変形(削除候補絞込み)〕
分岐点サーチに先立って、信頼性などの別の要因で削除することが許されないバッファ、枝、もしくは分岐点を除外対象として指定しておき、削除候補を予め絞り込むことによって、全体の実行時間を短縮することができる。図3に示すように、削除候補絞込み(ステップ6)と対象バッファが除外対象か否かの判断(ステップ7)を追加する。
削除候補絞込み(ステップ6)は、分岐点サーチ(ステップ1)に先立って、削除することができないバッファ、枝、もしくは分岐点を除外対象として指定する。分岐点サーチ(ステップ1)の後、着目した分岐、枝、対象バッファが、ステップ9で指定された除外対象か否かの判断を行い(ステップ7)、除外対象であれば、その後のタイミング解析(ステップ3)、バッファ削除(ステップ5)を実行せずに分岐点サーチ(ステップ1)に戻る。
除外対象には、例えば、電気的設計ルールに対する余裕が最も小さいクロック伝搬経路に配置されたクロックバッファを指定することができる。
CTS(ステップ13)では、クロック発生源200から末端のFFまでの遅延を等しくするように調整する。そのため、クロック遅延は、クロック発生源から最も遠いFFまでの遅延と等しくなるように調整される。このとき、クロックツリー内の最も遠いFFまでのクロック伝搬経路は、電気的設計ルールが許す限り遅延が最も小さくなるように設計される。最大の遅延がクロックツリー全体の遅延になるため、これを最小に設計することがクロックツリー全体の遅延を小さくし、回路規模や消費電力を抑えることにつながるからである。したがって、クロックツリー内の最も遠いFFまでのクロック伝搬経路が、結果的に電気的設計ルールに対する余裕が最も小さい経路になっていることが多い。電気的設計ルールとは、例えば、波形の立上りおよび立下り時間を所定の時間内以下に制限する規定など、信頼性を担保するためなどの目的で速度性能の仕様とは別に設けられているルールを指す。このクロック伝搬経路内のクロックバッファは、削除することが許されない。仮に削除すると、電気的設計ルールに違反し、場合によってはLSI全体の信頼性を保てなくなるからである。このようなクロック伝搬経路は、除外対象の枝と、また、これに含まれるバッファは除外対象のバッファと、それぞれ指定することができる。この他、何らかの理由で削除することが許されないバッファがあれば、同様に除外対象に指定しておく。
クロックツリーの中には、バッファを含まない枝が存在する。このような枝は、そもそも削除すべきバッファが存在しないのであるから、除外対象として指定する。
これにより、コンピュータの無駄な実行時間を節約し、短時間で設計方法を実施することができる。原理的に削除することが許されないバッファ、枝または分岐点については、タイミング解析(ステップ3、4)を実行しないで済ませることができるからである。
〔実施形態1の変形(バッファ削除後の再配線と遅延値の更新)〕
バッファが削除されたことによって、配線が変更され、削除されたバッファの前後において、遅延値が変動する。これに対応するために、図3に示すように、再配線・遅延値更新(ステップ8)を追加する。
再配線・遅延値更新(ステップ8)は、変化した配線部分について容量と抵抗を抽出し、それに基づいて遅延計算をやり直してその配線を駆動するバッファの遅延時間を更新する。その他についてはバッファ削除前の遅延値をそのまま使用することにより、一連の処理時間を増大させない。
図6は、バッファを削除する前後におけるタイミング解析の例である。対象バッファ31のうち、バッファ112を削除した場合、バッファ削除前(a)において、バッファ112方向に折れ曲がっていた配線251、252が、バッファの削除に伴って再配線され、バッファ112を削除した後(b)には長い直線253となる。バッファ111にとっての負荷容量と配線抵抗が、配線251から配線253に置き換わるので、バッファ111の遅延時間を、配線253による負荷容量と配線抵抗を抽出して再計算して更新する。
これにより、バッファ削除後のタイミング解析、例えば分岐点サーチ(ステップ1、2)により別のバッファを対象としてさらなるバッファ削除(ステップ15)を実行しようとするときのタイミング解析(ステップ3)を正確に行うことができる。
タイミング解析(ステップ3)では、再配線前の遅延値の加減算のみに基づいて、バッファを削除することができるか否かの判断をするが、その後、再配線と遅延値の更新を行うと、正確にはその判断を再確認する必要がある。タイミング解析(ステップ3)の段階で、対象バッファからのバッファの削除を仮定したときに、再配線と関連するバッファの遅延値の更新を仮定して、バッファ削除の可否を判断することもできる。また、実際には再配線と容量、抵抗の抽出を行わず、簡易的なモデル化により更新後の遅延値を推定することもできる。
〔実施形態2〕
実施形態1では、分岐点から延びる枝が複数あるときに、そのうちの1本の枝に着目して、対象バッファ、対象FFを規定し、削除するバッファを決めた。本実施形態は、1つの分岐点から延びる複数の枝に同時に着目して対象バッファと対象FFを規定し、削除するバッファを決めるものである。
設計フローの中核部分は図1と同様であり、LSIの設計フローにおいて挿入できるステップも図2に示し実施形態1で説明した通りである。さらに、種々の変形についても、図3およびそれを引用して説明した実施形態1と同様である。以下、実施形態1と相違する点を中心に説明する。
図7を参照して、本実施形態によるバッファの削除方法を説明する。
クロック発生源200、クロックツリー100、およびタイミング規定回路としてのFF1〜FF8は、図4に示したものと同様である。また、FF間の組合せ回路は、適宜図示を省略してある。
クロックツリー内の1つの分岐24に着目する。その分岐から拡がる部分ツリー41の末端までに存在するバッファ131〜136を対象バッファとする。部分ツリー41の末端に接続されているタイミング規定回路FF1〜FF2を対象FF51とし、それ以外のタイミング規定回路FF3〜FF8を非対象FF52とする。
対象FF相互間のすべての信号伝搬経路におけるセットアップ余裕およびホールド余裕を0以上に保つことができる範囲内で、且つ、非対象FFを始点とし対象FFを終点とするすべての信号伝搬経路におけるセットアップ余裕を0以上に保つことができる範囲内で、対象バッファに含まれる1個または複数のバッファを削除する。
図8を参照して、より具体的に説明する。図8は、実施形態2によるバッファの削除のためのタイミング解析の一例を示す説明図である。非対象FFであるFF3を始点とし、対象FFであるFF2を終点とする組合せ回路61の信号伝搬遅延は220psである。FF3へのクロック遅延が275ps、FF2へのクロック遅延が265psであるので、クロック周期を300psとしたときのスラックは70psとなる。対象バッファからは、70ps分のバッファを削除してもよいことになる。一方、対象FF相互間の信号伝搬経路の例としてFF2からFF1に至る組合せ回路62の信号伝搬遅延は270psである。FF2へのクロック遅延が265ps、FF1へのクロック遅延が275psであるので、スラックは40psとなる。ここで、対象バッファからは、例えば、バッファ135とバッファ136、バッファ132と133を削除することができる。バッファ135とバッファ136を削除することにより、組合せ回路61のスラックが70psから20psに減るが、0以上であるから、セットアップ違反には至らない。このとき、バッファ135とバッファ136を削除しただけでは、対象FF相互間の信号伝搬経路で、タイミング制約違反が発生する可能性があるので、対象FFに至る対象バッファは、できるだけ一律に削除するようにする。図8の例では、FF1に至るクロック遅延からもバッファ132と133を削除する。FF1へ至るクロック遅延は275psから210psになり、組合せ回路62の信号伝搬遅延のスラックは、40psから30psに減る。
これにより、実施形態1よりも多くのバッファを削除することができる。実施形態1では、対象FFに対する部分ツリーにおいて対象FFに共通する部分のバッファを削除することにより、対象FF相互間のスラックを全く変化させないで、バッファ削除の可否を判断した。そのため、対象FF相互間の信号伝搬遅延については、タイミング解析(ステップ3)の対象外とすることができた。その一方、部分ツリーにおいて対象FFに共通する部分、即ち1本の枝に含まれるバッファを削除することができるに過ぎない。
本実施形態2では、実施形態1とは異なり、複数の枝から同時にバッファを削除することができるので、消費電力を削減する効果が高い。一方、複数の枝で一律にバッファを削除することは、現実には不可能で、クロック遅延の減少量にばらつきが生じる。このため、複数のバッファを削除したものと仮定してタイミング解析(ステップ3)を実行し、対象FF相互間のセットアップおよびホールド違反が生じないことも検証しながら、削除を行う必要がある。ただし、対象FF相互間に限ったタイミング解析でよいので、LSI全体のSTAよりもはるかに短時間で済む。
〔実施形態2の変形(全ての分岐についてバッファ削除ステップの繰返し)〕
図3に示したとおり、実施形態1と同様に、全ての分岐・枝についてバッファ削除ステップを繰返すため、分岐点サーチ(ステップ1)の後に全ての分岐点をサーチしたか否かの判断ステップ(ステップ2)を設ける。クロックツリー内の全ての分岐を順次選び、その分岐から延びる全ての枝に含まれるバッファを対象として削除ステップ(ステップ3〜5)を繰り返し実施する。
分岐点サーチの順序について特に制限はないが、実施形態1において、クロック発生源200に近い上流側から下流側へサーチしたのに対し、実施形態2においては、下流のFF側からサーチするのが好適である。これにより、実施形態1よりも多くのバッファを削除することができる。
〔実施形態2の変形(クラスタリング)〕
本実施形態2においては、対象FFを駆動する複数の枝に含まれるバッファを同時に削除することにより、対象FF相互間のスラックの変動は小さく抑えることができる。一方、対象FFと非対象FFとの間のスラックの変動は大きい。
対象FFと非対象FFとの間に多くの信号伝搬経路が存在し、かつそれらのセットアップ余裕(スラック)が小さいと、ステップ3、4においてバッファの削除条件を満たすと判断される確率が低くなる。これを解消するために、CTS(ステップ13)において、同一の組合せ回路を経由する信号伝搬経路の始点と終点のFFとを、同じ分岐から拡がる部分ツリーに接続する処理を行うとよい。複数のFFを入力とし別の複数のFFを出力とするような、例えば、ALUのような組合せ回路は、他の組合せ回路との信号の入出力が少ないため、入力FF群と出力FF群とを一つの部分ツリーで駆動するように構成するとよい。この処理は、クラスタリングと呼ばれている。相互に関係の深いFFを物理的に近くに配置することができ、配線が長くなることを予防することができるなどの利点があって、一般に採用されている。
本実施形態2において、バッファ削除(ステップ15)に先立ってクラスタリングを実行しておけば、スラック変動の大きい非対象FFと対象FFの間の信号伝搬経路が少なくなることが期待される。また、上記ALUの例の場合には、他の回路からの信号伝搬経路は、動作モード設定信号などのようにスラックが十分に大きい信号伝搬経路であることが期待される。したがって、クラスタリングされたFFを対象とするバッファ削除は、削除できるバッファの数が比較的多くなることが期待される。
なお、クラスタリングは、実施形態2においてより有効に作用するが、実施形態1に適用しても有効である。バッファの削除によって、対象FF相互間のスラックを変動させず、非対象FFと対象FFの間のスラックのみを変動させる点では、実施形態1も同様だからである。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、実施の形態においては、1つのクロック系統についてのみクロックツリーからのクロックバッファの削除を行う設計方法を説明したが、複数のクロック系統を備えるLSIにおいて、ぞれぞれのクロック系統のクロックツリーに本実施形態を適用することができる。
1 分岐点サーチ
3 タイミング解析
5 バッファ削除
6 削除候補絞込み
8 再配線・遅延値更新
11 論理合成
12 配置
13 クロックツリー合成(CTS)
14 配線
15 バッファ削除
16 検証(DRC/LVS)
100 クロックツリー
200 クロック発生源
101〜166 バッファ
21〜27 分岐
31 枝
41 部分ツリー
51 対象FF
52 非対象FF
61、62、63、64 組合せ回路
251、252、253 配線

Claims (20)

  1. クロック発生源から複数のタイミング規定回路まで複数のバッファを含んで構成されるクロックツリーに対して、
    前記クロックツリー内の1つの分岐と、前記分岐から前記タイミング規定回路方向に延びる1つの枝における次の分岐との間に存在するバッファを対象バッファとし、前記枝から拡がるクロックツリーの末端に接続されているタイミング規定回路を対象タイミング規定回路とし、前記複数のタイミング規定回路のうち前記対象タイミング規定回路以外のタイミング規定回路を非対象タイミング規定回路とし、
    前記非対象タイミング規定回路を始点とし前記対象タイミング規定回路を終点とするすべての信号伝搬経路におけるセットアップ余裕を0以上に保つことができる範囲内で、前記対象バッファに含まれる1個または複数のバッファを削除するステップを含む、LSI設計方法。
  2. 請求項1において、バッファを削除する前記ステップに先立って、前記複数のタイミング規定回路相互間のすべての信号伝搬経路におけるセットアップ余裕を0以上に調整するステップをさらに含む、LSI設計方法。
  3. 請求項1において、前記クロックツリー内の全ての分岐を順次選び、前記分岐から延びる全ての枝を順次選んでバッファを削除する前記ステップを繰り返し実施する、LSI設計方法。
  4. 請求項3において、前記分岐の選択は、前記クロック発生源に近い分岐を先に選択する、LSI設計方法。
  5. 請求項3において、バッファを削除する前記ステップに先立って除外対象の枝を規定し、前記対象バッファが前記除外対象の枝に含まれるときに、前記バッファを削除するステップをスキップして次の分岐に移る、LSI設計方法。
  6. 請求項5において、前記クロックツリー内の、電気的設計ルールに対する余裕の最も少ない経路にある枝を、前記除外対象の枝と規定する、LSI設計方法。
  7. 請求項5において、前記クロックツリー内の、バッファを含まない枝を前記除外対象の枝と規定する、LSI設計方法。
  8. 請求項1において、配置配線後の設計データを対象とする、LSI設計方法。
  9. 請求項8において、バッファを削除する前記ステップを実行した後、前記削除されたバッファの入力を駆動していたバッファから前記削除されたバッファが駆動していたバッファへの配線を配線するステップを実行し、前記配線の容量と抵抗を抽出し前記容量と前記抵抗に基づいて前記削除されたバッファの入力を駆動していた前記バッファの遅延値を算出する、LSI設計方法。
  10. 請求項1において、前記タイミング規定回路が、フリップフロップ、ラッチ、クロック同期式メモリ、または、クロックゲーティングのためのゲートである、LSI設計方法。
  11. クロック発生源から複数のタイミング規定回路まで複数のバッファを含んで構成されるクロックツリーに対して、
    前記クロックツリー内の1つの分岐から、前記分岐から拡がる部分ツリーの末端までに存在するバッファを対象バッファとし、前記部分ツリーの末端に接続されているタイミング規定回路を対象タイミング規定回路とし、前記複数のタイミング規定回路のうち前記対象タイミング規定回路以外のタイミング規定回路を非対象タイミング規定回路とし、
    前記対象タイミング規定回路相互間のすべての信号伝搬経路におけるセットアップ余裕およびホールド余裕を0以上に保つことができる範囲内で、且つ、前記非対象タイミング規定回路を始点とし前記対象タイミング規定回路を終点とするすべての信号伝搬経路におけるセットアップ余裕を0以上に保つことができる範囲内で、前記対象バッファに含まれる1個または複数のバッファを削除するステップを含む、LSI設計方法。
  12. 請求項11において、バッファを削除する前記ステップに先立って、前記複数のタイミング規定回路相互間のすべての信号伝搬経路におけるセットアップ余裕を0以上に調整するステップをさらに含む、LSI設計方法。
  13. 請求項11において、バッファを削除する前記ステップに先立って、前記複数のタイミング規定回路のうち、同一の組合せ回路を経由する信号伝搬経路の始点のタイミング規定回路と前記信号伝搬経路の終点のタイミング規定回路とを、同じ分岐から拡がる部分ツリーに接続するステップをさらに含む、LSI設計方法。
  14. 請求項11において、
    前記対象タイミング規定回路相互間の信号伝搬経路において、第1の枝から拡がる部分ツリーに接続されるタイミング規定回路を始点とし、第1の枝とは異なる第2の枝から拡がる部分ツリーに接続されるタイミング規定回路を終点とするセットアップ余裕およびホールド余裕を0以上に保つことができる範囲内で、前記第1の枝に含まれる前記対象バッファに含まれる1個または複数のバッファと前記第2の枝に含まれる前記対象バッファに含まれる1個または複数のバッファとを削除する、LSI設計方法。
  15. 請求項11において、前記クロックツリーに含まれるすべての分岐について、バッファを削除する前記ステップを繰り返す、LSI設計方法。
  16. 請求項15において、前記クロック発生源から遠い分岐から順に、バッファを削除する前記ステップを繰り返す、LSI設計方法。
  17. 請求項15において、バッファを削除する前記ステップに先立って除外対象の枝を規定し、
    前記対象バッファが前記除外対象の枝に含まれるときに、前記バッファを削除するステップをスキップして次の分岐に移る、LSI設計方法。
  18. 請求項17において、前記クロックツリー内の、電気的設計ルールに対する余裕の最も少ない経路にある枝を、前記除外対象の枝と規定する、LSI設計方法。
  19. 請求項17において、前記クロックツリー内の、バッファを含まない枝を前記除外対象の枝と規定する、LSI設計方法。
  20. 請求項11において、前記タイミング規定回路が、フリップフロップ、ラッチ、クロック同期式メモリ、または、クロックゲーティングのためのゲートである、LSI設計方法。
JP2012036097A 2012-02-22 2012-02-22 Lsi設計方法 Expired - Fee Related JP5883676B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012036097A JP5883676B2 (ja) 2012-02-22 2012-02-22 Lsi設計方法
US13/769,885 US9141739B2 (en) 2012-02-22 2013-02-19 LSI design method
US14/833,562 US20150363530A1 (en) 2012-02-22 2015-08-24 Lsi design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012036097A JP5883676B2 (ja) 2012-02-22 2012-02-22 Lsi設計方法

Publications (2)

Publication Number Publication Date
JP2013171503A true JP2013171503A (ja) 2013-09-02
JP5883676B2 JP5883676B2 (ja) 2016-03-15

Family

ID=48983353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012036097A Expired - Fee Related JP5883676B2 (ja) 2012-02-22 2012-02-22 Lsi設計方法

Country Status (2)

Country Link
US (2) US9141739B2 (ja)
JP (1) JP5883676B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8887114B2 (en) * 2013-03-13 2014-11-11 Synopsys, Inc. Automatic tap driver generation in a hybrid clock distribution system
KR20140133123A (ko) * 2013-05-09 2014-11-19 삼성디스플레이 주식회사 지연 파라미터 추출 장치 및 방법
US9405880B2 (en) * 2014-05-16 2016-08-02 Taiwan Semiconductor Manufacturing Company Limited Semiconductor arrangement formation
US9405871B1 (en) * 2014-12-05 2016-08-02 Xilinx, Inc. Determination of path delays in circuit designs
US10050610B2 (en) 2015-03-10 2018-08-14 Qualcomm Incorporated Clock distribution schemes with wide operating voltage ranges
US10078722B2 (en) 2016-06-13 2018-09-18 International Business Machines Corporation Dynamic microprocessor gate design tool for area/timing margin control
US10289775B1 (en) * 2017-09-01 2019-05-14 Cadence Design Systems, Inc. Systems and methods for assigning clock taps based on timing
US10860775B1 (en) 2019-04-15 2020-12-08 Cadence Design Systems, Inc. Clock pin to clock tap assignment based on circuit device connectivity
KR20210026965A (ko) 2019-09-02 2021-03-10 삼성전자주식회사 클럭 트리를 포함하는 이미지 센서 및 어드레스 디코더, 이미지 센서를 포함하는 이미지 처리 시스템
US11526650B1 (en) * 2021-03-31 2022-12-13 Cadence Design Systems, Inc. Switching power aware driver resizing by considering net activity in buffering algorithm
US11620428B1 (en) * 2021-05-07 2023-04-04 Cadence Design Systems, Inc. Post-CTS clock tree restructuring

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326303A (ja) * 1997-05-23 1998-12-08 Nec Corp クロック分配方式
JP2008140821A (ja) * 2006-11-30 2008-06-19 Matsushita Electric Ind Co Ltd 半導体装置および半導体装置の設計方法
JP2008152550A (ja) * 2006-12-18 2008-07-03 Seiko Epson Corp 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器
JP2009016487A (ja) * 2007-07-03 2009-01-22 Toshiba Corp 回路設計方法及び回路設計支援装置
JP2012014585A (ja) * 2010-07-02 2012-01-19 Renesas Electronics Corp 半導体設計装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system
JP2877128B2 (ja) * 1997-02-13 1999-03-31 日本電気株式会社 レイアウト方法及び装置
US6651224B1 (en) * 1998-01-26 2003-11-18 Fujitsu Limited Method of optimizing signal lines within circuit, optimizing apparatus, recording medium having stored therein optimizing program, and method of designing circuit and recording medium having stored therein program for designing circuit
US6574781B1 (en) * 2000-08-21 2003-06-03 Oki Electric Industry Co., Ltd. Design methodology for inserting RAM clock delays
JP2002108962A (ja) 2000-09-27 2002-04-12 Nec Microsystems Ltd 半導体集積回路の設計方法およびその記録媒体
US6550044B1 (en) * 2001-06-19 2003-04-15 Lsi Logic Corporation Method in integrating clock tree synthesis and timing optimization for an integrated circuit design
JP4118536B2 (ja) * 2001-07-03 2008-07-16 株式会社東芝 クロック遅延設定方法
US6941533B2 (en) * 2002-10-21 2005-09-06 Lsi Logic Corporation Clock tree synthesis with skew for memory devices
US6910196B2 (en) * 2003-05-08 2005-06-21 Intel Corporation Clocked and non-clocked repeater insertion in a circuit design
JP2005093563A (ja) * 2003-09-12 2005-04-07 Matsushita Electric Ind Co Ltd 半導体集積回路およびその設計方法
JP2006031141A (ja) 2004-07-13 2006-02-02 Fujitsu Ltd 集積回路装置のセットアップ・タイミング・エラー修正方法及びセットアップ・タイミング・エラー修正プログラム
US7216322B2 (en) * 2004-09-07 2007-05-08 Chang Gung University Clock tree synthesis for low power consumption and low clock skew
US7810061B2 (en) * 2004-09-17 2010-10-05 Cadence Design Systems, Inc. Method and system for creating a useful skew for an electronic circuit
JP2006319162A (ja) 2005-05-13 2006-11-24 Fujitsu Ltd クロックツリー作成方法およびクロックツリー作成プログラム
EP1816577A1 (en) * 2006-02-03 2007-08-08 STMicroelectronics (Research & Development) Limited A method of making an integrated circuit including a clock tree
JP2007243912A (ja) * 2006-02-07 2007-09-20 Renesas Technology Corp 半導体集積回路
JP2008218730A (ja) * 2007-03-05 2008-09-18 Nec Electronics Corp 半導体装置の設計方法及び設計プログラム
US7739642B2 (en) * 2007-05-02 2010-06-15 Cadence Design Systems, Inc. Optimizing integrated circuit design through balanced combinational slack plus sequential slack
JP2011164684A (ja) * 2010-02-04 2011-08-25 Toshiba Corp 設計装置、設計方法、及び設計プログラム
JP2011238163A (ja) * 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラム
US8584065B2 (en) * 2011-05-05 2013-11-12 Advanced Micro Devices, Inc. Method and apparatus for designing an integrated circuit
CN102799698B (zh) * 2011-05-26 2014-07-23 国际商业机器公司 一种用于专用集成电路的时钟树规划的方法和系统
US20130043924A1 (en) * 2011-08-16 2013-02-21 The Aerospace Corporation Systems, Methods, and Apparatus for High-Speed Signal Buffer Circuitry
CN104969226B (zh) * 2012-12-26 2018-08-28 美商新思科技有限公司 跨管线的时序瓶颈分析以利用有用偏差引导优化
EP2765474B1 (en) * 2013-02-12 2015-05-20 Nxp B.V. Clock buffer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326303A (ja) * 1997-05-23 1998-12-08 Nec Corp クロック分配方式
JP2008140821A (ja) * 2006-11-30 2008-06-19 Matsushita Electric Ind Co Ltd 半導体装置および半導体装置の設計方法
JP2008152550A (ja) * 2006-12-18 2008-07-03 Seiko Epson Corp 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器
JP2009016487A (ja) * 2007-07-03 2009-01-22 Toshiba Corp 回路設計方法及び回路設計支援装置
JP2012014585A (ja) * 2010-07-02 2012-01-19 Renesas Electronics Corp 半導体設計装置

Also Published As

Publication number Publication date
JP5883676B2 (ja) 2016-03-15
US20150363530A1 (en) 2015-12-17
US20130219352A1 (en) 2013-08-22
US9141739B2 (en) 2015-09-22

Similar Documents

Publication Publication Date Title
JP5883676B2 (ja) Lsi設計方法
US8453085B2 (en) Method for estimating the latency time of a clock tree in an ASIC design
US10776547B1 (en) Infinite-depth path-based analysis of operational timing for circuit design
US8788995B1 (en) System and method for guiding remedial transformations of a circuit design defined by physical implementation data to reduce needed physical corrections for detected timing violations in the circuit design
US9251300B2 (en) Methods and tools for designing integrated circuits with auto-pipelining capabilities
US6799308B2 (en) Timing analysis of latch-controlled digital circuits with detailed clock skew analysis
US8327308B2 (en) Method and apparatus for designing integrated circuit
Roy et al. Clock tree resynthesis for multi-corner multi-mode timing closure
US7917882B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
Lee et al. Contango: Integrated optimization of SoC clock networks
US10318684B2 (en) Network flow based framework for clock tree optimization
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
US11003821B1 (en) Deterministic loop breaking in multi-mode multi-corner static timing analysis of integrated circuits
US9165105B2 (en) Rule checking for confining waveform induced constraint variation in static timing analysis
US6718523B2 (en) Reduced pessimism clock gating tests for a timing analysis tool
Chan et al. OCV-aware top-level clock tree optimization
US9110689B2 (en) Automatic pipeline stage insertion
US8776003B2 (en) System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same
US20090259979A1 (en) Design tool and method for automatically identifying minimum timing violation corrections in an integrated circuit design
US20060041852A1 (en) Targeted optimization of buffer-tree logic
US10902167B1 (en) Feedback-aware slack stealing across transparent latches empowering performance optimization of digital integrated circuits
US10372851B2 (en) Independently projecting a canonical clock
Huang et al. Timing-driven cell placement optimization for early slack histogram compression
US8336013B2 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations
JP2004280439A (ja) クロストークノイズ検出方法、並びに半導体集積回路の設計方法及び設計検証方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151002

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: 20160128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160208

R150 Certificate of patent or registration of utility model

Ref document number: 5883676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees