JP2015072556A - 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路 - Google Patents

設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路 Download PDF

Info

Publication number
JP2015072556A
JP2015072556A JP2013207269A JP2013207269A JP2015072556A JP 2015072556 A JP2015072556 A JP 2015072556A JP 2013207269 A JP2013207269 A JP 2013207269A JP 2013207269 A JP2013207269 A JP 2013207269A JP 2015072556 A JP2015072556 A JP 2015072556A
Authority
JP
Japan
Prior art keywords
clock
wiring
wirings
design support
vertical trunk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013207269A
Other languages
English (en)
Inventor
智靖 北浦
Tomoyasu Kitaura
智靖 北浦
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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2013207269A priority Critical patent/JP2015072556A/ja
Priority to US14/497,876 priority patent/US20150095871A1/en
Publication of JP2015072556A publication Critical patent/JP2015072556A/ja
Pending legal-status Critical Current

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/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/396Clock trees
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • H01L27/118Masterslice integrated circuits
    • H01L27/11803Masterslice integrated circuits using field effect technology
    • H01L27/11807CMOS gate arrays
    • H01L2027/11868Macro-architecture
    • H01L2027/11874Layout specification, i.e. inner core region
    • H01L2027/11877Avoiding clock-skew or clock-delay

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

【課題】配線量の低減を図ること。【解決手段】設計支援装置100は、対象回路に設けられる複数のレシーバrvの各位置と、対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータ101を取得する。設計支援装置100は、取得したレイアウトデータ101に基づいて、第1クロック配線w1の配線層と異なる対象回路の配線層に設けられる第2クロック配線w2であって第1クロック配線w1と方向が直交する第2クロック配線w2の数と第2クロック配線w2の位置との複数の組み合わせの各々について、複数のレシーバrvの各々を第2クロック配線w2のいずれかと結線する各配線ldwの長さに応じた値を算出する。【選択図】図1

Description

本発明は、設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路に関する。
従来、半導体集積回路のクロック配線の設計の一種としてクロックメッシュ設計が公知である。クロックメッシュ設計では、クロック配線が水平方向と垂直方向に格子状に一定間隔で設けられる。複数のクロックドライバの出力が水平方向または垂直方向のクロック配線にショートされるため、クロックメッシュ設計では、クロックスキューのばらつきを低減させることができる。
クロックメッシュ設計において、例えば、クロックスキューを低減させるようにクロックバッファの位置を決定する技術が公知である(例えば、下記特許文献1参照。)。また、クロック供給回路が論理回路群の中央部に配置され、上層配線として、論理回路上に幅広の主配線が形成され、上層配線として、論理回路の位置関係が考慮されて主配線からブランチ配線が形成される技術が公知である(例えば、下記特許文献2参照。)。また、クロック信号が供給される回路ブロックを囲む様にクロックバスが配線されることにより、クロックドライバからの配線におけるクロックスキューの少ないゲートアレイが実現される技術が公知である(例えば、下記特許文献3参照。)。
特開2007−300067号公報 特開平5−121548号公報 特開平5−267625号公報
しかしながら、クロックメッシュ設計においては各クロック配線が一定間隔で設けられるため、クロック配線の配線量が多くなる場合がある。
1つの側面では、本発明は、配線量の低減を図ることができる設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路を提供することを目的とする。
本発明の一側面によれば、対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、取得した前記レイアウトデータに基づいて、前記第1クロック配線の配線層と異なる前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する設計支援方法、設計支援プログラム、および設計支援装置が提案される。
本発明の他の側面によれば、半導体集積回路が有する複数の部分領域の各々は、複数のクロックレシーバと、第1クロック配線と、前記第1クロック配線と方向が直交する第2クロック配線と、前記複数のクロックレシーバと前記第2クロック配線を接続する引き込み配線と、前記複数のクロックレシーバの少なくとも1つと前記引き込み配線を介してクロック信号が供給される回路と、を含み、前記複数の部分領域の中の第1部分領域においては、前記第2クロック配線の数が1であり、前記第2クロック配線の配線幅が基準配線幅であり、前記複数の部分領域の中の第2部分領域においては、前記第2クロック配線の数がn(nは2以上の整数)であり、前記n個の第2クロック配線の配線幅がそれぞれ、前記基準配線幅とは異なる半導体集積回路が提案される。
本発明の一態様によれば、配線量の低減を図ることができる。
図1は、本発明にかかる設計支援装置による一動作例を示す説明図である。 図2は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。 図3は、設計支援装置の機能的構成を示すブロック図である。 図4は、横基幹配線の配置例を示す説明図である。 図5は、分割例1を示す説明図である。 図6は、分割例2を示す説明図である。 図7は、縦基幹配線の数が1の場合における縦基幹配線の配置例を示す説明図である。 図8は、縦基幹配線の数が2の場合におけるレシーバのグループ化例を示す説明図である。 図9は、縦基幹配線の数が2の場合における縦基幹配線の配置例を示す説明図(その1)である。 図10は、縦基幹配線の数が2の場合における縦基幹配線の配置例を示す説明図(その2)である。 図11は、縦基幹配線の数が2の場合における縦基幹配線の配置例を示す説明図(その3)である。 図12は、縦基幹配線の数が2の場合における縦基幹配線の配置例を示す説明図(その4)である。 図13は、縦基幹配線の数が3の場合におけるレシーバのグループ化例1を示す説明図である。 図14は、縦基幹配線の数が3の場合における縦基幹配線の配置例1を示す説明図である。 図15は、縦基幹配線の数が3の場合におけるレシーバのグループ化例2を示す説明図である。 図16は、縦基幹配線の数が3の場合における縦基幹配線の配置例2を示す説明図である。 図17は、縦基幹配線の数が3の場合における縦基幹配線の配置例3を示す説明図である。 図18は、設計支援装置による設計支援処理手順例を示すフローチャートである。 図19は、実施例1にかかる設計支援装置による決定処理手順例を示すフローチャートである。 図20は、設計支援装置による関数処理手順例を示すフローチャートである。 図21は、グループAについて評価処理手順を示すフローチャートである。 図22は、グループBについて評価処理手順を示すフローチャートである。 図23は、縦基幹配線の数が5の場合についての縦基幹配線の配置例を示す説明図である。 図24は、縦基幹配線の数が4の場合についての縦基幹配線の配置例を示す説明図である。 図25は、縦基幹配線の数が3の場合についての縦基幹配線の配置例を示す説明図である。 図26は、縦基幹配線の数が2の場合についての縦基幹配線の配置例を示す説明図である。 図27は、縦基幹配線の数が1の場合についての縦基幹配線の配置例を示す説明図である。 図28は、実施例2にかかる設計支援装置による決定処理手順の一例を示すフローチャートである。 図29は、クロック配線の構造例を示す説明図である。 図30は、プリメッシュツリーの一例を示す説明図である。 図31は、プリメッシュツリーとクロックメッシュ配線とを重ねた例を示す説明図である。 図32は、クロックメッシュ配線とドライバの構造例を示す説明図である。 図33は、クロックメッシュ配線とレシーバとドライバの構造例を示す説明図である。 図34は、クロックメッシュ配線からFFまでの配線の構造例を示す説明図である。 図35は、層構造例を示す説明図である。 図36は、縦基幹配線が規則的に配置された場合の3次元でのクロックメッシュ配線の構造例を示す説明図である。 図37は、本実施の形態において縦基幹配線が配置された場合の3次元でのクロックメッシュ配線の構造例を3次元で示す説明図である。 図38は、プリメッシュツリーの構造例を3次元で示す説明図である。 図39は、横基幹配線とドライバの構造例を3次元で示す説明図である。 図40は、クロックメッシュ配線とドライバとレシーバとの構造例を3次元で示す説明図である。 図41は、クロックメッシュ配線とレシーバとFFとの構造例を3次元で示す説明図である。
以下に添付図面を参照して、本発明にかかる設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路の実施の形態を詳細に説明する。
図1は、本発明にかかる設計支援装置による一動作例を示す説明図である。設計支援装置100は、クロックメッシュ配線の設計を支援するコンピュータである。まず、設計支援装置100は、対象回路に設けられる複数のクロックレシーバrvの各位置と、対象回路に設けられる第1クロック配線w1の位置と、を示すレイアウトデータ101を取得する。ここでの対象回路とは、設計対象回路内の回路ブロックが設けられる所定領域が区切られた部分領域に設けられる回路である。クロックレシーバrv−1〜rv−3は、クロックドライバの一種であって、クロックメッシュ配線において、FF(Flip Flop)などのクロック信号を受け付けるセルにクロック信号を出力するセルである。以降、クロックレシーバrvを省略してレシーバrvと称し、クロックドライバを省略してドライバと称する。
設計支援装置100は、取得したレイアウトデータ101に基づいて、複数の組み合わせの各々について、複数のレシーバrv−1〜rv−3の各々を第2クロック配線w2のいずれかと結線する各配線の長さに応じた評価値を算出する。組み合わせは、第2クロック配線w2の数と第2クロック配線w2の位置とである。第2クロック配線w2は、第1クロック配線w1の配線層と異なる対象回路の配線層に設けられるクロック配線であって第1クロック配線w1と方向が直交するクロック配線である。また、第2クロック配線w2は、第1クロック配線w1間を接続する。図1では、4つの組み合わせを例に挙げる。また、ここでは、複数のレシーバrv−1〜rv−3の各々を第2クロック配線w2のいずれかと結線する配線の各々は、引き込み配線ldwと称する。
例えば、まず、設計支援装置100は、第2クロック配線w2の数を決定する。そして、設計支援装置100は、決定した数の各第2クロック配線の位置を決定する。つぎに、設計支援装置100は、決定した位置に基づいて各レシーバrvをいずれの第2クロック配線に結線させるかを決定する。その後、設計支援装置100は、結線させるレシーバrvの位置と第2クロック配線の位置とに基づいて評価値を算出する。または、例えば、まず、設計支援装置は、第2クロック配線w2の数を決定する。そして、設計支援装置100は、決定した数の各第2クロック配線のいずれにレシーバrvを結線させるかを決定する。そして、設計支援装置100は、結線させるレシーバrvの位置の重心に応じて第2クロック配線の位置を決定する。その後、設計支援装置100は、結線させるレシーバrvの位置と第2クロック配線の位置とに基づいて評価値を算出する。
例えば、長さに応じた評価値は、引き込み配線ldwの合計の長さである。また、例えば、設計支援装置100は、複数の組み合わせの各々について、各引き込み配線ldwの合計の長さと、第2クロック配線w2の合計の長さと、の合計値を評価値として算出してもよい。また、設計支援装置100は、複数の組み合わせの各々について、各引き込み配線ldwの幅と算出した長さに応じた値とに基づく引き込み配線ldwの合計の容量値を算出する。そして、設計支援装置100は、第2クロック配線w2の数に応じて決定した第2クロック配線w2の配線幅と第2クロック配線w2の合計の長さとに基づく第2クロック配線w2の合計の容量値を算出する。そして、設計支援装置100は、2つの合計の容量値の合計値を評価値として算出してもよい。また、例えば、第2クロック配線w2の数が1の場合についての基準配線幅が予め定められてあり、各第2クロック配線w2の配線幅は、基準配線幅を第2クロック配線w2の数によって割った値とする。これにより、第2クロック配線w2の数に関係なく、部分領域内の第1クロック配線w1間の第2クロック配線w2の合成抵抗の値を一定にすることができ、ばらつきを低減させることができる。したがって、クロックスキューのばらつきをより低減させることができる。
このように、設計支援装置100は、第2クロック配線w2の数と第2クロック配線w2の位置との複数の組み合わせの各々について、評価値を算出する。これにより、配線量が少ない第2クロック配線w2の数と第2クロック配線w2の位置とを選択させることができる。したがって、配線量の低減を図ることができる。また、クロックメッシュ配線の抵抗値および容量値を少なくすることができ、クロックスキューのばらつきを低減させることができる。
また、例えば、設計支援装置100は、組み合わせの各々と、組み合わせについて算出した評価値と、を関連付けて設計支援装置100がアクセス可能な記憶装置に記憶させる。
また、設計支援装置100は、複数の組み合わせの各々について算出した評価値に基づいて、複数の組み合わせの中からいずれかの組み合わせを選択する。長さに応じた評価値が各配線の合計の長さである場合、設計支援装置100は、算出した合計の長さが最も短い組み合わせを選択する。また、例えば、設計支援装置100は、選択結果を最適な組み合わせとして設計支援装置100がアクセス可能な記憶装置に記憶させる。
また、第2クロック配線w2の数は、複数のレシーバrvの数以下とする。これにより、組み合わせの数を減少させることができ、設計支援装置100による算出処理を高速化することができる。
(設計支援装置100のハードウェア構成例)
図2は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。図2において、設計支援装置100は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、ディスクドライブ204と、ディスク205と、を有する。設計支援装置100は、I/F206と、入力装置207と、出力装置208と、を有する。また、各部はバス200によってそれぞれ接続される。
ここで、CPU201は、設計支援装置100の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。ディスクドライブ204は、CPU201の制御にしたがってディスク205に対するデータのリード/ライトを制御する。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する。ディスク205としては、磁気ディスク、光ディスクなどが挙げられる。
I/F206は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F206は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F206には、例えばモデムやLANアダプタなどを採用することができる。
入力装置207は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置207は、カメラから画像や動画を取り込むこともできる。また、入力装置207は、マイクから音声を取り込むこともできる。出力装置208は、CPU201の指示により、データを出力するインターフェースである。出力装置208には、ディスプレイやプリンタが挙げられる。
(設計支援装置100の機能的構成例)
図3は、設計支援装置の機能的構成を示すブロック図である。設計支援装置100は、取得部301と、横基幹配線配置部302と、分割部303と、決定部304と、算出部305と、選択部306と、を含む。各部の処理は、例えば、CPU201がアクセス可能な記憶装置に記憶された設計支援プログラムにコーディングされる。そして、CPU201が記憶装置から設計支援プログラムを読み出して、設計支援プログラムにコーディングされてある処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、例えば、RAM203、ディスク205などの記憶装置に記憶される。
取得部301は、設計対象回路内の所定領域に設けられるドライバおよびドライバと、ドライバおよびドライバの位置を示すレイアウトデータ311を取得する。所定領域とは、例えば、設計対象回路内の回路ブロックが設けられる領域である。回路ブロック内のFFなどのセルには、例えば、クロック供給回路からのクロック信号がクロック配線、ドライバ等を介して入力される。ドライバとは、バッファなどのドライバdrである。レシーバrvとは、バッファなどであって、クロック信号によって同期を行うFFなどのセルと接続される。
つぎに、横基幹配線配置部302は、取得されたレイアウトデータ311に基づいて、取得されたレイアウトデータが示すドライバdrの位置に基づいて第1クロック配線と、第1クロック配線の位置と、を示すレイアウトデータ312を生成する。ここで、第1クロック配線を横基幹配線と称する。
図4は、横基幹配線の配置例を示す説明図である。図4に示すように、所定領域areaには、ドライバdrとレシーバrvとが設けられる。縦の位置が同一のドライバdrの出力同士が横基幹配線w1によって結線されるように横基幹配線w1が配置される。クロックメッシュ方式では、クロック信号を複数のドライバdrによって駆動させるため、クロックスキューを低減させることができる。
取得部301は、設計対象回路内の所定領域areaに設けられるドライバdrおよびレシーバrvと、ドライバdrおよびレシーバrvの位置と、横基幹配線w1と、横基幹配線w1の位置と、を示すレイアウトデータ311を取得する。
つぎに、分割部303は、取得したレイアウトデータ311に基づいて、設計対象回路内の所定領域areaを分割した複数の領域paの各々を示す領域情報を生成する。領域情報には、各領域paの頂点の座標などを有する。例えば、図5と図6とにそれぞれ分割例を示す。
図5は、分割例1を示す説明図である。図5に示すように、分割部303は、近いドライバdr間の中点を境界として、横基幹配線w1と当該境界との間の領域paを単位として分割する。一点鎖線が境界を示す。
図6は、分割例2を示す説明図である。図6に示すように、分割部303は、ドライバdrを境界として、横基幹配線w1と境界との間の領域paを単位として分割する。一点鎖線が境界を示す。
また、ドライバdr間の位置が所定距離以内の場合には、分割部303は、複数の領域paを合わせて1つの領域paとしてもよい。所定距離は、例えば、利用者が予め定める値である。このように、各領域paのサイズが小さすぎないようにすることができる。
また、ここでは、取得部301は、分割前のレイアウトデータ311を取得しているが、分割された各領域paについてのレイアウトデータを取得してもよい。
算出部305は、レイアウトデータ311に基づいて、第2クロック配線の数と第2クロック配線の位置との複数の組み合わせの各々について、複数のレシーバrvの各々を第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する。第2クロック配線は、レイアウトデータ311が示す横基幹配線w1の配線層と異なる配線層に設けられるクロック配線であって、第1クロック配線と方向が直交するクロック配線である。ここで、第2クロック配線は、縦基幹配線w2と称する。例えば、縦基幹配線w2の数はNとする。例えば、縦基幹配線w2の数Nは領域pa内のレシーバrvの数以下とする。また、算出部305は、縦基幹配線w2の数と、縦基幹配線w2に結線されるレシーバrvの重心に基づく縦基幹配線w2の位置と、の複数の組み合わせの各々について評価値を算出する。レシーバrvの重心に基づく縦基幹配線w2の位置とは、例えば、当該重心に重なる位置である。より具体的には、複数の組み合わせについては、決定部304によって決定される。ここで、決定部304、算出部305、選択部306について実施例1と実施例2を用いて詳細に説明する。
(実施例1)
実施例1では、縦基幹配線w2の数Nを1から順に増やしながら再帰的に組み合わせを決定し、決定した各組み合わせについての評価値を算出することにより、配線量が少ない縦基幹配線w2の数と縦基幹配線w2の位置を決定する。
図7は、縦基幹配線の数が1の場合における縦基幹配線の配置例を示す説明図である。まず、決定部304は、縦基幹配線w2の数Nが1の場合について、縦基幹配線w2の位置を決定する。例えば、縦基幹配線w2の位置は、領域pa内のレシーバrvのX座標の重心位置とする。ここで、縦基幹配線w2の数Nが1の場合における縦基幹配線w2の配線幅は予め定められていることとする。また、例えば、縦基幹配線w2の位置は、領域pa内のレシーバrvのうち、横基幹配線w1との距離が所定距離以上あるレシーバrvのX座標の重心位置とする。所定距離については、予めディスク205などの記憶装置に記憶されてあることとする。このように、横基幹配線w1との距離が近いレシーバrvは、横基幹配線w1と配線させることとし、縦基幹配線w2の位置の決定の条件から除外してもよい。
つぎに、算出部305は、決定した位置に縦基幹配線w2を配置した場合において、縦基幹配線w2とレシーバrvとを結線可能な配線の長さに基づく評価値を算出する。評価値は、例えば、配線の長さそのものであってもよいし、配線の長さと配線の幅とに基づく配線の容量値であってもよい。配線の幅については、予め定められていることとする。そして、縦基幹配線w2の数と縦基幹配線w2の位置との組み合わせと、算出した評価値とは、関連付けられてディスク205などの記憶装置に記憶される。
つぎに、縦基幹配線w2の数が2の場合についての縦基幹配線w2の位置について説明する。縦基幹配線w2の数が2以上の場合、決定部304は、領域pa内のレシーバrvを縦基幹配線w2の数のグループのいずれかにグループ化する。そして、決定部304は、グループに含まれるレシーバrvの位置の重心に基づいて、各縦基幹配線w2の位置を決定する。つぎに、算出部305は、決定した位置に各縦基幹配線w2を配置した場合において、縦基幹配線w2とレシーバrvとを結線可能な配線の長さに基づく評価値を算出する。そして、縦基幹配線w2の数と縦基幹配線w2の位置との組み合わせと算出した評価値とは、関連付けられてディスク205などの記憶装置に記憶される。本実施の形態では、決定部304は、レシーバrvをグループAとグループBとにグループ化する。ここで、グループAに含まれるレシーバrvの数をmとする。また、本実施の形態では、決定部304は、グループについて、階層化してあらたなグループを生成する。階層数は、Hとする。
図8は、縦基幹配線の数が2の場合におけるレシーバのグループ化例を示す説明図である。図8の例では、縦基幹配線w2の数Nが2であり、レシーバrvの数mが1であり、階層数Hは1である。G(H=1,A)はグループAを示し、階層数Hが1であることを示す。G(H=1,B)はグループBを示し、階層数Hが1であることを示す。グループAは、例えば、レシーバrv−1が含まれる。グループBは、例えば、レシーバrv−2からレシーバrv−7が含まれる。
図9から図12は、縦基幹配線の数が2の場合における縦基幹配線の配置例を示す説明図である。決定部304は、各グループについて、グループに含まれるレシーバrvの重心の位置に縦基幹配線w2を配置した場合における縦基幹配線w2とレシーバrvとを結線する引き込み配線ldwの各長さを特定する。縦基幹配線w2とレシーバrvとを結線する配線は、引き込み配線ldwと称する。そして、決定部304は、引き込み配線ldwの各長さに基づく評価値を算出する。図9の例では、グループAについては、レシーバrvが1つしか含まれないため、引き込み配線ldwの長さは0である。図10の例では、レシーバrvの数mが2であり、図11の例では、レシーバrvの数mが3である。図12の例では、レシーバrvの数mが4である。
例えば、レシーバrvの数mが4の場合の評価値が、レシーバrvの数mが3の場合の評価値よりも大きくなる。すなわち、選択部306は、階層数Hが1の場合におけるグループAのレシーバrvの数mを増加させても評価値が減少しない場合、縦基幹配線w2の数nが2の場合における最適な組み合わせを選択する。つぎに、決定部304は、縦基幹配線w2の数nを増やす。
図13は、縦基幹配線の数が3の場合におけるレシーバのグループ化例1を示す説明図である。図13の例では、図8に示した縦基幹配線w2の数が2の場合におけるグループBに含まれるレシーバrvを階層数2におけるグループAとグループBとにグループ化する。図9〜図12と同様に、決定部304は、階層数Hが1の場合におけるグループBに含まれるレシーバrvをグループ化するため、階層数Hが2の場合におけるレシーバrvの数mも1から順に増やす。そして、算出部305は、同様に評価値を算出する。
図14は、縦基幹配線の数が3の場合における縦基幹配線の配置例1を示す説明図である。図14の例では、縦基幹配線w2の数Nが3であり、階層数Hが2の場合におけるレシーバrvの数mが1である。
図15は、縦基幹配線の数が3の場合におけるレシーバのグループ化例2を示す説明図である。図16は、縦基幹配線の数が3の場合における縦基幹配線の配置例2を示す説明図である。図15および図16の例では、階層数Hが2の場合においてレシーバrvの数mを2にしたため、階層数Hが2の場合におけるグループAのレシーバrvの数mが2である。
図17は、縦基幹配線の数が3の場合における縦基幹配線の配置例3を示す説明図である。階層数Hが1の場合におけるグループAのレシーバrvの数mが2である場合に、グループBに含まれるレシーバrvに対して縦基幹配線w2が2つ配置された例である。
このように、グループBを再帰的に細分化することにより縦基幹配線w2の数と縦基幹配線w2の位置とのより多くの複数の組み合わせについて評価値が算出される。例えば、選択部306は、階層数Hが2の場合におけるグループAのレシーバrvの数mを増加させても評価値が減少しない場合、レシーバrvの数mを増加させる前の組み合わせを縦基幹配線w2の数nが3の場合における最適な組み合わせとして選択する。そして、選択部306は、選択した縦基幹配線w2の数nが2の場合における最適な組み合わせについての評価値と、選択した縦基幹配線w2の数nが3の場合における最適な組み合わせについての評価値とを比較する。評価値が引き込み配線ldwおよび縦基幹配線w2の合計の長さであれば、選択部306は、評価値が小さい方の組み合わせを最適な組み合わせとして選択する。
(設計支援装置100による設計支援処理手順例)
図18は、設計支援装置による設計支援処理手順例を示すフローチャートである。設計支援装置100は、レイアウトデータ311を取得する(ステップS1801)。設計支援装置100は、横基幹配線w1を配置する(ステップS1802)。設計支援装置100は、所定領域areaを分割する(ステップS1803)。設計支援装置100は、分割した複数の領域paから処理対象となっていないいずれかの領域paから処理対象の領域paを選択する(ステップS1804)。設計支援装置100は、選択した領域pa内の縦基幹配線w2の数と配線幅と位置の決定処理を行う(ステップS1805)。つぎに、設計支援装置100は、複数の領域のうちの全領域が処理対象として終了したか否かを判断する(ステップS1806)。いずれかの領域が終了していない場合(ステップS1806:No)、設計支援装置100は、ステップS1804へ戻る。全領域が終了した場合(ステップS1806:Yes)、設計支援装置100は、一連の処理を終了する。
(実施例1にかかる設計支援装置100による決定処理手順例)
図19は、実施例1にかかる設計支援装置による決定処理手順例を示すフローチャートである。まず、設計支援装置100は、縦基幹配線w2の数n=1とする(ステップS1901)。設計支援装置100は、縦基幹配線w2の配線幅w=基準配線幅とする(ステップS1902)。上述したように、基準配線幅は予め定められ、ディスク205などの記憶装置に記憶される。
つぎに、設計支援装置100は、階層の数H=1とする(ステップS1903)。設計支援装置100は、レシーバrvの数M=選択した領域pa内のレシーバrvの数とする(ステップS1904)。設計支援装置100は、関数処理Func(n,H,M)を行う(ステップS1905)。ステップS1905において、( )内は引数である。
設計支援装置100は、縦基幹配線w2の数n=n+1とする(ステップS1906)。設計支援装置100は、縦基幹配線w2の配線幅w=w/nとする(ステップS1907)。設計支援装置100は、関数処理Func(n,H,M)を行う(ステップS1908)。設計支援装置100は、COST(n−1)>COST(n)であるか否かを判断する(ステップS1909)。ここで、関数処理Funcの戻り値は、縦基幹配線w2の位置と評価値であり、評価値をCOST(n)とする。
COST(n−1)>COST(n)であると判断された場合(ステップS1909:Yes)、設計支援装置100は、n<Mであるか否かを判断する(ステップS1910)。n<Mであると判断された場合(ステップS1910:Yes)、設計支援装置100は、ステップS1906へ戻る。
n<Mでないと判断された場合(ステップS1910:No)、設計支援装置100は、縦基幹配線w2の数nの場合において選択した組み合わせを最適な組み合わせとして選択し(ステップS1911)、ステップS1913へ移行する。一方、設計支援装置100は、COST(n−1)>COST(n)でないと判断された場合(ステップS1909:No)、設計支援装置100は、縦基幹配線w2の数(n−1)の場合において選択した組み合わせを最適な組み合わせとして選択する(ステップS1912)。設計支援装置100は、選択結果を出力し(ステップS1913)、一連の処理を終了する。
図20は、設計支援装置による関数処理手順例を示すフローチャートである。設計支援装置100は、関数処理を行う際に、縦基幹配線w2の数nと、階層の数Hと、レシーバrvの数Mと、を引数として受け付ける。設計支援装置100は、m=1とする(ステップS2001)。設計支援装置100は、M−m≧n−1、かつn>1であるか否かを判断する(ステップS2002)。
M−m≧n−1、かつn>1であると判断された場合(ステップS2002:Yes)、設計支援装置100は、グループAにm個のレシーバrvが分類され、グループBにM−m個のレシーバrvが分類されるようにグループ化する(ステップS2003)。設計支援装置100は、グループAについて評価処理(H,A)を行う(ステップS2004)。Hは引数である。そして、設計支援装置100は、グループBについて評価処理(H,B)を行う(ステップS2005)。Hは引数である。
つぎに、設計支援装置100は、TotalCost(H,m)=cost(1,H,A,m)+cost(n−1,H,B,M−m)とする(ステップS2006)。つぎに、設計支援装置100は、ステップS2010へ移行する。一方、M−m≧n−1、またはn>1でないと判断された場合(ステップS2002:No)、設計支援装置100は、グループAにM個のレシーバrvが分類されるようにグループ化する(ステップS2007)。そして、設計支援装置100は、グループAについて評価処理(H,A)を行う(ステップS2008)。設計支援装置100は、TotalCost(H,m)=cost(1,H,A,m)とし(ステップS2009)、ステップS2010へ移行する。
設計支援装置100は、TotalCost(H,m−1)>TotalCost(H,m)であるか否かを判断する(ステップS2010)。TotalCost(H,m−1)>TotalCost(H,m)でないと判断された場合(ステップS2010:No)、設計支援装置100は、TotalCost(H,m−1)と各縦基幹配線w2の位置とを関連付けて戻り値にし(ステップS2011)、戻り値を呼び出し元に返して一連の処理を終了する。
一方、TotalCost(H,m−1)>TotalCost(H,m)であると判断された場合(ステップS2010:Yes)、設計支援装置100は、TotalCost(H,M)と各縦基幹配線w2の位置とを関連付けて出力する(ステップS2012)。出力形式としては、RAM203やディスク205などの記憶装置への出力が挙げられる。そして、設計支援装置100は、m=m+1とする(ステップS2013)。設計支援装置100は、m>Mであるか否かを判断する(ステップS2014)。
m>Mである場合(ステップS2014:Yes)、設計支援装置100は、TotalCost(H,m)と各縦基幹配線w2の位置とを関連付けて戻り値にし(ステップS2015)、戻り値を呼び出し元に返して一連の処理を終了する。m>Mでない場合(ステップS2014:No)、設計支援装置100は、ステップS2002へ戻る。
図21は、グループAについて評価処理手順を示すフローチャートである。設計支援装置100は、グループAに含まれるレシーバrvの位置の重心に基づいて縦基幹配線w2の位置を決定する(ステップS2101)。設計支援装置100は、縦基幹配線w2とレシーバrvとを結線する各引き込み配線の長さと引き込み配線の配線幅wとに基づいて引き込み配線の合計の容量値を算出する(ステップS2102)。
設計支援装置100は、縦基幹配線w2の配線幅wと縦基幹配線w2の合計の長さとに基づき縦基幹配線w2の合計の容量値を決定する(ステップS2103)。設計支援装置100は、cost(1,H,A,m)=引き込み配線の合計の容量値+縦基幹配線w2の合計の容量値とする(ステップS2104)。設計支援装置100は、縦基幹配線w2の位置とcost(1,H,A,m)とを関連付けて出力し(ステップS2105)、一連の処理を終了する。
図22は、グループBについて評価処理手順を示すフローチャートである。設計支援装置100は、Func(n−1,H+1,M−m)を行い(ステップS2201)、縦基幹配線w2の位置とcost(n−1,H,B,M−m)とを関連付けて出力し(ステップS2202)、一連の処理を終了する。
(実施例2)
実施例2では、レシーバrv間の距離に基づきグループをマージすることにより縦基幹配線w2の数Nを減らしながら縦基幹配線w2の位置と縦基幹配線w2の数Nとの組み合わせを決定し、決定した各組み合わせについての評価値を算出する。
決定部304は、縦基幹配線w2の数Nをレシーバrvの数から順に減らしながらレシーバrv間の距離に基づいて縦基幹配線w2の位置と縦基幹配線w2の数Nとの組み合わせを決定する。
図23は、縦基幹配線の数が5の場合についての縦基幹配線の配置例を示す説明図である。決定部304は、縦基幹配線w2の数が5の場合について、領域paに含まれるレシーバrvを5つのグループにグループ化する。そして、決定部304は、グループのそれぞれについて、グループに含まれるレシーバrvの位置の重心に基づいて縦基幹配線w2の位置を決定する。重心に基づく縦基幹配線w2の位置とは、重心と重複する位置であり、より具体的には、重心のX方向の座標が同じである。算出部305は、決定した位置に縦基幹配線w2を配置した場合における縦基幹配線w2とレシーバrvとを結線可能な配線の長さに基づく評価値を算出する。評価値については、実施例1と同一である。
図24は、縦基幹配線の数が4の場合についての縦基幹配線の配置例を示す説明図である。つぎに、決定部304は、縦基幹配線w2の数nが4の場合について、グループに含まれるレシーバrvのX方向の座標が最も近いグループを1つに統合することにより、領域paに含まれるレシーバrvを4つのグループにグループ化する。ここでは、レシーバrv−1とレシーバrv−2とが同一のグループとなる。
つぎに、決定部304は、グループのそれぞれについて、グループに含まれるレシーバrvの位置の重心に基づいて縦基幹配線w2の位置を決定する。そして、算出部305は、決定した位置に縦基幹配線w2を配置した場合における引き込み配線ldwの長さに基づく評価値を算出する。
選択部306は、縦基幹配線w2の数nが4の場合における組み合わせについての評価値と、縦基幹配線w2の数nが5の場合における組み合わせについての評価値と、を比較する。選択部306は、評価値が小さい方の組み合わせが縦基幹配線w2の数nが大きい方の組み合わせである場合、評価値が小さい方の組み合わせを最適な組み合わせに決定する。選択部306は、評価値が小さい方の組み合わせが縦基幹配線w2の数nが小さい方の組み合わせである場合、算出部305によって縦基幹配線w2の数nを1つ減らした場合における組み合わせについての評価値を算出させる。ここでは、縦基幹配線w2の数nが4の場合における組み合わせについての評価値の方が小さいため、算出部305は、縦基幹配線w2の数nが3の場合における組み合わせについて評価値を算出する。
図25は、縦基幹配線の数が3の場合についての縦基幹配線の配置例を示す説明図である。つぎに、決定部304は、縦基幹配線w2の数nが3の場合について、グループに含まれるレシーバrvのX座標が最も近いグループを1つに統合することにより、領域paに含まれるレシーバrvを3つのグループにグループ化する。ここでは、レシーバrv−4とレシーバrv−5とが同一のグループとなる。そして、算出部305は、縦基幹配線w2の数nが4の場合と同様に各評価値を算出する。
選択部306は、縦基幹配線w2の数nが4の場合における組み合わせについての評価値と、縦基幹配線w2の数nが3の場合における組み合わせについての評価値と、を比較する。ここでは、縦基幹配線w2の数nが3の場合における組み合わせについての評価値の方が小さいため、算出部305は、縦基幹配線w2の数nが3の場合における組み合わせについて評価値を算出する。
図26は、縦基幹配線の数が2の場合についての縦基幹配線の配置例を示す説明図である。つぎに、決定部304は、縦基幹配線w2の数nが2の場合について、グループに含まれるレシーバrvのX座標が最も近いグループを1つに統合することにより、領域paに含まれるレシーバrvを2つのグループにグループ化する。ここでは、レシーバrv−4とレシーバrv−5とを含むグループとレシーバrv3とが同一のグループとなる。そして、算出部305は、縦基幹配線w2の数nが4の場合と同様に各評価値を算出する。
選択部306は、縦基幹配線w2の数nが3の場合における組み合わせについての評価値と、縦基幹配線w2の数nが2の場合における組み合わせについての評価値と、を比較する。ここでは、縦基幹配線w2の数nが1の場合における組み合わせについての評価値の方が小さいため、算出部305は、縦基幹配線w2の数nが1の場合における組み合わせについて評価値を算出する。
図27は、縦基幹配線の数が1の場合についての縦基幹配線の配置例を示す説明図である。つぎに、算出部305は、縦基幹配線w2の数nが1の場合について、すべてのレシーバrvを1つのグループとし、縦基幹配線w2の数nが4の場合と同様に評価値を算出する。
選択部306は、縦基幹配線w2の数nが2の場合における組み合わせについての評価値と、縦基幹配線w2の数nが1の場合における組み合わせについての評価値と、を比較する。そして、選択部306は、評価値が小さい方の組み合わせを最適な組み合わせとして選択する。ここでは、例えば、縦基幹配線w2の数nが2の場合における組み合わせが最適な組み合わせとして選択される。
(実施例2にかかる設計支援装置100による設計支援処理手順例)
図28は、実施例2にかかる設計支援装置による決定処理手順の一例を示すフローチャートである。設計支援装置100が行う全体の設計支援処理手順については、図19に示した手順と同一であるため、詳細な説明を省略する。まず、設計支援装置100は、選択した領域pa内のレシーバrvのうち、横基幹配線w1から所定距離以内にあるレシーバrvを除外する(ステップS2801)。つぎに、設計支援装置100は、縦基幹配線w2の数n=選択した領域pa内のレシーバrvのうち、横基幹配線w1から所定距離以内にないレシーバrvの数とする(ステップS2802)。
そして、設計支援装置100は、選択した領域pa内のレシーバrvのうち、横基幹配線w1から所定距離以内にないレシーバrvをレシーバrv間の距離に基づいて縦基幹配線w2の数nのグループにグループ化する(ステップS2803)。設計支援装置100は、縦基幹配線w2の配線幅w=基準配線幅/縦基幹配線w2の数nとする(ステップS2804)。
つぎに、設計支援装置100は、各グループについて、グループに含まれるレシーバrvの位置の重心に基づいて縦基幹配線w2の位置を決定する(ステップS2805)。設計支援装置100は、各グループについて、縦基幹配線w2とレシーバrvとを結線する各引き込み配線の長さと引き込み配線の配線幅wとに基づいて引き込み配線の合計の容量値を算出する(ステップS2806)。
設計支援装置100は、各グループについて、縦基幹配線w2の配線幅wと縦基幹配線w2の合計の長さとに基づき縦基幹配線の合計の容量値を算出する(ステップS2807)。設計支援装置100は、各グループについて、算出した合計の容量値を合計する(ステップS2808)。設計支援装置100は、縦基幹配線w2の数nの場合の評価値が縦基幹配線w2の数(n+1)の場合の評価値よりも減少したか否かを判断する(ステップS2809)。縦基幹配線w2の数nの場合の評価値が縦基幹配線w2の数(n+1)の場合の評価値よりも減少していないと判断された場合(ステップS2809:No)、設計支援装置100は、ステップS2810へ移行する。設計支援装置100は、縦基幹配線w2の数(n+1)と(n+1)の場合についての縦基幹配線w2の位置と縦基幹配線w2の配線幅wとを最適な組み合わせとして選択し(ステップS2810)、一連の処理を終了する。
縦基幹配線w2の数nの場合の評価値が縦基幹配線w2の数(n+1)の場合の評価値よりも減少した場合(ステップS2809:Yes)、設計支援装置100は、n=1であるか否かを判断する(ステップS2811)。n=1であると判断された場合(ステップS2811:Yes)、設計支援装置100は、縦基幹配線w2の数nと縦基幹配線w2の位置と縦基幹配線w2の配線幅wとを最適な組み合わせとして選択し(ステップS2812)、一連の処理を終了する。n=1でないと判断された場合(ステップS2811:No)、設計支援装置100は、縦基幹配線w2の数n=n−1とし(ステップS2813)、ステップS2803へ戻る。
また、実施例1と実施例2とに限らず、縦基幹配線w2の数と位置との組み合わせは、アニーリング法などのそのほかの方法によって決定されてもよい。アニーリング法では、例えば、決定部304は、縦基幹配線w2の位置を決定する際に、縦基幹配線w2の位置を算出部305による評価値が小さくなる方向へ局所解とならないように乱数に基づいて縦基幹配線w2の位置を移動させる。そして、決定部304は、乱数による変動を小さくすることにより、最適な縦基幹配線w2の位置を決定する。例えば、レシーバrvの数が多い場合に有効である。
つぎに、図29〜図41を用いて上述した設計支援装置100を用いて設計したレイアウトデータに基づいて製造された半導体集積回路の配線例について説明する。
図29は、クロック配線の構造例を示す説明図である。クロック信号が入力されるクロック配線からHツリー構造のようなプリメッシュツリーのクロック配線では、所定領域areaの全面においてクロック信号を分配させるような配線とすることにより、各ドライバdrにクロック信号が分配される。
各ドライバdrは、出力を結合する横基幹配線w1にクロック信号を出力する。クロックメッシュ配線からレシーバrvとなるクロックバッファやGCB(Gated Clock Buffer)がクロック信号を受け取る。そして、レシーバrvがさらにFFなどへクロック信号を出力する。また、クロックメッシュ配線が直接FFに接続されクロック信号を伝搬させる場合もある。このようにして、各FFへクロック信号が出力されることにより、設計対象回路が形成される。
図30は、プリメッシュツリーの一例を示す説明図である。図31は、プリメッシュツリーとクロックメッシュ配線とを重ねた例を示す説明図である。Hツリーの各位置にクロックバッファなどのドライバdrが配置されることにより、プリメッシュツリーtreeが形成される。
図32は、クロックメッシュ配線とドライバの構造例を示す説明図である。ドライバdrは、横基幹配線w1に沿って配置され、横基幹配線w1にクロック信号を出力する。縦基幹配線w2が横基幹配線w1間を接続することにより、横基幹配線w1間に伝搬されるクロック信号の遅延ばらつきを小さくすることができる。
図33は、クロックメッシュ配線とレシーバとドライバの構造例を示す説明図である。図33に示すように、本実施の形態にかかる半導体集積回路は、複数の部分領域を有する。複数の部分領域の各々は、複数のレシーバrvと、第1クロック配線である横基幹配線w1と、横基幹配線w1と方向が直交する第2クロック配線である縦基幹配線w2と、を含む。複数のレシーバrvの少なくとも1つと前記引き込み配線を介してクロック信号が供給される回路と、を含む。複数の部分領域の中の第1部分領域においては、縦基幹配線w2の配線数が1であり、縦基幹配線w2の配線幅が基準配線幅である。複数の部分領域の中の第2部分領域においては、縦基幹配線w2の数がn(nは2以上の整数)であり、n個の縦基幹配線w2の配線幅がそれぞれ、基準配線幅とは異なる。また、第2部分領域において、n個の縦基幹配線w2の配線幅の合計が基準配線幅に等しい。また、第2部分領域において、n個の縦基幹配線w2の各々の配線幅の値は、基準配線幅の値をnで割った値に等しい。
また、縦基幹配線w2とレシーバrvを結線する配線がある。また、縦基幹配線w2よりも横基幹配線w1までの距離が近いレシーバrvであれば、横基幹配線w1とレシーバrvとが結線されてもよい。
図34は、クロックメッシュ配線からFFまでの配線の構造例を示す説明図である。レシーバrvとFFとを結線する引き込み配線ldwによって、レシーバrvを介してFFまでクロック信号が伝搬される。また、FFと縦基幹配線w2とをレシーバrvを介さず結線する引き込み配線ldwがあってもよい。
また、半導体集積回路は、複数のレシーバrvと縦基幹配線w2を接続する引き込み配線ldwを有し、複数のレシーバrvの少なくとも1つと引き込み配線ldwを介してクロック信号が供給される回路であるFFを有する。複数の部分領域の間で、縦基幹配線w2の数が、対応する部分領域に含まれる引き込み配線ldwの長さの合計に応じて異なる。複数の部分領域の間で、縦基幹配線w2の位置が、対応する部分領域に含まれる引き込み配線ldwの長さの合計に応じて異なる。複数の部分領域の間で、縦基幹配線w2の数が、対応する部分領域に含まれる引き込み配線ldwの容量値の合計に応じて異なる。また、複数の部分領域の間で、縦基幹配線w2の位置が、対応する部分領域に含まれる引き込み配線ldwの容量値の合計に応じて異なる。
図35は、層構造例を示す説明図である。設計対象回路は、クロックメッシュ配線が形成される基幹配線層と、Hツリーが形成されるプリメッシュツリー層と、引き込み配線とFFとを結線する配線などが形成されるローカルクロック配線層と、を有する。さらに、設計対象回路は、バッファ・インバータ・ICG・FFなどのセルが形成されるセル層を有する。このように、複数の層を用いてプリメッシュおよびメッシュ配線などの構造が構築される。
図36は、縦基幹配線が規則的に配置された場合の3次元でのクロックメッシュ配線の構造例を示す説明図である。図37は、本実施の形態において縦基幹配線が配置された場合の3次元でのクロックメッシュ配線の構造例を3次元で示す説明図である。従来では、図36に示すように縦基幹配線w2および横基幹配線w1は規則的に配置される。これに対して、図37に示すように、本実施の形態では、複数のドライバdrの出力を接続する横基幹配線w1が、複数配置される。横基幹配線w1間を接続する縦基幹配線w2は、横基幹配線w1間の抵抗値が一定値以下となるように配置される。縦基幹配線w2は、規則的に配置されるとは限らず、レシーバrvの位置に応じて対象回路内に敷設される。
図38は、プリメッシュツリーの構造例を3次元で示す説明図である。図38に示すように、Hツリーのようなプリメッシュツリーtreeでは所定領域areaのドライバdrへ均等にクロック信号を分配させることができる。
図39は、横基幹配線とドライバの構造例を3次元で示す説明図である。横基幹配線w1に沿ってドライバdrが配置されることにより、複数のドライバdrは同一の横基幹配線w1へクロック信号を出力する。
図40は、クロックメッシュ配線とドライバとレシーバとの構造例を3次元で示す説明図である。縦基幹配線w2は、レシーバrvの位置に応じて決定され、レシーバrvへクロック信号を伝搬させる。
図41は、クロックメッシュ配線とレシーバとFFとの構造例を3次元で示す説明図である。縦基幹配線w2はレシーバrvへクロック信号を伝搬させ、レシーバrvはFFへクロック信号を出力する。また、これに限らず、縦基幹配線w2または横基幹配線w1とFFとが接続されていてもよい。
以上説明したように、設計支援装置100は、クロックメッシュ配線の設計において、縦基幹配線の数と位置との各組み合わせについて、各レシーバを縦基幹配線に結ぶ各配線の長さに応じた評価値を算出する。これにより、配線量が少ない縦基幹配線の数と縦基幹配線の位置とを選択させることができる。したがって、配線量の低減を図ることができる。また、配線量が少なくなることにより、クロックスキューのばらつきをより低減させることができる。さらに、消費電力を低減させ、配線性を向上させることができる。
設計支援装置100は、縦基幹配線の数を複数のレシーバの数以下とする。これにより、縦基幹配線の数と縦基幹配線の位置との組み合わせの数を減少させることができ、設計支援装置による算出処理の高速化を図ることができる。横基幹配線と縦基幹配線とは異なる配線層である。
設計支援装置100は、縦基幹配線の配線幅を第2クロック配線の数に応じた配線幅とする。これにより、縦基幹配線の数に関係なく、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値を一定にすることができ、ばらつきを低減させることができる。したがって、クロックスキューのばらつきをより低減させることができる。
設計支援装置100は、縦基幹配線の数と縦基幹配線の位置との組み合わせから評価値に基づいていずれか一つの組み合わせを選択する。これにより、配線量が少ない縦基幹配線の数と縦基幹配線の位置との組み合わせを利用者に自動で知らせることが可能となる。
また、評価値は、各配線の合計の長さである。これにより、少ない算出量によって配線量の多少の比較を行うことができる。
また、設計支援装置100は、複数の組み合わせの各々について算出した合計の長さに基づいて、複数の組み合わせの中からいずれかの組み合わせを選択する。また、設計支援装置100は、算出した前記合計の長さが最も短い組み合わせを選択する。これにより、配線量が少ない縦基幹配線の数と縦基幹配線の位置との組み合わせを利用者に自動で知らせることが可能となる。
また、設計支援装置100は、複数の組み合わせの各々について、各配線の合計の長さと、第2クロック配線の合計の長さと、の合計値を評価値として算出する。これにより、少ない算出量によって配線量の多少の比較を行うことができる。
また、設計支援装置100は、複数の組み合わせの各々について、各引き込み配線の合計の容量値と、第2クロック配線の配線幅と第2クロック配線の合計の長さとに基づく第2クロック配線の合計の容量値と、の合計値を算出する。各引き込み配線の合計の容量値は、各引き込み配線の幅と算出した長さに応じた値とに基づく値である。また、第2クロック配線の配線幅は第2クロック配線の数に応じて決定される。これにより、配線量の多少の比較を精度よく行うことができる。
また、設計支援装置100は、複数の組み合わせの各々について算出した合計値に基づいて、複数の組み合わせの中からいずれかの組み合わせを選択する。また、設計支援装置100は、算出した合計値が最も小さい組み合わせを選択する。また、設計支援装置100は、算出した合計値が最も小さい組み合わせを選択する。これにより、配線量が少ない縦基幹配線の数と縦基幹配線の位置との組み合わせを利用者に自動で知らせることが可能となる。
また、設計支援装置100は、第2クロック配線の数と、第2クロック配線に結線されるレシーバの重心に基づく第2クロック配線の位置と、の複数の組み合わせの各々について値を算出する。これにより、第2クロック配線の位置を第2クロック配線に結線されるレシーバのいずれにも距離が近くなるような位置とすることができる。
また、本実施の形態にかかる半導体集積回路は、複数の部分領域の中の第1部分領域においては、縦基幹配線の数が1であり、縦基幹配線の配線幅が基準配線幅である。また、半導体集積回路は、複数の部分領域の中の第2部分領域においては、縦基幹配線の数がn(nは2以上の整数)であり、n個の縦基幹配線の配線幅がそれぞれ、基準配線幅とは異なる。これにより、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値を一定にすることができ、ばらつきを低減させることができる。したがって、クロックスキューのばらつきをより低減させることができる。また、引き込み配線の配線容量を低減できる。
また、第2部分領域において、n個の第2クロック配線の配線幅の合計が基準配線幅に等しい。また、第2部分領域において、n個の縦基幹配線の各々の配線幅の値は、基準配線幅の値をnで割った値に等しい。これにより、縦基幹配線の数に関係なく、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値が一定になり、ばらつきが低減する。したがって、クロックスキューのばらつきをより低減させることができる。
また、複数の部分領域の間で、縦基幹配線の数が、対応する部分領域に含まれる引き込み配線の長さの合計に応じて異なる。これにより、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値が一定になり、ばらつきがより低減する。
また、複数の部分領域の間で、縦基幹配線の位置が、対応する部分領域に含まれる引き込み配線の長さの合計に応じて異なる。これにより、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値が一定になり、ばらつきがより低減する。
また、複数の部分領域の間で、縦基幹配線の数が、対応する部分領域に含まれる引き込み配線の容量値の合計に応じて異なる。これにより、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値が一定になり、ばらつきがより低減する。
また、複数の部分領域の間で、縦基幹配線の位置が、対応する部分領域に含まれる引き込み配線の容量値の合計に応じて異なる。これにより、部分領域内の横基幹配線間の縦基幹配線の合成抵抗の値が一定になり、ばらつきがより低減する。
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークNETを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが、
対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、
取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する、
処理を実行することを特徴とする設計支援方法。
(付記2)前記第2クロック配線は、前記第1クロック配線の配線層とは異なる配線層に設けられることを特徴とする付記1に記載の設計支援方法。
(付記3)前記第2クロック配線の数は、前記複数のクロックレシーバの数以下であることを特徴とする付記1または2に記載の設計支援方法。
(付記4)前記第2クロック配線の配線幅は、前記第2クロック配線の数に応じた配線幅であることを特徴とする付記1〜3のいずれか一つに記載の設計支援方法。
(付記5)前記コンピュータが、
前記複数の組み合わせの各々について算出した前記長さに応じた値に基づいて、前記複数の組み合わせの中からいずれかの組み合わせを選択する処理を実行することを特徴とする付記1〜4のいずれか一つに記載の設計支援方法。
(付記6)前記長さに応じた値は、前記各配線の合計の長さであることを特徴とする付記1〜5のいずれか一つに記載の設計支援方法。
(付記7)前記コンピュータが、
前記複数の組み合わせの各々について算出した前記合計の長さに基づいて、前記複数の組み合わせの中からいずれかの組み合わせを選択する処理を実行することを特徴とする付記6に記載の設計支援方法。
(付記8)前記いずれかの組み合わせを選択する処理では、算出した前記合計の長さが最も短い組み合わせを選択することを特徴とする付記7に記載の設計支援方法。
(付記9)前記コンピュータが、
前記複数の組み合わせの各々について、前記各配線の合計の長さと、前記第2クロック配線の合計の長さと、の合計値を算出する処理を実行することを特徴とする付記5〜7のいずれか一つに記載の設計支援方法。
(付記10)前記コンピュータが、
前記複数の組み合わせの各々について、前記結線する各配線の幅と算出した前記長さに応じた値とに基づく前記結線する各配線の合計の容量値と、前記第2クロック配線の数に応じて決定した前記第2クロック配線の配線幅と前記第2クロック配線の合計の長さとに基づく前記第2クロック配線の合計の容量値と、の合計値を算出する処理を実行することを特徴とする付記1〜3のいずれか一つに記載の設計支援方法。
(付記11)前記コンピュータが、
前記複数の組み合わせの各々について算出した前記合計値に基づいて、前記複数の組み合わせの中からいずれかの組み合わせを選択する処理を実行することを特徴とする付記10に記載の設計支援方法。
(付記12)前記いずれかの組み合わせを選択する処理では、算出した前記合計値が最も小さい組み合わせを選択することを特徴とする付記11に記載の設計支援方法。
(付記13)前記値を算出する処理では、第2クロック配線の数と、前記第2クロック配線に結線されるクロックレシーバの重心に基づく前記第2クロック配線の位置と、の前記複数の組み合わせの各々について前記値を算出することを特徴とする付記1〜12のいずれか一つに記載の設計支援方法。
(付記14)コンピュータに、
対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、
取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する、
処理を実行させることを特徴とする設計支援プログラム。
(付記15)対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得する取得部と、
前記取得部が取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する算出部と、
を有することを特徴とする設計支援装置。
(付記16)対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、
取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
(付記17)複数の部分領域を有する半導体集積回路であって、
前記複数の部分領域の各々は、
複数のクロックレシーバと、
第1クロック配線と、
前記第1クロック配線と方向が直交する第2クロック配線と、
前記複数のクロックレシーバと前記第2クロック配線を接続する引き込み配線と、
前記複数のクロックレシーバの少なくとも1つと前記引き込み配線を介してクロック信号が供給される回路と、
を含み、
前記複数の部分領域の中の第1部分領域においては、前記第2クロック配線の数が1であり、前記第2クロック配線の配線幅が基準配線幅であり、
前記複数の部分領域の中の第2部分領域においては、前記第2クロック配線の数がn(nは2以上の整数)であり、前記n個の第2クロック配線の配線幅がそれぞれ、前記基準配線幅とは異なることを特徴とする半導体集積回路。
(付記18)前記第2部分領域において、前記n個の第2クロック配線の配線幅の合計が前記基準配線幅に等しいことを特徴とする付記17に記載の半導体集積回路。
(付記19)前記第2部分領域において、前記n個の第2クロック配線の各々の配線幅の値は、前記基準配線幅の値をnで割った値に等しいことを特徴とする付記17に記載の半導体集積回路。
(付記20)前記複数の部分領域の間で、前記第2クロック配線の数が、対応する前記部分領域に含まれる引き込み配線の長さの合計に応じて異なることを特徴とする付記17〜19のいずれか一つに記載の半導体集積回路。
(付記21)前記複数の部分領域の間で、前記第2クロック配線の位置が、対応する前記部分領域に含まれる引き込み配線の長さの合計に応じて異なることを特徴とする付記17〜19のいずれか一つに記載の半導体集積回路。
(付記22)前記複数の部分領域の間で、前記第2クロック配線の数が、対応する前記部分領域に含まれる引き込み配線の容量値の合計に応じて異なることを特徴とする付記17〜19のいずれか一つに記載の半導体集積回路。
(付記23)前記複数の部分領域の間で、前記第2クロック配線の位置が、対応する前記部分領域に含まれる引き込み配線の容量値の合計に応じて異なることを特徴とする付記17〜19のいずれか一つに記載の半導体集積回路。
100 設計支援装置
101,311,312 レイアウトデータ
301 取得部
304 決定部
305 算出部
306 選択部
ドライバ dr
レシーバ rv
w1 第1クロック配線,横基幹配線
w2 第2クロック配線,縦基幹配線
ldw 引き込み配線
pa 領域

Claims (12)

  1. コンピュータが、
    対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、
    取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する、
    処理を実行することを特徴とする設計支援方法。
  2. 前記第2クロック配線の数は、前記複数のクロックレシーバの数以下であることを特徴とする請求項1に記載の設計支援方法。
  3. 前記コンピュータが、
    前記複数の組み合わせの各々について算出した前記長さに応じた値に基づいて、前記複数の組み合わせの中からいずれかの組み合わせを選択する処理を実行することを特徴とする請求項1または2に記載の設計支援方法。
  4. 前記コンピュータが、
    前記複数の組み合わせの各々について、前記結線する各配線の幅と算出した前記長さに応じた値とに基づく前記結線する各配線の合計の容量値と、前記第2クロック配線の数に応じて決定した前記第2クロック配線の配線幅と前記第2クロック配線の合計の長さとに基づく前記第2クロック配線の合計の容量値と、の合計値を算出する処理を実行することを特徴とする請求項1または2に記載の設計支援方法。
  5. 前記値を算出する処理では、第2クロック配線の数と、前記第2クロック配線に結線されるクロックレシーバの重心に基づく前記第2クロック配線の位置と、の前記複数の組み合わせの各々について前記値を算出することを特徴とする請求項1〜4のいずれか一つに記載の設計支援方法。
  6. コンピュータに、
    対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得し、
    取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する、
    処理を実行させることを特徴とする設計支援プログラム。
  7. 対象回路に設けられる複数のクロックレシーバの各位置と、前記対象回路に設けられる第1クロック配線の位置と、を示すレイアウトデータを取得する取得部と、
    前記取得部が取得した前記レイアウトデータに基づいて、前記対象回路の配線層に設けられる第2クロック配線であって前記第1クロック配線と方向が直交する第2クロック配線の数と前記第2クロック配線の位置との複数の組み合わせの各々について、前記複数のクロックレシーバの各々を前記第2クロック配線のいずれかと結線する各配線の長さに応じた値を算出する算出部と、
    を有することを特徴とする設計支援装置。
  8. 複数の部分領域を有する半導体集積回路であって、
    前記複数の部分領域の各々は、
    複数のクロックレシーバと、
    第1クロック配線と、
    前記第1クロック配線と方向が直交する第2クロック配線と、
    前記複数のクロックレシーバと前記第2クロック配線を接続する引き込み配線と、
    前記複数のクロックレシーバの少なくとも1つと前記引き込み配線を介してクロック信号が供給される回路と、
    を含み、
    前記複数の部分領域の中の第1部分領域においては、前記第2クロック配線の数が1であり、前記第2クロック配線の配線幅が基準配線幅であり、
    前記複数の部分領域の中の第2部分領域においては、前記第2クロック配線の数がn(nは2以上の整数)であり、前記n個の第2クロック配線の配線幅がそれぞれ、前記基準配線幅とは異なることを特徴とする半導体集積回路。
  9. 前記第2部分領域において、前記n個の第2クロック配線の配線幅の合計が前記基準配線幅に等しいことを特徴とする請求項8に記載の半導体集積回路。
  10. 前記第2部分領域において、前記n個の第2クロック配線の各々の配線幅の値は、前記基準配線幅の値をnで割った値に等しいことを特徴とする請求項8に記載の半導体集積回路。
  11. 前記複数の部分領域の間で、前記第2クロック配線の数が、対応する前記部分領域に含まれる引き込み配線の長さの合計に応じて異なることを特徴とする請求項8〜10のいずれか一つに記載の半導体集積回路。
  12. 前記複数の部分領域の間で、前記第2クロック配線の位置が、対応する前記部分領域に含まれる引き込み配線の長さの合計に応じて異なることを特徴とする請求項8〜10のいずれか一つに記載の半導体集積回路。
JP2013207269A 2013-10-02 2013-10-02 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路 Pending JP2015072556A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013207269A JP2015072556A (ja) 2013-10-02 2013-10-02 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路
US14/497,876 US20150095871A1 (en) 2013-10-02 2014-09-26 Circuit design support method, computer product, circuit design support apparatus, and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013207269A JP2015072556A (ja) 2013-10-02 2013-10-02 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路

Publications (1)

Publication Number Publication Date
JP2015072556A true JP2015072556A (ja) 2015-04-16

Family

ID=52741467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013207269A Pending JP2015072556A (ja) 2013-10-02 2013-10-02 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路

Country Status (2)

Country Link
US (1) US20150095871A1 (ja)
JP (1) JP2015072556A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160015683A (ko) * 2014-07-31 2016-02-15 에스케이하이닉스 주식회사 반도체 장치
US10684642B2 (en) 2018-03-20 2020-06-16 International Business Machines Corporation Adaptive clock mesh wiring

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306640A (ja) * 2000-04-17 2001-11-02 Mitsubishi Electric Corp 自動配置配線手法、自動配置配線装置、および半導体集積回路
JP2007300067A (ja) * 2006-04-07 2007-11-15 Toshiba Corp 半導体集積回路装置およびその設計方法

Also Published As

Publication number Publication date
US20150095871A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
JP7413580B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
US8407647B2 (en) Systems and methods for designing and making integrated circuits with consideration of wiring demand ratio
SG182892A1 (en) Methods for analyzing cells of a cell library
CN111186139B (zh) 一种3d打印模型的多层次并行切片方法
Liu et al. FastGR: Global Routing on CPU–GPU With Heterogeneous Task Graph Scheduler
JP2011086189A (ja) 半導体装置の設計方法
CN115017860B (zh) 布局布线同步的增量布局优化方法、装置及计算机设备
JP2015072556A (ja) 設計支援方法、設計支援プログラム、設計支援装置、および半導体集積回路
He et al. SPRoute 2.0: A detailed-routability-driven deterministic parallel global router with soft capacity
CN113850917B (zh) 三维模型体素化方法、装置、电子设备及存储介质
Tsota et al. Guiding global placement with wire density
Cauley et al. A parallel branch-and-cut approach for detailed placement
US8032855B1 (en) Method and apparatus for performing incremental placement on a structured application specific integrated circuit
Cheng et al. Obstacle-avoiding length-matching bus routing considering nonuniform track resources
JP2013257646A (ja) 自動レイアウトプログラム、自動レイアウト装置及びレイアウト最適化方法
JP5434849B2 (ja) 表示処理プログラム、表示処理方法及び情報処理装置
Pawanekar et al. A nonlinear analytical optimization method for standard cell placement of vlsi circuits
Kahng et al. DG-RePlAce: A Dataflow-Driven GPU-Accelerated Analytical Global Placement Framework for Machine Learning Accelerators
Li et al. Scalable synthetic circuit generation using geometry embedding for CAD tool assessment
Kothari Parallelizing Pattern Routing Algorithms for Chip Design
Kothari Parallelization of Pattern Routing Algorithms in Chip Design
Saha et al. Stitch-avoiding Global Routing for Multiple E-Beam Lithography
CN110533779B (zh) 用于海洋结构物与水面网格重叠部分的重建方法
JP2011238011A (ja) 半導体集積回路設計装置、半導体集積回路設計方法及びプログラム
Jiang et al. Detailed-Routability-Driven Global Routing with Lagrangian-Based Rip-Up and Rerouting

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611