特許第6081801号(P6081801)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アルテラ コーポレイションの特許一覧

特許6081801フレキシブル電子インターフェースのための装置および関連方法
<>
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000002
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000003
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000004
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000005
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000006
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000007
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000008
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000009
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000010
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000011
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000012
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000013
  • 特許6081801-フレキシブル電子インターフェースのための装置および関連方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6081801
(24)【登録日】2017年1月27日
(45)【発行日】2017年2月15日
(54)【発明の名称】フレキシブル電子インターフェースのための装置および関連方法
(51)【国際特許分類】
   H03K 19/173 20060101AFI20170206BHJP
   H01L 21/82 20060101ALI20170206BHJP
   H01L 25/065 20060101ALI20170206BHJP
   H01L 25/07 20060101ALI20170206BHJP
   H01L 25/18 20060101ALI20170206BHJP
   H01L 21/822 20060101ALI20170206BHJP
   H01L 27/04 20060101ALI20170206BHJP
【FI】
   H03K19/173
   H01L21/82 A
   H01L25/08 Z
   H01L27/04 U
【請求項の数】25
【全頁数】25
(21)【出願番号】特願2013-4669(P2013-4669)
(22)【出願日】2013年1月15日
(65)【公開番号】特開2013-146063(P2013-146063A)
(43)【公開日】2013年7月25日
【審査請求日】2015年12月25日
(31)【優先権主張番号】13/350,662
(32)【優先日】2012年1月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】597154922
【氏名又は名称】アルテラ コーポレイション
【氏名又は名称原語表記】Altera Corporation
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】トニー ケー. ナイ
【審査官】 ▲高▼橋 義昭
(56)【参考文献】
【文献】 特開2002−236611(JP,A)
【文献】 特開2008−193052(JP,A)
【文献】 特開平10−144870(JP,A)
【文献】 特開2004−040188(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/173
H01L 21/82
H01L 21/822
H01L 25/065
H01L 25/07
H01L 25/18
H01L 27/04
(57)【特許請求の範囲】
【請求項1】
第1のフレキシブルインターフェースブロックを含む半導体ダイであって、
該第1のフレキシブルインターフェースブロックは、
少なくとも1つの相互接続と、
該少なくとも1つの相互接続に直接的に結合された少なくとも1つのバッファーであって、該少なくとも1つのバッファーは、該少なくとも1つの相互接続から信号を受信し、該半導体ダイにおける使用に適応するように該信号を選択的に変更する、少なくとも1つのバッファーと、
該半導体ダイにおいて集積された回路網に結合されたルーティングインターフェースと、
該ルーティングインターフェースと該少なくとも1つのバッファーとの間の通信を提供するために該ルーティングインターフェースと該少なくとも1つのバッファーとの間に結合されたコントローラと
を含む、半導体ダイ。
【請求項2】
前記第1のフレキシブルインターフェースブロックは、前記半導体ダイにおいて集積された第1の回路該半導体ダイの外部の第2の回路との間の通信を提供するように適合されている、請求項1に記載の半導体ダイ。
【請求項3】
前記第2の回路は、プロトコルに従って動作するように適合されており、前記コントローラは、該プロトコルを用いて該第2の回路への通信を提供するように適合され得る、請求項2に記載の半導体ダイ。
【請求項4】
前記第1のフレキシブルインターフェースブロックは、前記第1の回路と前記第2の回路との間においてカスタマイズ可能なインターフェースを提供するように適合されている、請求項2に記載の半導体ダイ。
【請求項5】
前記コントローラは、ハード化された論理回路網を含む、請求項1に記載の半導体ダイ。
【請求項6】
前記コントローラは、構造化された特定用途の集積回路(ASIC)の回路網を含む、請求項1に記載の半導体ダイ。
【請求項7】
前記コントローラは、プログラマブル論理回路網を含む、請求項1に記載の半導体ダイ。
【請求項8】
プログラマブル論理デバイス(PLD)を含み、該PLDは、前記第1のフレキシブルインターフェースブロックを含む、請求項1に記載の半導体ダイ。
【請求項9】
前記第1のフレキシブルインターフェースブロックは、前記PLDのプログラマブル相互接続に結合されている、請求項8に記載の半導体ダイ。
【請求項10】
前記プログラマブル相互接続は、プログラマブル論理に結合している、請求項9に記載の半導体ダイ。
【請求項11】
第2のフレキシブルインターフェースブロックをさらに含み、前記第1のフレキシブルインターフェースブロックおよび該第2のフレキシブルインターフェースブロックは、行または列で配列されている、請求項1に記載の半導体ダイ。
【請求項12】
装置であって、該装置は、
第1の半導体ダイであって、該第1の半導体ダイは、
第1のインターフェース回路と、
該第1のインターフェース回路に結合された第1の回路と
を含む、第1の半導体ダイと、
該第1のインターフェース回路に結合された第2の半導体ダイと
を含み、
該第2の半導体ダイは、第2の回路を含み、
該第1のインターフェース回路は、該第1の回路と該第2の回路との間においてカスタマイズ可能なインターフェースを提供し、該第1のインターフェース回路は、少なくとも1つのバッファー回路を含み、該少なくとも1つのバッファー回路は、該第2の回路から信号を受信し、該信号を該第1の回路に提供する前に、該信号を選択的に更新する、装置。
【請求項13】
前記第1のインターフェース回路は、
少なくとも1つの相互接続であって、該少なくとも1つの相互接続は、該少なくとも1つのバッファ回路に結合されている、少なくとも1つの相互接続と、
前記第1の回路に結合されたルーティングインターフェースと、
該ルーティングインターフェースと該少なくとも1つのバッファー回路との間の通信を提供するために結合されたコントローラと
を含む、請求項12に記載の装置。
【請求項14】
前記第2の半導体ダイは、前記第1の半導体ダイの上に配置されている、請求項12に記載の装置。
【請求項15】
インターポーザーをさらに含み、前記第1の半導体ダイおよび前記第2の半導体ダイは、互いに対して水平に配置されており、該インターポーザーは、該第1の半導体ダイおよび該第2の半導体ダイを一緒に結合している、請求項12に記載の装置。
【請求項16】
前記第1の半導体ダイは、プログラマブル論理デバイス(PLD)を含み、該PLDは、前記第1のインターフェース回路を含む、請求項12に記載の装置。
【請求項17】
前記第2の半導体ダイは、前記第2の回路に結合された第2のインターフェース回路を含む、請求項12に記載の装置。
【請求項18】
前記第2のインターフェース回路は、前記第1のインターフェース回路に結合されている、請求項17に記載の装置。
【請求項19】
第1の半導体ダイにおいて集積されたプログラマブル論理デバイス(PLD)と、第2の半導体ダイにおいて集積された回路とを用いて電子設計モデル化する方法であって、該方法は、コンピュータを用いて、該回路を、該回路に結合された該PLDのフレキシブルインターフェースブロックとして表すことによって該電子設計をモデル化することを含み、該フレキシブルインターフェースブロックは、該第1の半導体ダイによって受信された信号を選択的に調整する、方法。
【請求項20】
前記電子設計のための論理回路を生成するために、前記回路の表示を用いることをさらに含む、請求項19に記載の方法。
【請求項21】
前記コンピュータを用いて、前記回路を前記PLDのフロアプランにおける前記フレキシブルインターフェースブロックの位置に配置することによって、該PLDの該フロアプランにおいて該回路を配置することをさらに含む、請求項20に記載の方法。
【請求項22】
前記コンピュータを用いて、前記フレキシブルインターフェースブロックを前記PLDの前記フロアプランにおけるPLDリソースにルーティングすることをさらに含む、請求項21に記載の方法。
【請求項23】
前記フレキシブルインターフェースブロックは、前記ルーティングインターフェースに結合されたントローラを含む、請求項19に記載の方法。
【請求項24】
前記コントローラは、データまたは通信プロトコルをサポートする、請求項23に記載の方法。
【請求項25】
前記電子設計をモデル化することは、3次元(3D)構造に関連付けられた複雑さを前記PLDのユーザーに見せないために、前記回路および前記フレキシブルインターフェースブロックに対応する該3次元(3D)構造を2次元(2D)構造としてモデル化することをさらに含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
開示される概念は、概して電子回路網に関し、特に、フレキシブルまたはユニバーサル電子インターフェース回路網のための装置、および関連方法に関する。
【背景技術】
【0002】
(背景)
エレクトロニクスの発展は、増加されるレベルの集積を可能にしてきた。ICの製造のためのテクノロジーは、その発展に貢献し、比較的に大量の回路および機能をIC内に集積させる手段を提供してきた。結果として、今日のICは、数億個のトランジスタを含み得る。大量のトランジスタにもかかわらず、電子デバイスまたは回路の所望の機能は、ときには、1つより多いICの回路網を用いることを必要とする。このような機能の実装を容易にするために、ときには、2つ以上の半導体ダイが使用され、互いに連結される。
【発明の概要】
【課題を解決するための手段】
【0003】
(要約)
開示される概念に従う幅広いさまざまな実施形態は、フレキシブル電子インターフェースのための装置および方法を提供するために使用され得る。一例示的実施形態において、半導体ダイは、少なくとも1つのフレキシブルインターフェースブロックを含む。フレキシブルインターフェースブロックは、少なくとも1つの相互接続と、少なくとも1つのバッファーと、ルーティングインターフェースと、コントローラとを含む。少なくとも1つのバッファーは、少なくとも1つの相互接続に連結されている。ルーティングインターフェースは、半導体ダイにおいて集積された回路網に連結されている。コントローラは、ルーティングインターフェースと少なくとも1つのバッファーとの間の通信を提供するように連結されている。
【0004】
別の例示的実施形態において、装置は、第1のインターフェース回路と、第1のインターフェース回路に連結された第1の回路とを含む第1の半導体ダイを含む。装置は、第2の回路を含む第2の半導体ダイも含み、ここで、第2の半導体ダイは、第1のインターフェース回路に連結されている。第1のインターフェース回路は、第1の回路と第2の回路との間においてカスタマイズ可能なインターフェースを提供する。
【0005】
なお別の例示的実施形態において、方法は、第1の半導体ダイにおいて集積されたプログラマブル論理デバイス(PLD)と、第2の半導体ダイにおいて集積された回路とを用いて電子設計の実装をモデル化するために提供される。方法は、コンピュータを用いて、回路を、回路に連結されたPLDのフレキシブルインターフェースブロックとして表すことによって実装をモデル化することを含む。
【0006】
例えば、本発明は以下の項目を提供する。
(項目1)
第1のフレキシブルインターフェースブロックを含む半導体ダイであって、
該第1のフレキシブルインターフェースブロックは、
少なくとも1つの相互接続と、
該少なくとも1つの相互接続に連結された少なくとも1つのバッファーと、
該半導体ダイにおいて集積された回路網に連結されたルーティングインターフェースと、
該ルーティングインターフェースと該少なくとも1つのバッファーとの間の通信を提供するために連結されたコントローラと
を含む、半導体ダイ。
(項目2)
上記第1のフレキシブルインターフェースブロックは、上記半導体ダイにおいて集積された第1の回路と、該半導体ダイの外部の第2の回路との間の通信を提供するように適合されている、上記項目に記載の半導体ダイ。
(項目3)
上記第2の回路は、プロトコルに従って動作するように適合されており、上記コントローラは、該プロトコルを用いて該第2の回路への通信を提供するように適合され得る、上記項目のいずれかに記載の半導体ダイ。
(項目4)
上記第1のフレキシブルインターフェースブロックは、上記第1の回路と上記第2の回路との間においてカスタマイズ可能なインターフェースを提供するように適合されている、上記項目のいずれかに記載の半導体ダイ。
(項目5)
上記コントローラは、ハード化された論理回路網を含む、上記項目のいずれかに記載の半導体ダイ。
(項目6)
上記コントローラは、構造化された特定用途の集積回路(ASIC)の回路網を含む、上記項目のいずれかに記載の半導体ダイ。
(項目7)
上記コントローラは、プログラマブル論理回路網を含む、上記項目のいずれかに記載の半導体ダイ。
(項目8)
プログラマブル論理デバイス(PLD)を含み、該PLDは、上記第1のフレキシブルインターフェースブロックを含む、上記項目のいずれかに記載の半導体ダイ。
(項目9)
上記第1のフレキシブルインターフェースブロックは、上記PLDのプログラマブル相互接続に連結されている、上記項目のいずれかに記載の半導体ダイ。
(項目10)
上記プログラマブル相互接続は、プログラマブル論理に連結している、上記項目のいずれかに記載の半導体ダイ。
(項目11)
第2のフレキシブルインターフェースブロックをさらに含み、上記第1のフレキシブルインターフェースブロックおよび該第2のフレキシブルインターフェースブロックは、行または列で配列されている、上記項目のいずれかに記載の半導体ダイ。
(項目12)
装置であって、該装置は、
第1の半導体ダイであって、該第1の半導体ダイは、
第1のインターフェース回路と、
該第1のインターフェース回路に連結された第1の回路と
を含む、第1の半導体ダイと、
該第1のインターフェース回路に連結された第2の半導体ダイと
を含み、
該第2の半導体ダイは、第2の回路を含み、
該第1のインターフェース回路は、該第1の回路と該第2の回路との間においてカスタマイズ可能なインターフェースを提供する、装置。
(項目13)
上記第1のインターフェース回路は、
少なくとも1つの相互接続と、
該少なくとも1つの相互接続に連結された少なくとも1つのバッファーと、
上記第1の回路に連結されたルーティングインターフェースと、
該ルーティングインターフェースと該少なくとも1つのバッファーとの間の通信を提供するために連結されたコントローラと
を含む、上記項目のいずれかに記載の装置。
(項目14)
上記第2の半導体ダイは、上記第1の半導体ダイの上に配置されている、上記項目のいずれかに記載の装置。
(項目15)
インターポーザーをさらに含み、上記第1の半導体ダイおよび上記第2の半導体ダイは、互いに対して水平に配置されており、該インターポーザーは、該第1の半導体ダイおよび該第2の半導体ダイを一緒に連結している、上記項目のいずれかに記載の装置。
(項目16)
上記第1の半導体ダイは、プログラマブル論理デバイス(PLD)を含み、該PLDは、上記第1のインターフェース回路を含む、上記項目のいずれかに記載の装置。
(項目17)
上記第2の半導体ダイは、上記第2の回路に連結された第2のインターフェース回路を含む、上記項目のいずれかに記載の装置。
(項目18)
上記第2のインターフェース回路は、上記第1のインターフェース回路に連結されている、上記項目のいずれかに記載の装置。
(項目19)
第1の半導体ダイにおいて集積されたプログラマブル論理デバイス(PLD)と、第2の半導体ダイにおいて集積された回路とを用いて電子設計の実装をモデル化する方法であって、該方法は、コンピュータを用いて、該回路を、該回路に連結された該PLDのフレキシブルインターフェースブロックとして表すことによって実装をモデル化することを含む、方法。
(項目20)
上記電子設計を合成するために、上記回路の表示を用いることをさらに含む、上記項目のいずれかに記載の方法。
(項目21)
上記コンピュータを用いて、上記回路を上記PLDのフロアプランにおける上記フレキシブルインターフェースブロックの位置に配置することによって、該PLDの該フロアプランにおいて該回路を配置することをさらに含む、上記項目のいずれかに記載の方法。
(項目22)
上記コンピュータを用いて、上記フレキシブルインターフェースブロックを上記PLDの上記フロアプランにおけるPLDリソースにルーティングすることをさらに含む、上記項目のいずれかに記載の方法。
(項目23)
上記フレキシブルインターフェースブロックは、PLDリソースに連結されたルーティングインターフェースを含む、上記項目のいずれかに記載の方法。
(項目24)
上記フレキシブルインターフェースブロックは、上記ルーティングインターフェースに連結されたカスタマイズ可能なコントローラを含む、上記項目のいずれかに記載の方法。
(項目25)
上記回路に関連付けられたデータまたは通信プロトコルを実装するために、上記コンピュータを用いて、上記カスタマイズ可能なコントローラを構成することをさらに含む、上記項目のいずれかに記載の方法。
(項目26)
上記実装をモデル化することは、3次元(3D)構造に関連付けられた複雑さを上記PLDのユーザーに見せないために、上記回路および上記フレキシブルインターフェースブロックに対応する該3次元(3D)構造を2次元(2D)構造としてモデル化することをさらに含む、上記項目のいずれかに記載の方法。
【0007】
(摘要)
半導体ダイは、少なくとも1つのフレキシブルインターフェースブロックを含む。フレキシブルインターフェースブロックは、少なくとも1つの相互接続と、少なくとも1つの相互接続に連結された少なくとも1つのバッファーとを含む。フレキシブルインターフェースブロックは、半導体ダイにおいて集積された回路網に連結されたルーティングインターフェースと、ルーティングインターフェースと少なくとも1つのバッファーとの間の通信を提供するために連結されたコントローラとをさらに含む。
【0008】
添付した図面は、単に、例示的実施形態を例示するものであり、それ故に、それらの範囲を限定するものとして考慮されるべきではない。当業者は、本明細書で開示される概念が、当業者に他の同等の有効な実施形態を与えることを認識する。図面において、2つ以上の図面に使用された同じ数値の指示子は、同じ、類似、または同等の機能、構成要素、またはブロックを示す。
【図面の簡単な説明】
【0009】
図1図1は、例示的実施形態に従う、フレキシブルインターフェース回路網を使用する半導体ダイの配列を例示する。
図2図2は、別の例示的実施形態に従う、フレキシブルインターフェース回路網を使用する半導体ダイの配列を描く。
図3図3は、1つ以上のフレキシブルインターフェースブロックを用いることによって半導体ダイの回路網を一緒に連結するための例示的実施形態に従う回路配列を示す。
図4図4は、例示的実施形態に従うフレキシブルインターフェースブロックのブロックダイヤグラムを描く。
図5図5は、例示的実施形態に従うフレキシブルインターフェースブロックのさらなる詳細を例示する。
図6図6は、例示的実施形態に従う、半導体ダイにおけるフレキシブルインターフェースブロックの配列を描く。
図7図7は、別の例示的実施形態に従う、半導体ダイにおけるフレキシブルインターフェースブロックの配列を例示する。
図8図8は、例示的実施形態に従う、半導体ダイにおけるフレキシブルインターフェースブロックのグループ化を示す。
図9図9は、1つ以上のフレキシブルインターフェースブロックを含むプログラマブル論理デバイス(PLD)の一般ブロックダイヤグラムを例示する。
図10図10は、例示的実施形態に従う、プログラマブルリソースおよびフレキシブルインターフェースブロックを含むPLDのブロックダイヤグラムを描く。
図11図11は、別の例示的実施形態に従う、プログラマブルリソースおよびフレキシブルインターフェースブロックを含むPLDのブロックダイヤグラムを示す。
図12図12は、例示的実施形態に従うPLDコンピュータ支援設計(CAD)ソフトウェアまたはフローのさまざまなモジュールのブロックダイヤグラムを例示する。
図13図13は、例示的実施形態に従う、情報を処理するためのシステム(例えば、CADフロー)のブロックダイヤグラムを描く。
【発明を実施するための形態】
【0010】
開示された概念は、フレキシブル(またはユニバーサル)電子インターフェース回路網のための装置および関連の技術を提供する。特に、フレキシブルインターフェース回路網は、2つ以上の半導体ダイを連結するための機構を提供する。フレキシブルインターフェース回路網は、さまざまな構成において使用され得、半導体ダイ間の効率的かつ迅速なインターフェースを提供し得る。
【0011】
いくつかの場合において、2つ以上の半導体ダイが垂直に配列される。例えば、一方の半導体ダイは、他方の半導体ダイの上に位置決めされ、または積重ねられる。追加の半導体ダイは、この構造の上に位置決めされ、または積重ねられ得る。以下に詳細に説明されるように、フレキシブルインターフェース回路網は、半導体ダイのうちの2つ以上を一緒に連結するために使用され得る。
【0012】
図1は、例示的実施形態に従う、フレキシブルインターフェース回路網を使用する半導体ダイの配列を例示する。示される例示的配列は、基板またはベース14の上に積重ねられ、または位置決めされた2つの半導体ダイ(5Aおよび5Bでラベル付けされる)を含む。2つの半導体ダイ以外、他の数の半導体ダイは、当業者に理解されるように使用され、垂直に積重ねられる。相互接続16(例えば、はんだボールまたはバンプ)は、他の媒体(例えば、印刷回路基板(示されていない))に連結するための方法を基板14に提供する。
【0013】
ダイ5Aは、少なくとも1つのフレキシブルインターフェース回路またはブロック10Aを含む。フレキシブルインターフェースブロック10Aは、ダイ5Aにおいて集積された回路網に連結する。ダイ5Aの回路網は、さまざまな形態を有し、さまざまな所望される機能または特定の機能を提供し得る。例えば、ダイ5Aの回路網は、デジタル回路網(ゲート、ラッチ、フリップフロップ、レジスタ、有限状態マシン等)、アナログ回路(増幅器、加算器、電流および電圧供給源等)、混合信号回路網(アナログ−デジタルコンバータ(ADC)、デジタル−アナログコンバータ(DAC)等)、および/または別個のコンポーネント(トランジスタ、抵抗器、キャパシター、インダクタ)を含み得る。
【0014】
同様に、ダイ5Bは、少なくとも1つのフレキシブルインターフェース回路またはブロック10Bを含む。ダイ5Bの回路網は、さまざまな形態を有し、さまざまな所望または特定の機能を提供し得る。例えば、ダイ5Bの回路網は、デジタル回路網(ゲート、ラッチ、フリップフロップ、レジスタ、有限状態マシン等)、アナログ回路(増幅器、加算器、電流および電圧供給源等)、混合信号回路網(アナログ−デジタルコンバータ(ADC)、デジタル−アナログコンバータ(DAC)等)、および/または別個のコンポーネント(トランジスタ、抵抗器、キャパシター、インダクタ)を含み得る。
【0015】
フレキシブルインターフェースブロック10Aは、連結機構または相互接続12(例えば、はんだバンプ、はんだボール、マイクロバンプ等)を介してフレキシブルインターフェースブロック10Bに連結する。相互接続12は、必要に応じて信号および電力ラインを含み得る。ダイ5Aとダイ5Bとの間に電気的連結機構を提供することに加えて、相互接続12は、ダイ5Aとダイ5Bとの間に物理的連結も提供する。言い換えると、単独、または、他の構造(示されていない)と共に、相互接続12は、ダイ5Aに物理的支持を提供する。
【0016】
前述のように、フレキシブルインターフェースブロック10Aは、ダイ5Aにおいて集積された回路網に連結し、フレキシブルインターフェースブロック10Bは、ダイ5Bにおいて集積された回路網に連結する。フレキシブルインターフェースブロック10Aがフレキシブルインターフェースブロック10Bに連結するので、フレキシブルインターフェースブロック10A−10Bは、ダイ5Aにおいて集積された回路網をダイ5Bにおいて集積された回路網に連結するための機構を提供する。
【0017】
当業者に理解されるように、図1に示された配列は、1つの実施形態を例示することに過ぎず、幅広いさまざまな他の実施形態が可能であり、そして考えられる。実施例は、3次元(3D)、2.5D、前面−前面ダイ結合、前面−背面ダイ結合、1つ以上のダイにおけるスルーシリコンビア(TSV)を用いるダイ結合等を含む。
【0018】
図2は、別の例示的実施形態に従う、フレキシブルインターフェース回路網を使用する半導体ダイの配列を描く。図1の配列に類似して、図2の半導体ダイ配列は、ダイ5A−5B、フレキシブルインターフェースブロック10A−10B、相互接続12、および相互接続16を含む。しかしながら、図2の配列において、ダイ5Aおよび5Bは、互いに対して垂直に積重ねられるではなく、並んでまたは水平に位置決めされている。
【0019】
さらに、図2の配列は、インターポーザー18を含む。インターポーザー18は、ダイ5Aおよびダイ5Bの下に位置決めされる。言い換えると、ダイ5Aおよび5Bは、インターポーザー18の上に位置決めされ、またはインターポーザー18に対して垂直に積重ねられる。インターポーザー18は、相互接続12を介してフレキシブルインターフェースブロック10A−10Bに連結する。特に、インターポーザー18は、フレキシブルインターフェースブロック10Aをフレキシブルインターフェースブロック10Bに連結するさまざまな連結機構を含み得る。例えば、当業者に理解されるように、インターポーザー18の連結機構は、ダイ5Aおよび5Bを(フレキシブルインターフェースブロック10A−10Bを介して)互いに連結し、(相互接続16を介して)インターポーザー18に連結された回路網等に連結するために、1つ以上の伝導性トレース19Aおよび1つ以上のTSV 19Bを含み得る。結果として、インターポーザー18は、フレキシブルインターフェースブロック10Aからフレキシブルインターフェースブロック10Bへの電気信号、フレキシブルインターフェースブロック10Bからフレキシブルインターフェースブロック10Aへの電気信号、または両方の電気信号に経路を提供する。従って、インターポーザー18を介して、フレキシブルインターフェースブロック10Aおよびフレキシブルインターフェースブロック10Bは、ダイ5Bの回路網と通信するための機構をダイ5Aの回路網に提供する。
【0020】
開示されたフレキシブルインターフェースブロックは、所望の数の情報および電力信号を通信するための機構を2つ以上のダイに提供する。図3は、1つ以上のフレキシブルインターフェースブロックを用いることによって半導体ダイの回路網を一緒に連結するための例示的実施形態に従う回路配列を示す。
【0021】
具体的には、ダイ5Aは、1つ以上のフレキシブルインターフェースブロック10Aを含む。同様に、ダイ5Bは、1つ以上のフレキシブルインターフェースブロック10Bを含む。フレキシブルインターフェースブロック10Aは、相互接続12を介してフレキシブルインターフェースブロック10Bに連結する。例示的実施形態において、フレキシブルインターフェースブロック10は、(相互接続12によって例示されるように)所望の数のデータ経路を有し得る。1つ以上のフレキシブルインターフェースブロック10Aおよび10Bを用いることによって、半導体ダイ5Aと5Bとの間に所望の数の情報および電力経路を提供し得る。
【0022】
実施例として、フレキシブルインターフェースブロック10Aおよび10Bの各々は、(相互接続12によって例示されるように、すなわち、この例において50個の連結機構)50個のデータ/電力経路を含むことを想定する。ダイ5Aと5Bとの間に200個のデータ/電力経路が必要とされ、ダイ5Aに4つのフレキシブルインターフェースブロック10Aを、ダイ5Bに4つのフレキシブルインターフェースブロック10Bを含むことをさらに想定する。概して、当業者に理解されるように、説明された配列は、ダイ5Aと5Bとの間にデータ/電力経路の数に対してさまざまな設計および仕様を適応し得る。従って、フレキシブルインターフェースブロック10A−10Bは、ダイ5Aの回路網における所望の数のデータ/電力ラインをダイ5Bの回路網における対応するデータ/電力ラインに連結するためのスケーラブルおよびフレキシブル機構を提供する。
【0023】
図4は、例示的実施形態に従って、半導体ダイ5内に含まれたフレキシブルインターフェースブロック10のブロックダイヤグラムを描く。前述のように、フレキシブルインターフェースブロック10は、所望の数の相互接続12を含む。示される実施形態において、フレキシブルインターフェースブロック10は、バッファー回路網20、コントローラ22、およびルーティングインターフェース24をさらに含む。
【0024】
前述のように、相互接続12は、さまざまな機構または特徴を含み得る。例えば、いくつかの実施形態において、相互接続12は、マイクロバンプを構成し得る。マイクロバンプは、所望のピッチまたは間隔(例えば、45〜50ミクロン)を有し得る。相互接続12は、単方向性または双方向性であり、すなわち、半導体ダイ間において1つの方向または両方の方向での通信を提供する。前述のように、当業者に理解されるように、相互接続12の数および/またはタイプは、特定の実装または設計に関連するいくつかのファクターに依存する。このようなファクターの例は、所望のデータバンド幅、所望のデータ信号数、所望の電力経路数等を含む。
【0025】
前述のように、相互接続12は、半導体ダイ間においてさまざまな信号を通信する。限定することなしに、相互接続12は、半導体ダイ間においてデータ、電力、制御信号、状態信号を通信し得る。所望のタイプおよび数の信号を用いることによって、スケーラブルおよびパワーフルなインターフェースは、半導体ダイ間に適応され得る。
【0026】
バッファー回路網20は、相互接続12の一部(例えば、すべてのデータ信号)または全部(例えば、データおよび電力信号の混合)に連結する。バッファー回路網20は、例示的実施形態において以下の機能のうちの1つ以上を提供し得る。まず、バッファー回路網20は、別のダイ(示されていない)の回路網に信号を提供または伝送するために、ダイ5の回路網からのそれらの信号をバッファーすること、レベルシフトすること(例えば、信号供給源および目的地の回路の異なる電圧レベルを適応すること)、および/または調整することによって出力バッファー機能を提供し得る。次に、バッファー回路網20は、ダイ5の回路網に信号を提供するために、別のダイ(示されていない)からのそれらの信号をバッファーすること、レベルシフトすること(例えば、信号供給源および目的地の回路の異なる電圧レベルを適応すること)、および/または調整することによって入力バッファー機能を提供し得る。さらに、バッファー回路網20は、別のダイ(示されていない)の回路網に信号を提供または伝送すること、およびその逆の場合のために、ダイ5の回路網からのそれらの信号をバッファーすること、レベルシフトすること(例えば、信号供給源および目的地の回路の異なる電圧レベルを適応すること)、および/または調整することによって双方向性バッファー機能を提供し得る。
【0027】
例示的実施形態において、バッファー回路網20は、フレキシビリティを提供するために、さまざまなプログラマブルまたは構成可能な特徴を有し得る。例えば、いくつかの実施形態において、バッファー回路網20は、トライステート機能を有し得る。別の実施例として、バッファー回路網20は、固定またはプログラマブルのドライブ長およびまたはスルーレートを有し得る。
【0028】
コントローラ22は、バッファー回路網20に連結する。概して、コントローラ22は、フレキシブルインターフェースブロック10の制御および監視機能を提供する。例えば、コントローラ22は、ダイ間において通信される信号のタイミング、方向、および数を決定し得る。従って、コントローラ22の制御の下で、データ/電力信号は、別の半導体ダイへの最終通信のためにバッファー回路網に提供される。
【0029】
コントローラ22は、1つ以上のデータまたは通信プロトコルをサポートし得る。例えば、1つの半導体ダイのプロセッサが別の半導体ダイのメモリと通信しようとすることを想定する。当業者に周知のように、メモリはDDRプロトコルを使用することをさらに想定する。コントローラ22は、DDRプロトコルに従ってプロセッサとメモリとの間の通信をサポートするための回路網を含み得る。概して、コントローラ22は、任意の所望のプロトコル(例えば、DDR、DDR2、DDR3、通信プロトコル、シグナリングプロトコル等)をサポートし得る。
【0030】
ルーティングインターフェース24は、ダイ5のコントローラ22および(フレキシブルインターフェースブロック10以外の)回路網に連結する。具体的には、ルーティングインターフェース24は、ダイ5の回路(明確に示されていない)からデータ/電力信号を受け取り、その信号をコントローラ22に提供する。逆に、ルーティングインターフェース24は、(例えば、別の半導体ダイの回路網(明確に示されていない)から最終的に受信されるように)コントローラ22からデータ/電力信号を受信し、ダイ5の回路網(明確に示されていない)にその信号を提供する。
【0031】
図5は、例示的実施形態に従うフレキシブルインターフェースブロック10のさらなる詳細を例示する。示される実施形態において、相互接続12は、単方向性出力ライン(またはリンクまたは相互接続)12A、単方向性入力ライン12B、および双方向性ライン12Cを含む。さらに、相互接続12は、別のデバイスに電力を供給するための電力ライン12D、および別のデバイスから電力を受け取るための電力ライン12Eを含む。
【0032】
バッファー回路網20は、相互接続12の出力ライン12Aに供給する出力バッファー20Aを含む。バッファー回路網20は、入力ライン12Bによって供給される入力バッファー20Bも含む。さらに、バッファー回路網20は、信号を伝送または受信するためにライン12Cに連結する双方向性バッファー20Cを含む。示されるように、バッファー回路網20は、電力ライン12D−12Eに対する回路網を含まず、電力がバッファー回路網20を通過させることに留意する。しかしながら、別の実施形態において、バッファー回路網20は、必要に応じて、電力を調整または調節するための回路網を含み得る。
【0033】
例示的実施形態において、コントローラ22は、ハード(固定または非プログラマブル)からソフト(完全にプログラマブル)までの範囲にあるさまざまな回路網、またはカスタマイズ可能な回路網を含み得る。従って、いくつかの実施形態において、コントローラ22は、論理ゲート、レジスタ、フリップフロップ、カウンター、有限状態マシン、ハード化知的財産(IP)、メモリ、多重器(MUX)、ラッチ等を含み得る。いくつかの実施形態において、コントローラ22は、完全にカスタマイズ可能またはプログラマブル論理(例えば、ルックアップテーブル(LUT))、ソフトIP、およびプログラマブル論理デバイス(PLD)のプログラマブル構造に類似する一般的回路網を含み得る。なお他の実施形態において、コントローラ22は、構造化された特定用途のIC(構造化されたASIC)の回路網を含み得る。このような実施形態において、当業者に理解されるように、1つ以上のマスク変更を用いて、コントローラ22の機能が、構成、カスタマイズ、またはプログラム化され得る。実際の実装にかかわらず、いくつかの実施形態において、2つ以上のフレキシブルインターフェースブロック10におけるコントローラ22は、追加のフレキシビリティ、増加された機能等を提供するために組み合わせられ得る。
【0034】
一般的に言うと、ルーティングインターフェース24は、コントローラ22と、最終的に別のダイの回路網(明確に示されていない)と通信するための機能をダイ5の回路網(明確に示されていない)に提供する。ルーティングインターフェース24は、MUX、バッファー、レジスタ、および類似な回路網を含み得る。例えば、示される実施形態において、(例えば、コントローラ22の制御の下で)MUX26は、(例えば、リンク34を通じて)ダイ5内の回路網(明確に示されていない)から受信されるいくつかの信号のうちの1つを選択し、選択された信号をコントローラ22に提供し得る。別の実施例として、(例えば、コントローラ22の制御の下で)MUX28は、コントローラ22から受信されるいくつかの信号のうちの1つを選択し、(例えば、リンク34を通じて)ダイ5内の回路網(明確に示されていない)に選択された信号を提供し得る。
【0035】
バッファーまたはドライバー30は、ルーティングインターフェース24からの信号(例えば、ダイ5の回路網(明確に示されていない)からリンク34を介して受信された信号)を入力として受信し、出力信号をコントローラ22に提供し得る。逆に、バッファーまたはドライバー32は、コントローラ22からの信号を入力として受信し、出力信号をルーティングインターフェース24に提供し得る。ルーティングインターフェース24は、バッファーされた信号を、リンク34を介してダイ5の回路網(明確に示されていない)に提供し得る。
【0036】
いくつかの実施形態において、ルーティングインターフェース24は、PLDのプログラマブル相互接続に類似する回路網を含み得る。このような実施形態において、ルーティングインターフェース24の回路網の機能は、PLDのルーティング構造またはリソースとほぼ同じ方法でプログラム化または構成され得る。
【0037】
前述の実施形態は、フレキシブルインターフェースブロック10に対するさまざまな回路網および機能を含む。いくつかの実施形態において、すべての特徴が使用され得る。当業者に理解されるように、いくつかの実施形態において、説明された特徴のうちの1つ以上が使用され得る。言い換えると、1つ以上のフレキシブルインターフェースブロック10内に含まれる回路網および機能は、所与の設計または実装に対する仕様に依存する。フレキシブルインターフェースブロック10は、比較的に簡単なインターフェース仕様も比較的に複雑な仕様も適応し得る。
【0038】
本開示の別の局面に従って、半導体ダイ5内のフレキシブルインターフェースブロック10は、さまざまな方法でグループ化または配列され得る。例えば、いくつかの実施形態において、半導体ダイ5内のフレキシブルインターフェースブロック10は、フレキシブルインターフェースブロックの行として配列され得る。図6は、その配列を示す。具体的には、ダイ5は、フレキシブルインターフェースブロック10の複数の行36A−36Cを含む。行36A−36Cは、1つ以上のフレキシブルインターフェースブロック10を含み得る。
【0039】
別の実施例として、いくつかの実施形態において、半導体ダイ5内のフレキシブルインターフェースブロック10は、フレキシブルインターフェースブロックの列として配列され得る。図7は、その配列を示す。図7を参照すると、ダイ5は、フレキシブルインターフェースブロック10の複数の列38A−38Cを含む。列38A−38Cは、1つ以上のフレキシブルインターフェースブロック10を含み得る。
【0040】
いくつかの実施形態において、2つ以上のフレキシブルインターフェースブロック10は、例えば、追加のデータ/電力ライン、より広いデータ経路、よりフレキシブルまたはパワーフルなコントローラ22等を提供するために、一緒にグループ化され得る。図8は、その実施形態の例を描く。ダイ5は、複数のフレキシブルインターフェースブロック10を含む。フレキシブルインターフェースブロック10は、多くの方法(例えば、行で、列で、所望の位置において個々の位置決めされる等)で配列され得る。2つ以上のフレキシブルインターフェースブロック10が互いに隣接し、または、互いに隣り合いまたは互いに対して比較的に近く位置決めされる場合、それらは、前述のように、追加の機能またはフレキシブル性を提供するために一緒に組み合わせられ得る。示される実施形態において、4つのフレキシブルインターフェースブロック10は、フレキシブルインターフェースブロック10のグループ40Aを形成するために一緒にグループ化され、別の4つのフレキシブルインターフェースブロック10は、フレキシブルインターフェースブロック10のグループ40Bとして一緒にグループ化される。
【0041】
開示された概念は、完全または部分的にプログラマブルまたは構成可能な回路網を含むICを含む幅広いさまざまなICに適用され得る。従って、いくつかの実施形態において、1つの半導体ダイにおいて集積されたPLDは、1つ以上の追加の半導体ダイにおいて集積された回路網に連結し、またはインターフェース接続するために、1つ以上のフレキシブルインターフェースブロック10を含み得る。いくつかの実施形態において、1つの半導体ダイにおいて集積されたPLDは、1つ以上の追加の半導体ダイにおいて集積された1つ以上のPLDに連結し、またはインターフェース接続するために、1つ以上のフレキシブルインターフェースブロック10を含み得ることに留意する。
【0042】
一般性を失うことなしに、以下の段落は、PLDへの開示された概念の適用を説明する。図9は、1つ以上のフレキシブルインターフェースブロック10を含む、例示的実施形態に従うPLD103の一般ブロックダイヤグラムを描く。PLD103は、半導体ダイ(例えば、前述され、かつ図1〜8に示された半導体ダイ)において含まれ、または製造され得る。
【0043】
図9を参照すると、PLD103は、構成回路網130、構成メモリ(CRAM)133、制御回路網136、プログラマブル論理106、プログラマブル相互接続109、およびI/O回路網112を含む。加えて、PLD103は、必要に応じて、テスト/デバッグ回路網115、1つ以上のプロセッサ118、1つ以上の通信回路網121、1つ以上のメモリ124、1つ以上のコントローラ127、1つ以上のフレキシブルインターフェースブロック10、および初期化回路139を含み得る。
【0044】
PLD103は、当業者に理解されるように、他のブロックおよび回路網を含み得ることに留意する。このような回路網の例は、クロック生成および分配回路、冗長回路等を含む。さらに、PLD103は、必要に応じて、アナログ回路網、他のデジタル回路網、および/または混合信号回路網を含み得る。
【0045】
プログラマブル論理106は、構成可能またはプログラマブル論理回路網、例えば、LUT、積項論理、MUX、論理ゲート、レジスタ、メモリ等を含む。プログラマブル相互接続109は、プログラマブル論理106に連結し、プログラマブル論理106内のさまざまなブロックと、PLD103内または外側の他の回路網との間に構成可能な相互接続(連結機構)を提供する。プログラマブル相互接続109は、当業者に理解されるように、MUX、パストランジスタ、バッファー等を含み得る。
【0046】
制御回路網136は、PLD103内のさまざまな動作を制御する。制御回路網136の制御の監視の下で、PLD構成回路網130は、PLD103の機能をプログラム化または構成するために、(外部の供給源(例えば、格納デバイス、ホスト等)から得られ得る)構成データを使用する。構成データは、一般的にCRAM133に格納される。CRAM133のコンテンツは、PLD103のさまざまなブロック(例えば、プログラマブル論理106およびプログラマブル相互接続109)の機能を決定する。初期化回路139は、PLD103のリセットまたは電力アップ時にさまざまな機能の実行を生じさせ得る。
【0047】
I/O回路網112は、本開示の利益を得る当業者に理解されるように、幅広いさまざまなI/Oデバイスまたは回路を構成し得る。I/O回路網112は、PLD103のさまざまな部分、例えば、プログラマブル論理106およびプログラマブル相互接続109に連結し得る。I/O回路網112は、外部の回路網またはデバイスと通信するために、PLD103内のさまざまなブロックに機構および回路網を提供する。
【0048】
テスト/デバッグ回路網115は、PLD103内のさまざまなブロックおよび回路のテストおよびトラブルシュートを容易にする。テスト/デバッグ回路網115は、本開示の利益を得る当業者に公知のさまざまなブロックまたは回路を含み得る。例えば、テスト/デバッグ回路網115は、必要に応じて、PLD103が電力アップの後、またはリセットした後にテストを行うための回路を含み得る。テスト/デバッグ回路網115は、必要に応じて、コーディングおよびパリティー回路も含み得る。
【0049】
PLD103は、1つ以上のプロセッサ118を含み得る。プロセッサ118は、PLD103内の他のブロックおよび回路に連結し得る。プロセッサ118は、本明細書の開示の利益を得る当業者に認識されるように、PLD103内または外部の回路からデータおよび情報を受信し、幅広いさまざまな方法で情報を処理し得る。1つ以上のプロセッサ118は、デジタル信号プロセッサ(DSP)を構成し得る。DSPは、必要に応じて、幅広いさまざまな信号処理タスク、例えば、圧縮、解凍、オーディオ処理、ビデオ処理、フィルターリング等を行うことを可能にする。
【0050】
PLD103は、1つ以上の通信回路121も含み得る。通信回路121は、当業者に理解されるように、PLD103内のさまざまな回路とPLD103外部の回路との間のデータおよび情報の交換を容易にし得る。例えば、いくつかの実施形態において、通信回路121は、他の電子デバイスと通信するためのトランシーバーを含み得る。
【0051】
PLD103は、1つ以上のメモリ124および1つ以上のコントローラ127をさらに含み得る。メモリ124は、PLD103内のさまざまなデータおよび情報(例えば、ユーザーデータ、中間結果、計算結果等)の格納を可能にする。メモリ124は、必要に応じて、粒状またはブロックの形態を有し得る。メモリコントローラ127は、メモリ124、および/またはPLD103および/またはダイ5の外側のメモリ(例えば、別の半導体ダイ(示されていない)において集積されたメモリ)にインターフェース接続することと、並びにそれらの動作およびさまざまな機能を制御することを可能にする。例えば、メモリコントローラ127は、必要に応じて、外部の(例えば、別の半導体ダイ(示されていない)において集積されたメモリ)同期型ダイナミックランダムアクセスメモリ(SDRAM)にインターフェース接続し、かつ制御するメモリコントローラを構成し得る。
【0052】
フレキシブルインターフェースブロック10は、前述のように、回路網を含み、機能を提供し得る。フレキシブルインターフェースブロック10は、プログラマブル相互接続109に連結する。次に、プログラマブル相互接続109は、PLD103の回路網の1つ以上のブロック(例えば、図面において示されたブロック)に連結する。このようなブロックは、プログラマブル相互接続109を介してフレキシブルインターフェースブロック10と通信し得る。さらに、フレキシブルインターフェースブロック10は、相互接続12を介して、別の半導体ダイ(示されていない)内の回路網と通信し得る。
【0053】
図10は、例示的実施形態に従う、プログラマブルリソースおよびフレキシブルインターフェースブロックを含むPLD103のブロックダイヤグラムを示す。特に、図面は、2次元アレイとして配列されるプログラマブル論理106を含むPLD103の平面図を示す。水平相互接続および垂直相互接続として配列されるプログラマブル相互接続109は、プログラマブル論理106のブロックを互いに連結する。
【0054】
PLD103は、行、列として、または、2次元またはアレイパターンで配列され得るフレキシブルインターフェースブロック10を含む。フレキシブルインターフェースブロック10は、プログラマブル相互接続109を介してPLD103の1つ以上のブロックに連結する。前述のように、2つ以上のフレキシブルインターフェースブロック10は、増加されたバンド幅、処理量、機能等を提供するために、一緒にグループ化され得る。フレキシブルインターフェースブロックのこのようなグループは、プログラマブル相互接続を介してプログラマブル論理106またはPLD103の回路網の他のブロック(例えば、図9を参照する)に連結し得る。
【0055】
当業者に理解されるように、ユーザーの設計を実装するように特定の方式でさまざまなブロックを図10に配置し得る。ブロック、ブロックの一部分、またはブロックのセットは、PLD103のタイルまたは領域を構成し得る。従って、PLD103は、当業者に理解されるように、所望の配置で(2等分、4等分等のように)配列されるいくつかのタイルを含み得る。他の実施形態において、PLD103は、行および/または列の回路網または回路網のブロックを含み得る。
【0056】
フレキシブルインターフェースブロック10は、有利にPLDにおいてより小さい粒状のレベルで使用され得る。具体的には、いくつかの実施形態において、PLD103のコアまたは骨組は、プログラマブル回路網(プログラマブル論理、プログラマブル相互接続等)のより小さい粒状の構造を含み得る。フレキシブルインターフェースブロック10は、このような実施形態において、PLD103において粒度の所望のレベルでフレキシブル、カスタマイズ可能なインターフェースを提供するために使用され得る。
【0057】
図11は、例示的実施形態に従う、プログラマブル相互接続109を介してフレキシブルインターフェースブロック10に接続されるプログラマブル論理106のブロックの回路配列を示す。示される例示的実施形態において、プログラマブル論理106は、論理要素、または、プログラマブル論理要素、回路、またはブロック150、ローカル相互接続152、インターフェース回路153、およびインターフェース回路156を含む。フレキシブルインターフェースブロックは、グローバルPLDリソースレベルより低いレベル、グローバルPLDリソースレベル、または両方のレベルでプログラマブル論理106に連結し得る。
【0058】
論理要素150は、当業者に理解されるように、構成可能またはプログラマブル論理機能、例えば、LUT、フリップフロップ、レジスタ、積項論理等を提供する。ローカル相互接続152は、互いに連結するための構成可能またはプログラマブル機構を論理要素150に提供する。加えて、ローカル相互接続152は、1つ以上のフレキシブルインターフェースブロック10に対して、論理要素150のための構成可能またはプログラマブル機構を提供する。
【0059】
論理要素150は、必要に応じて、互いに、1つ以上のフレキシブルインターフェースブロック10に、またはプログラマブル相互接続109(ときどき、「グローバル相互接続」と呼ばれる)に連結し得る。インターフェース回路156およびインターフェース回路153は、プログラマブル相互接続109(および、従って他のプログラマブル論理106)に連結するための構成可能またはプログラマブル方法を回路網のプログラマブル論理106ブロックに提供する。
【0060】
インターフェース回路156およびインターフェース回路153は、当業者に理解されるように、MUX、DEMUX、レジスタ、バッファー、パスゲート、ドライバー等を含み得る。より高いレベルにおいて、より大きなプログラマブルブロックを実現するために、大量の論理要素150および関連の回路網を組み合わせ得る。所望のレベルの粒度のプログラム可能性を有する回路網のプログラマブルブロックを生成するために、所与の状況で所望されるように、または適切なように、このプロセスを繰り返し得る。このようなレベルのうちの1つ以上において、PLD103の階層構造または構成または回路網は、多くの方法で(例えば、個々のブロック、行、列、2次元アレイ等として)配列され得る1つ以上のフレキシブルインターフェースブロック10に連結され得る。
【0061】
一旦所望の数のフレキシブルインターフェースブロック10が、PLD103に含まれると、PLDのプログラマブル特性は、フレキシブルインターフェースブロック10と一緒に、所望の機能を有する幅広いさまざまな電子回路網またはシステムを実現または実装するためのスケーラブル、フレキシブルな構造をユーザーに提供する。ユーザーがこのような回路網またはシステムを実装または実現することを支援するために、コンピュータ支援設計(CAD)フローまたはソフトウェアを使用し得る。
【0062】
図12は、例示的実施形態に従うPLD CADソフトウェアまたはフローが使用するさまざまなソフトウェアモジュールを例示する。モジュールは、設計エントリーモジュール203、合成モジュール206、配置−ルートモジュール209、および検証モジュール212を含む。CADフローは、さまざまなアプリケーションを有し、かつさまざまな機能を提供し得る。実施例は、設計エリア最適化または計画、配置、タイミング実行および終結、電力計画、ルート能力最適化または計画等を含む。
【0063】
設計エントリーモジュール203は、必要に応じて、回路またはその挙動のグラフィックまたはテキスト記述(例えば、概略図、ハードウェア記述言語(HDL)、または波形)を用いてさまざまな設計記述ファイルの編集を可能にする。ユーザーは、必要に応じて、設計エントリーモジュール203を用いること、またはさまざまな電子設計自動化(EDA)またはCADツール(例えば、産業標準EDAツール)を用いることによって設計ファイルを生成し得る。ユーザーは、必要に応じて、グラフィック形式、波形ベースの形式、概略形式、テキストまたは2進化形式、またはそれらの形式の組み合わせで設計を入力し得る。
【0064】
ユーザーは、1つ以上のフレキシブルインターフェースブロック10を全PLDの仕様の一部分として特定し得る。フレキシブルインターフェースブロック10を用いることによって、ユーザーの回路は、前述のように1つ以上の半導体ダイにおいて集積された他の回路網に連結し得る。ユーザーは、さまざまな仕様をフレキシブルインターフェースブロック10に提供し得る。実施例は、位置(配置仕様)、電力仕様、タイミング仕様、機能等を含む。前述のように、ユーザーは2つ以上のフレキシブルインターフェースブロック10をグループ化もし得る。
【0065】
いくつかの実施形態において、CADフローは、PLD103の回路網のブロックまたはIPとして、フレキシブルインターフェースブロック10、およびそれらが連結する回路網を論理的に扱う。従って、このようなフレキシブルインターフェースブロック10は、PLD103のダイと異なるダイにおいて集積された回路網に物理的にインターフェース接続し得るが、ユーザーの回路を解析、合成および配置する目的のために、CADフローは、そのような回路網がPLD103の回路網の一部分であり、フレキシブルインターフェースブロック10の位置において配置されているように考え得る。言い換えると、フレキシブルインターフェースブロック10および関連の回路網(例えば、PLD103のダイと異なるダイにおいて集積されたメモリブロック)は、PLD103の内蔵メモリブロックとして表され、または扱われ得る。従って、この実施例において、メモリブロックは、メモリブロックに連結されたフレキシブルインターフェースブロック10として表され、または(例えば、論理的に)モデル化され得る。
【0066】
より抽象なオブジェクト(例えば、マクロ)を用いることによって、フレキシブルインターフェースブロック10および(例えば、PLD103のダイと異なるダイにおいて集積された)PLD103の外部の回路網のさまざまな物理的、電気的、および論理的属性は、抽象なオブジェクトに帰属され得る。このように、3D構造(例えば、別のダイの上に積重ねられた1つのダイ、それらのいずれかまたは両方がPLDであり得る)は、2次元(2D)構造としてユーザーに表され得る。従って、CADフローは、物理的構造、論理的構造、電気的構造等に関連付けられる複雑さ(例えば、タイミング、電気インターフェース、電圧レベル等)を取り扱う。結果として、3D構造に関連付けられる複雑さは、3D構造を2D構造として表すことによって隠され、またはPLD(またはPLD CAD)のユーザーに対して透明にされ得る。当業者に理解されるように、この概念は、メモリブロックに限定されず、必要に応じて、幅広いさまざまな回路網およびIPブロックに適用され得る。
【0067】
例えば、ユーザーは、彼または彼女の回路を実装するために、メモリブロックを使用しようとすることを想定する。CADフローは、PLD103のダイと異なるダイにおいて集積されるメモリブロックを特定するメモリブロックの表示を含み得、その場合、メモリブロックを含むダイは、PLD103のフロアプランの位置Xにおいて1つ以上のフレキシブルインターフェースブロック10を介してPLD103に連結する。ユーザーの視点から、メモリブロックは、彼または彼女が設計仕様の一部分として使用し得るマクロである。メモリブロックの位置仕様、電気的(タイミング、信号、コントローラ設計、プロトコル等)、物理的(例えば、異なるダイ)、および論理的属性(幅、深さ等)を用いて、PLD CADフローは、ユーザーの設計においてメモリブロックを適切に表す。
【0068】
合成モジュール206は、設計エントリーモジュール203の出力を受け取る。ユーザーから提供された設計に基づいて、合成モジュール206は、ユーザーから提供された設計を実現する適切な論理回路網を生成する。1つ以上のPLD(明確に示されていない)、例えば、図1のPLD103は、合成されたすべての設計またはシステムを実装する。
【0069】
合成モジュール206は、ユーザーの設計のさまざまなモジュールの集積、適切な動作およびインターフェース接続を可能にする任意のグルー(glue)論理も生成し得る。例えば、合成モジュール206は、1つのブロックの出力が、別のブロックの入力を適切にインターフェース接続するように適切なハードウェアを提供する。合成モジュール206は、全設計またはシステムのモジュールの各々の仕様に満たすように、適切なハードウェアを提供し得る。ユーザーの設計が、抽象なオブジェクトまたは回路網またはコンポーネント(例えば、フレキシブルインターフェースブロック10を介してPLD103に連結された回路網)を含む場合、合成モジュールは、オブジェクトの属性を用いてユーザーの設計のオブジェクトを表す。
【0070】
さらに、合成モジュール206は、合成された設計を最適化するためのアルゴリズムおよびルーチンを含み得る。最適化を通じて、合成モジュール206は、全設計またはシステムを実装する1つ以上のPLDのリソースをより効率的に使用しようとする。合成モジュール206は、その出力を配置およびルートモジュール209に提供する。合成の後に、テクノロジーマッピングモジュールを含み得る(明確に示されていない)。
【0071】
配置およびルートモジュール209は、PLD103のフロアプランにおいて最適の論理マッピングおよび配置を行うために、設計者のタイミング仕様を使用する。論理マッピングおよび配置は、PLD内に論理リソースの使用を決定する。設計のある部分に対するPLD内の特定のプログラマブル相互接続の使用によって、配置およびルートモジュール209は、全設計またはシステムの性能を最適化することを助ける。PLDルーティングリソースの適切な使用によって、配置およびルートモジュール209は、全設計またはシステムのクリティカルタイミングパスを満たすことを助ける。前述のように、フレキシブルインターフェースブロック10は、PLD103のフロアプランにおいて、予め決定され、予め割り当てられ、予約され、または分配された位置を有し得る。配置およびルートモジュール209は、その位置についての情報を使用して、他のコンポーネントをフレキシブルインターフェースブロック10に、従ってPLD103のダイと異なるダイにおいて集積された他の回路網に適切にルーティングする。
【0072】
配置およびルートモジュール209は、当業者に理解されるように、より速いタイミング終結を提供することを助けるために、クリティカルタイミングパスを最適化し得る。結果として、全設計およびシステムは、より速い性能を達成し得る(すなわち、より高いクロックレートで動作し、またはより高い処理量で動作する)。
【0073】
検証モジュール212は、設計のシミュレーションおよび検証を行う。シミュレーションおよび検証は、部分的に、設計がユーザーの規定された使用を満たすことを検証しようとする。シミュレーションおよび検証は、設計を試作する前に、任意の設計問題を検出し、かつ修正することを支援する。従って、検証モジュール212は、全設計またはシステムの全コストおよび所要時間を減少させるようにユーザーを助ける。
【0074】
検証モジュール212は、必要に応じて、さまざまな検証およびシミュレーションオプションをサポートし、かつ行い得る。本開示の説明の利益を得る当業者に理解されるように、オプションは、機能の検証、テストベンチの生成、静的タイミング分析、タイミングシミュレーション、ハードウェア/ソフトウェアシミュレーション、システム内の検証、ボードレベルタイミング分析、信号保全性解析および電磁気適合性(EMC)、形式のネットリスト検証等を含み得る。
【0075】
必要に応じて、かつ本開示の説明の利益を得る当業者に理解されるように、他のまたは追加の検証技術を行い得ることを留意する。設計の検証は、適切なように、かつ必要に応じて、フローの他の段階でも行われ得る。
【0076】
前述のように、上記説明は、開示された概念を部分的にPLDに関連させるが、当業者の知識内にある変更を行うことによって、開示された概念は、さまざまな他の電子回路およびデバイスに適用され得る。このようなデバイスのいくつかの例は、カスタム、標準セル、ゲートアレイ、フィールドプログラマブルゲートアレイ(FPGA)、複雑なPLD(CPLD)、および構造化されたASIC実装を含む。
【0077】
コンピュータシステムおよびプロセスにおいて開示されたアルゴリズム、方法、ソフトウェア(例えば、CADソフトウェア)、またはファームウェア(例えば、いくつかの回路網(例えば、ボーディーバイアス制御回路網)の機能の一部分がファームウェアを用いて実装される場合)を動作させ、または実行し得る。具体的には、PLD CADフローは、情報処理システムまたはコンピュータ(例えば、図13に示される情報処理システム)において動作するソフトウェアとして実装され得る。当業者は、必要に応じて、幅広いさまざまな他の情報処理装置、コンピュータシステム、プロセッサ、マイクロコンピュータ、ワークステーション等を使用し得る。従って、図13は、1つの実施例を例示することに過ぎない。
【0078】
システム1000は、コンピュータデバイス1005、入力デバイス1010、ビデオ/ディスプレイデバイス1015、および格納/出力デバイス1020を含むが、必要に応じて、それらのデバイスの各々の1つより多いものを含み得る。コンピュータデバイス1005は、入力デバイス1010、ビデオ/ディスプレイデバイス1015、および格納/出力デバイス1020に連結する。システム1000は、当業者に理解されるように、必要に応じて、1つより多いコンピュータデバイス1005、例えば、関連付けられたコンピュータデバイスまたはシステムのセットを含み得る。
【0079】
システム1000は、ユーザーからの入力に関連して動作する。ユーザー入力は、一般的に、システム1000に、特定の所望の情報処理タスク、例えば、回路シミュレーションを行わせる。システム1000は、それらのタスクを行うために、部分的にコンピュータデバイス1005を使用する。コンピュータデバイス1005は、情報処理回路網、例えば、中央処理ユニット(CPU)を含むが、当業者に理解されるように、1つより多いCPUまたは情報処理回路網を使用し得る。
【0080】
入力デバイス1010は、ユーザーから入力を受信し、処理のために、コンピュータデバイス1005に利用可能な入力を作る。ユーザー入力は、必要に応じて、データ、命令、または両方を含み得る。入力デバイス1010は、英数字入力デバイス(例えば、キーボード)、ポインティングデバイス(例えば、マウス、ローラーボール、ライトペン、タッチセンサー式の装置、例えば、タッチセンサー式のディスプレイ、またはタブレット)、または両方を構成し得る。ユーザーは、英数字キーボードを動作させ、テキスト、例えば、ASCII文字をコンピュータデバイス1005に提供する。同様に、ユーザーは、ポインティングデバイスを動作させ、カーソル位置または制御情報をコンピュータデバイス1005に提供する。
【0081】
ビデオ/ディスプレイデバイス1015は、ユーザーに視覚的画像またはグラフィックを表示する。視覚的画像は、コンピュータデバイス1005の動作についての情報、例えば、グラフ、絵、画像、およびテキストを含み得る。ビデオ/ディスプレイデバイスは、当業者に理解されるように、コンピュータモニターまたはディスプレイ、投影デバイス等を含み得る。システムが、タッチセンサー式のディスプレイまたはタッチスクリーンを使用する場合、ディスプレイは、ユーザー入力をコンピュータデバイス1005に提供するようにも動作し得る。
【0082】
格納/出力デバイス1020は、コンピュータデバイス1005が、追加の処理または後の検索のための情報を格納すること(例えば、ソフトコピー)、またはさまざまな形で情報を表すこと(例えば、ハードコピー)、または両方のことを可能にする。実施例として、格納/出力デバイス1020は、所望の媒体上に、かつ所望の形式で情報を格納することが可能である磁気、光学、または磁気光学のドライブを構成し得る。別の実施例として、格納/出力デバイス1020は、コンピュータデバイス1005からの情報の、プリントまたはプロットされた表示を生成するために、プリンター、プロッター、または他の出力デバイスを構成し得る。
【0083】
コンピュータ読み取り可能な媒体1025は、構造的かつ機能的にコンピュータデバイス1005に相互に関連する。コンピュータ読み取り可能な媒体1025は、機能的記述材料を格納、暗号化、記録、および/または実施する。例示として、機能的記述材料は、コンピュータプログラム、コンピュータコード、コンピュータアプリケーション、および/または情報構造(例えば、データ構造またはファイルシステム)を含み得る。コンピュータ読み取り可能な媒体1025によって格納、暗号化、記録、および/または実施される場合、機能的記述材料は、機能を与える。機能的記述材料は、コンピュータ読み取り可能な媒体1025に相関する。
【0084】
機能的記述材料内の情報構造は、情報構造と、コンピュータ読み取り可能な媒体1025および/またはシステム1000の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、情報構造の機能の実現を可能にする。さらに、このような機能的記述材料内において、コンピュータプログラムは、コンピュータプログラムと、コンピュータ読み取り可能な媒体1025およびシステム1000の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、コンピュータプログラムの機能の実現を可能にする。
【0085】
例示として、コンピュータデバイス1005は、コンピュータデバイス1005のコンピュータメモリ(図面において明確に示されていない)内の機能的記述材料を読み取り、アクセスし、またはそれらをコンピュータメモリ内にコピーする。コンピュータデバイス1005は、コンピュータメモリに存在する材料に応じて動作を行う。コンピュータデバイス1005は、コンピュータデバイス1005に追加の動作を行わせるコンピュータアプリケーションを処理する動作を行い得る。従って、機能的記述材料は、コンピュータデバイス1005がプロセスを実行し、かつ動作を行う方法と機能的相関を示す。
【0086】
さらに、コンピュータ読み取り可能な媒体1025は、装置を構成し、コンピュータデバイス1005は、装置から、コンピュータ情報、プログラム、コード、および/またはアプリケーションにアクセスし得る。コンピュータデバイス1005は、コンピュータデバイス1005に追加の動作を行わせる情報、プログラム、コード、および/またはアプリケーションを処理し得る。
【0087】
当業者に理解されるように、さまざまな方法でコンピュータ読み取り可能な媒体1025を実装し得ることを留意する。例えば、コンピュータデバイス1005内のメモリは、必要に応じて、コンピュータ読み取り可能な媒体1025を構成し得る。代替的には、コンピュータ読み取り可能な媒体1025は、例えば、コンピュータデバイス1005が、コンピュータデバイスまたは情報処理システムのネットワークから機能的記述材料を受信する場合、関連され、相関され、(例えば、導体、ファイバー等を介して)連結され、またはネットワークでつなげられたコンピュータ読み取り可能な媒体のセットを含み得る。コンピュータデバイス1005は、必要に応じて、コンピュータ読み取り可能な媒体1025、ネットワーク、または両方から機能的記述材料を受信し得ることを留意する。
【0088】
図面を参照すると、当業者は、さまざまな示されたブロックが、主に概念的機能および信号フローを描き得ることを留意する。実際の回路実装は、さまざまな機能的ブロックに対して別個に識別可能なハードウェアを含み得るか、または、含まない場合もあり、示される特定の回路網を含み得るか、または、含まない場合もある。例えば、必要に応じて、1つの回路ブロック内にさまざまなブロックの機能を組み合わせ得る。さらに、必要に応じて、いくつかの回路ブロックにおいて、単一なブロックの機能を実現し得る。回路実装の選択肢は、所与の実装のための特定の設計および性能仕様のようなさまざまなファクターに依存する。本明細書で説明された実施形態に加えて、他の変更および代替的な実施形態は、当業者によって明白である。従って、この説明は、当業者に、開示された概念を実行する方式を教示し、そして単に例示として解釈されるべきである。
【0089】
示され、かつ説明された形態および実施形態は、例示的な実施形態としてとられるべきである。当業者は、本明細書に開示された概念の範囲から逸脱することなしに、パーツの形状、大きさおよび配列においてさまざまな改変を行い得る。例えば、当業者は、本明細書で例示され、かつ説明された構成要素に対して同等の要素を代わりに用い得る。さらに、当業者は、開示された概念の範囲から逸脱することなしに、他の特徴の使用に独立して、開示された概念の一定の特徴を使用し得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13