JP4799052B2 - マスクプログラマブルロジックデバイスのスイッチ方法 - Google Patents

マスクプログラマブルロジックデバイスのスイッチ方法 Download PDF

Info

Publication number
JP4799052B2
JP4799052B2 JP2005163354A JP2005163354A JP4799052B2 JP 4799052 B2 JP4799052 B2 JP 4799052B2 JP 2005163354 A JP2005163354 A JP 2005163354A JP 2005163354 A JP2005163354 A JP 2005163354A JP 4799052 B2 JP4799052 B2 JP 4799052B2
Authority
JP
Japan
Prior art keywords
programmable logic
mask
logic device
logic
source
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
JP2005163354A
Other languages
English (en)
Other versions
JP2005348413A (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.)
Altera Corp
Original Assignee
Altera 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 Altera Corp filed Critical Altera Corp
Publication of JP2005348413A publication Critical patent/JP2005348413A/ja
Application granted granted Critical
Publication of JP4799052B2 publication Critical patent/JP4799052B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明はマスクプログラマブルロジックデバイスに関し、より詳細には既存の回路設計からマスクプログラムされたロジックデバイスを作成する方法に関する。
プログラマブルロジックデバイス(PLD)がよく知られている。早期のプログラマブルロジックデバイスは1回の設定が可能である。例えば設定はヒュージブルリンクを「吹く」(すなわち「開く」)ことによって達成することができた。あるいは、設定はプログラマブル読み取り専用メモリに保存されてきた。一般にこれらデバイスによって、ユーザは「積和」(または「P項」)論理演算のためにデバイスを設定することが可能であった。そののち、設定目的に消去可能なプログラマブル読み取り専用メモリ(EPROM)を内蔵するプログラマブルロジックデバイスが利用可能となり、デバイスの再設定が可能となった。
さらに後になって、構成用に静的ランダムアクセスメモリ(SRAM)を内蔵するプログラマブルロジックデバイスが利用可能となった。これらデバイスもまた再設定可能であり、EPROM等の非揮発性メモリ中の設定情報を保存し、デバイスの電源を入れると設定が非揮発性メモリからSRAM素子へと取り込まれる。一般にこれらデバイスによって、ユーザは、ルックアップテーブル型論理演算のためにデバイスを設定することが可能であった。これらのデバイスにはある時点から、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)またはロジック(P−TERMロジック)としての働きをするようユーザによって設定可能なランダムアクセスメモリの組み込みブロックが提供されるようになった。
上述のプログラマブルロジックのすべてにおいて、デバイス中の特定のロジックリソースの論理機能と、ロジックリソース間で信号をルーティングするための相互接続リソースは両方ともプログラム可能であった。あるいは、マスクプログラマブルロジックデバイス(MPLD)が提供されてきた。マスクプログラマブルロジックデバイスがあれば、全ユーザに同じデバイスを販売する代わりに、製造業者は、ユーザによって機能をプログラムできず、経路設定ないし相互接続リソースのないロジックリソースが標準配列されたマスクプログラマブルベースデバイスを製作する。
ユーザは、マスクプログラマブルロジックデバイスの製造業者に対して、所望のデバイスの仕様を提供する。該仕様は同等の従来のプログラマブルロジックデバイス(「ソースPLD」)をプログラミングするための設定情報ファイルであってもよい。製造業者はこの情報を使用して、上述のベースデバイスにメタライゼーション層を加える。これら追加された層は、ソースデバイスの設計可能メモリ(CRAM)セルの設定情報に基づいて、リソース中の所定の固定接続を行うことによって(すなわち、ユーザの情報ファイルからMPLDの電源に供給された設定値をハードコードすることによって)、ベースデバイスのロジックリソースをプログラミングする。さらにこれら追加層は、ロジックリソース間で経路設定を行う相互接続リソースを追加する。またマスクプログラマブルロジックデバイスには、従来のプログラマブルロジックデバイスに関連して先に記載した、組み込みランダムアクセスメモリブロックを供給してもよい。このようなマスクプログラマブルロジックデバイスにおいて、組み込みメモリが読み取り専用メモリまたはP−TERMロジックとして構成されている場合、この構成はこの追加メタライゼーション層を使用して達成することもできる。
従来のプログラマブルロジックデバイスによって、ユーザは所望の機能を実行するためにデバイスを簡単に設計することができるが、該デバイスは特定の設計向けには使用しなくてもよいリソースも必ず含んでしまう。さらに、汎用経路設定ならびに相互接続リソース(以下、経路設定・相互接続リソースと呼ぶ)、および任意のロジックリソースから所望の経路設定・相互接続リソースに信号を到達させるスイッチングリソースを収容するために、従来のPLDは、より高い機能性が内蔵されるにつれ大きくなり、デバイスのサイズおよび電力消費を増加させる。種々のスイッチングリソースを介した経路設定もまた、信号が一つの経路設定・相互接続リソースから別の経路設定・相互接続リソースへと移動するにつれ信号を遅延させる。
マスクプログラマブルロジックデバイスの出現によってユーザは、従来のソースプログラマブルロジックデバイス中の設計を示すが、同一の機能性に対して大幅に小さくかつ消費電力が大幅に小さい製造版をマスクプログラマブルロジックデバイスに収容することができる。その理由は、特定の設計のために必要な相互接続・経路設定リソースのみが該ベースデバイスに追加されるためである。さらに、空間または電力を消費するか、あるいは信号を遅延させる汎用スイッチリソースは存在しない。ソースPLDの既存設計のマスクプログラマブルなベースデバイス上へのこのような実装は、2002年3月29日に例えば同一出願人により出願された同時係属米国特許出願第10/113,838号明細書に記載されており、該出願の全文は本明細書において参照によって引用される。
このようなMPLDは、信号相互接続、信号経路設定機能設定ロジックおよび設定メモリを初めとするソースデバイスのすべてのプログラム性を除去することによって、ソースPLDと比較して、金型サイズに関して大幅な利点が得られる。このようなMPLDのベースデバイスアーキテクチャは、経路設定構造を除き、ソースデバイスと略同一である。このようなMPLDのベースデバイス上のロジックリソースの構成は、関連するソースデバイスの構成と異なっていてもよいが、一方これらリソースは、機能性、量、アクセス性、構造において同一であってもよく、この場合等価なソースデバイスからベースデバイスへの直接のリソース間変換が可能になる。
ソースデバイスの既存信号相互接続、信号経路設定機能設定ロジック、設定メモリ、所定の信号バッファをこれらMPLDから除去することによって、金型サイズを大幅に低減し、信号経路設定を最適化することができる。しかし、ロジックリソースの相互接続経路設定およびCRAM設定値は、ベースデバイスにメタライゼーション層を追加することによってこれらMPLDの物理設計においてハードコードされる。したがって、ソースデバイスのロジックリソースの機能設定ロジック回路は、ベースデバイス上に維持されるため、設計変更および予定開発期間を最小にする。この機能設定ロジックは、デバイスのサイズおよび電力消費を増加させる相当な量のトランジスタ回路を含んでいる。
したがって、既存の回路設計を実装するが要求されるユーザ関与が最小であるマスクプログラマブルロジックデバイスの領域および性能を最適化するための、改良された技法、装置、方法を提供することが望ましい。
本発明は、既存の回路設計を実装するマスクプログラマブルロジックデバイスの領域および性能を最適化する改良した技法、装置および方法を提供する。
本発明は、ベースデバイスアーキテクチャを変更してトランジスタのないソースデバイスの機能設定ロジック回路の機能性を促進することによって、マスクプログラマブルロジックデバイスのサイズ、節電および性能をさらに最適化する。この変更は、ソースデバイスの機能設定ロジックおよびCRAM設定情報を、マスクプログラマブルベースデバイス上の「スマート」スイッチに置き換えることを含む。スマートスイッチはメタル端子であり、1個または複数のスイッチ入力端子のうち1個とスイッチの出力端子との接続を行うためにメタライゼーション層をスマートスイッチの上に加えてもよい。この接続は、スイッチによって置き換えられている1個または複数のリソースの機能性から導き出され、該リソースと関連付けられたCRAM値によって定義されるブール論理式に基づいて行われる。
本発明では、集積回路上に配列され、ソースプログラマブルロジックデバイスの既存設計をマスクプログラマブルデバイスへと変換することを促進するよう構成されたマスクプログラマブルロジックデバイスを提供している。マスクプログラマブルロジックデバイスは、集積回路の基板上に配列された複数のマスクプログラマブルロジックリソースと、マスクプログラマブルロジックリソースに接続され該マスクプログラマブルロジックリソースを相互接続するために基板上に配列された複数の相互接続用導体を備える。複数のマスクプログラマブルロジックリソースのうち少なくとも1個は、基板上に配列された少なくとも1個のスマートスイッチを備える。少なくとも1個のスマートスイッチは、ソースプログラマブルロジックデバイス設計の機能設定ロジック回路の機能を実行するようプログラム可能である。
上述のまたはその他の本発明による利点は、添付図面とともに以下の詳細な説明を検討することによってより明らかになる。添付図面において、類似の参照記号は同様の部品を表す。
本発明は、ベースデバイスの機能設定ロジック回路および関連するCRAM設定値ではなく、スマートスイッチを提供することによって、マスクプログラマブルロジックデバイスの金型領域および出力要件を低減する一方、性能および収率を増加させる。スマートスイッチは、トランジスタを使用せずに、かつては別の集積回路上で実装されていた回路設計の機能設定ロジック回路の機能性を促進するために使用されてもよい。ベースデバイスアーキテクチャ、スマートスイッチ構造、相互接続、および変換工程を以下詳細に記載する。
次に、本発明を図1〜図15を参照に説明する。
図1に示すように、本発明にしたがって構成されたマスクプログラマブルベースデバース10の一実施形態は、カリフォルニア州サンノゼのAltera Corporation社およびその譲受人によって販売されるプログラマブルロジックデバイス(すなわち、想定されるソースデバイス)のAPEX(登録商標)およびStratix(登録商標)ファミリー中にみられるロジックリソースと類似のロジックリソースのアレイを備える。ここではAPEX(登録商標)タイプのアーキテクチャを示しているが、マスクプログラマブルデバイスのベース部の機種として所望により、PLD、CPLD(複合プログラマブルロジックデバイス)、または類似のデバイスのうち任意の種類のデバイスを使用可能であることが理解されるであろう。
図1に示すように、ロジックリソースは最も基本的なレベルに「論理素子」(LE)11を含んでいる。論理素子11は、例えば、4個の入力および登録済ないし未登録の出力を持つ能力を有するルックアップテーブルベースの論理領域であってもよい。論理素子11は、「ロジックアレイブロック」(LAB)12へとグループ分けしてもよい。本明細書に示す実施形態において、各LAB12は10個のLE11を有するが、他の個数のLE11を各LAB12へとグループ分けしてもよい。LAB12はさらに「LAB群」(GOL)13へとグループ分けしてもよい。例示する実施形態では、各GOL13は17個のLAB12を有するが、他の個数のLAB12を各GOL13へとグループ分けしてもよい。各GOL13は好適には、組み込みメモリブロック(本実施形態では「組み込みシステムブロック」と呼ぶ)14もあわせて有する。また、各GOL13は、例えば、特定の信号を緩衝、遅延、処理および/または経路設定するために使用される複数のゲートアレイサイト15を備えていてもよい。(詳細は後述する。)
さらに、LAB12をGOL13中に必ずしも構成する必要はなく、均一または不均一のパターンでベースデバイス10上に分散させてもよいことも理解されるであろう。これらリソースのうちいくつかはコアロジックアレイの外部にあってもよい。ベース金型10上のLE11およびLAB12の特定の構成は、本発明にとって重要なことではない。
図示するとおり、GOL13は行およびコラムが直交するアレイ中に配列してもよい。「入/出力素子」(I/O)は好適には、アレイの周辺部近傍の領域16中に位置している。好適には「位相同期グループ」(PLL)等(例:タイミング等を目的とする)他の補助回路を、アレイの中心近傍に示す領域17等、アレイ中の利便な位置に備えてもよい。
マスクプログラマブルベースデバイス10の「アーキテクチャ」(すなわち、全体構成)は、ソースPLD等ソースデバイスのアーキテクチャと大幅に異なっていてもよい。デバイス10は、該デバイスを搭載するソースデバイスと少なくとも同量のロジックリソース(例:論理素子、位相同期グループ、I/O素子等)を含んでいるが、これらリソースの大部分は、プログラム性が失われ、機能設定ロジックがスマートスイッチに置き換えられるよう変更されており、さらに異なる相対位置に物理的に配列、配置されていてもよい。例えば図1では、通常はソースデバイスの周辺部に位置するPLLが、より小さなマスクプログラマブルデバイスにおけるノイズ耐性を向上させ性能を最適化するために、デバイス10の中央に配列されている。機能設定ロジック、CRAMおよび経路設定リソースを除去することによって、GPL13は一方向における縮小が大きい。長方形型デバイスよりも製造、組み付けが容易なより正方形型のデバイスを維持するために、上述の行、コラムの直交アレイは、ソースデバイスの持つ2倍の行、半分のコラムとなるよう「折り重なって」いてもよい。(例えば、y方向と比較してx方向の長さが2倍であってもよく、その反対でもよい。)この配列の結果、デバイス10の各側に存在するI/Oセルのコラムが2倍になり、多くのソースデバイスI/Oの配列とは大きく異なってもよい。さらに、ソースデバイス上で利用可能なすべてのロジックリソースを、ユーザ設計で利用しなくてもよい。未使用のロジックリソース回路は、漏れ電流およびスイッチ電流を最小にするため、入力が電源および設地面に接続されない最低電流状態であってもよい。したがって、使用済の回路ブロックのみがマスクプログラムされたデバイス中に実装されるため、より高い電力性能が得られる。未使用のロジックリソースは、ベースデバイス10上の別の設計実装に利用可能であるものの、電源を入れなくてもよい。
上述のように、ベースデバイス10とソースデバイスとはおおむね異なる相互接続回路図を使用している。PLD等ソースデバイスは、伝統的に経路設定の自由度を提供し、チップ上の最大量のロジックリソースが確実に利用されるよう、多数の汎用経路設定導体を有する。信号は、PLD上のロジック回路部を相互接続して、特定の回路設計を得るためプログラマブルロジックコネクタ(この場合は、SRAMセルで構成されたマルチプレクサ)をプログラミングすることによって、チップ上に経路設定される。この種類の配列は、PLDの「プログラム性」を提供し、PLDが広範な回路設計を許容するよう使用されている。複合PLDでは、経路設定リソースは金型領域の大部分を占めている。このような固定リソースの大部分は、どの特定の設計においても使用されないことが多く、マスクプログラマブルベースデバイス10中で除去可能である。各ベースデバイス10上にカスタマイズされた相互接続ネットワークを構築することによって、金型サイズの大幅な節約が実現可能である。この相互接続ネットワークは、ベースデバイスの上面に搭載されたメタライゼーション層のマスクプログラミングによって実装してもよい。カスタマイズされた相互接続ネットワークに関連するいくつかの利点の一つに、ソースPLDと比較して、金型サイズおよび内部容量負荷の低減がある。
図2は、プログラミング後(すなわち、「マスクプログラムされた」デバイス20となった後)のマスクプログラマブルベースデバイス10の断面図である。図2では、プログラムされていないベースデバイス10を構成する基板および他の層を集合的に参照番号21で示す。(代表として1個のトランジスタ/スイッチ25を示す。)追加的なメタライゼーション層22および誘電体層23を使用して、デバイス20をプログラミングし、ベースデバイス10に含まれるリソースを接続するカスタマイズされた相互接続ネットワークを作成する。一般には、メタライゼーション層22および誘電体層23を保護するために封入層24が設けられている。したがって、マスクプログラムされたロジックデバイス20は、転換元であるソースデバイスと同一のロジックリソース、メモリ、I/O、PLLを有するマスクプログラマブルベースデバイス10上に構築することができるが、ソースデバイスと同一のアーキテクチャを持つ必要はない。しかし、一部の実施形態では、このアーキテクチャも同一であって、本明細書中に記載の方法によってマスクプログラムされたデバイス20へと変換してもよい。
本発明の変換工程は、マスクプログラマブルベースデバイス10が少なくともソースデバイスと同一のロジックリソースを有すること、および、デバイス10がピン互換性を有し、ソースデバイスの重要なタイミング制約を満たすことを除けば、リソースの過去の位置によって制約されないという利点を活用している。
本発明のベースデバイス10には、任意のロジックリソースの任意の機能設定ロジック回路(すなわち、機能性が少なくとも1個の機能設定CRAM値に依存している回路)の機能性をトランジスタなしで促進するよう設定可能なスマートスイッチが提供される。各スマートスイッチの能力は様々であり、金型領域および電力要件を低減しながら性能および収率を増加するよう、MPLD全体を通して種々の形態で使用することができる。ロジックリソースの特定の回路を置き換えるために採用されるスマートスイッチの種類は、例えば回路の機能性および該機能性に関連する非機能設定値の数によって異なってもよい。
図3は、実施可能なスマートスイッチの一種類を示す図である。この「2入力」スイッチ30は、第1入力端子31(接続ピンA)、第2入力端子32(接続ピンB)および出力端子35(接続ピンZ)を含んでいてもよい。2入力スマートスイッチ30は、相互接続用導体がスイッチ内の接続ピンに接続される点において「プログラム可能である」と考えることができる。このプログラム性によって、一般的な2入力スマートスイッチ30は特定の機能を有する「スマートセル」を形成することができる。個々のスマートスイッチの容量およびサイズは、実装を予定している機能設定の機能性の種類に依存する場合もある。さらに、いくつかの異なる種類のスマートスイッチ(すなわち、容量およびサイズの異なるスマートスイッチ)をベースデバイス10全体に配列して金型領域の最適な低減を図ってもよい。
ベースデバイス10上に配列された2入力スイッチ30はそれぞれ、実装する特定の機能性にかかわらず、端子(すなわち接続ピン)間の接続を確立する方法(すなわちスイッチがプログラミングされる方法)をパラメータ的に示す回路図に組み込まれた同一の標準式38によって定義してもよい。このような式38は、ブール論理式「プレースホルダ」(@R)を含んでいる。このプレースホルダは、定義および評価される際に、2個の入力端子のうち第1入力端子が出力端子に接続されているかどうか、または、2個の入力端子のうち第2入力端子が出力端子に接続されているかどうかを特定する。標準式38は例えば以下の式で表すことが可能である。
EQ=@R?B:A (1)
(すなわち、「式@Rが真であれば第2入力ピンBを出力ピンZに接続し、そうでなければ第1入力ピンAを出力ピンZに接続する。」)
各2入力スイッチ30用のプレースホルダ式@Rは、スイッチによって置き換えられている機能設定ロジックの種類を定義し、(以下、詳細に説明する)置き換えられるロジックの構成に関してユーザから製造業者に対して提供される少なくとも1個の機能設定CRAM値に依存するブール関数から導き出すことができる。次に、スイッチの接続ピンの相互接続は、特定のスイッチに関連する少なくとも1個の機能設定CRAM値を用いて導き出されたプレースホルダ式@Rを評価することによって、決定してもよい。したがって、スマートスイッチはパラメータ化可能である。
2入力スマートスイッチ30の接続ピンは、所望の機能を持ったスマートセルを得るために、相互に接続されていてもよい。スマートセルは一般には、プログラムされた(構成された)スマートスイッチである。図4は、マスクプログラマブルベースデバイス10上の2入力スマートスイッチ30による置き換えに適した、ソースPLD上にみられる代表的な回路を表す機能設定ロジックの特定の配列40を示している。回路40は、インバータ41、トランジスタ42、43、44、45を備える標準型2対1マルチプレクサ(MUX)である。選択信号Rの論理値に基づいて、入力信号Xまたは入力信号Xのいずれかが出力XOUTに接続されている。本回路は以下のブール関数48を実現する。
OUT ・X+R・X(2)
2入力スイッチ30による置き換えに適したMUX40等を内蔵したソースPLD上では、選択信号は、ユーザの設定情報(CRAM)によって定義された静的値「R」(すなわちR)であるはずであるが、一方、入力信号X、Xは、CRAMによって定義される静的値「R」またはデバイスの使用によって決定される非機能設定信号値「N」(例:クロック信号、演算用に装置に提供されるユーザ信号等)のいずれかであってもよい。スイッチ30の各入力端子31、32は、接続ピンA、Bにそれぞれ接続されているとともに、対応する入力Xが実際のCRAM静的値Rであれば適切な固定論理値ソース(例:論理値「0」には電源Vss、論理値「1」には電源Vds)に、あるいは対応する入力Xが非機能設定信号値Nならばデバイスの適切な相互信号線に接続される。しかし、信号値N(すなわち、CRAM値R以外の値)から選択信号が供給されるソースPLD上の2対1MUXは、ベースデバイス10上の2入力スイッチ30によって置き換えられず、その代わり他の種類のスマートスイッチによって簡単に置き換えられる。詳細は図11、図12を参照に説明する。
回路40を置き換える2入力スイッチ30の標準式38を定義するプレースホルダ@Rのブール論理式は、出力XOUTに接続される第2入力Xに対して何が真とならなければならないかを決定することによって、ブール関数48から導き出してもよい。出力XOUTに接続される入力Xに対する選択入力Rが論理値「1」でなければならないと決定することによって、@Rを例えば「R」と簡単に定義してもよい。次にスイッチ30は@R=Rである標準式38を評価することによって、ユーザのCRAMによって定義されたRに対する適切な静的値を用いて、接続ピンを相互接続するようプログラミングされる。この詳細は図13、図14を参照に後に説明する。したがって、本実施例では、2入力スマートスイッチ30はベースデバイス10上の機能設定ロジック40を置き換えることができ、その結果ベースデバイスから4個のトランジスタおよび1個のインバータを取り除くことができる。
図4Aは、図4に示す2対1MUXのブロックを表す。
図5は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ30、およびスイッチがベースデバイス10上の2対1MUX回路40を置き換えるよう近似したプレースホルダ式@Rを更新した標準式38を示す図である。
図4および図4Aに示す機能設定ロジックの特定の配列40は単に例示的なものにすぎず、マスクプログラマブルベースデバイス10上の2入力スマートスイッチ30による置き換えに適したソースPLD上にみとめられた代表的な回路を表す機能設定ロジックの多くの他の配列が存在することが理解されるであろう。例えば、スイッチ30は、ANDゲート、ORゲート、インバータ、バッファ、NORゲート、XORゲート、排他的NORゲート、およびこれらの組み合わせを含むがこれに限らない、広範な機能設定ロジックを置き換えることに適しているかもしれない。さらに、本発明のスマートスイッチは、後に詳述するように任意の個数の入力を有していてもよく、CRAM値によって決定可能な任意のブール論理項を有する回路を置き換えることができることが理解されるであろう。さらに、複数のスマートスイッチを組み合わせて、フリップフロップ回路、レジスタ、カウンタ、遅延素子、加算器等のより高度な設定可能ロジック回路を置き換えてもよい。
マスクプログラマブルベースデバイス10上の2入力スマートスイッチ30による置き換えに適した機能設定ロジックの別の特定の配列60の例を図6に示す。回路60を置き換える特定の2入力スイッチ30、および置換回路40を置き換えるスイッチ30とは、スイッチの標準式38中のプレースホルダ@Rを定義するブール論理式に関して、およびスイッチの端子(すなわち、端子31、32、35)に対する外部接続の種類に関してのみ、互いに異なっていてもよい。
図6に示すように、回路60は例えばソースPLDのカラムアドレスデコーダ中で高頻度に使用される長く連なったロジックを含んでいる。回路60は、NANDゲート61およびNORゲート62、63、64を備え、各ゲートは4個のトランジスタと1個のインバータ(図示せず)を有している。ゲート62は、入力R、RのCRAM値を有するゲート62のNAND機能性を評価することによって、ゲート61の入力61aを適切な固定論理値ソース(例:VssまたはVds)に接続することによって簡単に置き換えてもよいが、一方、回路60全体を1個のスマートスイッチ30へと置き換えることも可能である。回路60の機能性を分析することによって、入力R、R、RおよびRの論理値に基づいて、論理値「0」または入力Nの補数のいずれかの出力XOUTへの接続が実現される。この回路は以下のブール関数68を実現する。
OUT (3)
回路60への入力として供給される論理信号値Nは1個だけであるため、論理値「0」のソース(例:Vss)は、スイッチ30の第1入力端子31に固定してもよく、非機能設定値Nの補数(すなわちN)をインバータ33を用いる第2入力端子32に接続してもよい(図7)。回路60を置き換える2入力スイッチ30の標準式38を定義するプレースホルダ@Rのブール論理式は、出力XOUTに接続される第2入力Nに対して何が真とならなければならないかを決定することによって、ブール関数68から導き出してもよい。各選択入力R〜Rが、出力XOUTに対して接続される入力Nの補数に対して論理値「0」でなければならないと定めることによって、@Rを例えば「 」として定義してもよい。次にスイッチ30は、@R である標準式38を評価することによって、ユーザのCRAMによって定義されるR〜R用の適切な静的値を用いて、接続ピンを相互接続するようプログラミングされてもよい。詳細は後に図13、図14を参照に説明する。したがってこの実施例では2入力スマートスイッチ30は、ベースデバイス10上の機能設定ロジック60を置き換えることができ、その結果ベースデバイスから16個のトランジスタおよび3個のインバータを除去することができる。
図7は、端子が上述の近似信号線または論理値ソースに接続されたスマートスイッチ30、およびスイッチがベースデバイス10上の回路60を置き換えるようプレースホルダ近似式@Rを更新した標準式38を示す図である。
図3、図5、図7に示す2入力型のスマートスイッチは単に例示的なものであって、マスクプログラマブルベースデバイス10上のソースPLDの機能設定ロジックを置き換えるために他の多くの種類のスマートスイッチが使用可能であることが理解されるであろう。例えば想定可能な他の種類のスマートスイッチを示す図を図8に示す。この「4入力」スイッチ80は、第1入力端子81(接続ピンA)、第2入力端子82(接続ピンB)、第3入力端子83(接続ピンC)、第4入力端子84(接続ピンD)および出力端子85(接続ピンZ)を含んでいてもよい。スイッチ30と同様に、4入力スマートスイッチ80は、相互接続用導体がスイッチ内の接続ピンに接続可能であるという点で「プログラム可能である」と考えることができる。
ベースデバイス80上に配列される各4入力スイッチは、実装する個々の機能性にかかわらず、端子(すなわち接続ピン)間の接続方法をパラメータ的に描写する回路図に内蔵される同一の標準式88によって定義してもよい。このような式88は、4入力端子の第1、第2、第3または第4の端子がスイッチの出力端子に接続されるべきか否かを、定義、評価の際に特定する3個のブール論理式プレースホルダ@R、@Rおよび@Rを有する。標準式88は例えば以下のように表される。
EQ=@R?D:@R?C:@R?B:A (4)
(すなわち、式@Rが真であれば第4入力ピンDを出力ピンZに接続し、式@Rが真であれば第3入力ピンCを出力ピンZに接続し、式@Rが真であれば第2入力ピンBを出力ピンZに接続し、それ以外であれば第1入力ピンAを出力ピンZに接続する。)
各4入力スイッチ80に対するプレースホルダ式@RD−Bはそれぞれ、スイッチによって置き換えられている機能設定ロジックの種類を定義し、置き換えられているロジックの構成に関する少なくとも1個の機能設定CRAM値に依存しているブール関数から、導き出すことができる。次にスイッチの接触点間の相互接続を、この特定スイッチに関連付けられた少なくとも1個の設定CRAM値を使用して導き出したプレースホルダ式@RD−Bを評価することによって、決定してもよい。したがってスイッチ30と同様、スマートスイッチ80はパラメータ化可能である。
図9は、マスクプログラマブルベースデバイス10上の4入力スマートスイッチ90による置き換えに適した、ソースPLD上にみられる代表的な回路を表す機能設定ロジックの特定の配列90を示す。回路90は、図4および図4AのMUX40と同様の3個の標準型2対1MUX40a、40b、40cの組み合わせから構成される、標準型4対1マルチプレクサ(MUX)である。MUX40a、40b、40cはそれぞれインバータ41およびトランジスタ42、43、44、45を備えている。選択信号R、Rの論理値に基づいて、入力信号X、X、X、Xのいずれかが出力XOUTに接続される。4対1MUX回路90は以下のブール関数98を実現する。
OUT ・X+R ・X ・R・X+R・R・X (5)
ベースデバイス10上の4入力スイッチ30による置き換えに適した4対1MUX90を内蔵するソースPLD上では、選択信号はユーザの設定情報によって定義された静的値「R」(すなわちR、R)でなければならない。一方、入力X、X、X、Xは、CRAMによって定義される静的値「R」またはデバイスの使用によって決定される非機能設定信号値「N」のいずれかであってもよい。スイッチ80の各入力端子81〜84は、それぞれが接続ピンA〜Dに接続されるとともに、対応する入力X1−4が実際に静的CRAM値Rであれば近似固定論理値ソースに、対応する入力X1−4が非機能設定信号値Nであればデバイスの近似相互接続信号線に接続される。
回路90を置き換える4入力スイッチ80の標準式88を定義するプレースホルダ@RD−Bは、出力XOUTに接続される各入力X1−4に対して何が真とならなければならないかを決定することによって、ブール関数98から導き出してもよい。出力XOUTに接続される入力Xに対する選択入力Rおよび選択入力Rがそれぞれ論理値「1」でなければならないこと、出力XOUTに接続される入力Xに対する選択入力Rが論理値「0」であり選択入力Rが論理値「1」でなければならないこと、出力XOUTに接続される入力Xに対する選択入力Rが論理値「1」であり選択入力Rが論理値「0」でなければならないこと、および出力XOUTに接続される入力Xに対する選択入力Rおよび選択入力Rがそれぞれ論理値「0」でなければならないことを決定することによって、例えば@Rを「R・R」として、@Rを「 ・R」として、@Rを「R 」として、定義してもよい。次にスイッチ80は、ユーザのCRAMによって定義されるRおよびRに対する近似静的値を使用して、これら式@RD−Bを有する標準式88を評価することによって、接触点を相互接続するようプログラミングされてもよい。詳細は後に図13、図14を参照に説明する。したがってこの実施例では、4入力スマートスイッチ80が機能設定ロジック90に置き換わり、その結果ベースデバイスから12個のトランジスタおよび3個のインバータを除去する。
図10は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ80、およびスイッチがベースデバイス10上の4対1MUX回路90を置き換えるようプレースホルダ近似式@RD−Bを更新した標準式88を示す図である。
図9に示す機能設定ロジックの特定配列90は単に例示的であり、マスクプログラマブルベースデバイス10上の4入力スマートスイッチ80による置き換えに適した、ソースPLD上にみられる代表的な回路を表す機能設定ロジックの多くの他の配列が存在することが理解されるであろう。例えば、このような回路の別の特定の配列を図11に示す。回路110は、図4および図4Aに示すMUX40と類似した標準型2対1マルチプレクサである。しかし、選択入力R(すなわちCRAM値)によって制御されるMUX40とは異なり、この2対1MUX110は選択入力N(すなわち、デバイスの使用によって決定された機能設定信号値)によって制御される。例えば、この種の機能設定ロジックは、LE11中のルックアップテーブル(LUT)の一部を提供するよう使用してもよい。LUTの論理入力はLUTの16ビットプログラマブルメモリ(例:16個のCRAM値)へのアドレス線として作動し、その容量によって、機能設定ロジック(例:マルチプレクサ(MUX)、ヒューズ、トランジスタ等)の配列を用いて、LUTの論理機能を定義する。選択入力Nの論理値に基づいて入力R、入力Rのいずれかが出力XOUTに接続される。この回路は以下のブール関数118を実現する。
OUT・R+N・R (6)
4入力スイッチ80による置き換えに適したMUX110等を内蔵するソースPLD上では、入力RおよびRはCRAMによって定義される静的値「R」でなければならない。スイッチ80の各入力端子81〜84は、接続ピンA〜Dにそれぞれ接続されるとともに、後により詳細に説明するように、近似固定論理値ソース(例:電源Vssまたは電源Vds)またはデバイスの近似信号線のいずれかに接続される。
回路110を置き換える4入力スイッチ80の標準式88を定義するプレースホルダ@RD−Bのブール論理式は、出力XOUTから供給される特定の信号に対する入力Rに対して何が真とならなければならないかを決定することによって、ブール関数118から導き出してもよい。入力Rおよび入力Rがそれぞれ論理値「1」である場合は選択入力Nの値にかかわらずXOUTが論理値「1」を供給すること、入力Rが論理値「1」であり入力Rが論理値「0」である場合はXOUTが論理値Nの補数と等しい論理値を供給すること、入力Rが論理値「0」であり選択入力Rが論理値「1」である場合XOUTが論理値Nと等しい論理値を供給すること、および入力Rおよび入力Rがそれぞれ論理値「0」である場合は選択入力Nの値にかかわらずXOUTが論理値「0」を供給することを決定することによって、例えば@Rは「R、R」、@Rは「 、R」、@Rは「R 」と定義してもよい。次にスイッチ80は、ユーザのCRAMによって定義されるRおよびRに対する近似静的値を使用して、これら式@RD−Bを有する標準式88を評価することによって、接触点を相互接続するようプログラミングされることができる。詳細は後に図13、図14を参照に説明する。しかし、このプログラムされたスマートスイッチ80がMUX回路110の機能性を完全に実現するためには、入力端子81は論理値「0」の固定ソース(例:電源Vss)に接続されなければならず、入力端子84は論理値「1」の固定ソース(例:電源Vds)に接続されなければならず、入力端子82は信号Nを供給するデバイスの信号線に接続されなければならず、入力端子83はインバータ86を用いて信号Nの補数を供給するデバイスの信号線に接続されなければならない。しかし、スイッチ80の端子が上記とは異なる信号ソースに接続されている場合は、プレースホルダ@RD−Bのブール論理式を再定義する必要もありうることが理解されるべきである。したがって本実施例では、4入力スマートスイッチ80は機能設定ロジック110を置き換えることが可能である。
図12は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ80、およびスイッチがベースデバイス10上の2対1MUX回路110を置き換えるようプレースホルダ近似式@RD−Bを更新した標準式88を示す図である。
図4、図4A、図6、図9、図11の機能設定ロジック回路配列は単に例示的であり、本発明の精神および範囲から逸脱することなく、本発明のスマートスイッチによる置き換えに適した、ソースPLD上にみとめられる回路を例示する他の多くの機能設定ロジックの配列が存在する。
上記よりN入力スマートスイッチに対する標準式は一般に、例えば以下のように表すことができることが理解されるべきである。
EQ=@R?N:@RN−1?N−1:...:@R?B:A (7)
各N入力スイッチに対するプレースホルダ@RN−Bはスイッチによって置き換えられている機能設定ロジック回路の配列から導き出されるブール論理式によって個別に定義してもよく、スイッチは式の評価によって、回路と関連付けられたCRAM値を用いてプレースホルダ近似式でプログラミングすることができる。
しかし、スマートスイッチの機能性が、標準式のプレースホルダ式によってのみでなく、入力端子に接続された信号線の種類によっても定義されることを理解するべきである。例えば、標準式88のプレースホルダ式は、スイッチが4対1MUX(例えば図10を参照)または論理信号値Nで制御される2対1MUX(例えば図12を参照)のいずれを置き換えるかにかかわらず、スイッチ80に対しては同様に示されており、入力端子81〜84はスイッチがベース上で置き換えているソースデバイス機能設定ロジック回路の種類に応じて、信号線に別々に接続されている。このようなデバイス上のスマートスイッチの端子と端子の間の信号の経路設定は好適にはデバイス上のすべての相互接続の経路設定に関して行われる一方、スイッチによって置き換えられている機能設定ロジックの種類を考慮に入れている。詳細は、以下、図13、図14に説明する。
図13は、本発明にしたがって、ソースPLDベースデバイスからのマスクプログラマブルベースデバイス10の生成にかかわるいくつかのステップを例示する変換フローチャートを示す。この工程は、ユーザから供給された設定情報のいずれにも依存しない。まず最初に、ステップ200でPLDのベースデバイスの回路図情報が製造業者に提供される。回路図は、PLD等ソースベースデバイスに関して、Altera社が所有権を持つソフトウェアによって生成されたコンピュータ生成ファイル形式で提供されてもよい。既知の方法と同様に、ソースデバイスのCRAMおよび経路設定構成がステップ202で除去される。
次にステップ204では、ソースベースデバイスの回路図情報が走査されて、本発明によるマスクプログラマブルベースデバイス10上のスマートスイッチによる置き換えが可能な機能設定ロジックを特定してもよい。このような機能設定ロジックは、例えば図4、6、9、11中の回路40、60、90、110等、機能性が少なくとも1個の機能設定CRAM値に依存していればいかなる種類の回路であってもよい。ステップ204で、回路図情報中に特定されたソースベースデバイスの各機能設定ロジック回路は、ステップ206において、マスクプログラマブルベースデバイス10の回路図情報において、社内開発されたソフトウェアを使用して、適切なサイズとされたスマートスイッチに対するプレースホルダ近似式を有する標準式によって、置き換えられる。上述のように、スマートスイッチ標準式のプレースホルダのブール論理式は、置き換えられる機能設定ロジック回路の機能性を評価することによって導き出してもよい。
ひとたびステップ206でスマートスイッチ式が適切に定義されると、ステップ208において、シミュレーションデータベースが、スイッチのプログラム方法を決定するためにユーザによって定義されうるCRAM値のうちすべてではないとしても最も一般的な組を、各式に注釈付ける。ステップ208で注釈付けられたCRAM値の各組に対して、所定の制約が付与されればある設計の2つの版が機能的に同一であることを確認することを含む静的機能検証法によって、式の整合性を検証してもよい(ステップ210)。例えば、ステップ206で導き出された各スマートスイッチ式は、スイッチが置き換えようとしているソースデバイスの機能設定ロジックと論理的に等価であることが望ましい。この技法は、ユーザから供給されたシミュレータベクタのいずれにも依存していない。注釈を付け式の機能設定ロジックに対する機能的な同一性がみとめられなければ、ステップ212で式中の適切な修正を実行し、満足のいくスマートスイッチ式が生成されるまで、ステップ204〜208を繰り返すことによって、機能的等価性を保証する。
この時点でスマートスイッチ式の導出は完了する。ステップ214において、スマートスイッチの物理的な代表例が近似式とともに、マスクプログラマブルベースデバイス10の回路図に記述される。ステップ216において、ベースデバイス10上の各スマートスイッチの位置は、置き換えられている機能設定ロジックのソースPLDベースデバイス上の位置に基づいて導き出される。
図14は変換フローチャートであり、ユーザの設計仕様を用いた既存の回路設計からベースデバイス10上のマスクプログラムされたロジックデバイス20を生成する上述の方法を示す。最初に、ユーザは製造業者に対して設定に関する情報およびソースデバイスの所望のタイミング要件を提供する(ステップ230)。設定情報は、PLD等ソースデバイスに関し、Altera社のQuartus(登録商標)IIソフトウェアによって生成されたSRAMオブジェクトファイル(.sofファイル)等のコンピュータ生成された設定ファイルの形式で提供されてもよい。このファイルは一般的には接続性情報およびロジックリソースの物理的構成に関する情報の両方を含む。設定ファイルはステップ235でネットリストジェネレータに、ステップ237で物理モジュールジェネレータに供給される。設定ファイルに含まれる接続性情報はネットリストジェネレータ、およびVerilog(登録商標)ネットリスト等の構造的ネットリスト240によって抽出される。ネットリスト240は、ソースデバイスの論理機能および接続性の両方を記述する情報を含んでいるが、好適にはロジックリソースの物理的配列に関する情報は保持しない。
次にステップ243において、テスト容易性違反をチェックするためにネットリスト240を走査してもよい。この時点で、検出した任意の違反を修正するためにテスト構造を加えてもよく、これによって故障テストを可能にし、完了したマスクプログラムされたデバイス20の演算がより可視化される(ステップ244)。すべてのテスト容易性違反が修正されるまで、ステップ243、244を繰り返してもよい。
ステップ237において、物理モジュールジェネレータは、必要な論理機能を実行するために、LE11等、ベースデバイス10上のロジックリソースの物理的な構成方法を決定する。このステップは、LE11およびそのスマートスイッチ位置等ベースデバイス10の物理的配列、および式を図13のステップ216から取り込み、ステップ230で供給された設定情報から、関連付けられたスイッチのCRAMの評価値に基づいてスマートスイッチを物理的にプログラミングする。一部の実施形態では、この演算はステップ230で設定ファイルから提供されるコンフィギュレーションビット(CRAM)に基づいて行ってもよい。これは、デバイス10の物理的にプログラミングする工程の第1の工程(すなわち所望の論理機能を生成するためにロジックリソースとそのスイッチとの接続方法を決定する工程)と考えることもできる。これら「プログラムされたモジュール」の機能性および物理的整合性はモジュールが生成された時に検証することができるため、モジュールの機能性を検証する論理シミュレーションの必要がなくなることもある。ステップ237は一般にステップ235〜280と同時に実行される。
ネットリスト240中の情報は、ソースデバイス上の各回路ブロック(例:I/O、LE、ESB、PLD中のPLLブロック)の機能および各ブロックの他の回路ブロックとの接続方法を記述している。ステップ245では、配列ルーチンはソースデバイス設計の特定部分をベースデバイス10の特定部分に指定する。ロジックリソース(例:LAB12)の配列は、相互接続要件、タイミング要件、およびソースデバイスとのピン互換性によって課される制約等、種々の要素に基づいて行われてもよい。配列ルーチンの目的の一つは、マスクプログラムされたデバイス20上のロジックリソースの位置を最適化して、その性能特性がソースデバイスによって達成される性能特性と同等ないしそれを上回ることを保証することである。
一部の実施形態において、ソースデバイスの配列の一部を保存し、回路設計の変換または合成の必要性を取り除くことが望ましい場合もある。これは、ソースデバイスおよびマスクプログラマブルデバイスが、略同一のロジックリソースアーキテクチャを共有する場合に行われる。例えば、PLDを変換する場合、ソースPLD中で使用されるLAB12は、さらに小さな素子(例:LE11)に分解されることなく、LAB12としてマスクプログラマブルデバイス上にインポートされ、配列されてもよい。その理由はLABは異なる物理的配列を有するが、同一の機能性を持っているためである。これによって、配列ルーチンはLAB上にソースデバイスの設計の一部をLABに基づいて指定し、その結果基本的な論理ブロックを配列することによって回路設計を実装するために必要となるさらなる処理を避けることができる。しかし、多くの場合において、ソースデバイス上の位置に関係なく配列がなされるため、LAB12はソースPLDと比べてマスクプログラムされたデバイス20上のより異なる位置に配列される。しかし、LAB内のLE構造が維持されている限りLEレベルで配列を行ってもよいが、この作業は一般により長い時間がかかり、より多くのテスト手順を伴うことが理解されるであろう。
本発明のロジックリソースの配列が完了した後、結果生じた配列情報は、ベースデバイス10上回路ブロックの物理的位置を示す物理座標データファイルへと変換される(ステップ245)。この情報を用いて、ステップ245で配列されたロジックリソースの相互接続方法を決定して、必要な既存の回路設計を作成する。このような相互接続は、ベースデバイス10の上方にある適切なマスクメタライゼーション層中に供給される(例:図2中のメタライゼーション層22を参照)。この工程は、物理プログラミングデバイス10の第2工程と考えることもできる。(すなわち、ステップ237で同時に構成され、所望のロジック設計を生成するためにステップ255で相互接続を必要とするロジックリソースの配列を特定する工程。)全I/Oセル16の配列は、一般にはベースデバイス10の周辺部に固定される。
次にステップ255において経路設定ルーチンは、上記のように配列されたロジックリソースを相互接続するために使用されるカスタム化された相互接続ネットワークを生成する。経路設定ルーチンはネットリスト240から導き出した接続性情報および上記で生成した物理座標情報を使って、ステップ245で配列されたロジックリソースを接続するための最適方法を決定する。このことは物理的なプログラミングデバイス10の第3工程と考えることもできる(すなわち、上記のように配列されたロジックリソースを接続する工程)。最終的には、カスタム化された相互接続は、ベースデバイス10の上方にあるメタライゼーション層に実装される。上述の配列および経路設定ステップは、PLDを構成するための既知のソフトウェア中に使用される方法と類似の方法で、実行してもよい。
カスタム化された相互接続を使用することに起因する利点の一つに、必要な相互接続のみが生成されるためソースPLDと比較して大幅に少ない経路設定リソースが使用されること(すなわち、カスタム化された相互接続中には、ソースPLD上の未使用汎用経路設定導体が全く見出されないこと)がある。さらに、ソースPLD中に使用されるプログラマブルロジックコネクタはすべて除去されており、マスクプログラムされたデバイス20の電力消費およびサイズを大幅に低減する。
この時点でロジックリソースの配列および相互接続の両方を表すソフトウェアファイルが完全となる。このファイルは、過剰な散開またはアンテナ違反等の物理的デザイン違反をチェックするために使用してもよい(ステップ260)。例えばこの設計ファイルのテストによって、あるLE11に関連付けられたノードが過剰な散開を有し、応答時間の遅延または消費電力の増加をもたらしうることを明らかにすることがある。この問題は、バッファ回路を負荷の大きい回路経路に挿入して、信号強度を増加することによって修正してもよい。バッファ回路は、上述のゲートアレイサイト15のうちいくつかをプログラミングすることによって作成することもできる。このことは、同一出願人による2002年3月29日に出願された同時係属米国特許出願第10/113,324号明細書に記載のとおりであり、該出願の全文は本明細書において参照により引用される。
ステップ260が完了すると、相互接続寄生容量および抵抗情報を、結果発生する回路配列上に生成してもよい(ステップ265)。この情報は、伝播遅延を推定するための遅延演算ツールを備えたStandard Delay Format File(.sdfファイル)に変換されることがある。最低遅延および最高遅延の両方を推定して、潜在的なセットアップ時間違反(遅すぎてユーザの指定するタイミング要件を満たさない信号)および/またはホールド時間違反(速すぎて適切に処理できない可能性のある信号)を特定してもよい。
次にステップ270では、ステップ265で生成された情報を用いて、ステップ245〜265の後で、新しく現れた回路設計のタイミングを分析、修正してもよい。タイミング違反は、ステップ265で推定された要件とユーザから提供されたタイミング要件をも比較することによって特定することができる。セットアップ時間違反はいくつかの方法で修正することができる。例えば、追加的なバッファを上述のように使用して信号を加速してもよいし、あるいは、必要に応じて、ステップ245に戻ることによって配列を再度最適化することができる。ホールドタイム違反は、遅延素子を挿入することによって修正してもよい。これらの遅延素子およびバッファ素子は、上述のゲートアレイサイト15をプログラミングすることによって作成することができる。
タイミング違反またはデザイン違反を修正するために任意の新しい素子がネットリスト240に加えられていた場合、ステップ275で適切な修正をネットリスト240中に実装することが望ましい。その後、配列ステップ245および経路設定ステップ255が繰り返されてこの変化がネットリスト240に反映され、その後ステップ270のタイミング違反のテストがまた繰り返されることが望ましい。一般的には、初期の配列および経路設定後は、1個または複数の繰り返しのみが必要である。
ステップ270でタイミング違反がみとめられない場合、ネットリスト240の整合性は、静的機能検証技術によって検証してもよい(ステップ280)。この静的機能検証技術は、所定の制約が与えられた場合に設計の2つの版が機能的に同一であることを確認することを伴う。例えば、初期のネットリスト240は、タイミングおよび/またはデザインルール違反を修正するために変更されたネットリスト240と論理的に等価であることが望ましい。この技術はユーザから提供されるシミュレーションベクタのいずれにも依存しない。ネットリスト240の2つの版の機能的同一性がみとめられない場合、ステップ285で適切な修正が実装され、(例えば、ある回路を追加または除去することによって)機能的等価性を保証する。次に、満足のいく回路設計が生成されるまでステップ245〜270が繰り返される。
この時点で回路設計の配列および経路設定が完了する(ステップ290)。ステップ295において、ステップ240〜280で作成された回路設計を表すソフトウェアファイルは、ステップ237で生成された物理構成ファイルと組み合わせられ、マスクプログラムされたデバイス20中に実装される回路設計が完了する。この組み合わせ工程はステップ237で生成された物理構成ファイルを結合することを含む。該ファイルはステップ245で配列されステップ255で経路設定された各ロジックリソースの特定構成を指定する相互接続情報を含有している。この組み合わせによって、例えばある回路設計を生成するためにベースデバイス10上で相互接続される必要がある全ロジックリソースの厳密な物理座標を生成する。また、必要な相互接続を生成するためにマスク層中に生成する必要がある全相互接続の物理座標も含んでいる。
しかし、カスタム化された金属の相互接続を製作する前に、物理的配列を検証することができる。この検証工程は一般に、デザインルール違反をチェックする工程と、確実に相互接続を正しく物理的に実装する工程を伴う。これらの工程は、デザインルールチェック(DRC)および配列対回路図検証(LVS)として時に知られている。この時点で金属の相互接続が生成され、マスクプログラムされたデバイス20を生成するためにベースデバイス10に結合される(ステップ297)。ステップ299の後は、デバイス20の適切な作動を保証するために、例えばスキャンチェーン技術を用いてデバイス20中の(図示しない)所定のノードを観察する工程等、追加的な工程を実行してもよい。
既存のロジック設計から、マスクプログラムされたさらに小さいロジックデバイス20を作成する能力は、高額な特定用途向け集積回路(ASIC)の代替として、費用効率が高い短いサイクルタイムを、回路設計者に対して提供することが理解されるであろう。さらに、上述のようなマスクプログラムされたデバイスを生成する能力によって、回路設計者は、Altera社のFlex(登録商標)400、600、800、1000、8K、10K等の小容量のPLDおよびAPEX(登録商標)、Cyclone(登録商標)、Stratix(登録商標)製品のファミリー等の高容量FPGA、およびロジック設計を組み合わせて、これら回路を機能設定ロジック回路のない単一のマスクプログラムされたデバイス20へと置き換えることができる。このデバイスによって既存技術よりもさらに、金型領域を節約し全消費電力を低減することができる。
上述の方法によって構成されたマスクプログラムされたロジックデバイス20を、図15に示すデータ処理装置の一部として使用することができる。データ処理装置300は、処理装置301、メモリ302、I/O回路303、周辺装置304のうち1個または複数の構成要素を含んでいる。これら構成要素は、システムバス305によって結合され、エンドユーザシステム307に含まれる回路基板306上に装着されている。
装置300は、コンピュータネットワーキング、データネットワーキング、計装、ビデオ加工、デジタル信号加工、またはその他マスクプログラマブルロジックの望ましい効果が得られる用途等、広範な用途に使用することができる。マスクプログラムされたロジックデバイス20は、さまざまな異なる論理機能を実行するよう構成することができる。例えば、マスクプログラムされたロジックデバイス20は、処理装置300と協同して作動する処理装置または制御装置として構成することができる。マスクプログラムされたロジックデバイス20は、装置300中の共有リソースへのアクセスを調整するためのアービターとして使用してもよい。さらに別の例では、マスクプログラムされたロジックデバイス20は、処理装置301と、他の装置300中の構成要素のうち1個とのインタフェースとして構成することができる。装置300は例示的にすぎず、本発明の範囲および精神は以下の請求項によって示されることが望ましいことを留意すべきである。
上述した本発明によるマスクプログラムされたロジックデバイス20を実装するために、種々の集積回路処理技術を使用することが可能である。さらに、上記に詳術したマスクプログラミングの代わりにヒューズプログラミング等、他の既知のプログラミング技術を使用してもよく、それでも本発明の原則を実施することができる。
したがって上記は本発明の原理を単に例示的に示すものであり、本発明は、その範囲および精神から逸脱することなく当業者によって種々の変更が可能であり、請求項によってのみ制限される。
本発明による基本デバイスの好適な実施形態の配列を示すブロック図である。 図1のデバイスを内蔵した、本発明によるマスクプログラムされたデバイスの基板およびマスクの金属蒸着層の断面図である。 本発明による標準2入力式を有する2入力スマートスイッチの物理的配列の想定される一例を示すブロック図である。 図3に示す2入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、ある特定の配列を示す概略図である。 図4の回路の配列を表すブロック図である。 図3のスマートスイッチの入力端子を信号ソースに接続し、図4および図4Aの回路配列を置き換えるために図3のスマートスイッチの標準2入力式のプレースホルダを定義する本発明による一方法を示す、更新したブロック図である。 図3の2入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の別の特定の配列を示す論理記号である。 図3のスマートスイッチの入力端子を信号ソースに接続し、図6の回路配列を置き換えるために図3のスマートスイッチの標準2入力式のプレースホルダを定義する本発明による一方法を示す、更新したブロック図である。 本発明による標準4入力式を有する4入力スマートスイッチの物理的配列の想定される一例を示すブロック図である。 図8の4入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、ある特定の配列を示す概略図である。 図8のスマートスイッチの入力端子を信号ソースに接続し、図9の回路配列を置き換えるために図8のスマートスイッチの標準4入力式のプレースホルダを定義する一方法を示す、本発明による更新したブロック図である。 図8の4入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、別の特定の配列を示すブロック図である。 図8のスマートスイッチの入力端子を信号ソースに接続し、図11の回路配列を置き換えるために図8のスマートスイッチの標準4入力式のプレースホルダを定義する一方法を示す、本発明による更新したブロック図である。 本発明によってソースPLDベースデバイスからマスクプログラマブルベースデバイスを作成する際に関与する工程のいくつかを示すフローチャートである。 本発明によってPLDソースデバイスを図13中に作成されたマスクプログラマブル上のマスクプログラムされたデバイスに変換する際に関与する工程のいくつかを示すフローチャートである。 本発明によるマスクプログラムされたデバイスを採用するシステムを示す簡略化したブロック図である。

Claims (16)

  1. 集積回路上に配置されたマスクプログラマブルロジックデバイスであって、
    該マスクプログラマブルロジックデバイスは、既存設計のソースプログラマブルロジックデバイスを該マスクプログラマブルロジックデバイス変換することを促進するよう構成されており、
    該マスクプログラマブルロジックデバイスは、
    集積回路の基板上に配置された複数のマスクプログラマブルロジックリソースと、
    該複数のマスクプログラマブルロジックリソースに結合された複数の相互接続用導体であって該複数のマスクプログラマブルロジックリソース相互接続するために、該基板の上に配置され複数の相互接続用導体と
    を含み、
    複数のマスクプログラマブルロジックリソースのうち少なくとも1つは、基板上に配置され少なくとも1のスマートスイッチを含み、該スマートスイッチは、該スマートスイッチの1つのメタル出力端子と該スマートスイッチの複数のメタル入力端子との間のメタライゼーション層を介して作成された複数の接続を含み、該複数の接続は、ブール関数を実装する、マスクプログラマブルロジックデバイス。
  2. 前記ブール関数は、前記ソースプログラマブルロジックデバイスの少なくとも1の設定可能値に依存する、請求項1記載のマスクプログラマブルロジックデバイス。
  3. 前記スマートスイッチは、トランジスタを含まない、請求項1記載のマスクプログラマブルロジックデバイス。
  4. 前記メタル出力端子は、前記基板から第1マスク層まで延びている、請求項1記載のマスクプログラマブルロジックデバイス。
  5. 前記スマートスイッチは、前記複数のメタル入力端子の各々に対するプレースホルダ式を含み、各プレースホルダ式は、前記ブール関数から導き出され、かつ、前記ソースプログラマブルロジックデバイスの少なくとも1の設定可能値に依存する、請求項1に記載のマスクプログラマブルロジックデバイス。
  6. 前記複数のメタル入力端子からの1つのメタル入力端子が、前記ソースプログラマブルロジックデバイスの少なくとも1の設定可能値を用いてプレースホルダ式の各々を評価することによって選択され、請求項5の記載のマスクプログラマブルロジックデバイス。
  7. 処理回路と、
    処理回路に結合されたメモリと、
    処理回路とメモリとに結合された請求項1記載のマスクプログラマブルロジックデバイス
    を含むデジタル処理装置。
  8. 請求項1記載のマスクプログラマブルロジックデバイスが搭載されたプリント回路基板。
  9. 前記プリント回路基板上に搭載され、前記マスクプログラマブルロジックデバイスに結合されたメモリをさらに含む請求項8に記載のプリント回路基板。
  10. 前記プリント回路基板上に搭載され、前記マスクプログラマブルロジックデバイスに結合された処理回路をさらに含む請求項9に記載のプリント回路基板。
  11. 既存設計のソースプログラマブルロジックデバイスからマスクプログラマブルロジックデバイスを作成する方法であって、該方法は、
    ソースデバイスの設計を示す回路図情報を受け取ることと、
    該回路図情報から、設定可能メモリおよび経路設定リソースを除去することと、
    回路図情報の少なくとも第1機能設定ロジックリソースを、第1機能設定ロジックリソースのブール関数を実行するためにプログラム可能な少なくとも第1スマートスイッチに置き換えることと
    を含み、
    該スマートスイッチは、該スマートスイッチの1つのメタル出力端子と該スマートスイッチの複数のメタル入力端子との間のメタライゼーション層を介して作成された複数の接続を含み、該複数の接続は、ブール関数を実装するように構成されている、方法。
  12. 前記ブール関数は、前記ソースプログラマブルロジックデバイスの少なくとも1設定可能メモリ値に依存する請求項11に記載の方法。
  13. 前記置き換えることは、前記複数のメタル入力端子における各メタル入力端子に対するプレースホルダ式を導き出すことを含み、各プレースホルダ式は、前記ブール関数から導き出される、請求項11に記載の方法。
  14. 前記ソースプログラマブルロジックデバイスの設定可能メモリ値を含む設定情報を受け取ることをさらに含む請求項13に記載の方法。
  15. 各プレースホルダ式は、少なくとも1設定可能メモリ値に依存するブール論理式である請求項14に記載の方法。
  16. 前記設定情報を用いて前記プレースホルダ式の各々を評価して前記メタル入力端子のうち適切な1前記メタライゼーション層を介して前記メタル出力端子に結合することによって、前記スマートスイッチをプログラミングすることをさらに含む請求項15に記載の方法。
JP2005163354A 2004-06-02 2005-06-02 マスクプログラマブルロジックデバイスのスイッチ方法 Expired - Fee Related JP4799052B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/859742 2004-06-02
US10/859,742 US7165230B2 (en) 2004-06-02 2004-06-02 Switch methodology for mask-programmable logic devices

Publications (2)

Publication Number Publication Date
JP2005348413A JP2005348413A (ja) 2005-12-15
JP4799052B2 true JP4799052B2 (ja) 2011-10-19

Family

ID=34941398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005163354A Expired - Fee Related JP4799052B2 (ja) 2004-06-02 2005-06-02 マスクプログラマブルロジックデバイスのスイッチ方法

Country Status (4)

Country Link
US (1) US7165230B2 (ja)
EP (1) EP1603240A3 (ja)
JP (1) JP4799052B2 (ja)
CN (1) CN100530594C (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346876B2 (en) * 2002-09-04 2008-03-18 Darien K. Wallace ASIC having dense mask-programmable portion and related system development method
US7480010B2 (en) * 2002-09-04 2009-01-20 Denace Enterprise Co., L.L.C. Customizable ASIC with substantially non-customizable portion that supplies pixel data to a mask-programmable portion in multiple color space formats
US7202908B2 (en) * 2002-09-04 2007-04-10 Darien K. Wallace Deinterlacer using both low angle and high angle spatial interpolation
US7782398B2 (en) * 2002-09-04 2010-08-24 Chan Thomas M Display processor integrated circuit with on-chip programmable logic for implementing custom enhancement functions
US7350176B1 (en) * 2003-07-17 2008-03-25 Altera Corporation Techniques for mapping to a shared lookup table mask
US8566616B1 (en) * 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US8612772B1 (en) * 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US7558718B2 (en) * 2004-09-28 2009-07-07 Broadcom Corporation Method and system for design verification of video processing systems with unbalanced data flow
US7805701B1 (en) * 2004-12-07 2010-09-28 National Semiconductor Corporation Universal two-input logic gate that is configurable and connectable in an integrated circuit by a single mask layer adjustment
US7275232B2 (en) * 2005-04-01 2007-09-25 Altera Corporation Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits
US7367007B1 (en) 2005-06-29 2008-04-29 Xilinx, Inc. Method of routing a design to increase the quality of the design
US7555741B1 (en) * 2006-09-13 2009-06-30 Altera Corporation Computer-aided-design tools for reducing power consumption in programmable logic devices
US8176457B2 (en) * 2006-12-04 2012-05-08 Fujitsu Limited Apparatus and method updating diagram of circuit based on pin swap performed in package design with respect to PLD
EP1930825A3 (en) * 2006-12-04 2011-06-29 Fujitsu Limited Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method
KR100935124B1 (ko) * 2006-12-04 2010-01-06 후지쯔 가부시끼가이샤 회로 설계 지원 장치, 회로 설계 지원 방법, 회로 설계지원 프로그램을 기록한 컴퓨터 판독가능한 기록매체 및프린트 기판의 제조 방법
EP1930830A3 (en) * 2006-12-04 2011-06-29 Fujitsu Limited Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, and printed-circuit-board manufacturing method
US7904863B2 (en) * 2006-12-04 2011-03-08 Fujitsu Limited Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method
US8255844B2 (en) * 2006-12-04 2012-08-28 Fujitsu Limited Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, printed-circuit-board manufacturing method, circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method
EP2996248B1 (en) 2007-12-29 2021-03-24 France Brevets Flexible layout for integrated mask-programmable logic devices and manufacturing process thereof
US7786757B2 (en) * 2008-03-21 2010-08-31 Agate Logic, Inc. Integrated circuits with hybrid planer hierarchical architecture and methods for interconnecting their resources
US8060843B2 (en) * 2008-06-18 2011-11-15 Taiwan Semiconductor Manufacturing Company, Ltd. Verification of 3D integrated circuits
CN102571072B (zh) * 2010-12-08 2014-06-25 中国科学院电子学研究所 配置状态可定制的可编程逻辑电路
US8826195B2 (en) 2012-06-05 2014-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Layout modification method and system
CN107924428B (zh) * 2015-09-01 2022-03-15 弗莱克斯-罗技克斯技术公司 可编程逻辑ic的块存储器布局和体系架构及其操作方法
US10735004B1 (en) * 2019-04-01 2020-08-04 Microchip Technology Inc. LUT-based focused ion beam friendly fill-cell design

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3922526A (en) * 1973-02-02 1975-11-25 Texas Instruments Inc Driver means for lsi calculator to reduce power consumption
US4847612A (en) * 1988-01-13 1989-07-11 Plug Logic, Inc. Programmable logic device
US5514995A (en) * 1995-01-30 1996-05-07 Micrel, Inc. PCMCIA power interface
US5926035A (en) * 1996-06-26 1999-07-20 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5943488A (en) * 1996-06-26 1999-08-24 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5825202A (en) 1996-09-26 1998-10-20 Xilinx, Inc. Integrated circuit with field programmable and application specific logic areas
US5874834A (en) 1997-03-04 1999-02-23 Xilinx, Inc. Field programmable gate array with distributed gate-array functionality
US6120551A (en) * 1997-09-29 2000-09-19 Xilinx, Inc. Hardwire logic device emulating an FPGA
US6515509B1 (en) 2000-07-13 2003-02-04 Xilinx, Inc. Programmable logic device structures in standard cell devices
US6526563B1 (en) 2000-07-13 2003-02-25 Xilinx, Inc. Method for improving area in reduced programmable logic devices
US6490707B1 (en) 2000-07-13 2002-12-03 Xilinx, Inc. Method for converting programmable logic devices into standard cell devices
US6742172B2 (en) * 2002-03-29 2004-05-25 Altera Corporation Mask-programmable logic devices with programmable gate array sites
US6938236B1 (en) 2002-03-29 2005-08-30 Altera Corporation Method of creating a mask-programmed logic device from a pre-existing circuit design

Also Published As

Publication number Publication date
CN1716568A (zh) 2006-01-04
US7165230B2 (en) 2007-01-16
EP1603240A2 (en) 2005-12-07
EP1603240A3 (en) 2008-03-19
JP2005348413A (ja) 2005-12-15
CN100530594C (zh) 2009-08-19
US20050280438A1 (en) 2005-12-22

Similar Documents

Publication Publication Date Title
JP4799052B2 (ja) マスクプログラマブルロジックデバイスのスイッチ方法
US6311316B1 (en) Designing integrated circuit gate arrays using programmable logic device bitstreams
US6086629A (en) Method for design implementation of routing in an FPGA using placement directives such as local outputs and virtual buffers
US7009421B2 (en) Field programmable gate array core cell with efficient logic packing
US6844757B2 (en) Converting bits to vectors in a programmable logic device
US9032343B1 (en) Integrating multiple FPGA designs by merging configuration settings
US8813013B2 (en) Partitioning designs to facilitate certification
US6938236B1 (en) Method of creating a mask-programmed logic device from a pre-existing circuit design
Doumar et al. Defect and fault tolerance FPGAs by shifting the configuration data
US7489163B2 (en) FPGA powerup to known functional state
US7979827B1 (en) Device having programmable resources and a method of configuring a device having programmable resources
US6791355B2 (en) Spare cell architecture for fixing design errors in manufactured integrated circuits
US7584448B1 (en) Constructing a model of a programmable logic device
US7800404B2 (en) Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array
JP2012143000A (ja) プログラマブル・ゲートアレイ部を備えたマスクプログラマブル論理装置
US20080288909A1 (en) Template-Based Domain-Specific Reconfigurable Logic
US7171633B1 (en) Estimating quality during early synthesis
US7451423B1 (en) Determining indices of configuration memory cell modules of a programmable logic device
US7451420B1 (en) Determining reachable pins of a network of a programmable logic device
US7472370B1 (en) Comparing graphical and netlist connections of a programmable logic device
US7451424B1 (en) Determining programmable connections through a switchbox of a programmable logic device
US7536668B1 (en) Determining networks of a tile module of a programmable logic device
Grover F. Gail Gray
Atmel et al. FPGA technology in detail
Jasinski et al. PLD-based synthesis of digital circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110323

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110426

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110525

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110530

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110627

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110712

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

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

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4799052

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees