JP4186890B2 - 半導体集積回路の素子配置システム、素子配置方法、及びプログラム - Google Patents

半導体集積回路の素子配置システム、素子配置方法、及びプログラム Download PDF

Info

Publication number
JP4186890B2
JP4186890B2 JP2004206324A JP2004206324A JP4186890B2 JP 4186890 B2 JP4186890 B2 JP 4186890B2 JP 2004206324 A JP2004206324 A JP 2004206324A JP 2004206324 A JP2004206324 A JP 2004206324A JP 4186890 B2 JP4186890 B2 JP 4186890B2
Authority
JP
Japan
Prior art keywords
placement
wiring
designated
capacitor
logic element
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
JP2004206324A
Other languages
English (en)
Other versions
JP2006031174A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2004206324A priority Critical patent/JP4186890B2/ja
Priority to EP05014767A priority patent/EP1617346A3/en
Priority to US11/178,351 priority patent/US7363597B2/en
Priority to KR1020050062684A priority patent/KR20060050072A/ko
Publication of JP2006031174A publication Critical patent/JP2006031174A/ja
Priority to US11/972,295 priority patent/US20080189668A1/en
Application granted granted Critical
Publication of JP4186890B2 publication Critical patent/JP4186890B2/ja
Priority to US12/817,908 priority patent/US20100257500A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body

Landscapes

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

Description

本発明は半導体集積回路、半導体集積回路の素子配置方法、及びプログラムに関し、特に、LSI設計用CADの配置設計におけてノイズの影響を抑えるためのオンチップキャパシタを配置する技術に関する。
半導体集積回路(LSIともいう)の設計ではファンクションブロックと呼ばれるNAND回路やNOR回路やInverter回路等の基本的な動作を行う小さな回路を、コンピュータのプログラム上で作成対象のLSIの中に配置し、その間の配線の接続を行うことによって、半導体上で製造に使用するマスクの基礎となるデータを作成する。この過程を配置配線処理と呼ぶ。
配置配線処理は、大きく分けて、配線プログラムと配置プログラムによって実行される。従来の配置プログラムは配線による遅延と面積を目標値内に入れることを目的として配置を行っている。
ところが、近年超高速のLSIではファンクションブロックが動作することに伴うノイズの発生が問題になっている。ノイズの影響を抑えるためにはLSI内部の空き地にオンチップキャパシタを配置することが有効である。オンチップキャパシタとは、LSI内部にPN接合容量やゲート容量を利用した蓄電器であるキャパシタ(コンデンサともいう)のことである。
LSI設計におけるオンチップキャパシタの配置方法が特開平11−168177号公報の発明(図1、図2)に示されている。この発明で生成されたオンチップキャパシタは、遅延制約のみで決定された配置結果の隙間に配置されているが、ノイズを発生するファンクションブロックやノイズに弱いファンクションブロックに配慮した配置はしていない。
特開平11−168177号公報(図1、図2)
オンチップキャパシタは、ノイズの発生源の近傍やノイズに弱いファンクションブロックの近傍に配置するほどその効果が高いが、従来の配置プログラムはノイズの発生をまったく考慮していないため、ノイズの発生源やノイズに弱いファンクションブロックの近傍に効果的にオンチップキャパシタを配置することができなかった。
また、この特許文献1の発明では配置対象のエリアに対するファンクションブロックの敷き詰め度合いが高まるにつれ、非常に小さな空き地がファンクションブロック間に散在するようになる。オンチップキャパシタはある程度の幅の空き地を必要とするため、小さな空き地が散在するような環境では、効果的にオンチップキャパシタが配置されにくくなる。
本発明の目的は、予めオンチップキャパシタを近傍に配置したいファンクションブロックを指定し、その近辺に散在する小さな空き地を配置したいファンクションブロックの近傍に移動・合成することにより、オンチップキャパシタをより効果的に配置できるようにした半導体集積回路、半導体集積回路の素子配置方法、及びプログラムを提供することにある。
本発明の第1の素子配置システムは、配置する論理素子に関する素子情報と論理素子を配置可能な領域の領域情報を含む配置情報と配線を実行するために必要な配線情報とを記憶する配置配線用ライブラリと、近傍にキャパシタを配置するように指定された論理素子である指定論理素子に関する指定素子情報を記憶する配置改良用ライブラリと、論理素子間の接続データを含む入力データと前記配置配線用ライブラリに記憶された前記配置情報とに従って論理素子の配置を実行する配置部と、前記配置部による配置結果に対して配置改良用ライブラリに記憶された指定論理素子の近傍に空き地を集めるように指定論理素子以外の論理素子を移動する配置改良部と、前記配置改良部による配置改良後の論理素子に対して前記入力データに基づいて配線を実行する配線部と、前記集められた空き地にキャパシタを配置するキャパシタ発生部とを有することを特徴とする。
本発明の第2の素子配置システムは、本発明の第1の素子配置システムにおいて、前記配置改良部は、指定論理素子以外の論理素子の移動の後に、さらに空き地を集めるために指定論理素子を移動することを特徴とする。
本発明の第3の素子配置システムは、本発明の第1又は第2の素子配置システムにおいて、前記配置改良用ライブラリに記憶される指定素子情報は、指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみにみに配置すべきか或いは両方の側に配置すべきかを指定する配置側情報とを有し、前記配置改良部は前記配置側情報に従って指定論理素子の一方又は両方の側に空き地を集めることを特徴とする。
本発明の第4の素子配置システムは、本発明の第1、第2、又は第3の素子配置システムにおいて、前記配線部による配線結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行する配置追加部を有し、
配置追加部による論理素子の追加又は変更後に、前記配置改良部は追加又は変更された論理素子に対して移動を実行し、配線部は論理素子の追加又は変更により再配線が必要となった部分の配線をすることを特徴とする。
本発明の第5の素子配置システムは、本発明の第1、第2、第3、又は第4の素子配置システムにおいて、前記キャパシタは大きさの異なる複数のキャパシタを有し、前記キャパシタ発生部はキャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする。
本発明の第6の素子配置システムは、本発明の第1、第2、第3、第4、又は第5の素子配置システムにおいて、前記論理素子は半導体集積回路に実装する基本的な動作を行う小さな回路であるファンクションブロックであることを特徴とする。
本発明の第1の素子配置方法は、半導体集積回路に実装する論理素子の配置処理の後に、論理素子の中で近傍にキャパシタを配置すべきであることを予め指定された各指定論理素子に対して、配置された指定論理素子の近傍に配置された指定論理素子以外の論理素子を移動して指定論理素子の近傍に空き地を集め、集めた空き地にキャパシタを配置することを特徴とする。
本発明の第2の素子配置方法は、本発明の第1の素子配置方法において、前記指定論理素子以外の論理素子を移動した後に、さらに空き地を集めるために指定論理素子を移動することを特徴とする。
本発明の第3の素子配置方法は、配置する論理素子に関する情報と論理素子を配置可能な領域の情報を含む配置情報と配線を実行するために必要な配線情報とを記憶する配置配線用ライブラリと、論理素子の中で近傍にキャパシタを配置するように指定された指定論理素子に関する指定素子情報を記憶する配置改良用ライブラリとを有し、
論理素子間の接続データを含む入力データと前記配置配線用ライブラリに記憶された前記配置情報とに従って論理素子の配置を実行し、前記配置実行の結果に対して配置改良用ライブラリに記憶された指定論理素子が配置された近傍に空き地を集めるように指定論理素子以外の論理素子を移動し、前記移動後の各論理素子に対して前記入力データに基づいて配線を実行し、前記集められた空き地にキャパシタを配置することを特徴とする。
本発明の第4の素子配置方法は、本発明の第3の素子配置方法において、前記指定論理素子以外の論理素子の移動の後に、さらに空き地を集めるために指定論理素子を移動することを特徴とする。
本発明の第5の素子配置方法は、本発明の第3又は第4の素子配置方法において、前記配置改良用ライブラリに記憶される指定素子情報は、指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみに配置するか或いは両方の側に配置するかを指定する配置側情報とを有し、前記配置側情報に従って指定論理素子の一方又は両方の側に空き地を集めるように指定論理素子或いはそれ以外の論理素子を移動することを特徴とする。
本発明の第6の素子配置方法は、本発明の第3、第4、又は第5の素子配置方法において、前記配線した結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行し、
前記論理素子の追加又は変更後に、追加又は変更された論理素子に対して指定論理素子が配置された近傍に空き地を集めるように移動し、前記配線結果に対して論理素子の追加又は変更により再配線が必要となった部分の配線をすることを特徴とする。
本発明の第7の素子配置方法は、本発明の第3、第4、第5、又は第6の素子配置方法において、前記キャパシタは大きさの異なる複数のキャパシタを有し、前記集められた空き地にキャパシタを配置する際にキャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする。
本発明の第8の素子配置方法は、本発明の第3、第4、第5、第6、又は第7の素子配置方法において、前記論理素子は半導体集積回路に実装する基本的な動作を行う小さな回路であるファンクションブロックであることを特徴とする。
本発明の第1のプログラムは、論理素子間の接続データを含む入力データと配置配線用ライブラリに記憶された配置する論理素子に関する情報と論理素子を配置可能な領域の情報を含む配置情報とに従って論理素子の配置を実行する手順と、前記配置実行の結果に対して論理素子の中で近傍にキャパシタを配置するように指定された指定論理素子に関する指定素子情報を記憶する配置改良用ライブラリを参照して指定論理素子が配置された近傍に空き地を集めるように指定論理素子以外の論理素子を移動する手順と、前記移動後の各論理素子に対して前記入力データと配置配線用ライブラリに記憶された配線を実行するために必要な配線情報に基づいて配線を実行する手順と、前記集められた空き地にキャパシタを配置する手順をコンピュータに実行させる。
本発明の第2のプログラムは、本発明の第1のプログラムにおいて、前記指定論理素子以外の論理素子を移動する手順において、前記指定論理素子以外の論理素子を移動した後に、さらに空き地を集めるために指定論理素子を移動する手順を有することを特徴とする。
本発明の第3のプログラムは、本発明の第1又は第2のプログラムにおいて、前記配置改良用ライブラリに記憶される指定素子情報は、指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみに配置するか或いは両方の側に配置するかを指定する配置側情報とを有し、前記論理素子を移動する手順において、前記配置側情報に従って指定論理素子の一方又は両方の側に空き地を集めるように指定論理素子或いはそれ以外の論理素子を移動することを特徴とする。
本発明の第4のプログラムは、本発明の第1、第2、又は第3のプログラムにおいて、前記配線を実行する手順の後に、配線した結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行する手順と、前記追加又は変更された論理素子に対して指定論理素子が配置された近傍に空き地を集めるように移動する手順と、前記配線した結果に対して論理素子の追加又は変更により再配線が必要となった部分の配線をする手順をコンピュータに実行させることを特徴とする。
本発明の第5のプログラムは、本発明の第1、第2、第3、又は第4のプログラムにおいて、前記キャパシタは大きさの異なる複数のキャパシタを有し、前記集められた空き地にキャパシタを配置する手順において、キャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする。
本発明はLSI内部のノイズを抑えるのに効果的な場所を選んで空き地を用意しオンチップキャパシタを配置するようにしたので、LSIの発生ノイズを抑制できるという効果がある。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
本発明の第1の形態の素子配置システム(以降第1の素子配置システムともいう)は、コンピュータで実現され、コンピュータはプログラムを実行するCPU、データやプログラムを記憶する記憶手段、データの入力や出力を行う入出力手段を有する。
図1を参照すると、第1の素子配置システム100は、配置部101と、第1配置改良部102と、第1配線部103と、配置追加部104と、第2配置改良部102と、第2配線部103と、キャパシタ発生部105とを含み、これらはそれぞれプログラムで実現される。また。第1の素子配置システム100は、記憶手段に入力データ201と、配置配線用ライブラリ202と、配置改良用ライブラリ203と、出力データ204を必要に応じて一時的又は長期的に保持する。
入力データ201(ネットリスト201ともいう)は一般にネットリストと呼ばれるファンクションブロック間の接続を示したデータからなり、処理に先立ってコンピュータの記憶手段に読み込まれ保持される。出力データ204は配置配線結果で、一般的にはマスクデータと呼ばれるものと等価であり、処理後にコンピュータ外部に出力されるが、処理中はコンピュータの記憶手段に一時的に保持される。
配置配線用ライブラリ202は、配置配線プログラムが一般的に必要とするライブラリであり、配置部101が配置を実行したり配線部103が配線を実行したりする際に参照する情報を登録したものである。登録された情報は、例えば、各ファンクションブロックの大きさやピン位置等のファンクションブロックに関する情報や、LSI上の電源や接地の配置やファンクションブロックを実装可能な位置等のLSIに関する情報や、配線を実行可能な領域の情報である。各ファンクションブロックの大きさやファンクションブロックを実装可能な位置に関する情報は配置情報として利用され、各ファンクションブロックのピン位置や配線を実行可能な領域の情報は配線情報として利用される。
配置改良用ライブラリ203は、本発明で特徴とするライブラリであり、ノイズを受けやすく近傍にオンチップキャパシタを配置するのが望ましいファンクションブロックや、ノイズを出しやすく近傍にオンチップキャパシタを配置するのが望ましいファンクションブロックや、配置改良するためのモードの指定や優先順を登録したライブラリである。
図2は、配置改良用ライブラリ203の登録内容の一例を示した図である。配置改良用ライブラリ203は、対象ファンクションブロックが隙間をはさんでおかれている場合の隙間の割り当て方式、隙間に対する制限の優先順位、対象となるファンクションブロック種類及びそのファンクションブロックに対する指定を含んでいる。
ファンクションブロックに対する指定は、そのファンクションブロックの相対的な重要度を示すための相対的重み、左右いずれかに最低限必要な隙間のサイズ、隙間が左右に必要かそれとも片方でよいのか、そのファンクションブロックがノイズを出すのかそれともノイズに弱いのかを含んでいる。
隙間割り当てモードは、相対的重み付けに基づいて隙間を分割するのか、それとも均等に分割するのかを示している。図2では相対重み付けが優先される。優先モードではどの順で隙間の割り当てを決定するかを示している。図2では、相対的重み付けが最優先で、左右の最低限の隙間は一番低い優先度で、優先度の低い項目ほど満足できなくてもよいという指定になっている。
図2では、ファンクションブロックとして“InverterX10”と“FlipFlopX1”が登録されている様子を示している。例えば“Inverterx10”は、ノイズを発生しやすいファンクションブロック“Aggressor”であり、最低限必要な隙間が決められた単位で“10”必要であり、さらに左右に隙間が必要なことを示している。“FlipFlopX1”は、ノイズに弱いファンクションブロックであり、最低限必要な隙間が“20”で片側だけでよいことを示している。
配置部101は、ネットリスト201に記述されたファンクションブロック間の結合情報に基づいて、ファンクションブロック間の遅延や配線の混雑度等に配慮してファンクションブロックを配置する。
配置改良部102は、配置部101によって配置されたファンクションブロックの隙間の領域を、配置改良用ライブラリ203の情報に基づいて、空き地が必要なファンクションブロックの近傍に集めるために、ファンクションブロックの配置を移動する。
配線部103は、ネットリスト201に記述されたファンクションブロック間の結合情報に基づいて、ファンクションブロック間を配線する。
配置追加部104は、配線結果によって配線が長すぎて遅延が入らなかったり伝播波形が鈍りすぎたりすると判定される場合等に、配線長を短くするために新たなファンクションブロックの追加を行う。この機能は本発明では主たる機能ではないので詳しい説明は省略する。
キャパシタ発生部105は、ファンクションブロックを移動した後の空き地にオンチップキャパシタ(キャパシタともいう)を配置し、結果を出力データ204として出力する。
次に、本発明の第1の形態の動作について図面を参照して説明する。
図3はファンクションブロックを移動して空き地を作成する様子を説明するための配置図である。図4は第1の形態の動作を示したフローチャートである。図3、図4を参照して動作を説明する。
まず、ネットリスト201が入力されると、配置部101は、ネットリスト201に記述されたファンクションブロック間の結合情報に基づいて、ファンクションブロック間の遅延や配線の混雑度等に配慮してファンクションブロックを配置する配置処理を行う(S601)。
この結果の配置例を説明しやすい形で示した図が図3の(A)である。図3(A)を参照すると、5つのファンクションブロック301〜305が配置され、ノイズを発生しやすいファンクションブロック302とノイズに弱いファンクションブロック305が含まれている。以降の説明では、ファンクションブロック302は片側に空き地を必要とし、ファンクションブロック305は両側に空き地を必要とするものとする。
また、縦方向の電源(VDD)と接地(GND)はVIAによって横方向のVDDとGNDと接続している。図3で縦方向のVDD・GNDと横方向のVDDと横方向のGNDに囲まれた領域である行エリア(フローチャートではROWと表示する)にはファンクションブロックが配置されない空き地311〜315が散在している。
続いて、配置改良部102は、配置改良用ライブラリ203を参照し、配置されたファンクションブロックがノイズに弱いか又はノイズを発生しやすいファンクションブロックとして登録されている場合、配置改良用ライブラリ203に従ってそのファンクションブロックの両側あるいは片側に空き地を発生する隙間生成処理を実行する(S602)。
図3と図4を参照して第1の形態の隙間生成処理について詳細に説明する。配置改良部102は、最初に配置改良用ライブラリ203で指定されたノイズを発生しやすいファンクションブロックやノイズに弱いファンクションブロックの配置されている場所を探す(S701)。
次に、配置改良部102は、探し出した指定ファンクションブロックが配置されている行エリアの近傍に、ファンクションブロックが配置されていない隙間(空き地ともいう)があるかチェックする(S702)。次に隙間があった場合、配置改良部102は、指定ファンクションブロックの隣に隙間を移動するため、又は隙間を移動して隙間を結合するために、指定ファンクションブロック以外のファンクションブロックを移動する(S703)。
一例を図3に示す。図3(A)は探し出した指定ファンクションブロックが配置されている行エリアの様子を示している。図3では同じ行エリア内で隙間を移動しているが、配置改良用ライブラリ203に隙間の検索・移動範囲を指定して、例えば、隣接する行エリアも含めた領域内で移動するようにしてもよい(以降に第2の形態として示す)。
図3(A)の場合、ステップS701によって、ノイズを発生しやすいファンクションブロック302と、ノイズに弱いファンクションブロック304が探し出される。配置改良部102は、図3(A)の行エリアを調べ、ファンクションブロック302の近傍に空き地311、空き地312、空き地313を発見する。同様にして、配置改良部102は、ファンクブロック305の近傍に空き地313、空き地314、空き地315を発見する。
図3(A)のように行エリアに、302と305のように複数の指定されたファンクションブロックが含まれる場合の空き地の生成方法としては、指定ファンクションブロック間の隙間を均等に分割して割り当てる方法、ファンクションブロック毎に配置改良用ライブラリ203に重み付けをしておき、それに従って隙間を割り当てる方法などがある。隙間の割り当て方法は配置改良用ライブラリ203によって指定する。
配置改良部102は、隙間を指定ファンクションブロックの隣に移動するために、指定されていないファンクションブロックを移動する。図3(B)は、図3(A)の配置からファンクションブロック301を左に、ファンクションブロック303を右に、ファンクションブロック304を左にそれぞれ移動した後の配置を示している。この結果、空き地311が空き地312と合成(マージともいう)されて空き地321に広がり、空き地313が空き地322と空き地323の一部になる。この移動によって、指定されたファンクションブロック302及び305に隣接する空き地を拡げている。
次に、配置改良部102は、行エリアにおいて指定ファンクションブロックも含めて移動することにより空き地の合成ができるかを判断し(S704)、可能ならばファンクションブロックを移動して空き地のマージを行う(S705)。具体的に説明すると、配置改良部102は配置改良用ライブラリ203を参照して、指定ファンクションブロックの両側に空き地が必要か、それとも片側のみに必要かという情報に基づいて生成された空き地が指定ファンクションブロックの移動によりマージ可能かどうか調査・判定する(S704)。
図3の場合、ファンクションブロック302は片側に空き地が必要で、ファンクションブロック305は両側に空き地が必要であり、空き地323と空き地315とも十分必要なサイズの空き地になっているとする。この場合、ファンクションブロック302を移動することにより空き地321と空き地322とがマージ可能であり、マージされて大きな空き地331が生成される(S705)。図3(C)にマージ後の配置を示している。
またファンクションブロック305の両側の空き地323と空き地315は、幅を調整され同じ幅の空き地332と空き地333になる。ファンクションブロック305が両側に空き地が必要な指定で、かつ均等化後の空き地がそれぞれ必要量に満たない場合は空き地の均等化処理は行わない。
第1の隙間生成処理ではこのように空き地のマージを行っているが、本発明を実施する上でマージは必須ではなく、実行しなくとも本発明を実施可能である。
隙間生成処理が終わり空き地を含めた配置が終わると、配線部103は、配置された各ファンクションブロック間をネットリスト201と配置配線用ライブラリ202に従って、配線する(S603)。
次に、配置追加部104は、配線結果を予め決められた制限値と比較し、例えば、信号の伝播遅延が制限値よりも大きい場合や、伝播する波形の鈍りが制限よりも大きい場合や、隣接する配線間のクロストーク量が大きい場合に、配線の途中にバッファ要のファンクションブロックを挿入したり、配線を駆動するファンクションブロックを駆動力の異なるファンクションブロックに変更したりといった処理を行う(S604)。一般にこのような手法は一般に既知の技術であるので詳細な説明は省略する。
配置追加部104によってステップS602で作成・合成した空き地が使用されてしまう場合があるので、ここで再度配置改良部102は隙間生成処理を実行する(S605)。隙間生成処理はすでに説明したステップS701〜S705の処理と同じである。
次に、配線部103は、配置追加部104によって追加されたファンクションブロックやステップS605で移動したファンクションブロック間等の配線が完了していない箇所を対象としてステップS603と同様に配線を追加する(S606)。
次に、キャパシタ発生部105は、ファンクションブロックのおかれていない空き地でキャパシタが実装可能でかつキャパシタを必要とする空き地にキャパシタを追加する(S607)。次に、残った空き地に対してフィルセルと呼ぶ空き地を埋めるためのファンクションブロックを配置する(S608)。キャパシタ発生部105は、フィルセルを配置した後の結果データを出力データ204として記憶手段に一時的に保持し、要求に応じて出力データ204を出力する。
ここでフィルセルとは、一般にスタンダードセルなどを使用したLSI設計でファンクションブロック間の空き地を埋めるための構造物をLSI基板上に作るために用意された便宜上のファンクションブロックであり、オンチップキャパシタの素子を含んだキャパシタもフィルセルの一種ともいえる。
フィルセルは、一般的にサイズの違う複数のファンクションブロックを用意して、大きい順に空き地に入るかどうかチェックして、空き地に入る場合はそのフィルセルを生成して、入らない場合は小さいサイズのものが入るかどうかを試す、という処理を実行する。本発明ではキャパシタもサイズの異なる複数のファンクションブロックを用意する。また、キャパシタのサイズはフィルセルのサイズより大きいものとする。
キャパシタ発生部105は、空き地に対してキャパシタの大きいものから順に実装可能か調べ、実装可能で一番大きなキャパシタを空き地に追加する。キャパシタの実装ができない場合キャパシタ発生部105は、フィルセルの大きいものから順に実装可能か調べ、実装可能で一番大きなキャパシタを空き地に追加する。
本発明では、このようにキャパシタとフィルセルを配置するが、キャパシタが不要な空き地やキャパシタを配置するのに適さない条件等があればキャパシタの代わりにフィルセルを配置するようにしてもよく、キャパシタとフィルセルの配置関係は特に限定しない。
また、以上の説明ではステップS603の後にステップS604〜S606を実行し配置追加処理を組み込んでいるが、配置追加処理が不要であれば、ステップS603の後にステップS604〜S606をスキップしてステップS607のキャパシタ配置処理に続けるようにしてもかまわない。
このように、第1の形態では、ノイズを発生しやすいファンクションブロックやノイズに弱いファンクションブロックの近傍にキャパシタを実装可能なまとまった空き地を確保する可能性を高められるので、ノイズを発生しやすいファンクションブロックやノイズに弱いファンクションブロックの隣により大きなオンチップキャパシタを配置出来るようになり、LSI内部のノイズの発生や影響を大幅に低減できる。
次に、本発明の第2の形態について説明する。第2の形態は第1の形態と比べて隙間生成処理が異なるが、その他は第1の形態と同じであるので、隙間生成処理について説明する。第2の形態の隙間生成処理は、ファンクションブロックの移動範囲を上下の行エリアに拡げている点に特徴がある。
第2の形態の構成は第1の形態の構成と同じであるが、配置改良部102が実行するファンクションブロックの移動範囲が異なっている。配置改良部102の機能の差分については以降の動作の説明にて説明を行う。
次に図5と図6を参照して第2の形態の隙間生成処理の動作を説明する。図5は第2の形態の隙間生成処理を説明するための配置図であり、図6は第2の形態の隙間生成処理の動作を示したフローチャートである。なお、隙間生成処理以外の第2の形態の処理手順は第1の形態と同じ(図4のステップS601〜S607)であるので説明は省略する。
配置改良部102は、ステップS701〜S703と同様にしてステップS711〜S713を実行し、指定ファンクションブロック以外のファンクションブロックを移動して、まとまった空き地を生成する。図5(A)はファンクションブロック移動前の配置を表しており、隣接する上下の行エリアが移動対象範囲となっているがここでは空き地を多く含んだ下段の行エリアのみを示している。
図5では、ファンクションブロック402はノイズを発生しやすいファンクションブロックとして指定されており、ファンクションブロック405はノイズに弱いファンクションブロックとして指定されている。なお、図5の上段の行エリアの配置は図3の行エリアの配置と同じである。従って、ステップS713までの処理によって、ステップS711上段の行エリアの配置は図3(B)のように変更される。
次に、第2の形態では、配置改良部102は、隣接する行エリアにファンクションブロックを移動できる隙間があるかを調査・判定する(S714)。図5では、下段の行エリアに隙間があるので、配置改良部102は、ファンクションブロック401とファンクションブロック403とファンクションブロック404とが移動可能と判定する。 次に、配置改良部102は、移動可能なファンクションブロックを別の行エリアに移動する(S715)。図5の例で配置改良部102は、ファンクションブロック401をファンクションブロック406の左に、ファンクションブロック403をファンクションブロック407とファンクションブロック408の間に、ファンクションブロック404をファンクションブロック408の右にそれぞれ移動する。移動後の配置は図5(B)のようになる。
さらに、配置改良部102は、ステップS704と同様に指定ファンクションブロックの移動により空き地のマージが可能か判定し(S716)、可能であればステップS705と同様に指定ファンクションブロックの移動により空き地のマージを実行する(S717)。この結果は図示しないが、図5(B)でファンクションブロック405が両側に空き地を必要とし空き地415の大きさが十分でない場合はファンクションブロック405を左に移動して空き地415の大きさを確保したり、空き地421や空き地422の大きさを用意されたキャパシタの大きさに適合させるようにファンクションブロック402を移動したりする。
このように、第2の形態では、指定ファンクションブロックが配置された行エリアだけでなく、隣接する行エリアまでファンクションブロックの移動範囲を拡げることにより、より効果的にキャパシタを配置するための空き地を確保することが可能となるので、LSI内のノイズの発生や影響を大幅に低減できる。
以上の説明では、指定ファンクションブロックが配置された行エリア内でファンクションブロックを移動して空き地を確保する方法と、指定ファンクションブロックが配置された行エリアに隣接する上下の行エリアまで範囲を拡げてファンクションブロックを移動して空き地を確保する方法を説明したが、さらに左右の行エリアやさらに多くの上下の行エリアまでをファンクションブロックの移動範囲として調整するようにしてもかまわない。
LSIの配置の他にも、プリント板にICやLSIや電気素子を実装配置する際にも、ノイズを発生したりノイズに弱いICやLSIや電気素子が含まれていれば、本発明を適用してノイズを発生したりノイズに弱いICやLSIや電子素子の周辺にキャパシタ(コンデンサ)を実装するための領域を自動的に確保して、プリント板内のノイズの発生や影響を低減することが可能となる。
本発明の素子配置システムの構成を示した図である。 本発明の配置改良用ライブラリの一例を示した図である。 本発明の第1の形態の隙間生成処理を説明するための配置図である。 本発明の第1の形態の動作を示したフローチャートである。 本発明の第2の形態の隙間生成処理を説明するための配置図である。 本発明の第2の形態の隙間生成処理の動作を示したフローチャートである。
符号の説明
100 素子配置システム
101 配置部
102 配置改良部
103 配線部
104 配置追加部
105 キャパシタ発生部
201 入力データ
202 配置配線用ライブラリ
203 配置改良用ライブラリ
204 出力データ

