[go: up one dir, main page]

JP4326462B2 - 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法 - Google Patents

半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法 Download PDF

Info

Publication number
JP4326462B2
JP4326462B2 JP2004336329A JP2004336329A JP4326462B2 JP 4326462 B2 JP4326462 B2 JP 4326462B2 JP 2004336329 A JP2004336329 A JP 2004336329A JP 2004336329 A JP2004336329 A JP 2004336329A JP 4326462 B2 JP4326462 B2 JP 4326462B2
Authority
JP
Japan
Prior art keywords
wiring
driver
net
diagonal
reference point
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
JP2004336329A
Other languages
English (en)
Other versions
JP2006146594A (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 JP2004336329A priority Critical patent/JP4326462B2/ja
Priority to US11/059,556 priority patent/US7328422B2/en
Publication of JP2006146594A publication Critical patent/JP2006146594A/ja
Application granted granted Critical
Publication of JP4326462B2 publication Critical patent/JP4326462B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

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

Description

本発明は、半導体集積回路の設計を支援する設計支援装置、設計支援方法、設計支援プログラムに関し、特に、半導体集積回路に含まれるセル(論理ゲートを複数組み合わせて、それぞれ異なる機能を実現するもの)間を、斜め配線を用いて接続する場合の設計を支援する設計支援装置等に関する。
一般に、半導体集積回路における配線は、論理ゲートを複数組み合わせて、それぞれ異なる機能を実現するセル(例えば、フリップフロップ、カウンタ、セレクタ、マルチプレクサ、加算器等)を、基板となるシリコンウェハ上に配置した後に行われる。半導体集積回路は、基板上にアルミニウム等の配線層が何重かに重なる多層構造をしており、最下層に接するある半導体素子の出力端子と別の半導体素子の入力端子は、この配線層を用いて接続される。
各配線層においては、配線層を上から眺めたとき、縦方向又は横方向の配線が配置されるが、近年、縦方向又は横方向の配線に加えて、斜め方向(例えば、45度方向、135度方向)の配線を用いた半導体集積回路が提案されている。例えば、特許文献1によれば、斜め配線を含む多層配線を用いることで配線領域を小さくする半導体集積回路装置が提案され、特許文献2によれば、斜め配線を用いる場合に、配線層同士を接続するための接続孔の位置が合わせられた半導体集積回路装置が提案され、特許文献3によれば、斜め配線のピッチ間隔を所定長にすることでクロストークが防止された半導体集積回路が提案される。
半導体集積回路の設計にあたり、設計者は、PC(Personal Computer)等の情報処理装置と専用のソフトウェアツールを用いて、セルが基板に配置された状態を再現する。設計段階で行われるセル間の配線は、設計者により手動で、又は、専用ツールにより自動で行われる。
特開平5−243379号公報 特開2000−82743号公報 特開平1−112749号公報
しかしながら、従来技術においては、セル同士を接続する複数の経路のうち、どの経路に対して斜め配線を適用すべきかについて明確な基準や有効な判断手法がなく、むやみに斜め配線を配置することによって、かえって縦方向や横方向の配線(従来配線)を迂回させる必要が生じる、あるいは、従来配線の迂回を防止するため配線層を増やさなければならない事態が生じていた。また、斜め配線を適用しても意味がない経路に対して斜め配線が適用されることもあり、斜め配線を有効に活用した設計が行われないでいた。
そこで、本発明の目的は、斜め配線を有効に活用してセル間の配線設計を行うことのできる設計支援装置、及び関連するプログラム、設計支援方法を提供することにある。
上記目的は、本発明の第一の側面として、論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定するレイアウトプログラムが格納される記憶部と、前記記憶部から前記レイアウトプログラムを読み出して実行する制御部とを有する設計支援装置であって、前記記憶部には、前記複数のセルが配置される位置を特定する位置情報が格納され、前記制御部は、一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを前記レイアウトプログラムを実行して実現することを特徴とする設計支援装置を提供することにより達成される。
上記発明の第一の側面においてより好ましい実施例によれば、前記制御部は、更に、前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行う探索機能を、前記レイアウトプログラムを実行して実現し、前記レイアウト機能では、前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記レシーバの前記入力端子と、縦方向及び/又は横方向の配線により接続可能かが確認される接続判定が行われ、接続可能であれば該選択された位置に前記斜め配線が配置される。
上記発明の第一の側面においてより好ましい実施例によれば、前記探索機能では、前記斜め配線の長さを予め設定された所定の初期値として前記探索が開始され、前記斜め配線を配置可能な範囲がない場合、該斜め配線の長さを前記所定の初期値より短くして再探索が行われる。上記発明の第一の側面においてより好ましい実施例によれば、前記所定の領域は、前記1つ又は複数のレシーバを囲む最小の矩形である。
上記発明の第一の側面においてより好ましい実施例によれば、前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、前記位置判定機能では、前記複数のネットのうち、前記遅延時間が第2の閾値以上である前記経路を含む前記ネットが前記位置判定の対象とされる。上記発明の第一の側面においてより好ましい実施例によれば、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、前記位置判定機能では、前記複数のネットのうち、前記差が第3の閾値以上である前記ネットが前記位置判定の対象とされる。
上記発明の第一の側面においてより好ましい実施例によれば、前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間と、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差とが、それぞれ前記ネット毎に算出されており、前記位置判定機能では、前記遅延時間と前記差とに重み付き係数を掛けて算出される評価値に基づき前記ネットの順位が決定され、前記順位の高い前記ネットから順に前記位置判定が行われる。上記発明の第一の側面においてより好ましい実施例によれば、前記配線レイアウトは、互いに直交するx軸とy軸とによって形成される2次元平面にて決定され、前記斜め配線は、前記x軸に対してα度(0<α<90)をなす第1の斜め配線と前記x軸に対してβ度(90<β<180)をなす第2の斜め配線とを含み、前記レイアウト機能では、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さい場合には、前記第1の斜め配線が使用され、該線分が前記x軸となす角が90度より大きい場合には、前記第2の斜め配線が使用される。
また、上記目的は、第二の側面として、論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定し、かつ、前記複数のセルが配置される位置を特定する位置情報が格納されるコンピュータに、一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを実現させるためのプログラムを提供することにより達成される。
また、上記目的は、第三の側面として、論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定する設計支援方法であって、予め前記複数のセルが配置される位置を特定する位置情報が記憶されており、一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行い、前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置することを特徴とする設計支援方法を提供することにより達成される。
本発明によれば、ドライバがレシーバ群の外部に位置するネットにおいて、ドライバとレシーバの接続に斜め配線が配置されることになり、1つのネットで複数種類の斜め配線が用いられることなく、効率的な配線が可能になる。こうして、斜め配線を有効に活用してセル間の配線設計を行うことができる。
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
図1は、本発明の実施形態における設計支援装置1の構成ブロック図である。設計支援装置1は、デスクトップ型PC、ノートブック型PC、PDA(Personal Digital Assistance)、サーバ、ワークステーション等の情報処理装置であって、バス14を介して互いに接続される制御部11、RAM(Random Access Memory)12、記憶部13、周辺機器接続用インタフェース(周辺機器I/F)15、情報が入力される入力部16、情報を出力し、利用者に情報を与えるための出力部17を含む。
制御部11は、図示省略されたCPU(Central Processing Unit)を含み、RAM12に格納されるプログラムを実行し、設計支援装置1に含まれる各部を制御する。RAM12は、設計支援装置1の処理における演算結果やプログラムが一時的に格納される記憶手段である。記憶部13は、ハードディスク、光ディスク、磁気ディスク、フラッシュメモリ等の不揮発性記憶手段であり、各種データやRAM12へ読み出される前のOS(Operating System)等のプログラムが格納される。
周辺機器I/F15は、設計支援装置1に周辺機器を接続するためのインタフェースであり、パラレルポート、USB(Universal Serial Bus)ポートや、PCIカードスロット等である。周辺機器としては、プリンタ、TVチューナ、SCSI(Small Computer System Interface)機器、オーディオ機器、ドライブ装置、メモリカードリーダライタ、ネットワークインタフェースカード、無線LANカード、モデムカード、キーボードやマウス、ディスプレイ装置など多岐に渡る。周辺機器と設計支援装置1との接続形態は、有線であっても無線であっても構わない。
出力部17は、情報を出力し、利用者に情報を与えるための出力手段であり、CRT(Cathode Ray Tube)、液晶ディスプレイ等ユーザに情報を提示する表示手段の他、音声によって指示や情報を読み上げて利用者に伝えるスピーカなどであってもよい。入力部16は、キーボード、マウス等ユーザの要求が入力される入力手段である。また、設計支援装置1は、CD(Compact Disc)、DVD(Digital Versatile Disk)、MO(Magneto-Optical)ディスク等の記憶媒体を読み出すためのドライブ装置を持つ場合がある。ドライブ装置を使用すれば、記憶媒体に格納された情報が読み出され、設計支援装置1に入力される。つまり、ドライブ装置も、入力部16として機能する。
図2は、設計支援の対象である半導体集積回路を説明する図である。半導体集積回路100は、複数の機能ブロック101を含む。機能ブロック101とは、例えば、マイクロプロセッサ、MPEG(Moving Picture Experts Group)デコーダ、SRAM(Static Random Access Memory)、ROM(Read Only Memory)、入出力回路、ASIC(Application Specific Integrated Circuit)等の10万〜100万個程度の半導体素子が集積された回路である。
各機能ブロック101は、複数のセル102を含む。セル102とは、例えば、セルとは、フリップフロップ、セレクタ、マルチプレクサ、カウンタ等の100〜1000個程度の半導体素子が集積された回路である。セル102は、数個から数十個の論理ゲートを含む。図2には、セル102の一例として、4つの論理ゲートからなるフリップフロップ103が描かれる。
セル102は、入力端子と出力端子を持ち、他のセル102と駆動関係が築かれる。セルの駆動関係とは、あるセルの出力端子が別のセルの入力端子に接続されることを意味する。
図3Aは、セルの駆動を説明する図である。図3Aにおいて、セルCEL1の出力端子が、セルCEL2の入力端子に接続され、セルCEL1がセルCEL2を駆動する。このとき、駆動する側のセルCEL1をドライバ、駆動される側のセルCEL2をレシーバと呼ぶ。
図3Bは、セルの駆動関係の例を説明する図である。図3Bにおいて矢印で示されるように、半導体集積回路に配置されるセル102は、自分がどのセルを駆動するか、そして、自分がどのセルから駆動されるかが設定される。例えば、図1のセルCEL2は、セルCEL1から駆動されるが、同時に、セルCEL3とセルCEL4を駆動する。こうして、1つのドライバに対し、1つ又は複数のレシーバが対応することになる。
図3Cは、ドライバとレシーバの組をまとめたネットを示す図である。上述したように、1つのドライバに対応して、1つ又は複数のレシーバが存在し、その両者を1つのグループとしたものがネットである。図3Cには、ドライバであるセルCEL1と、それに対応するレシーバである、セルCEL2、セルCEL5、セルCEL6を含むネットN1が描かれる。
図3Dは、ネットの別の例を示す図である。図3Dには、ドライバであるセルCEL6と、それに対応するレシーバであるセルCEL8を含むネットN2が描かれる。このように別のネットにおいて、レシーバであったセルが、ドライバになることもある。また、ネットに含まれるレシーバは、1つの場合と、複数の場合とがある。
以上に説明したセル102の情報や駆動関係は、図3Bに示されるxy軸によって定まる座標によって特定される位置情報によって表現され、本実施形態の設計支援の前提として記憶部13に格納されるものとする。つまり、配線前にセル102の配置は完了しているものとする。
図4Aは、記憶部13に格納されるセル情報のデータ構成例である。図4Aのセル情報は、「セル」「入力端子座標」「出力端子座標」というデータ項目を持つ。
「セル」は、セル102を識別するための識別子である。「入力端子座標」は、セル102がレシーバとなる場合に関係する、セル102の入力端子の位置を示すxy座標である。「出力端子座標」は、セル102がドライバとなる場合に関係する、セル102の出力端子の位置を示すxy座標である。
図4Bは、記憶部13に格納される駆動関係を特定する情報のデータ構成例である。図4Bの駆動関係情報は、「ネット」「ドライバ」「レシーバ」というデータ項目を持つ。
「ネット」は、ネットを識別するための識別子である。「ドライバ」は、そのネットに含まれるドライバとなるセル102を特定する識別子である。「レシーバ」は、そのネットに含まれるレシーバとなるセル102を特定する識別子である。
図5Aは、実施形態の説明において共通に用いられる斜め配線を説明する図である。斜め配線を用いると、縦方向及び/又は横方向の配線を用いるより、配線長が短くなる。
図5Aに示されるように、ドライバDの出力端子とレシーバRの入力端子の位置関係に応じて使用される斜め配線が変更される。ドライバDの出力端子の位置を原点とするとき、レシーバRの入力端子の位置が第1象限又は第3象限にある場合には、α度(0<α<90)の傾きを持つ第1の斜め配線が用いられる。ドライバDの出力端子の位置を原点とするとき、レシーバRの入力端子の位置が第2象限又は第4象限にある場合には、β度(90<β<180)の傾きを持つ第2の斜め配線が用いられる。
図5Bは、第1の斜め配線と第2の斜め配線の関係を示す図である。以降の説明においては、第1の斜め配線を基に説明を行うが、図5Bに示されるように、説明に用いる角度αを、角度(180−β)として読み替えることにより、第2の斜め配線に適用できる場合が多い。なお、斜め配線の角度が、0度、90度、180度となる場合は、従来通り、縦方向及び/又は横方向の配線(従来配線と呼ぶ)をすればよいため、除かれる。
図6Aは、半導体集積回路100における配線層の構造を示す図である。図6Aに示されるように、半導体集積回路100は、基板200上にアルミニウム等の配線層が何重かに重なる多層構造をしている。例えば、第1層には、横方向の配線が配置され、第2層には、縦方向の配線が配置され、第3層には、横方向の配線に加え、第1の斜め配線が配置され、第4層には、縦方向の配線に加え、第2の斜め配線が配置される。
縦方向の配線層と横方向の配線層とが交互に現れる多層配線構造を取ることによって、少ない領域に複雑な配線を配置することができる。また、斜め配線が配置される層に、縦方向又は横方向の配線を共存させることで、その配線層がより効率的に使用されることになる。
図6Bは、半導体集積回路100の断面図である。図6Bには、最下層である第1層201に接するPチャネル型半導体の端子206が、上位の配線層を用いて接続される様子が描かれる。配線層同士は、ビア(via)205と呼ばれる接続部材により接続される。
図6Cは、第1の斜め配線を用いた配線が行われる場合の配線と配線層との関係を説明する図である。第1の斜め配線は第3層203に配置されている。図6Aで説明したように、第3層は、横方向の配線も配置可能であり、ビア205の位置との関係から、第1の斜め配線にビア205まで延びる横方向の配線が接続される。残りの区間は、セルの端子が接続される第1層に向かって、第3層から第2層を経て、縦方向及び横方向の配線が配置されている。ビア205を経由すると、層が1つ降順する。
図6Dは、第2の斜め配線を用いた配線が行われる場合の配線と配線層との関係を説明する図である。第2の斜め配線は第4層204に配置されている。図6Aで説明したように、第4層は、縦方向の配線も配置可能であり、ビア205の位置との関係から、第2の斜め配線にビア205まで延びる縦方向の配線が接続される。残りの区間は、セルの端子が接続される第1層に向かって、第4層から第3層、第2層を経て、縦方向及び横方向の配線が配置されている。ビア205を経由すると、層が1つ降順する。
続いて第1の実施形態について説明する。第1の実施形態では、以上で説明した半導体集積回路の設計に際し、斜め配線を配置する位置を、ドライバとレシーバの位置関係に応じて最適化するものである。
図7は、第1の実施形態における設計支援装置1の制御部11を説明する機能ブロック図である。制御部11は、位置判定部112、探索部113、レイアウト部114を含んでいる。制御部11の各機能部は、制御部11に備えられる図示省略されたCPUで実行されるプログラムとして実現されるが、ハードウェアにより実現することも可能である。
位置判定部112は、ネット毎に、ドライバとレシーバの位置関係に基づき、そのネットにおいて斜め配線が用いられるべきかを判定する。特に、ネットに含まれるレシーバが複数あると、斜め配線を用いる意味がない場合や、かえって配線を複雑にしてしまう場合があるため、位置判定部112は、これらの場合を排除する。
探索部113は、位置判定部112により斜め配線を用いると判定されたネット毎に、斜め配線を配置可能な領域を探索する。探索部113は、斜め配線が配置される配線層において、斜め配線を所定の方向にスライドさせるとき、信号線(通常配線も含め)を配置できない障害物箇所や既に配線に使用されている使用箇所がないかを探索し、それらの箇所があれば、斜め配線を配置可能な領域から除外する。
レイアウト部114は、斜め配線を配置可能な領域内に、斜め配線を仮配置し、仮配置された斜め配線を用いて、ドライバとレシーバ間を接続可能かを判定する。従来技術において、2点間を従来配線により接続するための解法は提案されており、ドライバとレシーバを接続する経路のうち斜め配線以外の区間は、そうした従来技術の解法を使用することができる。レイアウト部114は、仮配置される斜め配線の位置を変更しても、ドライバとレシーバ間を接続可能にする斜め配線を見つけることができなければ、斜め配線を取りやめ、従来配線に切替えてドライバとレシーバ間を接続する。
図8は、第1の実施形態における設計支援装置1の動作を説明するフローチャートである。まず、位置判定部112が、ネット毎に、そのネットに含まれるドライバがレシーバ群の外側にあるかに基づき、そのネットに斜め配線を用いるべきかを判定する(S51)。レシーバ群とは、そのネットに含まれるレシーバ全体を指す。ステップS51の処理を位置判定と呼ぶことにする。
位置判定部112は、位置判定として、複数のレシーバを囲む所定の領域(矩形、円、楕円等)を求め、ドライバがその所定の領域の外部にあるかを判定する。位置判定部112は、記憶部13に格納されるセル情報(図4A)を参照して、ドライバの出力端子の座標、レシーバの入力端子の座標を取得し、位置判定を行う。
図9は、位置判定の例を説明する図であり、図9Aは、所定の領域として矩形が用いられる場合、図9Bは、所定の領域として楕円が用いられる場合を示す。図9Aには、ドライバDと3つのレシーバRを含むネットが描かれている。図9A上段では、所定の領域として、3つのレシーバRを囲む最小の矩形21が使用され、矩形21の内部にドライバDが位置している。
ドライバDが矩形の内部に位置する場合、そのネットに斜め配線を配置すべきではない。なぜなら、ドライバDが矩形の内部に位置する場合、ドライバDとレシーバRとの距離が近くなることが多いからである。距離が近いセル同士に対して斜め配線を用いても、その短縮効果はあまり期待できず、斜め配線を用いる意味があまりない。
また仮に、ドライバDとレシーバRとの距離が斜め配線を用いる意味がある程度に離れているとしても、ドライバDが矩形の内部に位置することにより、1つのネットに対して2つの斜め配線を用いる必要が生じる。これは、ドライバDが矩形の内側に位置するということは、ドライバDの上下左右にレシーバが配置される可能性が高く、図5Aを参照すれば、象限に応じて2つの斜め配線が共に必要になる可能性が高いからである。
図9A下段では、3つのレシーバRを囲む最小の矩形22外側にドライバRが位置する。この場合、そのネットに斜め配線を配置すべきである。それは、図9A上段のような問題は生じないためである。なお、このネットに対しては、第1の斜め配線(図5B参照)の適用が可能であり、第2の斜め配線の必要はないようである。
矩形22は、レシーバRの入力端子の座標のうち、最小のx座標をx1、最小のy座標をy1、最大のx座標をx2、最大のy座標をy2とすれば、(x1、y1)、(x1、y2)、(x2、y1)、(x2、y2)という4点を結ぶ図形として求めることができる。また、ドライバの出力端子の座標も分かっているため、ドライバが矩形の外部にあるかどうかも簡単に確認できる。
なお、所定の領域は、レシーバRを囲む矩形であればよい。その場合、その矩形の面積が所定の閾値以下であるように矩形を選択しておき、不用意に所定の領域が広くなることを防止しておく。
図9B上段では、所定の領域として、3つのレシーバRを囲む楕円23が使用され、楕円23の内部にドライバDが位置している。この場合も図9A上段と同様の理由で、斜め配線を配置すべきではない。
図9B下段では、3つのレシーバRを囲む楕円24の外側にドライバRが位置する。この場合も図9A下段と同様の理由で、そのネットに斜め配線を配置すべきである。なお、このネットに対しても、第1の斜め配線(図5B参照)の適用が可能であり、第2の斜め配線の必要はないようである。
レシーバRを内部に含む楕円は、レシーバの入力端子の座標を基に算出することができる。
例えば、楕円の式をf(x,y)=x^2/a+y^2/b−cとすると、レシーバRの入力端子のxy座標を代入して、f(x、y)<0となるようなa、b、cは探せば済む。ドライバDが、その楕円の外部にあるかどうかについても、ドライバDの出力端子のxy座標を代入してf(x、y)>0となれば外部にあると簡単に判定することができる。
このとき、楕円の面積が所定の閾値以下であるように楕円を選択しておき、不用意に所定の領域が広くなることを防止しておく。「不用意に」とは、どのように判定してもドライバDが所定の領域内部に含まれるほどという意味である。
所定の領域としては、図9に示した矩形、楕円に限らず、レシーバRを内部に含む任意の図形を用いてもよい。その場合も、その任意の図形の面積が所定の閾値以下であるように図形を選択しておき、不用意に所定の領域が広くなることを防止しておけばよい。
図8に戻り、ステップS51の位置判定が完了すれば、レイアウト部114は、位置判定により、斜め配線が配置されるべきとされたネット毎に、位置判定に用いた所定の領域から任意の点を基準点に決定し、その座標を記憶部13に格納する(S52)。基準点は、所定の領域内にあるという条件が満たされていればよい。また、ネットに含まれるレシーバが1つであれば、そのレシーバの入力端子の位置を基準点とすればよい。
図10は、基準点の決定方法の一部を示す図である。図10Aは、グラフ理論に基づき、ドライバDとレシーバRとを1回は通過する木を求め、ドライバDとレシーバ群との境界にあたる位置を基準点とするものである。図10Aでは従って、セルCEL5の入力端子位置が基準点と決定される。
図10Bは、グラフ理論に基づき木の作成の結果生じるジョイントを基準点とするものである。図10Bには、スタイナー木におけるジョイント(スタイナー点)が描かれ、このジョイントが基準点として決定される。図10Cは、3つあるレシーバRを結ぶ図形の重心をレシーバ群の中心として求め、レシーバ群の中心を基準点とするものである。多角形の重心は、多角形への頂点の位置ベクトルの和を頂点数で割れば得られる。
図10Dは、ドライバDとレシーバRとの距離が最大又は最小となるレシーバRの入力端子の位置を基準点とするものである。上記以外の方法で基準点が選択されてもよい。図10に描かれる基準点は、一例に過ぎない。
図8に戻り、次に、レイアウト部114は、斜め配線が配置されるべきとされたネット毎に、基準点とレシーバとを従来配線により接続可能かを判定する(S53)。レイアウト部114は、ネットに含まれるレシーバに対してそれぞれ斜め配線を用意するのではなく、1つの斜め配線をネット内で共有して、ドライバとレシーバとを接続する。従って、ドライバと基準点とを接続する斜め配線を含む配線を幹線として、幹線の終点である基準点とレシーバが接続可能であることが要求される。
ステップS53の処理は、2点間を従来配線により接続することであり、その解法は従来技術で提案されており、その従来技術の解法が使用される。接続可能と判定されると(S53Yes)、レイアウト部114は、ステップS53で接続可能と判定されたネット毎に、ドライバと基準点とを斜め配線を用いて接続する(S54)。ステップS54の斜め配線の配置処理については、図11にて後述する。
なお、ステップS51において、ドライバがレシーバ群の内部にある場合(S51No)、ステップS53において、基準点とレシーバとを従来配線により接続可能でない場合(S53No)には、そのネットに対して斜め配線の配置が中止され、ドライバとレシーバ間をそれぞれ従来配線で接続する処理に切替えられる。
ステップS54又はS55が完了すると、未処理のネットが無いかが判定される(S56)。未処理のネットがあれば(S56Yes)、再びステップS51から処理が行われ、未処理のネットが無ければ(S56No)、処理を終了する。
図11は、ステップS54の斜め配線の配置処理を説明するフローチャートである。まず、探索部113が、ステップS53で接続可能と判定されたネット毎に、ドライバと基準点の位置に基づき、第1の斜め配線か第2の斜め配線かどちらを使用するかを決定する(S541)。
これは、図5Aにおけるレシーバを基準点と置き換えたとき、ドライバと基準点とが第1象限又は第3象限の関係にある場合、第1の斜め配線が使用され、第2象限又は第3象限の関係にある場合、第2の斜め配線が使用されることが決定される。次に、探索部113は、その斜め配線に隣接する配線の方向を決定する(S542)。
図12は、斜め配線に隣接する配線の方向を決定する様子を説明する図である。図12においては、ドライバDと基準点Bが図5Aに示す第1象限の関係にあるものとして説明する。太い線が、斜め配線を用いた配線である。
図12Aは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度以上で、θが45度以下の場合である。この場合、図12Aに示されるように、第1の斜め配線に隣接する配線の方向は、横方向になる。
図12Bは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度より小さく、θが45度以下の場合である。この場合、図12Bに示されるように、第1の斜め配線に隣接する配線の方向は、縦方向になる。
図12Cは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度以上で、θが45度以上の場合である。この場合、図12Cに示されるように、第1の斜め配線に隣接する配線の方向は、横方向になる。
図12Dは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度より小さく、θが45度以上の場合である。この場合、図12Dに示されるように、第1の斜め配線に隣接する配線の方向は、縦方向になる。
ステップS542において、探索部113は、ドライバDの出力端子の座標と基準点の座標に基づきドライバDと基準点Bを結ぶ線分の傾きθ度を算出する。2点の座標があれば、tanθを容易に求めることができ、線分の傾きθの算出が可能である。
図11に戻り、ステップS542が済むと、探索部113は、斜め配線を配置可能な範囲をサーチする(S543)。探索部113は、ステップS542で決定された、斜め配線に隣接する配線の方向に、斜め配線をずらしながら、信号線(通常配線も含め)を配置できない障害物箇所や既に配線に使用されている使用箇所がないかを探索し、それらの箇所があれば、斜め配線を配置可能な領域から除外する。
図13は、サーチの様子を説明する図である。図13Aは、横方向にサーチする場合、図13Bは、縦方向にサーチする場合を示す。図13Aや図13Bにおいては、障害物箇所や使用箇所がなく、広い範囲で斜め配線の配置が可能になっている。図13Cは、横方向にずらす場合に、障害物箇所や使用箇所が存在することで、配線可能領域が狭まる場合を示す。
図14は、障害物箇所と使用箇所の位置情報を配線層別に格納した表のデータ構成例である。図14の表には、「層」「タイプ」「位置」というデータ項目が含まれる。「層」は、配線層を識別する識別子である。「タイプ」は、使用箇所を示す情報か、障害箇所情報かを示す。「位置」は、それぞれの箇所を特定する座標情報である。
図11に戻り、探索部113は、ステップS543において、y=(tanα)x+b、y1≦y≦y2という線分を用い、図14の表を参照して、ステップS541で決定された斜め配線が配置される配線層における障害物箇所や使用箇所に、その直線が重なるかを確認する。
ここで、y1は、ドライバの出力端子のy座標と基準点のy座標のうち値が小さい方の値、y2は、ドライバの出力端子のy座標と基準点のy座標のうち値が大きい方の値である。
そして、探索部113は、y切片bを変化させながら、障害物箇所や使用箇所に直線が重ならないと確認されたy切片bを記憶部13に記憶することで、斜め配線を配置可能な範囲をサーチする。ステップS543のサーチが完了すると、ステップS543において、斜め配線を配置可能な範囲が見つかったかが判定される(S544)。
サーチにおいて、斜め配線を配置可能な範囲が見つかっていれば、即ち、記憶部13にy切片bの情報が格納されていれば(S544Yes)、レイアウト部114は、斜め配線を配置可能な範囲の斜め配線を選択する(S545)。ステップS545においてレイアウト部114は、記憶部13に格納されたy切片bを1つ選択すればよい。
この時、y切片bの上限値から下限値までの範囲のうち、中ほどの値から選択し、徐々に上限値から下限値に向かって選択していくとよい。例えば、y切片bが0〜100程度の範囲を持つ場合、b=50として処理を開始するとよい。これは、斜め配線を配置可能な範囲の中央付近から選択していくことによって配線層の配線領域をより広く使用することを意図するものである。
次に、レイアウト部113は、選択された斜め配線を用いるとき、その端点をドライバと基準点に従来配線を用いて接続可能かを判定する(S546)。これは、斜め配線の端点のうち、ドライバ側の端点をドライバに接続可能か、基準点側の端点を基準点に接続可能かを判定するものである。ステップS546の処理は、ステップS53と同じく、2点間を従来配線により接続することであり、その解法は従来技術で提案されており、その従来技術の解法が使用される。
そして、ステップS546で、接続可能と判定されると(S546Yes)、レイアウト部114は、ステップS545で選択された斜め配線を実際に配置し、ドライバと基準点を接続する斜め配線以外の区間については、ステップS546にて使用された従来配線を用いて接続を行い(S548)、斜め配線の配置処理が完了する。
ステップS546において、接続不可能と判定されると(S546No)、レイアウト部114は、斜め配線を配置可能な範囲に未処理の斜め配線があるかを判定する(S547)。レイアウト部114は、記憶部13に、まだ試していないy切片bが格納されているかを確認し、格納されていれば(S547Yes)、新たな斜め配線としてステップS545に戻り処理が行われる。
サーチにおいて、斜め配線を配置可能な範囲が見つからなかった場合(S544No)とステップS543でサーチされた結果の範囲には適当な斜め配線がなかった場合(S547No)、斜め配線の配線長を短くして再度サーチが行われる(S549)。しかし、斜め配線の配線長を短くしすぎると、斜め配線を配置する意味が無くなるため、短くした後の配線長が所定の閾値以上である場合(S550Yes)、ステップS543に戻り再度サーチが行われる。
短くした後の配線長が所定の閾値を下回る場合(S550No)、そのネットに対して斜め配線の配置が中止され、ドライバとレシーバ間をそれぞれ従来配線で接続する処理に切替えられ(S551)、斜め配線の配置処理が完了する。
図15は、斜め配線を短くして再サーチを行う場合の様子を説明する図である。図15Aは、斜め配線を引く余地が無い状況を示しており、図11におけるステップS544Noの状況に対応する。図15Bは、斜め配線の端点からドライバ、基準点に対する従来配線ができない状況を示しており、図11におけるステップS547Noの状況に対応する。
図15Cは、短くなった斜め配線をドライバ側に寄せて再サーチを行う状況を説明する図である。図15Dは、短くなった斜め配線を基準点側(レシーバ側)に寄せて再サーチを行う状況を説明する図である。図15Eは、短くなった斜め配線をドライバ側と基準点側の中間に位置した状態で再サーチを行う状況を説明する図である。このように、再サーチの方法は自由に選択してよい。最初に、図15Cの方法で再サーチし、それでも再サーチの必要があれば、図15Dの方法で再サーチし、最後に図15Eの方法で再サーチするようにしてもよい。
以上に説明した第1の実施形態によれば、ドライバがレシーバ群の外部に位置するネットにおいて、ドライバとレシーバの接続に斜め配線が配置されることになり、1つのネットで複数種類の斜め配線が用いられることなく、効率的な配線が可能になる。これは、1つのネットで使用する斜め配線の向きを1つに決めることが寄与している。
また、レシーバ群を囲む所定領域内で定められた基準点とドライバとの配線に、そのネットに含まれるレシーバとの接続に共有して使用できる幹線となる斜め配線を配置することで、レシーバ毎に斜め配線を配置する手間を省くことができる。これは、配線処理が高速化され、また短縮化の効果を共有することで配線が効率化される。更に、サーチを行うことで配線層の中央付近から斜め配線がなされ、領域の有効活用が図れる。また、斜め配線部の最低長が決められているため、効果のない斜め配線が配置されることが防止される。
なお、第1の実施形態においては、探索部が斜め配線を配置可能な範囲を探索し、その範囲内で選択された位置に斜め配線を配置するが、基準点が決定された後、ドライバと基準点とを斜め配線を用いて接続する方法は他にも存在する。例えば、レイアウト部114が、ドライバ又は基準点を端点とする所定長の斜め配線を(サーチなしで)配置し、残りの区間については従来配線を行うようにしてもよい。その所定長の斜め配線を使用するとき、ドライバとレシーバとの接続ができない場合には、レイアウト部が従来配線に切り替えて処理を行ってもよいし、又は、その所定長を短くして斜め配線を再配置することもできる。このようにして、ドライバ又は基準点を端点とし、斜め配線をずらすことなく直接配置することで、第1の実施形態の設計支援装置は、斜め配線を設置可能な範囲を探索する探索部を設けない構成を取ることも可能である。
続いて、第2の実施形態について説明する。第1の実施形態においては、特に斜め配線を配置するネットの選別を行わないため、すべてのネットについて位置判定を行うと時間がかかることがある。そこで、第2の実施形態においては、まず、斜め配線を配置すべきネットを絞り込み、選別されたネットに対して位置判定を行うことによって処理を高速化するものである。
図16は、第2の実施形態における設計支援装置1の動作を説明するフローチャートである。第1の実施形態と異なる箇所は、ステップS51の前段に、位置判定を行うネットを絞り込むステップが設けられている点であり、それ以外の箇所は、第1の実施形態における動作フロー(図8)と同じであるため説明は省略する。
まず、位置判定部112は、斜め配線を適用するネットの絞込みを行う(S31)。そして、ステップS31が完了すると、ステップS31により絞り込まれたネットに対して、位置判定部112が位置判定を行う(S51)。以降の処理は、第1の実施形態(図8)と同じであり説明は省略する。
図17は、図16ステップS31の斜め配線を適用するネットの絞込みを行う絞込み処理の例を説明するフローチャートである。絞込み処理においては、斜め配線を適用する効果やネットの規模が算出される。そして、算出された数値に基づき、斜め配線を配置する効果があると予測されるネットや規模が大きいネットに対して斜め配線が配置されるようネットを絞り込むことが行われる。
図17Aは、ネット毎の遅延時間に基づき、位置判定を行うネットを絞り込むものである。図17Aの処理を行うにあたり、記憶部13には予めネット毎の遅延時間が格納されているものとする。
図18は、記憶部13に格納される遅延時間表のデータ構成例である。図18の遅延時間表には、「ネット」「遅延時間」というデータ項目が含まれる。「ネット」は、ネットを識別するための識別子である。「遅延時間」は、ネットに含まれるドライバと各レシーバとを従来配線で接続する経路に生じる遅延時間のうち最大のものを示す。
セルの配置が完了した状態で、それらのセル間を従来配線により接続する経路に生じる遅延時間は、従来技術においてもシミュレーションツールなどを使用することにより容易に取得可能な情報である。この遅延時間表を参照すれば、ネット毎の(最大)遅延時間が取得できる。なお、図18においては、各ネットにおける最大遅延時間のみが格納されるが、ネットに含まれる経路毎の遅延時間が、ネット毎に格納されていてもよい。
図17Aに戻り、まず、位置判定部112は、記憶部13に格納される遅延時間表を参照し、ネット毎の(最大)遅延時間を取得する。そして、ネット毎に、取得した遅延時間が所定の閾値以上であるかを確認する(S311)。
遅延時間が所定の閾値を超えている場合、そのネットに斜め配線を配置することで遅延時間を減少させることができる効果が期待される。ネットにおける遅延時間の減少は、半導体集積回路全体で見ても動作速度の改善・向上につながるため、遅延時間が所定の閾値以上である場合(S311Yes)、位置判定部112は、そのネットを位置判定の対象として選択する(S312)。
逆に、遅延時間が所定の閾値を下回る場合(S311No)、そのネットは位置判定の対象として選択されず、その結果、そのネットに斜め配線が配置されることはない。ステップS312が済むと、未処理のネットがあるかが判定され(S313)、位置判定部112は、未処理のネットに対してステップS311の処理を繰り返す(S313Yes)。すべてのネットについて処理が完了すれば(S313No)、図16ステップS51に進み、ステップS312で選択されたネットに対して位置判定以下の処理が行われる。
図17Bは、ネット毎の斜め配線を配置する場合の短縮長(従来配線の場合の配線長と、斜め配線を配置する場合の配線長の差)に基づき、位置判定を行うネットを絞り込むものである。まず、位置判定部112は、基準点を決定する(S314)。
この処理は、図8ステップS52で説明した処理と同じである。つまり、レシーバ群を囲む所定の領域(矩形、円、楕円等)を求め、その所定領域内から任意の1点を選択すればよい。その選択方法の一例が図10に示されるが、所定領域内であれば基準点の選択方法に特に制約はない。
そして、位置判定部112は、ドライバと基準点とを斜め配線を用いて接続する場合の短縮長をネット毎に算出する(S315)。短縮長ΔLの算出の方法を図12を用いて説明する。まず、図12に登場する記号について説明しておく。
図12において、折り返し点MPは、ドライバDと基準点Bとのマンハッタン距離を測るための折り返し点であり、折り返し点MP、基準点B、ドライバDの出力端子の位置との3点で直角三角形が形成されるよう配置される。そして、折り返し点MPとドライバDの出力端子との距離をLx、折り返し点MPと基準点Bとの距離をLyとしている。
折り返し点SPは、斜め配線を用いる場合の折り返し点であり、縦方向又は横方向の配線と斜め配線との交点である。そして、折り返し点SPとドライバDの出力端子間の距離をSL、横方向の配線で接続される場合の折り返し点SPと基準点Bとの距離をRLx、縦方向の配線で接続される場合の折り返し点SPと基準点Bとの距離をRLyとしている。
以下、図12Aから順に短縮長ΔLを算出する。図12Aは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度以上で、θが45度以下の場合である。ドライバDの出力端子と基準点B間のマンハッタン距離はLx+Lyで与えられる。これが、ドライバDと基準点Bを従来配線する場合の配線長である。
折り返し点SPは、基準点Bから引くx軸に平行な線と、ドライバDの出力端子を端点とする第1の斜め配線との交点である。斜め配線を使用する場合の配線長がSL+RLxで与えられる。
従って、従来配線する場合の配線長Lx+Lyと斜め配線を使用する場合の配線長SL+RLxとの差が、斜め配線をすることにより短縮される配線長ΔLとなる。短縮される配線長ΔLを第1の斜め配線の角度αと距離Lyを用いて整理すると、以下のようになる。
Figure 0004326462
次に、図12Bは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度より小さく、θが45度以下の場合である。この場合、従来配線を使用する場合の配線長は、図12Aの場合と同じだが、斜め配線を使用する場合の配線長は、SL+RLyとなる。短縮長ΔLを第1の斜め配線の角度αと距離Lxを用いて整理すると、以下のようになる。
Figure 0004326462
図12Cは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度以上で、θが45度以上の場合である。この場合、短縮長ΔLは、従来配線する場合の配線長Lx+Lyと斜め配線を使用する場合の配線長SL+RLxとの差として与えられ、第1の斜め配線の角度αと距離Lyを用いて整理すると、図12Aの場合と同じ結果が得られる。
図12Dは、第1の斜め配線の傾きα度がドライバDと基準点Bを結ぶ線分の傾きθ度より小さく、θが45度以上の場合である。この場合、短縮長ΔLは、従来配線する場合の配線長Lx+Lyと斜め配線を使用する場合の配線長SL+RLyとの差として与えられ、第1の斜め配線の角度αと距離Lxを用いて整理すると、図12Bの場合と同じ結果が得られる。
上記算出方法は、ドライバと基準点の位置関係が第1象限と第3象限にある場合に適用可能である。ドライバと基準点の位置関係が第2象限と第4象限にある場合には、角度αを角度(180−β)と読み替えることにより上記算出方法の適用が可能になる。
図17Bに戻り、位置判定部112は、ネット毎に、ステップS315で算出された短縮長が所定の閾値以上であるかを確認する(S316)。短縮長が所定の閾値を超えている場合、そのネットに斜め配線を配置する効果が大きいことを意味する。短縮長が大きいと、そのネットにおける遅延時間を他のネットよりも減少させることができる効果が期待され、半導体集積回路全体で見ても動作速度の改善・向上につながるからである。従って、短縮長が所定の閾値以上である場合(S316Yes)、位置判定部112は、そのネットを位置判定の対象として選択する(S312)。
逆に、短縮長が所定の閾値を下回る場合(S316No)、そのネットは位置判定の対象として選択されず、その結果、そのネットに斜め配線が配置されることはない。ステップS312が済むと、未処理のネットがあるかが判定され(S313)、位置判定部112は、未処理のネットに対してステップS314の処理を繰り返す(S313Yes)。すべてのネットについて処理が完了すれば(S313No)、図16ステップS51に進み、ステップS312で選択されたネットに対して位置判定以下の処理が行われる。
図17Cは、ネット毎のドライバとレシーバの最長距離に基づき、位置判定を行うネットを絞り込むものである。まず、位置判定部112は、ドライバとレシーバの最長距離をネット毎に算出する(S317)。位置判定部112は、記憶部13に格納されるセル情報、駆動関係情報(共に図4)を参照し、ドライバの出力端子の座標、レシーバの入力端子の座標を取得する。そして、ドライバの出力端子とレシーバの入力端子間のユークリッド距離をそれぞれ算出し、最長距離を求める。
その最長距離が所定の閾値を超えている場合、ネットの規模が大きいことを意味し、そのネットに斜め配線を配置することで遅延時間を減少させることができる効果が期待される。ネットにおける遅延時間の減少は、半導体集積回路全体で見ても動作速度の改善・向上につながるため、最長距離が所定の閾値以上である場合(S318Yes)、位置判定部112は、そのネットを位置判定の対象として選択する(S312)。
逆に、最長距離が所定の閾値を下回る場合(S318No)、そのネットは位置判定の対象として選択されず、その結果、そのネットに斜め配線が配置されることはない。ステップS312が済むと、未処理のネットがあるかが判定され(S313)、位置判定部112は、未処理のネットに対してステップS317の処理を繰り返す(S313Yes)。すべてのネットについて処理が完了すれば(S313No)、図16ステップS51に進み、ステップS312で選択されたネットに対して位置判定以下の処理が行われる。
図19は、斜め配線を適用するネットの絞込みを行う絞込み処理の別の例を説明するフローチャートである。図19Aは、ネット毎にすべてのレシーバを接続する木を求め、その木の規模に基づき、位置判定を行うネットを絞り込むものである。
まず、位置判定部112は、レシーバ群のレシーバを接続する木をグラフ理論に基づき探索し、木の全長を計測する(S319)。レシーバを接続する木の探索法には、任意の解法を適用してよい。
木の全長が所定の閾値を超えている場合、ネットの規模が大きいことを意味し、そのネットに斜め配線を配置することで遅延時間を減少させることができる効果が期待される。ネットにおける遅延時間の減少は、半導体集積回路全体で見ても動作速度の改善・向上につながるため、木の全長が所定の閾値以上である場合(S320Yes)、位置判定部112は、そのネットを位置判定の対象として選択する(S312)。
逆に、木の全長が所定の閾値を下回る場合(S320No)、そのネットは位置判定の対象として選択されず、その結果、そのネットに斜め配線が配置されることはない。ステップS312が済むと、未処理のネットがあるかが判定され(S313)、位置判定部112は、未処理のネットに対してステップS319の処理を繰り返す(S313Yes)。すべてのネットについて処理が完了すれば(S313No)、図16ステップS51に進み、ステップS312で選択されたネットに対して位置判定以下の処理が行われる。
図19Bは、ネット毎にすべてのレシーバを囲む所定領域を求め、その所定領域の面積に基づき、位置判定を行うネットを絞り込むものである。
まず、位置判定部112は、レシーバ群を囲む所定領域を求める(S321)。この処理は、位置判定(図8ステップS51)で行われる処理と同じである。つまり、図9に一例が示されるが例えば、レシーバ群を囲む最小の矩形を求めればよい。
所定領域の面積が所定の閾値を超えている場合、レシーバ群が広がりを持っており、ネットの規模が大きいことが予想される。そのネットに斜め配線を配置すれば、遅延時間を減少させる効果が期待される。ネットにおける遅延時間の減少は、半導体集積回路全体で見ても動作速度の改善・向上につながるため、所定領域の面積が所定の閾値以上である場合(S322Yes)、位置判定部112は、そのネットを位置判定の対象として選択する(S312)。
逆に、所定領域の面積が所定の閾値を下回る場合(S322No)、そのネットは位置判定の対象として選択されず、その結果、そのネットに斜め配線が配置されることはない。ステップS312が済むと、未処理のネットがあるかが判定され(S313)、位置判定部112は、未処理のネットに対してステップS321の処理を繰り返す(S313Yes)。すべてのネットについて処理が完了すれば(S313No)、図16ステップS51に進み、ステップS312で選択されたネットに対して位置判定以下の処理が行われる。
なお、図17、図19において説明した絞込み処理を組み合わせてネットを絞り込むことも可能である。例えば、遅延時間が所定の閾値以上で、短縮長も所定の閾値以上であるネットを位置判定の対象としてもよい。
また、図17Bの絞込み処理を行う場合、ステップS314で基準点が決定されるため、重複する図16ステップS52は省略される。
図17、図19においては、斜め配線を適用する効果やネットの規模を数値化し、その数値が所定の閾値以上であるネットを選別しているが、数値の大小に応じて順位を付け、その順位に沿って位置判定を行ってもよい。例えば、遅延時間の大きいネットからソートした結果を順位表として格納しておく場合などである。
また、例えば、遅延時間と短縮長に重み付き係数を掛けた評価値を求め、評価値の高い順に位置判定を行うようにしてもよい。例えば、評価値=係数1×遅延時間+係数2×短縮長として、評価値を求めることができる。すると、重み付き係数(係数1、係数2)を変えることで、タイミング優先で斜め配線を行うか、配線長短縮による配線混雑度緩和を優先して斜め配線を行うかの戦略を評価値に反映させることができる。
図20は、順位を示す表のデータ構成例である。図20の順位表には、「順位」「ネット」というデータ項目が含まれる。「順位」は、順番を示し、「ネット」はネットを識別するための識別子である。例えば図20の順位表を位置判定部112が参照すると、最初にネットN3に対して位置判定を行い、次に、ネットN1に対して位置判定を行う。以上の処理が、図16ステップS31の絞込み処理として行われてもよい。
以上に説明した第2の実施形態によれば、第1の実施形態の効果に加えて、遅延時間や回路規模を示す数値等に基づき、斜め配線の配置が必要なネットに斜め配線が配置されるように配線が最適化される。また、斜め配線の配置による効果を数値化して、より効果の期待できるネットに斜め配線が配置されるように配線が最適化される。更に、順位付けを行い、順位に基づき優先的に斜め配線が配置されるように配線を最適化することもできる。
次に、第3の実施形態について説明する。第1、第2の実施形態においては、第1の斜め配線の角度α、第2の斜め配線の角度βとして、予め定められた角度が用いられるが、第3の実施形態においては、斜め配線を配置すると仮定して短縮長が最も大きくなる角度を選択することによって、斜め配線の角度を最適化するものである。
図21は、第3の実施形態における設計支援装置1の制御部11を説明する機能ブロック図である。第1の実施形態と異なる箇所は、斜め配線の最適な傾きを決定する傾き決定部111を備える点であり、それ以外の箇所は、第1の実施形態における制御部11の機能ブロック図(図7)と同じであるため説明は省略する。
図22は、第3の実施形態における設計支援装置1の動作を説明するフローチャートである。
第2の実施形態と異なる箇所は、ステップS31の前段に、斜め配線の傾きを決定するステップが設けられている点であり、それ以外の箇所は、第2の実施形態における動作フロー(図16)と同じであるため説明は省略する。
まず、傾き決定部111は、斜め配線の最適な傾きを決定する(S11)。そして、ステップS11が完了すると、ステップS11で決定された傾きを持つ斜め配線を用いて、位置判定部112が、絞込み処理を行い(S31)、絞り込まれたネットに対して位置判定を行う(S51)。以降の処理は、第2の実施形態(図16)と同じであり説明は省略する。
図23は、図22ステップS11の斜め配線の最適な傾きを決定する傾き決定処理の例を説明するフローチャートである。ここでは、図5に示す第1の斜め配線と第2の斜め配線の傾きα度(0<α<90)、β度(90<β<180)を最適化するものとする。
まず、傾き決定部111は、第1の斜め配線の傾き(第1角度)と第2の斜め配線の傾き(第2角度)の初期値を設定する(S111)。例えば、第1角度の初期値を1度、第2角度の初期値を91度として、以後1度ずつ変化させていくことにする。始めに第1角度を最適化する。
そこで、傾き決定部111は、ネット毎に、ドライバとの位置関係が第1象限又は第3象限に属するレシーバを抽出する(S112)。傾き決定部111は、各ネットに含まれるドライバとレシーバの座標を、記憶部13に格納されるセル情報、駆動関係情報(図4)を参照することにより取得する。
そして、図5Aに示すようにドライバが原点となるように座標を平行移動し、レシーバのxy座標を見ることでそのレシーバが属する象限を決定する。xy座標が共に正なら、そのレシーバは第1象限に属する。同様に、x座標が負、y座標が正なら第2象限、xy座標が共に負なら第3象限、x座標が正、y座標が負なら第4象限に属する。
こうして、第1象限又は第3象限に属するレシーバを抽出すると、傾き決定部111は、抽出されたレシーバとドライバとを斜め配線で接続するときの短縮長の合計をネット毎に算出する(S113)。ステップS113における短縮長の算出法は、図17Bの絞込み処理におけるステップS315で説明した通りである。ただし、絞り込み処理においては、レシーバ群を代表する基準点とドライバとの短縮長を算出したが、ここでは、各レシーバとドライバに対して短縮長を求める点が異なる。
傾き決定部111は、未処理のネットがあるかを判定し、あれば(S114Yes)、ステップS112に戻り処理を続ける。すべてのネットに対して、ステップS111で設定された初期値の斜め配線を用いた場合の短縮長が算出できたら(S114No)、ネット全体の短縮長の合計値を算出し、第1角度(ここでは、ステップS111で設定された初期値)に対応付けて記憶部13に格納する(S115)。
そして、傾き決定部111は、第1角度に所定値を追加する(S116)。例えば、1度追加する。所定値を追加した後の第1角度が90度未満であれば(S117No)、傾き決定部111は、ステップS112からの処理を新たな第1角度を用いて続行する。
第1角度が90度以上になれば(S117Yes)、傾き決定部111は、記憶部13を参照して、変化させた角度毎に対応付けられる短縮長が最大となる角度を第1角度として決定する(S118)。こうして第1角度が最適化される。同様にして第2角度を最適化する。
傾き決定部111は、ネット毎に、ドライバとの位置関係が第2象限又は第4象限に属するレシーバを抽出する(S119)。この処理は、ステップS112と同様に処理される。第2象限又は第4象限に属するレシーバを抽出すると、傾き決定部111は、抽出されたレシーバとドライバとを斜め配線で接続するときの短縮長の合計をネット毎に算出する(S120)。ステップS120の処理は、ステップS113と同じである。
傾き決定部111は、未処理のネットがあるかを判定し、あれば(S121Yes)、ステップS119に戻り処理を続ける。すべてのネットに対して、ステップS111で設定された初期値の斜め配線を用いた場合の短縮長が算出できたら(S121No)、ネット全体の短縮長の合計値を算出し、第2角度(ここでは、ステップS111で設定された初期値)に対応付けて記憶部13に格納する(S122)。
そして、傾き決定部111は、第2角度に所定値を追加する(S123)。例えば、1度追加する。所定値を追加した後の第2角度が180度未満であれば(S124No)、傾き決定部111は、ステップS119からの処理を新たな第2角度を用いて続行する。
第2角度が180度以上になれば(S124Yes)、傾き決定部111は、記憶部13を参照して、変化させた角度毎に対応付けられる短縮長が最大となる角度を第2角度として決定する(S125)。こうして第2角度も最適化される。
以上に説明した第3の実施形態によれば、斜め配線の傾きをセルの配置に応じて最適化した上で、第1の実施形態、第2の実施形態の動作を設計支援装置1にさせることができ、より斜め配線使用時の効果を高めることができる。
なお、第1から第3の実施形態においては、傾きの異なる2種類の斜め配線を用いる場合について説明したが、1種類のみの斜め配線を用いる場合にも適用が可能である。
図24は、第1の斜め配線のみを用いる場合の配線を示す図である。図24に示されるように、α度(0<α<90)の斜め配線のみを用いる場合には、ドライバと基準点との位置関係が第1象限又は第3象限にある場合に斜め配線が使用され、それ以外の場合には、縦方向及び/又は横方向の配線による従来配線を行えばよい。
以上まとめると付記のようになる。
(付記1)
論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定するレイアウトプログラムが格納される記憶部と、前記記憶部から前記レイアウトプログラムを読み出して実行する制御部とを有する設計支援装置であって、
前記記憶部には、前記複数のセルが配置される位置を特定する位置情報が格納され、
前記制御部は、
一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、
前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを前記レイアウトプログラムを実行して実現することを特徴とする設計支援装置。
(付記2)
付記1において、
前記制御部は、更に、前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行う探索機能を、前記レイアウトプログラムを実行して実現し、
前記レイアウト機能では、前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記基準点と、縦方向及び/又は横方向の配線により接続可能かが確認される接続判定が行われ、接続可能であれば該選択された位置に前記斜め配線が配置されることを特徴とする設計支援装置。
(付記3)
付記2において、
前記探索機能では、前記斜め配線の長さを予め設定された所定の初期値として前記探索が開始され、前記斜め配線を配置可能な範囲がない場合、該斜め配線の長さを前記所定の初期値より短くして再探索が行われることを特徴とする設計支援装置。
(付記4)
付記3において、
前記探索機能では、前記斜め配線の長さが第1の閾値以下となる場合、前記探索が中止されることを特徴とする設計支援装置。
(付記5)
付記1又は2において、
前記所定の領域は、前記1つ又は複数のレシーバを囲む最小の矩形であることを特徴とする設計支援装置。
(付記6)
付記1又は2において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記位置判定機能では、前記複数のネットのうち、前記遅延時間が第2の閾値以上である前記経路を含む前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
(付記7)
付記1又は2において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記位置判定機能では、前記遅延時間が長い前記ネットから順に前記位置判定が行われることを特徴とする設計支援装置。
(付記8)
付記1又は2において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記位置判定機能では、前記複数のネットのうち、前記差が第3の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。(6)
(付記9)
付記1又は2において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記位置判定機能では、前記差が大きい前記ネットから順に前記位置判定が行われることを特徴とする設計支援装置。
(付記10)
付記1又は2において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間と、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差とが、それぞれ前記ネット毎に算出されており、
前記位置判定機能では、前記遅延時間と前記差とに重み付き係数を掛けて算出される評価値に基づき前記ネットの順位が決定され、前記順位の高い前記ネットから順に前記位置判定が行われることを特徴とする設計支援装置。
(付記11)
付記1又は2において、
前記位置判定機能では、前記ネットに含まれる前記ドライバから前記レシーバまでの最長距離が前記ネット毎に算出され、前記複数のネットのうち、前記最長距離が第4の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
(付記12)
付記1又は2において、
前記位置判定機能では、前記ネットに含まれる前記1つ又は複数のレシーバを接続する木が探索され、前記木の全長が前記ネット毎に算出され、前記全長が第5の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
(付記13)
付記1又は2において、
前記位置判定機能では、前記ネット毎に前記所定の領域の面積が算出され、前記面積が第6の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
(付記14)
付記1又は2において、
前記配線レイアウトは、互いに直交するx軸とy軸とによって形成される2次元平面にて決定され、
前記斜め配線は、前記x軸に対してα度(0<α<90)をなす第1の斜め配線と前記x軸に対してβ度(90<β<180)をなす第2の斜め配線とを含み、
前記レイアウト機能では、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さい場合には、前記第1の斜め配線が使用され、該線分が前記x軸となす角が90度より大きい場合には、前記第2の斜め配線が使用されることを特徴とする設計支援装置。
(付記15)
付記1又は2において、
前記第1の斜め配線の傾きは、前記第1の斜め配線の傾きを変化させて第1の合計値を算出するとき、前記第1の合計値を最大にする傾きであり、
前記第2の斜め配線の傾きは、前記第2の斜め配線の傾きを変化させて第2の合計値を算出するとき、前記第2の合計値を最大にする傾きであって、
前記第1の合計値は、前記第1の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さいという第1の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第1の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記条件を満たす基準点までを該傾きの固定された第1の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出され、
前記第2の合計値は、前記第2の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が90度より大きいという第2の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第2の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記第2の条件を満たす基準点までを該傾きの固定された第2の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出されることを特徴とする設計支援装置。
(付記16)
論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定する配線設計支援装置であって、
前記複数のセルが配置される位置を特定する位置情報が格納される記憶部と、
一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定部と、
前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト部とを有することを特徴とする設計支援装置。
(付記17)
付記16において、更に、
前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行う探索部を有し、
前記レイアウト部は、前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記基準点と、縦方向及び/又は横方向の配線により接続可能かを確認する接続判定が行われ、接続可能であれば該選択された位置に前記斜め配線を配置することを特徴とする設計支援装置。
(付記18)
論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定し、かつ、前記複数のセルが配置される位置を特定する位置情報が格納されるコンピュータに、
一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、
前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを実現させるためのプログラム。
(付記19)
付記18において、
更に、前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行う探索機能を実現させ、
前記レイアウト機能では、前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記基準点と、縦方向及び/又は横方向の配線により接続可能かが確認される接続判定が行われ、接続可能であれば該選択された位置に前記斜め配線が配置されることを特徴とするプログラム。
(付記20)
付記19において、
前記探索機能では、前記斜め配線の長さを予め設定された所定の初期値として前記探索が開始され、前記斜め配線を配置可能な範囲がない場合、該斜め配線の長さを前記所定の初期値より短くして再探索が行われることを特徴とするプログラム。
(付記21)
付記20において、
前記探索機能では、前記斜め配線の長さが第1の閾値以下となる場合、前記探索が中止されることを特徴とするプログラム。
(付記22)
付記18又は19において、
前記所定の領域は、前記1つ又は複数のレシーバを囲む最小の矩形であることを特徴とするプログラム。
(付記23)
付記18又は19において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記位置判定機能では、前記複数のネットのうち、前記遅延時間が第2の閾値以上である前記経路を含む前記ネットが前記位置判定の対象とされることを特徴とするプログラム。
(付記24)
付記18又は19において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記位置判定機能では、前記遅延時間が長い前記ネットから順に前記位置判定が行われることを特徴とするプログラム。
(付記25)
付記18又は19において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記位置判定機能では、前記複数のネットのうち、前記差が第3の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とするプログラム。
(付記26)
付記18又は19において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記位置判定機能では、前記差が大きい前記ネットから順に前記位置判定が行われることを特徴とするプログラム。
(付記27)
付記18又は19において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間と、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差とが、それぞれ前記ネット毎に算出されており、
前記位置判定機能では、前記遅延時間と前記差とに重み付き係数を掛けて算出される評価値に基づき前記ネットの順位が決定され、前記順位の高い前記ネットから順に前記位置判定が行われることを特徴とするプログラム。
(付記28)
付記18又は19において、
前記位置判定機能では、前記ネットに含まれる前記ドライバから前記レシーバまでの最長距離が前記ネット毎に算出され、前記複数のネットのうち、前記最長距離が第4の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とするプログラム。
(付記29)
付記18又は19において、
前記位置判定機能では、前記ネットに含まれる前記1つ又は複数のレシーバを接続する木が探索され、前記木の全長が前記ネット毎に算出され、前記全長が第5の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とするプログラム。
(付記30)
付記18又は19において、
前記位置判定機能では、前記ネット毎に前記所定の領域の面積が算出され、前記面積が第6の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とするプログラム。
(付記31)
付記18又は19において、
前記配線レイアウトは、互いに直交するx軸とy軸とによって形成される2次元平面にて決定され、
前記斜め配線は、前記x軸に対してα度(0<α<90)をなす第1の斜め配線と前記x軸に対してβ度(90<β<180)をなす第2の斜め配線とを含み、
前記レイアウト機能では、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さい場合には、前記第1の斜め配線が使用され、該線分が前記x軸となす角が90度より大きい場合には、前記第2の斜め配線が使用されることを特徴とするプログラム。
(付記32)
付記18又は19において、
前記第1の斜め配線の傾きは、前記第1の斜め配線の傾きを変化させて第1の合計値を算出するとき、前記第1の合計値を最大にする傾きであり、
前記第2の斜め配線の傾きは、前記第2の斜め配線の傾きを変化させて第2の合計値を算出するとき、前記第2の合計値を最大にする傾きであって、
前記第1の合計値は、前記第1の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さいという第1の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第1の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記条件を満たす基準点までを該傾きの固定された第1の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出され、
前記第2の合計値は、前記第2の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が90度より大きいという第2の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第2の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記第2の条件を満たす基準点までを該傾きの固定された第2の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出されることを特徴とするプログラム。
(付記33)
論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定する設計支援方法であって、
予め前記複数のセルが配置される位置を特定する位置情報が記憶されており、
一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、
前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行い、
前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、
前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置することを特徴とする設計支援方法。
(付記34)
付記33において、更に、
前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、
前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行い、
前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記基準点と、縦方向及び/又は横方向の配線により接続可能かを確認する接続判定を行い、
接続可能であれば該選択された位置に前記斜め配線を配置することを特徴とする設計支援方法。
(付記35)
付記34において、
前記斜め配線の長さを予め設定された所定の初期値として前記探索が開始され、前記斜め配線を配置可能な範囲がない場合、該斜め配線の長さを前記所定の初期値より短くして再探索が行われることを特徴とする設計支援方法。
(付記36)
付記35において、
前記斜め配線の長さが第1の閾値以下となる場合、前記探索が中止されることを特徴とする設計支援方法。
(付記37)
付記33又は34において、
前記所定の領域は、前記1つ又は複数のレシーバを囲む最小の矩形であることを特徴とする設計支援方法。
(付記38)
付記33又は34において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記複数のネットのうち、前記遅延時間が第2の閾値以上である前記経路を含む前記ネットが前記位置判定の対象とされることを特徴とする設計支援方法。
(付記39)
付記33又は34において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
前記遅延時間が長い前記ネットから順に前記位置判定が行われることを特徴とするレイアウ方法。ト
(付記40)
付記33又は34において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記複数のネットのうち、前記差が第3の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援方法。
(付記41)
付記33又は34において、
前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
前記差が大きい前記ネットから順に前記位置判定が行われることを特徴とする設計支援方法。
(付記42)
付記33又は34において、
前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間と、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差とが、それぞれ前記ネット毎に算出されており、
前記遅延時間と前記差とに重み付き係数を掛けて算出される評価値に基づき前記ネットの順位が決定され、前記順位の高い前記ネットから順に前記位置判定が行われることを特徴とする設計支援方法。
(付記43)
付記33又は34において、
前記ネットに含まれる前記ドライバから前記レシーバまでの最長距離が前記ネット毎に算出され、前記複数のネットのうち、前記最長距離が第4の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援方法。
(付記44)
付記33又は34において、
前記ネットに含まれる前記1つ又は複数のレシーバを接続する木が探索され、前記木の全長が前記ネット毎に算出され、前記全長が第5の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援方法。
(付記45)
付記33又は34において、
前記ネット毎に前記所定の領域の面積が算出され、前記面積が第6の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援方法。
(付記46)
付記33又は34において、
前記配線レイアウトは、互いに直交するx軸とy軸とによって形成される2次元平面にて決定され、
前記斜め配線は、前記x軸に対してα度(0<α<90)をなす第1の斜め配線と前記x軸に対してβ度(90<β<180)をなす第2の斜め配線とを含み、
前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さい場合には、前記第1の斜め配線が使用され、該線分が前記x軸となす角が90度より大きい場合には、前記第2の斜め配線が使用されることを特徴とする設計支援方法。
(付記47)
付記33又は34において、
前記第1の斜め配線の傾きは、前記第1の斜め配線の傾きを変化させて第1の合計値を算出するとき、前記第1の合計値を最大にする傾きであり、
前記第2の斜め配線の傾きは、前記第2の斜め配線の傾きを変化させて第2の合計値を算出するとき、前記第2の合計値を最大にする傾きであって、
前記第1の合計値は、前記第1の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さいという第1の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第1の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記条件を満たす基準点までを該傾きの固定された第1の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出され、
前記第2の合計値は、前記第2の斜め配線の傾きを固定するとき、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が90度より大きいという第2の条件を満たす前記基準点に対して、前記ドライバの前記出力端子と前記第2の条件を満たす基準点とのマンハッタン距離と、前記ドライバから前記第2の条件を満たす基準点までを該傾きの固定された第2の斜め配線を用いた配線で接続する場合の配線長との差の前記複数のネットでの合計値として算出されることを特徴とする設計支援方法。
本発明の実施形態における設計支援装置1の構成ブロック図である。 設計支援の対象である半導体集積回路を説明する図である Aは、セルの駆動を説明する図であり、Bは、セルの駆動関係の例を説明する図であり、Cは、ドライバとレシーバの組をまとめたネットを示す図であり、Dは、ネットの別の例を示す図である。 Aは、記憶部に格納されるセル情報のデータ構成例であり、Bは、記憶部13に格納される駆動関係を特定する情報のデータ構成例である。 Aは、実施形態の説明において共通に用いられる斜め配線を説明する図であり、Bは、第1の斜め配線と第2の斜め配線の関係を示す図である。 Aは、半導体集積回路100における配線層の構造を示す図であり、Bは、半導体集積回路の断面図であり、Cは、第1の斜め配線を用いた配線が行われる場合の配線と配線層との関係を説明する図であり、Dは、第2の斜め配線を用いた配線が行われる場合の配線と配線層との関係を説明する図である。 第1の実施形態における設計支援装置の制御部を説明する機能ブロック図である。 第1の実施形態における設計支援装置の動作を説明するフローチャートである。 位置判定の例を説明する図であり、Aは、所定の領域として矩形が用いられる場合、Bは、所定の領域として楕円が用いられる場合を示す。 基準点の決定方法の一部を示す図である。 斜め配線の配置処理を説明するフローチャートである。 斜め配線に隣接する配線の方向を決定する様子を説明する図である。 サーチの様子を説明する図である。 障害物箇所と使用箇所の位置情報を配線層別に格納した表のデータ構成例である。 斜め配線を短くして再サーチを行う場合の様子を説明する図である。 第2の実施形態における設計支援装置の動作を説明するフローチャートである。 斜め配線を適用するネットの絞込みを行う絞込み処理の例を説明するフローチャートである。 遅延時間表のデータ構成例である。 斜め配線を適用するネットの絞込みを行う絞込み処理の別の例を説明するフローチャートである。 順位を示す表のデータ構成例である。 第3の実施形態における設計支援装置の制御部を説明する機能ブロック図である。 第3の実施形態における設計支援装置の動作を説明するフローチャートである。 斜め配線の最適な傾きを決定する傾き決定処理の例を説明するフローチャートである。 第1の斜め配線のみを用いる場合の配線を示す図である。
符号の説明
1 設計支援装置、11 制御部、12 RAM、13 記憶部、14 バス、15 周辺機器インタフェース、16 入力部、17 出力部、111 傾き決定部、112 位置判定部、113 探索部、114 レイアウト部

Claims (10)

  1. 論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定するレイアウトプログラムが格納される記憶部と、前記記憶部から前記レイアウトプログラムを読み出して実行する制御部とを有する設計支援装置であって、
    前記記憶部には、前記複数のセルが配置される位置を特定する位置情報が格納され、
    前記制御部は、
    一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、
    前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを前記レイアウトプログラムを実行して実現することを特徴とする設計支援装置。
  2. 請求項1において、
    前記制御部は、更に、前記ドライバの前記出力端子と前記基準点とを結ぶ線分の傾き、及び、前記斜め配線の傾きに基づき、該斜め配線に隣接する配線の方向を縦方向又は横方向と決定し、前記斜め配線を前記決定された隣接配線方向に平行移動させて、前記斜め配線を配置可能な範囲を見つける探索を行う探索機能を、前記レイアウトプログラムを実行して実現し、
    前記レイアウト機能では、前記探索された範囲において選択された位置に前記斜め配線を配置すると仮定するとき、それぞれ、前記仮配置された前記斜め配線の両端のうち前記ドライバに近い端点は前記ドライバの前記出力端子と、前記基準点に近い端点は前記基準点と、縦方向及び/又は横方向の配線により接続可能かが確認される接続判定が行われ、接続可能であれば該選択された位置に前記斜め配線が配置されることを特徴とする設計支援装置。
  3. 請求項2において、
    前記探索機能では、前記斜め配線の長さを予め設定された所定の初期値として前記探索が開始され、前記斜め配線を配置可能な範囲がない場合、該斜め配線の長さを前記所定の初期値より短くして再探索が行われることを特徴とする設計支援装置。
  4. 請求項1又は2において、
    前記所定の領域は、前記1つ又は複数のレシーバを囲む最小の矩形であることを特徴とする設計支援装置。
  5. 請求項1又は2において、
    前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間が、前記ネット毎に算出されており、
    前記位置判定機能では、前記複数のネットのうち、前記遅延時間が第2の閾値以上である前記経路を含む前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
  6. 請求項1又は2において、
    前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差が前記ネット毎に算出されており、
    前記位置判定機能では、前記複数のネットのうち、前記差が第3の閾値以上である前記ネットが前記位置判定の対象とされることを特徴とする設計支援装置。
  7. 請求項1又は2において、
    前記ドライバから前記レシーバまでを縦方向及び/又は横方向の配線により接続するとき、前記ドライバと前記レシーバ間の各経路に生じる遅延時間と、前記ドライバと前記基準点とのマンハッタン距離と、前記ドライバから前記基準点までを前記斜め配線を用いた配線で接続する場合の配線長との差とが、それぞれ前記ネット毎に算出されており、
    前記位置判定機能では、前記遅延時間と前記差とに重み付き係数を掛けて算出される評価値に基づき前記ネットの順位が決定され、前記順位の高い前記ネットから順に前記位置判定が行われることを特徴とする設計支援装置。
  8. 請求項1又は2において、
    前記配線レイアウトは、互いに直交するx軸とy軸とによって形成される2次元平面にて決定され、
    前記斜め配線は、前記x軸に対してα度(0<α<90)をなす第1の斜め配線と前記x軸に対してβ度(90<β<180)をなす第2の斜め配線とを含み、
    前記レイアウト機能では、前記ドライバの前記出力端子と前記基準点とを結ぶ線分が前記x軸となす角が0度より大きく90度より小さい場合には、前記第1の斜め配線が使用され、該線分が前記x軸となす角が90度より大きい場合には、前記第2の斜め配線が使用されることを特徴とする設計支援装置。
  9. 論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定し、かつ、前記複数のセルが配置される位置を特定する位置情報が格納されるコンピュータに、
    一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行う位置判定機能と、
    前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置するレイアウト機能とを実現させるためのプログラム。
  10. 論理ゲートを複数組み合わせて、それぞれ異なる機能を実現する複数のセルを持つ集積回路において、予め傾きが定められた斜め配線を用いて前記複数のセルを接続するときの配線レイアウトを決定するレイアウトプログラムが格納される記憶部と、前記記憶部から前記レイアウトプログラムを読み出して実行する制御部とを有する設計支援装置における設計支援方法であって、
    前記記憶部には、予め前記複数のセルが配置される位置を特定する位置情報が記憶されており、
    前記制御部は、
    一のセルと、該一のセルの出力端子を介して駆動される1つ又は複数のセルとから形成されるネットにおいて、該一のセルをドライバとし、前記ドライバにより駆動される前記1つ又は複数のセルをそれぞれレシーバとするとき、前記位置情報に基づき前記ネット毎に前記ネットに含まれる前記1つ又は複数のレシーバの全体を囲む所定の領域を求め、
    前記ネット毎に前記ドライバが前記所定の領域の外部にあるかを確認する位置判定を行い、
    前記ドライバが前記所定の領域の外部にあると判定された前記ネットに対して、前記所定領域の内部から基準点を決定し、
    前記基準点と前記レシーバの入力端子とを縦方向及び/又は横方向の配線により接続可能な場合に、前記ドライバの前記出力端子と前記基準点とを接続する配線に前記斜め配線を配置することを特徴とする設計支援方法。
JP2004336329A 2004-11-19 2004-11-19 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法 Expired - Fee Related JP4326462B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004336329A JP4326462B2 (ja) 2004-11-19 2004-11-19 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法
US11/059,556 US7328422B2 (en) 2004-11-19 2005-02-17 Design support apparatus, design support program and design support method for supporting design of semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004336329A JP4326462B2 (ja) 2004-11-19 2004-11-19 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法

Publications (2)

Publication Number Publication Date
JP2006146594A JP2006146594A (ja) 2006-06-08
JP4326462B2 true JP4326462B2 (ja) 2009-09-09

Family

ID=36462316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004336329A Expired - Fee Related JP4326462B2 (ja) 2004-11-19 2004-11-19 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法

Country Status (2)

Country Link
US (1) US7328422B2 (ja)
JP (1) JP4326462B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005093044A1 (en) * 2004-03-22 2005-10-06 Osiris Therapeutics, Inc. Mesenchymal stem cells and uses therefor
US20080095749A1 (en) * 2004-03-22 2008-04-24 Sudeepta Aggarwal Mesenchymal stem cells and uses therefor
JP5075008B2 (ja) * 2008-05-15 2012-11-14 ルネサスエレクトロニクス株式会社 回路解析方法、回路解析プログラム、及び回路解析装置
US11501052B1 (en) * 2021-05-27 2022-11-15 Taiwan Semiconductor Manufacturing Company, Ltd Conductor scheme selection and track planning for mixed-diagonal-Manhattan routing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01112749A (ja) 1987-10-27 1989-05-01 Fujitsu Ltd 半導体集積回路
JPH02216533A (ja) 1989-02-17 1990-08-29 Mitsubishi Electric Corp ルールベース実行装置及び方法
JPH05243379A (ja) 1992-02-27 1993-09-21 Nec Ic Microcomput Syst Ltd 半導体集積回路装置
US6262487B1 (en) 1998-06-23 2001-07-17 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device, semiconductor integrated circuit wiring method, and cell arranging method
JP3964575B2 (ja) 1998-06-23 2007-08-22 株式会社東芝 半導体集積回路装置、半導体集積回路配線方法およびセル配置方法
US6858928B1 (en) * 2000-12-07 2005-02-22 Cadence Design Systems, Inc. Multi-directional wiring on a single metal layer
US7594196B2 (en) * 2000-12-07 2009-09-22 Cadence Design Systems, Inc. Block interstitching using local preferred direction architectures, tools, and apparatus
US7155697B2 (en) * 2001-08-23 2006-12-26 Cadence Design Systems, Inc. Routing method and apparatus

Also Published As

Publication number Publication date
US20060112365A1 (en) 2006-05-25
US7328422B2 (en) 2008-02-05
JP2006146594A (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
CN103455654B (zh) 基于机器学习的数据路径提取
CN107066681B (zh) 集成电路和制造集成电路的计算机实现方法
US8769468B1 (en) Automatic generation of wire tag lists for a metal stack
US9064082B2 (en) Updating pin locations in a graphical user interface of an electronic design automation tool
US20020144227A1 (en) Datapath design methodology and routing apparatus
JPH10163330A (ja) レイアウト考慮遅延最適化装置および方法
US9147030B2 (en) Multiple-instantiated-module (mim) aware pin assignment
JP4326462B2 (ja) 半導体集積回路の設計を支援する設計支援装置、設計支援プログラム、及び設計支援方法
JP2018112865A (ja) 情報処理装置、プログラム、および情報処理方法
KR20180028252A (ko) 집적 회로 설계 시스템 및 집적 회로의 제조 방법
US10885260B1 (en) Fin-based fill cell optimization
US8015532B2 (en) Optimal timing-driven cloning under linear delay model
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
US9892226B2 (en) Methods for providing macro placement of IC
JP2016212627A (ja) 経路探索プログラム、情報処理装置、及び経路探索方法
JP2005149273A (ja) 半導体集積回路のフロアプラン装置及びフロアプラン方法
US9817936B2 (en) Methods for minimizing layout area of IC
Kubo et al. Global routing by iterative improvements for two-layer ball grid array packages
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
US20110041112A1 (en) Method and apparatus for generating a centerline connectivity representation
JP4778339B2 (ja) 自動配置方法、装置、及びプログラム
US20070136712A1 (en) Semiconductor design support apparatus
US20240281584A1 (en) Physical layout synthesis for standard cells using slice layouts
US20250005251A1 (en) Equivalent wire codes for routing nets in an integrated circuit design
JP5883633B2 (ja) レイアウト装置及びレイアウト方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090416

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090609

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees