IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーム・リミテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】集積回路向け多層共配置
(51)【国際特許分類】
   H01L 21/82 20060101AFI20230620BHJP
   G06F 30/392 20200101ALI20230620BHJP
   G06F 30/394 20200101ALI20230620BHJP
   H01L 27/00 20060101ALI20230620BHJP
【FI】
H01L21/82 B
G06F30/392
G06F30/394
H01L21/82 C
H01L27/00 301A
H01L27/00 301C
【請求項の数】 20
(21)【出願番号】P 2020552356
(86)(22)【出願日】2019-03-19
(65)【公表番号】
(43)【公表日】2021-08-10
(86)【国際出願番号】 GB2019050759
(87)【国際公開番号】W WO2019186111
(87)【国際公開日】2019-10-03
【審査請求日】2022-03-04
(31)【優先権主張番号】15/939,047
(32)【優先日】2018-03-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シュー、シャオチン
(72)【発明者】
【氏名】クライン、ブライアン トレイシー
(72)【発明者】
【氏名】ムーア、スティーブン ルイス
(72)【発明者】
【氏名】シンハ、サウラブ ピジュスクマール
【審査官】田付 徳雄
(56)【参考文献】
【文献】米国特許出願公開第2015/0118793(US,A1)
【文献】特開2008-243993(JP,A)
【文献】米国特許出願公開第2010/0095263(US,A1)
【文献】特開平09-289253(JP,A)
【文献】C. Ababei et al.,Placement and Routing in 3D Integrated Circuits,IEEE Design & Test of Computers,米国,IEEE,2005年11月,Vol.22 No. 6,520-531
(58)【調査した分野】(Int.Cl.,DB名)
H01L 21/82
G06F 30/392
G06F 30/394
H01L 27/00
(57)【特許請求の範囲】
【請求項1】
多層配置で互いに隣接して配置された複数の標準セルを有する集積回路であって、層間接続部で接続された多層ネットを含む前記集積回路の複数の層を定義すること、
前記層間接続部を同一ネットに属する層間接続部ペアとしてペア化すること、
複数のグループにグループ化することであって、複数の層の前記層間接続部ペアの有無によらず前記複数の標準セルのうちの第1のアンカーセルを前記複数の標準セルのうちの第2のアンカーセルとグループ化すること、
前記層間接続部ペアの有無によらず前記複数の標準セルの物理的場所の周囲に多層フェンス境界を生成することにより、前記複数のグループの各グループ内で前記層間接続部ペアの有無によらず前記複数の標準セルを関連付けること、
前記層間接続部の場所によらず前記複数の標準セルの場所を反復的に調整することにより、前記層間接続部の場所によらず前記第2のアンカーセルの場所と前記第1のアンカーセルの場所とを同じ場所に近接させて最適化された場所または正当な場所に収束させること、
を備える方法。
【請求項2】
前記集積回路が3次元集積回路(3DIC)を含む、請求項1に記載の方法。
【請求項3】
前記層間接続部の場所によらず前記複数の標準セルの場所が同時に反復的に調整されることにより、前記層間接続部の場所によらず前記複数の標準セルの場所が前記最適化された場所または正当な場所に収束する、請求項1または2に記載の方法。
【請求項4】
前記複数の層が第1の層と第2の層を含み、前記第1の層および前記第2の層が、前記多層配置内で互いに隣接して配置された複数の標準セルを含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記複数の層を定義することは、
前記第1の層および前記第2の層から前記複数の標準セルのうちの1つ以上のセルを選択することであって、前記第1のアンカーセルが前記第1の層に位置し前記第2のアンカーセルが前記第2の層に位置する、前記複数の標準セルのうちの1つ以上のセルを選択すること、
前記第2の層内の前記第2のアンカーセルの場所に対して前記第1の層内の第1のプロキシセルの場所を追加するとともに、前記第1の層内の前記第1のアンカーセルの場所に対して前記第2の層内の第2のプロキシセルを異なる場所に追加することによって、前記第1の層内の前記第1のアンカーセルを前記第2の層内の前記第2のアンカーセルに関連付けること、
を含む、請求項4に記載の方法。
【請求項6】
前記層間接続部を前記同一ネットに属する前記層間接続部ペアとしてペア化することは、
前記第1のアンカーセル、前記第1のプロキシセル、前記第2のアンカーセル、および前記第2のプロキシセルを同一の多層ネット内にグループ化し、当該多層ネットの周囲に前記多層フェンス境界を生成することによって、前記第1の層内の前記第1のアンカーセルを前記第2の層内の前記第2のアンカーセルとペア化することを含む、請求項5に記載の方法。
【請求項7】
前記層間接続部の場所によらず前記複数の標準セルの場所を反復的に調整することは、
前記多層ネット内の前記第1のプロキシセルの場所と前記第2のプロキシセルの場所を固定して前記多層フェンス境界を縮小することにより、前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所を同じ場所に近接させるように収束させることを含む、請求項6に記載の方法。
【請求項8】
前記最適化された場所または正当な場所における前記層間接続部の前記調整された場所によらず前記複数の標準セルの前記調整された場所に基づいて前記多層配置内で前記複数の標準セルが互いに隣接して配置された前記集積回路を製造するまたは製造させることをさらに備える請求項1~7のいずれか一項に記載の方法。
【請求項9】
多層配置で互いに隣接して配置された複数の標準セルを有する集積回路内の第1の層および第2の層を定義すること、
前記第1の層内の第1のアンカーセルと前記第2の層内の第2のアンカーセルとを多層ネット内にグループ化し、当該多層ネットの周囲に多層フェンス境界を生成することによって、前記第1のアンカーセルと前記第2のアンカーセルとをペア化すること、
前記多層ネット内の第1のプロキシセルの場所と第2のプロキシセルの場所とを固定して前記多層フェンス境界を縮小することによって前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所を互いに接近させるように反復的に調整することにより、前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所を同じ場所に近接させるように収束させること、
前記第2の層内の前記第2のアンカーセルの前記調整された位置に基づいてまたは前記第1の層内の前記第1のアンカーセルの前記調整された位置に基づいて前記多層配置内で前記第1および第2のアンカーセルが互いに隣接して配置された前記集積回路を製造するまたは製造させること、
を備える方法。
【請求項10】
前記第1の層および前記第2の層から前記複数の標準セルのうちの1つ以上のセルを選択することであって、前記第1の層から前記第1のアンカーセルを選択するとともに、前記第2の層から前記第2のアンカーセルを選択することを含む、前記複数の標準セルのうちの1つ以上のセルを選択すること、
前記第2の層内の前記第2のアンカーセルの場所に対して前記第1の層内の第1のプロキシセルの場所を追加するとともに、前記第1の層内の前記第1のアンカーセルの場所に対して前記第2の層内の第2のプロキシセルを異なる場所に追加することによって、前記第1の層内の前記第1のアンカーセルを前記第2の層内の前記第2のアンカーセルに関連付けること、
をさらに備え、
前記第1の層内の前記第1のアンカーセルと前記第2の層内の前記第2のアンカーセルとをペア化することは、前記第1のアンカーセル、前記第1のプロキシセル、前記第2のアンカーセル、および前記第2のプロキシセルを前記多層ネット内にグループ化し、当該多層ネットの周囲に前記多層フェンス境界を生成することを含む、請求項9に記載の方法。
【請求項11】
前記集積回路は互いに平行な複数のレイヤを含み、前記複数のレイヤの各レイヤが層を構成し、前記第1の層は第1のレイヤを含み、前記第2の層は前記第1のレイヤに平行な第2のレイヤを含み、前記複数のレイヤは互いに重なるように配置されており、前記第1の層が前記第2の層と重なっている、請求項9または10に記載の方法。
【請求項12】
前記集積回路は層間ビアとともに前記複数の標準セルを含み、前記多層ネットは、前記第1の層と前記第2の層との間の層間接続部を含む、請求項9~11のうちのいずれか一項に記載の方法。
【請求項13】
前記多層フェンス境界は、
前記第1のアンカーセルと前記第1のプロキシセルとを囲む前記第1の層のエリア内に画定された第1の矩形領域と、
前記第2のアンカーセルと前記第2のプロキシセルとを囲む前記第2の層のエリア内に画定された第2の矩形領域と、
を含む、請求項9~12のうちのいずれか一項に記載の方法。
【請求項14】
前記第2のプロキシセルに向かう方向において前記第2の層内の前記第2のアンカーセルに第1の力が加えられることにより、前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所が同じ場所に近接するように収束される、請求項9~13のうちのいずれか一項に記載の方法。
【請求項15】
前記第1のアンカーセルに向かう方向において前記第1の層内の前記第1のプロキシセルに、前記第1の力と一致するように第2の力が加えられることにより、前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所が同じ場所に近接するよう収束することが支援される、請求項14に記載の方法。
【請求項16】
前記反復的に調整することは、前記第1のアンカーセルが前記第2のアンカーセルと重なるように前記第1の層内の前記第1のアンカーセルに対する前記第2の層内の前記第2のアンカーセルの場所の位置合わせを直接制約することを指す、請求項9~15のうちのいずれか一項に記載の方法。
【請求項17】
前記反復的に調整することは、前記第1の層内の前記第1のアンカーセルとの位置合わせにおいて前記第2のプロキシセルに向かう方向に前記第2のアンカーセルが移動するように、前記第2の層内の前記第2のプロキシセルに対して前記第2の層内の前記第2のアンカーセルの力指向配置を使用することに関連する、請求項9~16のうちのいずれか一項に記載の方法。
【請求項18】
前記反復的に調整することは、複数の反復にわたり小規模ステップ調整を使用することで前記第2の層内の前記第2のプロキシセルに接近させるように前記第2の層内の前記第2のアンカーセルを徐々に移動させることにより、前記第2の層内の前記第2のアンカーセルの場所と前記第1の層内の前記第1のアンカーセルの場所を同じ場所に近接させるように収束させることを含む、請求項9~17のうちのいずれか一項に記載の方法。
【請求項19】
前記第2の層内の前記第2のアンカーセルの場所を前記第1の層内の前記第1のアンカーセルの場所に近接させるように収束させることは、前記多層配置内における前記複数の標準セルの共配置に関し、当該共配置は、前記第1の層内の前記第1のアンカーセルの場所と同じ前記第2の層内の前記第2のプロキシセルの場所に対して前記第2のアンカーセルの場所を前記多層フェンス境界内で移動させるような前記第1のアンカーセルと前記第2のアンカーセルの共配置を含む、請求項9~18のうちのいずれか一項に記載の方法。
【請求項20】
プロセッサと、
前記プロセッサによって実行されたときに前記プロセッサに以下の動作を実施させる命令を記憶したメモリであって、当該命令により、前記プロセッサが、
多層配置で互いに隣接して配置された複数の標準セルを有する3次元集積回路(3DIC)であって、層間接続部で接続された多層ネットを含む前記3DICの複数の層を定義し、
前記層間接続部を同一ネットに属する層間接続部ペアとしてペア化し、
複数のグループにグループ化することであって、複数の層の前記層間接続部ペアの有無によらず前記複数の標準セルのうちの第1のアンカーセルを前記複数の標準セルのうちの第2のアンカーセルとグループ化し、
前記層間接続部ペアの有無によらず前記複数の標準セルの物理的場所の周囲に多層フェンス境界を生成することにより、前記複数のグループの各グループ内で前記層間接続部ペアの有無によらず前記複数の標準セルを関連付けし、
前記層間接続部の場所によらず前記複数の標準セルの場所を反復的に調整することにより、前記層間接続部の場所によらず前記第2のアンカーセルの場所と前記第1のアンカーセルの場所とを同じ場所に近接させて最適化された場所または正当な場所に同時に収束させる、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、概して、集積回路の製造に関する。
【背景技術】
【0002】
現在の集積回路の製造において、従来型のセルアーキテクチャ設計は、通常、2次元電子設計自動化(EDA)ツールで生成されるが、使用する上で非効率的で扱い難いものとなっている。いくつかの2D設計フローは、標準セルと層間ビアの位置を決定するために2D配置ソリューションを直接採用する場合があるが、3次元(3D)最適化の結果は限られている。他のいくつかの2D設計フローは、複数の層にわたる3D最適化のためにブロック分割を提案する。しかしながら、層間ビアの位置は、通常、単一の層からの2D配置ソリューションによって決定されるため、複数の層間での相互最適化を欠くものとなっている。
【発明の概要】
【0003】
本明細書には、方法の種々の実装形態が記載される。方法は、多層配置で互いに隣接して配置された複数の標準セルを有する集積回路の複数の層を定義することを含み得る。前記集積回路は、層間接続部で接続された多層ネットを含み得る。方法は、前記層間接続部を同一ネットに属する層間接続部ペアとしてペア化することを含み得る。方法は、複数の層の前記層間接続ペア部の有無によらず前記複数の標準セルのうちの1つ以上のセルを複数のグループにグループ化することを含み得る。方法は、前記層間接続部ペアの有無によらず前記複数の標準セルの物理的場所の周囲に多層フェンス境界を生成することにより、前記複数のグループの各グループ内で前記層間接続部ペアの有無によらず前記複数の標準セルを関連付けることを含み得る。方法は、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を反復的に調整することにより、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を所定の最適化されたまたは正当な位置(または場所)に収束させることを含み得る。
【0004】
添付の図面を参照して、種々の技術の実装形態が本明細書で説明される。しかしながら、添付の図面は、本明細書に記載される種々の実装形態のみを例示するものであり、本明細書に記載される種々の技術の実施形態を限定することを意図するものではない。
【図面の簡単な説明】
【0005】
図1A】本明細書に記載される種々の実装形態による多層集積回路の斜視図を示す。
図1B】本明細書に記載される種々の実装形態による多層集積回路の斜視図を示す。
図2A】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図2B】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図2C】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図2D】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図2E】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図2F】本明細書に記載される種々の実装形態による複数層の2次元(2D)平面図を示す。
図3A】本明細書に記載される種々の実装形態による複数層の他の2次元(2D)平面図を示す。
図3B】本明細書に記載される種々の実装形態による複数層の他の2次元(2D)平面図を示す。
図3C】本明細書に記載される種々の実装形態による複数層の他の2次元(2D)平面図を示す。
図4】本明細書に記載される種々の実装形態による種々の複数層にわたる標準セルおよび/または層間ビアの共配置を可能にする最適化方法を説明する図である。
図5】本明細書に記載される種々の実装形態による種々の複数層にわたる標準セルおよび/または層間ビアの共配置を可能にする最適化方法を説明する図である。
図6】本明細書に記載される種々の実装形態による種々の複数層にわたる標準セルおよび/または層間ビアの共配置を可能にする最適化方法を説明する図である。
図7】本明細書に記載される種々の実装形態による集積回路を製造する方法のプロセスフローを示す図である。
図8】本明細書に記載される実装形態による集積回路内の標準セルの多層共配置のためのシステムを示す図である。
図9】本明細書に記載される種々の実装形態による多層フェンス境界を反復的に調整する方法を示す図である。
【発明を実施するための形態】
【0006】
本明細書に記載される種々の実装形態は、例えば、3次元集積回路(3DIC)を含む集積回路向け多層共配置(multi-tier co-placement)に言及してそれを対象とするものである。本明細書で以下に説明されるように、種々の3DIC設計手法が、標準セルおよび/または層間ビアの多層共配置に関して提供される。共配置は、反復境界手順および配置指示器(またはエンジン)を使用して実現され得る。反復境界手順は、標準セルおよび/または層間ビアの多層(領域)フェンス境界化、クラスタ化/グループ化で実装され得る。多層(領域)フェンス境界化、クラスタ化/グループ化は、例えば、標準セルクラスタ化、多層フェンスなどの電子自設計自動化(EDA:Electronic Design Automation)インターフェースで実装され得る。反復的な多層(領域)フェンス境界化(またはクラスタ化やグループ化)は、一対の標準セル/層間ビアに限定されず、複数層にわたる一連の標準セル/層間ビアのグループ化/クラスタ化に拡張することができる。結果の質に関して、本明細書に記載される反復多層フェンス境界化技術は、標準セルおよび/または層間ビアのグループの境界ボックスに反復縮小スキームを提供する。配置指示器(またはエンジン)は、2Dまたは3D配置エンジンであり得る。標準セル/層間ビアの共配置により、層間ビアの最終的な位置を層間ビアの任意のグリッド構造に容易に適応させることが可能となる。共配置が2D配置エンジンで実装されている場合、反復境界化により、層間ビアの位置を任意のグリッド構造に収束させることができる。共配置は3D配置エンジンで実装することもでき、この3D配置エンジンは、配置結果を取得して、任意のグリッド構造に基づいて層間ビアの位置を決定することができる。本明細書に記載される種々の実装形態は、2層3DICに限定されず、任意数の所与の層間での標準セルおよび層間ビアの配置に拡張することが可能である。本明細書に記載される種々の実装形態は、例えば、モノリシック3D、フェイスツーフェース(face-to-face)ボンディング、シリコン貫通ビア(TSV)などの種々のタイプの3D技術に適応可能であり得る。さらに、本明細書に記載される種々の実装形態は、2D-EDAツールを使用して3DIC設計の結果の質を向上させることができる。
【0007】
以下、図1A図9を参照して、集積回路向け多層共配置の種々の実装形態について詳しく説明する。
図1Aおよび図1Bは、本明細書に記載される種々の実装形態による多層集積回路100の斜視図100A,100Bを示す。いくつかの例では、多層集積回路(IC)100は、多層アーキテクチャで配置された複数のレイヤを有する3次元集積回路(3DIC)と呼ばれる場合もある。多層IC100は、x、y、z方向構成120で配向される。
【0008】
図1Aに示されるように、多層集積回路100は、集積回路100の一部として定義される第1の層102および第2の層104を含み、それらは、多層配置で互いに隣接して配置される複数の標準セル112,114を含み得る。いくつかの例では、多層集積回路(IC)100は、層間ビアとともに複数の標準セル112,114を含み、後述するように、多層ネットは、第1の層102と第2の層104との間の層間接続部を含む。第1の層102は、その内部に埋め込まれた(またはその一部として)1つ以上の第1の標準セル112を有する第1の基板レイヤ106により具現化され、第2の層104は、その内部に埋め込まれた(またはその一部として)1つ以上の第2の標準セル114を有する第2の基板レイヤ108により具現化され得る。さらに、多層IC100は、互いに平行な複数の層102,104を含み得る。多層構造の各層102,104は、レイヤとも呼ばれ得る。したがって、例えば、第1の層102を第1のレイヤとし、第2の層104を第1のレイヤに平行な第2のレイヤとしてもよく、複数のレイヤは、第1の層102が第2の層104に(またはその逆で)重なるように互いに重なり合うように配置されている。
【0009】
第1の層102の1つまたは複数の第1の標準セル112は、第1のアンカーセル112A、第2のアンカーセル112B、第3のアンカーセル112C、第4のアンカーセル112D、および第5のアンカーセル112Eを含み得る。第2の層104の1つまたは複数の第2標準セル114は、第1のアンカーセル114A、第2のアンカーセル114B、第3のアンカーセル114C、第4のアンカーセル114D、および第5のアンカーセル114Eを含み得る。図示されるように、第1の層102におけるそれぞれのアンカーセル112は、第2の層114におけるそれぞれの第2のアンカーセル114とペアにされ得る。例えば、第1の層102内の第1のアンカーセル112Aと第2の層104内の第1のアンカーセル114Aとは、第1のアンカーセル112Aと第2のアンカーセル114Aとを多層ネット内にグループ化し、その多層ネットの周囲に多層(3D)フェンス境界140を生成することによって、ペアとされ得る。同様に、図示されるように、第1の層102における他のアンカーセル112B,112C,112D,112Eは、第2の層104における対応するアンカーセル114B,114C,114D,114Eとペアとされ得る。いくつかの実装形態では、多層(3D)フェンス境界140は、領域フェンス、領域フェンス境界、および/またはフェンス境界とも呼ばれ得る。
【0010】
多層(3D)フェンス境界140は、例えば、第1の矩形領域140Aと第2の矩形領域140Bと垂直横断領域140Cとを含む複数の構成要素(または部品)を含み得る。垂直横断領域140Cは例示の目的であり、実際の物理的実装では、垂直横断領域140Cは存在し得ないことが理解され得る。例えば、図1Bに示されるように、第1の矩形領域140Aは、第1の層102内における第1のアンカーセル112Aと第1のプロキシセル122Aとを囲む第1の層102のエリア(またはその一部)内に画定され得る。第2の矩形領域140Bは、第2の層104内における第1のアンカーセル114Aと第2のプロキシセル124Aとを囲む第2の層104のエリア(またはその一部)内に画定され得る。垂直横断領域140Cは、第1の矩形領域140Aと第2の矩形領域140Bとの間に画定され、第1の層102と第2の層104との間に延在する。種々の実装形態において、プロキシセルは、異なる層に配置されたアンカーセルを表す代理(stand-in)アンカーセルとして機能する代替アンカーセルを指し、疑似セル、バッファセル、または代理(surrogate)アンカーセルとも呼ばれ得る。
【0011】
図1Bを参照すると、複数の標準セル112,114のうちの1つ以上のセル(例えば、112A,114A)が第1の層102および第2の層104から選択され得るが、これは、第1の層102から第1のアンカーセル112Aを選択するとともに、第2の層104から第1のアンカーセル114Aを選択することを含む。さらに、第1の層102における第1のアンカーセル112Aと第2の層104における第1のアンカーセル114Aとは、第2の層104の第1のアンカーセル114Aの位置(または場所)に対して第1の層102の第1のプロキシセル122Aの場所を追加(または配置)し、第1の層102の第1のアンカーセル112Aの位置(または場所)に対して第2の層104の第2のプロキシセル124Aを別の場所に追加(または配置)することによって、関連付けられ得る。本明細書に記載される種々の実装形態において、「位置」という用語は、「場所」という用語を指すことがあり、これらの用語は、本開示の範囲を変更することなく置換可能と見なされ得る。したがって、いくつかの例では、第1の層102における第1のアンカーセル112Aと第2の層104における第1のアンカーセル114Aとは、(第1の層102の)第1のアンカーセル112Aと、(第1の層102の)第1のプロキシセル122Aと、(第2の層104の)第1のアンカーセル114Aと、(第2の層104の)第2のプロキシセル124Aとをグループ化し、多層ネット全体の周囲に多層フェンス境界140を生成することによって、ペアとされ得る。この例では、図1Bに示されるように、多層フェンス境界140は、3次元(3D)多層フェンス境界として具体化され得る。同様に、図示されるように、第1の層102における他のアンカーセル112B,112C,112D,112Eは、(第1の層102の)対応するプロキシセル122B,122C,122D,122Eと、(第2の層104の)対応するアンカーセル114B,114C,114D,114Eと、(第2の層104の)対応するプロキシセル124B,124C,124D,124Eとともに他の多層ネット内にグループ化され得る。この場合、各グループは、各々の多層ネットグループ全体の周囲に独自の多層フェンス境界を含み得る。
【0012】
本明細書で以下に説明するように、第1の層102の第1のアンカーセル112Aに対する第2の層104の第1のアンカーセル114Aの位置(または場所)は、これらのセル114A,112Aがそれぞれの層102,104で移動して互いに近づくように、反復的に調整され得る。この移動は、多層ネット内で(第1の層102の)第1のプロキシセル122Aの位置と(第2の層104の)第2のプロキシセル124Aの位置を固定し、多層フェンス境界140を縮小(または小さくする)することによって、第2の層104内の第1のアンカーセル114Aの位置(または場所)を、第1の層102内の第1のアンカーセル112Aの位置(または場所)と同じ場所(または位置)に近接させるように収束させることによって達成され得る。さらに、本明細書で以下に説明するように、多層集積回路(IC)100は、第2の層104における第2のアンカーセル114A(またはその逆)の調整位置(または場所)に基づいて第1および第2のアンカーセル112A,114Aが多層配置内で互いに隣接して配置されるように製造され得るか製造させられ得る。なお、「位置」という用語と「場所」という用語は同様の意味を有し、これら「位置」という用語と「場所」という用語は、同じ扱いで置換可能とされ得る。
【0013】
図2A図2Fは、図1Aおよび図1Bに関連する上記の説明を参照して、本明細書に記載される種々の実装形態による複数の層102,104の平面図200A,200B,200C,200D,200E,200Fを示す。
【0014】
図2Aは、特に、多層配置内で互いに隣接して配置された複数の標準セル112A~112E,114A~114Eを有する多層集積回路100の第1の層102および第2の層104を定義することを示している。図2Aに示されるように、第1の層102内のアンカーセル112A,112B,112C,112D,112Eの各々は、第2の層104内の対応するアンカーセル114A,114B,114C,114D,114Eの各々とペアにされ得る。図2Bに示されるように、第1の層102内のプロキシセル122A,122B,122C,122D,122Eの各々は、第1の層102内の対応するアンカーセル112A,112B,112C,112D,112Eの各々と関連付けられ得る(例えば、仮想的に関連するものとされるか、またはその仮想インスタンスとされる)。さらに、第2の層104内のプロキシセル124A,124B,124C,124D,124Eの各々は、第2の層104内の対応するアンカーセル114A,114B,114C,114D,114Eの各々と関連付けられ得る(例えば、仮想的に関連するものとされるか、またはその仮想インスタンスとされる)。
【0015】
この場合、例えば、図2Aおよび図2Bは、第2の層104内の第1のアンカーセル114Aの位置(または場所)に対して第1の層102内の第1のプロキシセル122Aの場所を追加(または配置)し、第1の層102内の第1のアンカーセル112Aの位置(または場所)に対して第2の層104内の第2のプロキシセル124Aを別の場所に追加(または配置)することによって、第1の層102内の第1のアンカーセル112Aを第2の層104内の第1のアンカーセル114Aに関連付けることを示している。
【0016】
図2Aは、アーキテクチャおよびブロックレベルの分割および初期配置を参照して、円で示される標準セルおよび/または層間ビアのセットの場所を示す。破線は2つの円のペアを接続し、標準セルおよび/または層間ビアの2つのグループは、第1の層102および第2の層104などの複数の層にまたがっている。同図は、同じ電気接続部に属する一連の層間ビアを指しており、この例では、同じ電気接続部に属する層間ビアのペアについて、グリッド位置合わせを可能にするべくxy座標で互いに位置合わせされる2つの層にまたがる種々の層間ビアの場所(有効な層間ビアの場所は図2Fを参照して後述する)が提供される。
【0017】
図2C~2Fは、プロキシセル122A,122B,122C,122D,122Eの位置とプロキシセル124A,124B,124C,124D,124Eの位置を多層ネット内で固定することにより、第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置と第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置を互いに接近させるように反復的に調整することを示している。いくつかの場合において、これらのプロキシセル124A~124Eは単一の電気ネットに属さず単一のバスに属する場合があるが、この場合、バスはネットの集合を指してもよく、各ネットが多層ネットであってもよい。いくつかの例において、これは、多層(3D)フェンス境界140を(例えば、図1Bに示されるように)縮小することによって、第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置(または場所)と第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置(または場所)を同じ場所(または位置)に近接させるように収束させることによって達成され得る。概して、「位置」という用語と「場所」という用語は同様の意味を有し、これら「位置」という用語と「場所」という用語は、同じ扱いで置換可能とされ得る。
【0018】
例えば、図2C図2Fを参照すると、第2の層104内の第1のアンカーセル114Aの位置は、第1のプロキシセル122Aと第2のプロキシセル124Aの位置を多層ネット内で固定することにより、第1の層102内の第1のアンカーセル112Aに対して互いに接近するように反復的に調整され得る。上記のように、これは、多層フェンス境界140を(図1Bに示すように)縮小することによって、第2の層104の第1のアンカーセル114Aの場所と第1の層102の第1のアンカーセル114Aの位置を同じ場所(または位置)に近接させるように収束させることによって達成され得る。
【0019】
いくつかの実装形態では、図2C図2Fを参照すると、第2の層104内のアンカーセル114A,114B,114C,114D,114Eとプロキシセル124A,124B,124C,124D,124Eとの間に第1の力132が加えられることにより、第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置と第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置が互いに接近するように収束する。例えば、第2の層104内の第1のアンカーセル114Aと第2の層104内の第1のプロキシセル124Aとの間、および第1の層内の第1のアンカーセル112Aと第1の層内の第1のプロキシセル122Aとの間に第1の力132が加えられることにより、第2の層104内の第1のアンカーセル114Aと第1の層102内の第1のアンカーセル112Aの位置が同じ場所に収束する。
【0020】
同様に、いくつかの実装形態では、第1の層102内のアンカーセル112A,112B,112C,112D,112Eとプロキシセル124A,124B,124C,124D,124Eとの間に第2の力134が加えられることにより、第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置と第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置が互いに接近するように収束する。例えば、第2の力134が第1の力132と実質的に一致するように第1の層102内の第1のプロキシセル122Aと第1の層102内の第1のアンカーセル112Aとの間に第2の力134が加えられることにより、第2の層104内の第1のアンカーセル114Aと第1の層102内の第1のアンカーセル112Aの位置が同じ場所に収束する。
【0021】
図3A図3Cは、図1A図2Fに関連する上記の説明を参照して、第1の層102および第2の層104の2次元(2D)平面図を示す。
図3Aは、特に、プロキシセル122,124に向かう方向において第1および第2の層102,104内のアンカーセル112,114に力132,134を加えることにより、第1および第2の層102,104内のアンカーセル112,114が、それらのそれぞれの層102,104内で互いに接近するように収束する例を示している。この概念は、図1A図2Fを参照して上述したものである。
【0022】
図3Aはさらに、第2の層内の第2のアンカーセルの位置に対して第1の層内の第1のプロキシセルの場所を追加し、第1の層内の第1のアンカーセルの位置に対して第2の層内の第2のプロキシセルを別の場所に追加することによって、第1の層内の第1のアンカーセルを第2の層内の第2のアンカーセルに関連付ける例を示している。
【0023】
図3Bは、第1の層102内の第1のアンカーセル112Aと第1の層102内の第1のプロキシセル122Aを多層ネット内でグループ化し、その多層ネットの周囲において第1の層102内に多層フェンス境界140,140Aを生成することにより、第1のアンカーセル112Aを第1のプロキシセル122Aとペア化することを示している。したがって、図3Bはさらに、第1の層102内の第1のアンカーセル112Aと第1のプロキシセル122Aとを囲む第1の層102のエリア内に画定された第1の矩形領域140Aを有する多層フェンス境界140の例を示している。
【0024】
図3Cは、第2の層104内の第1のアンカーセル114Aと第2の層104内の第1のプロキシセル124Aを多層ネット内でグループ化し、その多層ネットの周囲において第2の層104内に多層フェンス境界140、140Bを生成することにより、第1のアンカーセル114Aを第1のプロキシセル124Aとペア化することを示している。したがって、図3Cはさらに、第2の層104内の第1のアンカーセル114Aと第1のプロキシセル124Aとを囲む第2の層104のエリア内に画定された第2の矩形領域140Bを有する多層フェンス境界140の例を示している。
【0025】
いくつかの実装形態において、図1A~3Cを参照すると、反復的に調整することは、第1の層102内のアンカーセル112A,112B,112C,112D,112Eに対する第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置の位置合わせを直接制約することにより、第1の層102内のアンカーセル112A,112B,112C,112D,112Eが第2の層104内のアンカーセル114A,114B,114C,114D,114Eと重なることを指し得る。いくつかの実装形態において、反復的に調整することは、第1の層102内のアンカーセル112A,112B,112C,112D,112Eとの位置合わせにおいて第2の層104内のプロキシセル124A,124B,124C,124D,124Eに向かう方向に第2の層104内のアンカーセル114A,114B,114C,114D,114Eが移動するように、第2の層104内のプロキシセル124A,124B,124C,124D,124Eに対して第2の層104内のアンカーセル114A,114B,114C,114D,114Eの力指向配置(force directed placement)を使用することに関連し得る。いくつかの実装形態において、反復的に調整することは、複数の反復にわたり小規模ステップ(small-scale step)調整を(例えば、図2C図2Fの順に示されるように)使用して、第2の層104内のプロキシセル124A,124B,124C,124D,124Eに接近させるように第2の層104内のアンカーセル114A,114B,114C,114D,114Eを徐々に移動させることにより、第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置と第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置を互いに近接させるように収束させることを含み得る。
【0026】
さらに、いくつかの実装形態において、図1A図3Cを参照すると、第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置と第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置を互いに近接させるように収束させることは、多層配置における標準セル112,114の共配置を指す。これは、第2の層104内のプロキシセル124A,124B,124C,124D,124Eの位置に対して第2の層104内のアンカーセル114A,114B,114C,114D,114Eの位置を多層フェンス境界140,140A,104B内で移動させるような第1の層102内のアンカーセル112A,112B,112C,112D,112Eと第2の層104内のアンカーセル114A,114B,114C,114D,114Eとの共配置を含み得る。これは、第1の層102内のアンカーセル112A,112B,112C,112D,112Eの位置と実質的に同じであり得る。
【0027】
本明細書に記載される種々の実装形態は、同じ電気接続部に属する層間ビア間の引っ張り力、例えば、ばねに概念的に類似する多層フェンス境界を伴う反復を提供する。第1の層102を多層フェンス境界に置き換える場合、第2の層104の層間ビアが固定され、これにより、多層フェンス境界を使用して第1の層102の層間ビアに引っ張り力(およびその逆)がさらに提供される。反復を通じて、多層フェンス/引っ張り力は(同じ電気接続部に属する)層間ビアを同じxy位置に引っ張る、すなわち有効なソリューションに収束し得る。この反復的な境界化手順は、標準セルおよび/または層間ビアの多層フェンス境界、グループ、またはクラスタ化を使用して実現され得る。
【0028】
本明細書に記載される種々の実装形態によれば、図4図6は、3DICの種々の複数の層にわたる標準セルおよび/または層間ビアの3D共配置を可能にする種々の最適化方法を説明する。
【0029】
図4は、本明細書に記載される種々の実装形態による設計認識分割のための方法400のプロセスフロー図を示す。
方法400は、特定の動作実行順序を示しているが、いくつかの場合には、動作の種々の部分が異なる順序でおよび異なるシステムで実行されてもよい。いくつかの場合には、追加の動作および/またはステップを方法400に追加してもよく、および/または方法400から動作および/またはステップを省略してもよい。方法400は、ハードウェアおよび/またはソフトウェアで実装され得る。ハードウェアで実施される場合、方法400は、例えば、図1A図3を参照して上述したような種々の回路構成要素で実施され得る。ソフトウェアで実装される場合、方法400は、本明細書に記載される設計認識分割を実装するように構成され得るプログラムまたはソフトウェア命令プロセスとして実装され得る。さらに、ソフトウェアで実装される場合、方法400の実装に関連する命令は、メモリおよび/またはデータベースに記憶され得る。例えば、プロセッサおよびメモリを有するコンピュータまたは種々の他のタイプのコンピューティングデバイスは方法400を実行するように構成され得る。
【0030】
図4を参照して説明され図示されるように、方法400は、種々のタイプのICアプリケーションにおける多層アーキテクチャの標準セルの直接的な共配置を実装する集積回路(例えば、3DIC)を製造するために使用され得る。いくつかの場合には、方法400は、標準セルの多層共配置を用いた3DICアーキテクチャ設計を製造するために構成された専用マシンを提供するコンピューティングデバイス(例えば、図8に示されるようなコンピューティングデバイス804)に関連付けられ得る。
【0031】
設計認識分割を参照すると、ブロック410において、方法400は、集積回路(例えば、3DIC)を設計するための設計モジュール間の接続情報を抽出し得る。例えば、ブロック412において、方法400は、設計制約および/またはターゲットを用いて集積回路の2D設計を実施し得る。ブロック414において、方法400は、分割を導くために集積回路の設計特性を抽出し得る。ブロック416において、方法400は、レジスタ転送レベル(RTL)コードを、例えば、第1(上部)グループおよび第2(下部)グループを含む2つのグループまたは分割などの複数のグループに分割し得る。
【0032】
3D実装に関して、ブロック420において、方法400は、集積回路の新たに改訂された(または修正された)設計において互いに隣接して配置された第1(上部)および第2(下部)グループまたは分割を定義し得る。ブロック422において、方法400は、第1(上部)および第2(下部)のグループまたは分割の多層共配置を第1(上部)および第2(下部)層として提供し得る。ブロック424において、方法400は、アンカーセルを使用して接続されている隣接する場所に第1(上部)の層と第2(下部)の層を同時に配置してルーティングし得る。
【0033】
タイミング分析に関して、ブロック430において、方法400はタイミング分析を実行し得る。ブロック432において、方法400は、新たに改訂された設計がタイミング要件を満たすかどうかを決定し得る。タイミング要件を満たさない場合、方法400は、新たに改訂された設計を調整し、ブロック430に移動してタイミング分析を繰り返し得る。タイミング要件を満たす場合、ブロック436において、方法400は、新たに改訂された設計を有効に(または承認)し得る。ブロック440において、方法400は、新たに改訂された設計を用いて集積回路の製造または製作に進み得る。
【0034】
いくつかの実装形態において、3D実装およびタイミング分析を参照すると、方法400は、多層配置で互いに隣接して配置された複数の標準セルを有する集積回路の複数の層を定義し得る。集積回路は、層間接続部で接続された多層ネットを含む。方法400は、層間接続部を同一ネットに属する層間接続部ペアとしてペア化し得る。方法400は、複数の標準セルのうちの1つ以上のセルを複数のグループにグループ化し得る、および/または複数の層の層間接続部ペアをグループ化し得る。方法400は、複数の標準セルおよび/または層間接続部ペアの物理的場所の周囲に多層フェンス境界を生成することにより、複数のグループの各グループ内で複数の標準セルおよび/または層間接続部ペアを関連付けし得る。方法400は、複数の標準セルの位置および/または層間接続部の位置を反復的に調整することにより、複数の標準セルの位置および/または層間接続部の位置を最適化された場所または正当な場所に収束させ得る。さらに、方法400は、複数の標準セルの位置および/または層間接続部の位置を同時に反復的に調整することにより、複数の標準セルの位置および/または層間接続部の位置を最適化された場所または正当な場所に収束させ得る。
【0035】
図5は、本明細書に記載される種々の実装形態による設計認識分割のための方法500のプロセスフロー図を示す。
方法500は、特定の動作実行順序を示しているが、いくつかの場合には、動作の種々の部分が異なる順序でおよび異なるシステムで実行されてもよい。いくつかの場合には、方法500に追加の動作および/またはステップを追加してもよく、および/または、方法500から特定の動作および/またはステップを省略してもよい。方法500は、ハードウェアおよび/またはソフトウェアで実装され得る。ハードウェアで実施される場合、方法500は、例えば、図1A図4を参照して上述したような種々の回路構成要素で実施され得る。ソフトウェアで実装される場合、方法500は、本明細書に記載される設計認識分割を実装するように構成され得るプログラムまたはソフトウェア命令プロセスとして実装され得る。さらに、ソフトウェアで実装される場合、方法500の実装に関連する命令は、メモリおよび/またはデータベースに記憶され得る。例えば、プロセッサまたはメモリを有するコンピュータまたは他の種々のタイプのコンピューティングデバイスは、方法500を実行するように構成され得る。
【0036】
図5を参照して説明され図示されるように、方法500は、種々のタイプのICアプリケーションにおける多層アーキテクチャの標準セルの直接的な共配置を実装する集積回路(例えば、3DIC)を製造するために使用され得る。いくつかの場合には、方法500は、標準セルの多層共配置を用いた3DICアーキテクチャ設計を製造するために構成された専用マシンを提供するコンピューティングデバイス(例えば、図8に示されるようなコンピューティングデバイス804)に関連付けられ得る。
【0037】
設計の多層共配置を参照すると、ブロック510において、方法500は、集積回路(例えば、3DIC)のための設計認識分割を実施し得る。ブロック514において、方法500は、多層配置を初期化し得る。ブロック518において、方法500は、プロキシセルおよび多層フェンス(または境界)を更新し得る。ブロック522において、方法500は、固定されたプロキシセルを有する多層の配置を提供し得る。ブロック526において、方法500は、多層フェンスが収束したかどうかを決定し得る。多層フェンスが収束していない場合、方法500はブロック518に戻り、ブロック518,522を繰り返す。多層フェンスが収束している場合、方法500はプロキシセルを削除し、アンカーセルの場所を更新する。ブロック532において、方法500は、固定されたアンカーセルを有する多層の配置を提供し得る。
【0038】
図6は、本明細書に記載される種々の実装形態による設計認識分割のための方法600のプロセスフロー図を示す。
方法600は、特定の動作実行順序を示しているが、いくつかの場合には、動作の種々の部分が異なる順序でおよび異なるシステムで実行されてもよい。いくつかの場合には、方法600に追加の動作および/またはステップを追加してもよく、および/または、方法600から特定の動作および/またはステップを省略してもよい。方法600は、ハードウェアおよび/またはソフトウェアで実装され得る。ハードウェアで実装される場合、方法600は、例えば、図1A図5を参照して上述したような種々の回路構成要素で実装され得る。ソフトウェアで実装される場合、方法600は、本明細書に記載される設計認識分割を実装するように構成され得るプログラムまたはソフトウェア命令プロセスとして実装され得る。さらに、ソフトウェアで実装される場合、方法600の実装に関連する命令は、メモリおよび/またはデータベースに記憶され得る。例えば、プロセッサまたはメモリを有するコンピュータまたは他の種々のタイプのコンピューティングデバイスは、方法600を実行するように構成され得る。
【0039】
図6を参照して説明され図示されるように、方法600は、種々のタイプのICアプリケーションにおける多層アーキテクチャの標準セルの直接的な共配置を実装する集積回路(例えば、3DIC)を製造するために使用され得る。いくつかの場合には、方法600は、標準セルの多層共配置を用いた3DICアーキテクチャ設計を製造するために構成された専用マシンを提供するコンピューティングデバイス(例えば、図8に示されるようなコンピューティングデバイス804)に関連付けられ得る。
【0040】
プロキシセルおよび多層フェンスの更新に関して、ブロック610において、方法600は、メモリセル、ポート、および標準セルの場所を含む集積回路の設計を受信し得る。ブロック620において、方法600は、設計の多層ネットから1つ以上のバス接続部を導出することにより、層間ビアおよび/または標準セルのペアのグループを抽出し得る。この場合、利用可能な層間ビアおよび/または標準セルが類似性によってグループ化され、グループ化された用語とともにグループコレクションに保存される。ブロック630において、方法600は、設計内の層間ビアおよび/または標準セルの場所を制限する多層フェンスファイルを生成し得る。この多層フェンスファイルは、グループコレクションに保存されている、抽出された層間ビアおよび/または標準セルのグループとグループ化された用語とに基づいている。ブロック640において、方法600は、設計における固定プロキシセルの場所を決定するプロキシセル場所ファイルを生成し得る。各プロキシセルの場所は、当該特定のプロキシセルと接続されている隣接する層上の対応するアンカーセルの場所に基づいて決定される。ブロック650において、方法600は、多層フェンスファイルおよびプロキシセル場所ファイルに基づいて、設計の物理的な配置を制御し得る。
【0041】
本明細書に記載される種々の実装形態は、分割、フロアプラン、配置、およびルーティングの種々の設計段階に続く3DICの任意の物理設計フローに統合され得る独立した最適化コンポーネントを提供する。図4図6は、標準セルおよび/または層間ビアの共配置のための種々のプロセスフローを示している。多層フェンス境界は、配置指示器(またはエンジン)によって使用され得る。配置指示器(またはエンジン)は、次の配置を繰り返すために複数の物理オブジェクト(例えば、複数の標準セル)の周囲に境界ボックスを設定することにより、これらのオブジェクトを一緒に取り込むために使用される。多層フェンス境界は、標準セルおよび/または層間ビアのグループ化/クラスタ化と置換され得る。
【0042】
分割および初期配置は、入力として提供され得る。多層フェンス境界は、各層の配置の次の反復を制約するために繰り返し更新され得る。いくつかの例では、2D配置エンジンが使用される場合、すべての層の配置が順番に行われ得る。他の例では、3D配置エンジンが使用される場合、すべての層の配置が順番にまたは同時に達成され得る。収束の基準は、設計毎または実行毎に異なり得る。すなわち、設計者は、配置品質などの設計メトリックに基づいて、いつ反復を停止するかを選択することができる。反復が終了すると、多層フェンス境界が物理的設計フローへの入力として使用され得る。前回の反復からの標準セル配置ソリューションの場合には、設計者はそれらを保持するか破棄するかを選択することができる。いくつかの用途では、多層フェンス境界は、多次元領域フェンスファイル(または場所)か、もしくは標準セル場所を含む配置ファイルとして具現化され得る。
【0043】
図7は、本明細書に記載される種々の実装形態による集積回路を製造するための方法700のプロセスフロー図を示す。
方法700は、特定の動作実行順序を示しているが、いくつかの場合には、動作の種々の部分が異なる順序でおよび異なるシステムで実行されてもよい。いくつかの場合には、方法700に追加の動作および/またはステップを追加してもよく、および/または、方法700から特定の動作および/またはステップを省略してもよい。方法700は、ハードウェアおよび/またはソフトウェアで実装され得る。ハードウェアで実装される場合、方法700は、例えば、図1A図6を参照して上述したような種々の回路構成要素で実装され得る。ソフトウェアで実装される場合、方法700は、本明細書に記載されるような、種々のタイプのICアプリケーションにおける多層アーキテクチャの標準セルの直接的な共配置を実装するように構成され得るプログラムまたはソフトウェア命令プロセスとして実装され得る。また、ソフトウェアで実装される場合、方法700の実装に関連する命令は、メモリおよび/またはデータベースに記憶され得る。例えば、プロセッサまたはメモリを有するコンピュータまたは他の種々のタイプのコンピューティングデバイスは、方法700を実行するように構成され得る。
【0044】
図7を参照して説明され図示されるように、方法700は、種々のタイプのICアプリケーションにおける多層アーキテクチャの標準セルの直接的な共配置を実装する集積回路(例えば、3DIC)を製造するために使用され得る。いくつかの場合には、方法700は、標準セルの多層共配置を備えた3DICアーキテクチャ設計を製造するために構成された専用マシンを提供するコンピューティングデバイス(例えば、図8に示されるようなコンピューティングデバイス804)に関連付けられ得る。
【0045】
ブロック710において、方法700は、多層配置で互いに隣接して配置された複数の標準セルを有する集積回路(3DIC)の第1の層および第2の層を含む複数の層を定義し得る。集積回路(3DIC)は、互いに平行な複数のレイヤを含み得る。複数のレイヤの各レイヤは、層(tier)とも呼ばれ得る。したがって、第1の層は第1のレイヤであってもよく、第2の層は第1のレイヤに平行な第2のレイヤであってもよい。複数のレイヤは、第1の層が第2の層を覆うように互いに重なるように配置され得る。集積回路(3DIC)は複数の標準セルとともに層間ビアを含み、多層ネットは、第1の層と第2の層との間の層間接続部を含む。
【0046】
ブロック720において、方法700は、第1の層および第2の層から複数の標準セルのうちの1つ以上のセルを選択することを含み得る。この選択は、第1の層から第1のアンカーセルを選択し、第2の層から第2のアンカーセルを選択することを含む。ブロック730において、方法700は、第2の層内の第2のアンカーセルの位置(または場所)に対して第1の層内の第1のプロキシセルの場所を追加し、第1の層内の第1のアンカーセルの位置(または場所)に対して第2の層内の第2のプロキシセルを別の場所に追加することによって、第1の層内の第1のアンカーセルを第2の層内の第2のアンカーセルに関連付け得る。なお、「位置」という用語と「場所」という用語は同様の意味を有し、これら「位置」という用語と「場所」という用語は、互換的に適用され得る。
【0047】
ブロック740において、方法700は、第1のアンカーセル、第1のプロキシセル、第2のアンカーセル、および第2のプロキシセルを多層ネット内にグループ化し、その多層ネットの周囲に多層フェンス境界を生成することによって、第1の層内の第1のアンカーセルを第2の層内の第2のアンカーセルとペア化し得る。多層フェンス境界は、第1のアンカーセルと第1のプロキシセルとを囲む第1の層内のエリア内に画定された第1の矩形領域を含む。また、多層フェンス境界は、第2のアンカーセルと第2のプロキシセルとを囲む第2の層内のエリア内に画定された第2の矩形領域を含む。多層フェンス境界はさらに、第1の層と第2の層との間に延在する、第1の矩形領域と第2の矩形領域との間に画定された垂直横断領域を含み得る。上記したように、垂直横断領域は例示を目的としたものであり、実際の物理的な実装では、垂直横断領域140Cは存在し得ないことが理解され得る。
【0048】
ブロック750において、方法700は、多層ネット内で第1のプロキシセルと第2のプロキシセルの位置を固定して多層フェンス境界を縮小することにより、第2の層内の第2のアンカーセルと第1の層内の第1のアンカーセルの位置(または場所)を互いに接近させるように反復的に調整し、これにより、第1の層内の第1のアンカーセルの場所と第2の層内の第2のアンカーセルの場所を同じ場所に収束させ得る。いくつかの場合において、反復的に調整することは、第1のアンカーセルが第2のアンカーセルと重なるように、第1の層内の第1のアンカーセルに対する第2の層内の第2のアンカーセルの位置(または場所)の位置合わせを直接制約することに関連し得る。いくつかの例では、反復的に調整することは、第1の層内の第1のアンカーセルとの位置合わせにおいて第2のプロキシセルに向かう方向に第2のアンカーセルが移動するように、第2の層内の第2のプロキシセルに対して第2の層内の第2のアンカーセルの力指向配置を使用することに関連し得る。他の例では、反復的に調整することは、複数の反復にわたり小規模ステップ調整を使用することで第2の層内の第2のプロキシセルに接近させるように第2の層内の第2のアンカーセルを徐々に移動させることにより、第2の層内の第2のアンカーセルの位置(または場所)と第1の層内の第1のアンカーセルの位置(または場所)を互いに近接させるように収束させることを含む。
【0049】
いくつかの実装形態では、第2の層内の第2のアンカーセルの位置(または場所)と第1の層内の第1のアンカーセルの位置(または場所)を互いに近接させるように収束することは、多層配置における標準セルの共配置に関連し得る。また、これは、第1の層内の第1のアンカーセルの位置(または場所)と実質的に同じ第2の層内の第2のプロキシセルの位置(または場所)に対して第2のアンカーセルの位置(または場所)を多層フェンス境界内で移動させるような第1のアンカーセルと第2のアンカーセルの共配置を含み得る。
【0050】
ブロック760において、方法700は、第2の層内の第2のアンカーセルの調整された位置(または場所)に基づいて、または第1の層内の第1のアンカーセルの調整された位置(または場所)に基づいて第1および第2のアンカーセルが多層配置で互いに隣接して配置された集積回路(3DIC)を製造し得るかまたは製造させられ得る。
【0051】
いくつかの実装形態では、方法700は、第1の層内の第1のアンカーセルと第1の層内の第1のプロキシセルとの間、および第2の層内の第2のアンカーセルと第2の層内の第2のプロキシセルとの間に第1の力を加えることにより、第1の層内の第1のアンカーセルと第2の層内の第2のアンカーセルの位置(または場所)を同じ場所に収束させることを含み得る。さらに、いくつかの実装形態では、方法700は、第1の層内の第1のプロキシセルと第1の層内の第1のアンカーセルとの間に、第1の力と一致するように第2の力を加えることにより、第2の層内の第2のアンカーセルの場所と第1の層内の第1のアンカーセルの場所を互いに接近させるように収束させることを支援し得る。いくつかの場合には、第1の力と第2の力は同一であり得る。
【0052】
図8は、本明細書に記載される種々の実装形態による、例えば3DICなどの集積回路における標準セルの多層共配置のためのシステム100の図800を示す。
図8を参照すると、システム800は、多層アーキテクチャにおける標準セルの共配置を指示するように構成されたコンピュータベースのシステムを含み得る。本明細書に記載されるように、システム800は、標準セルの多層共配置のために構成された専用マシンとして実装されるコンピューティングデバイス804に関連付けられ得る。いくつかの場合には、コンピューティングデバイス804は、少なくとも1つのプロセッサ810、メモリ812(例えば、非一時的なコンピュータ可読記憶媒体)、1つ以上のデータベース840、電源装置、周辺機器、および図8に具体的に示されていない他の種々のコンピューティング要素および/またはコンポーネントを含む、任意の標準要素および/またはコンポーネントを含み得る。コンピューティングデバイス804は、プロセッサ810によって実行可能である非一時的なコンピュータ可読媒体812に記憶された命令を含み得る。コンピューティングデバイス804は、例えば、グラフィカルユーザインターフェース(GUI)などのユーザインターフェース(UI)852を提供するために使用され得るディスプレイデバイス850(例えば、モニタまたは他のディスプレイ)に関連付けられ得る。いくうかの例では、UI852は、多層共配置のためにコンピューティングデバイス804を管理、操作、および/または利用するために、ユーザから種々のパラメータおよび/または選択を受け取るために利用され得る。したがって、コンピューティングデバイス804は、ユーザに出力を提供するためのディスプレイデバイス850を含み得る。このディスプレイデバイス850は、ユーザからの入力を受け取るためのUI852を含み得る。
【0053】
種々の実装形態では、コンピューティングデバイス804は、標準セルの多層共配置に基づいて集積回路(例えば、3DIC)を製造するための方法を実装するように構成され得る。例えば、コンピューティングデバイス804は、標準セルおよび/または層間ビアの多層共配置のための3DIC設計方法を対象として構成され得る。共配置は、共配置エンジンを用いた反復的な境界スキームおよび手順によって実現され得る。標準セルおよび/または層間ビアの共配置により、層間ビアの最終的な位置を、層間ビアの任意のグリッド構造に容易に適応化させることが可能となる。本明細書に記載されるこのような多層共配置の概念は、2層の3DICに限定されるものではなく、任意の数の所与の層間での標準セルおよび層間ビアの共配置に適応化させることができる。また、この多層共配置の概念は、モノリシック3D、フェイスツーフェース(face-to-face)ボンディング、シリコン貫通ビア(TSV:through-silicon-via)などの種々のタイプの3D技術に適応可能であり得る。
【0054】
図8を参照すると、コンピューティングデバイス804は、多層アーキテクチャにおける標準セルの直接共配置ファイルを生成するための配置指示器(またはエンジン)820を含み得る。いくつかの例では、コンピューティングデバイス804は、本明細書に記載される方法に従って標準セルおよび/または層間ビアの多層共配置を用いて3DICアーキテクチャを設計するために配置指示器(またはエンジン)820を利用し得る。
【0055】
配置指示器(またはエンジン)820は、少なくとも1つのプロセッサ810に、多層配置で互いに隣接して配置された複数の標準セルを有する3DICの複数の層を定義させるように構成され得る。3DICは、層間接続部で接続された多層ネットを含む。いくつかの例では、複数の層は第1の層および第2の層を含み得る。第1の層および第2の層は、多層配置で互いに隣接して配置された複数の標準セルを含む。また、複数の層を定義することは、第1の層および第2の層から複数の標準セルのうちの1つ以上のセルを選択することを含み得る。この選択は、第1の層から第1のアンカーセルを選択し、第2の層から第2のアンカーセルを選択することを含む。さらに、複数の層を定義することは、第2の層内の第2のアンカーセルの位置(または場所)に対して第1の層内の第1のプロキシセルの場所を追加し、第1の層内の第1のアンカーセルの位置(または場所)に対して第2の層内の第2のプロキシセルを別の場所に追加することによって、第1の層内の第1のアンカーセルを第2の層内の第2のアンカーセルに関連付けることを含み得る。なお、「位置」という用語と「場所」という用語は同様の意味を有し、これら「位置」という用語と「場所」という用語は、互換的に適用され得る。
【0056】
配置指示器(またはエンジン)820は、少なくとも1つのプロセッサ810に、層間接続部を同一ネット(すなわち、多層ネット)に属する層間接続部ペアとしてペア化させるように構成され得る。配置指示器(またはエンジン)820は、少なくとも1つのプロセッサ810に、複数の標準セルのうちの1つ以上のセルを複数のグループにグループ化させ得る、および/または複数の層からの層間接続部ペアをグループ化させ得る。配置指示器(またはエンジン)820は、少なくとも1つのプロセッサ810に、複数の標準セルおよび/または層間接続部ペアの物理的場所の周囲に多層フェンス境界を生成することによって、複数のグループの各グループ内で複数の標準セルおよび/または層間接続部ペアを関連づけさせ得る。いくつかの場合には、層間接続部を同一ネットに属する層間接続部ペアとしてペア化することは、第1のアンカーセル、第1のプロキシセル、第2のアンカーセル、および第2のプロキシセルを同一の多層ネット内にグループ化し、その多層ネットの周囲に多層フェンス境界を生成することにより、第1の層内の第1のアンカーセルを第2の層内の第2のアンカーセルとペア化させることを含む。
【0057】
配置指示器(またはエンジン)820は、少なくとも1つのプロセッサ810に、複数の標準セルの位置(または場所)および/または層間接続部の位置(または場所)を反復的に調整させることにより、複数の標準セルの位置(または場所)および/または層間接続部の位置(または場所)を最適化されたまたは正当な場所に同時に収束させるように構成され得る。いくつかの例では、複数の標準セルの位置(または場所)および/または層間接続部の位置(または場所)を反復的に調整することは、多層ネット内で第1のプロキシセルと第2のプロキシセルの位置を固定して多層フェンス境界を縮小することにより、第2の層内の第2のアンカーセルと第1の層内の第1のアンカーセルの位置(または場所)を互いに接近させるように反復的に調整し、これにより、第1の層内の第1のアンカーセルの位置(または場所)と第2の層内の第2のアンカーセルの位置(または場所)を互いに近接させるように収束させることを含み得る。
【0058】
いくつかの実装形態では、コンピューティングデバイス804および配置指示器(またはエンジン)820は、最適化された場所または正当な場所における複数の標準セルの調整された位置(または場所)および/または層間接続部の調整された位置(または場所)に基づいて多層配置で互いに隣接して配置された複数の標準セルを有する3DICを製造するかまたは製造させるように構成され得る。したがって、コンピューティングデバイス804は、配置指示器(またはエンジン)820を使用して多層アーキテクチャにおける標準セルのための直接共配置ファイルを生成し、電子設計自動化(EDA)ツールを使用して標準セルおよび/または層間ビアの多層共配置のための3DICアーキテクチャ設計の静的タイミング分析(STA)および電力分析を実行し得る。
【0059】
コンピューティングデバイス804は、少なくとも1つのプロセッサ810に、標準セルおよび/または層間ビアの多層共配置のための3DICアーキテクチャ設計の1つまたは複数のシミュレーションを生成させるように構成されたシミュレータ822を含み得る。種々の例において、シミュレータ822は、3DICアーキテクチャ設計のSPICEシミュレーションを生成するように構成されたSPICEシミュレータ(またはそれに類似するもの)を含み得る。概して、SPICEは、オープンソースのアナログ電子回路シミュレータである集積回路用シミュレーションプログラム(Simulation Program with Integrated Circuit Emphasis)の頭字語である。また、SPICEは、集積回路設計の完全性をチェックして集積回路設計の挙動を予測するために半導体業界によって使用される汎用ソフトウェアプログラムである。したがって、いくつかの例では、配置指示器(またはエンジン)820は、シミュレータ822とインターフェースして、電圧変動や温度変動の範囲を含む動作条件の変動の範囲における3DICアーキテクチャ設計の1つまたは複数のシミュレーション(例えば、SPICEシミュレーションを含む)に基づいて第1のタイミングデータを生成するように構成され得る。
【0060】
いくつかの実装形態では、コンピューティングデバイス804は、標準セルおよび/または層間ビアの多層共配置のための3DICアーキテクチャ設計ファイルの生成に関連する種々の情報を記憶および/または記録するように構成された1つまたは複数のデータベース840を含み得る。例えば、データベース(1つまたは複数)840は、3DICアーキテクチャ設計、1つ以上の種々のタイミングデータ(第1および第2のタイミングデータを含む)、およびシミュレートされたモデリングデータに関連する情報を記憶するように構成され得る。さらに、データベース840は、シミュレーションデータ(例えば、SPICEシミュレーションデータを含む)を参照して3DICアーキテクチャ設計に関連する種々の情報を記憶/記録するように構成され得る。
【0061】
図9は、本明細書に記載される実施態様による多層フェンス境界を反復的に調整するための方法900の図を示す。図9は、いくつかの場合において、配置の反復のために多層フェンス境界を反復的に計算する手法を示している。なお、関連する表記は、表1で定義されている。
【0062】
【表1】
図9において、左側の図910は、多層フェンス境界の外側ボックス912、すなわち以前の(k番目の)配置の反復からのgのb を示し、右側の図920は、次の((k+1)番目の)配置の反復について予想される多層フェンス境界920の内側ボックス922を示す。さらに、図9は、共配置フローのk番目の反復における標準セルおよび/または層間ビアのm番目のグループのxy境界ボックス(左側の910)と、多層フェンスの境界ボックスの反復的な縮小(右側の920)とを提示している。
【0063】
の領域フェンス縮小は、以下のように定式化され得る。
【0064】
【数1】
【0065】
【数2】
一般性を失うことなく、次式、
【0066】
【数3】
【0067】
【数4】
が成り立つと仮定すると、b からの(k+1)番目の反復の多層フェンスは、以下のように設定される。
【0068】
【数5】
【0069】
【数6】
【0070】
【数7】
【0071】
【数8】
収束の基準は設計に依存し得るものであり、標準セルおよび/または層間ビアが密に詰め込まれ後に反復を停止する必要がない場合がある。結果の質などに基づいて、反復ループを中断してもよい。
【0072】
本明細書には、方法の種々の実装形態が記載される。方法は、多層配置で互いに隣接して配置された複数の標準セルを有する集積回路の複数の層を定義することを含み得る。前記集積回路は、層間接続部で接続された多層ネットを含み得る。方法は、前記層間接続部を同一ネットに属する層間接続部ペアとしてペア化することを含み得る。方法は、複数の層の前記層間接続ペア部の有無によらず前記複数の標準セルのうちの1つ以上のセルを複数のグループにグループ化することを含み得る。方法は、前記層間接続部ペアの有無によらず前記複数の標準セルの物理的場所の周囲に多層フェンス境界を生成することにより、前記複数のグループの各グループ内で前記層間接続部ペアの有無によらず前記複数の標準セルを関連付けることを含み得る。方法は、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を反復的に調整することにより、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を所定の最適化されたまたは正当な位置(または場所)に収束させることを含み得る。
【0073】
本明細書には、方法の種々の実装形態が記載される。方法は、多層配置で互いに隣接して配置された複数の標準セルを有する集積回路内の第1の層および第2の層を定義することを含み得る。方法は、前記第1の層内の第1のアンカーセルと前記第2の層内の第2のアンカーセルとを多層ネット内にグループ化し、当該多層ネットの周囲に多層フェンス境界を生成することによって、前記第1のアンカーセルと前記第2のアンカーセルとをペア化することを含み得る。方法は、前記多層ネット内の第1のプロキシセルの場所と第2のプロキシセルの場所とを固定して前記多層フェンス境界を縮小することによって前記第2の層内の前記第2のアンカーセルの位置(または場所)と前記第1の層内の前記第1のアンカーセルの位置(または場所)を互いに接近させるように反復的に調整することにより、前記第2の層内の前記第2のアンカーセルの位置(または場所)と前記第1の層内の前記第1のアンカーセルの位置(または場所)を同じ位置(または場所)に近接させるように収束させることを含み得る。方法は、前記第2の層内の前記第2のアンカーセルの前記調整された位置(または場所)に基づいてまたは前記第1の層内の前記第1のアンカーセルの前記調整された位置に基づいて前記多層配置内で前記第1および第2のアンカーセルが互いに隣接して配置された前記集積回路を製造するまたは製造させることを含み得る。
【0074】
本明細書には、システムの種々の実装形態が記載される。システムは、プロセッサと、プロセッサによって実行されたときにプロセッサに種々の動作を実行させる命令を記憶したメモリとを含み得る。前記動作は、多層配置で互いに隣接して配置された複数の標準セルを有する3次元集積回路(3DIC)であって、層間接続部で接続された多層ネットを含む前記集積回路の複数の層を定義することを含み得る。前記動作は、前記層間接続部を同一ネットに属する層間接続部ペアとしてペア化することを含み得る。前記動作は、複数の層の前記層間接続部ペアの有無によらず前記複数の標準セルのうちの1つ以上のセルを複数のグループにグループ化することを含み得る。前記動作は、前記層間接続部ペアの有無によらず前記複数の標準セルの物理的場所の周囲に多層フェンス境界を生成することにより、前記複数のグループの各グループ内で前記層間接続部ペアの有無によらず前記複数の標準セルを関連付けることを含み得る。前記動作は、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を反復的に調整することにより、前記層間接続部の位置(または場所)によらず前記複数の標準セルの位置(または場所)を所定の最適化されたまたは正当な位置(または場所)に収束させることを含み得る。
【0075】
本明細書に記載された技術の種々の実装形態は、多数の汎用または専用コンピューティングシステム環境または構成で動作可能とされ得る。本明細書に記載された種々の技術の使用に適する可能性があるコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブルコンシューマ電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、スマートフォン、タブレット、ウェアラブルコンピュータ、クラウドコンピューティングシステム、仮想コンピュータ、船舶用電子機器などが含まれるが、これらに限定されない。
【0076】
本明細書に記載される種々の技術は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで実装され得る。プログラムモジュールは、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、各プログラムモジュールは独自の方法で実装されてもよく、すべてが同じ方法で実装される必要はない。プログラムモジュールは単一のコンピューティングシステム上で実行し得るが、いくつかの実装形態では、プログラムモジュールは、互いに通信するように適応化された個別のコンピューティングシステムまたはデバイス上で実装され得る。プログラムモジュールは、そのプログラムモジュールによって実行される特定のタスクがハードウェア、ソフトウェア、またはその両方の任意の組み合わせのいずれかを介して行われ得る、ハードウェアとソフトウェアの任意の組み合わせとすることができる。
【0077】
本明細書に記載される種々の技術は、例えば有線リンク、無線リンク、またはそれらの種々の組み合わせにより、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実装され得る。分散コンピューティング環境では、プログラムモジュールは、例えばメモリストレージデバイスなどを含む、ローカルおよびリモートの両方のコンピュータストレージ媒体に配置され得る。
【0078】
さらに、本明細書に記載される説明は、ある特定の実装形態を対象とするものともみなされ得る。本明細書に記載される説明は、当業者が請求項の主題によって本明細書で定義される任意の主題を作成および使用できるようにする目的で提供されていることが理解され得る。
【0079】
請求項の主題は、本明細書で提供される実装形態および図示に限定されず、実装形態の一部および請求項による異なる実装形態の要素の組み合わせを含むそれらの実装形態の変形例を含むことが意図されている。エンジニアリングプロジェクトまたは設計プロジェクトなどの実装形態の開発では、それぞれの実装形態によって異なり得るシステム関連およびビジネス関連の制約への準拠など、開発者固有の目標を達成するために、実装形態固有の多数の決定を行う必要がある。さらに、そのような開発努力は複雑で時間がかかり得るが、本開示の利益を享受する当業者のための設計、製作、および製造の日常的な取り組みである。
【0080】
種々の実装形態に対する詳細は参照によってなされ、それらの例は、添付の図面に示されている。詳細な説明では、本明細書で提供される開示の完全な理解を提供するために、多数の特定の詳細が示されている。しかしながら、本明細書で提供される開示は、これらの特定の詳細なしで実施されてもよい。いくつかの他の例では、実施形態の詳細を不必要に不明瞭にしないように、周知の方法、手順、コンポーネント、回路、およびネットワークは詳細には説明されていない。
【0081】
本明細書では、第1、第2などの用語を使用して種々の要素が説明されるが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用されている。例えば、第1の要素を第2の要素と呼ぶこともでき、同様に、第2の要素を第1の要素と呼ぶこともできる。第1の要素と第2の要素は2つの要素であるが、同じ要素とは見なされない。
【0082】
本明細書で提供される本開示の説明で使用される用語は、特定の実装形態を説明するためのものであり、本明細書で提供される本開示を限定することを意図するものではない。本明細書で提供される本開示の説明および特許請求の範囲で使用される「1つ」や「前記」などは、文脈がそうでないことを明確に示さない限り、複数も含むことを意図する。本明細書で使用される「および/または」という用語は、関連する列挙された項目の1つまたは複数のあらゆる可能な組み合わせに言及しそれを包含する。本明細書で使用される「含む」および/または「備える」という用語は、説明された機能、整数、ステップ、動作、要素、および/またはコンポーネントの存在を指定するが、1つ以上の他の機能、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではない。
【0083】
本明細書で使用される「場合」という用語は、状況に応じて、「とき」、「際に」、「決定したことに応答して」、または「検出したことに応答して」を意味すると解釈され得る。同様に、「決定された場合」または「記述された条件もしくは事象が検出された場合」という記載は、状況に応じて、「決定した際に」、「決定したことに応答して」、「記述された条件もしくは事象を検出した際に」、または「記述された条件もしくは事象を検出したことに応答して」を意味すると解釈され得る。「上」および「下」という用語、「上部」および「下部」という用語、「上方に」および「下方に」という用語、「の下方に」および「の上方に」という用語、および、所与の箇所または要素よりも上方または下方の相対位置を示す他の同様の用語は、本明細書に記載される種々の技術のいくつかの実装形態に関連して使用され得る。
【0084】
上記の説明は、本明細書に記載される種々の技術の実装形態を対象としているが、本明細書の開示に従って他のおよびさらなる実装形態が考案されてもよく、これらは特許請求の範囲によって決定され得る。
【0085】
主題は、構造的特徴および/または方法的動作に固有の言語で記載されているが、特許請求の範囲で定義される主題は、必ずしも上記した特定の特徴または動作に限定されない。むしろ、上記した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。
図1A
図1B
図2A
図2B
図2C
図2D
図2E
図2F
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9