Claims (14)

  1. 配置する論理素子に関する素子情報と論理素子を配置可能な領域の領域情報を含む配置情報と配線を実行するために必要な配線情報とを記憶する配置配線用ライブラリと、近傍にキャパシタを配置するように指定された論理素子である指定論理素子に関する指定素子情報を記憶する配置改良用ライブラリと、論理素子間の接続データを含む入力データと前記配置配線用ライブラリに記憶された前記配置情報とに従って論理素子の配置を実行する配置部と、前記配置部による配置結果に対して配置改良用ライブラリに記憶された指定論理素子の近傍に空き地を集めるように指定論理素子以外の論理素子を移動する配置改良部と、前記配置改良部による配置改良後の論理素子に対して前記入力データに基づいて配線を実行する配線部と、前記集められた空き地にキャパシタを配置するキャパシタ発生部とを有し、
    前記配置改良用ライブラリに記憶される指定素子情報は、指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみに配置すべきか或いは両方の側に配置すべきかを指定する配置側情報とを有し、前記配置改良部は前記配置側情報に従って指定論理素子の一方又は両方の側に空き地を集めることを特徴とする素子配置システム。
  2. 前記配置改良部は、指定論理素子以外の論理素子の移動の後に、さらに空き地を集めるために指定論理素子を移動することを特徴とする請求項1の素子配置システム。
  3. 前記配線部による配線結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行する配置追加部を有し、配置追加部による論理素子の追加又は変更後に、前記配置改良部は追加又は変更された論理素子に対して移動を実行し、配線部は論理素子の追加又は変更により再配線が必要となった部分の配線をすることを特徴とする請求項1又は2の素子配置システム。
  4. 前記キャパシタは大きさの異なる複数のキャパシタを有し、前記キャパシタ発生部はキャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする請求項1、2、又は3の素子配置システム。
  5. 前記論理素子は半導体集積回路に実装する基本的な動作を行う小さな回路であるファンクションブロックであることを特徴とする請求項1、2、3、又は4の素子配置システム。
  6. 配置する論理素子に関する情報と論理素子を配置可能な領域の情報を含む配置情報と配線を実行するために必要な配線情報とを記憶する配置配線用ライブラリと、論理素子の中で近傍にキャパシタを配置するように指定された指定論理素子に関する指定素子情報を記憶する配置改良用ライブラリとを有し
    前記配置改良用ライブラリに記憶される指定素子情報は、指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみに配置するか或いは両方の側に配置するかを指定する配置側情報とを有し、
    論理素子間の接続データを含む入力データと前記配置配線用ライブラリに記憶された前記配置情報とに従って論理素子の配置を実行し、
    前記配置実行の結果に対して前記配置側情報に従って指定論理素子の一方又は両方の側に空き地を集めるように指定論理素子以外の論理素子を移動し、
    前記移動後の各論理素子に対して前記入力データに基づいて配線を実行し、
    前記集められた空き地にキャパシタを配置することを特徴とする素子配置方法。
  7. 前記指定論理素子以外の論理素子の移動の後に、さらに空き地を集めるために指定論理素子を移動することを特徴とする請求項6の素子配置方法。
  8. 前記配線した結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行し、前記論理素子の追加又は変更後に、追加又は変更された論理素子に対して指定論理素子が配置された近傍に空き地を集めるように移動し、前記配線結果に対して論理素子の追加又は変更により再配線が必要となった部分の配線をすることを特徴とする請求項6又は7の素子配置方法。
  9. 前記キャパシタは大きさの異なる複数のキャパシタを有し、前記集められた空き地にキャパシタを配置する際にキャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする請求項6、7、又は8の素子配置方法。
  10. 前記論理素子は半導体集積回路に実装する基本的な動作を行う小さな回路であるファンクションブロックであることを特徴とする請求項6、7、8、又は9の素子配置方法。
  11. 論理素子間の接続データを含む入力データと配置配線用ライブラリに記憶された配置する論理素子に関する情報と論理素子を配置可能な領域の情報を含む配置情報とに従って論理素子の配置を実行する手順と、
    前記配置実行の結果に対して、論理素子の中で近傍にキャパシタを配置するように指定された指定論理素子の名称と、指定論理素子の近傍に配置すべきキャパシタの大きさと、配置すべきキャパシタを指定論理素子の一方の側のみに配置するか或いは両方の側に配置するかを指定する配置側情報とを含む指定素子情報を記憶する配置改良用ライブラリを参照して、指定論理素子の一方又は両方の側に空き地を集めるように指定論理素子以外の論理素子を移動する手順と、
    前記移動後の各論理素子に対して前記入力データと配置配線用ライブラリに記憶された配線を実行するために必要な配線情報に基づいて配線を実行する手順と、
    前記集められた空き地にキャパシタを配置する手順をコンピュータに実行させるプログラム。
  12. 前記指定論理素子以外の論理素子を移動する手順において、前記指定論理素子以外の論理素子を移動した後に、さらに空き地を集めるために指定論理素子を移動する手順を有することを特徴とする請求項11のプログラム。
  13. 前記配線を実行する手順の後に、配線した結果が予め決められた条件を満たさない配線に対して中継用のバッファである論理素子を挿入する処理を含む論理素子の追加又は変更を実行する手順と、
    前記追加又は変更された論理素子に対して指定論理素子が配置された近傍に空き地を集めるように移動する手順と、
    前記配線した結果に対して論理素子の追加又は変更により再配線が必要となった部分の配線をする手順をコンピュータに実行させることを特徴とする請求項11、又は12のプログラム。
  14. 前記キャパシタは大きさの異なる複数のキャパシタを有し、前記集められた空き地にキャパシタを配置する手順において、キャパシタを配置する空き地の大きさに対して実装可能な最大のキャパシタを選択して配置することを特徴とする請求項11、12、又は13のプログラム。
JP2004206324A 2004-07-13 2004-07-13 半導体集積回路の素子配置システム、素子配置方法、及びプログラム Expired - Fee Related JP4186890B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004206324A JP4186890B2 (ja) 2004-07-13 2004-07-13 半導体集積回路の素子配置システム、素子配置方法、及びプログラム
EP05014767A EP1617346A3 (en) 2004-07-13 2005-07-07 System for placing elements of a semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US11/178,351 US7363597B2 (en) 2004-07-13 2005-07-12 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
KR1020050062684A KR20060050072A (ko) 2004-07-13 2005-07-12 반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램
US11/972,295 US20080189668A1 (en) 2004-07-13 2008-01-10 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US12/817,908 US20100257500A1 (en) 2004-07-13 2010-06-17 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004206324A JP4186890B2 (ja) 2004-07-13 2004-07-13 半導体集積回路の素子配置システム、素子配置方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2006031174A JP2006031174A (ja) 2006-02-02
JP4186890B2 true JP4186890B2 (ja) 2008-11-26

Family

ID=35169958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004206324A Expired - Fee Related JP4186890B2 (ja) 2004-07-13 2004-07-13 半導体集積回路の素子配置システム、素子配置方法、及びプログラム

Country Status (4)

Country Link
US (3) US7363597B2 (ja)
EP (1) EP1617346A3 (ja)
JP (1) JP4186890B2 (ja)
KR (1) KR20060050072A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4186890B2 (ja) * 2004-07-13 2008-11-26 日本電気株式会社 半導体集積回路の素子配置システム、素子配置方法、及びプログラム
US9070791B2 (en) * 2006-11-15 2015-06-30 International Business Machines Corporation Tunable capacitor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044209A (en) * 1997-09-15 2000-03-28 International Business Machines Corporation Method and system for segmenting wires prior to buffer insertion
JP3178399B2 (ja) 1997-12-04 2001-06-18 日本電気株式会社 半導体集積回路、その素子配置方法およびその製造方法
US6480992B1 (en) * 1999-11-08 2002-11-12 International Business Machines Corporation Method, apparatus, and program product for laying out capacitors in an integrated circuit
JP3348709B2 (ja) * 1999-11-24 2002-11-20 日本電気株式会社 プリント回路基板設計支援装置及び制御プログラム記録媒体
JP2001167139A (ja) * 1999-12-06 2001-06-22 Nec Corp 電源デカップリング設計方法及び設計支援システム
US6834380B2 (en) * 2000-08-03 2004-12-21 Qualcomm, Incorporated Automated EMC-driven layout and floor planning of electronic devices and systems
JP2002222230A (ja) * 2000-11-27 2002-08-09 Matsushita Electric Ind Co Ltd 不要輻射最適化方法および不要輻射解析方法
US6996512B2 (en) * 2001-04-19 2006-02-07 International Business Machines Corporation Practical methodology for early buffer and wire resource allocation
US7114132B2 (en) * 2001-04-20 2006-09-26 Nec Corporation Device, system, server, client, and method for supporting component layout design on circuit board, and program for implementing the device
US6877144B1 (en) * 2002-02-28 2005-04-05 Dupont Photomasks, Inc. System and method for generating a mask layout file to reduce power supply voltage fluctuations in an integrated circuit
US20030212538A1 (en) * 2002-05-13 2003-11-13 Shen Lin Method for full-chip vectorless dynamic IR and timing impact analysis in IC designs
US6898769B2 (en) * 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
JP2005004268A (ja) * 2003-06-09 2005-01-06 Matsushita Electric Ind Co Ltd 半導体集積回路装置の動作解析方法、これに用いられる解析装置およびこれを用いた最適化設計方法
US7031084B2 (en) * 2003-07-23 2006-04-18 Eastman Kodak Company Imaging system using combined dichroic/high-pass filters
US7089520B2 (en) * 2003-11-19 2006-08-08 International Business Machines Corporation Methodology for placement based on circuit function and latchup sensitivity
US7131084B2 (en) * 2003-12-09 2006-10-31 International Business Machines Corporation Method, apparatus and computer program product for implementing automated detection excess aggressor shape capacitance coupling in printed circuit board layouts
JP4186890B2 (ja) * 2004-07-13 2008-11-26 日本電気株式会社 半導体集積回路の素子配置システム、素子配置方法、及びプログラム

