JP5772990B2 - 設計支援装置,設計支援方法および設計支援プログラム - Google Patents

設計支援装置,設計支援方法および設計支援プログラム Download PDF

Info

Publication number
JP5772990B2
JP5772990B2 JP2013556139A JP2013556139A JP5772990B2 JP 5772990 B2 JP5772990 B2 JP 5772990B2 JP 2013556139 A JP2013556139 A JP 2013556139A JP 2013556139 A JP2013556139 A JP 2013556139A JP 5772990 B2 JP5772990 B2 JP 5772990B2
Authority
JP
Japan
Prior art keywords
buffer
distance
added
neighborhood
circuit
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
Application number
JP2013556139A
Other languages
English (en)
Other versions
JPWO2013114586A1 (ja
Inventor
祐樹 渡辺
祐樹 渡辺
靖雄 天野
靖雄 天野
正志 荒山
正志 荒山
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013556139A priority Critical patent/JP5772990B2/ja
Publication of JPWO2013114586A1 publication Critical patent/JPWO2013114586A1/ja
Application granted granted Critical
Publication of JP5772990B2 publication Critical patent/JP5772990B2/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

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

Description

本件は、設計支援装置,設計支援方法および設計支援プログラムに関する。
一般に、LSI(Large Scale Integration)等の半導体集積回路の設計は、図16に示す手順で行なわれる。図16は、一般的な集積回路の設計手順を概略的に説明するフローチャート(ステップS1〜S7)である。
まず、設計対象回路についての論理設計が行なわれてから(ステップS1)、その論理設計結果に基づき回路素子の配置が行なわれる(ステップS2)。回路素子には、例えばFF(Flip-Flop;順序回路),RAM(Random Access Memory)などが含まれる。
回路素子の配置後、クロック信号を供給されるべき回路素子に対しクロック信号を分配供給するクロック分配回路が生成され配置される(ステップS3)。クロック分配回路には、クロック信号を出力する一つの供給源素子と、この供給源素子から各回路素子に至るまでに配置される複数段のバッファ(クロック分配マクロ)とが含まれる。クロック分配回路が配置されると、配置後のクロック分配回路のクロックスキューが制限範囲内であるか否かが判定される(ステップS4)。なお、クロックスキューは、ある回路素子にクロック信号が到達するタイミングと他の回路素子に同じクロック信号が到達するタイミングとのずれ量である。
クロックスキューが制限範囲内でないと判定された場合(ステップS4のNOルート)、ステップS4でクロックスキューが制限範囲内であると判定されるまで、クロック分配回路の再配置が行なわれる(ステップS5)。ステップS4でクロックスキューが制限範囲内であると判定されると(ステップS4のYESルート)、クロック分配回路の配線が行なわれた後(ステップS6)、クロック分配回路以外の一般回路(回路素子間)の配線が行なわれる(ステップS7)。このようにして得られた設計結果は、物理設計データとしてメモリに格納される。
近年のLSI開発において、クロック周波数は年々高速化の一途を辿り、各FFへクロック信号を分配する際のクロックスキューを調整することが重要になってきている。既に回路を設計した後、つまり図16に示す設計手順で設計対象回路の物理設計データが得られた後に論理変更等によりFF,RAMが追加された場合、クロックスキューを考慮しながら、追加されたFF,RAMに新たにクロック信号を分配する必要がある。追加されたFFやRAMにクロック信号を分配する手法としては、従来、例えば、以下の4通りの手法(1)〜(4)が採られている。以下、追加されるFF,RAMを追加FF/RAMと記載する場合がある。
手法(1): 既存の回路について得られた物理設計データを利用して追加FF/RAMにクロック信号を分配する。具体的には、追加FF/RAMに最も近いバッファに追加FF/RAMが接続され、当該バッファと追加FF/RAMとの間におけるバッファ挿入や迂回配線によって、クロックスキューの調整が行なわれる。
手法(2): 追加FF/RAMを含む回路素子に対しクロック信号を分配供給するクロック分配回路が、再度、生成されて配置され、クロック分配回路以外の回路については、既存の回路について得られた物理設計データにおける接続関係や配置情報が流用される。
手法(3): 回路設計者が、既存の回路について得られた物理設計データを流用し、追加FF/RAMを含む回路素子に対するクロック信号の分配を手作業で行なう。
手法(4): 追加FF/RAM,クロック分配回路および一般回路を含む全ての回路について、図16に示す設計手順(矢印AからステップS2〜S7参照)で、回路素子の配置処理,クロック分配回路の生成/配置処理,配線処理が再度実行される。
しかしながら、上述した手法(1)〜(4)では、以下のような課題がある。
手法(1)では、追加FF/RAMと当該追加FF/RAMに最も近いバッファとの間のディレイ調整が、ディレイ計算を行なった結果に基づくバッファ挿入や配線の迂回により行なわれる。このとき、ディレイ計算には時間がかかるほか、1回の調整でクロックスキューを制限範囲内に入れることは難しく、ディレイ調整を数回繰り返す必要がある。
手法(2)ではクロック分配回路の全てが最初から生成/配置され、手法(4)では全ての回路が最初から生成/配置される。このため、既存の回路に係る物理設計データがあるにもかかわらず、初回設計時と同等の設計時間が必要になり、大規模な回路では、タイミング調整に多大な時間がかかる。
手法(3)では、回路設計者が、手作業で、追加FF/RAMを含む回路素子に対するクロック信号の分配を行なうため、時間がかかる上に、対応できる回路規模に限界がある。
このように、従来の手法では、クロックツリーに関する設計変更が生じた場合、再度、クロック設計をやりなおしたり、クロックツリーの変更箇所について再度ディレイ計算を行なってバッファ挿入や迂回配線による調整を繰り返したりしている。このため、多くの工数がかかり時間を要している。なお、以下では、クロック分配回路のことをクロックツリーと呼ぶ場合がある。
特開2000−57197号公報 特開平11−163148号公報 特願平09−258840号公報
一つの側面で、本件は、物理設計完了後にクロックツリーに変更が生じた場合にクロックツリーを簡便な手法で修正できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
本件の設計支援装置は、バッファを有するクロック分配回路を含む回路の物理設計データを格納するメモリと、プロセッサとを有している。前記プロセッサは、前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記メモリに格納された前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう。
また、本件の設計支援方法は、メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、プロセッサにより設計支援を行なう方法であって、前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう。
さらに、本件の設計支援プログラムは、メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、設計支援を行なうプロセッサに、前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう。
一実施形態によれば、物理設計完了後にクロックツリーに変更が生じた場合にクロックツリーを簡便な手法で修正することが可能になる。
一実施形態の設計支援装置のハードウェア構成および機能構成を示すブロック図である。 本実施形態における最終段バッファの個別最大近傍および個別最小近傍の具体例を説明する図である。 処理対象バッファから次段のFF/RAMまたはバッファまでの距離の分布の例を示す図である。 本実施形態における処理対象バッファの推定最大近傍および推定最小近傍の具体例を説明する図である。 本実施形態における非最終段バッファの最大近傍および最小近傍の具体例を説明する図である。 本実施形態において最終段バッファの近傍範囲外に存在する追加FF/RAMの具体例について説明する図である。 本実施形態における最終段バッファから既存FF/RAMへの配線可能性領域を説明する図である。 本実施形態における追加FF/RAMと複数の配線可能性領域との間の推定最小配線距離を説明する図である。 本実施形態における追加FF/RAMの近傍判定および追加FF/RAMに対するクロック信号配線の具体例を示す図である。 本実施形態における追加FF/RAMの近傍判定および追加FF/RAMに対するクロック信号配線の具体例を示す図である。 本実施形態における追加FF/RAMの近傍判定および追加FF/RAMに対するクロック信号配線の具体例を示す図である。 本実施形態の設計支援機能を適用された集積回路の設計手順を概略的に説明するフローチャートである。 論理変更発生に伴ってFF/RAMが追加された場合における、本実施形態の設計支援機能によるクロック信号分配手順を概略的に説明するフローチャートである。 論理変更発生に伴ってFF/RAMが追加される場合における、本実施形態の設計支援機能によるクロック信号分配手順を詳細に説明するフローチャートである。 論理変更発生に伴ってFF/RAMが追加される場合における、本実施形態の設計支援機能によるクロック信号分配手順を詳細に説明するフローチャートである。 一般的な集積回路の設計手順を概略的に説明するフローチャートである。
以下、図面を参照して実施の形態を説明する。
〔1〕本実施形態の設計支援機能の動作原理
図12および図13を参照しながら、本実施形態の設計支援機能の動作原理について説明する。
まず、図12に示すフローチャート(ステップS1〜S7,S10,S20)に従い、本実施形態の設計支援機能を適用された集積回路の設計手順を概略的に説明する。
本実施形態の設計支援機能では、図12に示すステップS1〜S7によって得られた設計結果が、既存回路の物理設計データとして、メモリ(図1の符号10参照)に保持される。ステップS1〜S7は、図16を参照しながら上述した通りであるので、その説明は省略する。このように既に設計対象回路を設計した後に論理変更等が発生すると、FFやRAMを追加する場合がある。その際、FFやRAMの回路ブロックを配置する作業が行なわれる(ステップS10)。
そして、本実施形態の設計支援機能は、メモリに保持された物理設計データを流用し、既存回路の最大クロックスキューを維持しながら、追加されたFFやRAMへのクロック信号の分配を自動で行なう(ステップS20)。この後、クロック信号の配線処理が行なわれ(ステップS6)、一般回路の配線処理が行なわれる(ステップS7)。このようにして得られた論理変更後の設計結果が、物理設計データとしてメモリに格納される。
次に、図13に示すフローチャート(ステップS10,S21〜S24,S6,S7)に従って、論理変更発生に伴って順序回路が追加された場合における、本実施形態の設計支援機能によるクロック信号分配手順を概略的に説明する。図13では、図12に示すステップS20が、ステップS21〜S24として、より具体的に示されている。なお、ステップS6,S7は、既述の通りであるので、その詳細な説明は省略する。
既に設計対象回路を設計した後に論理変更等が発生してFFやRAMが追加されると、上述したようにFFやRAMの回路ブロックを配置する作業が行なわれる(ステップS10)。ただし、この段階では、回路ブロックのみが配置されるだけで、クロック配線等の結線配置までは行なわれておらず、後でクロックスキュー等を考慮する必要がある。
本実施形態の設計支援機能では、追加FF/RAMとバッファとの論理的接続が、以下に説明する手順(ステップS21〜S24)で、クロックスキューを考慮しながら実現され、追加FF/RAMへのクロック信号が分配される(ステップS6)。なお、ステップ21による処理の開始時には、既存の物理設計データにおけるクロック分配回路の最終段バッファ(第1バッファ)が、処理対象バッファ(処理対象分配マクロ)として設定される。
ステップS21において、まず、既存回路の物理設計データに基づき、クロック分配回路に含まれるバッファから、当該バッファに接続された既存FF/RAMまたは他の既存バッファまでの距離の最大値および最小値が算出される。以下では、前記距離が最大値,最小値となる位置のことをそれぞれ最大近傍,最小近傍と記載する。また、最大近傍と最小近傍との間の領域を近傍範囲と記載する。
本実施形態の設計支援機能では、物理設計データによって規定される既存回路は、図12のステップS4での検証を終えているので、クロックスキューの問題を生じることなく動作する状態であることを前提としている。つまり、追加FF/RAMに係るクロックスキューが既存回路の最大クロックスキュー(クロックスキューの制限範囲)を超えなければ、追加FF/RAMに係るクロック分配回路は、クロックスキューの問題を生じることなく動作することを前提としている。
そのため、ステップS21においては、既存回路においてバッファからFF/RAMまたはバッファまでに到達するクロック信号のクロックスキューが最大になると考えられる最大近傍(前記距離の最大値)が算出される。同様に、ステップS21においては、既存回路においてバッファからFF/RAMまでに到達するクロック信号のクロックスキューが最小になると考えられる最小近傍(前記距離の最小値)が算出される。
ついで、ステップS22において、ステップS21で得られた最大近傍および最小近傍に基づき、最大近傍と最小近傍との間の近傍範囲が取得され、取得された近傍範囲内に存在する追加FF/RAMに対し、処理対象バッファからクロック信号が分配される。つまり、追加FF/RAMと処理対象バッファとの距離が上記最大値と上記最小値との間にあるか否かが判定され、当該距離が上記最大値と上記最小値との間にある場合、処理対象バッファから追加FF/RAMへクロック信号が分配される。
この後、ステップS23において、全ての追加FF/RAMに対しクロック信号の分配が行なわれたか否かが判定される。全ての追加FF/RAMに対しクロック信号の分配が行なわれた場合(ステップS23のYESルート)、上述したステップS6およびS7の処理が実行される。
一方、クロック信号をまだ分配されていない追加FF/RAMが存在する場合、つまり上記近傍範囲外の追加FF/RAMが存在する場合(ステップS23のNOルート)、ステップS21の処理に移行し、再度、ステップS21〜S23の処理が実行される。その際、前回の処理対象バッファよりも一段だけ上段側の非最終段バッファ(第2バッファ)が、処理対象バッファとして設定される。上述したステップS21〜S24の処理は、全ての追加FF/RAMに対しクロック信号の分配が行なわれるまで(ステップS23でYES判定となるまで)、繰り返し実行される。
なお、ステップS21での最大近傍および最小近傍の具体的な算出手法については、図2〜図5や、図14のステップS202〜S204や、図15のステップS202a〜S204aを参照しながら後述する。
また、ステップS22でのクロック信号の具体的な分配手法については、図6〜図8や、図14のステップS205,S206や、図15のステップS205a,S206aを参照しながら後述する。
〔2〕本実施形態の設計支援装置の構成
図1は、一実施形態の設計支援装置1のハードウエア構成および機能構成を示すブロック図である。図1に示す設計支援装置1は、LSI等の半導体集積回路の設計を支援するもので、図12および図13を参照しながら上述した本実施形態の設計支援機能を実現する。設計支援装置1は、一般的なパーソナルコンピュータ等の計算機から構成され、記憶部(メモリ)10および処理部(プロセッサ)20のほか入力部(図示略)や表示部(図示略)を有している。メモリ10,プロセッサ20,表示部および入力部は、バス(図示略)を介して相互に通信可能に接続されている。
メモリ10は、RAM(Random Access Memory),HDD(Hard Disk Drive),SSD(Solid State Drive)等の内部記憶装置であってもよいし、外部記憶装置であってもよい。メモリ10は、図12や図16に示す設計手順で得られた、設計対象回路についての既存の物理設計データを格納するほか、プロセッサ20による後述の処理によって得られる、当該物理設計データに対する変更等に係る情報を格納する。ここで、設計対象回路は、バッファ(クロック分配マクロ)を有するクロック分配回路を含む回路である。
プロセッサ20は、CPU(Central Processing Unit)等である。プロセッサ20は、メモリ10などに保持される設計支援プログラムを実行することにより、後述するデータ読込部21,バッファ近傍算出部22,検索部23,判定部24,クロック分配部25および結果保存部26としての機能を果たす。
表示部40は、プロセッサ20で生成された各種情報、例えば図2〜図11を参照しながら後述する近傍算出結果,配線可能性領域,クロック信号配線結果などを表示するもので、CRT(Cathode Ray Tube),LCD(Liquid Crystal Display)等のディスプレイである。
入力部は、設計者(ユーザ)によって操作され各種情報を本装置1に入力するマンマシンインタフェース、例えばマウス,キーボード等である。特に、本実施形態において、入力部は、論理変更等に伴って既存の物理設計データ(既存の設計対象回路)に対し順序回路を追加入力する際に用いられる。ここで、順序回路としては、例えばFF,RAMが挙げられ、以下、追加されるFFおよび/またはRAMを追加FF/RAMと記載する。
つぎに、プロセッサ20が果たす各種機能、つまりデータ読込部21,バッファ近傍算出部22,検索部23,判定部24,クロック分配部25および結果保存部26としての機能について説明する。
データ読込部21は、論理変更等に伴って設計済みの既存回路にFF/RAMを追加した際に、追加FF/RAMにクロック信号を分配する処理で必要になる既存の物理設計データを、適宜、メモリ10から読み込む。
〔2−1〕処理対象バッファの最大近傍および最小近傍の算出機能
バッファ近傍算出部22は、データ読込部21によって読み込まれた既存の物理設計データに基づいて、図13のステップS21による処理、つまり処理対象バッファ(処理対象分配マクロ)の最大近傍および最小近傍を算出する処理を実行する。
バッファ近傍算出部22は、以下に説明する3種類の処理対象バッファの最大近傍および最小近傍を算出すべく、最終段バッファ近傍算出部22a,追加バッファ近傍算出部22bおよび非最終段バッファ近傍算出部22cとしての機能を有している。
〔2−1−1〕処理対象バッファが下段側に複数の既存FF/RAMを接続された既存の最終段バッファ(第1バッファ)である場合:
最終段バッファ近傍算出部22aは、下段側に複数(2以上)のFF/RAMを接続された既存の最終段バッファについて、後述する個別最大近傍および個別最小近傍を、最大近傍および最小近傍として算出する。
具体的に、最終段バッファ近傍算出部22aは、既存の物理設計データに基づき、処理対象である最終段バッファと当該最終段バッファの下段に接続された複数の既存FF/RAMとの距離を算出する。最終段バッファ近傍算出部22aは、各既存FF/RAMについて算出された距離のうち、最大値を個別最大近傍とするとともに、最小値を個別最小近傍とする。追加FF/RAMが最終段バッファの個別最大近傍と個別最小近傍との間(近傍範囲内)に位置していれば、最終段バッファからクロック信号を分配された場合の、追加FF/RAMでのクロックスキューは制限範囲内にあり悪化しない。このため、クロック分配回路の動作を保証することができる。
ここで、図2を参照しながら、最終段バッファの個別最大近傍および個別最小近傍の具体例について説明する。図2における各ブロックは、以下のようなバッファおよびFF/RAMを示す。“5”を記入されたブロックは、既存のクロック分配回路の5段目バッファを示す。“6”を記入されたブロックは、既存のクロック分配回路の6段目バッファを示す。“7A”,“7B”,“7C”を記入されたブロックは、それぞれ、既存のクロック分配回路の最終段バッファ(第1バッファ)である7段目バッファを示す。“A”,“B”,“C”を記入されたブロックは、それぞれ既存FF/RAMを示す。“追a”,“追b”,“追c”,“追d”を記入されたブロックは、それぞれ、既存の物理設計データ(設計済みの設計対象回路)に対し、論理変更等に伴って新たに追加・生成されたFF/RAMを示す。なお、図4〜図6,図9〜図11においても、図2と同様のバッファおよびFF/RAMが例示され、図2と同様の符号が付されている。
図2に示すように、既存の最終段バッファ(7A)の下段には、2つの既存FF/RAM(A,B)が接続されている。この場合、最終段バッファ近傍算出部22aは、最終段バッファ(7A)と既存FF/RAM(A)との直線距離を算出するとともに、最終段バッファ(7A)と既存FF/RAM(B)との直線距離を算出する。このとき、最終段バッファ(7A)と当該最終段バッファ(7A)から最も遠い既存FF/RAM(A)との直線距離が最大値となり、最終段バッファ(7A)と当該最終段バッファ(7A)に最も近い既存FF/RAM(B)との直線距離が最小値となる。
したがって、最終段バッファ(7A)を中心とし、最終段バッファ(7A)と既存FF/RAM(A)との直線距離を半径とする円が、個別最大近傍R7Amaxとして算出される。また、最終段バッファ(7A)を中心とし、最終段バッファ(7A)と既存FF/RAM(B)との直線距離を半径とする円が、個別最小近傍R7Aminとして算出される。
なお、最終段バッファであっても、既存FF/RAMが一つしか接続されていないバッファ(7B)、もしくは、既存FF/RAMが一つも接続されていないバッファ(7C)の最小近傍および最大近傍の算出は、上述した最終段バッファ(7A)のごとく既存の接続関係に基づいて行なえない。このため、このようなバッファ(7B,7C)の最小近傍/最大近傍は、追加バッファ近傍算出部22bにより後述する別の手法(下記項目〔2−1−2〕参照)で算出される。
〔2−1−2〕処理対象バッファが、新規に生成された追加バッファ、または、下段側に2以上のFF/RAMもしくはバッファを接続されていないバッファである場合:
追加バッファ近傍算出部22bは、新規に生成された追加バッファ、または、下段側にFF/RAMもしくはバッファを接続されていないバッファ、または、下段側に一のFF/RAMもしくはバッファを接続されたバッファについて、後述する推定最大近傍および推定最小近傍を、最大近傍および最小近傍として算出する。
ここで処理対象となるバッファの最大近傍および最小近傍は、上記項目〔2−1−1〕で説明した手法によって算出できない。そこで、追加バッファ近傍算出部22bは、処理対象バッファと同じ段における他の既存バッファから、当該他の既存バッファの下段側に接続された複数の既存FF/RAMまたはバッファまでの距離に基づき、処理対象バッファの最大近傍および最小近傍を算出する。
具体的に、追加バッファ近傍算出部22bは、既存の物理設計データに基づき、上述した他の既存バッファから当該他の既存バッファの下段側における各既存FF/RAMまたはバッファまでの距離を算出する。さらに、追加バッファ近傍算出部22bは、算出された複数の距離についての平均および分散を求め、求められた平均および分散を有する正規分布を算出する。そして、追加バッファ近傍算出部22bは、算出された正規分布の中心から一定の範囲(所定範囲)の上限に対応する距離(最大値)を処理対象バッファの推定最大近傍とし、同範囲の下限に対応する距離(最小値)を処理対象バッファの推定最小近傍とする。
一般に、バッファ(クロック分配マクロ)から次段のFF/RAMまたはバッファまでの距離の分布は、図3に示すように、正規分布となる。このとき、上記一定の範囲は、例えば図3に示すように、正規分布の平均値を中心とした−30%〜+30%の範囲とし、−30%に対応する距離を推定最小近傍とし、+30%に対応する距離を推定最大近傍とする。なお、図3は、処理対象バッファから次段のFF/RAMまたはバッファまでの距離の分布の例を示す図である。
このように、正規分布の平均値の周囲に対応する範囲内に、追加FF/RAMが配置されていれば、最大クロックスキューが増えることはない。つまり、追加FF/RAMが処理対象バッファの推定最大近傍と推定最小近傍との間(近傍範囲内)に位置していれば、処理対象バッファからクロック信号を分配された場合の、追加FF/RAMでのクロックスキューは制限範囲内にあり悪化しない。このため、クロック分配回路の動作を保証することができる。
ここで、図4を参照しながら、処理対象バッファの推定最大近傍および推定最小近傍の具体例について説明する。図4に示すように、最終段バッファ(7B)の下段側には一つだけ既存FF/RAM(C)が接続され、最終段バッファ(7C)の下段側には既存FF/RAMが一つも接続されていない。この場合、追加バッファ近傍算出部22bは、7段目のバッファから次段の既存FF/RAMまでの直線距離の正規分布に基づき、上記上限に対応する最大値および上記下限に対応する最小値を算出する。
これにより、図4に示すように、最終段バッファ(7B)を中心とし上記最大値を半径とする円が、推定最大近傍R7Bmaxとして算出され、最終段バッファ(7B)を中心とし上記最小値を半径とする円が、個別最小近傍R7Bminとして算出される。また、最終段バッファ(7C)を中心とし上記最大値を半径とする円が、推定最大近傍R7Cmaxとして算出され、最終段バッファ(7C)を中心とし上記最小値を半径とする円が、推定最小近傍R7Cminとして算出される。
〔2−1−3〕処理対象バッファが非最終段バッファ(第2バッファ)である場合:
非最終段バッファ近傍算出部22cは、最終段バッファよりも上段側の非最終段バッファについて、最大近傍および最小近傍を算出する。
具体的に、非最終段バッファ近傍算出部22cは、既存の物理設計データに基づき、追加FF/RAMに対し非最終段バッファからクロック信号分配可能な距離の最大値(後述)を最大近傍として算出する。同様に、非最終段バッファ近傍算出部22cは、既存の物理設計データに基づき、追加FF/RAMに対し非最終段バッファからクロック信号分配可能な距離の最小値(後述)を最小近傍として算出する。
ここで、非最終段バッファ近傍算出部22cは、下式(1)を用いてクロック信号分配可能な距離の最大値を、処理対象の非最終段バッファの最大近傍として算出する。つまり、非最終段バッファの最大近傍は、処理対象の非最終段バッファから当該非最終段バッファの下段側に接続された複数の次段バッファまでの直線距離の最大値(個別最大近傍)に、次段バッファから最終段バッファまでの各バッファについて得られる最大値(個別最大近傍または推定最大近傍)の総和を加算した値である。
また、非最終段バッファ近傍算出部22cは、下式(2)を用いてクロック信号分配可能な距離の最小値を、処理対象の非最終段バッファの最小近傍として算出する。つまり、非最終段バッファの最小近傍は、処理対象の非最終段バッファから当該非最終段バッファの下段側に接続された複数の次段バッファまでの直線距離の最小値(個別最小近傍)から、次段バッファから最終段バッファまでの各バッファについて得られる最大値の総和(個別最大近傍または推定最大近傍)を減算した値と、0との大きい方の値である。つまり、前記減算値が0未満の場合、非最終段バッファの最小近傍(最小値)は0になる。
[非最終段バッファの最大近傍]
=[処理対象の非最終段バッファの個別最大近傍]
+[次段バッファ〜最終段バッファの個別最大近傍または推定最大近傍の総和] (1)
[非最終段バッファの最小近傍]
=max{0,[処理対象の非最終段バッファの個別最小近傍]
−[次段バッファ〜最終段バッファの個別最大近傍または推定最大近傍の総和]} (2)
なお、上式(1),(2)に基づき非最終段バッファの最大近傍,最小近傍を算出する際、処理対象の非最終段バッファに、次段バッファが一つしか接続されていない場合には、個別最大近傍/個別最小近傍に代え、上述した推定最大近傍/推定最小近傍が用いられる。同様に、次段バッファから最終段バッファまでのバッファに、次段バッファが一つしか接続されていない場合には、個別最大近傍/個別最小近傍に代え、上述した推定最大近傍/推定最小近傍が用いられる。
追加FF/RAMが非最終段バッファの最大近傍と最小近傍との間(近傍範囲内)に位置している場合、追加FF/RAMと非最終段バッファとの間に最終段バッファを含む1以上のバッファを追加して非最終段バッファから追加FF/RAMへのクロック信号を分配すれば、追加FF/RAMでのクロックスキューは制限範囲内にあり悪化しない。このため、クロック分配回路の動作を保証することができる。
ここで、図5を参照しながら、非最終段バッファの最大近傍および最小近傍の具体例について説明する。図5では、6段目の非最終段バッファ(6)の最大近傍および最小近傍が示されている。6段目の非最終段バッファ(6)の下段には、3つのバッファ(7A,7B,7C)が接続されている。このとき、非最終段バッファ(6)と当該非最終段バッファ(6)から最も遠い最終段バッファ(7C)との直線距離が最大値となり、非最終段バッファ(6)と当該非最終段バッファ(6)に最も近い最終段バッファ(7Aまたは7B)との直線距離が最小値となる。
したがって、非最終段バッファ(6)を中心とし、非最終段バッファ(6)とバッファ(7C)との直線距離を半径とする円が、非最終段バッファ(6)の個別最大近傍R6maxとして算出される。また、非最終段バッファ(6)を中心とし、非最終段バッファ(6)とバッファ(7Aまたは7B)との直線距離を半径とする円が、非最終段バッファ(6)の個別最小近傍R6minとして算出される。
さらに、非最終段バッファ(6)から最も遠い最終段バッファ(7C)の下段には、既存FF/RAMが一つも接続されていないので、最終段バッファ(7C)については、図4を参照しながら上述したように推定最大近傍R7Cmaxおよび推定最小近傍R7Cminが取得される。このとき、非最終段バッファ(6)を中心とし、個別最大近傍R6maxの半径値に最終段バッファ(7C)の推定最大近傍R7Cmaxの半径値を加算した値を半径とする円が、非最終段バッファ(6)の最大近傍R6MAXとして算出される。
一方、非最終段バッファ(6)に最も近い最終段バッファ(7A)の下段には、2つの既存FF/RAM(A,B)が接続されており、最終段バッファ(7A)については、図2を参照しながら上述したように個別最大近傍R7Amaxおよび個別最小近傍R7Aminが取得される。このとき、非最終段バッファ(6)を中心とし、個別最小近傍R6minの半径値から最終段バッファ(7A)の推定最大近傍R7Cmaxの半径値を減算した値を半径とする円が、非最終段バッファ(6)の最小近傍R6MINとして算出される。
このとき、図5に示す追加FF/RAM(追d)は、非最終段バッファ(6)の最大近傍R6MAXと最小近傍R6MINとの間(近傍範囲)に存在している。このため、追加FF/RAM(追d)と非最終段バッファ(6)との間に最終段バッファ(7段目のバッファ)を新たに生成・追加して非最終段バッファ(6)から追加FF/RAM(追d)へのクロック信号を分配すれば、追加FF/RAMでのクロックスキューは制限範囲内にあり悪化しない。したがって、非最終段バッファ(6)に追加FF/RAM(追d)を接続可能で、クロック分配回路の動作を保証しながら、追加FF/RAM(追d)にクロック信号を供給することが可能である。
〔2−2〕近傍範囲内の追加FF/RAMの検索機能
検索部23は、バッファ近傍算出部22において算出された最大近傍と最小近傍との間の領域を近傍範囲として取得し、論理変更等に伴って新たに追加された追加FF/RAMのうち、当該近傍範囲内に含まれるものを検索する。
検索部23は、まず、最終段バッファ近傍算出部22aによって得られた最終段バッファの個別最大近傍と個別最小近傍との間の近傍範囲、または、追加バッファ近傍算出部22bによって得られた最終段バッファの推定最大近傍と推定最小近傍との間の近傍範囲に含まれる追加FF/RAMを検索する。つまり、検索部23は、追加FF/RAMと最終段バッファとの距離が、最終段バッファから既存FF/RAMまでの距離の最大値と最小値との間にあるか否かを判定する。クロック分配部25は、検索部23によって検索された、最終段バッファの近傍範囲に含まれる追加FF/RAMを最終段バッファに接続し、最終段バッファから追加FF/RAMへのクロック信号の分配を行なう。結果保存部26は、クロック分配部25によるクロック信号の分配結果をメモリ10に保存する。
最終段バッファの近傍範囲に含まれない追加FF/RAMつまり最終段バッファの近傍範囲外の追加FF/RAMが存在する場合、検索部23は、非最終段バッファ近傍算出部22cによって得られた、最終段バッファよりも上段側の非最終段バッファの最大近傍と最小近傍との間の近傍範囲に含まれる追加FF/RAMを検索する。つまり、検索部23は、追加FF/RAMと非最終段バッファとの距離が、クロック信号分配可能な距離の最大値と最小値との間にあるか否かを判定する。クロック分配部25は、検索部23によって検索された、非最終段バッファの近傍範囲に含まれる追加FF/RAMを、非最終段バッファに接続し、非最終段バッファから追加FF/RAMへのクロック信号の分配を行なう。結果保存部26は、クロック分配部25によるクロック信号の分配結果をメモリ10に保存する。
このとき、非最終段バッファの段数と追加FF/RAMの段数との差nが2以上である場合、クロック配分部25は、非最終段バッファと追加FF/RAMとの間にn−1段のバッファを介し、非最終段バッファから追加FF/RAMへのクロック信号の分配を行なう。例えば図6や図11を参照しながら後述する具体例では、非最終段バッファの段数が6、追加FF/RAMの段数が8であり、差nは2であるので、1段分のバッファつまり7段目のバッファが生成・追加され、追加FF/RAMへのクロック信号の分配が行なわれる。
このように、最終段バッファの近傍範囲外の追加FF/RAMが存在する場合、処理対象バッファとして、現在の処理対象バッファよりも一つ上段側の非最終段バッファが選択され、バッファ近傍算出部22による最大近傍/最小近傍の算出処理と検索部23による検索処理とが上述と同様に実行される。このようなバッファ選択処理,算出処理および検索処理は、クロック未分配の追加FF/RAMが無くなるまで(つまり全ての追加FF/RAMが検索されるまで)、もしくは、処理対象バッファの段数が設計者が決めた段数となるまで、繰返し実行される。
上述したように一つ上段側のバッファから追加FF/RAMに対するクロック分配を行なうことで、例えば図6に示すように、下段側(最終段)のバッファの近傍範囲よりも広い範囲内における追加FF/RAMに対し、最大クロックスキューを悪化させることなくクロック分配を行なうことが可能になる。
ここで、図6を参照しながら、最終段バッファの近傍範囲外に存在する追加順序回路の具体例について説明する。図6では4つの追加FF/RAM(追a,追b,追c,追d)が示されている。
追加FF/RAM(追a)は、最終段バッファ(7A)の近傍範囲(個別最大近傍R7Amaxと個別最小近傍R7Aminとの間)と最終段バッファ(7B)の近傍範囲(推定最大近傍R7Bmaxと推定最小近傍R7Bminとの間)との両方に属している。このように追加FF/RAMが複数の最終段バッファの近傍領域に属する場合、後述する判定部24が、後述する基準で一つの最終段バッファ(7Aまたは7B)をクロック分配元として決定する。クロック分配部25は、判定部24によって決定された最終段バッファ(7Aまたは7B)から追加FF/RAM(追a)に対するクロック分配を行なう。
追加FF/RAM(追c)は、最終段バッファ(7C)の近傍範囲(推定最大近傍R7Cmaxと推定最小近傍R7Cminとの間)に属している。したがって、クロック分配部25は、最終段バッファ(7C)から追加FF/RAM(追c)に対するクロック分配を行なう。
追加FF/RAM(追b)は、最終段バッファ(7A)に近すぎるために接続することができず、最終段バッファ(7A)の近傍範囲外に属している。しかし、追加FF/RAM(追b)は、最終段バッファ(7A)よりも一つ上段側の非最終段バッファ(6)の近傍範囲(最大近傍R6MAXと最小近傍R6MINとの間)に属している。したがって、クロック分配部25は、例えば図11を参照しながら後述するように、追加・生成した7段目のバッファを介し非最終段バッファ(6)から追加FF/RAM(追b)に対するクロック分配を行なう。
追加FF/RAM(追d)は、最終段バッファ(7C)から遠すぎるために接続することができず、最終段バッファ(7C)の近傍範囲外に属している。しかし、追加FF/RAM(追d)は、最終段バッファ(7C)よりも一つ上段側の非最終段バッファ(6)の近傍範囲(最大近傍R6MAXと最小近傍R6MINとの間)に属している。したがって、クロック分配部25は、例えば図11を参照しながら後述するように、追加・生成した7段目のバッファを介し非最終段バッファ(6)から追加FF/RAM(追d)に対するクロック分配を行なう。
図6に示すように、7段目のバッファ(7A〜7C)の近傍範囲よりも、一つ上段側の6段目のバッファの近傍範囲の方が広い。したがって、上段側のバッファは、下段側のバッファを適宜生成・追加することで、下段側のバッファがクロック信号分配可能な距離よりも遠くまで、クロック信号を分配することが可能になる。
〔2−3〕追加FF/RAMが複数の近傍範囲に属する場合の判定機能
判定部24は、後述する配線距離最短近傍算出部24aを有し、追加FF/RAMが複数の近傍範囲に属する場合の判定機能を果たす。判定部24は、同じ追加FF/RAMが複数の最終段バッファの近傍範囲に属している場合〔例えば図6に示す、最終段バッファ(7A)の近傍範囲と最終段バッファ(7B)の近傍範囲とに属する追加FF/RAM(追a)参照〕、当該複数の最終段バッファから一つの最終段バッファを選択すべく以下の基準(1),(2)に従う判定を行なう。
基準(1): 同じ追加FF/RAMが属する複数の最終段バッファのうちファンアウト数が最も少ないものを判定・選択し、ファンアウト数の少ない最終段バッファに対し優先的にクロック分配を行なう。ファンアウト数が大きいとディレイが増加するため、ファンアウト数の少ない最終段バッファを優先する。ここで、処理対象バッファの次段に接続されるバッファまたはFF/RAMの数の数である。
基準(2): 同じ追加FF/RAMが属する複数の最終段バッファのファンアウト数が同じである場合、当該複数の最終段バッファのうち、当該追加FF/RAMへの配線距離が最小のものを判定(推定)して選択し、配線距離が最小の最終段バッファに対しクロック分配を行なう。最小配線距離の推定は、判定部24における配線距離最短近傍算出部24aによって、次の項目〔2−4〕で説明するように行なわれる。
〔2−4〕最小配線距離の推定機能
配線距離最短近傍算出部24aは、既存の物理設計データに基づき、複数の最終段バッファのそれぞれについて各最終段バッファから既存FF/RAMへのクロック信号の配線が行なわれる可能性のある領域(以下、配線可能性領域という)を求める。そして、配線距離最短近傍算出部24aは、当該複数の最終段バッファのうち、追加FF/RAMから配線可能性領域までの距離が最小になるものを、前記基準(2)における配線距離が最小の最終段バッファとして推定し選択する。
ここで、図7および図8を参照しながら、配線距離最短近傍算出部24aによる最小配線距離の推定機能について具体的に説明する。図7は、本実施形態における最終段バッファから既存FF/RAMへの配線可能性領域を説明する図、図8は、本実施形態における追FF/RAMと複数の配線可能性領域との間の推定最小配線距離を説明する図である。
図7および図8において、“B1”および“B2”を記入されたブロックは、最終段バッファ(第1バッファ)を示す。“F1”〜“F6”を記入されたブロックは、最終段バッファ(B1)からクロック信号を分配される既存FFを示し、“F7”,“F8”を記入されたブロックは、最終段バッファ(B2)からクロック信号を分配される既存FFを示す。“追”を記入されたブロックは、論理変更等に伴って新たに追加・生成されたFFを示す。図8における追加FF(追)は、最終段バッファ(B1)の近傍範囲と最終段バッファ(B2)の近傍範囲との両方に属しているものとする。符号X1〜X8を付され点線で囲まれた矩形領域は、個別配線可能性領域を示す。また、符号Y1,Y2を付され実線で囲まれた領域は、それぞれ、最終段バッファ(B1,B2)についての配線可能性領域を示す。
最終段バッファ(B1)から既存FF(F1〜F6)へのクロック信号の配線が行なわれる可能性のある配線可能性領域X1は、図7および図8に示すように求められる。つまり、まず、最終段バッファ(B1)および既存FF(F1〜F6)について、クラスカルアルゴリズムによって最小木(ミニマムスパニングツリー)を求める。図7および図8に示す例では、最終段バッファ(B1)に2つの既存FF(F1,F4)が接続され、既存FF(F1)に2つの既存FF(F2,F3)が接続され、既存FF(F4)に2つの既存FF(F5,F6)が接続された最小木が求められる。
そして、最小木で接続された最終段バッファと既存FFを対角とする矩形領域X1,X4と、最小木で接続された2つの既存FFを対角とする矩形領域X2,X3,X5,X6とが、個別配線可能性領域として求められる。
図7および図8において、個別配線可能性領域X1は、最終段バッファ(B1)と既存FF(F1)を対角とする矩形領域であり、個別配線可能性領域X2は、2つの既存FF(F1,F2)を対角とする矩形領域であり、個別配線可能性領域X3は、2つの既存FF(F1,F3)を対角とする矩形領域である。また、個別配線可能性領域X4は、最終段バッファ(B1)と既存FF(F4)を対角とする矩形領域であり、個別配線可能性領域X5は、2つの既存FF(F4,F5)を対角とする矩形領域であり、個別配線可能性領域X6は、2つの既存FF(F4,F6)を対角とする矩形領域である。
上述のように求められた個別配線可能性領域X1〜X6の総和である領域Y1が、最終段バッファ(B1)の配線可能性領域として求められる。
同様に、図8に示すように、最終段バッファ(B2)と既存FF(F7,F8)とについても、個別配線可能性領域X7,X8が求められ、これらの個別配線可能性領域X7,X8の総和である領域Y2が、最終段バッファ(B2)の配線可能性領域として求められる。
追加FF(追)が最終段バッファ(B1)の近傍範囲と最終段バッファ(B2)の近傍範囲との両方に属している場合、図8に示すように、追加FF(追)から最終段バッファ(B1)の配線可能性領域X1までの最短の配線距離D1と、追加FF(追)から最終段バッファ(B2)の配線可能性領域X2までの最短の配線距離D2とが算出される。そして、追加FF(追)には、この追加FF(追)に近い方の配線可能性領域からクロック信号の分配が行なわれる。
つまり、図8に示す例において、追加FF(追)は、最終段バッファ(B1)よりも最終段バッファ(B2)に近いが、配線距離D2>配線距離D1であるので、配線可能性領域X2よりも配線可能性領域X1に近い。このため、追加FF(追)には、最終段バッファ(B1)の配線可能性領域X1からクロック信号を分配した方が、追加の配線量は少なくて済むため、最終段バッファ(B1)が選択され、最終段バッファ(B1)からクロック信号が分配される。
〔3〕具体例
図9〜図11を参照しながら、本実施形態における追加FF/RAMの近傍判定および追加FF/RAMに対するクロック信号配線の具体例について説明する。
図9〜図11に示す具体例においても、図2,図4〜図6を参照しながら前述した具体例と同様の既存回路に、前述した具体例と同様の追加FF/RAM(追a〜追d)が追加されたものとする。
まず、図9に示すように、バッファ近傍算出部22により、7段目の最終段バッファ(7A〜7C)のそれぞれについて最大近傍R7Amax,R7Bmax,R7Cmaxと最小近傍7Amin,R7Bmin,R7Cminとが算出される。このとき、2以上の既存FF/RAM(A,B)が接続されている最終段バッファ(7A)については、最終段バッファ近傍算出部22aにより、個別最大近傍R7Amaxと個別最小近傍7Aminとが算出される。2以上の既存FF/RAM(A,B)が接続されていない最終段バッファ(7B,7C)については、追加バッファ近傍算出部22bにより、図3を参照しながら前述した正規分布に基づき、推定最大近傍R7Bmax,R7Cmaxと推定最小近傍R7Bmin,R7Cminとが算出される。
上述したように算出された最終段バッファ(7A〜7C)の最大近傍および最小近傍に基づき、判定部23は、最終段バッファ(7A〜7C)のそれぞれについて近傍範囲を取得し、追加FF/RAM(追a〜追d)が近傍範囲に属しているか否かを判定する。
このとき、判定部23により、追加FF/RAM(追c)は、最終段バッファ(7C)の近傍範囲(推定最大近傍R7Cmaxと推定最小近傍R7Cminとの間)に属していると判定される。この判定に伴い、図10に示すように、追加FF/RAM(追c)は、クロック分配部25により最終段バッファ(7C)に接続され、最終段バッファ(7C)から追加FF/RAM(追c)に対するクロック分配を行なう。
また、判定部23により、追加FF/RAM(追a)は、最終段バッファ(7A)の近傍範囲(個別最大近傍R7Amaxと個別最小近傍R7Aminとの間)と最終段バッファ(7B)の近傍範囲(推定最大近傍R7Bmaxと推定最小近傍R7Bminとの間)との両方に属していると判定される。この判定に伴い、判定部24aにより、2つの最終段バッファ(7A,7B)のうち、ファンアウト数の最も少ない最終段バッファ、もしくは、配線可能性領域が最も近い最終段バッファが、クロック分配元として判定・選択される。ここでは、最終段バッファ(7A)の配線可能性領域が、最終段バッファ(7B)の配線可能性領域よりも追加FF/RAM(追a)に近いと判定され、最終段バッファ(7A)がクロック分配元として選択されたものとする。これに伴い、図10に示すように、追加FF/RAM(追a)は、クロック分配部25により最終段バッファ(7A)に接続され、最終段バッファ(7A)から追加FF/RAM(追a)に対するクロック分配を行なう。
7段目の最終段バッファ(7A〜7C)の近傍範囲に含まれない追加FF/RAM(追b,追d)は、より上段側の非最終段バッファに接続し、より上段側の非最終段バッファからクロック信号の分配を行なう。ここで、図10に示すように、追加FF/RAM(追b)は、最終段バッファ(7A)に近すぎるために接続することができず、最終段バッファ(7A)の近傍範囲外に属している。追加FF/RAM(追d)は、最終段バッファ(7C)から遠すぎるために接続することができず、最終段バッファ(7C)の近傍範囲外に属している。
このとき、図5を参照しながら前述したように、非最終段バッファ近傍算出部22cにより、6段目の非最終段バッファ(6)について近傍範囲(最大近傍R6MAXと最小近傍R6MINとの間)が算出される。そして、判定部23により、追加FF/RAM(追b,追d)は、非最終段バッファ(6)の近傍範囲に属していると判定される。
そこで、図11に示すように、クロック分配部25は、新たに追加・生成した7段目のバッファ(7D,7E)を介し非最終段バッファ(6)から追加FF/RAM(追b,追d)に対するクロック分配を行なう。
このとき、6段目のバッファ(6)の個別最大近傍R6maxと個別最小近傍R6minとが求められる。また、新たに追加・生成した7段目のバッファ(7D)の近傍範囲(推定最大近傍R7Dmaxと推定最小近傍R7Dminとの間)は、追加バッファ近傍算出部22bにより、図3を参照しながら前述した正規分布に基づき求められる。同様に、新たに追加・生成した7段目のバッファ(7E)の近傍範囲(推定最大近傍R7Emaxと推定最小近傍R7Eminとの間)は、追加バッファ近傍算出部22bにより、図3を参照しながら前述した正規分布に基づき求められる。
そして、7段目の新規バッファ(7D)は、図11に示すように、6段目のバッファ(6)の個別最大近傍R6maxおよび個別最小近傍R6minとの間に位置すると同時に当該新規バッファ(7D)の近傍範囲内に追加FF/RAM(追b)が属するように生成・配置される。このように生成された7段目の新規バッファ(7D)を介し非最終段バッファ(6)から追加FF/RAM(追b)に対するクロック分配が行なわれる。
同様に、7段目の新規バッファ(7E)は、図11に示すように、6段目のバッファ(6)の個別最大近傍R6maxおよび個別最小近傍R6minとの間に位置すると同時に当該新規バッファ(7E)の近傍範囲内に追加FF/RAM(追d)が属するように生成・配置される。このように生成された7段目の新規バッファ(7E)を介し非最終段バッファ(6)から追加FF/RAM(追d)に対するクロック分配が行なわれる。
以上の処理により、クロック信号を分配されていない追加FF/RAMは無くなり、追加FF/RAMに対してクロック分配処理は完了する。
〔4〕本実施形態の設計支援機能によるクロック信号分配手順
次に、図14および図15に示すフローチャート(ステップS201〜S206,S201a〜S206a,S23)に従って、上述した本実施形態の設計支援機能によるクロック信号分配手順について、詳細に説明する。
既に設計対象回路を設計した後に論理変更等が発生してFFやRAMが追加されると、既存の物理設計データにおけるクロック分配回路の最終段バッファ(第1バッファ)を処理対象バッファとして(ステップS201)、以下の処理が実行される。
まず、新規に生成された最終段の追加バッファ、または、下段側に2以上のFF/RAMもしくはバッファを接続されていない最終段バッファの最大近傍および最小近傍として用いられる推定最大近傍および推定最小近傍が、追加バッファ近傍算出部22bにより算出される(ステップS202)。このとき、図3を参照しながら前述したように、各最終段バッファと当該最終段バッファの次段(既存FF/RAM)との距離の正規分布が求められる。この正規分布の中心から−30%に対応する距離が推定最小近傍として求められ、同中心から+30%に対応する距離が推定最大近傍として求められる。
また、2以上のFF/RAMを接続された既存の最終段バッファの全てについての個別最大近傍および個別最小近傍が、最終段バッファ近傍算出部22aにより算出される(ステップS203)。このとき、既存の物理設計データに基づき、最終段バッファと当該最終段バッファの下段に接続された複数の既存FF/RAMとの距離が算出される。算出された距離のうち、最大値が個別最大近傍として用いられ、最小値が個別最小近傍として用いられる。
そして、最終段バッファに2以上のFF/RAMが接続されている場合、ステップS203で算出された個別最大近傍および個別最小近傍がそれぞれ最大近傍および最小近傍として用いられる(ステップS204)。ただし、最終段バッファに2以上のFF/RAMが接続されていない場合、ステップS202で算出された推定最大近傍および推定最小近傍がそれぞれ最大近傍および最小近傍として用いられる(ステップS204)。
最大近傍および最小近傍を算出した後、検索部23により、最終段バッファの最大近傍と最小近傍との間(近傍範囲)に存在する追加FF/RAMが検索・判定される(ステップS205)。
最終段バッファの近傍範囲に含まれる追加FF/RAMは、クロック分配部25により最終段バッファに接続されクロック信号を分配される(ステップS206)。このとき、同じ追加FF/RAMが複数の最終段バッファの近傍範囲に含まれている場合、最終段バッファのファンアウト数や、最終段バッファの配線可能性領域と追加FF/RAMとの間の最短配線距離を考慮し、適切なクロック信号分配元の最終段バッファが選択される(ステップS206)。
この後、全ての追加FF/RAMに対しクロック信号の分配が行なわれたか否かが判定される(ステップS23)。全ての追加FF/RAMに対しクロック信号の分配が行なわれた場合(ステップS23のYESルート)、上述した図13のステップS6およびS7の処理が実行される。
一方、クロック信号をまだ分配されていない追加FF/RAMが存在する場合、つまり上記近傍範囲外の追加FF/RAMが存在する場合(ステップS23のNOルート)、ステップS201aの処理に移行する。このとき、前回の処理対象バッファよりも一段だけ上段側の非最終段バッファ(第2バッファ)を処理対象バッファとして(ステップS201a)、以下の処理が実行される。
新規に生成された処理対象段の追加バッファ、または、下段側に2以上のFF/RAMもしくはバッファを接続されていない処理対象バッファの最大近傍および最小近傍として用いられる推定最大近傍および推定最小近傍が、追加バッファ近傍算出部22bにより算出される(ステップS202a)。このとき、図3を参照しながら前述したように、各処理対象バッファと当該処理対象バッファの次段(既存バッファ)との距離の正規分布が求められる。この正規分布の中心から−30%に対応する距離が推定最小近傍として求められ、同中心から+30%に対応する距離が推定最大近傍として求められる。
また、2以上のFF/RAMを接続された既存の処理対象バッファの全てについての個別最大近傍および個別最小近傍が、最終段バッファ近傍算出部22aにより算出される(ステップS203a)。このとき、既存の物理設計データに基づき、処理対象バッファと当該最終段バッファの下段に接続された複数の既存バッファとの距離が算出される。算出された距離のうち、最大値が個別最大近傍として用いられ、最小値が個別最小近傍として用いられる。
処理対象バッファに2以上のFF/RAMが接続されている場合、ステップS203aで算出された個別最大近傍および個別最小近傍と、ステップS202aで算出された推定最大近傍および推定最小近傍と、上式(1),(2)とに基づいて、非最終段バッファの最大近傍,最小近傍が、非最終段バッファ近傍算出部22cにより算出される(ステップS204a)。
最大近傍および最小近傍を算出した後、検索部23により、処理対象バッファの最大近傍と最小近傍との間(近傍範囲)に存在する追加FF/RAMが検索・判定される(ステップS205a)。
処理対象バッファの近傍範囲に含まれる追加FF/RAMは、クロック分配部25により、新規に追加・生成される適切な段数のバッファを介して処理対象バッファに接続されクロック信号を分配される(ステップS206a)。このとき、同じ追加FF/RAMが複数の処理対象バッファの近傍範囲に含まれている場合、処理対象バッファのファンアウト数や、処理対象バッファの配線可能性領域と追加FF/RAMとの間の最短配線距離を考慮し、適切なクロック信号分配元の処理対象バッファが選択される(ステップS206a)。
この後、全ての追加FF/RAMに対しクロック信号の分配が行なわれたか否かが判定される(ステップS23)。全ての追加FF/RAMに対しクロック信号の分配が行なわれた場合(ステップS23のYESルート)、上述した図13のステップS6およびS7の処理が実行される。
一方、クロック信号をまだ分配されていない追加FF/RAMが存在する場合、つまり上記近傍範囲外の追加FF/RAMが存在する場合(ステップS23のNOルート)、ステップS201aの処理に移行する。その際、前回の処理対象バッファよりも一段だけ上段側の非最終段バッファ(第2バッファ)が、処理対象バッファとして設定される。そして、上述したステップS201a〜S206aおよびステップS23の処理が、全ての追加FF/RAMに対しクロック信号の分配が行なわれるまで(ステップS23でYES判定となるまで)、繰り返し実行される。
〔5〕本実施形態の設計支援装置による効果
本実施形態の設計支援装置1によれば、クロックスキューについて検証済みの既存の物理設計データに基づいて、クロックスキューが既存回路の最大クロックスキュー範囲(クロックスキューの制限範囲)内に収まるように、追加FF/RAMに対してクロック信号が分配される。
また、クロック信号の分配元候補のバッファが複数存在する場合は、候補バッファのファンアウト数や、候補バッファの配線可能性領域と追加FF/RAMとの間の最短配線距離を考慮し、適切なクロック信号分配元が選択される。
これにより、既存回路のタイミング調整を再度行なうことなく、既に設計対象回路を設計した後に論理変更等が発生してFFやRAMが追加された場合にクロック信号の分配を効率よく短期間で行なうことが可能になる。このとき、ディレイ計算等の処理を行なう必要がなく、簡単な演算処理でクロック信号の分配を行なうことができる。したがって、物理設計完了後にクロックツリーに変更が生じた場合にクロックツリーを簡便な手法で修正することが可能になる。
〔6〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態の具体例では、クロック分配回路のバッファ段数が7段である場合について説明したが、本発明は、これに限定されるものではない。
また、上述した実施形態では、処理対象バッファからFF/RAMまたは次段バッファまでの距離が、処理対象バッファからFF/RAMまたは次段バッファまでの直線距離である場合について説明したが、本発明は、これに限定されるものではなく、例えば、処理対象バッファからFF/RAMまたは次段バッファまでの、マンハッタン長等の配線長であってもよい。
さらに、上述した実施形態では、順序回路が、FFやRAMである場合について説明したが本発明はこれに限定されるものではない。
また、上述したデータ読込部21,バッファ近傍算出部22,検索部23,判定部24,クロック分配部25および結果保存部26を含む、本実施形態の設計支援装置1の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(設計支援プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記設計支援プログラムは、上述のようなコンピュータに、データ読込部21,バッファ近傍算出部22,検索部23,判定部24,クロック分配部25および結果保存部26を含む、本実施形態の設計支援装置1の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔7〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
バッファを有するクロック分配回路を含む回路の物理設計データを格納するメモリと、
プロセッサとを有し、
前記プロセッサは、
前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記メモリに格納された前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする設計支援装置。
(付記2)
前記プロセッサは、
該第1バッファに複数の他の順序回路が接続されていない場合、前記メモリに格納された前記物理設計データに基づき、複数の他の順序回路が接続されているバッファと、接続されている前記複数の他の順序回路との距離の平均および分散を有する正規分布を算出し、該正規分布の所定範囲の上限に対応する距離を前記最大値とし、該正規分布の所定範囲の下限に対応する距離を前記最小値とする
ことを特徴とする、付記1に記載の設計支援装置。
(付記3)
前記プロセッサは、
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にない場合、前記メモリに格納された前記物理設計データに基づき、追加される前記順序回路に対し該第1バッファよりも上段側の第2バッファからクロック信号分配可能な距離の最大値と、追加される前記順序回路に対し該第2バッファからクロック信号分配可能な距離の最小値とを算出し、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にある場合、追加される前記順序回路に対し、該第2バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする、付記1または付記2に記載の設計支援装置。
(付記4)
前記クロック信号分配可能な距離の最大値は、該第2バッファから当該第2バッファの下段側に接続された複数の次段バッファまでの距離の最大値に、前記次段バッファから前記第1バッファまでの各バッファについて得られる前記距離の最大値の総和を加算した値であり、
前記クロック信号分配可能な距離の最小値は、該第2バッファから当該第2バッファの下段側に接続された複数の次段バッファまでの距離の最小値から、前記次段バッファから前記第1バッファまでの各バッファについて得られる前記距離の最大値の総和を減算した値と、0との大きい方の値とする
ことを特徴とする、付記3に記載の設計支援装置。
(付記5)
前記プロセッサは、
追加される前記順序回路と複数の該第1バッファとの距離が前記最大値と前記最小値との間にある場合、前記複数の該第1バッファのうちファンアウト数が最も少ないものを選択し、追加される前記順序回路に対し、選択された該第1バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする、付記1〜付記4のいずれか一項に記載の設計支援装置。
(付記6)
前記プロセッサは、
追加される前記順序回路と複数の該第1バッファとの距離が前記最大値と前記最小値との間にある場合、前記複数の該第1バッファのうち、追加される前記順序回路への配線距離が最小のものを選択し、追加される前記順序回路に対し、選択された該第1バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする、付記1〜付記4のいずれか一項に記載の設計支援装置。
(付記7)
前記プロセッサは、
前記メモリに格納された前記物理設計データに基づき、前記複数の該第1バッファのそれぞれについて各第1バッファから既存順序回路へのクロック信号の配線が行なわれる可能性のある領域を求め、前記複数の該第1バッファのうち、追加される前記順序回路から前記領域までの距離が最小になるものを、前記配線距離が最小のものとして選択する
ことを特徴とする、付記6に記載の設計支援装置。
(付記8)
前記距離は、該第1バッファから該複数の他の順序回路までの直線距離、または、該第2バッファから該次段バッファまでの直線距離であることを特徴とする、付記1〜付記7のいずれか一項に記載の設計支援装置。
(付記9)
前記距離は、該第1バッファから該複数の他の順序回路までの配線長、または、該第2バッファから該次段バッファまでの配線長であることを特徴とする、付記1〜付記7のいずれか一項に記載の設計支援装置。
(付記10)
メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、プロセッサにより設計支援を行なう方法であって、
前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする設計支援方法。
(付記11)
該第1バッファに複数の他の順序回路が接続されていない場合、前記物理設計データに基づき、複数の他の順序回路が接続されているバッファと、接続されている前記複数の他の順序回路との距離の平均および分散を有する正規分布を算出し、該正規分布の所定範囲の上限に対応する距離を前記最大値とし、該正規分布の所定範囲の下限に対応する距離を前記最小値とする
ことを特徴とする、付記10に記載の設計支援方法。
(付記12)
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にない場合、前記物理設計データに基づき、追加される前記順序回路に対し該第1バッファよりも上段側の第2バッファからクロック信号分配可能な距離の最大値と、追加される前記順序回路に対し該第2バッファからクロック信号分配可能な距離の最小値とを算出し、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にある場合、追加される前記順序回路に対し、該第2バッファから供給するクロック信号の配線処理を行なう
ことを特徴とする、付記10または付記11に記載の設計支援方法。
(付記13)
メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、設計支援を行なうプロセッサに、
前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
処理を実行させることを特徴とする設計支援プログラム。
(付記14)
該第1バッファに複数の他の順序回路が接続されていない場合、前記物理設計データに基づき、複数の他の順序回路が接続されているバッファと、接続されている前記複数の他の順序回路との距離の平均および分散を有する正規分布を算出し、該正規分布の所定範囲の上限に対応する距離を前記最大値とし、該正規分布の所定範囲の下限に対応する距離を前記最小値とする
ことを特徴とする、付記13に記載の設計支援プログラム。
(付記15)
前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にない場合、前記物理設計データに基づき、追加される前記順序回路に対し該第1バッファよりも上段側の第2バッファからクロック信号分配可能な距離の最大値と、追加される前記順序回路に対し該第2バッファからクロック信号分配可能な距離の最小値とを算出し、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にあるか否かを判定し、
前記判定の結果、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にある場合、追加される前記順序回路に対し、該第2バッファから供給するクロック信号の配線処理を行なう
処理を、前記プロセッサに実行させることを特徴とする、付記13または付記14に記載の設計支援プログラム。
1 設計支援装置
10 記憶部(メモリ)
20 処理部(プロセッサ)
21 データ読込部
22 バッファ近傍算出部
22a 最終段バッファ近傍算出部
22b 追加バッファ近傍算出部
22c 非最終段バッファ近傍算出部
23 検索部
24 判定部
24a 配線距離最短近傍算出部
25 クロック分配部
26 結果保存部

Claims (7)

  1. バッファを有するクロック分配回路を含む回路の物理設計データを格納するメモリと、
    プロセッサとを有し、
    前記プロセッサは、
    前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記メモリに格納された前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
    前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
    ことを特徴とする設計支援装置。
  2. 前記プロセッサは、
    該第1バッファに複数の他の順序回路が接続されていない場合、前記メモリに格納された前記物理設計データに基づき、複数の他の順序回路が接続されているバッファと、接続されている前記複数の他の順序回路との距離の平均および分散を有する正規分布を算出し、該正規分布の所定範囲の上限に対応する距離を前記最大値とし、該正規分布の所定範囲の下限に対応する距離を前記最小値とする
    ことを特徴とする、請求項1に記載の設計支援装置。
  3. 前記プロセッサは、
    前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にない場合、前記メモリに格納された前記物理設計データに基づき、追加される前記順序回路に対し該第1バッファよりも上段側の第2バッファからクロック信号分配可能な距離の最大値と、追加される前記順序回路に対し該第2バッファからクロック信号分配可能な距離の最小値とを算出し、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にあるか否かを判定し、
    前記判定の結果、追加される前記順序回路と該第2バッファとの距離が前記クロック信号分配可能な距離の最大値と最小値との間にある場合、追加される前記順序回路に対し、該第2バッファから供給するクロック信号の配線処理を行なう
    ことを特徴とする、請求項1または請求項2に記載の設計支援装置。
  4. 前記プロセッサは、
    追加される前記順序回路と複数の該第1バッファとの距離が前記最大値と前記最小値との間にある場合、前記複数の該第1バッファのうちファンアウト数が最も少ないものを選択し、追加される前記順序回路に対し、選択された該第1バッファから供給するクロック信号の配線処理を行なう
    ことを特徴とする、請求項1〜請求項のいずれか一項に記載の設計支援装置。
  5. 前記プロセッサは、
    追加される前記順序回路と複数の該第1バッファとの距離が前記最大値と前記最小値との間にある場合、前記複数の該第1バッファのうち、追加される前記順序回路への配線距離が最小のものを選択し、追加される前記順序回路に対し、選択された該第1バッファから供給するクロック信号の配線処理を行なう
    ことを特徴とする、請求項1〜請求項のいずれか一項に記載の設計支援装置。
  6. メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、プロセッサにより設計支援を行なう方法であって、
    前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
    前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
    ことを特徴とする設計支援方法。
  7. メモリに格納された、バッファを有するクロック分配回路を含む回路の物理設計データに基づき、設計支援を行なうプロセッサに、
    前記クロック分配回路に含まれる第1バッファによって分配されるクロック信号が入力される順序回路を追加する際に該第1バッファに複数の他の順序回路が接続されている場合、前記物理設計データに基づき、追加される前記順序回路と該第1バッファとの距離が、該第1バッファから該複数の他の順序回路までの距離の最大値と最小値との間にあるか否かを判定し、
    前記判定の結果、追加される前記順序回路と該第1バッファとの距離が前記最大値と前記最小値との間にある場合、追加される前記順序回路に対し、該第1バッファから供給するクロック信号の配線処理を行なう
    処理を実行させることを特徴とする設計支援プログラム。
JP2013556139A 2012-02-01 2012-02-01 設計支援装置,設計支援方法および設計支援プログラム Expired - Fee Related JP5772990B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013556139A JP5772990B2 (ja) 2012-02-01 2012-02-01 設計支援装置,設計支援方法および設計支援プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013556139A JP5772990B2 (ja) 2012-02-01 2012-02-01 設計支援装置,設計支援方法および設計支援プログラム
PCT/JP2012/052262 WO2013114586A1 (ja) 2012-02-01 2012-02-01 設計支援装置,設計支援方法および設計支援プログラム

Publications (2)

Publication Number Publication Date
JPWO2013114586A1 JPWO2013114586A1 (ja) 2015-05-11
JP5772990B2 true JP5772990B2 (ja) 2015-09-02

Family

ID=48904664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013556139A Expired - Fee Related JP5772990B2 (ja) 2012-02-01 2012-02-01 設計支援装置,設計支援方法および設計支援プログラム

Country Status (3)

Country Link
US (1) US20140337657A1 (ja)
JP (1) JP5772990B2 (ja)
WO (1) WO2013114586A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6819306B2 (ja) * 2017-01-13 2021-01-27 富士通株式会社 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US10699053B1 (en) * 2018-01-17 2020-06-30 Xilinx, Inc. Timing optimization of memory blocks in a programmable IC
US10684642B2 (en) * 2018-03-20 2020-06-16 International Business Machines Corporation Adaptive clock mesh wiring
CN112906338B (zh) * 2021-03-30 2022-11-29 飞腾信息技术有限公司 对物理分区结构进行时钟设计的方法、系统和介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3172211B2 (ja) * 1991-09-05 2001-06-04 富士通株式会社 回路合成システム
JP3184135B2 (ja) * 1997-11-27 2001-07-09 日本電気アイシーマイコンシステム株式会社 半導体集積回路のレイアウト方法
US6230302B1 (en) * 1998-07-20 2001-05-08 International Business Machines Corporation Method and system for performing timing analysis on an integrated circuit design
JP2001135725A (ja) * 1999-11-05 2001-05-18 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法およびこれを用いた半導体集積回路装置
JP2002007500A (ja) * 2000-06-27 2002-01-11 Nec Microsystems Ltd クロックツリー設計方法
JP2007336003A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム
JP5277700B2 (ja) * 2008-04-14 2013-08-28 日本電気株式会社 クロック分配回路、半導体集積回路、およびクロック分配方法
JPWO2012124117A1 (ja) * 2011-03-17 2014-07-17 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム
US8635579B1 (en) * 2012-12-31 2014-01-21 Synopsys, Inc. Local clock skew optimization

Also Published As

Publication number Publication date
JPWO2013114586A1 (ja) 2015-05-11
WO2013114586A1 (ja) 2013-08-08
US20140337657A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
US8418110B2 (en) Using port obscurity factors to improve routing
JP2009140495A (ja) 確率的相互接続構造設計のためのシステムおよび方法
WO2012124117A1 (ja) タイミングエラー除去方法、設計支援装置、及びプログラム
JP5772990B2 (ja) 設計支援装置,設計支援方法および設計支援プログラム
US8234612B2 (en) Cone-aware spare cell placement using hypergraph connectivity analysis
JP2004502259A (ja) 階層型金属末端、包囲、および曝露をチェックする方法およびシステム
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
US8621407B2 (en) Apparatus and method for supporting circuit design, and semiconductor integrated circuit
JP2015166981A (ja) レイアウト検証方法、検証装置、及び検証プログラム
JP5515255B2 (ja) 自動配線装置、自動配線方法および自動配線プログラム
JP2011065319A (ja) 情報処理装置
JP2011242825A (ja) 消費電力情報算出プログラム、消費電力情報算出方法、及び消費電力情報算出装置
Sham et al. Congestion prediction in early stages of physical design
JP5194461B2 (ja) 電流密度制限チェック方法及び電流密度制限チェック装置
JP4966838B2 (ja) クロック配線処理装置、クロック配線処理方法、及びプログラム
JP5309538B2 (ja) 半導体集積回路の設計方法
US8966418B2 (en) Priority based layout versus schematic (LVS)
JP2004022864A (ja) ツリー構造型回路生成方法およびツリー構造型回路生成プログラム
JP4973561B2 (ja) 半導体集積回路の設計方法。
US20120216163A1 (en) Timing analysis method, timing analysis apparatus, and non-transitory computer readable medium storing timing analysis program
JP6645114B2 (ja) 設計支援プログラム、情報処理装置、および設計支援方法
JP2007148863A (ja) 半導体集積回路のレイアウト方法およびレイアウト処理プログラム
JP4464981B2 (ja) ディレイ判定方法及びディレイ判定プログラム
JP2005202610A (ja) 仮想配線長見積り装置、仮想配線長見積り方法、仮想配線用見積り用制御プログラムおよび可読記憶媒体
JP2007257373A (ja) 自動配置方法、装置、及びプログラム

Legal Events

Date Code Title Description
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: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150615

R150 Certificate of patent or registration of utility model

Ref document number: 5772990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees