(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183339
(43)【公開日】2023-12-27
(54)【発明の名称】設計支援プログラム、設計支援方法、および情報処理装置
(51)【国際特許分類】
G06F 30/3953 20200101AFI20231220BHJP
H01L 21/82 20060101ALI20231220BHJP
【FI】
G06F30/3953
H01L21/82 B
H01L21/82 C
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022096899
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】小林 ひとみ
(72)【発明者】
【氏名】岩田 明郎
【テーマコード(参考)】
5B146
5F064
【Fターム(参考)】
5B146AA22
5B146GC15
5B146GC24
5B146GC27
5F064AA04
5F064EE02
5F064EE03
5F064EE08
(57)【要約】
【課題】結線に使用されない配線による配線間容量を抑えること。
【解決手段】回路設計装置は、隣り合う2つのセルSC2,SC3について、各セルSC2,SC3内の枝配線の長さに基づいて、セルSC2,SC3間で共有する配線部分の長さを算出する。回路設計装置は、算出した共有する配線部分の長さに基づいて、共有する配線部分に配置されるカットメタルの配置数を決定する。回路設計装置は、決定した配置数が「2」の場合、共有する配線部分の両端にカットメタルの配置位置を決定する。回路設計装置は、決定した配置数が「1」の場合、配線の種別に応じて各枝配線に設定した優先度に基づいて、カットメタルの配置位置を1箇所決定する。
【選択図】
図18
【特許請求の範囲】
【請求項1】
設計対象回路のレイアウト設計を支援する設計支援プログラムであって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項2】
前記セルは、セル枠にカットメタルが設けられていないスタンダードセルであり、
前記2つのセルについて、前記枝配線の長さに基づいて、前記2つのセル間で共有する配線部分の長さを算出する、処理を前記コンピュータに実行させ、
前記決定する処理は、
算出した前記共有する配線部分の長さと前記配線の種別とに基づいて、前記共有する配線部分に配置されるカットメタルの配置数および配置位置を決定する、
ことを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記セルについて、前記セル内の配線上のビアと前記セルのセル枠との間の枝配線ごとに、当該枝配線を含む配線の種別に応じた優先度を設定する、処理を前記コンピュータに実行させ、
前記決定する処理は、
前記共有する配線部分の長さと、当該共有する配線部分を形成する各枝配線に設定した優先度とに基づいて、前記共有する配線部分に配置されるカットメタルの配置数および配置位置を決定する、
ことを特徴とする請求項2に記載の設計支援プログラム。
【請求項4】
前記配線の種別は、ゲート配線、ドレイン配線、内部配線およびフローティング配線のいずれかを示し、
前記設定する処理は、
前記セル内の前記枝配線を含む配線と当該配線に隣接する他の配線とのペアが、ゲート配線とドレイン配線とのペアの場合、前記枝配線に他のペアの枝配線よりも高い優先度を設定する、ことを特徴とする請求項3に記載の設計支援プログラム。
【請求項5】
前記設定する処理は、
前記ペアがフローティング配線とフローティング配線以外とのペアであり、かつ、前記枝配線を含む配線がフローティング配線以外の場合、前記枝配線に前記他の配線に含まれる他の枝配線よりも高い優先度を設定する、ことを特徴とする請求項4に記載の設計支援プログラム。
【請求項6】
前記決定する処理は、
前記共有する配線部分の長さが規定値未満の場合、前記共有する配線部分に配置されるカットメタルの配置数を1に決定し、
前記各枝配線に設定した優先度に基づいて、前記カットメタルの配置位置を1箇所決定する、
ことを特徴とする請求項3に記載の設計支援プログラム。
【請求項7】
前記決定する処理は、
前記共有する配線部分の長さが前記規定値以上の場合、前記共有する配線部分に配置されるカットメタルの配置数を2に決定し、
前記カットメタルの配置位置を前記共有する配線部分の両端に決定する、
ことを特徴とする請求項6に記載の設計支援プログラム。
【請求項8】
決定した前記配置数のカットメタルを、決定した前記配置位置に配置する、
処理を前記コンピュータに実行させることを特徴とする請求項3~7のいずれか一つに記載の設計支援プログラム。
【請求項9】
前記配置数のカットメタルを前記配置位置に配置した結果、スペースエラーが発生した場合、当該スペースエラーが発生した箇所の少なくともいずれかのカットメタルの配置位置を、前記2つのセルの境界部分のセル枠上に移動する、ことを特徴とする請求項8に記載の設計支援プログラム。
【請求項10】
設計対象回路のレイアウト設計を支援する設計支援方法であって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
処理をコンピュータが実行することを特徴とする設計支援方法。
【請求項11】
設計対象回路のレイアウト設計を支援する情報処理装置であって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計支援プログラム、設計支援方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、高密度配線のプロセステクノロジーとして、SADP(Self Aligned Double Patterning)などのマルチパターニング技術が用いられることがある。マルチパターニング技術では、配線チャネル上に敷き詰められたメタル配線を分割して結線に使用する。メタル配線の分割は、例えば、CAD(Computer-Aided Design)上で、メタル配線を分断するための認識レイヤー(カットメタル)を配置することで行われる。
【0003】
先行技術としては、例えば、FinFET(Fin Field Effect Transistor)構造を有する半導体集積回路を設計するためのものがある。また、クロストークノイズを除去する配線パターンを決定するための技術がある。また、セルの配置に基づき端子群を接続するための配線パターンを配線層において作成し、配線禁止領域に配線パターンが入っている場合に、配線禁止領域を除去し、配線禁止領域を除去することで生じた配線パターンの修正を行う技術がある。また、延在配線層を、活性領域上においてトランジスタのゲート電極を構成するゲート配線と素子分離領域上においてゲート電極を構成しないダミー配線とに離間させる開口パターンを備える半導体装置がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014-010839号公報
【特許文献2】特開2004-171363号公報
【特許文献3】特開2002-353314号公報
【特許文献4】特開2013-157498号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、マルチパターニング技術を用いたレイアウト設計において、結線には使用されない配線(枝配線)により配線間容量(寄生容量)が増大するという問題がある。
【0006】
一つの側面では、本発明は、結線に使用されない配線による配線間容量を抑えることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、設計対象回路のレイアウト設計を支援する設計支援プログラムであって、前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、設計支援プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、結線に使用されない配線による配線間容量を抑えることができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態1にかかる設計支援方法の一実施例を示す説明図である。
【
図2】
図2は、セル枠上にカットメタルが配置されたスタンダードセルの一例を示す説明図である。
【
図3】
図3は、ビアの根元にカットメタルを配置した場合のエラー例を示す説明図である。
【
図4】
図4は、セル枠上にカットメタルが配置されていないスタンダードセルの一例を示す説明図である。
【
図5】
図5は、情報処理システム500のシステム構成例を示す説明図である。
【
図6】
図6は、回路設計装置501のハードウェア構成例を示すブロック図である。
【
図7】
図7は、回路設計装置501の機能的構成例を示すブロック図である。
【
図8】
図8は、枝配線の長さの取得例を示す説明図である。
【
図9】
図9は、枝配線の優先度の設定例を示す説明図(その1)である。
【
図10】
図10は、枝配線の優先度の設定例を示す説明図(その2)である。
【
図11】
図11は、枝配線の優先度の設定例を示す説明図(その3)である。
【
図12】
図12は、枝配線の優先度の設定例を示す説明図(その4)である。
【
図13】
図13は、枝配線の優先度の設定例を示す説明図(その5)である。
【
図14】
図14は、枝配線の優先度の設定例を示す説明図(その6)である。
【
図15】
図15は、位置決め情報の設定例を示す説明図である。
【
図16】
図16は、位置決め情報のデータ構造例を示す説明図である。
【
図17】
図17は、カットメタルの配置数の決定例を示す説明図である。
【
図18】
図18は、カットメタルの配置位置の決定例を示す説明図である。
【
図19】
図19は、カットメタル間のスペースエラーの発生例を示す説明図である。
【
図20】
図20は、カットメタルの配置位置の修正例を示す説明図である。
【
図21】
図21は、回路設計装置501の前準備処理手順の一例を示すフローチャートである。
【
図22】
図22は、位置決め情報設定処理の具体的処理手順の一例を示すフローチャート(その1)である。
【
図23】
図23は、位置決め情報設定処理の具体的処理手順の一例を示すフローチャート(その2)である。
【
図24】
図24は、回路設計装置501の回路設計処理手順の一例を示すフローチャートである。
【
図25】
図25は、カットメタル配置処理の具体的処理手順の一例を示すフローチャートである。
【
図26】
図26は、決定処理の具体的処理手順の一例を示すフローチャートである。
【
図27】
図27は、スペースエラー修正処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる設計支援プログラム、設計支援方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態1)
図1は、実施の形態1にかかる設計支援方法の一実施例を示す説明図である。
図1において、情報処理装置101は、設計対象回路のレイアウト設計を支援するコンピュータである。設計対象回路は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、メモリなどの半導体集積回路である。
【0012】
マルチパターニング技術では、結線するために必要なメタル配線の図形を描く手法とは異なり、配線チャネル上に敷き詰められたメタル配線を分割して得られる配線部分を、結線に使用する。配線チャネル上に敷き詰められた配線を異なる信号として分割するには、カットメタルと呼ばれる、メタル配線を分断するための認識レイヤーをCAD上に配置する。
【0013】
マクロのレイアウトは、スタンダードセルを用意し、回路に合わせて配置し配線することにより行われる。マクロは、特定の機能(例えば、演算、カウントなど)を実現するための回路である。スタンダートセルは、回路の基本部品となるセルであり、例えば、AND、NANDなどの論理ゲートや、バッファ、フリップフロップ、マルチプレクサなどである。
【0014】
この際、隣り合うセル間の信号を分断するために、カットメタルを配置する場合がある。例えば、各セルのセル枠上に、予めカットメタルを配置しておくことが考えられる(例えば、後述の
図2参照)。セル枠は、セルの周囲をふちどる部分であり、例えば、左右(配線方向)に隣り合うセルと接する部分である。
【0015】
この場合、セル枠上のカットメタルは、セル配置時に隣り合うセルの境界部分のセル枠上で重なることで1つのカットメタルとなり、スペースエラーが発生しない。スペースエラーとは、デザインルールで定められるエラーの一つであり、カットメタル間の距離が短すぎることにより生じるエラーである。
【0016】
しかしながら、セル枠上にカットメタルが配置されたスタンダードセルの場合、結線には使用されないメタル配線により配線間容量が増大するという問題がある。スタンダードセル内の配線は、例えば、ゲート配線、ドレイン配線、内部配線、フローティング配線などを含む。ドレイン配線は、出力側の信号配線である。ゲート配線は、入力側の信号配線である。内部配線は、ドレイン配線およびゲート配線以外の信号配線である。フローティング配線は、信号配線として使われない配線部分である。
【0017】
ゲート配線とドレイン配線が隣接する箇所は、極性が反対のため、配線間容量が増幅され大きく見えることが知られている。この作用は、ミラー効果と呼ばれる。ミラー効果の影響は、ゲート配線とドレイン配線の隣接長に比例し、配線間容量を増大させディレイや電力を悪化させる。
【0018】
また、マルチパターニング技術で生成される配線は延在配線である。このため、セル枠上にカットメタルが配置されたスタンダードセルの場合、結線には使用されない配線が、ビア(VIA)とセル枠との間に存在する。ビアとは、異なる層の配線間をつなぐための接続領域(コンポーネント)である。
【0019】
以下の説明では、ビアとセル枠との間の配線を「枝配線」と表記する場合がある。ここで、
図2を用いて、セル枠上にカットメタルが配置されたスタンダードセルについて説明する。
【0020】
図2は、セル枠上にカットメタルが配置されたスタンダードセルの一例を示す説明図である。
図2において、セル200は、セル枠上にカットメタルが配置されたスタンダードセルの一例である。セル200は、配線(延在配線)201~204を含む。配線201,204は、ドレイン配線である。配線202,203は、ゲート配線である。
【0021】
各配線201~204上には、ビアが設けられている。例えば、配線201上には、ビア231,232が設けられている。また、セル200のセル枠211,212上には、例えば、カットメタル221,222が配置されている。
【0022】
この場合、セル200を配置した際に、カットメタル221,222により、隣り合う他のセルとの間で信号を分断することができる。また、各カットメタル221,222が他のセルのセル枠上のカットメタルと重なることで、スペースエラーの発生を防ぐことができる。
【0023】
しかしながら、セル200では、結線には使用されない枝配線が存在する。例えば、配線201上には枝配線201a,201bが存在する。また、配線202上には枝配線202a,202bが存在する。このため、セル200では、結線に使用されるメタル配線に枝配線が加わり、必要以上に長い配線となるため、配線間容量が増大する。
【0024】
特に、配線201,202間や配線203,204間のように、ゲート配線とドレイン配線との間には、ミラー効果の影響により大きな寄生容量が生じて、ディレイや電力の悪化を招くという問題がある。このため、ゲート配線とドレイン配線などの配線間の隣接長は短くすることが好ましい。
【0025】
なお、セル枠側にあるビアの根元にカットメタルを配置することで、枝配線をなくすことが考えられる。しかし、セルを配置した際に、同一配線上のカットメタル間でスペースエラーしない距離を確保できず、エラーが発生する場合がある。ここで、
図3を用いて、ビアの根元にカットメタルを配置した場合のエラー例について説明する。
【0026】
図3は、ビアの根元にカットメタルを配置した場合のエラー例を示す説明図である。
図3において、セル301,302は、隣り合う2つのセルの一例である。各セル301,302では、セル枠側にあるビアの根元にカットメタルが配置されている。
【0027】
セル301では、例えば、セル枠側にあるビア311の根元にカットメタル312が配置されている。また、セル枠側にあるビア313の根元にカットメタル314が配置され、セル枠側にあるビア315の根元にカットメタル316が配置されている。
【0028】
また、セル302では、例えば、セル枠側にあるビア321の根元にカットメタル322が配置されている。また、セル枠側にあるビア323の根元にカットメタル324が配置され、セル枠側にあるビア325の根元にカットメタル326が配置されている。
【0029】
ここで、カットメタル316とカットメタル326との間は、スペースエラーしない距離を確保することができている(OK)。一方、カットメタル312とカットメタル322との間では、スペースエラーしない距離を確保できていない(NG)。同様に、カットメタル314とカットメタル324との間は、スペースエラーしない距離を確保できていない(NG)。
【0030】
このように、カットメタルの配置位置によっては、セルを配置した際にスペースエラーしない距離を確保できずエラーが発生するため、むやみにカットメタルを配置することができない。
【0031】
そこで、実施の形態1では、カットメタル間のスペースエラーの発生を抑えつつ、結線に使用されない配線(枝配線)による配線間容量を抑えることができる設計支援方法について説明する。ここで、情報処理装置101の処理例(下記(1)および(2)の処理)について説明する。
【0032】
(1)情報処理装置101は、設計対象回路に関する回路情報110に基づいて、設計対象回路のレイアウト上にセルを配置する。回路情報110は、例えば、設計対象回路の回路図である。レイアウトは、設計対象回路を作り上げるために、セルを配置したり配線したりするための領域(設計図)である。
【0033】
設計対象回路に配置されるセルは、例えば、セル枠にカットメタルが設けられていないスタンダードセルである。ここで、
図4を用いて、セル枠上にカットメタルが配置されていないスタンダードセルについて説明する。
【0034】
以下の説明では、スタンダードセル内に含まれる配線(延在配線)の本数として、4本を例に挙げて説明する。ただし、スタンダードセル内に含まれる配線(延在配線)の本数は、4本以外であってもよい。
【0035】
図4は、セル枠上にカットメタルが配置されていないスタンダードセルの一例を示す説明図である。
図4において、セル400は、セル枠上にカットメタルが配置されていないスタンダードセルの一例である。セル400は、配線(延在配線)401~404を含む。セル400のセル枠411,412上には、カットメタルが配置されていない。
【0036】
情報処理装置101は、
図4に示すセル400のように、セル枠にカットメタルが設けられていないスタンダードセルを、設計対象回路のレイアウト上に配置する。
【0037】
図1に示すセル120,130は、設計対象回路のレイアウト上に配置されたセルのうち、隣り合う2つのセルの一例である。セル120,130では、セル枠にカットメタルが設けられていない。このため、各セル120,130は、隣接セルとの枝配線を1本の長い枝配線として共有している。例えば、セル120は、自セル内の枝配線121とセル130内の枝配線131とを1本の長い枝配線としてセル130と共有している。
【0038】
(2)情報処理装置101は、設計対象回路のレイアウト上に配置したセルのうち、隣り合う2つのセルについて、2つのセル間に配置するカットメタルの配置数および配置位置を決定する。具体的には、例えば、情報処理装置101は、2つのセルの各セル内の配線上のビアと各セルのセル枠との間の枝配線の長さ、および、枝配線を含む配線の種別に基づいて、カットメタルの配置数および配置位置を決定する。
【0039】
より詳細に説明すると、例えば、情報処理装置101は、2つのセルについて、各セルの枝配線の長さに基づいて、2つのセル間で共有する配線部分の長さを算出する。そして、情報処理装置101は、算出した長さが規定値未満の場合、共有する配線部分に配置されるカットメタルの配置数を1に決定する。
【0040】
一方、算出した長さが規定値以上の場合、情報処理装置101は、共有する配線部分に配置されるカットメタルの配置数を2に決定する。規定値は、任意に設定可能である。規定値としては、例えば、スペースエラーが発生しないカットメタル間の最小距離が設定される。
【0041】
ここで、カットメタルの配置数が「2」の場合、情報処理装置101は、カットメタルの配置位置を共有する配線部分の両端に決定する。共有する配線部分の両端とは、例えば、共有する配線部分の両端にあるビアの根元である。一方、カットメタルの配置数が「1」の場合、情報処理装置101は、例えば、各枝配線を含む配線の種別に応じた優先度に基づいて、カットメタルの配置位置を1箇所決定する。各枝配線は、共有する配線部分を形成する2つの枝配線である。
【0042】
ここで、配線の種別は、ゲート配線、ドレイン配線、内部配線およびフローティング配線のいずれかを示す。上述したように、ミラー効果の影響は、ゲート配線とドレイン配線の隣接長に比例し、配線間容量を増大させディレイや電力を悪化させる。一方、内部配線またはフローティング配線と隣接する箇所では、ミラー効果の影響はない。ただし、信号がある配線の場合、ミラー効果以外の配線間容量は生じる。
【0043】
このように、配線の種別によって、枝配線によるミラー効果への影響度合いが異なるといえる。このため、情報処理装置101は、カットメタルの配置数が「1」の場合、各枝配線を含む配線の種別に応じた優先度に基づいて、カットメタルの配置位置を1箇所決定してもよい。
【0044】
例えば、情報処理装置101は、各枝配線の優先度を比較する。ここで、各枝配線の優先度が異なる場合、情報処理装置101は、例えば、共有する配線部分のうちの優先度が高い枝配線側のビアの根元に、カットメタルの配置位置を決定する。一方、各枝配線の優先度が同じ場合、情報処理装置101は、例えば、共有する配線部分のセル枠上に、カットメタルの配置位置を決定する。
【0045】
図1の例では、例えば、セル120,130間で共有する配線部分140(枝配線121,131)の長さが規定値以上であるとする。この場合、情報処理装置101は、カットメタルの配置位置を、共有する配線部分140の両端に決定する。この結果、共有する配線部分140の両端(ビア161,162の根元)にカットメタル141,142が配置されると、共有する配線部分140(枝配線)がなくなり、セル120,130間の信号が分断される。また、カットメタル141,142間は、規定値以上の距離が確保されているため、スペースエラーは発生しない。
【0046】
また、セル120,130間で共有する配線部分150の長さが規定値未満であるとする。また、共有する配線部分150を形成する各枝配線(セル120内の枝配線とセル130内の枝配線)の優先度が同じであるとする。この場合、情報処理装置101は、カットメタルの配置位置を、共有する配線部分150のセル枠170上に決定する。セル枠170は、セル120のセル枠とセル130のセル枠とが重なる部分である。この結果、共有する配線部分150のセル枠170上にカットメタル151が配置されると、セル120,130間の信号が分断される。
【0047】
このように、実施の形態1にかかる情報処理装置101によれば、マルチパターニング技術を用いたレイアウト設計において、カットメタル間のスペースエラーの発生を抑えつつ、配線間容量(寄生容量)を削減可能なカットメタルの効率的な配置位置を決定することができる。
【0048】
図1の例では、隣り合う2つのセル120,130について、情報処理装置101によって決定された配置位置にカットメタルを配置することで、ゲート配線とドレイン配線との隣接長を最短化して、ミラー効果を抑えることができる。
図1中、両向き点線矢印は、ゲート配線とドレイン配線との隣接長を表している。
【0049】
なお、情報処理装置101が決定した配置位置にカットメタルを配置する処理は、例えば、情報処理装置101で実行されてもよく、また、情報処理装置101とは異なる他のコンピュータで実行されてもよい。
【0050】
(実施の形態2)
つぎに、実施の形態2にかかる情報処理装置101について説明する。以下の説明では、実施の形態2にかかる情報処理装置101を、情報処理システム500内の回路設計装置501に適用した場合について説明する。なお、実施の形態1で説明した箇所と同様の箇所については、図示および説明を省略する。
【0051】
まず、情報処理システム500のシステム構成例について説明する。
【0052】
図5は、情報処理システム500のシステム構成例を示す説明図である。
図5において、情報処理システム500は、回路設計装置501と、クライアント装置502と、を含む。情報処理システム500において、回路設計装置501およびクライアント装置502は、有線または無線のネットワーク510を介して接続される。ネットワーク510は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0053】
回路設計装置501は、例えば、サーバである。クライアント装置502は、情報処理システム500のユーザが使用するコンピュータである。ユーザは、例えば、半導体集積回路の設計者である。クライアント装置502は、例えば、PC(Personal Computer)、タブレットPCなどである。
【0054】
なお、ここでは、回路設計装置501とクライアント装置502とを別体に設けることにしたが、これに限らない。例えば回路設計装置501は、クライアント装置502により実現されることにしてもよい。また、情報処理システム500には、複数のクライアント装置502が含まれることにしてもよい。
【0055】
(回路設計装置501のハードウェア構成例)
つぎに、回路設計装置501のハードウェア構成例について説明する。
【0056】
図6は、回路設計装置501のハードウェア構成例を示すブロック図である。
図6において、回路設計装置501は、CPU601と、メモリ602と、ディスクドライブ603と、ディスク604と、通信I/F(Interface)605と、可搬型記録媒体I/F606と、可搬型記録媒体607と、を有する。また、各構成部は、バス600によってそれぞれ接続される。
【0057】
ここで、CPU601は、回路設計装置501の全体の制御を司る。CPU601は、複数のコアを有していてもよい。メモリ602は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU601のワークエリアとして使用される。メモリ602に記憶されるプログラムは、CPU601にロードされることで、コーディングされている処理をCPU601に実行させる。
【0058】
ディスクドライブ603は、CPU601の制御に従ってディスク604に対するデータのリード/ライトを制御する。ディスク604は、ディスクドライブ603の制御で書き込まれたデータを記憶する。ディスク604としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0059】
通信I/F605は、通信回線を通じてネットワーク510に接続され、ネットワーク510を介して外部のコンピュータ(例えば、
図5に示したクライアント装置502)に接続される。そして、通信I/F605は、ネットワーク510と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F605には、例えば、モデムやLANアダプタなどを採用することができる。
【0060】
可搬型記録媒体I/F606は、CPU601の制御に従って可搬型記録媒体607に対するデータのリード/ライトを制御する。可搬型記録媒体607は、可搬型記録媒体I/F606の制御で書き込まれたデータを記憶する。可搬型記録媒体607としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0061】
なお、回路設計装置501は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、
図5に示したクライアント装置502についても、回路設計装置501と同様のハードウェア構成により実現することができる。ただし、クライアント装置502は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0062】
(回路設計装置501の機能的構成例)
つぎに、回路設計装置501の機能的構成例について説明する。
【0063】
図7は、回路設計装置501の機能的構成例を示すブロック図である。
図7において、回路設計装置501は、作成部701と、設定部702と、取得部703と、配置部704と、決定部705と、修正部706と、出力部707と、セルライブラリLBと、を含む。作成部701~出力部707は制御部700となる機能であり、具体的には、例えば、
図6に示したメモリ602、ディスク604、可搬型記録媒体607などの記憶装置に記憶されたプログラムをCPU601に実行させることにより、または、通信I/F605により、その機能を実現する。各機能部の処理結果は、例えば、メモリ602、ディスク604などの記憶装置に記憶される。セルライブラリLBは、例えば、メモリ602、ディスク604などの記憶装置により実現される。また、セルライブラリLBは、回路設計装置501からアクセス可能な他のコンピュータが有することにしてもよい。
【0064】
作成部701は、スタンダードセルSCを作成する。ここで、スタンダードセルSCは、セル枠にカットメタルが設けられていないスタンダードセルである。スタンダードセルSCは、例えば、回路図やレイアウトデータによって表される。具体的には、例えば、作成部701は、不図示の入力装置を用いたユーザ(設計者)の操作入力により、スタンダードセルSCを作成する。
【0065】
作成されたスタンダードセルSCは、例えば、セルライブラリLBに記憶される。
【0066】
設定部702は、作成されたスタンダードセルSCの位置決め情報を設定する。ここで、位置決め情報は、カットメタルの配置数および配置位置を決定するために用いられる情報である。位置決め情報は、例えば、カットメタルの配置数を決定するための情報として、スタンダードセルSC内の枝配線の長さを含む。枝配線は、ビアとセル枠との間の配線である。
【0067】
また、位置決め情報は、例えば、カットメタルの配置位置を決定するための情報として、スタンダードセルSC内の枝配線の優先度を含む。枝配線の優先度は、例えば、ミラー効果への影響度合いを考慮して、スタンダードセルSC内の枝配線を含む配線の種別に応じて設定される。
【0068】
具体的には、例えば、設定部702は、スタンダードセルSCの回路図またはレイアウトデータを参照して、スタンダードセルSC内の各枝配線の長さを取得する。また、設定部702は、スタンダードセルSC内の枝配線ごとに、当該枝配線を含む配線の種別に応じた優先度を設定する。配線の種別は、ゲート配線、ドレイン配線、内部配線およびフローティング配線のいずれかを示す。配線の種別は、例えば、スタンダードセルSCの回路図またはレイアウトデータから特定される。
【0069】
以下の説明では、優先度の設定対象の枝配線を便宜上「対象枝配線」と表記する場合がある。また、スタンダードセルSC内の隣接する配線のペアを「ペア配線」と表記する場合がある。
【0070】
より詳細に説明すると、例えば、設定部702は、スタンダードセルSC内の対象枝配線を含む配線と当該配線に隣接する他の配線とのペア配線が、ゲート配線とドレイン配線とのペア配線であるか否かを判断する。ここで、ゲート配線とドレイン配線とのペア配線の場合、設定部702は、対象枝配線に他のペアの枝配線よりも高い優先度を設定する。
【0071】
さらに、設定部702は、ゲート配線とドレイン配線とのペア配線の場合に、対象枝配線の長さと、同じペア配線の他の配線に含まれる他の枝配線の長さとの比較結果に応じて、対象枝配線に優先度を設定してもよい。他の枝配線は、対象枝配線に隣接する枝配線である。
【0072】
例えば、設定部702は、対象枝配線の長さが他の枝配線の長さよりも長い場合、対象枝配線に他の枝配線よりも高い優先度を設定してもよい。一方、対象枝配線の長さが他の枝配線の長さよりも短い場合、設定部702は、対象枝配線に他の枝配線よりも低い優先度を設定してもよい。また、対象枝配線の長さが他の枝配線の長さと同じ場合、設定部702は、対象枝配線に他の枝配線と同じ優先度を設定してもよい。
【0073】
また、対象枝配線を含むペア配線が、フローティング配線とフローティング配線以外の配線とのペア配線であるとする。フローティング配線以外の配線は、ドレイン配線、ゲート配線および内部配線のいずれかの信号配線である。
【0074】
このとき、設定部702は、対象枝配線を含む配線がフローティング配線以外の配線の場合、対象枝配線に他の配線に含まれる他の枝配線よりも高い優先度を設定してもよい。そして、設定部702は、取得した枝配線の長さと、設定した枝配線の優先度とを含む位置決め情報をスタンダードセルSCに設定する。
【0075】
なお、対象枝配線を含む配線に隣接する他の配線が2本存在する場合がある。例えば、対象枝配線を含む配線に隣接する他の配線が上下2本存在する場合、対象枝配線を含むペア配線が2組形成される。2組のペア配線それぞれについて対象枝配線の優先度が設定されると、異なる優先度が設定される場合がある。この場合、設定部702は、例えば、異なる優先度のうちの高い方の優先度を対象枝配線に設定してもよい。
【0076】
設定された位置決め情報は、例えば、スタンダードセルSCと対応付けて、セルライブラリLBに記憶される。なお、枝配線の長さの取得例については、
図8を用いて後述する。また、枝配線の優先度の設定例については、
図9~
図14を用いて後述する。また、位置決め情報の設定例については、
図15および
図16を用いて後述する。
【0077】
以下の説明では、スタンダードセルSCを単に「セルSC」と表記する場合がある。
【0078】
取得部703は、設計対象回路に関する回路情報を取得する。回路情報は、例えば、設計対象回路に関する回路図である。回路図は、例えば、設計対象回路の各部品とそれらの接続を示すリンクの情報である。具体的には、例えば、取得部703は、
図5に示したクライアント装置502から受信することにより、回路情報を取得する。また、取得部703は、不図示の入力装置を用いたユーザの操作入力により、回路情報を取得してもよい。
【0079】
配置部704は、設計対象回路に関する回路情報に基づいて、設計対象回路のレイアウト上にセルSCを配置する。具体的には、例えば、配置部704は、設計対象回路に関する回路図に基づいて、セルライブラリLBを参照して、設計対象回路のレイアウト上に、作成されたセルSCを配置する。
【0080】
決定部705は、設計対象回路のレイアウト上に配置されたセルSCのうち、隣り合う2つのセルSCについて、枝配線の長さ、および、枝配線を含む配線の種別に基づいて、2つのセルSC間に配置するカットメタルの配置数および配置位置を決定する。ここで、枝配線は、2つのセルSCの各セルSC内の配線上のビアと、各セルSCのセル枠との間の配線である。
【0081】
例えば、決定部705は、2つのセルSCについて、枝配線の長さに基づいて、2つのセルSC間で共有する配線部分の長さを算出する。そして、決定部705は、算出した共有する配線部分の長さと配線の種別とに基づいて、共有する配線部分に配置されるカットメタルの配置数および配置位置を決定してもよい。
【0082】
具体的には、例えば、決定部705は、算出した共有する配線部分の長さと、当該共有する配線部分を形成する各枝配線に設定された優先度とに基づいて、共有する配線部分に配置されるカットメタルの配置数および配置位置を決定してもよい。
【0083】
各枝配線に設定された優先度は、例えば、各枝配線を含む配線の種別(ゲート配線、ドレイン配線、内部配線、フローティング配線)に応じて設定された優先度である。また、各枝配線に設定された優先度は、例えば、各枝配線の長さと、同じペア配線の他の配線に含まれる他の枝配線の長さとの比較結果に応じて設定された優先度であってもよい。
【0084】
より詳細に説明すると、例えば、決定部705は、セルライブラリLBから、隣り合う2つのセルSCそれぞれの位置決め情報を取得する。つぎに、決定部705は、2つのセルSCについて、取得した位置決め情報から特定される枝配線の長さに基づいて、2つのセルSC間で共有する配線部分の長さを算出する。
【0085】
そして、決定部705は、算出した共有する配線部分の長さが規定値以上であるか否かを判断する。規定値は、例えば、スペースエラーが発生しないカットメタル間の最小距離に設定される。ここで、算出した長さが規定値未満の場合、決定部705は、共有する配線部分に配置されるカットメタルの配置数を1に決定する。
【0086】
そして、決定部705は、カットメタルの配置位置を1箇所決定する。例えば、決定部705は、取得した位置決め情報を参照して、共有する配線部分を形成する各枝配線の優先度を比較する。ここで、各枝配線の優先度が異なる場合、決定部705は、例えば、共有する配線部分のうちの優先度が高い枝配線側のビアの根元に、カットメタルの配置位置を決定してもよい。一方、各枝配線の優先度が同じ場合、決定部705は、共有する配線部分のセル枠上に、カットメタルの配置位置を決定してもよい。
【0087】
また、算出した共有する配線部分の長さが規定値以上の場合、決定部705は、共有する配線部分に配置されるカットメタルの配置数を2に決定する。そして、決定部705は、カットメタルの配置位置を、共有する配線部分の両端に決定してもよい。
【0088】
また、決定部705は、決定した配置数のカットメタルを、決定した配置位置に配置する。なお、カットメタルの配置数および配置位置の決定例については、
図17および
図18を用いて後述する。
【0089】
修正部706は、配置されたカットメタルの配置位置を修正する。具体的には、例えば、修正部706は、決定された配置数のカットメタルが、決定された配置位置に配置された結果、スペースエラーが発生しているか否かを判断する。スペースエラーの有無は、例えば、デザインルールチェックを行うことにより判断される。
【0090】
デザインルールチェックとは、デザインルール(設計規則)に違反していないかを検証するための処理である。スペースエラーは、例えば、カットメタルの上下方向に配置されたカットメタルとの位置関係によって発生する。ここでは、隣り合う2つのセルSCの左右方向(配線方向)に対しては、カットメタル間のスペースは確保できている。
【0091】
しかし、隣り合う2つのセルSCの上下方向では、スペースエラーが発生する場合がある。このため、修正部706は、スペースエラーが発生した場合、当該スペースエラーが発生した箇所の少なくともいずれかのカットメタルの配置位置を、隣り合う2つのセルの境界部分のセル枠上に修正する。
【0092】
より詳細に説明すると、例えば、スペースエラーが発生している2つのカットメタルのいずれかがセル枠上にあるとする(ケース1)。この場合、修正部706は、2つのカットメタルのうちのセル枠上にないカットメタルをセル枠上に移動する。また、2つのカットメタルのいずれもセル枠上にないとする(ケース2)。この場合、修正部706は、2つのカットメタルのうちのセル枠に近い方のカットメタルをセル枠上に移動する。また、カットメタルの移動により新たなエラーが発生した場合、修正部706は、ケース1の修正を行うことにしてもよい。
【0093】
なお、カットメタル間のスペースエラーの発生例については、
図19を用いて後述する。カットメタルの配置位置の修正例については、
図20を用いて後述する。
【0094】
出力部707は、決定された配置数のカットメタルが、決定された配置位置に配置された設計対象回路に関するレイアウトデータを出力する。また、出力部707は、カットメタルの配置位置が修正された場合、修正後のレイアウトデータを出力する。レイアウトデータは、例えば、セルSCの配線処理が実施されたレイアウトである。また、レイアウトデータは、LVS(Layout vs Schematic)/DRC(Design Rule Check)を実施して、レイアウト修正が行われたレイアウトデータであってもよい。
【0095】
出力部707の出力形式としては、例えば、メモリ602、ディスク604などの記憶装置への記憶、通信I/F605による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。具体的には、例えば、出力部707は、設計対象回路に関するレイアウトデータをクライアント装置502に送信してもよい。
【0096】
また、出力部707は、レイアウト上にセルSCが配置された設計対象回路について、決定されたカットメタルの配置数および配置位置を特定可能な設計情報を出力してもよい。これにより、例えば、他のコンピュータにおいて、設計情報を参照して、決定された配置数のカットメタルを、決定された配置位置に配置したり配線したりすることができる。
【0097】
なお、回路設計装置501の機能部は、例えば、情報処理システム500内の複数のコンピュータ(例えば、回路設計装置501、クライアント装置502)により実現されることにしてもよい。例えば、作成部701および設定部702は、クライアント装置502により実現され、取得部703、配置部704、決定部705、修正部706および出力部707は、回路設計装置501により実現されてもよい。
【0098】
(枝配線の長さの取得例)
つぎに、
図8を用いて、枝配線の長さの取得例について説明する。
【0099】
図8は、枝配線の長さの取得例を示す説明図である。
図8において、セルSC1は、スタンダードセルSCの一例である。セルSC1は、枝配線801~808を含む。枝配線801は、ビア811とセル枠821との間の配線である。フローティング配線の場合、配線上にビアが配置されていない。この場合、セル枠821,822間を中点で区切ったものを枝配線とする。枝配線802は、セル枠821,822間を中点で区切った左側の配線である。
【0100】
枝配線803は、ビア813とセル枠821との間の配線である。枝配線804は、ビア815とセル枠821との間の配線である。枝配線805は、ビア812とセル枠822との間の配線である。枝配線806は、セル枠821,822間を中点で区切った右側の配線である。枝配線807は、ビア814とセル枠822との間の配線である。枝配線808は、ビア816とセル枠822との間の配線である。
【0101】
設定部702は、セルSC1内の各枝配線801~808の長さを取得する。
図8の例では、枝配線801の長さは、「4」である。枝配線802の長さは、「5」である。枝配線803の長さは、「1」である。枝配線804の長さは、「3」である。枝配線805の長さは、「1」である。枝配線806の長さは、「5」である。枝配線807の長さは、「2」である。枝配線808の長さは、「3」である。
【0102】
(枝配線の優先度の設定例)
つぎに、
図9~
図14を用いて、枝配線の優先度の設定例について説明する。
【0103】
図9~
図14は、枝配線の優先度の設定例を示す説明図である。
図9において、セルSC1は、配線901~904を含む。ここでは、配線901をドレイン配線とし、配線902を内部配線またはフローティング配線とする。また、配線903をゲート配線とし、配線904をドレイン配線とする。
【0104】
設定部702は、ペア配線901,902が、ゲート配線とドレイン配線とのペア配線であるか否かを判断する。ペア配線901,902は、ゲート配線とドレイン配線とのペア配線ではない。この場合、設定部702は、ペア配線901,902の各枝配線(
図8に示した枝配線801,802,805,806)に優先度「低」を設定する。詳細は後述するが、優先度「低」は、優先度「C」または優先度「D」に分けられる。
【0105】
また、設定部702は、ペア配線902,903が、ゲート配線とドレイン配線とのペア配線であるか否かを判断する。ペア配線902,903は、ゲート配線とドレイン配線とのペア配線ではない。この場合、設定部702は、ペア配線902,903の各枝配線(
図8に示した枝配線802,803,806,807)に優先度「低」を設定する。詳細は後述するが、優先度「低」は、優先度「C」または優先度「D」に分けられる。
【0106】
ここで、枝配線802,806は、ペア配線901,902およびペア配線902,903に含まれる。このため、枝配線802,806には、優先度が冗長して設定される。この場合、設定部702は、例えば、各枝配線802,806に設定される優先度のうちの高い方の優先度を各枝配線802,806に設定する。ここでは、ペア配線901,902およびペア配線902,903それぞれについて、各枝配線802,806に優先度「低」が設定される。この場合、設定部702は、各枝配線802,806に優先度「低」を設定する。
【0107】
また、設定部702は、ペア配線903,904が、ゲート配線とドレイン配線とのペア配線であるか否かを判断する。ペア配線903,904は、ゲート配線とドレイン配線とのペア配線である。この場合、設定部702は、ペア配線903,904の各枝配線(
図8に示した枝配線803,804,807,808)に優先度「高」を設定する。詳細は後述するが、優先度「高」は、優先度「A」または優先度「B」に分けられる。
【0108】
ここで、枝配線803,807は、ペア配線902,903およびペア配線903,904に含まれる。このため、枝配線803,807には、優先度が冗長して設定される。この場合、設定部702は、例えば、各枝配線803,807に設定される優先度のうちの高い方の優先度を各枝配線803,807に設定する。ここでは、ペア配線902,903について、各枝配線803,807に優先度「低」が設定される。一方、ペア配線903,904については、各枝配線803,807に優先度「高」が設定される。この場合、設定部702は、各枝配線803,807に優先度「高」を設定する。
【0109】
これにより、設定部702は、ミラー効果の影響が大きいペア配線の枝配線に対して高い優先度を設定できる。
【0110】
図10において、設定部702は、ゲート配線とドレイン配線とのペア配線903,904(
図9参照)について、隣接する枝配線の長さを比較する。
図10の例では、設定部702は、枝配線803の長さと枝配線804の長さとを比較する。ここでは、枝配線804の長さが、枝配線803の長さよりも長い。この場合、設定部702は、ペア配線903,904の隣接長を最短にするため、長い方の枝配線804に、枝配線803よりも高い優先度「A」を設定する。また、設定部702は、短い方の枝配線803に、枝配線804よりも低い優先度「B」を設定する。
【0111】
また、設定部702は、枝配線807の長さと枝配線808の長さとを比較する。ここでは、枝配線808の長さが、枝配線807の長さよりも長い。この場合、設定部702は、長い方の枝配線808に、枝配線807よりも高い優先度「A」を設定する。また、設定部702は、短い方の枝配線807に、枝配線808よりも低い優先度「B」を設定する。
【0112】
図11において、セルSC1内の配線902を内部配線とし、配線902上にビア1111が配置されているとする。枝配線1101は、ビア1111とセル枠821(
図8参照)との間の配線である。枝配線1102は、ビア1111とセル枠822(
図8参照)との間の配線である。この場合、配線901,902には、ミラー効果の影響はないものの、信号があるため、ミラー効果以外の配線間容量が生じる。
【0113】
このため、設定部702は、ドレイン配線と内部配線とのペア配線901,902について、枝配線801,805,1101,1102に優先度「C」を設定する。優先度「C」は、優先度「A,B」よりも低く、後述する優先度「D」よりも高い優先度である。
【0114】
図12の例では、セルSC1内の各枝配線801,803,804,805,807,808,1101,1102に設定された優先度がそれぞれ表示されている。
【0115】
図13において、セルSC1内の配線902をフローティング配線とする。この場合、配線901には、ミラー効果の影響はないものの、信号があるため、ミラー効果以外の配線間容量が生じる。配線902には、配線間容量がほとんど生じない。
【0116】
このため、設定部702は、ドレイン配線とフローティング配線とのペア配線901,902について、枝配線801,805に優先度「C」を設定する。また、設定部702は、枝配線802,806に優先度「D」を設定する。
【0117】
図14の例では、セルSC1内の各枝配線801~808に設定された優先度がそれぞれ表示されている。
【0118】
(位置決め情報の設定例)
つぎに、
図15および
図16を用いて、位置決め情報の設定例について説明する。
【0119】
図15は、位置決め情報の設定例を示す説明図である。
図15において、セルSC1内の各枝配線801~808に、(枝配線の長さ,優先度)が設定されている。例えば、枝配線801には(4,C)が設定されている。(4,C)は、枝配線801の長さが「4」で、優先度が「C」であることを示す。
【0120】
ここで、
図16を用いて、セルライブラリLBに記憶される位置決め情報のデータ構造例について説明する。
【0121】
図16は、位置決め情報のデータ構造例を示す説明図である。
図16において、位置決め情報1600は、セル名、位置、距離および優先度の項目を有し、各項目に情報を設定することで、枝配線ごとの情報をレコードとして記憶する。
【0122】
セル名は、セルSCを一意に識別する識別子である。位置は、セルSC内の枝配線の位置を示す。L/Rは、左側/右側の枝配線であるかを示す。1~4は、下から何番目の枝配線であるかを示す。例えば、L4は、セルSC1内の左側の下から4番目の枝配線804(
図15参照)の位置を示す。距離は、ビアからセル枠までの距離であり、枝配線の長さを示す。優先度は、枝配線の優先度を示す。
【0123】
(カットメタルの配置数および配置位置の決定例)
つぎに、
図17および
図18を用いて、カットメタルの配置数および配置位置の決定例について説明する。
【0124】
図17は、カットメタルの配置数の決定例を示す説明図である。
図17において、セルSC2,SC3は、隣り合う2つのセルの一例である。決定部705は、セルライブラリLBから、各セルSC2,SC3の位置決め情報を取得する。つぎに、決定部705は、セルSC2,SC3について、取得した位置決め情報から特定される枝配線の長さに基づいて、セルSC2,SC3間で共有する配線部分1701~1704の長さを算出する。以下、共有する配線部分1701~1704を、単に「配線部分1701~1704」と表記する場合がある。
【0125】
配線部分1701は、セルSC2の位置R1の枝配線と、セルSC3の位置L1の枝配線とからなる。この場合、決定部705は、セルSC2の位置R1の枝配線の長さ「1」と、セルSC3の位置L1の枝配線の長さ「1」とを合計することにより、配線部分1701の長さ「2」を算出する。
【0126】
そして、決定部705は、算出した配線部分1701の長さ「2」が規定値以上であるか否かを判断する。ここでは、規定値を「4」とする。この場合、配線部分1701の長さ「2」が規定値未満となるため、決定部705は、配線部分1701に配置されるカットメタルの配置数を1に決定する。
【0127】
配線部分1702は、セルSC2の位置R2の枝配線と、セルSC3の位置L2の枝配線とからなる。この場合、決定部705は、セルSC2の位置R2の枝配線の長さ「3」と、セルSC3の位置L2の枝配線の長さ「5」とを合計することにより、配線部分1702の長さ「8」を算出する。
【0128】
そして、決定部705は、算出した配線部分1702の長さ「8」が規定値以上であるか否かを判断する。ここでは、配線部分1702の長さ「8」が規定値以上となるため、決定部705は、配線部分1702に配置されるカットメタルの配置数を2に決定する。
【0129】
配線部分1703は、セルSC2の位置R3の枝配線と、セルSC3の位置L3の枝配線とからなる。この場合、決定部705は、セルSC2の位置R3の枝配線の長さ「1」と、セルSC3の位置L3の枝配線の長さ「2」とを合計することにより、配線部分1703の長さ「3」を算出する。
【0130】
そして、決定部705は、算出した配線部分1703の長さ「3」が規定値以上であるか否かを判断する。ここでは、配線部分1703の長さ「3」が規定値未満となるため、決定部705は、配線部分1703に配置されるカットメタルの配置数を1に決定する。
【0131】
配線部分1704は、セルSC2の位置R4の枝配線と、セルSC3の位置L4の枝配線とからなる。この場合、決定部705は、セルSC2の位置R4の枝配線の長さ「3」と、セルSC3の位置L4の枝配線の長さ「3」とを合計することにより、配線部分1704の長さ「6」を算出する。
【0132】
そして、決定部705は、算出した配線部分1704の長さ「6」が規定値以上であるか否かを判断する。ここでは、配線部分1704の長さ「6」が規定値以上となるため、決定部705は、配線部分1704に配置されるカットメタルの配置数を2に決定する。
【0133】
つぎに、
図18を用いて、カットメタルの配置位置の決定例について説明する。
【0134】
図18は、カットメタルの配置位置の決定例を示す説明図である。
図18において、決定部705は、セルSC2,SC3間で共有する配線部分1701~1704について、カットメタルの配置位置を決定する。
【0135】
ここで、配線部分1701に配置されるカットメタルの配置数は「1」である。この場合、決定部705は、取得した位置決め情報を参照して、配線部分1701を形成する、セルSC2の位置R1の枝配線の優先度「B」と、セルSC3の位置L1の枝配線の優先度「C」とを特定する。
【0136】
つぎに、決定部705は、セルSC2の位置R1の枝配線の優先度「B」と、セルSC3の位置L1の枝配線の優先度「C」とを比較する。ここでは、セルSC2の位置R1の枝配線のほうが、セルSC3の位置L1の枝配線よりも優先度が高い。この場合、決定部705は、セルSC2の位置R1の枝配線側のビア1801の根元(
図18中、位置p1に対応)に、カットメタルの配置位置を決定する。
【0137】
また、配線部分1702に配置されるカットメタルの配置数は「2」である。この場合、決定部705は、配線部分1702の両端(
図18中、位置p2,p3に対応)にカットメタルの配置位置を決定する。位置p2は、セルSC2の位置R2の枝配線側のビア1802の根元である。セルSC3の下から2番目の配線は、フローティング配線のためビアがない。このため、位置p3は、セルSC3の下から2番目の配線の中央部となる。ただし、位置p3は、位置p2から規定以上離れていれば、中央部よりも左側であってもよい。
【0138】
また、配線部分1703に配置されるカットメタルの配置数は「1」である。この場合、決定部705は、取得した位置決め情報を参照して、配線部分1703を形成する、セルSC2の位置R3の枝配線の優先度「B」と、セルSC3の位置L3の枝配線の優先度「B」とを特定する。
【0139】
つぎに、決定部705は、セルSC2の位置R3の枝配線の優先度「B」と、セルSC3の位置L3の枝配線の優先度「B」とを比較する。ここでは、優先度が同じである。この場合、決定部705は、配線部分1703のセル枠上p4に、カットメタルの配置位置を決定する。
【0140】
また、配線部分1704に配置されるカットメタルの配置数は「2」である。この場合、決定部705は、配線部分1704の両端(
図18中、位置p5,p6に対応)にカットメタルの配置位置を決定する。位置p5は、セルSC2の位置R4の枝配線側のビア1803の根元である。位置p6は、セルSC3の位置L4の枝配線側のビア1804の根元である。
【0141】
このように、回路設計装置501は、配置数が「1」の場合、優先度が高い方のビアの根元にカットメタルを配置することで、スペースエラーを防ぎつつ、配線間容量の削減効果を高めることができる。また、回路設計装置501は、配置数が「2」の場合には、両方のビアの根元にカットメタルを配置することで、スペースエラーを防ぎつつ、配線間容量の削減効果を高めることができる。
【0142】
(カットメタルの配置位置の修正例)
つぎに、カットメタルの配置位置の修正例について説明する。まず、
図19を用いて、カットメタル間のスペースエラーの発生例について説明する。
【0143】
図19は、カットメタル間のスペースエラーの発生例を示す説明図である。
図19において、隣り合うセルSC2,SC3について、
図18に示した配置位置p1~p6にカットメタルCM1~CM6が配置された結果、カットメタル間のスペースエラーが発生した場合の状態が示されている。
【0144】
隣り合うセルSC2,SC3の左右方向(配線方向)に対しては、カットメタル間のスペースは確保できているものの、上下方向ではスペースエラーが発生する場合がある。
図19中、符号1901,1902は、エラー箇所を示す。
【0145】
エラー箇所1901は、カットメタルCM1とカットメタルCM2との上下方向の距離が規定値未満のために発生したスペースエラーを示す。また、エラー箇所1902は、カットメタルCM4とカットメタルCM5との上下方向の距離が規定値未満のために発生したスペースエラーを示す。この場合、修正部706は、配置されたカットメタルの配置位置を修正する。
【0146】
図20は、カットメタルの配置位置の修正例を示す説明図である。
図20において、修正部706は、
図19に示したエラー箇所1901について、カットメタルCM1をセルSC2,SC3の境界部分のセル枠2000上に移動することにより、カットメタルCM1の配置位置を修正する。これにより、修正部706は、カットメタルCM1とカットメタルCM2との上下方向の距離を確保することができる。
【0147】
また、修正部706は、
図19に示したエラー箇所1902について、カットメタルCM5をセルSC2,SC3の境界部分のセル枠2000上に移動することにより、カットメタルCM5の配置位置を修正する。ここでは、カットメタルCM5の配置位置を修正した結果、カットメタルCM4とカットメタルCM5とがセル枠2000上で重なることで一つのカットメタルとなり、スペースエラーの発生を抑えることができる。
【0148】
なお、カットメタルCM5の配置位置を修正した結果、カットメタルCM5とカットメタルCM6との間でスペースエラーが発生する場合がある。この場合、修正部706は、例えば、カットメタルCM6をセルSC2,SC3の境界部分のセル枠2000上に移動することにより、カットメタルCM6の配置位置を修正してもよい。
【0149】
(回路設計装置501の前準備処理手順)
つぎに、
図21を用いて、回路設計装置501の前準備処理手順について説明する。
【0150】
図21は、回路設計装置501の前準備処理手順の一例を示すフローチャートである。
図21のフローチャートにおいて、まず、回路設計装置501は、スタンダードセルSCを作成する(ステップS2101)。スタンダードセルSCは、例えば、不図示の入力装置を用いたユーザ(設計者)の操作入力により作成される。
【0151】
そして、回路設計装置501は、作成された、スタンダードセルSCについて、位置決め情報設定処理を実行する(ステップS2102)。位置決め情報設定処理の具体的な処理手順については、
図22および
図23を用いて後述する。
【0152】
ここで、
図22および
図23を用いて、位置決め情報設定処理の具体的な処理手順について説明する。ここでは、回路設計装置501は、スタンダードセルSC内のそれぞれのペア配線の各枝配線に対して優先度を設定する。また、回路設計装置501は、優先度が冗長した枝配線については、高い方の優先度を設定する。
【0153】
図22および
図23は、位置決め情報設定処理の具体的処理手順の一例を示すフローチャートである。
図22のフローチャートにおいて、まず、回路設計装置501は、スタンダードセルSC内の選択されていない未選択のペア配線を選択する(ステップS2201)。ペア配線は、スタンダードセルSC内の隣接する配線のペアである。
【0154】
つぎに、回路設計装置501は、選択したペア配線に含まれる各枝配線の長さを取得する(ステップS2202)。そして、回路設計装置501は、選択したペア配線がゲート配線とドレイン配線とのペア配線であるか否かを判断する(ステップS2203)。
【0155】
ここで、ゲート配線とドレイン配線とのペア配線の場合(ステップS2203:Yes)、回路設計装置501は、選択したペア配線に含まれる枝配線のうち選択されていない未選択の枝配線を選択する(ステップS2204)。この際、回路設計装置501は、例えば、選択したペア配線(今回のペア配線)に含まれる枝配線が、別のペア配線を選択した際に選択されていても、今回のペア配線について選択されていなければ未選択の枝配線として扱う。そして、回路設計装置501は、選択した枝配線が、選択したペア配線の隣接する他の枝配線との間で長い方の枝配線であるか否かを判断する(ステップS2205)。
【0156】
ここで、長い方の枝配線の場合(ステップS2205:Yes)、回路設計装置501は、選択した枝配線に優先度「A」を設定して(ステップS2206)、ステップS2208に移行する。一方、短い方の枝配線の場合(ステップS2205:No)、回路設計装置501は、選択した枝配線に優先度「B」を設定する(ステップS2207)。
【0157】
なお、ステップS2205において、枝配線の長さが他の枝配線と同じ場合、回路設計装置501は、選択した枝配線に優先度「A」を設定してもよく、また、選択した枝配線に優先度「B」を設定してもよい。また、ステップS2206,S2207において、選択した枝配線に優先度が設定済みの場合、回路設計装置501は、設定した優先度のうちの高い方の優先度を、選択した枝配線の優先度とする。
【0158】
つぎに、回路設計装置501は、選択したペア配線に含まれる枝配線のうち選択されていない未選択の枝配線があるか否かを判断する(ステップS2208)。ここで、未選択の枝配線がある場合(ステップS2208:Yes)、回路設計装置501は、ステップS2204に戻る。
【0159】
一方、未選択の枝配線がない場合(ステップS2208:No)、回路設計装置501は、スタンダードセルSC内の選択されていない未選択のペア配線があるか否かを判断する(ステップS2209)。ここで、未選択のペア配線がある場合(ステップS2209:Yes)、回路設計装置501は、ステップS2201に戻る。
【0160】
一方、未選択のペア配線がない場合(ステップS2209:No)、回路設計装置501は、取得した枝配線の長さと、設定した枝配線の優先度とを含む位置決め情報をスタンダードセルSCに設定して(ステップS2210)、本フローチャートによる一連の処理を終了する。
【0161】
また、ステップS2203において、ゲート配線とドレイン配線とのペア配線ではない場合(ステップS2203:No)、回路設計装置501は、
図23に示すステップS2301に移行する。
【0162】
図23のフローチャートにおいて、まず、回路設計装置501は、選択したペア配線に含まれる枝配線のうち選択されていない未選択の枝配線を選択する(ステップS2301)。この際、回路設計装置501は、例えば、選択したペア配線(今回のペア配線)に含まれる枝配線が、別のペア配線を選択した際に選択されていても、今回のペア配線について選択されていなければ未選択の枝配線として扱う。そして、回路設計装置501は、選択した枝配線が、フローティング配線であるか否かを判断する(ステップS2302)。
【0163】
ここで、フローティング配線ではない場合(ステップS2302:No)、回路設計装置501は、選択した枝配線に優先度「C」を設定して(ステップS2303)、ステップS2305に移行する。一方、フローティング配線の場合(ステップS2302:Yes)、回路設計装置501は、選択した枝配線に優先度「D」を設定する(ステップS2304)。なお、ステップS2303,S2304において、選択した枝配線に優先度が設定済みの場合、回路設計装置501は、設定した優先度のうちの高い方の優先度を、選択した枝配線の優先度とする。
【0164】
つぎに、回路設計装置501は、選択したペア配線に含まれる枝配線のうち選択されていない未選択の枝配線があるか否かを判断する(ステップS2305)。ここで、未選択の枝配線がある場合(ステップS2305:Yes)、回路設計装置501は、ステップS2301に戻る。
【0165】
一方、未選択の枝配線がない場合(ステップS2305:No)、回路設計装置501は、
図22に示したステップS2209に移行する。
【0166】
これにより、回路設計装置501は、カットメタルの配置数および配置位置を決定するための位置決め情報をスタンダードセルSCに設定することができる。
【0167】
(回路設計装置501の回路設計処理手順)
つぎに、
図24を用いて、回路設計装置501の回路設計処理手順について説明する。
【0168】
図24は、回路設計装置501の回路設計処理手順の一例を示すフローチャートである。
図24のフローチャートにおいて、まず、回路設計装置501は、設計対象回路に関する回路情報に基づいて、設計対象回路のレイアウト上にスタンダードセルSCを配置する(ステップS2401)。
【0169】
つぎに、回路設計装置501は、カットメタル配置処理を実行する(ステップS2402)。カットメタル配置処理の具体的な処理手順については、
図25を用いて後述する。
【0170】
そして、回路設計装置501は、設計対象回路に関する回路情報に基づいて、配線処理を実行する(ステップS2403)。つぎに、回路設計装置501は、配線処理後の設計対象回路について、LVS/DRCを実施する(ステップS2404)。そして、回路設計装置501は、エラーがあるか否かを判断する(ステップS2405)。
【0171】
ここで、エラーがある場合(ステップS2405:Yes)、回路設計装置501は、レイアウト修正を行って(ステップS2406)、ステップS2404に戻る。一方、エラーがない場合(ステップS2405:No)、回路設計装置501は、設計対象回路に関するレイアウトデータを出力して(ステップS2407)、本フローチャートによる一連の処理を終了する。
【0172】
これにより、回路設計装置501は、設計対象回路について、カットメタル間のスペースエラーの発生を抑えつつ、ディレイや電力の増加の原因となる配線間容量を削減したレイアウトデータを出力することができる。
【0173】
つぎに、
図25を用いて、ステップS2402のカットメタル配置処理の具体的な処理手順について説明する。ここでは、スタンダードセルSCを「セルSC」と表記する。
【0174】
図25は、カットメタル配置処理の具体的処理手順の一例を示すフローチャートである。
図25のフローチャートにおいて、まず、回路設計装置501は、設計対象回路のレイアウト上に配置されたセルSCのうち、隣り合う2つのセルSCを選択する(ステップS2501)。
【0175】
そして、回路設計装置501は、セルライブラリLBから、選択した各セルSCの位置決め情報を取得する(ステップS2502)。つぎに、回路設計装置501は、2つのセルSC間で共有する配線部分のうち選択されていない未選択の配線部分を選択する(ステップS2503)。
【0176】
そして、回路設計装置501は、取得した各セルSCの位置決め情報に基づいて、選択した配線部分に配置されるカットメタルの配置数および配置位置を決定する決定処理を実行する(ステップS2504)。決定処理の具体的な処理手順については、
図26を用いて後述する。
【0177】
つぎに、回路設計装置501は、選択した配線部分について、決定した配置数のカットメタルを、決定した配置位置に配置する(ステップS2505)。そして、回路設計装置501は、2つのセルSC間で共有する配線部分のうち選択されていない未選択の配線部分があるか否かを判断する(ステップS2506)。
【0178】
ここで、未選択の配線部分がある場合(ステップS2506:Yes)、回路設計装置501は、ステップS2503に戻る。一方、未選択の配線部分がない場合(ステップS2506:No)、回路設計装置501は、設計対象回路のレイアウト上に配置されたセルSCのうち選択されていない未選択のセルSCがあるか否かを判断する(ステップS2507)。
【0179】
ここで、未選択のセルSCがある場合(ステップS2507:Yes)、回路設計装置501は、ステップS2501に戻る。一方、未選択のセルSCがない場合(ステップS2507:No)、回路設計装置501は、配置したカットメタルについて、DRCを実施する(ステップS2508)。
【0180】
そして、回路設計装置501は、エラーがあるか否かを判断する(ステップS2509)。ここで、エラーがある場合(ステップS2509:Yes)、回路設計装置501は、スペースエラー修正処理を実行して(ステップS2510)、ステップS2508に戻る。スペースエラー修正処理の具体的な処理手順については、
図27を用いて後述する。
【0181】
一方、エラーがない場合(ステップS2509:No)、回路設計装置501は、カットメタル配置処理を呼び出したステップに戻る。
【0182】
これにより、回路設計装置501は、隣り合う2つのセルSC間の信号を分断するためのカットメタルの配置位置を決定することができる。
【0183】
つぎに、
図26を用いて、ステップS2504の決定処理の具体的な処理手順について説明する。
【0184】
図26は、決定処理の具体的処理手順の一例を示すフローチャートである。
図26のフローチャートにおいて、まず、回路設計装置501は、選択した配線部分を形成する枝配線の長さを合計する(ステップS2601)。そして、回路設計装置501は、算出した枝配線の長さの合計が規定値以上であるか否かを判断する(ステップS2602)。
【0185】
ここで、規定値以上の場合(ステップS2602:Yes)、回路設計装置501は、選択した配線部分に配置されるカットメタルの配置数を「2」に決定する(ステップS2603)。そして、回路設計装置501は、カットメタルの配置位置を、選択した2つのセルSC間で共有する配線部分の両端に決定して(ステップS2604)、決定処理を呼び出したステップに戻る。
【0186】
また、ステップS2602において、規定値未満の場合(ステップS2602:No)、回路設計装置501は、選択した配線部分に配置されるカットメタルの配置数を「1」に決定する(ステップS2605)。つぎに、回路設計装置501は、選択した配線部分を形成する枝配線の優先度が同じであるか否かを判断する(ステップS2606)。
【0187】
ここで、優先度が同じ場合(ステップS2606:Yes)、回路設計装置501は、カットメタルの配置位置を、選択した配線部分のセル枠上に決定して(ステップS2607)、決定処理を呼び出したステップに戻る。
【0188】
一方、優先度が異なる場合(ステップS2606:No)、回路設計装置501は、カットメタルの配置位置を、選択した配線部分のうちの優先度が高い枝配線側のビアの根元に決定して(ステップS2608)、決定処理を呼び出したステップに戻る。
【0189】
これにより、回路設計装置501は、カットメタル間のスペースエラーの発生を抑えつつ、配線間容量を削減可能なカットメタルの効率的な配置位置を決定することができる。
【0190】
つぎに、
図27を用いて、ステップS2510のスペースエラー修正処理の具体的な処理手順について説明する。
【0191】
図27は、スペースエラー修正処理の具体的処理手順の一例を示すフローチャートである。
図27のフローチャートにおいて、まず、回路設計装置501は、エラー箇所のいずれかのカットメタルがセル枠上にあるか否かを判断する(ステップS2701)。
【0192】
ここで、セル枠上にある場合(ステップS2701:Yes)、回路設計装置501は、スペースエラーが発生している2つのカットメタルのうちのセル枠上にないカットメタルをセル枠上に移動して(ステップS2702)、スペースエラー修正処理を呼び出したステップに戻る。
【0193】
一方、セル枠上にない場合(ステップS2701:No)、回路設計装置501は、スペースエラーが発生している2つのカットメタルのうちのセル枠に近い方のカットメタルをセル枠上に移動して(ステップS2703)、スペースエラー修正処理を呼び出したステップに戻る。
【0194】
これにより、回路設計装置501は、スペースエラーが解消されるように、カットメタルの配置位置を修正することができる。
【0195】
以上説明したように、実施の形態2にかかる回路設計装置501によれば、設計対象回路に関する回路情報に基づいて、設計対象回路のレイアウト上にセルSCを配置することができる。そして、回路設計装置501によれば、レイアウト上に配置したセルSCのうち、隣り合う2つのセルSCについて、枝配線の長さ、および、枝配線を含む配線の種別に基づいて、2つのセルSC間に配置するカットメタルの配置数および配置位置を決定することができる。
【0196】
これにより、回路設計装置501は、マルチパターニング技術を用いたレイアウト設計において、カットメタル間のスペースエラーの発生を抑えつつ、配線間容量(寄生容量)を削減可能なカットメタルの効率的な配置位置を決定することができる。
【0197】
また、回路設計装置501によれば、2つのセルSCについて、枝配線の長さに基づいて、2つのセルSC間で共有する配線部分の長さを算出し、算出した共有する配線部分の長さと配線の種別とに基づいて、共有する配線部分に配置されるカットメタルの配置数および配置位置を決定することができる。セルSCは、セル枠にカットメタルが設けられていないスタンダードセルである。
【0198】
これにより、回路設計装置501は、隣り合う2つのセルSC間で共有する配線部分の長さや配線の種別を考慮して、共有する配線部分に配置されるカットメタルの配置数および配置位置を決定することができる。また、回路設計装置501は、セル配置後に、セルSC間で共有する配線部分から配置位置を決定することで、カットメタルの配置の自由度を高めることができる。
【0199】
また、回路設計装置501によれば、セルSCについて、セルSC内の配線上のビアとセル枠との間の枝配線ごとに、当該枝配線を含む配線の種別に応じた優先度を設定することができる。そして、回路設計装置501によれば、算出した共有する配線部分の長さと、当該共有する配線部分を形成する各枝配線に設定した優先度とに基づいて、共有する配線部分に配置されるカットメタルの配置数および配置位置を決定することができる。
【0200】
これにより、回路設計装置501は、ミラー効果への影響度合いを考慮して、セルSC内の各枝配線に優先度を設定することができる。優先度が高い枝配線ほど、隣接する配線長を短くすることによる配線間容量の削減効果が高い箇所であるといえる。
【0201】
また、回路設計装置501によれば、セルSC内の対象枝配線を含む配線と当該配線に隣接する他の配線とのペア配線が、ゲート配線とドレイン配線とのペア配線の場合、対象枝配線に他のペアの枝配線よりも高い優先度を設定することができる。なお、対象枝配線は、優先度の設定対象の枝配線である。
【0202】
これにより、回路設計装置501は、ゲート配線とドレイン配線とが隣接する箇所は、内部配線やフローティング配線に隣接する箇所よりもミラー効果の影響が大きいことを考慮して、セルSC内の各枝配線に優先度を設定することができる。
【0203】
また、回路設計装置501によれば、対象枝配線の長さが他の配線に含まれる他の枝配線の長さよりも長い場合、対象枝配線に他の枝配線よりも高い優先度を設定することができる。
【0204】
これにより、回路設計装置501は、ゲート配線とドレイン配線との隣接長に比例して、配線間容量が増大することを考慮して、セルSC内の各枝配線に優先度を設定することができる。
【0205】
また、回路設計装置501によれば、ペア配線がフローティング配線とフローティング配線以外とのペア配線であり、かつ、対象枝配線を含む配線がフローティング配線以外の場合、対象枝配線に他の配線に含まれる他の枝配線よりも高い優先度を設定することができる。
【0206】
これにより、回路設計装置501は、ゲート配線とドレイン配線とが隣接する箇所以外であっても、信号がある配線の場合、ミラー効果以外の配線間容量は生じることを考慮して、セルSC内の各枝配線に優先度を設定することができる。
【0207】
また、回路設計装置501によれば、共有する配線部分の長さが規定値未満の場合、共有する配線部分に配置されるカットメタルの配置数を1に決定し、各枝配線に設定した優先度に基づいて、カットメタルの配置位置を1箇所決定することができる。
【0208】
これにより、回路設計装置501は、カットメタル間のスペースエラーの発生を抑えることができる。また、回路設計装置501は、隣接する配線長を短くすることによる配線間容量の削減効果が高くなるように、カットメタルの配置位置を決定することができる。
【0209】
また、回路設計装置501によれば、共有する配線部分の長さが規定値以上の場合、共有する配線部分に配置されるカットメタルの配置数を2に決定し、カットメタルの配置位置を共有する配線部分の両端に決定することができる。
【0210】
これにより、回路設計装置501は、スペースエラーの発生を防ぐ距離を確保できるときには、両方のビアの根元をカットメタルの配置位置とすることで、隣接する配線長を最短にして配線間容量の削減効果を高めることができる。
【0211】
また、回路設計装置501によれば、決定した配置数のカットメタルを、決定した配置位置に配置することができる。
【0212】
これにより、回路設計装置501は、カットメタル間のスペースエラーの発生を抑えつつ、配線間容量を削減可能な位置にカットメタルを配置することができる。
【0213】
また、回路設計装置501によれば、決定した配置数のカットメタルが、決定した配置位置に配置された設計対象回路に関するレイアウトデータを出力することができる。
【0214】
これにより、回路設計装置501は、設計対象回路について、カットメタル間のスペースエラーの発生を抑えつつ、ディレイや電力の増加の原因となる配線間容量を削減したレイアウトデータを出力することができる。
【0215】
また、回路設計装置501によれば、決定した配置数のカットメタルを配置位置に配置した結果、スペースエラーが発生した場合、当該スペースエラーが発生した箇所の少なくともいずれかのカットメタルの配置位置を、2つのセルSCの境界部分のセル枠上に移動することができる。
【0216】
これにより、回路設計装置501は、上下方向でエラーが発生した場合に、カットメタルを移動させて、カットメタル間の距離を確保する、あるいは、セル枠上で一つのカットメタルとすることで、スペースエラーの発生を抑えることができる。
【0217】
これらのことから、回路設計装置501によれば、マルチパターニング技術による配線を用いる半導体集積回路において、結線に使用されない配線(枝配線)に生じる配線間容量の削減効果が高い位置にカットメタルを置くことで、配線間容量を削減してミラー効果を抑えることができ、ディレイや電力を低減することができる。
【0218】
例えば、回路設計装置501は、信号配線として使用される配線のうち、ミラー効果により容量が大きく見えるゲート配線とドレイン配線との配線間の隣接長を最短化するために、ビアとセル枠との間に存在する枝配線を、カットメタル間でスペースエラーを発生させずに切断することができる。これにより、回路設計装置501は、ミラー効果の要因となるゲート配線とドレイン配線との間の配線間容量を優先的に削減して、ディレイや電力を低減することができる。
【0219】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【0220】
また、本実施の形態で説明した情報処理装置101(回路設計装置501)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0221】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0222】
(付記1)設計対象回路のレイアウト設計を支援する設計支援プログラムであって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【0223】
(付記2)前記セルは、セル枠にカットメタルが設けられていないスタンダードセルであり、
前記2つのセルについて、前記枝配線の長さに基づいて、前記2つのセル間で共有する配線部分の長さを算出する、処理を前記コンピュータに実行させ、
前記決定する処理は、
算出した前記共有する配線部分の長さと前記配線の種別とに基づいて、前記共有する配線部分に配置されるカットメタルの配置数および配置位置を決定する、
ことを特徴とする付記1に記載の設計支援プログラム。
【0224】
(付記3)前記セルについて、前記セル内の配線上のビアと前記セルのセル枠との間の枝配線ごとに、当該枝配線を含む配線の種別に応じた優先度を設定する、処理を前記コンピュータに実行させ、
前記決定する処理は、
前記共有する配線部分の長さと、当該共有する配線部分を形成する各枝配線に設定した優先度とに基づいて、前記共有する配線部分に配置されるカットメタルの配置数および配置位置を決定する、
ことを特徴とする付記2に記載の設計支援プログラム。
【0225】
(付記4)前記配線の種別は、ゲート配線、ドレイン配線、内部配線およびフローティング配線のいずれかを示し、
前記設定する処理は、
前記セル内の前記枝配線を含む配線と当該配線に隣接する他の配線とのペアが、ゲート配線とドレイン配線とのペアの場合、前記枝配線に他のペアの枝配線よりも高い優先度を設定する、ことを特徴とする付記3に記載の設計支援プログラム。
【0226】
(付記5)前記設定する処理は、
前記枝配線の長さが前記他の配線に含まれる他の枝配線の長さよりも長い場合、前記枝配線に前記他の枝配線よりも高い優先度を設定する、ことを特徴とする付記4に記載の設計支援プログラム。
【0227】
(付記6)前記設定する処理は、
前記ペアがフローティング配線とフローティング配線以外とのペアであり、かつ、前記枝配線を含む配線がフローティング配線以外の場合、前記枝配線に前記他の配線に含まれる他の枝配線よりも高い優先度を設定する、ことを特徴とする付記4または5に記載の設計支援プログラム。
【0228】
(付記7)前記決定する処理は、
前記共有する配線部分の長さが規定値未満の場合、前記共有する配線部分に配置されるカットメタルの配置数を1に決定し、
前記各枝配線に設定した優先度に基づいて、前記カットメタルの配置位置を1箇所決定する、
ことを特徴とする付記3~6のいずれか一つに記載の設計支援プログラム。
【0229】
(付記8)前記決定する処理は、
前記共有する配線部分の長さが前記規定値以上の場合、前記共有する配線部分に配置されるカットメタルの配置数を2に決定し、
前記カットメタルの配置位置を前記共有する配線部分の両端に決定する、
ことを特徴とする付記7に記載の設計支援プログラム。
【0230】
(付記9)決定した前記配置数のカットメタルを、決定した前記配置位置に配置する、
処理を前記コンピュータに実行させることを特徴とする付記3~8のいずれか一つに記載の設計支援プログラム。
【0231】
(付記10)決定した前記配置数のカットメタルが、決定した前記配置位置に配置された前記設計対象回路に関するレイアウトデータを出力する、
処理を前記コンピュータに実行させることを特徴とする付記9に記載の設計支援プログラム。
【0232】
(付記11)前記配置数のカットメタルを前記配置位置に配置した結果、スペースエラーが発生した場合、当該スペースエラーが発生した箇所の少なくともいずれかのカットメタルの配置位置を、前記2つのセルの境界部分のセル枠上に移動する、ことを特徴とする付記9または10に記載の設計支援プログラム。
【0233】
(付記12)設計対象回路のレイアウト設計を支援する設計支援方法であって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
処理をコンピュータが実行することを特徴とする設計支援方法。
【0234】
(付記13)設計対象回路のレイアウト設計を支援する情報処理装置であって、
前記設計対象回路に関する回路情報に基づいて、前記設計対象回路のレイアウト上にセルを配置し、
前記レイアウト上に配置したセルのうち、隣り合う2つのセルについて、前記2つのセルの各セル内の配線上のビアと前記各セルのセル枠との間の枝配線の長さ、および、前記枝配線を含む配線の種別に基づいて、前記2つのセル間に配置するカットメタルの配置数および配置位置を決定する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0235】
101 情報処理装置
110 回路情報
120,130,200,301,302,400 セル
121,131,201a,201b,202a,202b,801,802,803,804,805,806,807,808,1101,1102 枝配線
140,150,1701,1702,1703,1704 共有する配線部分
141,142,151,221,222,312,314,316,322,324,326,CM1,CM2,CM3,CM4,CM5,CM6 カットメタル
170,211,212,411,412,821,822,2000 セル枠
201,202,203,204,401,402,403,404,901,902,903,904 配線
500 情報処理システム
501 回路設計装置
502 クライアント装置
510 ネットワーク
600 バス
601 CPU
602 メモリ
603 ディスクドライブ
604 ディスク
605 通信I/F
606 可搬型記録媒体I/F
607 可搬型記録媒体
700 制御部
701 作成部
702 設定部
703 取得部
704 配置部
705 決定部
706 修正部
707 出力部
901,902,903,904 ペア配線
1600 位置決め情報
1901,1902 エラー箇所
SC,SC1,SC2,SC3 スタンダードセル