Also Published As

Publication number Publication date
US20060013059A1 (en) 2006-01-19
KR20060050072A (ko) 2006-05-19
US20080189668A1 (en) 2008-08-07
JP2006031174A (ja) 2006-02-02
EP1617346A2 (en) 2006-01-18
US20100257500A1 (en) 2010-10-07
US7363597B2 (en) 2008-04-22
EP1617346A3 (en) 2006-11-08

Similar Documents

Publication Publication Date Title
US9852253B2 (en) Automated layout for integrated circuits with nonstandard cells
Das et al. Design tools for 3-D integrated circuits
US8479141B1 (en) Automation using spine routing
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
JP2005535118A (ja) 集積回路デバイスと集積回路デバイスを設計するための方法及び装置
US7689964B2 (en) System and method for routing connections
JP7236447B2 (ja) マルチチップ集積回路デバイスにおけるルーティングリソースの選択方法
Chen et al. Simultaneous timing driven clustering and placement for FPGAs
US7469399B2 (en) Semi-flattened pin optimization process for hierarchical physical designs
JP4186890B2 (ja) 半導体集積回路の素子配置システム、素子配置方法、及びプログラム
TW201826155A (zh) 積體電路、製造其的電腦實施方法以及定義其的標準元件
Minz et al. Block-level 3-D global routing with an application to 3-D packaging
US20040003363A1 (en) Integrated circuit design and manufacture utilizing layers having a predetermined layout
Jagtap et al. A methodology for early exploration of TSV placement topologies in 3D stacked ICs
Milojevic et al. Pathfinding: A design methodology for fast exploration and optimisation of 3D-stacked integrated circuits
Hatirnaz et al. Early wire characterization for predictable network-on-chip global interconnects
US20170061063A1 (en) Integrated circuit with reduced routing congestion
Ranjan et al. Fast hierarchical floorplanning with congestion and timing control
JP3705737B2 (ja) 半導体集積回路のレイアウト方法
US8843866B2 (en) Support apparatus, design support method, and computer-readable recording medium
Fischbach et al. 3D Physical design: Challenges and solutions
Alupoaei et al. Net clustering based constructive and iterative improvement approaches for macro-cell placement
Li et al. Design tools for 3D mixed mode placement
JP2007219859A (ja) 半導体集積回路の設計方法
JP2006260200A (ja) 半導体レイアウトモジュールの自動配置方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080724

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees