基板の配線設計方法及びプログラム
【課題】配線設計において、簡易的に配線混雑を回避することが可能な配線設計方法を提供することを目的とする。
【解決手段】複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、基板を複数のタイルに分割し、複数のタイルに対応するように、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する。
【解決手段】複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、基板を複数のタイルに分割し、複数のタイルに対応するように、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、基板の配線設計方法及びプログラムに関する。
【背景技術】
【0002】
半導体集積回路を備える半導体チップや、半導体パッケージの配線基板や、様々な電気機器のプリント回路基板(PCB)等の様々な配線基板は、通常、配線が引き回される複数の配線層を備える。
【0003】
配線の設計時間の短縮のために、自動配線設計ツールにより、自動的に配線を設計する手法が用いられている。これにより、配線の設計にかかる時間を短縮することが可能となる(例えば、特許文献1〜3参照)。
【0004】
しかしながら、このような自動配線設計ツールにおいては、各配線層における配線方向は、配線層全体に亘り固定されている。すなわち、例えば、第1方向の配線層では、配線層全体(全面)に亘り、配線が延びる方向は第1方向である。
【0005】
そこで、このような自動配線設計ツールを用いて配線を設計した際に、配線が混雑しているような領域が、配線層上に生じてしまう場合、設計者は、配線設計を行う前の状態に戻って、フロアプランを再検討したり、配線層自体を新たに追加したりすることによって、自動配線設計ツールを用いた配線設計を進めていた。従って、自動配線設計ツールを用いても、設計時間が長期化する傾向を避けることは難しいものであった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平2−222072号公報
【特許文献2】特開2007−214329号公報
【特許文献3】特開2000−311944号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、配線設計において、簡易的に配線混雑を回避することが可能な配線設計方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様にかかる配線設計方法は、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、前記基板を複数のタイルに分割し、前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する、ことを備える。
【0009】
本発明の一態様にかかるプログラムは、コンピュータを、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行う手段と、前記基板を複数のタイルに分割する手段と、前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成する手段と、前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する手段と、として機能させる。
【発明の効果】
【0010】
本発明によれば、配線設計において、簡易的に配線混雑を回避することが可能な配線設計方法を提供することが可能となる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態を説明するための図(その1)である。
【図2】第1の実施形態を説明するための図(その2)である。
【図3】第1の実施形態を説明するための図(その3)である。
【図4】第1の実施形態にかかる配線の設計方法を示すフローチャート(その1)である。
【図5】第1の実施形態にかかる配線の設計方法を示すフローチャート(その2)である。
【図6】第1の実施形態にかかる配線の設計方法を示すフローチャート(その3)である。
【図7】第1及び第2の実施形態を説明するための図(その4)である。
【図8】第1の実施形態にかかる配線の設計方法を示すフローチャート(その4)である。
【図9】第2の実施形態にかかる配線の設計方法を示すフローチャートである。
【図10】第2の実施形態を説明するための図である。
【図11】第3の実施形態を説明するための図である。
【図12】第3の実施形態にかかる配線の設計方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図を参照して、本発明の実施形態を説明する。この説明に際して、全図面にわたり共通する部分には、共通する符号を付す。ただし、本発明は、この実施形態に限定されるものではない。
【0013】
また、ここでは、LPDDR2(Low Power Double Data Rate 2)といった半導体集積回路における、回路ブロック(機能ブロック、論理ブロック等)間を接続する配線の配線設計を例に説明するが、本発明は、このような半導体集積回路に限定されるものではない。
【0014】
本発明の実施形態について説明する前に、本発明者が本発明をなすに至った経緯について、図1から図3を用いて、以下に説明する。
【0015】
本発明者は、LPDDR2等の半導体集積回路を設計していた。LPDDR2においては、回路ブロックは、細長い長方形、もしくは、細長い長方形を有するL字型をしているものが多く、このような回路ブロックの間を接続する配線の設計を行っていたのである。
【0016】
詳細には、本発明者は、以下のように、配線設計を行っていた。すなわち、図1(a)に示されるように、複数の配線層2は互いに重ねられており、複数の回路ブロック4は、配線層2上に配置されており、回路ブロック4の間を接続する配線3は、複数の配線層2に亘って引き回されるものとして設計される。さらに、各配線層2上に配線3が延びることができる方向(配線方向)は、X方向(横方向)と、Y方向(縦方向)と、定められている。さらに、配線層毎に、配線層全面に亘って、同一の配線方向を有するものとして、定められていた。そして、本発明者は、このような配線層上の配線の設計を、自動配線設計ツールを用いて、行っていたのである。
【0017】
ところで、このようにして得られた概略配線の設計結果においては、配線層上の特定の領域に、配線が混雑してしまうような状況が生じてしまうことがあった。このような場合、先に説明したように、設計者は、フロアプラン(回路ブロックの配置位置)から再検討したり、配線層を新たに追加したりすることで、配線が混雑する状況を避けていた。
【0018】
しかしながら、本発明者は、配線設計の結果を分析して、配線層上の特定の領域において、複数の配線が特定の配線方向に偏ることに起因して、配線が混雑する領域が生じると考えていた。すなわち、本発明者は、このような細長い長方形の形状を持つ、回路ブロックどうしを接続する配線について設計を行うと、配線層上の特定の領域に、X方向、Y方向、いずれかの方向に延びる配線が集中して存在することが多くなり、配線層上の特定の領域に配線が混雑してしまう状況が生じてしまうと、考えていたのである。
【0019】
さらに、本発明者は、このような状況において、配線層上の配線方向を局所的に変更することにより、言い換えると、配線層の一部領域の配線方向を変更することにより、配線層上の特定の領域に配線が混雑してしまう状況を避けることができるのではないかと考えていた。
【0020】
また、本発明者は、細長い長方形、もしくは、細長い長方形を有するL字型の回路ブロック間を接続する配線の設計においては、配線層上の配線方向を局所的に変更することは、効果的であると、考えていた。
【0021】
そこで、本発明者は、所定の規則に従って、配線が混雑している配線層上の領域を検出して、その領域の配線方向を変更する、ことを考えたのである。
【0022】
詳細には、本発明者は、以下のように、配線設計を行うことを考えたのである。まず、基板は、複数の互いに重なった配線層を備え、配線層毎に、配線は、配線層全面に亘って、同一の配線方向に延びるものとして仮決めして、概略配線設計を行う。
【0023】
なお、概略配線とは、トポロジーと呼ばれるものであり、配線層上の詳細な座標を持つ配線ではなく、図1(b)に示されるような、基板1上に仮想的に形成されたセル5(Gセルと呼ばれる)の有する各辺のうち、どの辺を横切るかという事項が定められた配線のことを言う。
【0024】
次に、図2(a)に示されるように、基板1を所定の大きさに仮想的に分割して、複数のタイルTを仮想的に形成する。これによって、各タイルTは、図2(b)に示されるように、各タイルTに対応する座標を有するものであって、各配線層2の一部である部分配線領域2aを、複数備えるものとなる。
【0025】
そして、概略配線より算出されたタイルTの有する配線方向毎の配線3の本数が、所定の数を超えているタイルTがある場合(オーバーフローしている場合)には、図3に示すように、そのタイルTの備える複数の部分配線領域2aの配線方向を、必要に応じて変更する。タイルTの有する配線方向毎の配線の本数の算出方法については、後述する。
【0026】
このようにすることで、フロアプランの変更を伴わず、簡易的に、配線設計を行うことができる。従って、配線設計にかかる時間を短縮することができる。
【0027】
(第1の実施形態)
次に、本発明にかかる第1の実施形態を、図1から図8を用いて、説明する。
【0028】
ここでは、半導体集積回路の配線設計、詳細には、回路ブロック間の配線の配線設計を例として、説明する。ただし、本発明は、半導体集積回路に限定されるものではなく、半導体パッケージの配線基板や、PCBボード等にも用いることができる。また、本発明は、回路ブロック間を接続する配線の配線設計に限られるものではなく、その他の配線の配線設計にも用いることができる。
【0029】
まず、基板及び配線について説明する。基板は、複数の配線層を備える。配線層には、複数の回路ブロックが搭載され、さらに、回路ブロック間を電気的に接続するための複数の配線が、引き回されることとなる。また、これらの配線は、配線層上に延びることができる方向(配線方向)が、限定されている。ここでは、配線方向は、配線層の平面の有する辺とそれぞれ平行である、X方向(横方向)と、それと直角に交わるY方向(縦方向)と、に限定されているものとして、説明する。しかしながら、本発明においては、配線方向は、X方向とY方向とに限定されるものではなく、配線層の平面の有する辺に対して、45°に傾いた斜め方向を含むものでも良く、すなわち、配線方向が、複数の所定の方向に限定されていれば良い。
【0030】
次に、本実施形態の配線設計方法を行うための準備について説明する。設計者は、設計の準備として、各回路ブロックの形状及び大きさ、各回路ブロックの接続関係、配線基板上に各回路ブロックをどのように配置するのか(フロアプラン)、を決定する。さらに、これらの情報に基づいて、設計者は、配線層の数と、各配線層における配線方向を、配線層全面に亘って同一の配線方向であると仮定して、決定する。
【0031】
次に、本実施形態の配線設計方法を説明する。本実施形態の配線設計方法は、概略的には、以下の5つのステップで構成されている。この5つのステップの流れを図4のフローチャートに示す。各ステップは、以下の通りである。
【0032】
(ステップ1)概略配線設計
(ステップ2)タイル分割
(ステップ3)タイルの選択
(ステップ4)X方向の配線について判定/処理(配線層の配線方向を局所的に変更する)
(ステップ5)Y方向の配線について判定/処理
なお、ここでは、ステップ4及びステップ5において、先に、X方向の配線に対して、処理(ステップ4)を進め、次に、Y方向の配線に対して処理(ステップ5)を行う場合について説明するが、順番を入れ替えて、先に、Y方向の配線に対して処理を行い、次に、X方向の配線に対して処理を行っても良い。
【0033】
さらに、本実施形態の配線設計方法は、この一連のステップを実施した後に、すべてのタイルに対して処理が施されるまで、ステップ3からステップ5を繰り返す。
【0034】
また、これらのステップは、詳細には、以下のステップで構成されている。
【0035】
(ステップ1)
ステップ1の「概略配線設計」を構成するステップを、図5のフローチャートを用いて説明する。以下に説明する、ステップ1にかかる概略配線設計の方法は、一例であり、他の概略配線方法を用いても良い。
【0036】
(ステップ1−1)配線自動設計ツールに、各回路ブロックの形状及び大きさ、各回路ブロックの接続関係、フロアプラン、配線層の数、各配線層の配線方向等を入力する。次に、ステップ1−2に進む。
【0037】
(ステップ1−2)次に、配線自動設計ツールを用いて、入力された情報をもとに、概略配線設計を行う。このステップにおいては、概略配線設計を行うために、基板上に仮想的なセル(Gセル)を設ける。
【0038】
詳細には、図1(b)に示されるように、基板1上に、Gセル5と呼ばれる仮想的なマス目状のセルを設ける。このGセル5上のマス目(セル)の大きさは、任意に選択することができ、例えば、基板の面積、配線本数、設計時間等を考慮して、選択することができる。このGセル5は、概略配線時に、配線混雑度を見積もるために用いられる。
【0039】
次に、ステップ1−3に進む。
【0040】
(ステップ1−3)自動配線設計ツールは、これらの入力データに基づいて、図1(b)に示されるように、回路ブロックを接続する配線3が、Gセル5の有する辺のうち、どの辺を横切るかを、決定する。つまり、概略配線設計を行う。ここで得られた概略配線の結果は、後で使用するため、データとして格納しておく。次に、ステップ1−4に進む。
【0041】
(ステップ1−4)Gセルの有する各辺を横切る配線の本数(セル配線数N(i)と呼ぶ)が、適切なものであるかを判定する。
【0042】
詳細には、Gセルの有する各辺に対して、横切ることができる配線の本数(セル配線可能本数M(i)と呼ぶ)が、デザインルールや配線層の数等に従って、定められている。この値は、あらかじめ、配線自動設計ツールに入力されている。なお、このデザインルールとは、配線層上の配線が守らなくてはならない規則のことであり、例としては、配線同士の間隔が、定められた値以上にしなくてはならないといった規則のことである。
【0043】
そして、セル配線数N(i)がセル配線可能本数M(i)を超えているような辺が、検出されない場合には、ステップ1−5に進む。
【0044】
一方、セル配線数N(i)がセル配線可能本数M(i)を超えているような辺が、検出された場合には、ステップ2−1に進む。
【0045】
(ステップ1−5)ステップ1−3で得られた概略配線の結果に基づき、詳細配線の設計を行う。詳細配線とは、概略配線の結果に基づき、基板上における詳細な座標が定められた配線のことを言う。詳細配線の設計が完了した後は、配線設計が完了したものとして、一連の処理を終了することとなる。
【0046】
(ステップ2)
ステップ2の「タイル分割」を構成するステップを、図6のフローチャートを用いて説明する。なお、以下に説明する、ステップ2にかかる複数のタイルの形成方法は、一例であり、他のタイルの形成方法を用いて行っても良い。
【0047】
(ステップ2−1)基板1に、ステップ1−2で仮想的に形成したGセルを利用して、次の処理を行うための仮想的なマス目状のタイルを形成する。なお、ここでは、Gセルをずらして、仮想的なマス目状のタイルを形成する方法について説明するが、Gセルをそのまま用いて仮想的なマス目状のタイルを形成しても良く、Gセルを利用することなくタイルを形成しても良い。Gセルをそのまま用いてタイルを形成する場合には、例えば、後述するタイル配線本数はセル配線数N(i)となり、タイル配線可能本数は、セル配線可能本数M(i)となる。
【0048】
詳細には、図7(a)のように、Gセル5のマス目を、X方向(図7(a)中の横方向)、Y方向(図7(a)中の縦方向)、ともに、Gセル5を、半マス分位相をずらして、タイルTを形成することとなる新たなマス目を仮想的に形成する。言い換えると、Gセル5上の各辺が交わる各点が、各タイルTの中央に位置するように、タイルTの輪郭となる新たなマス目を形成する。
【0049】
詳細には、タイルTは、X方向について着目すると、図7(a)に示されるように、X方向に延びるGセル5上の2つの辺の一部、すなわち、辺Aの半分と辺Bの半分とを含むこととなる。また、Y方向についても、X方向と同様に、タイルTは、Y方向に延びるGセル5上の2つの辺のそれぞれ半分を含むこととなる。
【0050】
ここでは、この1つのマス目をタイルTと呼ぶ。この各タイルTは、図2(b)に示されるように、各タイルTに対応するものであって各配線層2の一部である部分配線領域2aを、複数備えるものとなる。
【0051】
Gセルのマス目をずらして、タイルTを形成することにより、Gセルを用いて行われる概略配線の結果を利用して、各タイルTに含まれる配線の本数を算出することが容易となる。詳細は、後述する。
【0052】
次に、ステップ2−2へ進む。
【0053】
(ステップ2−2)このステップにおいて、各タイルTに含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、算出する。
【0054】
算出方法をわかりやすく説明するため、例として、図7(a)に示されるタイルTが含む配線の本数(タイル配線本数)の算出と、このタイルTが含むことができる配線の最大本数(タイル配線可能本数)の算出と、について、説明する。
【0055】
図7(a)に示されるように、タイルTは、その内部に、X方向に延びる2つのGセル5上の辺の一部、すなわち、辺Aの一部と辺Bの一部とを含んでいる。ここでは、例として、ステップ1−3で得られた概略配線の設計結果において、辺Aを横切るY方向の配線の本数(Y方向セル配線数)は、3本とし(N(A)=3)、同様に、辺Bを通過するY方向の配線の本数(Y方向セル配線数)は、4本とする(N(B)=4)。
【0056】
そして、タイルTに含まれるY方向の配線の本数(Y方向タイル配線本数)は、タイルTにその一部が含まれるような辺を通過するY方向配線の本数(Y方向セル配線数)の総和を、算出し、その値の1/2と仮定する。すなわち、上記の例の場合には、タイルTに含まれるY方向の配線の本数は、{N(A)+N(B)}×1/2となり、図7(a)に示されるタイルTの場合には、(3+4)×1/2=3.5本となる。
【0057】
次に、同様にして、図7(a)に示されるタイルTについて、Y方向の配線の最大配線本数(Y方向タイル配線可能本数)を算出する。タイルTに含まれている辺A及び辺Bには、先に説明したように、それぞれ、各辺に対して通過することができる配線の本数(セル配線可能本数)が、配線層の数、及び、配線層の配線方向に応じて、あらかじめ定められている。ここでは、辺Aのセル配線可能本数をM(A)と、辺Bのセル配線可能本数をM(B)とする。そして、このような場合、図7(a)に示されるタイルTのY方向の配線の最大配線本数(Y方向タイル配線可能本数)は、配線本数(Y方向タイル配線本数)の算出と同様に、{M(A)+M(B)}×1/2となる。
【0058】
また、タイルTにおける、X方向の配線の本数(X方向タイル配線本数)と、X方向の配線の最大配線本数(X方向タイル配線可能本数)とについては、これまで説明した方法と同様に算出する。
【0059】
ここで算出された配線本数(タイル配線本数)、最大配線本数(タイル配線可能本数)は、データとして格納しておく。次に、ステップ3へ進む。
【0060】
(ステップ3)
ステップ3の「タイルの選択」を構成するステップを、図8のフローチャートを用いて説明する。
【0061】
(ステップ3−1)これから述べるような処理が行われていないタイルTが存在するか否かを判定する。この際、未処理のタイルTが存在していなければ、詳細配線設計を行うステップ1−5へ戻る。一方、未処理のタイルTが存在していれば、ステップ3−2に進む。
【0062】
(ステップ3−2)ステップ2で形成された複数のタイルTのうち、未処理(これから説明するような処理が行われていない)であるタイルTを1つ選択する。この後、この選択したタイルTに着目して、一連の処理を行っていく。次に、ステップ4−1へ進む。
【0063】
(ステップ4)
ステップ4の「X方向の配線について判定/処理」を構成するステップを、図8のフローチャートを用いて説明する。
【0064】
(ステップ4−1)ステップ3−2で選択したタイルTにおいて、X方向の配線について、オーバーフローしているか否かの判定を行う。
【0065】
ここでは、1つのタイルTについて、ステップ2−2で算出されたこのタイルTが含む配線方向毎の配線本数(タイル配線本数)を、同じくステップ2−2で算出されたこのタイルTが含むことができる配線方向毎の最大配線本数(タイル配線可能本数)と比較して、この配線本数が最大配線本数よりも大きい場合には、その配線方向の配線は、オーバーフローしていると定義する。
【0066】
そして、X方向の配線が、オーバーフローしていない場合には、次に、Y方向の配線について処理を行うため、ステップ5−1へ進む。一方、X方向の配線が、オーバーフローしている場合には、ステップ4−2へ進む。
【0067】
(ステップ4−2)このステップでは、ステップ4−1において、X方向の配線がオーバーフローと判定された場合、選択されたタイルTの備える複数の部分配線領域2aのうちの1つを選択して、配線方向を変更する(局所的に配線方向を変更する)。
【0068】
各タイルTは、ステップ2で説明したように、図2(b)のような、各タイルTの座標に対応するものであって各配線層2の一部である部分配線領域2aを、複数備えている。従って、X方向の配線が、オーバーフローと判定されたタイルTの備える複数の部分配線領域2aのうち、Y方向の配線方向を持つ部分配線領域2aを1個選択し、その選択した部分配線領域2aの配線方向を、Y方向からX方向に変更するのである。
【0069】
この際、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、例えば、下の部分配線領域2aから順次1個選択し、配線方向を変更しても良く、あらかじめ定められた所定の順番に従って部分配線領域2aを1個選択し、配線方向を変更するものであれば良い。このようにすることで、隣接する他のタイルTに対する処理も、同様な処理を行うことができ、隣接するタイルT同士で、部分配線領域2aの構成(各タイルTの備える複数の部分配線領域2aにおいて、X方向の配線方向を持つ部分配線領域2aと、Y方向の配線方向を持つ部分配線領域2aと、の組み合わせ)が異なるといった状況を、言い換えると、隣接するタイルT同士において、隣接する部分配線領域2aの配線方向が異なるといった状況を、減らすことができる。
【0070】
次に、ステップ4−3へ進む。
【0071】
(ステップ4−3)このステップにおいては、ステップ4−2で、1個の部分配線領域の配線方向が変更されたことから、それに伴って、配線方向毎の、選択されたタイルTが含むことができる配線の最大配線本数(タイル配線可能本数)の値を、変更する。
【0072】
すなわち、図3を例に挙げて説明すると、タイルTの備える部分配線領域2aは6個であり、詳細には、X方向の配線方向を持つ部分配線領域2aは3個、Y方向の配線方向を持つ部分配線領域2aは3個である。さらに、ここでは、1つの部分配線領域2aは、最大4本の配線を含むことができるものとする。従って、変更前においては、このタイルTについては、X方向及びY方向の配線ともに、12本が最大配線本数(タイル配線可能本数)となる。
【0073】
しかしながら、1つの部分配線領域2aの配線方向を変更したことから、このタイルTでは、X方向の配線方向を持つ部分配線領域2aは4個、Y方向の配線方向を持つ部分配線領域2aは2個となる。従って、タイルTにおいては、X方向の最大配線本数は16本、Y方向の最大配線本数は8本となる。すなわち、最大配線本数(タイル配線可能本数)は変更されることとなるのである。
【0074】
従って、ステップ2−2で説明した手順と同様にして、再度、配線方向毎の、選択されたタイルTの最大配線本数(タイル配線可能本数)を再度算出することとなる。この算出された値は、更新された最大配線本数として、後で使用するため、データとして格納しておく。次に、ステップ4−4−1へ進む。
【0075】
(ステップ4−4−1)次に、ステップ4−2において、1個の部分配線領域の配線方向を変更した後、選択されたタイルTのY方向の配線がオーバーフローしているかを判定する。その際に用いられる最大配線本数(タイル配線可能本数)は、ステップ4−3で算出されたものを用いる。Y方向の配線がオーバーフローしていない場合には、ステップ4−1へ戻る。一方、Y方向の配線がオーバーフローしている場合には、ステップ4−5へ進む。
【0076】
(ステップ4−5)ステップ4−4−1において、Y方向の配線がオーバーフローしている場合には、解なしとして、自動配線設計ツールは、エラー出力する。その後、一連の処理は、終了する。
【0077】
そして、X方向の配線について、オーバーフローしている旨の判定がなくなるまで、ステップ4−1からステップ4−5を繰り返すのである。このような繰り返しにおいては、先に説明したように、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、このような順に限られるものではなく、あらかじめ決まられた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0078】
ステップ4−1からステップ4−5を繰り返して、X方向の配線について、オーバーフローしている旨の判定がなくなった場合には、ステップ5−1へ進む。
【0079】
(ステップ5)
ステップ5の「Y方向の配線について判定/処理」を構成するステップを以下に説明する。このステップ5を構成するステップは、ステップ4を構成するステップと同様のものであるため、詳細な説明は、省略する。なお、ステップ5は、図8のフローチャートに示される。
【0080】
(ステップ5−1)このステップでは、ステップ3−2で選択したタイルTについて、Y方向の配線について、オーバーフローしているか否かの判定を行う。
この際、ステップ4−3を経ていない場合には、ステップ2−2で算出された最大配線本数(タイル配線可能本数)を、一方、ステップ4−3を経ている場合には、ステップ4−3で更新された最大配線本数を、用いることとなる。
【0081】
Y方向の配線が、オーバーフローしていない場合には、次に、未処理のタイルTを選択するために、ステップ3−1へ戻る。一方、Y方向の配線が、オーバーフローしている場合には、ステップ5−2へ進む。
【0082】
(ステップ5−2)このステップにおいては、ステップ5−1において、Y方向の配線が、オーバーフローしているものと判定された場合、選択されたタイルTの備える複数の部分配線領域のうち、X方向の配線方向をもつ部分配線領域の1個を選択して、配線方向を、X方向からY方向に変更するのである。これまでと同様に、例えば、図3に示されるように、上の部分配線領域2aから順次変更する。しかしながら、このような順に限られるものではなく、あらかじめ決められた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0083】
次に、ステップ5−3へ進む。
【0084】
(ステップ5−3)このステップにおいては、ステップ5−2で、1個の部分配線領域の配線方向が変更されたことから、それに伴って、配線方向毎の、選択されたタイルTが含むことができる配線の最大配線本数(タイル配線可能本数)の値が、変更されることとなる。従って、ステップ4−3で説明したように、再度、最大配線本数を算出する。この算出された値は、更新された最大配線本数として、後で使用するため、データとして格納しておく。次に、ステップ5−4−1へ進む。
【0085】
(ステップ5−4−1)次に、ステップ5−2において、1個の部分配線領域の配線方向を変更した後、タイルTのX方向の配線がオーバーフローしているかを判定する。その際に用いられる最大配線本数(タイル配線可能本数)は、ステップ5−3で算出されたものを用いる。X方向の配線がオーバーフローしていない場合には、ステップ5−1へ戻る。一方、X方向の配線がオーバーフローしている場合には、ステップ5−5へ進む。
【0086】
(ステップ5−5)ステップ5−4−1において、X方向の配線がオーバーフローしている場合には、解なしとして、自動配線設計ツールは、エラー出力する。その後、一連の処理は、終了する。
【0087】
そして、Y方向の配線について、オーバーフローしている旨の判定がなくなるまで、ステップ5−1からステップ5−5を繰り返すのである。このような繰り返しにおいては、先に説明したように、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、このような順に限られるものではなく、あらかじめ決まられた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0088】
ステップ5−1からステップ5−5を繰り返して、Y方向の配線について、オーバーフローしている旨の判定がなくなった場合には、ステップ3−1へ戻る。
【0089】
そして、未処理のタイルTがなくなるまで、ステップ3−1から3−2、ステップ4−1からステップ4−5、ステップ5−1からステップ5−5、を繰り返し、未処理のタイルTがなくなったら、概略配線の設計を完了し、詳細配線設計を行うためのステップ1−5へ戻る。
【0090】
以上のようにして、配線設計結果を得ることができる。
【0091】
従って、このようにすることで、配線層の追加やフロアプランの再検討を伴わず、簡易的に、配線設計を行うことができる。
【0092】
本実施形態の変形例として、以下のようなものが挙げられる。
【0093】
本実施形態においては、ステップ3−2において、タイルTをランダムに1個選択して、その選択したタイルTについて、オーバーフローしているか否か判定して、処理(配線方向の検討、変更)を行ってきた。それに対して、変形例においては、先に、タイルT毎、配線方向毎に、オーバーフローしているかどうかの判定を行い、次に、オーバーフローしていると判定されたタイルTの中から、一連の処理を行うタイルTを、選択することもできる。
【0094】
さらに、先に、タイルT毎、配線方向毎に、オーバーフローしているかどうかの判定、及び、最大配線本数(タイル配線可能本数)を超えている配線の本数の算出を行い、最大配線本数を超える配線本数が多い順に、タイルTを選択して、そのタイルTに対して一連の処理を行うこともできる。
【0095】
また、配線設計にかかる時間が長い場合等には、最大配線本数を超える配線本数が多い上位何個のタイルTのみを選択して、一連の処理を行うこともできる。
【0096】
(第2の実施形態)
次に、本発明にかかる第2の実施形態を、図7から図10を用いて、説明する。なお、第1の実施形態と同様のステップについては、説明を省略する。
【0097】
本実施形態の配線設計方法は、図8のフローチャートで示され、図8中のタイルTを、後で説明する本実施形態のタイルTgに置き換えたものとなる。
【0098】
本実施形態が、第1の実施形態と異なる点としては、第1の実施形態におけるタイルTの集合であるタイルTgを用いて、配線設計を進めていくことである。これにより、第2の実施形態においては、ステップ2の「タイル分割」が、第1の実施形態のものとは異なることとなる。従って、ここでは、このステップ2の「タイル分割」について、詳細に説明する。なお、以下の説明においては、第1の実施形態におけるタイルをタイルTとし、本実施形態におけるタイルをタイルTgとする。
【0099】
ステップ2の「タイル分割」を構成するステップを、図9を用いて説明する。図9に示すように、タイルTgのタイル配線本数及びタイル配線可能本数を算出するステップにおいては、第1の実施形態におけるタイルTのタイル配線本数及びタイル配線可能本数を算出するステップ(ステップ2−1、2−2(図6中、S2−1、S2−2))に、以下に説明するステップ2−3及びステップ2−4が追加されることとなる。
【0100】
(ステップ2−3)このステップにおいては、この後の処理で用いられるタイルTgを仮想的に形成する。
【0101】
図7(b)に示されるように、互いに隣接する所定の数のタイルTを、集合させて、所定の大きさのタイルTgとする。このタイルTgを形成するタイルTの数は、任意に選択することができ、設計者が、基板の面積、配線本数、設計時間等を考慮して、配線自動設計ツールに入力しておく。これによって、各タイルTgは、図10に示されるように、各タイルTgに対応する座標を有するものであって各配線層2の一部である部分配線領域2bを、複数備えるものとなる。さらに、部分配線領域2bは、図2(b)に示される、タイルTgを構成する複数のタイルTに対応する座標を有する各配線層2の一部である複数の部分配線領域2a(図2(b)に示す部分配線領域2a)が集合したものとなる。
【0102】
次に、ステップ2−4へ進む。
【0103】
(ステップ2−4)このステップにおいては、各タイルTgに含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTgが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、ステップ2−2で算出されたタイルTが含む配線の本数(タイル配線本数)、タイルTが含むことができる最大配線本数(タイル配線可能本数)に基づいて、算出する。
【0104】
ここでは、タイルTgが含む配線方向毎の配線の本数(タイル配線本数)は、タイルTのY方向(もしくは、X方向)の配線本数を、行毎(もしくは、列毎)に足したもの(総和)を算出し、その算出された値のうちの最大数とする。さらに、タイルTgが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)も、同様に、タイルTのY方向(もしくは、X方向)の最大配線本数を、行毎(もしくは、列毎)に足したもの(総和)を算出し、その算出された値のうちの最小数とする。
【0105】
この算出方法をわかりやすく説明するため、例として、図7(b)に示されるタイルTgが含む配線の本数(タイル配線本数)を算出する方法について、以下に説明する。
【0106】
図7(b)には、タイルTが縦4個横4個(以下、このようなタイルTの配列を4×4と示す。)集合した、タイルTgが示されている。図7(b)に示されているタイルT内の数字は、ステップ2−2で得られた、各タイルTが含む、Y方向の配線の本数を示す。また、各タイルTの行(図7(b)においては、各行に4つのタイルTがある)の右側に記載された数字は、その行のタイルTに含まれるY方向の配線の本数の総和を示す。例えば、図7(b)における一番上の行については、その行に含まれるY方向の配線の本数は、行における配線本数の総和であるから、2+1+3+3=9本となる。そして、同様に算出すると、各行の総和は、上から、9本、9本、8本、10本となる。
【0107】
さらに、図7(b)に示されるタイルTgにおける、Y方向の配線の本数(Y方向タイル配線本数)は、各行のY方向の配線の本数の総和のうちの最大値となることから、10本となる。
【0108】
また、各タイルTgの、Y方向の配線の最大配線本数(Y方向タイル配線可能本数)、X方向の配線の本数(X方向タイル配線本数)、X方向の配線の最大配線本数(X方向タイル配線可能本数)は、先に説明した方法と同様に算出する。
【0109】
ここで算出された配線本数、最大配線本数(タイル配線可能本数)は、データとして格納しておく。次に、ステップ3へ進む。
【0110】
以上のようにして、タイルTgにおけるタイル配線本数、タイル配線可能本数が算出される。以下、ステップ3の「タイル選択」、ステップ4の「X方向の配線についての判定/処理」、ステップ5の「Y方向の配線についての判定/処理」については、第1の実施形態のおけるタイルTを、本実施形態のタイルTgに置き換えることで、第1の実施形態と同様に説明することができるため、説明を省略する。
【0111】
なお、本実施形態のステップ2では、タイルTを用いてタイルTgを形成する方法について説明したが、タイルTを用いることなく、タイルTgを形成しても良い。
【0112】
このように、本実施形態においては、タイルTが集合したものであるタイルTgを用いて配線設計を行うことから、第1の実施形態と比べて、より配線設計にかかる時間を短縮することができる。
【0113】
さらに、本実施形態に対しても、第1の実施形態の変形例を適用することは可能である。
【0114】
(第3の実施形態)
次に、本発明にかかる第3の実施形態を、図11、図12を用いて、説明する。なお、以下の説明においては、第1の実施形態におけるタイルをタイルTとし、第2の実施形態におけるタイルをタイルTgとする。
【0115】
本実施形態が、第2の実施形態と異なる点としては、必要に応じて、選択したタイルTgをさらに分割して、複数のタイル(2次タイル)Tg2を形成して、配線設計を進めていくことである。
【0116】
本実施形態を説明する前に、このように、タイルTgを分割して、複数のタイルTg2を形成することによって、効果的に、配線設計を行うことが可能になることについて、説明する。
【0117】
第2の実施形態においては、配線を設計するために、タイルTg毎に、部分配線領域の構成(各タイルTgの備える複数の部分配線領域において、X方向の配線方向を持つ部分配線領域と、Y方向の配線方向を持つ部分配線領域と、の組み合わせ)を決定していた。従って、タイルTgのサイズが大きいほど、配線方向が変わる箇所が少なくなるため、配線設計が容易になり、配線設計にかかる時間を短くすることができる。
【0118】
しかしながら、以下に示すような例のように、タイルTgでは、X方向の配線、Y方向の配線、ともに、混雑していることから、配線設計の解を得ることができないが、タイルTgを分割により小さくすることによって、配線設計の解を得ることができる場合がある。
【0119】
以下に、図11を用いて、このような例について説明する。図11(a)には、タイルT(第1の実施形態におけるタイルT)が4×4集合して形成した、タイルTg(第2の実施形態におけるタイルTg)が示されている。さらに、このタイルTgは、8個の部分配線領域2bを、詳細には、X方向の配線方向を持つ部分配線領域2bを4個、Y方向の配線方向を持つ部分配線領域2bを4個、備えるものとする。従って、各タイルTは、X方向の配線方向を持つ部分配線領域2aを4個、Y方向の配線方向を持つ部分配線領域2aを4個、備えることとなる。
【0120】
また、ここでは、各部分配線領域が含むことができる配線の最大配線本数を、1本と仮定する。従って、タイルTの備える部分配線領域2aの構成から、各タイルTの含むことができる最大配線本数(タイル配線可能本数)は、X方向、Y方向、ともに、4本ということになる。さらに、図11(a)に示されるタイルTgは、タイルTを4×4集合したものであることから、第2の実施形態のステップ2−4で説明した方法に従い、タイルTgの最大配線本数(タイル配線可能本数)を算出すると、X方向及びY方向の最大配線本数は、ともに、16本となる。
【0121】
ところで、図11(a)に示されるように、タイルTgを構成するタイルT内に記載された数字は、ステップ1の概略配線の結果から得られた、各タイルTが含む配線の本数(タイル配線本数)を示すものである。これらの各タイルTが含む配線の本数に基づいて、第2の実施形態のステップ2−4で説明した方法を用いて、タイルTgが含む配線の本数(タイル配線本数)を算出する。その結果、タイルTgの含む配線の本数は、X方向の配線については、17本、Y方向の配線については、17本となる。
【0122】
従って、タイルTgの含むX方向の配線の本数(X方向タイル配線本数)とY方向の配線の本数(Y方向タイル配線本数)とが、算出されたタイルTgの最大配線本数(タイル配線可能本数)16本を超えていることから、X方向、Y方向、どちらの方向の配線についても、オーバーフローしている状況にある。
【0123】
すなわち、第2の実施形態で説明した配線設計方法においては、この図11(a)で示されるタイルTgに対しては、設計に対する解を得ることができない。
【0124】
しかしながら、このような状況にあるタイルTgを、さらに、図11(b)に示すような、タイルTが2×2で並ぶようなタイルTg2に、分割する。このように、タイルTgを分割して4つのタイルTg2を形成した場合、各タイルTg2に含まれる配線の本数(タイル配線本数)は、以下のようになる。すなわち、図11(b)中の右上、右下、左上、左下、の順に、タイルTg2に含まれる配線の本数を、(X方向、Y方向)の順に並べると、(14、3)、(3、3)、(2、14)、(2、14)となる。
【0125】
さらに、このタイルTg2についての最大配線本数(タイル配線可能本数)を、これまで説明した方法を用いて算出すると、X方向、Y方向の配線は、ともに、8本である。
【0126】
従って、各タイルTg2の状況は、以下のようになる。
【0127】
右下のタイルTg2については、配線の本数(タイル配線本数)が(3、3)であることから、X方向、Y方向、ともに、配線はオーバーフローしている状況ではない。その結果、この右下のタイルTg2については、配線方向を変えることなく、配線設計を行うことができる。
【0128】
左上、左下の各タイルTg2については、ともに、配線の本数(タイル配線本数)が(2、14)であることから、Y方向の配線については、オーバーフローしている状況である。しかしながら、左上、左下の各タイルTg2の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域1個、Y方向の部分配線領域7個」にすることにより、X方向、Y方向、ともに、配線がオーバーフローする状況を回避することができる。
【0129】
右上のタイルTg2については、配線の本数(タイル配線本数)が(14、3)であることから、X方向の配線については、オーバーフローしている状況である。そして、この右下のタイルTg2が有する部分配線領域の構成を変更したとしても、配線がオーバーフローする状況を回避することができない。つまり、設計に対する解を得ることができない。
【0130】
しかしながら、このような状況にある右下のタイルTg2を、さらに、図11(c)に示すような、4つのタイルTg3(ここで説明する例においては、タイルTg3はタイルTと等しい。)に、分割する。このように、タイルTg2を分割して4つのタイルTg3を形成した場合、各タイルTg3に含まれる配線の本数(タイル配線本数)は、以下のようになる。すなわち、図11(c)中の右上、右下、左上、左下、の順に、タイルTg3に含まれる配線の本数を、(X方向、Y方向)の順に並べると、(7、1)、(7、1)、(6、2)、(6、2)となる。
【0131】
さらに、このタイルTg3についての最大配線本数(タイル配線可能本数)は、先に説明したように、X方向、Y方向の配線は、ともに、4本である。
【0132】
従って、各タイルTg3の状況は、以下のようになる。
【0133】
右上、右下のタイルTg3については、ともに、配線の本数(タイル配線本数)が(7、1)であることから、X方向の配線については、オーバーフローしている状況にある。しかしながら、右上、右下の各タイルTg3の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域7個、Y方向の部分配線領域1個」にすることにより、X方向、Y方向の配線が、ともに、オーバーフローする状況を回避することができる。
【0134】
左上、左下の各タイルTg3については、ともに、配線の本数(タイル配線本数)が(6、2)であることから、X方向の配線については、オーバーフローしている状況にある。しかしながら、左上、左下の各タイルTg3の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域6個、Y方向の部分配線領域2個」にすることにより、X方向、Y方向の配線が、ともに、オーバーフローする状況を回避することができる。
【0135】
以上のようにして、タイルTgをさらに分割して、タイルTg2、タイルTg3を複数形成することによって、効果的に、配線設計を行うことが可能になるのである。
【0136】
次に、本実施形態の配線設計方法を説明する。
【0137】
本実施形態の配線設計方法は、複数のステップで構成され、これらのステップの流れは、図12のフローチャートで示される。
【0138】
以下に、本実施形態特有のステップのみ、詳細に説明する。
【0139】
第1及び第2の実施形態においては、ステップ4−4−1及びステップ5−4−1で、配線がオーバーフローしている状況を回避できない場合には、配線設計の解がないものとして、エラーを出力していた。しかしながら、本実施形態では、このステップで、エラーを出力せずに、次のステップへ進むものとした。すなわち、以下のようなステップとなる。
【0140】
(ステップ4−4−2)Y方向の配線がオーバーフローしている場合には、ステップ6−1へ進む。
【0141】
(ステップ5−4−2)X方向の配線がオーバーフローしている場合には、ステップ6−1へ進む。
【0142】
さらに、本実施形態においては、以下のようなステップを有する。
【0143】
(ステップ6−1)
このステップでは、ステップ3−2で選択されたタイルTgが、さらに分割することが可能かどうかを判定する。既に、選択されたタイルTgが、タイルTと同じものである場合には、分割することができない。従って、選択されたタイルTgを分割することができる場合には、ステップ6−2へ進む。一方、選択されたタイルTgを分割することができない場合には、ステップ6−4へ進む。
【0144】
(ステップ6−2)
このステップでは、ステップ2−3で説明した方法と同じように、ステップ3−2で選択されたタイルTgを分割して、複数のタイルTg2を形成する。この際、タイルTg2は、所定の数のタイルTを集合させたものとなり、その数は、設計者が、任意に決めることができる。
【0145】
さらに、ステップ2−4で説明した方法と同じように、各タイルTg2に含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTg2が含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、算出する。
【0146】
次に、ステップ6−3へ進む。
【0147】
(ステップ6−3)
このステップでは、ステップ6−2で形成した、複数のタイルTg2を、未処理のタイルとして、登録する。次に、ステップ3−1へ進む。
【0148】
以下、第1の実施形態と同様に、複数のタイルTg2を選択し、選択したタイルTg2に対して、X方向の配線について判定/処理を行い、次いで、Y方向の配線について判定/処理を行う。
【0149】
なお、ここでは、X方向の配線に対して、先に一連の処理を進め、次に、Y方向の配線に対して処理を行う場合について説明したが、順番を入れ替えて、処理を行っても良い。
【0150】
(ステップ6−4)ステップ6−1において、タイルTgをさらに分割することができないと判定された場合には、ステップ3−2で選択されたタイルTgに対する処理を終了して(スキップして)、他のタイルTgの処理を行うために、ステップ3−1へ進む。
【0151】
このようにして、配線設計結果を得ることができる。
【0152】
そして、本実施形態によれば、第2の実施形態にかかる配線設計方法において、設計に対する解を得ることができない場合であっても、配線層の追加やフロアプランの再検討を伴わず、簡易的に、配線設計を行うことができる。従って、配線設計にかかる時間を短縮することができる。さらに、配線方向の変更を、タイル毎に検討することができるため、十分に配線層の配線方向の最適化を図ることができる。
【0153】
なお、先に説明した実施形態の配線設計方法は、ソフトウェアで構成することができ、ソフトウェアで構成する場合には、配線設計方法の少なくとも一部を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0154】
また、配線設計方法の少なくとも一部を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0155】
また、本発明は、上記各実施形態に限定されるものではなく、これら以外の各種の形態を採ることができる。すなわち、本発明の趣旨を逸脱しない範囲で適宜変形して実施することができる。
【符号の説明】
【0156】
A、B Gセル上の辺
T、Tg、Tg2、Tg3 タイル
1 基板
2 配線層
2a、2b 部分配線領域
3 配線
4 回路ブロック
5 Gセル
【技術分野】
【0001】
本発明は、基板の配線設計方法及びプログラムに関する。
【背景技術】
【0002】
半導体集積回路を備える半導体チップや、半導体パッケージの配線基板や、様々な電気機器のプリント回路基板(PCB)等の様々な配線基板は、通常、配線が引き回される複数の配線層を備える。
【0003】
配線の設計時間の短縮のために、自動配線設計ツールにより、自動的に配線を設計する手法が用いられている。これにより、配線の設計にかかる時間を短縮することが可能となる(例えば、特許文献1〜3参照)。
【0004】
しかしながら、このような自動配線設計ツールにおいては、各配線層における配線方向は、配線層全体に亘り固定されている。すなわち、例えば、第1方向の配線層では、配線層全体(全面)に亘り、配線が延びる方向は第1方向である。
【0005】
そこで、このような自動配線設計ツールを用いて配線を設計した際に、配線が混雑しているような領域が、配線層上に生じてしまう場合、設計者は、配線設計を行う前の状態に戻って、フロアプランを再検討したり、配線層自体を新たに追加したりすることによって、自動配線設計ツールを用いた配線設計を進めていた。従って、自動配線設計ツールを用いても、設計時間が長期化する傾向を避けることは難しいものであった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平2−222072号公報
【特許文献2】特開2007−214329号公報
【特許文献3】特開2000−311944号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、配線設計において、簡易的に配線混雑を回避することが可能な配線設計方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様にかかる配線設計方法は、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、前記基板を複数のタイルに分割し、前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する、ことを備える。
【0009】
本発明の一態様にかかるプログラムは、コンピュータを、複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行う手段と、前記基板を複数のタイルに分割する手段と、前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成する手段と、前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する手段と、として機能させる。
【発明の効果】
【0010】
本発明によれば、配線設計において、簡易的に配線混雑を回避することが可能な配線設計方法を提供することが可能となる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態を説明するための図(その1)である。
【図2】第1の実施形態を説明するための図(その2)である。
【図3】第1の実施形態を説明するための図(その3)である。
【図4】第1の実施形態にかかる配線の設計方法を示すフローチャート(その1)である。
【図5】第1の実施形態にかかる配線の設計方法を示すフローチャート(その2)である。
【図6】第1の実施形態にかかる配線の設計方法を示すフローチャート(その3)である。
【図7】第1及び第2の実施形態を説明するための図(その4)である。
【図8】第1の実施形態にかかる配線の設計方法を示すフローチャート(その4)である。
【図9】第2の実施形態にかかる配線の設計方法を示すフローチャートである。
【図10】第2の実施形態を説明するための図である。
【図11】第3の実施形態を説明するための図である。
【図12】第3の実施形態にかかる配線の設計方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図を参照して、本発明の実施形態を説明する。この説明に際して、全図面にわたり共通する部分には、共通する符号を付す。ただし、本発明は、この実施形態に限定されるものではない。
【0013】
また、ここでは、LPDDR2(Low Power Double Data Rate 2)といった半導体集積回路における、回路ブロック(機能ブロック、論理ブロック等)間を接続する配線の配線設計を例に説明するが、本発明は、このような半導体集積回路に限定されるものではない。
【0014】
本発明の実施形態について説明する前に、本発明者が本発明をなすに至った経緯について、図1から図3を用いて、以下に説明する。
【0015】
本発明者は、LPDDR2等の半導体集積回路を設計していた。LPDDR2においては、回路ブロックは、細長い長方形、もしくは、細長い長方形を有するL字型をしているものが多く、このような回路ブロックの間を接続する配線の設計を行っていたのである。
【0016】
詳細には、本発明者は、以下のように、配線設計を行っていた。すなわち、図1(a)に示されるように、複数の配線層2は互いに重ねられており、複数の回路ブロック4は、配線層2上に配置されており、回路ブロック4の間を接続する配線3は、複数の配線層2に亘って引き回されるものとして設計される。さらに、各配線層2上に配線3が延びることができる方向(配線方向)は、X方向(横方向)と、Y方向(縦方向)と、定められている。さらに、配線層毎に、配線層全面に亘って、同一の配線方向を有するものとして、定められていた。そして、本発明者は、このような配線層上の配線の設計を、自動配線設計ツールを用いて、行っていたのである。
【0017】
ところで、このようにして得られた概略配線の設計結果においては、配線層上の特定の領域に、配線が混雑してしまうような状況が生じてしまうことがあった。このような場合、先に説明したように、設計者は、フロアプラン(回路ブロックの配置位置)から再検討したり、配線層を新たに追加したりすることで、配線が混雑する状況を避けていた。
【0018】
しかしながら、本発明者は、配線設計の結果を分析して、配線層上の特定の領域において、複数の配線が特定の配線方向に偏ることに起因して、配線が混雑する領域が生じると考えていた。すなわち、本発明者は、このような細長い長方形の形状を持つ、回路ブロックどうしを接続する配線について設計を行うと、配線層上の特定の領域に、X方向、Y方向、いずれかの方向に延びる配線が集中して存在することが多くなり、配線層上の特定の領域に配線が混雑してしまう状況が生じてしまうと、考えていたのである。
【0019】
さらに、本発明者は、このような状況において、配線層上の配線方向を局所的に変更することにより、言い換えると、配線層の一部領域の配線方向を変更することにより、配線層上の特定の領域に配線が混雑してしまう状況を避けることができるのではないかと考えていた。
【0020】
また、本発明者は、細長い長方形、もしくは、細長い長方形を有するL字型の回路ブロック間を接続する配線の設計においては、配線層上の配線方向を局所的に変更することは、効果的であると、考えていた。
【0021】
そこで、本発明者は、所定の規則に従って、配線が混雑している配線層上の領域を検出して、その領域の配線方向を変更する、ことを考えたのである。
【0022】
詳細には、本発明者は、以下のように、配線設計を行うことを考えたのである。まず、基板は、複数の互いに重なった配線層を備え、配線層毎に、配線は、配線層全面に亘って、同一の配線方向に延びるものとして仮決めして、概略配線設計を行う。
【0023】
なお、概略配線とは、トポロジーと呼ばれるものであり、配線層上の詳細な座標を持つ配線ではなく、図1(b)に示されるような、基板1上に仮想的に形成されたセル5(Gセルと呼ばれる)の有する各辺のうち、どの辺を横切るかという事項が定められた配線のことを言う。
【0024】
次に、図2(a)に示されるように、基板1を所定の大きさに仮想的に分割して、複数のタイルTを仮想的に形成する。これによって、各タイルTは、図2(b)に示されるように、各タイルTに対応する座標を有するものであって、各配線層2の一部である部分配線領域2aを、複数備えるものとなる。
【0025】
そして、概略配線より算出されたタイルTの有する配線方向毎の配線3の本数が、所定の数を超えているタイルTがある場合(オーバーフローしている場合)には、図3に示すように、そのタイルTの備える複数の部分配線領域2aの配線方向を、必要に応じて変更する。タイルTの有する配線方向毎の配線の本数の算出方法については、後述する。
【0026】
このようにすることで、フロアプランの変更を伴わず、簡易的に、配線設計を行うことができる。従って、配線設計にかかる時間を短縮することができる。
【0027】
(第1の実施形態)
次に、本発明にかかる第1の実施形態を、図1から図8を用いて、説明する。
【0028】
ここでは、半導体集積回路の配線設計、詳細には、回路ブロック間の配線の配線設計を例として、説明する。ただし、本発明は、半導体集積回路に限定されるものではなく、半導体パッケージの配線基板や、PCBボード等にも用いることができる。また、本発明は、回路ブロック間を接続する配線の配線設計に限られるものではなく、その他の配線の配線設計にも用いることができる。
【0029】
まず、基板及び配線について説明する。基板は、複数の配線層を備える。配線層には、複数の回路ブロックが搭載され、さらに、回路ブロック間を電気的に接続するための複数の配線が、引き回されることとなる。また、これらの配線は、配線層上に延びることができる方向(配線方向)が、限定されている。ここでは、配線方向は、配線層の平面の有する辺とそれぞれ平行である、X方向(横方向)と、それと直角に交わるY方向(縦方向)と、に限定されているものとして、説明する。しかしながら、本発明においては、配線方向は、X方向とY方向とに限定されるものではなく、配線層の平面の有する辺に対して、45°に傾いた斜め方向を含むものでも良く、すなわち、配線方向が、複数の所定の方向に限定されていれば良い。
【0030】
次に、本実施形態の配線設計方法を行うための準備について説明する。設計者は、設計の準備として、各回路ブロックの形状及び大きさ、各回路ブロックの接続関係、配線基板上に各回路ブロックをどのように配置するのか(フロアプラン)、を決定する。さらに、これらの情報に基づいて、設計者は、配線層の数と、各配線層における配線方向を、配線層全面に亘って同一の配線方向であると仮定して、決定する。
【0031】
次に、本実施形態の配線設計方法を説明する。本実施形態の配線設計方法は、概略的には、以下の5つのステップで構成されている。この5つのステップの流れを図4のフローチャートに示す。各ステップは、以下の通りである。
【0032】
(ステップ1)概略配線設計
(ステップ2)タイル分割
(ステップ3)タイルの選択
(ステップ4)X方向の配線について判定/処理(配線層の配線方向を局所的に変更する)
(ステップ5)Y方向の配線について判定/処理
なお、ここでは、ステップ4及びステップ5において、先に、X方向の配線に対して、処理(ステップ4)を進め、次に、Y方向の配線に対して処理(ステップ5)を行う場合について説明するが、順番を入れ替えて、先に、Y方向の配線に対して処理を行い、次に、X方向の配線に対して処理を行っても良い。
【0033】
さらに、本実施形態の配線設計方法は、この一連のステップを実施した後に、すべてのタイルに対して処理が施されるまで、ステップ3からステップ5を繰り返す。
【0034】
また、これらのステップは、詳細には、以下のステップで構成されている。
【0035】
(ステップ1)
ステップ1の「概略配線設計」を構成するステップを、図5のフローチャートを用いて説明する。以下に説明する、ステップ1にかかる概略配線設計の方法は、一例であり、他の概略配線方法を用いても良い。
【0036】
(ステップ1−1)配線自動設計ツールに、各回路ブロックの形状及び大きさ、各回路ブロックの接続関係、フロアプラン、配線層の数、各配線層の配線方向等を入力する。次に、ステップ1−2に進む。
【0037】
(ステップ1−2)次に、配線自動設計ツールを用いて、入力された情報をもとに、概略配線設計を行う。このステップにおいては、概略配線設計を行うために、基板上に仮想的なセル(Gセル)を設ける。
【0038】
詳細には、図1(b)に示されるように、基板1上に、Gセル5と呼ばれる仮想的なマス目状のセルを設ける。このGセル5上のマス目(セル)の大きさは、任意に選択することができ、例えば、基板の面積、配線本数、設計時間等を考慮して、選択することができる。このGセル5は、概略配線時に、配線混雑度を見積もるために用いられる。
【0039】
次に、ステップ1−3に進む。
【0040】
(ステップ1−3)自動配線設計ツールは、これらの入力データに基づいて、図1(b)に示されるように、回路ブロックを接続する配線3が、Gセル5の有する辺のうち、どの辺を横切るかを、決定する。つまり、概略配線設計を行う。ここで得られた概略配線の結果は、後で使用するため、データとして格納しておく。次に、ステップ1−4に進む。
【0041】
(ステップ1−4)Gセルの有する各辺を横切る配線の本数(セル配線数N(i)と呼ぶ)が、適切なものであるかを判定する。
【0042】
詳細には、Gセルの有する各辺に対して、横切ることができる配線の本数(セル配線可能本数M(i)と呼ぶ)が、デザインルールや配線層の数等に従って、定められている。この値は、あらかじめ、配線自動設計ツールに入力されている。なお、このデザインルールとは、配線層上の配線が守らなくてはならない規則のことであり、例としては、配線同士の間隔が、定められた値以上にしなくてはならないといった規則のことである。
【0043】
そして、セル配線数N(i)がセル配線可能本数M(i)を超えているような辺が、検出されない場合には、ステップ1−5に進む。
【0044】
一方、セル配線数N(i)がセル配線可能本数M(i)を超えているような辺が、検出された場合には、ステップ2−1に進む。
【0045】
(ステップ1−5)ステップ1−3で得られた概略配線の結果に基づき、詳細配線の設計を行う。詳細配線とは、概略配線の結果に基づき、基板上における詳細な座標が定められた配線のことを言う。詳細配線の設計が完了した後は、配線設計が完了したものとして、一連の処理を終了することとなる。
【0046】
(ステップ2)
ステップ2の「タイル分割」を構成するステップを、図6のフローチャートを用いて説明する。なお、以下に説明する、ステップ2にかかる複数のタイルの形成方法は、一例であり、他のタイルの形成方法を用いて行っても良い。
【0047】
(ステップ2−1)基板1に、ステップ1−2で仮想的に形成したGセルを利用して、次の処理を行うための仮想的なマス目状のタイルを形成する。なお、ここでは、Gセルをずらして、仮想的なマス目状のタイルを形成する方法について説明するが、Gセルをそのまま用いて仮想的なマス目状のタイルを形成しても良く、Gセルを利用することなくタイルを形成しても良い。Gセルをそのまま用いてタイルを形成する場合には、例えば、後述するタイル配線本数はセル配線数N(i)となり、タイル配線可能本数は、セル配線可能本数M(i)となる。
【0048】
詳細には、図7(a)のように、Gセル5のマス目を、X方向(図7(a)中の横方向)、Y方向(図7(a)中の縦方向)、ともに、Gセル5を、半マス分位相をずらして、タイルTを形成することとなる新たなマス目を仮想的に形成する。言い換えると、Gセル5上の各辺が交わる各点が、各タイルTの中央に位置するように、タイルTの輪郭となる新たなマス目を形成する。
【0049】
詳細には、タイルTは、X方向について着目すると、図7(a)に示されるように、X方向に延びるGセル5上の2つの辺の一部、すなわち、辺Aの半分と辺Bの半分とを含むこととなる。また、Y方向についても、X方向と同様に、タイルTは、Y方向に延びるGセル5上の2つの辺のそれぞれ半分を含むこととなる。
【0050】
ここでは、この1つのマス目をタイルTと呼ぶ。この各タイルTは、図2(b)に示されるように、各タイルTに対応するものであって各配線層2の一部である部分配線領域2aを、複数備えるものとなる。
【0051】
Gセルのマス目をずらして、タイルTを形成することにより、Gセルを用いて行われる概略配線の結果を利用して、各タイルTに含まれる配線の本数を算出することが容易となる。詳細は、後述する。
【0052】
次に、ステップ2−2へ進む。
【0053】
(ステップ2−2)このステップにおいて、各タイルTに含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、算出する。
【0054】
算出方法をわかりやすく説明するため、例として、図7(a)に示されるタイルTが含む配線の本数(タイル配線本数)の算出と、このタイルTが含むことができる配線の最大本数(タイル配線可能本数)の算出と、について、説明する。
【0055】
図7(a)に示されるように、タイルTは、その内部に、X方向に延びる2つのGセル5上の辺の一部、すなわち、辺Aの一部と辺Bの一部とを含んでいる。ここでは、例として、ステップ1−3で得られた概略配線の設計結果において、辺Aを横切るY方向の配線の本数(Y方向セル配線数)は、3本とし(N(A)=3)、同様に、辺Bを通過するY方向の配線の本数(Y方向セル配線数)は、4本とする(N(B)=4)。
【0056】
そして、タイルTに含まれるY方向の配線の本数(Y方向タイル配線本数)は、タイルTにその一部が含まれるような辺を通過するY方向配線の本数(Y方向セル配線数)の総和を、算出し、その値の1/2と仮定する。すなわち、上記の例の場合には、タイルTに含まれるY方向の配線の本数は、{N(A)+N(B)}×1/2となり、図7(a)に示されるタイルTの場合には、(3+4)×1/2=3.5本となる。
【0057】
次に、同様にして、図7(a)に示されるタイルTについて、Y方向の配線の最大配線本数(Y方向タイル配線可能本数)を算出する。タイルTに含まれている辺A及び辺Bには、先に説明したように、それぞれ、各辺に対して通過することができる配線の本数(セル配線可能本数)が、配線層の数、及び、配線層の配線方向に応じて、あらかじめ定められている。ここでは、辺Aのセル配線可能本数をM(A)と、辺Bのセル配線可能本数をM(B)とする。そして、このような場合、図7(a)に示されるタイルTのY方向の配線の最大配線本数(Y方向タイル配線可能本数)は、配線本数(Y方向タイル配線本数)の算出と同様に、{M(A)+M(B)}×1/2となる。
【0058】
また、タイルTにおける、X方向の配線の本数(X方向タイル配線本数)と、X方向の配線の最大配線本数(X方向タイル配線可能本数)とについては、これまで説明した方法と同様に算出する。
【0059】
ここで算出された配線本数(タイル配線本数)、最大配線本数(タイル配線可能本数)は、データとして格納しておく。次に、ステップ3へ進む。
【0060】
(ステップ3)
ステップ3の「タイルの選択」を構成するステップを、図8のフローチャートを用いて説明する。
【0061】
(ステップ3−1)これから述べるような処理が行われていないタイルTが存在するか否かを判定する。この際、未処理のタイルTが存在していなければ、詳細配線設計を行うステップ1−5へ戻る。一方、未処理のタイルTが存在していれば、ステップ3−2に進む。
【0062】
(ステップ3−2)ステップ2で形成された複数のタイルTのうち、未処理(これから説明するような処理が行われていない)であるタイルTを1つ選択する。この後、この選択したタイルTに着目して、一連の処理を行っていく。次に、ステップ4−1へ進む。
【0063】
(ステップ4)
ステップ4の「X方向の配線について判定/処理」を構成するステップを、図8のフローチャートを用いて説明する。
【0064】
(ステップ4−1)ステップ3−2で選択したタイルTにおいて、X方向の配線について、オーバーフローしているか否かの判定を行う。
【0065】
ここでは、1つのタイルTについて、ステップ2−2で算出されたこのタイルTが含む配線方向毎の配線本数(タイル配線本数)を、同じくステップ2−2で算出されたこのタイルTが含むことができる配線方向毎の最大配線本数(タイル配線可能本数)と比較して、この配線本数が最大配線本数よりも大きい場合には、その配線方向の配線は、オーバーフローしていると定義する。
【0066】
そして、X方向の配線が、オーバーフローしていない場合には、次に、Y方向の配線について処理を行うため、ステップ5−1へ進む。一方、X方向の配線が、オーバーフローしている場合には、ステップ4−2へ進む。
【0067】
(ステップ4−2)このステップでは、ステップ4−1において、X方向の配線がオーバーフローと判定された場合、選択されたタイルTの備える複数の部分配線領域2aのうちの1つを選択して、配線方向を変更する(局所的に配線方向を変更する)。
【0068】
各タイルTは、ステップ2で説明したように、図2(b)のような、各タイルTの座標に対応するものであって各配線層2の一部である部分配線領域2aを、複数備えている。従って、X方向の配線が、オーバーフローと判定されたタイルTの備える複数の部分配線領域2aのうち、Y方向の配線方向を持つ部分配線領域2aを1個選択し、その選択した部分配線領域2aの配線方向を、Y方向からX方向に変更するのである。
【0069】
この際、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、例えば、下の部分配線領域2aから順次1個選択し、配線方向を変更しても良く、あらかじめ定められた所定の順番に従って部分配線領域2aを1個選択し、配線方向を変更するものであれば良い。このようにすることで、隣接する他のタイルTに対する処理も、同様な処理を行うことができ、隣接するタイルT同士で、部分配線領域2aの構成(各タイルTの備える複数の部分配線領域2aにおいて、X方向の配線方向を持つ部分配線領域2aと、Y方向の配線方向を持つ部分配線領域2aと、の組み合わせ)が異なるといった状況を、言い換えると、隣接するタイルT同士において、隣接する部分配線領域2aの配線方向が異なるといった状況を、減らすことができる。
【0070】
次に、ステップ4−3へ進む。
【0071】
(ステップ4−3)このステップにおいては、ステップ4−2で、1個の部分配線領域の配線方向が変更されたことから、それに伴って、配線方向毎の、選択されたタイルTが含むことができる配線の最大配線本数(タイル配線可能本数)の値を、変更する。
【0072】
すなわち、図3を例に挙げて説明すると、タイルTの備える部分配線領域2aは6個であり、詳細には、X方向の配線方向を持つ部分配線領域2aは3個、Y方向の配線方向を持つ部分配線領域2aは3個である。さらに、ここでは、1つの部分配線領域2aは、最大4本の配線を含むことができるものとする。従って、変更前においては、このタイルTについては、X方向及びY方向の配線ともに、12本が最大配線本数(タイル配線可能本数)となる。
【0073】
しかしながら、1つの部分配線領域2aの配線方向を変更したことから、このタイルTでは、X方向の配線方向を持つ部分配線領域2aは4個、Y方向の配線方向を持つ部分配線領域2aは2個となる。従って、タイルTにおいては、X方向の最大配線本数は16本、Y方向の最大配線本数は8本となる。すなわち、最大配線本数(タイル配線可能本数)は変更されることとなるのである。
【0074】
従って、ステップ2−2で説明した手順と同様にして、再度、配線方向毎の、選択されたタイルTの最大配線本数(タイル配線可能本数)を再度算出することとなる。この算出された値は、更新された最大配線本数として、後で使用するため、データとして格納しておく。次に、ステップ4−4−1へ進む。
【0075】
(ステップ4−4−1)次に、ステップ4−2において、1個の部分配線領域の配線方向を変更した後、選択されたタイルTのY方向の配線がオーバーフローしているかを判定する。その際に用いられる最大配線本数(タイル配線可能本数)は、ステップ4−3で算出されたものを用いる。Y方向の配線がオーバーフローしていない場合には、ステップ4−1へ戻る。一方、Y方向の配線がオーバーフローしている場合には、ステップ4−5へ進む。
【0076】
(ステップ4−5)ステップ4−4−1において、Y方向の配線がオーバーフローしている場合には、解なしとして、自動配線設計ツールは、エラー出力する。その後、一連の処理は、終了する。
【0077】
そして、X方向の配線について、オーバーフローしている旨の判定がなくなるまで、ステップ4−1からステップ4−5を繰り返すのである。このような繰り返しにおいては、先に説明したように、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、このような順に限られるものではなく、あらかじめ決まられた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0078】
ステップ4−1からステップ4−5を繰り返して、X方向の配線について、オーバーフローしている旨の判定がなくなった場合には、ステップ5−1へ進む。
【0079】
(ステップ5)
ステップ5の「Y方向の配線について判定/処理」を構成するステップを以下に説明する。このステップ5を構成するステップは、ステップ4を構成するステップと同様のものであるため、詳細な説明は、省略する。なお、ステップ5は、図8のフローチャートに示される。
【0080】
(ステップ5−1)このステップでは、ステップ3−2で選択したタイルTについて、Y方向の配線について、オーバーフローしているか否かの判定を行う。
この際、ステップ4−3を経ていない場合には、ステップ2−2で算出された最大配線本数(タイル配線可能本数)を、一方、ステップ4−3を経ている場合には、ステップ4−3で更新された最大配線本数を、用いることとなる。
【0081】
Y方向の配線が、オーバーフローしていない場合には、次に、未処理のタイルTを選択するために、ステップ3−1へ戻る。一方、Y方向の配線が、オーバーフローしている場合には、ステップ5−2へ進む。
【0082】
(ステップ5−2)このステップにおいては、ステップ5−1において、Y方向の配線が、オーバーフローしているものと判定された場合、選択されたタイルTの備える複数の部分配線領域のうち、X方向の配線方向をもつ部分配線領域の1個を選択して、配線方向を、X方向からY方向に変更するのである。これまでと同様に、例えば、図3に示されるように、上の部分配線領域2aから順次変更する。しかしながら、このような順に限られるものではなく、あらかじめ決められた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0083】
次に、ステップ5−3へ進む。
【0084】
(ステップ5−3)このステップにおいては、ステップ5−2で、1個の部分配線領域の配線方向が変更されたことから、それに伴って、配線方向毎の、選択されたタイルTが含むことができる配線の最大配線本数(タイル配線可能本数)の値が、変更されることとなる。従って、ステップ4−3で説明したように、再度、最大配線本数を算出する。この算出された値は、更新された最大配線本数として、後で使用するため、データとして格納しておく。次に、ステップ5−4−1へ進む。
【0085】
(ステップ5−4−1)次に、ステップ5−2において、1個の部分配線領域の配線方向を変更した後、タイルTのX方向の配線がオーバーフローしているかを判定する。その際に用いられる最大配線本数(タイル配線可能本数)は、ステップ5−3で算出されたものを用いる。X方向の配線がオーバーフローしていない場合には、ステップ5−1へ戻る。一方、X方向の配線がオーバーフローしている場合には、ステップ5−5へ進む。
【0086】
(ステップ5−5)ステップ5−4−1において、X方向の配線がオーバーフローしている場合には、解なしとして、自動配線設計ツールは、エラー出力する。その後、一連の処理は、終了する。
【0087】
そして、Y方向の配線について、オーバーフローしている旨の判定がなくなるまで、ステップ5−1からステップ5−5を繰り返すのである。このような繰り返しにおいては、先に説明したように、例えば、図3に示されるように、上の部分配線領域2aから順次1個選択し、配線方向を変更する。しかしながら、このような順に限られるものではなく、あらかじめ決まられた所定の順番に従って部分配線領域2aの配線方向を変更すれば良い。
【0088】
ステップ5−1からステップ5−5を繰り返して、Y方向の配線について、オーバーフローしている旨の判定がなくなった場合には、ステップ3−1へ戻る。
【0089】
そして、未処理のタイルTがなくなるまで、ステップ3−1から3−2、ステップ4−1からステップ4−5、ステップ5−1からステップ5−5、を繰り返し、未処理のタイルTがなくなったら、概略配線の設計を完了し、詳細配線設計を行うためのステップ1−5へ戻る。
【0090】
以上のようにして、配線設計結果を得ることができる。
【0091】
従って、このようにすることで、配線層の追加やフロアプランの再検討を伴わず、簡易的に、配線設計を行うことができる。
【0092】
本実施形態の変形例として、以下のようなものが挙げられる。
【0093】
本実施形態においては、ステップ3−2において、タイルTをランダムに1個選択して、その選択したタイルTについて、オーバーフローしているか否か判定して、処理(配線方向の検討、変更)を行ってきた。それに対して、変形例においては、先に、タイルT毎、配線方向毎に、オーバーフローしているかどうかの判定を行い、次に、オーバーフローしていると判定されたタイルTの中から、一連の処理を行うタイルTを、選択することもできる。
【0094】
さらに、先に、タイルT毎、配線方向毎に、オーバーフローしているかどうかの判定、及び、最大配線本数(タイル配線可能本数)を超えている配線の本数の算出を行い、最大配線本数を超える配線本数が多い順に、タイルTを選択して、そのタイルTに対して一連の処理を行うこともできる。
【0095】
また、配線設計にかかる時間が長い場合等には、最大配線本数を超える配線本数が多い上位何個のタイルTのみを選択して、一連の処理を行うこともできる。
【0096】
(第2の実施形態)
次に、本発明にかかる第2の実施形態を、図7から図10を用いて、説明する。なお、第1の実施形態と同様のステップについては、説明を省略する。
【0097】
本実施形態の配線設計方法は、図8のフローチャートで示され、図8中のタイルTを、後で説明する本実施形態のタイルTgに置き換えたものとなる。
【0098】
本実施形態が、第1の実施形態と異なる点としては、第1の実施形態におけるタイルTの集合であるタイルTgを用いて、配線設計を進めていくことである。これにより、第2の実施形態においては、ステップ2の「タイル分割」が、第1の実施形態のものとは異なることとなる。従って、ここでは、このステップ2の「タイル分割」について、詳細に説明する。なお、以下の説明においては、第1の実施形態におけるタイルをタイルTとし、本実施形態におけるタイルをタイルTgとする。
【0099】
ステップ2の「タイル分割」を構成するステップを、図9を用いて説明する。図9に示すように、タイルTgのタイル配線本数及びタイル配線可能本数を算出するステップにおいては、第1の実施形態におけるタイルTのタイル配線本数及びタイル配線可能本数を算出するステップ(ステップ2−1、2−2(図6中、S2−1、S2−2))に、以下に説明するステップ2−3及びステップ2−4が追加されることとなる。
【0100】
(ステップ2−3)このステップにおいては、この後の処理で用いられるタイルTgを仮想的に形成する。
【0101】
図7(b)に示されるように、互いに隣接する所定の数のタイルTを、集合させて、所定の大きさのタイルTgとする。このタイルTgを形成するタイルTの数は、任意に選択することができ、設計者が、基板の面積、配線本数、設計時間等を考慮して、配線自動設計ツールに入力しておく。これによって、各タイルTgは、図10に示されるように、各タイルTgに対応する座標を有するものであって各配線層2の一部である部分配線領域2bを、複数備えるものとなる。さらに、部分配線領域2bは、図2(b)に示される、タイルTgを構成する複数のタイルTに対応する座標を有する各配線層2の一部である複数の部分配線領域2a(図2(b)に示す部分配線領域2a)が集合したものとなる。
【0102】
次に、ステップ2−4へ進む。
【0103】
(ステップ2−4)このステップにおいては、各タイルTgに含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTgが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、ステップ2−2で算出されたタイルTが含む配線の本数(タイル配線本数)、タイルTが含むことができる最大配線本数(タイル配線可能本数)に基づいて、算出する。
【0104】
ここでは、タイルTgが含む配線方向毎の配線の本数(タイル配線本数)は、タイルTのY方向(もしくは、X方向)の配線本数を、行毎(もしくは、列毎)に足したもの(総和)を算出し、その算出された値のうちの最大数とする。さらに、タイルTgが含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)も、同様に、タイルTのY方向(もしくは、X方向)の最大配線本数を、行毎(もしくは、列毎)に足したもの(総和)を算出し、その算出された値のうちの最小数とする。
【0105】
この算出方法をわかりやすく説明するため、例として、図7(b)に示されるタイルTgが含む配線の本数(タイル配線本数)を算出する方法について、以下に説明する。
【0106】
図7(b)には、タイルTが縦4個横4個(以下、このようなタイルTの配列を4×4と示す。)集合した、タイルTgが示されている。図7(b)に示されているタイルT内の数字は、ステップ2−2で得られた、各タイルTが含む、Y方向の配線の本数を示す。また、各タイルTの行(図7(b)においては、各行に4つのタイルTがある)の右側に記載された数字は、その行のタイルTに含まれるY方向の配線の本数の総和を示す。例えば、図7(b)における一番上の行については、その行に含まれるY方向の配線の本数は、行における配線本数の総和であるから、2+1+3+3=9本となる。そして、同様に算出すると、各行の総和は、上から、9本、9本、8本、10本となる。
【0107】
さらに、図7(b)に示されるタイルTgにおける、Y方向の配線の本数(Y方向タイル配線本数)は、各行のY方向の配線の本数の総和のうちの最大値となることから、10本となる。
【0108】
また、各タイルTgの、Y方向の配線の最大配線本数(Y方向タイル配線可能本数)、X方向の配線の本数(X方向タイル配線本数)、X方向の配線の最大配線本数(X方向タイル配線可能本数)は、先に説明した方法と同様に算出する。
【0109】
ここで算出された配線本数、最大配線本数(タイル配線可能本数)は、データとして格納しておく。次に、ステップ3へ進む。
【0110】
以上のようにして、タイルTgにおけるタイル配線本数、タイル配線可能本数が算出される。以下、ステップ3の「タイル選択」、ステップ4の「X方向の配線についての判定/処理」、ステップ5の「Y方向の配線についての判定/処理」については、第1の実施形態のおけるタイルTを、本実施形態のタイルTgに置き換えることで、第1の実施形態と同様に説明することができるため、説明を省略する。
【0111】
なお、本実施形態のステップ2では、タイルTを用いてタイルTgを形成する方法について説明したが、タイルTを用いることなく、タイルTgを形成しても良い。
【0112】
このように、本実施形態においては、タイルTが集合したものであるタイルTgを用いて配線設計を行うことから、第1の実施形態と比べて、より配線設計にかかる時間を短縮することができる。
【0113】
さらに、本実施形態に対しても、第1の実施形態の変形例を適用することは可能である。
【0114】
(第3の実施形態)
次に、本発明にかかる第3の実施形態を、図11、図12を用いて、説明する。なお、以下の説明においては、第1の実施形態におけるタイルをタイルTとし、第2の実施形態におけるタイルをタイルTgとする。
【0115】
本実施形態が、第2の実施形態と異なる点としては、必要に応じて、選択したタイルTgをさらに分割して、複数のタイル(2次タイル)Tg2を形成して、配線設計を進めていくことである。
【0116】
本実施形態を説明する前に、このように、タイルTgを分割して、複数のタイルTg2を形成することによって、効果的に、配線設計を行うことが可能になることについて、説明する。
【0117】
第2の実施形態においては、配線を設計するために、タイルTg毎に、部分配線領域の構成(各タイルTgの備える複数の部分配線領域において、X方向の配線方向を持つ部分配線領域と、Y方向の配線方向を持つ部分配線領域と、の組み合わせ)を決定していた。従って、タイルTgのサイズが大きいほど、配線方向が変わる箇所が少なくなるため、配線設計が容易になり、配線設計にかかる時間を短くすることができる。
【0118】
しかしながら、以下に示すような例のように、タイルTgでは、X方向の配線、Y方向の配線、ともに、混雑していることから、配線設計の解を得ることができないが、タイルTgを分割により小さくすることによって、配線設計の解を得ることができる場合がある。
【0119】
以下に、図11を用いて、このような例について説明する。図11(a)には、タイルT(第1の実施形態におけるタイルT)が4×4集合して形成した、タイルTg(第2の実施形態におけるタイルTg)が示されている。さらに、このタイルTgは、8個の部分配線領域2bを、詳細には、X方向の配線方向を持つ部分配線領域2bを4個、Y方向の配線方向を持つ部分配線領域2bを4個、備えるものとする。従って、各タイルTは、X方向の配線方向を持つ部分配線領域2aを4個、Y方向の配線方向を持つ部分配線領域2aを4個、備えることとなる。
【0120】
また、ここでは、各部分配線領域が含むことができる配線の最大配線本数を、1本と仮定する。従って、タイルTの備える部分配線領域2aの構成から、各タイルTの含むことができる最大配線本数(タイル配線可能本数)は、X方向、Y方向、ともに、4本ということになる。さらに、図11(a)に示されるタイルTgは、タイルTを4×4集合したものであることから、第2の実施形態のステップ2−4で説明した方法に従い、タイルTgの最大配線本数(タイル配線可能本数)を算出すると、X方向及びY方向の最大配線本数は、ともに、16本となる。
【0121】
ところで、図11(a)に示されるように、タイルTgを構成するタイルT内に記載された数字は、ステップ1の概略配線の結果から得られた、各タイルTが含む配線の本数(タイル配線本数)を示すものである。これらの各タイルTが含む配線の本数に基づいて、第2の実施形態のステップ2−4で説明した方法を用いて、タイルTgが含む配線の本数(タイル配線本数)を算出する。その結果、タイルTgの含む配線の本数は、X方向の配線については、17本、Y方向の配線については、17本となる。
【0122】
従って、タイルTgの含むX方向の配線の本数(X方向タイル配線本数)とY方向の配線の本数(Y方向タイル配線本数)とが、算出されたタイルTgの最大配線本数(タイル配線可能本数)16本を超えていることから、X方向、Y方向、どちらの方向の配線についても、オーバーフローしている状況にある。
【0123】
すなわち、第2の実施形態で説明した配線設計方法においては、この図11(a)で示されるタイルTgに対しては、設計に対する解を得ることができない。
【0124】
しかしながら、このような状況にあるタイルTgを、さらに、図11(b)に示すような、タイルTが2×2で並ぶようなタイルTg2に、分割する。このように、タイルTgを分割して4つのタイルTg2を形成した場合、各タイルTg2に含まれる配線の本数(タイル配線本数)は、以下のようになる。すなわち、図11(b)中の右上、右下、左上、左下、の順に、タイルTg2に含まれる配線の本数を、(X方向、Y方向)の順に並べると、(14、3)、(3、3)、(2、14)、(2、14)となる。
【0125】
さらに、このタイルTg2についての最大配線本数(タイル配線可能本数)を、これまで説明した方法を用いて算出すると、X方向、Y方向の配線は、ともに、8本である。
【0126】
従って、各タイルTg2の状況は、以下のようになる。
【0127】
右下のタイルTg2については、配線の本数(タイル配線本数)が(3、3)であることから、X方向、Y方向、ともに、配線はオーバーフローしている状況ではない。その結果、この右下のタイルTg2については、配線方向を変えることなく、配線設計を行うことができる。
【0128】
左上、左下の各タイルTg2については、ともに、配線の本数(タイル配線本数)が(2、14)であることから、Y方向の配線については、オーバーフローしている状況である。しかしながら、左上、左下の各タイルTg2の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域1個、Y方向の部分配線領域7個」にすることにより、X方向、Y方向、ともに、配線がオーバーフローする状況を回避することができる。
【0129】
右上のタイルTg2については、配線の本数(タイル配線本数)が(14、3)であることから、X方向の配線については、オーバーフローしている状況である。そして、この右下のタイルTg2が有する部分配線領域の構成を変更したとしても、配線がオーバーフローする状況を回避することができない。つまり、設計に対する解を得ることができない。
【0130】
しかしながら、このような状況にある右下のタイルTg2を、さらに、図11(c)に示すような、4つのタイルTg3(ここで説明する例においては、タイルTg3はタイルTと等しい。)に、分割する。このように、タイルTg2を分割して4つのタイルTg3を形成した場合、各タイルTg3に含まれる配線の本数(タイル配線本数)は、以下のようになる。すなわち、図11(c)中の右上、右下、左上、左下、の順に、タイルTg3に含まれる配線の本数を、(X方向、Y方向)の順に並べると、(7、1)、(7、1)、(6、2)、(6、2)となる。
【0131】
さらに、このタイルTg3についての最大配線本数(タイル配線可能本数)は、先に説明したように、X方向、Y方向の配線は、ともに、4本である。
【0132】
従って、各タイルTg3の状況は、以下のようになる。
【0133】
右上、右下のタイルTg3については、ともに、配線の本数(タイル配線本数)が(7、1)であることから、X方向の配線については、オーバーフローしている状況にある。しかしながら、右上、右下の各タイルTg3の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域7個、Y方向の部分配線領域1個」にすることにより、X方向、Y方向の配線が、ともに、オーバーフローする状況を回避することができる。
【0134】
左上、左下の各タイルTg3については、ともに、配線の本数(タイル配線本数)が(6、2)であることから、X方向の配線については、オーバーフローしている状況にある。しかしながら、左上、左下の各タイルTg3の有する部分配線領域の構成を、「X方向の部分配線領域4個、Y方向の部分配線領域4個」から、「X方向の部分配線領域6個、Y方向の部分配線領域2個」にすることにより、X方向、Y方向の配線が、ともに、オーバーフローする状況を回避することができる。
【0135】
以上のようにして、タイルTgをさらに分割して、タイルTg2、タイルTg3を複数形成することによって、効果的に、配線設計を行うことが可能になるのである。
【0136】
次に、本実施形態の配線設計方法を説明する。
【0137】
本実施形態の配線設計方法は、複数のステップで構成され、これらのステップの流れは、図12のフローチャートで示される。
【0138】
以下に、本実施形態特有のステップのみ、詳細に説明する。
【0139】
第1及び第2の実施形態においては、ステップ4−4−1及びステップ5−4−1で、配線がオーバーフローしている状況を回避できない場合には、配線設計の解がないものとして、エラーを出力していた。しかしながら、本実施形態では、このステップで、エラーを出力せずに、次のステップへ進むものとした。すなわち、以下のようなステップとなる。
【0140】
(ステップ4−4−2)Y方向の配線がオーバーフローしている場合には、ステップ6−1へ進む。
【0141】
(ステップ5−4−2)X方向の配線がオーバーフローしている場合には、ステップ6−1へ進む。
【0142】
さらに、本実施形態においては、以下のようなステップを有する。
【0143】
(ステップ6−1)
このステップでは、ステップ3−2で選択されたタイルTgが、さらに分割することが可能かどうかを判定する。既に、選択されたタイルTgが、タイルTと同じものである場合には、分割することができない。従って、選択されたタイルTgを分割することができる場合には、ステップ6−2へ進む。一方、選択されたタイルTgを分割することができない場合には、ステップ6−4へ進む。
【0144】
(ステップ6−2)
このステップでは、ステップ2−3で説明した方法と同じように、ステップ3−2で選択されたタイルTgを分割して、複数のタイルTg2を形成する。この際、タイルTg2は、所定の数のタイルTを集合させたものとなり、その数は、設計者が、任意に決めることができる。
【0145】
さらに、ステップ2−4で説明した方法と同じように、各タイルTg2に含まれる配線方向毎の配線の本数(タイル配線本数)、及び、各タイルTg2が含むことができる配線方向毎の配線の最大配線本数(タイル配線可能本数)を、算出する。
【0146】
次に、ステップ6−3へ進む。
【0147】
(ステップ6−3)
このステップでは、ステップ6−2で形成した、複数のタイルTg2を、未処理のタイルとして、登録する。次に、ステップ3−1へ進む。
【0148】
以下、第1の実施形態と同様に、複数のタイルTg2を選択し、選択したタイルTg2に対して、X方向の配線について判定/処理を行い、次いで、Y方向の配線について判定/処理を行う。
【0149】
なお、ここでは、X方向の配線に対して、先に一連の処理を進め、次に、Y方向の配線に対して処理を行う場合について説明したが、順番を入れ替えて、処理を行っても良い。
【0150】
(ステップ6−4)ステップ6−1において、タイルTgをさらに分割することができないと判定された場合には、ステップ3−2で選択されたタイルTgに対する処理を終了して(スキップして)、他のタイルTgの処理を行うために、ステップ3−1へ進む。
【0151】
このようにして、配線設計結果を得ることができる。
【0152】
そして、本実施形態によれば、第2の実施形態にかかる配線設計方法において、設計に対する解を得ることができない場合であっても、配線層の追加やフロアプランの再検討を伴わず、簡易的に、配線設計を行うことができる。従って、配線設計にかかる時間を短縮することができる。さらに、配線方向の変更を、タイル毎に検討することができるため、十分に配線層の配線方向の最適化を図ることができる。
【0153】
なお、先に説明した実施形態の配線設計方法は、ソフトウェアで構成することができ、ソフトウェアで構成する場合には、配線設計方法の少なくとも一部を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0154】
また、配線設計方法の少なくとも一部を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0155】
また、本発明は、上記各実施形態に限定されるものではなく、これら以外の各種の形態を採ることができる。すなわち、本発明の趣旨を逸脱しない範囲で適宜変形して実施することができる。
【符号の説明】
【0156】
A、B Gセル上の辺
T、Tg、Tg2、Tg3 タイル
1 基板
2 配線層
2a、2b 部分配線領域
3 配線
4 回路ブロック
5 Gセル
【特許請求の範囲】
【請求項1】
複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、
前記基板を複数のタイルに分割し、
前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、
前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する、
ことを特徴とする配線設計方法。
【請求項2】
前記タイルは、前記概略配線における配線混雑度を見積もるために、前記基板を格子状に分割したセルと対応する、ことを特徴とする請求項1に記載の配線設計方法。
【請求項3】
前記タイルは、前記概略配線における配線混雑度を見積もるために、前記基板を格子状に分割したセルと対応するタイルの集合である、ことを特徴とする請求項1に記載の配線設計方法。
【請求項4】
前記タイルをさらに複数の2次タイルに分割し、
前記複数の2次タイルに対応するように、前記複数の第1方向配線の部分配線領域及び前記複数の第2方向配線の部分配線領域を分割して、複数の第1方向配線の2次部分配線領域と、複数の第2方向配線の2次部分配線領域と、を形成し、
前記2次タイルにおける第1方向配線がオーバーフローしている場合には、この2次タイルに対応する前記第2方向配線の2次部分配線領域を、第1方向配線の2次部分配線領域に変更する、
ことを特徴とする、請求項3に記載の配線設計方法。
【請求項5】
コンピュータを、
複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行う手段と、
前記基板を複数のタイルに分割する手段と、
前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成する手段と、
前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する手段と、
として機能させるためのプログラム。
【請求項1】
複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行い、
前記基板を複数のタイルに分割し、
前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成し、
前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する、
ことを特徴とする配線設計方法。
【請求項2】
前記タイルは、前記概略配線における配線混雑度を見積もるために、前記基板を格子状に分割したセルと対応する、ことを特徴とする請求項1に記載の配線設計方法。
【請求項3】
前記タイルは、前記概略配線における配線混雑度を見積もるために、前記基板を格子状に分割したセルと対応するタイルの集合である、ことを特徴とする請求項1に記載の配線設計方法。
【請求項4】
前記タイルをさらに複数の2次タイルに分割し、
前記複数の2次タイルに対応するように、前記複数の第1方向配線の部分配線領域及び前記複数の第2方向配線の部分配線領域を分割して、複数の第1方向配線の2次部分配線領域と、複数の第2方向配線の2次部分配線領域と、を形成し、
前記2次タイルにおける第1方向配線がオーバーフローしている場合には、この2次タイルに対応する前記第2方向配線の2次部分配線領域を、第1方向配線の2次部分配線領域に変更する、
ことを特徴とする、請求項3に記載の配線設計方法。
【請求項5】
コンピュータを、
複数の第1方向配線の配線層及び複数の第2方向配線の配線層を備える基板対して概略配線を行う手段と、
前記基板を複数のタイルに分割する手段と、
前記複数のタイルに対応するように、前記複数の第1方向配線の配線層及び前記複数の第2方向配線の配線層を分割して、複数の第1方向配線の部分配線領域と、複数の第2方向配線の部分配線領域と、を形成する手段と、
前記タイルにおける第1方向配線がオーバーフローしている場合には、このタイルに対応する前記第2方向配線の部分配線領域を、第1方向配線の部分配線領域に変更する手段と、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−204000(P2011−204000A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−70559(P2010−70559)
【出願日】平成22年3月25日(2010.3.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願日】平成22年3月25日(2010.3.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]