(57)【特許請求の範囲】
【請求項１】
集積回路上に配置されたマスクプログラマブルロジックデバイスであって、
該マスクプログラマブルロジックデバイスは、既存設計のソースプログラマブルロジックデバイスを該マスクプログラマブルロジックデバイスに変換することを促進するように構成されており、
該マスクプログラマブルロジックデバイスは、
該集積回路の基板上に配置された複数のマスクプログラマブルロジックリソースと、
該複数のマスクプログラマブルロジックリソースに結合された複数の相互接続用導体であって、該複数のマスクプログラマブルロジックリソースを相互接続するために、該基板の上に配置された複数の相互接続用導体と
を含み、
該複数のマスクプログラマブルロジックリソースのうちの少なくとも１つは、基板上に配置された少なくとも１つのスマートスイッチを含み、該スマートスイッチは、該スマートスイッチの１つのメタル出力端子と該スマートスイッチの複数のメタル入力端子との間のメタライゼーション層を介して作成された複数の接続を含み、該複数の接続は、ブール関数を実装する、マスクプログラマブルロジックデバイス。
【請求項２】
前記ブール関数は、前記ソースプログラマブルロジックデバイスの少なくとも１つの設定可能値に依存する、請求項１に記載のマスクプログラマブルロジックデバイス。
【請求項３】
前記スマートスイッチは、トランジスタを含まない、請求項１に記載のマスクプログラマブルロジックデバイス。
【請求項４】
前記メタル出力端子は、前記基板から第１のマスク層まで延びている、請求項１に記載のマスクプログラマブルロジックデバイス。
【請求項５】
前記スマートスイッチは、前記複数のメタル入力端子の各々に対するプレースホルダ式を含み、各プレースホルダ式は、前記ブール関数から導き出され、かつ、前記ソースプログラマブルロジックデバイスの少なくとも１つの設定可能値に依存する、請求項１に記載のマスクプログラマブルロジックデバイス。
【請求項６】
前記複数のメタル入力端子からの１つのメタル入力端子が、前記ソースプログラマブルロジックデバイスの少なくとも１つの設定可能値を用いてプレースホルダ式の各々を評価することによって選択される、請求項５の記載のマスクプログラマブルロジックデバイス。
【請求項７】
処理回路と、
該処理回路に結合されたメモリと、
該処理回路と該メモリとに結合された請求項１に記載のマスクプログラマブルロジックデバイスと
を含むデジタル処理装置。
【請求項８】
請求項１に記載のマスクプログラマブルロジックデバイスが搭載されたプリント回路基板。
【請求項９】
前記プリント回路基板上に搭載され、前記マスクプログラマブルロジックデバイスに結合されたメモリをさらに含む、請求項８に記載のプリント回路基板。
【請求項１０】
前記プリント回路基板上に搭載され、前記マスクプログラマブルロジックデバイスに結合された処理回路をさらに含む、請求項９に記載のプリント回路基板。
【請求項１１】
既存設計のソースプログラマブルロジックデバイスからマスクプログラマブルロジックデバイスを作成する方法であって、該方法は、
該ソースデバイスの設計を示す回路図情報を受け取ることと、
該回路図情報から、設定可能メモリおよび経路設定リソースを除去することと、
該回路図情報の少なくとも第１の機能設定ロジックリソースを、該第１の機能設定ロジックリソースのブール関数を実行するためにプログラム可能な少なくとも第１のスマートスイッチに置き換えることと
を含み、
該スマートスイッチは、該スマートスイッチの１つのメタル出力端子と該スマートスイッチの複数のメタル入力端子との間のメタライゼーション層を介して作成された複数の接続を含み、該複数の接続は、ブール関数を実装するように構成されている、方法。
【請求項１２】
前記ブール関数は、前記ソースプログラマブルロジックデバイスの少なくとも１つの設定可能メモリ値に依存する、請求項１１に記載の方法。
【請求項１３】
前記置き換えることは、前記複数のメタル入力端子における各メタル入力端子に対するプレースホルダ式を導き出すことを含み、各プレースホルダ式は、前記ブール関数から導き出される、請求項１１に記載の方法。
【請求項１４】
前記ソースプログラマブルロジックデバイスの設定可能メモリ値を含む設定情報を受け取ることをさらに含む、請求項１３に記載の方法。
【請求項１５】
各プレースホルダ式は、少なくとも１つの設定可能メモリ値に依存するブール論理式である、請求項１４に記載の方法。
【請求項１６】
前記設定情報を用いて前記プレースホルダ式の各々を評価して、前記メタル入力端子のうちの適切な１つを前記メタライゼーション層を介して前記メタル出力端子に結合することによって、前記スマートスイッチをプログラミングすることをさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマスクプログラマブルロジックデバイスに関し、より詳細には既存の回路設計からマスクプログラムされたロジックデバイスを作成する方法に関する。
【背景技術】
【０００２】
プログラマブルロジックデバイス（ＰＬＤ）がよく知られている。早期のプログラマブルロジックデバイスは１回の設定が可能である。例えば設定はヒュージブルリンクを「吹く」（すなわち「開く」）ことによって達成することができた。あるいは、設定はプログラマブル読み取り専用メモリに保存されてきた。一般にこれらデバイスによって、ユーザは「積和」（または「Ｐ項」）論理演算のためにデバイスを設定することが可能であった。そののち、設定目的に消去可能なプログラマブル読み取り専用メモリ（ＥＰＲＯＭ）を内蔵するプログラマブルロジックデバイスが利用可能となり、デバイスの再設定が可能となった。
【０００３】
さらに後になって、構成用に静的ランダムアクセスメモリ（ＳＲＡＭ）を内蔵するプログラマブルロジックデバイスが利用可能となった。これらデバイスもまた再設定可能であり、ＥＰＲＯＭ等の非揮発性メモリ中の設定情報を保存し、デバイスの電源を入れると設定が非揮発性メモリからＳＲＡＭ素子へと取り込まれる。一般にこれらデバイスによって、ユーザは、ルックアップテーブル型論理演算のためにデバイスを設定することが可能であった。これらのデバイスにはある時点から、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）またはロジック（Ｐ−ＴＥＲＭロジック）としての働きをするようユーザによって設定可能なランダムアクセスメモリの組み込みブロックが提供されるようになった。
【０００４】
上述のプログラマブルロジックのすべてにおいて、デバイス中の特定のロジックリソースの論理機能と、ロジックリソース間で信号をルーティングするための相互接続リソースは両方ともプログラム可能であった。あるいは、マスクプログラマブルロジックデバイス（ＭＰＬＤ）が提供されてきた。マスクプログラマブルロジックデバイスがあれば、全ユーザに同じデバイスを販売する代わりに、製造業者は、ユーザによって機能をプログラムできず、経路設定ないし相互接続リソースのないロジックリソースが標準配列されたマスクプログラマブルベースデバイスを製作する。
【０００５】
ユーザは、マスクプログラマブルロジックデバイスの製造業者に対して、所望のデバイスの仕様を提供する。該仕様は同等の従来のプログラマブルロジックデバイス（「ソースＰＬＤ」）をプログラミングするための設定情報ファイルであってもよい。製造業者はこの情報を使用して、上述のベースデバイスにメタライゼーション層を加える。これら追加された層は、ソースデバイスの設計可能メモリ（ＣＲＡＭ）セルの設定情報に基づいて、リソース中の所定の固定接続を行うことによって（すなわち、ユーザの情報ファイルからＭＰＬＤの電源に供給された設定値をハードコードすることによって）、ベースデバイスのロジックリソースをプログラミングする。さらにこれら追加層は、ロジックリソース間で経路設定を行う相互接続リソースを追加する。またマスクプログラマブルロジックデバイスには、従来のプログラマブルロジックデバイスに関連して先に記載した、組み込みランダムアクセスメモリブロックを供給してもよい。このようなマスクプログラマブルロジックデバイスにおいて、組み込みメモリが読み取り専用メモリまたはＰ−ＴＥＲＭロジックとして構成されている場合、この構成はこの追加メタライゼーション層を使用して達成することもできる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のプログラマブルロジックデバイスによって、ユーザは所望の機能を実行するためにデバイスを簡単に設計することができるが、該デバイスは特定の設計向けには使用しなくてもよいリソースも必ず含んでしまう。さらに、汎用経路設定ならびに相互接続リソース（以下、経路設定・相互接続リソースと呼ぶ）、および任意のロジックリソースから所望の経路設定・相互接続リソースに信号を到達させるスイッチングリソースを収容するために、従来のＰＬＤは、より高い機能性が内蔵されるにつれ大きくなり、デバイスのサイズおよび電力消費を増加させる。種々のスイッチングリソースを介した経路設定もまた、信号が一つの経路設定・相互接続リソースから別の経路設定・相互接続リソースへと移動するにつれ信号を遅延させる。
【０００７】
マスクプログラマブルロジックデバイスの出現によってユーザは、従来のソースプログラマブルロジックデバイス中の設計を示すが、同一の機能性に対して大幅に小さくかつ消費電力が大幅に小さい製造版をマスクプログラマブルロジックデバイスに収容することができる。その理由は、特定の設計のために必要な相互接続・経路設定リソースのみが該ベースデバイスに追加されるためである。さらに、空間または電力を消費するか、あるいは信号を遅延させる汎用スイッチリソースは存在しない。ソースＰＬＤの既存設計のマスクプログラマブルなベースデバイス上へのこのような実装は、２００２年３月２９日に例えば同一出願人により出願された同時係属米国特許出願第１０／１１３，８３８号明細書に記載されており、該出願の全文は本明細書において参照によって引用される。
【０００８】
このようなＭＰＬＤは、信号相互接続、信号経路設定機能設定ロジックおよび設定メモリを初めとするソースデバイスのすべてのプログラム性を除去することによって、ソースＰＬＤと比較して、金型サイズに関して大幅な利点が得られる。このようなＭＰＬＤのベースデバイスアーキテクチャは、経路設定構造を除き、ソースデバイスと略同一である。このようなＭＰＬＤのベースデバイス上のロジックリソースの構成は、関連するソースデバイスの構成と異なっていてもよいが、一方これらリソースは、機能性、量、アクセス性、構造において同一であってもよく、この場合等価なソースデバイスからベースデバイスへの直接のリソース間変換が可能になる。
【０００９】
ソースデバイスの既存信号相互接続、信号経路設定機能設定ロジック、設定メモリ、所定の信号バッファをこれらＭＰＬＤから除去することによって、金型サイズを大幅に低減し、信号経路設定を最適化することができる。しかし、ロジックリソースの相互接続経路設定およびＣＲＡＭ設定値は、ベースデバイスにメタライゼーション層を追加することによってこれらＭＰＬＤの物理設計においてハードコードされる。したがって、ソースデバイスのロジックリソースの機能設定ロジック回路は、ベースデバイス上に維持されるため、設計変更および予定開発期間を最小にする。この機能設定ロジックは、デバイスのサイズおよび電力消費を増加させる相当な量のトランジスタ回路を含んでいる。
【００１０】
したがって、既存の回路設計を実装するが要求されるユーザ関与が最小であるマスクプログラマブルロジックデバイスの領域および性能を最適化するための、改良された技法、装置、方法を提供することが望ましい。
【課題を解決するための手段】
【００１１】
本発明は、既存の回路設計を実装するマスクプログラマブルロジックデバイスの領域および性能を最適化する改良した技法、装置および方法を提供する。
【００１２】
本発明は、ベースデバイスアーキテクチャを変更してトランジスタのないソースデバイスの機能設定ロジック回路の機能性を促進することによって、マスクプログラマブルロジックデバイスのサイズ、節電および性能をさらに最適化する。この変更は、ソースデバイスの機能設定ロジックおよびＣＲＡＭ設定情報を、マスクプログラマブルベースデバイス上の「スマート」スイッチに置き換えることを含む。スマートスイッチはメタル端子であり、１個または複数のスイッチ入力端子のうち１個とスイッチの出力端子との接続を行うためにメタライゼーション層をスマートスイッチの上に加えてもよい。この接続は、スイッチによって置き換えられている１個または複数のリソースの機能性から導き出され、該リソースと関連付けられたＣＲＡＭ値によって定義されるブール論理式に基づいて行われる。
【００１３】
本発明では、集積回路上に配列され、ソースプログラマブルロジックデバイスの既存設計をマスクプログラマブルデバイスへと変換することを促進するよう構成されたマスクプログラマブルロジックデバイスを提供している。マスクプログラマブルロジックデバイスは、集積回路の基板上に配列された複数のマスクプログラマブルロジックリソースと、マスクプログラマブルロジックリソースに接続され該マスクプログラマブルロジックリソースを相互接続するために基板上に配列された複数の相互接続用導体を備える。複数のマスクプログラマブルロジックリソースのうち少なくとも１個は、基板上に配列された少なくとも１個のスマートスイッチを備える。少なくとも１個のスマートスイッチは、ソースプログラマブルロジックデバイス設計の機能設定ロジック回路の機能を実行するようプログラム可能である。
【００１４】
上述のまたはその他の本発明による利点は、添付図面とともに以下の詳細な説明を検討することによってより明らかになる。添付図面において、類似の参照記号は同様の部品を表す。
【発明を実施するための最良の形態】
【００１５】
本発明は、ベースデバイスの機能設定ロジック回路および関連するＣＲＡＭ設定値ではなく、スマートスイッチを提供することによって、マスクプログラマブルロジックデバイスの金型領域および出力要件を低減する一方、性能および収率を増加させる。スマートスイッチは、トランジスタを使用せずに、かつては別の集積回路上で実装されていた回路設計の機能設定ロジック回路の機能性を促進するために使用されてもよい。ベースデバイスアーキテクチャ、スマートスイッチ構造、相互接続、および変換工程を以下詳細に記載する。
【００１６】
次に、本発明を図１〜図１５を参照に説明する。
【００１７】
図１に示すように、本発明にしたがって構成されたマスクプログラマブルベースデバース１０の一実施形態は、カリフォルニア州サンノゼのＡｌｔｅｒａ  Ｃｏｒｐｏｒａｔｉｏｎ社およびその譲受人によって販売されるプログラマブルロジックデバイス（すなわち、想定されるソースデバイス）のＡＰＥＸ（登録商標）およびＳｔｒａｔｉｘ（登録商標）ファミリー中にみられるロジックリソースと類似のロジックリソースのアレイを備える。ここではＡＰＥＸ（登録商標）タイプのアーキテクチャを示しているが、マスクプログラマブルデバイスのベース部の機種として所望により、ＰＬＤ、ＣＰＬＤ（複合プログラマブルロジックデバイス）、または類似のデバイスのうち任意の種類のデバイスを使用可能であることが理解されるであろう。
【００１８】
図１に示すように、ロジックリソースは最も基本的なレベルに「論理素子」（ＬＥ）１１を含んでいる。論理素子１１は、例えば、４個の入力および登録済ないし未登録の出力を持つ能力を有するルックアップテーブルベースの論理領域であってもよい。論理素子１１は、「ロジックアレイブロック」（ＬＡＢ）１２へとグループ分けしてもよい。本明細書に示す実施形態において、各ＬＡＢ１２は１０個のＬＥ１１を有するが、他の個数のＬＥ１１を各ＬＡＢ１２へとグループ分けしてもよい。ＬＡＢ１２はさらに「ＬＡＢ群」（ＧＯＬ）１３へとグループ分けしてもよい。例示する実施形態では、各ＧＯＬ１３は１７個のＬＡＢ１２を有するが、他の個数のＬＡＢ１２を各ＧＯＬ１３へとグループ分けしてもよい。各ＧＯＬ１３は好適には、組み込みメモリブロック（本実施形態では「組み込みシステムブロック」と呼ぶ）１４もあわせて有する。また、各ＧＯＬ１３は、例えば、特定の信号を緩衝、遅延、処理および／または経路設定するために使用される複数のゲートアレイサイト１５を備えていてもよい。（詳細は後述する。）
【００１９】
さらに、ＬＡＢ１２をＧＯＬ１３中に必ずしも構成する必要はなく、均一または不均一のパターンでベースデバイス１０上に分散させてもよいことも理解されるであろう。これらリソースのうちいくつかはコアロジックアレイの外部にあってもよい。ベース金型１０上のＬＥ１１およびＬＡＢ１２の特定の構成は、本発明にとって重要なことではない。
【００２０】
図示するとおり、ＧＯＬ１３は行およびコラムが直交するアレイ中に配列してもよい。「入／出力素子」（Ｉ／Ｏ）は好適には、アレイの周辺部近傍の領域１６中に位置している。好適には「位相同期グループ」（ＰＬＬ）等（例：タイミング等を目的とする）他の補助回路を、アレイの中心近傍に示す領域１７等、アレイ中の利便な位置に備えてもよい。
【００２１】
マスクプログラマブルベースデバイス１０の「アーキテクチャ」（すなわち、全体構成）は、ソースＰＬＤ等ソースデバイスのアーキテクチャと大幅に異なっていてもよい。デバイス１０は、該デバイスを搭載するソースデバイスと少なくとも同量のロジックリソース（例：論理素子、位相同期グループ、Ｉ／Ｏ素子等）を含んでいるが、これらリソースの大部分は、プログラム性が失われ、機能設定ロジックがスマートスイッチに置き換えられるよう変更されており、さらに異なる相対位置に物理的に配列、配置されていてもよい。例えば図１では、通常はソースデバイスの周辺部に位置するＰＬＬが、より小さなマスクプログラマブルデバイスにおけるノイズ耐性を向上させ性能を最適化するために、デバイス１０の中央に配列されている。機能設定ロジック、ＣＲＡＭおよび経路設定リソースを除去することによって、ＧＰＬ１３は一方向における縮小が大きい。長方形型デバイスよりも製造、組み付けが容易なより正方形型のデバイスを維持するために、上述の行、コラムの直交アレイは、ソースデバイスの持つ２倍の行、半分のコラムとなるよう「折り重なって」いてもよい。（例えば、ｙ方向と比較してｘ方向の長さが２倍であってもよく、その反対でもよい。）この配列の結果、デバイス１０の各側に存在するＩ／Ｏセルのコラムが２倍になり、多くのソースデバイスＩ／Ｏの配列とは大きく異なってもよい。さらに、ソースデバイス上で利用可能なすべてのロジックリソースを、ユーザ設計で利用しなくてもよい。未使用のロジックリソース回路は、漏れ電流およびスイッチ電流を最小にするため、入力が電源および設地面に接続されない最低電流状態であってもよい。したがって、使用済の回路ブロックのみがマスクプログラムされたデバイス中に実装されるため、より高い電力性能が得られる。未使用のロジックリソースは、ベースデバイス１０上の別の設計実装に利用可能であるものの、電源を入れなくてもよい。
【００２２】
上述のように、ベースデバイス１０とソースデバイスとはおおむね異なる相互接続回路図を使用している。ＰＬＤ等ソースデバイスは、伝統的に経路設定の自由度を提供し、チップ上の最大量のロジックリソースが確実に利用されるよう、多数の汎用経路設定導体を有する。信号は、ＰＬＤ上のロジック回路部を相互接続して、特定の回路設計を得るためプログラマブルロジックコネクタ（この場合は、ＳＲＡＭセルで構成されたマルチプレクサ）をプログラミングすることによって、チップ上に経路設定される。この種類の配列は、ＰＬＤの「プログラム性」を提供し、ＰＬＤが広範な回路設計を許容するよう使用されている。複合ＰＬＤでは、経路設定リソースは金型領域の大部分を占めている。このような固定リソースの大部分は、どの特定の設計においても使用されないことが多く、マスクプログラマブルベースデバイス１０中で除去可能である。各ベースデバイス１０上にカスタマイズされた相互接続ネットワークを構築することによって、金型サイズの大幅な節約が実現可能である。この相互接続ネットワークは、ベースデバイスの上面に搭載されたメタライゼーション層のマスクプログラミングによって実装してもよい。カスタマイズされた相互接続ネットワークに関連するいくつかの利点の一つに、ソースＰＬＤと比較して、金型サイズおよび内部容量負荷の低減がある。
【００２３】
図２は、プログラミング後（すなわち、「マスクプログラムされた」デバイス２０となった後）のマスクプログラマブルベースデバイス１０の断面図である。図２では、プログラムされていないベースデバイス１０を構成する基板および他の層を集合的に参照番号２１で示す。（代表として１個のトランジスタ／スイッチ２５を示す。）追加的なメタライゼーション層２２および誘電体層２３を使用して、デバイス２０をプログラミングし、ベースデバイス１０に含まれるリソースを接続するカスタマイズされた相互接続ネットワークを作成する。一般には、メタライゼーション層２２および誘電体層２３を保護するために封入層２４が設けられている。したがって、マスクプログラムされたロジックデバイス２０は、転換元であるソースデバイスと同一のロジックリソース、メモリ、Ｉ／Ｏ、ＰＬＬを有するマスクプログラマブルベースデバイス１０上に構築することができるが、ソースデバイスと同一のアーキテクチャを持つ必要はない。しかし、一部の実施形態では、このアーキテクチャも同一であって、本明細書中に記載の方法によってマスクプログラムされたデバイス２０へと変換してもよい。
【００２４】
本発明の変換工程は、マスクプログラマブルベースデバイス１０が少なくともソースデバイスと同一のロジックリソースを有すること、および、デバイス１０がピン互換性を有し、ソースデバイスの重要なタイミング制約を満たすことを除けば、リソースの過去の位置によって制約されないという利点を活用している。
【００２５】
本発明のベースデバイス１０には、任意のロジックリソースの任意の機能設定ロジック回路（すなわち、機能性が少なくとも１個の機能設定ＣＲＡＭ値に依存している回路）の機能性をトランジスタなしで促進するよう設定可能なスマートスイッチが提供される。各スマートスイッチの能力は様々であり、金型領域および電力要件を低減しながら性能および収率を増加するよう、ＭＰＬＤ全体を通して種々の形態で使用することができる。ロジックリソースの特定の回路を置き換えるために採用されるスマートスイッチの種類は、例えば回路の機能性および該機能性に関連する非機能設定値の数によって異なってもよい。
【００２６】
図３は、実施可能なスマートスイッチの一種類を示す図である。この「２入力」スイッチ３０は、第１入力端子３１（接続ピンＡ）、第２入力端子３２（接続ピンＢ）および出力端子３５（接続ピンＺ）を含んでいてもよい。２入力スマートスイッチ３０は、相互接続用導体がスイッチ内の接続ピンに接続される点において「プログラム可能である」と考えることができる。このプログラム性によって、一般的な２入力スマートスイッチ３０は特定の機能を有する「スマートセル」を形成することができる。個々のスマートスイッチの容量およびサイズは、実装を予定している機能設定の機能性の種類に依存する場合もある。さらに、いくつかの異なる種類のスマートスイッチ（すなわち、容量およびサイズの異なるスマートスイッチ）をベースデバイス１０全体に配列して金型領域の最適な低減を図ってもよい。
【００２７】
ベースデバイス１０上に配列された２入力スイッチ３０はそれぞれ、実装する特定の機能性にかかわらず、端子（すなわち接続ピン）間の接続を確立する方法（すなわちスイッチがプログラミングされる方法）をパラメータ的に示す回路図に組み込まれた同一の標準式３８によって定義してもよい。このような式３８は、ブール論理式「プレースホルダ」（＠ＲＢ）を含んでいる。このプレースホルダは、定義および評価される際に、２個の入力端子のうち第１入力端子が出力端子に接続されているかどうか、または、２個の入力端子のうち第２入力端子が出力端子に接続されているかどうかを特定する。標準式３８は例えば以下の式で表すことが可能である。
ＥＱ＝＠ＲＢ？Ｂ：Ａ  （１）
（すなわち、「式＠ＲＢが真であれば第２入力ピンＢを出力ピンＺに接続し、そうでなければ第１入力ピンＡを出力ピンＺに接続する。」）
【００２８】
各２入力スイッチ３０用のプレースホルダ式＠ＲＢは、スイッチによって置き換えられている機能設定ロジックの種類を定義し、（以下、詳細に説明する）置き換えられるロジックの構成に関してユーザから製造業者に対して提供される少なくとも１個の機能設定ＣＲＡＭ値に依存するブール関数から導き出すことができる。次に、スイッチの接続ピンの相互接続は、特定のスイッチに関連する少なくとも１個の機能設定ＣＲＡＭ値を用いて導き出されたプレースホルダ式＠ＲＢを評価することによって、決定してもよい。したがって、スマートスイッチはパラメータ化可能である。
【００２９】
２入力スマートスイッチ３０の接続ピンは、所望の機能を持ったスマートセルを得るために、相互に接続されていてもよい。スマートセルは一般には、プログラムされた（構成された）スマートスイッチである。図４は、マスクプログラマブルベースデバイス１０上の２入力スマートスイッチ３０による置き換えに適した、ソースＰＬＤ上にみられる代表的な回路を表す機能設定ロジックの特定の配列４０を示している。回路４０は、インバータ４１、トランジスタ４２、４３、４４、４５を備える標準型２対１マルチプレクサ（ＭＵＸ）である。選択信号Ｒ１の論理値に基づいて、入力信号Ｘ１または入力信号Ｘ２のいずれかが出力ＸＯＵＴに接続されている。本回路は以下のブール関数４８を実現する。
ＸＯＵＴ＝Ｒ１・Ｘ１＋Ｒ１・Ｘ２（２）
【００３０】
２入力スイッチ３０による置き換えに適したＭＵＸ４０等を内蔵したソースＰＬＤ上では、選択信号は、ユーザの設定情報（ＣＲＡＭ）によって定義された静的値「Ｒ」（すなわちＲ１）であるはずであるが、一方、入力信号Ｘ１、Ｘ２は、ＣＲＡＭによって定義される静的値「Ｒ」またはデバイスの使用によって決定される非機能設定信号値「Ｎ」（例：クロック信号、演算用に装置に提供されるユーザ信号等）のいずれかであってもよい。スイッチ３０の各入力端子３１、３２は、接続ピンＡ、Ｂにそれぞれ接続されているとともに、対応する入力Ｘが実際のＣＲＡＭ静的値Ｒであれば適切な固定論理値ソース（例：論理値「０」には電源Ｖｓｓ、論理値「１」には電源Ｖｄｓ）に、あるいは対応する入力Ｘが非機能設定信号値Ｎならばデバイスの適切な相互信号線に接続される。しかし、信号値Ｎ（すなわち、ＣＲＡＭ値Ｒ以外の値）から選択信号が供給されるソースＰＬＤ上の２対１ＭＵＸは、ベースデバイス１０上の２入力スイッチ３０によって置き換えられず、その代わり他の種類のスマートスイッチによって簡単に置き換えられる。詳細は図１１、図１２を参照に説明する。
【００３１】
回路４０を置き換える２入力スイッチ３０の標準式３８を定義するプレースホルダ＠ＲＢのブール論理式は、出力ＸＯＵＴに接続される第２入力Ｘ２に対して何が真とならなければならないかを決定することによって、ブール関数４８から導き出してもよい。出力ＸＯＵＴに接続される入力Ｘ２に対する選択入力Ｒ１が論理値「１」でなければならないと決定することによって、＠ＲＢを例えば「Ｒ１」と簡単に定義してもよい。次にスイッチ３０は＠ＲＢ＝Ｒ１である標準式３８を評価することによって、ユーザのＣＲＡＭによって定義されたＲ１に対する適切な静的値を用いて、接続ピンを相互接続するようプログラミングされる。この詳細は図１３、図１４を参照に後に説明する。したがって、本実施例では、２入力スマートスイッチ３０はベースデバイス１０上の機能設定ロジック４０を置き換えることができ、その結果ベースデバイスから４個のトランジスタおよび１個のインバータを取り除くことができる。
【００３２】
図４Ａは、図４に示す２対１ＭＵＸのブロックを表す。
【００３３】
図５は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ３０、およびスイッチがベースデバイス１０上の２対１ＭＵＸ回路４０を置き換えるよう近似したプレースホルダ式＠ＲＢを更新した標準式３８を示す図である。
【００３４】
図４および図４Ａに示す機能設定ロジックの特定の配列４０は単に例示的なものにすぎず、マスクプログラマブルベースデバイス１０上の２入力スマートスイッチ３０による置き換えに適したソースＰＬＤ上にみとめられた代表的な回路を表す機能設定ロジックの多くの他の配列が存在することが理解されるであろう。例えば、スイッチ３０は、ＡＮＤゲート、ＯＲゲート、インバータ、バッファ、ＮＯＲゲート、ＸＯＲゲート、排他的ＮＯＲゲート、およびこれらの組み合わせを含むがこれに限らない、広範な機能設定ロジックを置き換えることに適しているかもしれない。さらに、本発明のスマートスイッチは、後に詳述するように任意の個数の入力を有していてもよく、ＣＲＡＭ値によって決定可能な任意のブール論理項を有する回路を置き換えることができることが理解されるであろう。さらに、複数のスマートスイッチを組み合わせて、フリップフロップ回路、レジスタ、カウンタ、遅延素子、加算器等のより高度な設定可能ロジック回路を置き換えてもよい。
【００３５】
マスクプログラマブルベースデバイス１０上の２入力スマートスイッチ３０による置き換えに適した機能設定ロジックの別の特定の配列６０の例を図６に示す。回路６０を置き換える特定の２入力スイッチ３０、および置換回路４０を置き換えるスイッチ３０とは、スイッチの標準式３８中のプレースホルダ＠ＲＢを定義するブール論理式に関して、およびスイッチの端子（すなわち、端子３１、３２、３５）に対する外部接続の種類に関してのみ、互いに異なっていてもよい。
【００３６】
図６に示すように、回路６０は例えばソースＰＬＤのカラムアドレスデコーダ中で高頻度に使用される長く連なったロジックを含んでいる。回路６０は、ＮＡＮＤゲート６１およびＮＯＲゲート６２、６３、６４を備え、各ゲートは４個のトランジスタと１個のインバータ（図示せず）を有している。ゲート６２は、入力Ｒ１、Ｒ２のＣＲＡＭ値を有するゲート６２のＮＡＮＤ機能性を評価することによって、ゲート６１の入力６１ａを適切な固定論理値ソース（例：ＶｓｓまたはＶｄｓ）に接続することによって簡単に置き換えてもよいが、一方、回路６０全体を１個のスマートスイッチ３０へと置き換えることも可能である。回路６０の機能性を分析することによって、入力Ｒ１、Ｒ２、Ｒ３およびＲ４の論理値に基づいて、論理値「０」または入力Ｎの補数のいずれかの出力ＸＯＵＴへの接続が実現される。この回路は以下のブール関数６８を実現する。
ＸＯＵＴ＝Ｒ１・Ｒ２．Ｒ３・Ｒ４・Ｎ  （３）
【００３７】
回路６０への入力として供給される論理信号値Ｎは１個だけであるため、論理値「０」のソース（例：Ｖｓｓ）は、スイッチ３０の第１入力端子３１に固定してもよく、非機能設定値Ｎの補数（すなわちＮ）をインバータ３３を用いる第２入力端子３２に接続してもよい（図７）。回路６０を置き換える２入力スイッチ３０の標準式３８を定義するプレースホルダ＠ＲＢのブール論理式は、出力ＸＯＵＴに接続される第２入力Ｎに対して何が真とならなければならないかを決定することによって、ブール関数６８から導き出してもよい。各選択入力Ｒ１〜Ｒ４が、出力ＸＯＵＴに対して接続される入力Ｎの補数に対して論理値「０」でなければならないと定めることによって、＠ＲＢを例えば「Ｒ１・Ｒ２・Ｒ３・Ｒ４」として定義してもよい。次にスイッチ３０は、＠ＲＢ＝Ｒ１・Ｒ２・Ｒ３・Ｒ４である標準式３８を評価することによって、ユーザのＣＲＡＭによって定義されるＲ１〜Ｒ４用の適切な静的値を用いて、接続ピンを相互接続するようプログラミングされてもよい。詳細は後に図１３、図１４を参照に説明する。したがってこの実施例では２入力スマートスイッチ３０は、ベースデバイス１０上の機能設定ロジック６０を置き換えることができ、その結果ベースデバイスから１６個のトランジスタおよび３個のインバータを除去することができる。
【００３８】
図７は、端子が上述の近似信号線または論理値ソースに接続されたスマートスイッチ３０、およびスイッチがベースデバイス１０上の回路６０を置き換えるようプレースホルダ近似式＠ＲＢを更新した標準式３８を示す図である。
【００３９】
図３、図５、図７に示す２入力型のスマートスイッチは単に例示的なものであって、マスクプログラマブルベースデバイス１０上のソースＰＬＤの機能設定ロジックを置き換えるために他の多くの種類のスマートスイッチが使用可能であることが理解されるであろう。例えば想定可能な他の種類のスマートスイッチを示す図を図８に示す。この「４入力」スイッチ８０は、第１入力端子８１（接続ピンＡ）、第２入力端子８２（接続ピンＢ）、第３入力端子８３（接続ピンＣ）、第４入力端子８４（接続ピンＤ）および出力端子８５（接続ピンＺ）を含んでいてもよい。スイッチ３０と同様に、４入力スマートスイッチ８０は、相互接続用導体がスイッチ内の接続ピンに接続可能であるという点で「プログラム可能である」と考えることができる。
【００４０】
ベースデバイス８０上に配列される各４入力スイッチは、実装する個々の機能性にかかわらず、端子（すなわち接続ピン）間の接続方法をパラメータ的に描写する回路図に内蔵される同一の標準式８８によって定義してもよい。このような式８８は、４入力端子の第１、第２、第３または第４の端子がスイッチの出力端子に接続されるべきか否かを、定義、評価の際に特定する３個のブール論理式プレースホルダ＠ＲＤ、＠ＲＣおよび＠ＲＢを有する。標準式８８は例えば以下のように表される。
ＥＱ＝＠ＲＤ？Ｄ：＠ＲＣ？Ｃ：＠ＲＢ？Ｂ：Ａ  （４）
（すなわち、式＠ＲＤが真であれば第４入力ピンＤを出力ピンＺに接続し、式＠ＲＣが真であれば第３入力ピンＣを出力ピンＺに接続し、式＠ＲＢが真であれば第２入力ピンＢを出力ピンＺに接続し、それ以外であれば第１入力ピンＡを出力ピンＺに接続する。）
【００４１】
各４入力スイッチ８０に対するプレースホルダ式＠ＲＤ−Ｂはそれぞれ、スイッチによって置き換えられている機能設定ロジックの種類を定義し、置き換えられているロジックの構成に関する少なくとも１個の機能設定ＣＲＡＭ値に依存しているブール関数から、導き出すことができる。次にスイッチの接触点間の相互接続を、この特定スイッチに関連付けられた少なくとも１個の設定ＣＲＡＭ値を使用して導き出したプレースホルダ式＠ＲＤ−Ｂを評価することによって、決定してもよい。したがってスイッチ３０と同様、スマートスイッチ８０はパラメータ化可能である。
【００４２】
図９は、マスクプログラマブルベースデバイス１０上の４入力スマートスイッチ９０による置き換えに適した、ソースＰＬＤ上にみられる代表的な回路を表す機能設定ロジックの特定の配列９０を示す。回路９０は、図４および図４ＡのＭＵＸ４０と同様の３個の標準型２対１ＭＵＸ４０ａ、４０ｂ、４０ｃの組み合わせから構成される、標準型４対１マルチプレクサ（ＭＵＸ）である。ＭＵＸ４０ａ、４０ｂ、４０ｃはそれぞれインバータ４１およびトランジスタ４２、４３、４４、４５を備えている。選択信号Ｒ１、Ｒ２の論理値に基づいて、入力信号Ｘ１、Ｘ２、Ｘ３、Ｘ４のいずれかが出力ＸＯＵＴに接続される。４対１ＭＵＸ回路９０は以下のブール関数９８を実現する。
ＸＯＵＴ＝Ｒ１・Ｒ２・Ｘ１＋Ｒ１・Ｒ２・Ｘ２＋Ｒ１・Ｒ２・Ｘ３＋Ｒ１・Ｒ２・Ｘ４  （５）
【００４３】
ベースデバイス１０上の４入力スイッチ３０による置き換えに適した４対１ＭＵＸ９０を内蔵するソースＰＬＤ上では、選択信号はユーザの設定情報によって定義された静的値「Ｒ」（すなわちＲ１、Ｒ２）でなければならない。一方、入力Ｘ１、Ｘ２、Ｘ３、Ｘ４は、ＣＲＡＭによって定義される静的値「Ｒ」またはデバイスの使用によって決定される非機能設定信号値「Ｎ」のいずれかであってもよい。スイッチ８０の各入力端子８１〜８４は、それぞれが接続ピンＡ〜Ｄに接続されるとともに、対応する入力Ｘ１−４が実際に静的ＣＲＡＭ値Ｒであれば近似固定論理値ソースに、対応する入力Ｘ１−４が非機能設定信号値Ｎであればデバイスの近似相互接続信号線に接続される。
【００４４】
回路９０を置き換える４入力スイッチ８０の標準式８８を定義するプレースホルダ＠ＲＤ−Ｂは、出力ＸＯＵＴに接続される各入力Ｘ１−４に対して何が真とならなければならないかを決定することによって、ブール関数９８から導き出してもよい。出力ＸＯＵＴに接続される入力Ｘ４に対する選択入力Ｒ１および選択入力Ｒ２がそれぞれ論理値「１」でなければならないこと、出力ＸＯＵＴに接続される入力Ｘ３に対する選択入力Ｒ１が論理値「０」であり選択入力Ｒ２が論理値「１」でなければならないこと、出力ＸＯＵＴに接続される入力Ｘ２に対する選択入力Ｒ１が論理値「１」であり選択入力Ｒ２が論理値「０」でなければならないこと、および出力ＸＯＵＴに接続される入力Ｘ１に対する選択入力Ｒ１および選択入力Ｒ２がそれぞれ論理値「０」でなければならないことを決定することによって、例えば＠ＲＤを「Ｒ１・Ｒ２」として、＠ＲＣを「Ｒ１・Ｒ２」として、＠ＲＢを「Ｒ１・Ｒ２」として、定義してもよい。次にスイッチ８０は、ユーザのＣＲＡＭによって定義されるＲ１およびＲ２に対する近似静的値を使用して、これら式＠ＲＤ−Ｂを有する標準式８８を評価することによって、接触点を相互接続するようプログラミングされてもよい。詳細は後に図１３、図１４を参照に説明する。したがってこの実施例では、４入力スマートスイッチ８０が機能設定ロジック９０に置き換わり、その結果ベースデバイスから１２個のトランジスタおよび３個のインバータを除去する。
【００４５】
図１０は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ８０、およびスイッチがベースデバイス１０上の４対１ＭＵＸ回路９０を置き換えるようプレースホルダ近似式＠ＲＤ−Ｂを更新した標準式８８を示す図である。
【００４６】
図９に示す機能設定ロジックの特定配列９０は単に例示的であり、マスクプログラマブルベースデバイス１０上の４入力スマートスイッチ８０による置き換えに適した、ソースＰＬＤ上にみられる代表的な回路を表す機能設定ロジックの多くの他の配列が存在することが理解されるであろう。例えば、このような回路の別の特定の配列を図１１に示す。回路１１０は、図４および図４Ａに示すＭＵＸ４０と類似した標準型２対１マルチプレクサである。しかし、選択入力Ｒ（すなわちＣＲＡＭ値）によって制御されるＭＵＸ４０とは異なり、この２対１ＭＵＸ１１０は選択入力Ｎ（すなわち、デバイスの使用によって決定された機能設定信号値）によって制御される。例えば、この種の機能設定ロジックは、ＬＥ１１中のルックアップテーブル（ＬＵＴ）の一部を提供するよう使用してもよい。ＬＵＴの論理入力はＬＵＴの１６ビットプログラマブルメモリ（例：１６個のＣＲＡＭ値）へのアドレス線として作動し、その容量によって、機能設定ロジック（例：マルチプレクサ（ＭＵＸ）、ヒューズ、トランジスタ等）の配列を用いて、ＬＵＴの論理機能を定義する。選択入力Ｎの論理値に基づいて入力Ｒ１、入力Ｒ２のいずれかが出力ＸＯＵＴに接続される。この回路は以下のブール関数１１８を実現する。
ＸＯＵＴ＝Ｎ・Ｒ１＋Ｎ・Ｒ２  （６）
【００４７】
４入力スイッチ８０による置き換えに適したＭＵＸ１１０等を内蔵するソースＰＬＤ上では、入力Ｒ１およびＲ２はＣＲＡＭによって定義される静的値「Ｒ」でなければならない。スイッチ８０の各入力端子８１〜８４は、接続ピンＡ〜Ｄにそれぞれ接続されるとともに、後により詳細に説明するように、近似固定論理値ソース（例：電源Ｖｓｓまたは電源Ｖｄｓ）またはデバイスの近似信号線のいずれかに接続される。
【００４８】
回路１１０を置き換える４入力スイッチ８０の標準式８８を定義するプレースホルダ＠ＲＤ−Ｂのブール論理式は、出力ＸＯＵＴから供給される特定の信号に対する入力Ｒに対して何が真とならなければならないかを決定することによって、ブール関数１１８から導き出してもよい。入力Ｒ１および入力Ｒ２がそれぞれ論理値「１」である場合は選択入力Ｎの値にかかわらずＸＯＵＴが論理値「１」を供給すること、入力Ｒ１が論理値「１」であり入力Ｒ２が論理値「０」である場合はＸＯＵＴが論理値Ｎの補数と等しい論理値を供給すること、入力Ｒ１が論理値「０」であり選択入力Ｒ２が論理値「１」である場合ＸＯＵＴが論理値Ｎと等しい論理値を供給すること、および入力Ｒ１および入力Ｒ２がそれぞれ論理値「０」である場合は選択入力Ｎの値にかかわらずＸＯＵＴが論理値「０」を供給することを決定することによって、例えば＠ＲＤは「Ｒ１、Ｒ２」、＠ＲＣは「Ｒ１、Ｒ２」、＠ＲＢは「Ｒ１、Ｒ２」と定義してもよい。次にスイッチ８０は、ユーザのＣＲＡＭによって定義されるＲ１およびＲ２に対する近似静的値を使用して、これら式＠ＲＤ−Ｂを有する標準式８８を評価することによって、接触点を相互接続するようプログラミングされることができる。詳細は後に図１３、図１４を参照に説明する。しかし、このプログラムされたスマートスイッチ８０がＭＵＸ回路１１０の機能性を完全に実現するためには、入力端子８１は論理値「０」の固定ソース（例：電源Ｖｓｓ）に接続されなければならず、入力端子８４は論理値「１」の固定ソース（例：電源Ｖｄｓ）に接続されなければならず、入力端子８２は信号Ｎを供給するデバイスの信号線に接続されなければならず、入力端子８３はインバータ８６を用いて信号Ｎの補数を供給するデバイスの信号線に接続されなければならない。しかし、スイッチ８０の端子が上記とは異なる信号ソースに接続されている場合は、プレースホルダ＠ＲＤ−Ｂのブール論理式を再定義する必要もありうることが理解されるべきである。したがって本実施例では、４入力スマートスイッチ８０は機能設定ロジック１１０を置き換えることが可能である。
【００４９】
図１２は、端子が近似信号線または論理値ソースに接続されたスマートスイッチ８０、およびスイッチがベースデバイス１０上の２対１ＭＵＸ回路１１０を置き換えるようプレースホルダ近似式＠ＲＤ−Ｂを更新した標準式８８を示す図である。
【００５０】
図４、図４Ａ、図６、図９、図１１の機能設定ロジック回路配列は単に例示的であり、本発明の精神および範囲から逸脱することなく、本発明のスマートスイッチによる置き換えに適した、ソースＰＬＤ上にみとめられる回路を例示する他の多くの機能設定ロジックの配列が存在する。
【００５１】
上記よりＮ入力スマートスイッチに対する標準式は一般に、例えば以下のように表すことができることが理解されるべきである。
ＥＱ＝＠ＲＮ？Ｎ：＠ＲＮ−１？Ｎ−１：．．．：＠ＲＢ？Ｂ：Ａ  （７）
各Ｎ入力スイッチに対するプレースホルダ＠ＲＮ−Ｂはスイッチによって置き換えられている機能設定ロジック回路の配列から導き出されるブール論理式によって個別に定義してもよく、スイッチは式の評価によって、回路と関連付けられたＣＲＡＭ値を用いてプレースホルダ近似式でプログラミングすることができる。
【００５２】
しかし、スマートスイッチの機能性が、標準式のプレースホルダ式によってのみでなく、入力端子に接続された信号線の種類によっても定義されることを理解するべきである。例えば、標準式８８のプレースホルダ式は、スイッチが４対１ＭＵＸ（例えば図１０を参照）または論理信号値Ｎで制御される２対１ＭＵＸ（例えば図１２を参照）のいずれを置き換えるかにかかわらず、スイッチ８０に対しては同様に示されており、入力端子８１〜８４はスイッチがベース上で置き換えているソースデバイス機能設定ロジック回路の種類に応じて、信号線に別々に接続されている。このようなデバイス上のスマートスイッチの端子と端子の間の信号の経路設定は好適にはデバイス上のすべての相互接続の経路設定に関して行われる一方、スイッチによって置き換えられている機能設定ロジックの種類を考慮に入れている。詳細は、以下、図１３、図１４に説明する。
【００５３】
図１３は、本発明にしたがって、ソースＰＬＤベースデバイスからのマスクプログラマブルベースデバイス１０の生成にかかわるいくつかのステップを例示する変換フローチャートを示す。この工程は、ユーザから供給された設定情報のいずれにも依存しない。まず最初に、ステップ２００でＰＬＤのベースデバイスの回路図情報が製造業者に提供される。回路図は、ＰＬＤ等ソースベースデバイスに関して、Ａｌｔｅｒａ社が所有権を持つソフトウェアによって生成されたコンピュータ生成ファイル形式で提供されてもよい。既知の方法と同様に、ソースデバイスのＣＲＡＭおよび経路設定構成がステップ２０２で除去される。
【００５４】
次にステップ２０４では、ソースベースデバイスの回路図情報が走査されて、本発明によるマスクプログラマブルベースデバイス１０上のスマートスイッチによる置き換えが可能な機能設定ロジックを特定してもよい。このような機能設定ロジックは、例えば図４、６、９、１１中の回路４０、６０、９０、１１０等、機能性が少なくとも１個の機能設定ＣＲＡＭ値に依存していればいかなる種類の回路であってもよい。ステップ２０４で、回路図情報中に特定されたソースベースデバイスの各機能設定ロジック回路は、ステップ２０６において、マスクプログラマブルベースデバイス１０の回路図情報において、社内開発されたソフトウェアを使用して、適切なサイズとされたスマートスイッチに対するプレースホルダ近似式を有する標準式によって、置き換えられる。上述のように、スマートスイッチ標準式のプレースホルダのブール論理式は、置き換えられる機能設定ロジック回路の機能性を評価することによって導き出してもよい。
【００５５】
ひとたびステップ２０６でスマートスイッチ式が適切に定義されると、ステップ２０８において、シミュレーションデータベースが、スイッチのプログラム方法を決定するためにユーザによって定義されうるＣＲＡＭ値のうちすべてではないとしても最も一般的な組を、各式に注釈付ける。ステップ２０８で注釈付けられたＣＲＡＭ値の各組に対して、所定の制約が付与されればある設計の２つの版が機能的に同一であることを確認することを含む静的機能検証法によって、式の整合性を検証してもよい（ステップ２１０）。例えば、ステップ２０６で導き出された各スマートスイッチ式は、スイッチが置き換えようとしているソースデバイスの機能設定ロジックと論理的に等価であることが望ましい。この技法は、ユーザから供給されたシミュレータベクタのいずれにも依存していない。注釈を付け式の機能設定ロジックに対する機能的な同一性がみとめられなければ、ステップ２１２で式中の適切な修正を実行し、満足のいくスマートスイッチ式が生成されるまで、ステップ２０４〜２０８を繰り返すことによって、機能的等価性を保証する。
【００５６】
この時点でスマートスイッチ式の導出は完了する。ステップ２１４において、スマートスイッチの物理的な代表例が近似式とともに、マスクプログラマブルベースデバイス１０の回路図に記述される。ステップ２１６において、ベースデバイス１０上の各スマートスイッチの位置は、置き換えられている機能設定ロジックのソースＰＬＤベースデバイス上の位置に基づいて導き出される。
【００５７】
図１４は変換フローチャートであり、ユーザの設計仕様を用いた既存の回路設計からベースデバイス１０上のマスクプログラムされたロジックデバイス２０を生成する上述の方法を示す。最初に、ユーザは製造業者に対して設定に関する情報およびソースデバイスの所望のタイミング要件を提供する（ステップ２３０）。設定情報は、ＰＬＤ等ソースデバイスに関し、Ａｌｔｅｒａ社のＱｕａｒｔｕｓ（登録商標）ＩＩソフトウェアによって生成されたＳＲＡＭオブジェクトファイル（．ｓｏｆファイル）等のコンピュータ生成された設定ファイルの形式で提供されてもよい。このファイルは一般的には接続性情報およびロジックリソースの物理的構成に関する情報の両方を含む。設定ファイルはステップ２３５でネットリストジェネレータに、ステップ２３７で物理モジュールジェネレータに供給される。設定ファイルに含まれる接続性情報はネットリストジェネレータ、およびＶｅｒｉｌｏｇ（登録商標）ネットリスト等の構造的ネットリスト２４０によって抽出される。ネットリスト２４０は、ソースデバイスの論理機能および接続性の両方を記述する情報を含んでいるが、好適にはロジックリソースの物理的配列に関する情報は保持しない。
【００５８】
次にステップ２４３において、テスト容易性違反をチェックするためにネットリスト２４０を走査してもよい。この時点で、検出した任意の違反を修正するためにテスト構造を加えてもよく、これによって故障テストを可能にし、完了したマスクプログラムされたデバイス２０の演算がより可視化される（ステップ２４４）。すべてのテスト容易性違反が修正されるまで、ステップ２４３、２４４を繰り返してもよい。
【００５９】
ステップ２３７において、物理モジュールジェネレータは、必要な論理機能を実行するために、ＬＥ１１等、ベースデバイス１０上のロジックリソースの物理的な構成方法を決定する。このステップは、ＬＥ１１およびそのスマートスイッチ位置等ベースデバイス１０の物理的配列、および式を図１３のステップ２１６から取り込み、ステップ２３０で供給された設定情報から、関連付けられたスイッチのＣＲＡＭの評価値に基づいてスマートスイッチを物理的にプログラミングする。一部の実施形態では、この演算はステップ２３０で設定ファイルから提供されるコンフィギュレーションビット（ＣＲＡＭ）に基づいて行ってもよい。これは、デバイス１０の物理的にプログラミングする工程の第１の工程（すなわち所望の論理機能を生成するためにロジックリソースとそのスイッチとの接続方法を決定する工程）と考えることもできる。これら「プログラムされたモジュール」の機能性および物理的整合性はモジュールが生成された時に検証することができるため、モジュールの機能性を検証する論理シミュレーションの必要がなくなることもある。ステップ２３７は一般にステップ２３５〜２８０と同時に実行される。
【００６０】
ネットリスト２４０中の情報は、ソースデバイス上の各回路ブロック（例：Ｉ／Ｏ、ＬＥ、ＥＳＢ、ＰＬＤ中のＰＬＬブロック）の機能および各ブロックの他の回路ブロックとの接続方法を記述している。ステップ２４５では、配列ルーチンはソースデバイス設計の特定部分をベースデバイス１０の特定部分に指定する。ロジックリソース（例：ＬＡＢ１２）の配列は、相互接続要件、タイミング要件、およびソースデバイスとのピン互換性によって課される制約等、種々の要素に基づいて行われてもよい。配列ルーチンの目的の一つは、マスクプログラムされたデバイス２０上のロジックリソースの位置を最適化して、その性能特性がソースデバイスによって達成される性能特性と同等ないしそれを上回ることを保証することである。
【００６１】
一部の実施形態において、ソースデバイスの配列の一部を保存し、回路設計の変換または合成の必要性を取り除くことが望ましい場合もある。これは、ソースデバイスおよびマスクプログラマブルデバイスが、略同一のロジックリソースアーキテクチャを共有する場合に行われる。例えば、ＰＬＤを変換する場合、ソースＰＬＤ中で使用されるＬＡＢ１２は、さらに小さな素子（例：ＬＥ１１）に分解されることなく、ＬＡＢ１２としてマスクプログラマブルデバイス上にインポートされ、配列されてもよい。その理由はＬＡＢは異なる物理的配列を有するが、同一の機能性を持っているためである。これによって、配列ルーチンはＬＡＢ上にソースデバイスの設計の一部をＬＡＢに基づいて指定し、その結果基本的な論理ブロックを配列することによって回路設計を実装するために必要となるさらなる処理を避けることができる。しかし、多くの場合において、ソースデバイス上の位置に関係なく配列がなされるため、ＬＡＢ１２はソースＰＬＤと比べてマスクプログラムされたデバイス２０上のより異なる位置に配列される。しかし、ＬＡＢ内のＬＥ構造が維持されている限りＬＥレベルで配列を行ってもよいが、この作業は一般により長い時間がかかり、より多くのテスト手順を伴うことが理解されるであろう。
【００６２】
本発明のロジックリソースの配列が完了した後、結果生じた配列情報は、ベースデバイス１０上回路ブロックの物理的位置を示す物理座標データファイルへと変換される（ステップ２４５）。この情報を用いて、ステップ２４５で配列されたロジックリソースの相互接続方法を決定して、必要な既存の回路設計を作成する。このような相互接続は、ベースデバイス１０の上方にある適切なマスクメタライゼーション層中に供給される（例：図２中のメタライゼーション層２２を参照）。この工程は、物理プログラミングデバイス１０の第２工程と考えることもできる。（すなわち、ステップ２３７で同時に構成され、所望のロジック設計を生成するためにステップ２５５で相互接続を必要とするロジックリソースの配列を特定する工程。）全Ｉ／Ｏセル１６の配列は、一般にはベースデバイス１０の周辺部に固定される。
【００６３】
次にステップ２５５において経路設定ルーチンは、上記のように配列されたロジックリソースを相互接続するために使用されるカスタム化された相互接続ネットワークを生成する。経路設定ルーチンはネットリスト２４０から導き出した接続性情報および上記で生成した物理座標情報を使って、ステップ２４５で配列されたロジックリソースを接続するための最適方法を決定する。このことは物理的なプログラミングデバイス１０の第３工程と考えることもできる（すなわち、上記のように配列されたロジックリソースを接続する工程）。最終的には、カスタム化された相互接続は、ベースデバイス１０の上方にあるメタライゼーション層に実装される。上述の配列および経路設定ステップは、ＰＬＤを構成するための既知のソフトウェア中に使用される方法と類似の方法で、実行してもよい。
【００６４】
カスタム化された相互接続を使用することに起因する利点の一つに、必要な相互接続のみが生成されるためソースＰＬＤと比較して大幅に少ない経路設定リソースが使用されること（すなわち、カスタム化された相互接続中には、ソースＰＬＤ上の未使用汎用経路設定導体が全く見出されないこと）がある。さらに、ソースＰＬＤ中に使用されるプログラマブルロジックコネクタはすべて除去されており、マスクプログラムされたデバイス２０の電力消費およびサイズを大幅に低減する。
【００６５】
この時点でロジックリソースの配列および相互接続の両方を表すソフトウェアファイルが完全となる。このファイルは、過剰な散開またはアンテナ違反等の物理的デザイン違反をチェックするために使用してもよい（ステップ２６０）。例えばこの設計ファイルのテストによって、あるＬＥ１１に関連付けられたノードが過剰な散開を有し、応答時間の遅延または消費電力の増加をもたらしうることを明らかにすることがある。この問題は、バッファ回路を負荷の大きい回路経路に挿入して、信号強度を増加することによって修正してもよい。バッファ回路は、上述のゲートアレイサイト１５のうちいくつかをプログラミングすることによって作成することもできる。このことは、同一出願人による２００２年３月２９日に出願された同時係属米国特許出願第１０／１１３，３２４号明細書に記載のとおりであり、該出願の全文は本明細書において参照により引用される。
【００６６】
ステップ２６０が完了すると、相互接続寄生容量および抵抗情報を、結果発生する回路配列上に生成してもよい（ステップ２６５）。この情報は、伝播遅延を推定するための遅延演算ツールを備えたＳｔａｎｄａｒｄ  Ｄｅｌａｙ  Ｆｏｒｍａｔ  Ｆｉｌｅ（．ｓｄｆファイル）に変換されることがある。最低遅延および最高遅延の両方を推定して、潜在的なセットアップ時間違反（遅すぎてユーザの指定するタイミング要件を満たさない信号）および／またはホールド時間違反（速すぎて適切に処理できない可能性のある信号）を特定してもよい。
【００６７】
次にステップ２７０では、ステップ２６５で生成された情報を用いて、ステップ２４５〜２６５の後で、新しく現れた回路設計のタイミングを分析、修正してもよい。タイミング違反は、ステップ２６５で推定された要件とユーザから提供されたタイミング要件をも比較することによって特定することができる。セットアップ時間違反はいくつかの方法で修正することができる。例えば、追加的なバッファを上述のように使用して信号を加速してもよいし、あるいは、必要に応じて、ステップ２４５に戻ることによって配列を再度最適化することができる。ホールドタイム違反は、遅延素子を挿入することによって修正してもよい。これらの遅延素子およびバッファ素子は、上述のゲートアレイサイト１５をプログラミングすることによって作成することができる。
【００６８】
タイミング違反またはデザイン違反を修正するために任意の新しい素子がネットリスト２４０に加えられていた場合、ステップ２７５で適切な修正をネットリスト２４０中に実装することが望ましい。その後、配列ステップ２４５および経路設定ステップ２５５が繰り返されてこの変化がネットリスト２４０に反映され、その後ステップ２７０のタイミング違反のテストがまた繰り返されることが望ましい。一般的には、初期の配列および経路設定後は、１個または複数の繰り返しのみが必要である。
【００６９】
ステップ２７０でタイミング違反がみとめられない場合、ネットリスト２４０の整合性は、静的機能検証技術によって検証してもよい（ステップ２８０）。この静的機能検証技術は、所定の制約が与えられた場合に設計の２つの版が機能的に同一であることを確認することを伴う。例えば、初期のネットリスト２４０は、タイミングおよび／またはデザインルール違反を修正するために変更されたネットリスト２４０と論理的に等価であることが望ましい。この技術はユーザから提供されるシミュレーションベクタのいずれにも依存しない。ネットリスト２４０の２つの版の機能的同一性がみとめられない場合、ステップ２８５で適切な修正が実装され、（例えば、ある回路を追加または除去することによって）機能的等価性を保証する。次に、満足のいく回路設計が生成されるまでステップ２４５〜２７０が繰り返される。
【００７０】
この時点で回路設計の配列および経路設定が完了する（ステップ２９０）。ステップ２９５において、ステップ２４０〜２８０で作成された回路設計を表すソフトウェアファイルは、ステップ２３７で生成された物理構成ファイルと組み合わせられ、マスクプログラムされたデバイス２０中に実装される回路設計が完了する。この組み合わせ工程はステップ２３７で生成された物理構成ファイルを結合することを含む。該ファイルはステップ２４５で配列されステップ２５５で経路設定された各ロジックリソースの特定構成を指定する相互接続情報を含有している。この組み合わせによって、例えばある回路設計を生成するためにベースデバイス１０上で相互接続される必要がある全ロジックリソースの厳密な物理座標を生成する。また、必要な相互接続を生成するためにマスク層中に生成する必要がある全相互接続の物理座標も含んでいる。
【００７１】
しかし、カスタム化された金属の相互接続を製作する前に、物理的配列を検証することができる。この検証工程は一般に、デザインルール違反をチェックする工程と、確実に相互接続を正しく物理的に実装する工程を伴う。これらの工程は、デザインルールチェック（ＤＲＣ）および配列対回路図検証（ＬＶＳ）として時に知られている。この時点で金属の相互接続が生成され、マスクプログラムされたデバイス２０を生成するためにベースデバイス１０に結合される（ステップ２９７）。ステップ２９９の後は、デバイス２０の適切な作動を保証するために、例えばスキャンチェーン技術を用いてデバイス２０中の（図示しない）所定のノードを観察する工程等、追加的な工程を実行してもよい。
【００７２】
既存のロジック設計から、マスクプログラムされたさらに小さいロジックデバイス２０を作成する能力は、高額な特定用途向け集積回路（ＡＳＩＣ）の代替として、費用効率が高い短いサイクルタイムを、回路設計者に対して提供することが理解されるであろう。さらに、上述のようなマスクプログラムされたデバイスを生成する能力によって、回路設計者は、Ａｌｔｅｒａ社のＦｌｅｘ（登録商標）４００、６００、８００、１０００、８Ｋ、１０Ｋ等の小容量のＰＬＤおよびＡＰＥＸ（登録商標）、Ｃｙｃｌｏｎｅ（登録商標）、Ｓｔｒａｔｉｘ（登録商標）製品のファミリー等の高容量ＦＰＧＡ、およびロジック設計を組み合わせて、これら回路を機能設定ロジック回路のない単一のマスクプログラムされたデバイス２０へと置き換えることができる。このデバイスによって既存技術よりもさらに、金型領域を節約し全消費電力を低減することができる。
【００７３】
上述の方法によって構成されたマスクプログラムされたロジックデバイス２０を、図１５に示すデータ処理装置の一部として使用することができる。データ処理装置３００は、処理装置３０１、メモリ３０２、Ｉ／Ｏ回路３０３、周辺装置３０４のうち１個または複数の構成要素を含んでいる。これら構成要素は、システムバス３０５によって結合され、エンドユーザシステム３０７に含まれる回路基板３０６上に装着されている。
【００７４】
装置３００は、コンピュータネットワーキング、データネットワーキング、計装、ビデオ加工、デジタル信号加工、またはその他マスクプログラマブルロジックの望ましい効果が得られる用途等、広範な用途に使用することができる。マスクプログラムされたロジックデバイス２０は、さまざまな異なる論理機能を実行するよう構成することができる。例えば、マスクプログラムされたロジックデバイス２０は、処理装置３００と協同して作動する処理装置または制御装置として構成することができる。マスクプログラムされたロジックデバイス２０は、装置３００中の共有リソースへのアクセスを調整するためのアービターとして使用してもよい。さらに別の例では、マスクプログラムされたロジックデバイス２０は、処理装置３０１と、他の装置３００中の構成要素のうち１個とのインタフェースとして構成することができる。装置３００は例示的にすぎず、本発明の範囲および精神は以下の請求項によって示されることが望ましいことを留意すべきである。
【００７５】
上述した本発明によるマスクプログラムされたロジックデバイス２０を実装するために、種々の集積回路処理技術を使用することが可能である。さらに、上記に詳術したマスクプログラミングの代わりにヒューズプログラミング等、他の既知のプログラミング技術を使用してもよく、それでも本発明の原則を実施することができる。
【００７６】
したがって上記は本発明の原理を単に例示的に示すものであり、本発明は、その範囲および精神から逸脱することなく当業者によって種々の変更が可能であり、請求項によってのみ制限される。
【図面の簡単な説明】
【００７７】
【図１】本発明による基本デバイスの好適な実施形態の配列を示すブロック図である。
【図２】図１のデバイスを内蔵した、本発明によるマスクプログラムされたデバイスの基板およびマスクの金属蒸着層の断面図である。
【図３】本発明による標準２入力式を有する２入力スマートスイッチの物理的配列の想定される一例を示すブロック図である。
【図４】図３に示す２入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、ある特定の配列を示す概略図である。
【図４Ａ】図４の回路の配列を表すブロック図である。
【図５】図３のスマートスイッチの入力端子を信号ソースに接続し、図４および図４Ａの回路配列を置き換えるために図３のスマートスイッチの標準２入力式のプレースホルダを定義する本発明による一方法を示す、更新したブロック図である。
【図６】図３の２入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の別の特定の配列を示す論理記号である。
【図７】図３のスマートスイッチの入力端子を信号ソースに接続し、図６の回路配列を置き換えるために図３のスマートスイッチの標準２入力式のプレースホルダを定義する本発明による一方法を示す、更新したブロック図である。
【図８】本発明による標準４入力式を有する４入力スマートスイッチの物理的配列の想定される一例を示すブロック図である。
【図９】図８の４入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、ある特定の配列を示す概略図である。
【図１０】図８のスマートスイッチの入力端子を信号ソースに接続し、図９の回路配列を置き換えるために図８のスマートスイッチの標準４入力式のプレースホルダを定義する一方法を示す、本発明による更新したブロック図である。
【図１１】図８の４入力スマートスイッチによる置き換えに適した回路を表す機能設定ロジック回路の、別の特定の配列を示すブロック図である。
【図１２】図８のスマートスイッチの入力端子を信号ソースに接続し、図１１の回路配列を置き換えるために図８のスマートスイッチの標準４入力式のプレースホルダを定義する一方法を示す、本発明による更新したブロック図である。
【図１３】本発明によってソースＰＬＤベースデバイスからマスクプログラマブルベースデバイスを作成する際に関与する工程のいくつかを示すフローチャートである。
【図１４】本発明によってＰＬＤソースデバイスを図１３中に作成されたマスクプログラマブル上のマスクプログラムされたデバイスに変換する際に関与する工程のいくつかを示すフローチャートである。
【図１５】本発明によるマスクプログラムされたデバイスを採用するシステムを示す簡略化したブロック図である。
【図１】
0004799052.tif 000002
【図２】
0004799052.tif 000003
【図３】
0004799052.tif 000004
【図４】
0004799052.tif 000005
【図４Ａ】
0004799052.tif 000006
【図５】
0004799052.tif 000007
【図６】
0004799052.tif 000008
【図７】
0004799052.tif 000009
【図８】
0004799052.tif 000010
【図９】
0004799052.tif 000011
【図１０】
0004799052.tif 000012
【図１１】
0004799052.tif 000013
【図１２】
0004799052.tif 000014
【図１３】
0004799052.tif 000015
【図１４】
0004799052.tif 000016
【図１５】
0004799052.tif 000017