[go: up one dir, main page]

JP4871168B2 - 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム - Google Patents

集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム Download PDF

Info

Publication number
JP4871168B2
JP4871168B2 JP2007045916A JP2007045916A JP4871168B2 JP 4871168 B2 JP4871168 B2 JP 4871168B2 JP 2007045916 A JP2007045916 A JP 2007045916A JP 2007045916 A JP2007045916 A JP 2007045916A JP 4871168 B2 JP4871168 B2 JP 4871168B2
Authority
JP
Japan
Prior art keywords
wiring
node
integrated circuit
route
width
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
JP2007045916A
Other languages
English (en)
Other versions
JP2008210131A (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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007045916A priority Critical patent/JP4871168B2/ja
Priority to US12/068,034 priority patent/US7765510B2/en
Publication of JP2008210131A publication Critical patent/JP2008210131A/ja
Application granted granted Critical
Publication of JP4871168B2 publication Critical patent/JP4871168B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

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

Description

本発明は、集積回路の配線経路探索方法、集積回路の自動配線装置および集積回路の配線設計装置を動作させるプログラムに関し、特に複数の配線層を有する集積回路の自動配線レイアウトを行う方法、装置およびプログラムに関する。
半導体集積回路は高集積化および多層化が進められており、半導体集積回路の設計では、CAD装置の集積回路配線設計機能を使用して自動配線レイアウト処理が行われる。自動配線レイアウト処理は、レイアウト面において始点ノードから終点ノードへの最適な経路を探索する処理である。
図1は、レイアウト処理の例を示す図である。図1は、始点ノード1から終点ノード2への最適な経路を探索したものであり、始点ノード1と終点ノード2の間には障害物3が設けられており、これらを避けて経路を形成する。ここでは3つの経路があり、第1の経路は、始点ノード1から、第1層の配線4と、第2層の配線5と、第1層の配線6を経由して終点ノード2に至る経路であり、第2の経路は、始点ノード1から、第1層の配線7と、第2層の配線8と、第1層の配線9を経由して終点ノード2に至る経路であり、第3の経路は、始点ノード1から、第2層の配線10と、第1層の配線11と、第2層の配線12と、第1層の配線13と、第2層の配線14と、第1層の配線15と、第2層の配線16と、を経由して終点ノード2に至る経路である。異なる層の配線を接続するにはビア(カット(I01))が使用される。第1および第2の経路では、ビアは少ない(カット2個)が、配線長が長くなる。一方、第3の経路では、配線長は短いがビアは多く(カット8個)なる。
どのような経路を選択するかは、選択されるノードに応じて異なる負荷(コスト)がかかるように設定し、取り得る経路ごとにコストを計算し、もっともコストの低い経路を選択する。図2は、コスト系列とコスト計算式の例を示す図である。図2の例では、コスト要素として、主方向距離、従方向距離、標準ビア数、冗長ビア数、配線ルール違反などが規定され、それぞれのコスト係数はDm、Ds、vC、rvC、Ecostである。始点ノード1から終点ノード2への各配線CSnについて各要素値を求め、計算式(1)に従ってコスト(cost)を計算する。例えば、目標ノードと逆方向のノードを選択すると、配線長が長くなりコストが増加し、図示していないが配線を曲げる回数などもコスト要素になり配線を曲げる回数が増加するとコストが増加する。さらに、既に占有されているノードに割り込む時などにはコストが高くなるように設定する。複数の配線層を有する場合には、異なる層の配線をビアで接続するが、図示のようにビア数もコスト要素になりビア数が増加すりとコストが増加する。ビアには、所定の大きさのビアを1個設ける標準ビアと、後述する冗長ビアがあり、コスト係数が異なる。
図3は、同層の始点ノードSから終点(目標)ノードTまでの経路探索方法を説明する図である。始点Sに隣接するノードは、N1とN4の主方向mDの2ノード、N2とN3の従方向sDの2ノード、およびNv1のビア方向vCの1ノードであり、進路としていずれかが選択できる。各進路についてはそれぞれ負荷(コスト)係数が決められており、図では主方向mDの進路がコスト係数1であり、従方向sDの進路がコスト係数3であり、ビア方向vCの進路がコスト係数2であり、他に迂回(逆方向の進路選択)および曲がり(進路方向の変更)にコスト係数1が加算される。以上のようなコスト係数の条件で、始点ノードSから目標ノードTまでのとり得る経路について、コスト係数の合計(コスト)を求め、最小コストの経路を選択する。図3では、対象領域を格子状に分割してノードを設定したが、実際には格子状である必要はなく、障害物に当たる直前に次のノードを設定するといったことが行われ、これにより処理時間を短縮できる。
実際に経路探索の計算を行う場合には、始点Sからいろいろな方向に順次経路を伸ばす。上記のようなコスト係数に従って、各経路が伸びるのに応じて各経路のコストが計算され、それがラベル値で表される。複数の経路のうち最小のラベル値の経路が選択されて伸ばされ、伸びるに従ってコストが増大するので、各経路は多少の前後はあってもそれぞれ順次伸ばされ、最初に終点(ターゲット)ノードに到達した経路が最小コストの経路ということになる。経路探索の方法については、特許文献1などに記載されているので、詳しい説明は省略する。
集積回路におけるビアを使用した配線では、ストレスマイグレーションと呼ばれる現象が発生してビア配線の断線が発生することが、特許文献2および3などに記載されている。ストレスマイグレーション(SMig(SM))は、高温放置試験や熱サイクル試験あるいはプロセス中の熱で、ビア内(底)の銅が消失し、ボイドが成長する銅配線特有の現象である。図4は、ストレスマイグレーションを説明する図であり、図4の(A)に示すように、異なる層に設けられた配線21と22をカット23で接続した構造で熱を印加すると、図4の(B)に示すように、カット23と配線21の接触部分にボイド24が成長する。ストレスマイグレーションは、熱応力の特異性(駆動力)によるvacancyの拡散によると考えられ、太い配線に小さな径のカットの組合せで発生し易い。
ストレスマイグレーションによる断線発生を回避するために、集積回路の配線設計を行う場合には、minimumCutルールと呼ばれるルールを設けている。具体的には、太い導体(ワイヤ(配線)、ビアメタル、端子)から一定距離の範囲内でビアを設けて異層間接続する場合には、通常使用される最小ビアを複数個設けるなどにより、最小ビアよりも冗長な接続を行う。図5は、minimumCutルールによる冗長ビアの例を説明する図である。太い導体(ワイヤ(配線)、ビアメタル、端子)41から細い配線42を伸ばし、別の層の配線43とカット45で接続する場合、太い導体41からカットまでの距離Dが所定距離より短い時には、配線43の端部にビアメタル拡張部44を設けて、カット46を追加し、冗長ビアを設ける。これによりストレスマイグレーションによる断線発生を低減できる。冗長ビアとは、カット部分を複数持つビア、あるいは通常の1カットビアを2つ以上並べた構造を意味する。
多層のLSI配線層構成では、通常下側の層が微細ピッチで上層にいくほど粗くなる。また、隣接配線同士の最小配線幅、配線トラックピッチは高々2倍程度の違いであるのが普通である。しかし、設計によっては、隣接層の標準配線幅が4倍違うような場合も生じる。そのような時には、連続3配線層間を接続するビアのカットサイズが上2層間と下2層間で4倍ほど違うことが起き、それに伴ってビアのカットを覆う蓋(=ビアメタル)のサイズにも4倍ほどギャップが生じる。
例えば、M1からM6の6層の配線層で構成するLSIを仮定し、M1からM5までの標準配線幅を1とした時に、M6の標準配線幅が4であると、仮定する。配線層間をつなぐビアのカット径は太幅配線層側に合わせて決めており、M5−M6間のカット径はM6の配線幅4と同じ程度の大きいカットで、M4−M5間が径の小さい幅1程度のカットで接続される状態となる。ここでM5に注目すると、標準幅1の配線と太い幅4の蓋(=ビアメタル)が連続の導体上に存在する形状となる。ここで、minimumCutルールの幅ギャップの閾値≧3、太幅位置からの制約適用範囲距離を無限大とすると、上記のような形状には冗長ビア制約が発生する。
特開平1−137373号公報 特開2003−197623 米国特許第6737351号
minimumCutルールは、従来の自動配線方式にも適用されている。自動配線方式は、ノードからノードへコスト(評価値)を伝播させる手順において、各ノードをどのような配線やビアで埋めて通過するか決めてノードの評価値を計算し、次へ進むが、minimumCutルールを適用する場合、大径ビアを使用したまたは太い導体に探索が到達して接続した時点になって、それ以前に最小ビアで経由して評価したノードが、本来冗長ビアで経由して評価しなければならなかったことが判明するということである。言い換えれば、既に処理が進められて確定したと考えられていた部分について十分でなく、「エラー」であることが判明するということである。従来の自動配線方式では、このようなエラーが生じた部分を自動で回復できるようになっておらず、経路コストを過小評価したまま探索を続けると、その区間の最小コスト経路が求まらず、相互の配線経路の最適化を進めることができない。
図1に戻ってこの問題点を説明する。図1では、始点ノード1から、第1層の配線4と、第2層の配線5と、第1層の配線6を経由して終点ノード2に至る第1の経路が、配線長が短く小さいコストの経路であるため、通常であれば選択される。第1の経路において、配線11と配線12を接続する部分17は標準ビアとして形成されたが、配線12と配線13を接続する部分18を太いビアとした場合、部分17は冗長ビアで形成するという制約が後で発生する。ここで、部分17を冗長ビアに変更できれば問題ないが、図1のように部分17に隣接して障害物3が存在する場合には、冗長ビアを割り込ませるとショートしてしまう。従来の自動配線方式では、このような状況だとしても、部分17通過時のコストを過小評価(ショートは考慮外)により、そのまま最小コスト経路として誤認定してしまう。このように、minimumCutルールを適用した場合には、冗長ビア作成箇所で配線エラーを生じるような本来選択されるべきでない第3の経路が残り、本来選択されるべき第1または第2の経路が選択されずに棄却されることになる。
本発明は、上記のような問題を解決するもので、設計を進めた後で判明する既に探索済みの経路の冗長ビアへの変更を容易に行え、冗長ビアへの変更が行われても経路の最適解が容易に得られる集積回路の配線経路探索方法、集積回路の配線設計装置およびプログラムの実現を目的とする。
上記目的を実現するため、本発明は、経路探索中の経由点では、最小ビアを使用してきたと仮定した時のコストと、冗長ビアを使用してきたと仮定した時のコストを両方保持することにより、過小評価状態を解消する。そして、経路探索中に大径ビアを使用した時は、もし直前に使用したビアが冗長でなければならないことが判明したならば、冗長ビアの使用を仮定した側の経路コストを採用する。これにより、通過ノードのコストは適正値で評価でき、過小値とならない。
図6は、本発明の集積回路の自動配線装置の構成を示すブロック図である。図6に示すように、本発明の集積回路の自動配線装置は、記憶装置50に記憶された設計ルール、配線指示およびコスト系列などに基づいて、始点ノードから終点ノードへの複数の配線経路についてそれぞれ評価値を計算する評価値計算回路51と、計算した評価値に基づいて、前記始点ノードから前記終点ノードへの配線経路を決定する決定回路52と、配線の線幅の差に応じて、使用するビアタイプを選択するビアタイプ選択回路53と、を備える集積回路の自動配線装置であって、前記評価値計算回路51は、ビアを設ける配線経路について、ビアを設けた以後の前記評価値を、異なるビアタイプを使用する場合の複数の前記評価値と同時に計算する、ことを特徴とする。
更に、ストレスマイグレーション(SM)対策の範囲を限定して設計効率をよくするために、太幅の導体から一定の道のりだけ離れれば、冗長ビア接続の制約対象外になるというルールを設けることがある。このルールに対処するには、探索時点の(現在の)着目ノードに伝播するまでに、最後に配線幅が変化したり、ビアで伝播したノードからの道のりでどれだけ離れたかの情報を保持するようにする。あるいは一定の道のりだけ離れたかどうか示すフラグを使用してもよい。
本発明によれば、経路探索中に大径ビアを使用した時には、minimumCutルールに該当する距離範囲内に冗長ビアコストでの評価が必要な箇所があるかどうかと、採用すべき評価値が決定できる。または、大径ビアから一定以上離れたことを示すフラグを各ノードが持つことにより、次の伝播先がビア発生を伴うノードである際に、冗長ビア制約の対象になるか否かが判明し、採用すべきコスト(評価値)が決定できる。
また、経路コストをこのように伝播させてターゲット(終点)ノードに到達したら、到達先のターゲットノードから逆に伝播元をたどって経路を作成していく。遡る際のノード間で、冗長ビア接続が必要な箇所をチェックしながら経路を作成すれば、minimumCutルールを守った最適配線経路が実現できる。
本発明によれば、ストレスマイグレーション(SM)による断線の発生を低減するminimumCutルールを守って、最適配線経路が得られる集積回路の配線経路探索方法、集積回路の配線設計装置およびプログラムが実現される。
本発明は、LSI設計CAD装置の形で実現され、CAD装置を利用しての本発明の集積回路の配線経路探索方法、本発明の方法を実行できるようにしたCAD装置、すなわち集積回路の配線設計装置や、本発明の設計方法を行うようにCAD装置にインストールされるプログラムを対象とする。
図7は、本発明の実施例の集積回路の配線経路探索処理の全体フローを示す図である。配線経路探索処理は、記憶装置101に記憶された設計ルール、配線指示、コスト系列などに基づいて行われる。ステップS10では、図2に示したようなコスト系列を設定し、図示のコスト計算式に基づいて経路探索のコストが計算される。ステップS11は、ステップS20−S25を有し、そこでは集積回路の全対象領域についての配線経路の探索が行われる。ステップS12では、ステップS11の探索結果に基づいてコスト系列が更新され、ステップS13ですべてのコスト系列について処理が終了したか判定され、終了するまでステップS11からS13が繰り返され、終了するとステップS14に進んで、処理結果である配線レイアウトを記憶装置102に記憶して処理を終了する。
ステップS20では、配線区間の始点ノードSと、終点(ターゲット)ノードTを選択する。ステップS21では、始点ノードSと終点ノードTの間が未結線であるか、またはSとTの間に設計ルール違反があるかを判定する。SとTの間が結線済みかつルール違反無しの場合には経路の変更の必要がないため、ステップS20にいって、次の配線対象区間の設定へと進む。S21でS20の設定区間が未結線判定となった場合はステップS22に進む。S21でS20の設定区間がルール違反ありの経路と判定された場合は、其の経路を一旦破棄してS22に進む。
ステップS22では、SとTの間の最小コストの経路を探索する。ステップS23では、探索方向とは逆方向に、Tから親ノードをたどってSに至る配線経路を作成する。ステップS24では、作成した配線経路を配線領域に登録する。ステップS25では、全区間について配線が終了したかを判定し、終了していなければステップS20に戻り、全区間についての配線が終了するまでステップS11を繰り返す。
本発明の実施例のフローは、ステップS22の最小コスト経路探索処理が従来例と異なり、他の処理は従来例とほぼ同じである。
本発明の実施例のフローにおけるステップS22の最小コスト経路探索処理を説明する前に、比較のために従来例の最小コスト経路探索処理を説明する。
図8は、従来例の最小コスト経路探索処理を示すフローチャートである。ステップSP30では探索ノードの初期化を行い、ステップSP31では始点Sを探索リストMに入れる。これにより、始点ノードSから伸びる経路を記憶するメモリ領域が確保され、親ノード(Pノード)に対する子ノードの形でつながる経路情報が生成できるようになる。ステップSP32ではMが空(I02)であるか判定する。Mが空であれば、探索は終了なのでステップSP48に進んで探索を終了する。Mが空でなければステップSP33に進んで、リストMにある最小ラベル値(L)のノードPを1つ取り出す。前述のように、始点ノードSから複数の経路が伸ばされ、それぞれの経路の先端がノードPであり、各ノードPにはコストに関係するラベル値Lが設定されており、最小ラベル値のPが取り出される。ラベル値は経路が伸びるに従って増加するので、最小ラベル値のノードPを選択することにより、各経路が順次選択されることになる。ステップSP34では、PがNULLでなく(Pが存在し)且つラベル値Lが目標(ターゲット)ラベル以下であるかを判定する。これによりノードTのラベル値以上にコストの大きな経路探索が回避される。もしPがNULLもしくはPのラベル値LがターゲットノードTのラベルより大きい時には、それ以上の探索は必要ないのでステップSP48に進んで探索を終了し、それ以外の時には、ステップSP35に進む。
ステップSP35では、ノードPから伸びることが可能なノードでMに未登録のNiを1つ選択する。ノードPから伸びることが可能なノードは、ノードPに対して主方向または従方向に離れた位置にあるノードか、ビアを介して異なる層にあるノードPと同じ平面位置のノードである。なお、これらを組み合わせて、主方向にある距離進んで従方向にある距離進んだノードも選択可能とする。ここでは、ノードPから伸びることが可能なノードをPの隣接ノードと称する。ステップSP36では、NiがNULLであるか、すなわち選択できる隣接ノードがないかを判定し、NiがNULLであればステップSP32に戻り、NiがNULLでなければステップSP37に進む。
ステップSP37では、ノードNiとノードPが同層であるか判定し、同層の場合にはステップSP38に進み、異なる層の場合にはステップSP40に進む。ステップSP38で同じ層内を伝播する時のコストCliを計算し、ステップSP39でノードPまでのラベル値LにCliを加えて、その経路がノードNiに到達した時点でのラベル値(現ラベル)を計算し、ステップSP42に進む。
ステップSP40では、ビアを経由して異層間を伝播するので、ビア伝播コストCviを計算し、ステップSP41でノードPまでのラベル値LにCviを加えて、その経路がノードNiに到達した時点でのラベル値(現ラベル)を計算し、ステップSP42に進む。
ステップSP42では、現ラベルがNiで予定されたラベルの閾値NiLより小さいかを判定し、閾値NiLより小さければステップSP43に進み、閾値NiL以上であれば、そのような経路を選択するのは好ましくなく、それ以上経路探索を行う必要はないので、ステップSP35に戻る。ここで、閾値NiLとは、ノードNiのラベル初期値(∞)もしくは別の伝播経路が先にNiを通過したときに付けたラベル値のこと。
ステップSP43では、Niまで到達した経路のラベル値を現ラベルに更新し、ステップSP44でNiの親ノードをPに更新する。ステップSP45では、現ノードNiがターゲットノードTであるかを判定し、TでなければステップSP46に進んでノードNiを探索リストMに追加してステップSP35に戻り、NiがターゲットノードTになるまでステップSP35からSP46を繰り返す。NiがTであれば、経路探索は終点ノードTに到達したことを意味するので、ステップSP47でターゲットノードTのラベル値を更新し、再びSP35に戻る。Pの隣接ノードのうち、Mに登録されていないものが存在すれば、SP35でNiとして伝播候補にし、SP37の判定に進むが、NiがNULLのときにはSP32、SP33と進み新たな伝播の起点になるノードPを取り出す。このとき、ノードPの取り出し条件として、前出のターゲットTに先に到達したときのラベル値より小さいラベル値のノードであることを要求するので、其の条件に合うノードが探索リストMにもうないならばSP34で否決されてSP48へ行き、探索終了となる。以上の処理により、コストを計算しながらいろいろな経路が伸ばされ、最小コストの経路がターゲットノードTに到達するので、コストが最小になる経路が決定される。
以上説明した従来の最小コスト経路探索処理では、ビアを経由する場合のコストはステップSP40およびSP41で計算されるが、冗長ビアについては考慮されていなかった。
図9から図12は、本発明の実施例のステップS22の最小コスト経路探索処理を示すフローチャートである。図8に示した従来の処理と特に異なるのは、ノードNiとノードPが異なる層のノードであると判定された後の処理である。
ステップS30では、探索ノードの初期化を行う。図13は、初期化処理を説明する図である。初期化処理では、すべての探索ノードNiの構造体メンバについて、属性STF、ラベル値L1、L2、線幅W、道のりCDを初期値に設定する。実施例では、標準ビアを使用する場合と冗長ビアを使用する場合のために、2つのラベル値が使用される。具体的には、Niが始点ノード1につながる導体上にあれば、STFを始点を示す値”S”に、L1とL2を0に設定し、その上で標準線幅より太い導体上であればWを太い幅に、CDを0に設定し、標準線幅の導体上であればWを標準線幅に、CDを太いところからの道のりに設定する。Niが終点ノード2につながる導体上にあれば、STFをターゲット(終点)を示す値”T”に、L1とL2を最大値に設定し、その上で標準線幅より太い導体上であればWを太い幅に、CDを0に設定し、標準線幅の導体上であればWを標準線幅に、CDを太いところからの道のりに設定する。Niが始点ノード1の導体および終点ノード2の導体のいずれの上にもない場合には、STFをデフォルト値に、L1とL2を最大値に設定し、Wをその層の標準配線幅に、CD(NiCD)を0に設定する。
ステップS31では始点Sを探索リストMに入れる。これにより、始点Sから伸びる経路を記憶するための記憶領域が確保され、親ノード(Pノード)に対する子ノードの形でつながる経路情報が生成できるようになる。子ノードは、親ノードPに隣接するノードである。経路情報には、各経路のラベル値Lも合わせて記憶され、本実施例では標準ビアを使用する場合のラベル値L1と、冗長ビアを使用する場合のラベル値L2の2つが記憶される。
ステップS32ではMが空であるか判定する。Mが空であればステップSP45に進んで探索を終了し、Mが空でなければステップS33に進む。ステップS33では、リストMにある最小ラベル値(L)のノードPを1つ取り出す。ステップS34では、PがNULLでなく(Pが存在し)且つラベル値Lが目標(ターゲット)ラベル以下であるかを判定し、もしPがNULLで且つラベル値Lがターゲットラベルより大きい時には、それ以上の探索は必要ないのでステップS45に進んで探索を終了し、それ以外の時には、ステップS35に進む。ステップS35では、ノードPの隣接ノードで、Mに未登録のNiを1つ選択する。ステップS36では、NiがNULLであるかを判定し、NiがNULLであればステップS32に戻り、NiがNULLでなければステップS37に進む。
以上のステップS30からS36は、ラベル値として標準ビアを使用する場合のラベル値L1と、冗長ビアを使用する場合のラベル値L2の2つが使用される点を除けば、図8の従来のステップSP30からSP36とほぼ同じ処理内容である。
ステップS37では、ノードNiとノードPが同層であるか判定し、同層の場合にはステップS38に進み、異なる層の場合にはステップS50に進む。
ステップS38では、同じ層内を伝播する時のコストCliを計算する。この計算は、ノードPとノードNi間の主方向距離aと従方向距離bを求め、ノードPとノードNi間を標準配線幅で接続すると仮定した時に発生する配線ルール違反数eをカウントし、図2に示したコスト計算式に基づく次の式で計算される。
Cli=a×Dm+b×Ds+e×Ecost
ステップS39では、ノードPまでのラベル値L1とL2にCliをそれぞれ加えて、その経路がノードNiに到達した時点でのラベル値(現ラベル)L1とL2を計算する。そして、ノードNiがターゲットノードTに到達し、かつノードNiの配線幅と標準配線幅の差が冗長ビア制約を受ける配線幅差の所定の閾値ΔWthより大きく、かつ配線幅が太い部分から細い部分に変化する位置までの道のりが冗長ビア制約を受ける道のりの所定の閾値Dthより小さい場合に、ノードPのラベル値としてL2(冗長ビアラベル値)を採用し、それ以外であればノードPのラベル値としてL1(標準ビアラベル値)を採用する。
ステップS40では、現ラベルがNiで予定されたラベルの閾値NiL1とNiL2のいずれよりも小さいかを判定し、小さければステップS41に進み、大きければそれ以上経路探索を行う必要はないので、ステップS35に戻る。
ステップS41では、Niのラベル値を現ラベルに更新し、ステップS42でNiの親ノードをPに更新する。ステップS43では、NiがターゲットノードTであるかを判定し、Tでなければ図10のステップS60に進み、NiがTであれば、経路探索は終点ノードTに到達したことを意味するので、目標ラベル値をNiのラベル値L1,L2の小さい方で更新する。また、このときのNiは複数あるターゲットノード(STF==Tの属性を持つ)のうち、最小ラベルが伝播したノードとして記憶し、S35に戻る。ここで記憶したノードはS90におけるcNに相当する。
図10のステップS60では、ノードPとノードNiの道のり(距離)Dを計算する。ステップS61では、ノードNiの情報であるW(配線幅)、CD(太い部分からの道のり(距離))を更新する。具体的には、ノードPまでの道のりにノードPからノードNiまでの道のりを加えてCDを算出する。また、計算したCD(ノードNiまでの道のり)が閾値Dthより大きければ、ノードNiの配線幅を、ノードNiの設けられる層の標準配線幅とし、そうでなければノードPの配線幅とする。
ステップS62では、ノードNiを探索リストMに追加して(ラベルが伝播したノードとして記憶して)、ステップS35に戻る。ノードNiの探索リストMへの追加は、始点Sの追加と同じである。
ステップS37でノードNiとノードPが異なる層のノードであると判定された時には、図11に示すステップS50に進む。ステップS50では、冗長ビアルールを考慮してノードPのラベル値Lを決定する。図14は、ステップS50におけるラベル値Lの決定処理を示すフローチャートであり、図15はビアタイプの決定処理を説明する図である。ステップS80では、ノードPとノードNi間に使用する標準ビアの、ノードPを設けた層側のビアメタル幅Vwを求める。ステップS82では、VwとノードPが設けられる層の標準配線幅Pwとの差が所定の閾値ΔWthより大きく、かつノードPを含む配線長PCDが所定の閾値Dth以下であるか、を判定する。この条件を満たす場合には、ステップS83に進み、ノードPのラベル値LとしてL2の値を採用し、この条件を満たさない場合には、ステップS84に進み、ノードPのラベル値LとしてL1の値を採用する。図15の(A)は、ノードPを含む配線長PCDが所定の閾値Dtより大きいために、この条件を満たさない場合を示し、ノードPを含む経路と前の層とのビアとして標準ビアが使用される。一方、図15の(B)はこの条件を満たす場合を示し、ノードPを含む経路と前の層とのビアとして冗長ビアが使用される。
ステップS51では、ノードPとノードNi間に標準ビアを使用したと仮定した時の違反コストNVeと、ノードPとノードNi間に冗長ビアを使用したと仮定した時の違反コストRVeと、を計算する。具体的には、標準ビアを使用したと仮定した時に発生するエラー数enと、冗長ビアを使用したと仮定した時に発生するエラー数erと、をカウントし、次の式に従ってNVeとRVeとを計算する。
NVe=en×Ecost
RVe=er×Ecost
ステップS52では、ノードPとノードNi間のビアタイプを決定し、ビア伝播コストCvi1とCvi2を計算する。具体的には、ノードNi側の配線幅Wnを、ノードNiがターゲットノードであれば、既に説明した図9のS30の初期化処理で設定したターゲットノードの幅Wとし、そうでなければNiの存在する層の標準配線幅NWとする。その上で、ノードP側の配線幅PWがWn以下でその差が閾値ΔWth以上で、かつノードNi側のビアメタルの最小幅VnがノードPの幅以下であるかまたはWnとVnの差が閾値ΔWth以上の時、冗長ビアを使用する。
また、ノードP側の配線幅PWがWnより大きく、かつその差が閾値ΔWth以上かつ標準ビアのP層側ビアメタルの最小幅VpがWn以下のときと、PWとVpの差がΔWth以上のときには冗長ビアを使用する。
それ以外は標準ビアを使用する。
更に、ビア伝播コストCvi1とCvi2は、冗長ビアを使用する場合には、Cvi1は冗長ビアコストと冗長ビアを使用することによる違反コストの和であり、Cvi2はCvi1と同じであり、標準ビアを使用する場合には、Cvi1は標準ビアコストと標準ビアを使用することによる違反コストの和であり、Cvi2は冗長ビアコストと冗長ビアを使用することによる違反コストの和である。
ステップS53では、ノードPまでのラベル値LにCvi1とCvi2の小さい方の値を加えて、その経路がノードNiに到達した時点でのラベル値(現ラベル)を計算し、ステップS54に進む。
ステップS54では、現ラベルがNiのラベル初期値か別の経路で伝播したときにつけられた既存のラベル値であるNiL1とNiL2の小さい方より小さいかを判定し、小さければステップS55に進み、大きければNiに伝播する必要はないのでステップS35に戻る。
ステップS55では、Niまで到達した経路のラベル値L1とL2を現ラベルに更新し、ステップS56でNiの親ノードをPに更新する。ステップS57では、いまPからラベル伝播したNiがターゲットノードTであるかを判定し、Tでなければ図12のステップS70に進み、NiがTであれば、経路探索は終点ノードTに到達したことを意味するので、ステップS44へ進む。
図12のステップS70では、ノードPとノードNi間のビアタイプを記録し、ステップS71では、ノードNiとビア方向に伝播したところからの道のりNiCDを更新する(0にする)。PからNiのところでビア方向に伝播しているので道のりは0である。ステップS72では、ノードPとノードNi間で標準ビアとして使用するビアのノードNiのある層側のビアメタル最小幅Vwを求める。
ステップS73では、ノードNiのある層の標準配線幅NWとVwを比較して、太い方をノードNiの配線幅として記録する。
ステップS74では、ノードNiを探索リストMに追加して(ラベルが伝播したノードとして記憶して)、ステップS35に戻る。ノードNiの探索リストMへの追加は、始点Sの追加と同じである。
以上、実施例における最小コスト経路探索処理について説明したが、上記のような最小コスト経路探索処理により得られた最小コスト経路情報に基づいて図7のステップS23で、ターゲットノードTから親ノードPを順番にたどって始点Sに至る配線経路を形成する処理を行う。図16は、この処理を示すフローチャートである。
探索経路がターゲットノードTに到達した時のノードをcNとする。ステップS90では、現在のノード位置cNの配線幅を現配線幅として記録し、標準配線幅と異なる位置からの道のりをCDとして記録する。
ステップS91では、ノードcNがNULLでなく、かつノードcNの親ノードpNがNULLでないかを判定し、一方でもNULLであれば終了し、両方共NULLでなければステップS92に進む。
ステップS92では、ノードcNと親ノードpNが同層であるか異なる層であるかにより処理が異なる。同層であれば、ノードcNから親ノードpNまでの同層経路を作成し、ノードcNと親ノードpN間の道のりをCDに加算し、CDが冗長制約の範囲を超えたら、現配線幅を標準配線幅に更新する。cNとpNが異なる層である場合には、cNに冗長ビア接続確定のマークがあるかを判定し、あれば冗長ビアを使用する。そのようなマークがなければ、cNとpNの間の標準ビアのcN側のビアメタル幅Vcと現配線幅のギャップ(差)を求めてΔWとし、ΔWが冗長ビアルール閾値ΔWth以上で現配線幅がビアメタル幅Vc以上であるか判定し、この条件を満たせば冗長ビアを作成し、それ以外であれば標準ビアを作成する。そして、作成したビアのノードpNの層の側の幅と、pNの層の標準配線幅を比較して、太い方を現配線幅として記録し、CDを0にするように更新する。
ステップS93では、ノードpNが始点ノードであるか判定して、始点ノードでなければステップS94に進んでcNをpNに更新してステップS91に戻る。ノードpNが始点ノードであれば終了する。
本発明は、多層集積回路の最小コスト経路探索処理を自動で行う方法、それを実現するコンピュータープログラムを記録した媒体、およびそのプログラムを動作させるコンピューター装置に適用される。
図1はレイアウト処理例を示す図である。 図2は最小コスト経路探索処理におけるコスト系列とコスト計算式を説明する図である。 図3は最小コスト経路探索を説明する図である。 図4はストレスマイグレーションを説明する図である。 図5は冗長ビアの設定を説明する図である。 図6は本発明の集積回路の自動配線装置の構成を示すブロック図である。 図7は本発明の実施例の自動配線処理の全体フローである。 図8は従来の最小コスト経路探索処理フローである。 図9は本発明の実施例の最小コスト経路探索処理フローである(その1)。 図10は本発明の実施例の最小コスト経路探索処理フローである(その2)。 図11は本発明の実施例の最小コスト経路探索処理フローである(その3)。 図12は本発明の実施例の最小コスト経路探索処理フローである(その4)。 図13は初期化処理を説明する図である。 図14はラベル決定処理フローである。 図15はビアタイプ決定処理を説明する図である。 図16はターゲットノードから親ノードをたどって始点ノードに至る配線経路を作成する処理フローである。
符号の説明
1 始点
2 終点(ターゲット)
3 障害物
4−16 配線
50 記憶装置
51 評価値計算回路
52 決定回路
53 ビアタイプ選択回路

Claims (10)

  1. コンピュータによる集積回路の配線経路探索方法であって、
    ビアタイプ選択部が、配線の線幅の差に応じて、使用するビアタイプを選択し、
    評価値計算部が、始点ノードから終点ノードへの複数の配線経路についてそれぞれ評価値を計算し、
    決定部が、計算した評価値に基づいて、前記始点ノードから前記終点ノードへの配線経路を決定する集積回路の配線経路探索方法において
    前記評価値計算部が、ビアを設ける配線経路について、ビアから終点ノードへの配線経路において異なるビアタイプを使用する場合の複数の前記評価値を計算して保持し、
    前記決定部が、保持した前記複数の評価値のうちから、minimumCutルールを満たすビアタイプを決定する、ことを特徴とする集積回路の配線経路探索方法。
  2. 前記ビアタイプ選択部が、ビアからの配線幅の変化点までの距離および配線幅の変化量に応じて、前記ビアタイプを選択する請求項1に記載の集積回路の配線経路探索方法。
  3. 前記決定部が、ビアから終点ノードへの配線経路において配線幅が一定である配線長が所定値を超えた時には、前記ビアのビアタイプを決定する請求項2に記載の集積回路の配線経路探索方法。
  4. 前記ビアタイプ選択部が、ビアの大きさ及び冗長ビア数に応じて複数の異なるビアタイプが選択る請求項1に記載の集積回路の配線経路探索方法。
  5. 始点ノードから終点ノードへの複数の配線経路についてそれぞれ評価値を計算する評価値計算回路と、
    計算した評価値に基づいて、前記始点ノードから前記終点ノードへの配線経路を決定する決定回路と、
    配線の線幅の差に応じて、使用するビアタイプを選択するビアタイプ選択回路と、を備える集積回路の自動配線装置であって、
    前記評価値計算回路は、ビアを設ける配線経路について、ビアから終点ノードへの配線経路において異なるビアタイプを使用する場合の複数の前記評価値を計算して保持し、
    前記決定回路が、保持した前記複数の評価値のうちから、minimumCutルールを満たすビアタイプを決定する、ことを特徴とする集積回路の自動配線装置。
  6. 前記ビアタイプ選択回路は、ビアからの配線幅の変化点までの距離および配線幅の変化量に応じて、前記ビアタイプを選択する請求項5に記載の集積回路の自動配線装置。
  7. 前記決定回路は、ビアから終点ノードへの配線経路において配線幅が一定である配線長が所定値を超えた時には、前記ビアのビアタイプを決定する請求項6に記載の集積回路の自動配線装置。
  8. 配線の線幅の差に応じて、使用するビアタイプを変える集積回路の配線設計装置を動作させるプログラムであって、
    評価値計算部が、始点ノードから終点ノードへの複数の配線経路についてそれぞれ評価値を計算し、
    決定部が、計算した評価値に基づいて、前記始点ノードから前記終点ノードへの配線経路を決定し、
    前記評価値計算部が、ビアを設ける配線経路について、ビアを設けた以後の前記評価値を、異なるビアタイプを使用する場合の複数の前記評価値を計算して保持し、
    前記決定部が、保持した前記複数の評価値のうちから、minimumCutルールを満たすビアタイプを決定するように動作させる、ことを特徴とするプログラム。
  9. ビアタイプ選択部が、ビアからの配線幅の変化点までの距離および配線幅の変化量に応じて、前記ビアタイプを選択するように動作させる請求項8に記載のプログラム。
  10. 前記決定部が、ビアから終点ノードへの配線経路において配線幅が一定である配線長が所定値を超えた時には、前記ビアのビアタイプを決定する請求項9に記載のプログラム。
JP2007045916A 2007-02-26 2007-02-26 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム Expired - Fee Related JP4871168B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007045916A JP4871168B2 (ja) 2007-02-26 2007-02-26 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム
US12/068,034 US7765510B2 (en) 2007-02-26 2008-01-31 Method of searching for wiring route including vias in integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007045916A JP4871168B2 (ja) 2007-02-26 2007-02-26 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2008210131A JP2008210131A (ja) 2008-09-11
JP4871168B2 true JP4871168B2 (ja) 2012-02-08

Family

ID=39717381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007045916A Expired - Fee Related JP4871168B2 (ja) 2007-02-26 2007-02-26 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム

Country Status (2)

Country Link
US (1) US7765510B2 (ja)
JP (1) JP4871168B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5251639B2 (ja) * 2009-03-16 2013-07-31 富士通セミコンダクター株式会社 半導体装置の設計検証装置
CN103093060B (zh) * 2013-01-25 2015-07-15 西安电子科技大学 基于短路关键面积约束的版图冗余通孔插入方法
US10354045B2 (en) * 2017-06-16 2019-07-16 Globalfoundries Inc. Modeling 3D physical connectivity into planar 2D domain to identify via redundancy
US10552567B2 (en) * 2018-01-17 2020-02-04 Globalfoundries Inc. Automated redesign of integrated circuits using relaxed spacing rules
US11430779B2 (en) 2019-11-04 2022-08-30 Samsung Electronics Co., Ltd. Semiconductor device and method of fabricating the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642256B2 (ja) 1987-11-25 1994-06-01 富士通株式会社 自動配線方式
US5500804A (en) * 1993-12-08 1996-03-19 International Business Machines Corporation Method to optimize the wiring of multiple wiring media packages
US5831867A (en) * 1996-06-24 1998-11-03 Sun Microsystems, Inc. Method and system for automated electromigration verification in accordance with fabrication process rules
JP3790469B2 (ja) 2001-12-21 2006-06-28 富士通株式会社 半導体装置
US6737351B2 (en) * 2001-12-28 2004-05-18 Texas Instruments Incorporated Versatile system for diffusion limiting void formation
JP4287294B2 (ja) * 2004-01-21 2009-07-01 株式会社東芝 自動設計方法、自動設計装置、及び半導体集積回路
US7373628B1 (en) * 2004-06-01 2008-05-13 Pulsic Limited Method of automatically routing nets using a Steiner tree
JP2006065403A (ja) * 2004-08-24 2006-03-09 Toshiba Corp 自動設計方法、自動設計プログラム及び半導体集積回路
JP4768251B2 (ja) * 2004-11-01 2011-09-07 株式会社東芝 半導体集積回路の設計方法、半導体集積回路の設計システム及び半導体集積回路の製造方法
JP4154384B2 (ja) * 2004-11-08 2008-09-24 松下電器産業株式会社 半導体装置の設計方法
US7464348B1 (en) * 2005-09-30 2008-12-09 Cadence Design Systems, Inc. Method and system for mapping source elements to destination elements as interconnect routing assignments
JP2007164536A (ja) * 2005-12-14 2007-06-28 Toshiba Corp 半導体集積回路の設計支援システム、半導体集積回路の設計方法、半導体集積回路の設計支援プログラム及び半導体集積回路の製造方法
US7302662B2 (en) * 2006-03-28 2007-11-27 National Tsing Hua University Method for post-routing redundant via insertion in integrated circuit layout
US7574685B1 (en) * 2006-04-24 2009-08-11 Cadence Design Systems, Inc. Method, system, and article of manufacture for reducing via failures in an integrated circuit design

Also Published As

Publication number Publication date
US7765510B2 (en) 2010-07-27
JP2008210131A (ja) 2008-09-11
US20080209384A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
JP4871168B2 (ja) 集積回路の配線経路探索方法、集積回路の自動配線装置およびプログラム
JP4303280B2 (ja) 半導体集積回路のレイアウト方法、レイアウトプログラム
JP4398989B2 (ja) 三次元集積回路設計方法及び三次元集積回路設計装置
US9035361B2 (en) Electromigration resistant standard cell device
US20090178013A1 (en) System for implementing post-silicon ic design changes
CN111581908B (zh) 一种提升芯片硬宏供电可靠性的方法
JPH10270563A (ja) 集積回路の自動概略配線方法
JP2012048702A (ja) 半導体装置の設計装置、半導体装置の設計方法、及び半導体装置
US7216325B2 (en) Semiconductor device, routing method and manufacturing method of semiconductor device
US20130125078A1 (en) Interactive Routing Editor with Symbolic and Geometric Views for Integrated Circuit Layout
TWI718245B (zh) 積體電路、製造其的電腦實施方法以及定義其的標準元件
US6807657B2 (en) Inter-signal proximity verification in an integrated circuit
US20220343052A1 (en) Routing of superconducting wires
TWI437456B (zh) 連線拓樸設計方法
CN116776815A (zh) 基于整数线性规划的超大规模集成电路布线方法
US8072078B2 (en) Semiconductor device and dummy pattern arrangement method
JP4803078B2 (ja) 半導体集積回路のレイアウト設計方法およびレイアウト設計用プログラム
Bubna et al. A layout-aware physical design method for constructing feasible QCA circuits
JP6028516B2 (ja) マスクパターンの製造方法
JP3017131B2 (ja) 半導体集積回路のレイアウト方法
JP5187217B2 (ja) 半導体レイアウトシステム、方法、及び、プログラム
JP2009038240A (ja) 半導体集積回路装置の配置配線方法
JP2005026390A (ja) 半導体集積回路装置の信号配線接続方法、信号配線接続システム、および半導体集積回路装置の製造方法
Chang et al. X-Route: An X-architecture full-chip multilevel router
JP2004157627A (ja) 配置配線プログラムおよび半導体装置の製造方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110802

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

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

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

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees