(57)【特許請求の範囲】
【請求項１】
集積回路において、
プログラム可能論理、
専用デバイス、
前記専用デバイスと前記プログラム可能論理との間に配置されており且つプログラム可能なアンチヒューズのアレイを有しているインターフェース、
前記プログラム可能論理内の第一クロック回路、
前記専用デバイス内の第二クロック回路、
を有しており、
クロック信号を受取る複数個のパッドが設けられており、前記パッドが複数個の経路付け資源によって前記第一クロック回路へ結合されており、前記プログラム可能論理が前記専用デバイスとは独立的な周波数において動作することが可能であるように前記複数個のパッドの内の少なくとも１つが前記第一クロック回路及び前記第二クロック回路へ結合されていることを特徴とする集積回路。
【請求項２】
請求項１において、前記インターフェースが複数個のインターフェースバッファを有しており、前記インターフェースバッファが前記プログラム可能なアンチヒューズのアレイへ結合されている集積回路。
【請求項３】
請求項１において、更に、前記専用デバイス用のパラメータを形態特定又は設定するためのデータを格納するために、前記専用デバイスへ結合されている形態特定可能な非揮発性メモリを有している集積回路。
【請求項４】
請求項１において、前記プログラム可能な論理がフィールドプログラマブルゲートアレイである集積回路。
【請求項５】
請求項１において、更に、第二専用デバイスを有しており、前記インターフェースが前記第二専用デバイスと前記プログラム可能な論理との間に配設されており、前記専用デバイス及び前記第二専用デバイスが独立的に動作可能である集積回路。
【請求項６】
請求項１において、前記専用デバイスが応用特定集積回路（ＡＳＩＣ）を有している集積回路。
【請求項７】
請求項１において、前記集積回路が４個の側部を持っており、前記複数個のパッドが第一数のパッドと第二数のパッドとを有しており、前記第一数のパッド及び前記第二数のパッドが前記集積回路の対向する側部上にある集積回路。
【請求項８】
請求項１において、前記第一数のパッドが前記プログラム可能論理に最も近い前記集積回路の１つの側部上にあり、且つ前記第二数のパッドが前記専用デバイスに最も近い前記集積回路の側部上にある集積回路。
【請求項９】
請求項１において、前記第二クロックへ結合される前記複数個のパッドのうちの前記少なくとも１つが前記第二側部上に位置されている集積回路。
【請求項１０】
請求項１において、前記インターフェースが、更に、
前記プログラム可能論理から前記専用デバイスへの複数個の第一導体、
前記専用デバイスから前記プログラム可能論理への複数個の第二導体、
前記第一導体及び前記第二導体へ結合されているバッファ、
各バッファへ結合されているテスト回路であって、
電圧源へ結合されている第一端子と、第一出力端子へ結合されている第二端子と、前記バッファの出力端子へ結合しているゲート端子とを具備しているＰＭＯＳテストトランジスタ、
接地供給源へ結合している第一端子と、第二端子と、前記バッファの出力端子へ結合しているゲート端子とを具備しているＮＭＯＳテストトランジスタ、
を有しているテスト回路、
前記テスト回路へ結合している弱検知回路であって、
第一ＰＭＯＳトランジスタと第一ＮＭＯＳトランジスタとを包含している第一インバータであって、前記第一インバータが入力端子と出力端子とを具備しており、前記入力端子が電圧供給源へ結合しており、且つ前記出力端子が前記ＰＭＯＳテストトランジスタの前記第二端子へ結合しており、前記ＰＭＯＳテストトランジスタが前記第一インバータにおける前記第一ＮＭＯＳトランジスタよりも大型である第一インバータ、
第二ＰＭＯＳトランジスタと第二ＮＭＯＳトランジスタとを包含している第二インバータであって、前記第二インバータが入力端子と出力端子とを具備しており、前記入力端子が接地供給源へ結合しており、且つ前記出力端子が前記ＮＭＯＳテストトランジスタの前記第二端子へ結合しており、前記ＮＭＯＳテストトランジスタが前記第二インバータにおける前記第一ＰＭＯＳトランジスタよりも大型である第二インバータ、
を有している弱検知回路、
を有している集積回路。
【請求項１１】
請求項１０において、複数個のテスト回路が前記弱検知回路へ結合しており、前記第一インバータの前記出力端子が前記ＰＭＯＳテストトランジスタの各第二端子へ結合しており、且つ前記第二インバータの前記出力端子が前記ＮＭＯＳテストトランジスタの各第二端子へ結合している集積回路。
【請求項１２】
請求項１０において、本装置が、更に、形態特定可能な非揮発性メモリを有しており、前記インターフェースが、更に、
前記形態特定可能な非揮発性メモリから前記専用デバイスへの複数個の第三導体、
を有しており、前記バッファが前記第一導体、前記第二導体、第三導体へ結合されている集積回路。
【請求項１３】
請求項１において、本集積回路は前記インターフェースの１つの側部上に第一側部を具備しており且つ前記インターフェースの対向する側部上に第二側部を有しており、
前記第一側部の周辺部周りにおける第一組の周辺入力／出力端子、
前記第二側部の周辺部周りにおける第二組の周辺入力／出力端子、
前記プログラム可能論理と前記専用デバイスとの間の１組のインターフェース入力／出力端子、
前記第一組の周辺入力／出力端子へ結合している第一組のＪＴＡＧレジスタ、
前記第二組の周辺入力／出力端子へ結合している第二組のＪＴＡＧレジスタ、
前記インターフェース入力／出力端子へ結合している第三組のＪＴＡＧレジスタ、
テスト信号を受取る入力端子と、セレクト端子と、前記第一組のＪＴＡＧレジスタへ結合している第一出力端子と、前記第三組のＪＴＡＧレジスタへ結合している第二出力端子とを具備しているデマルチプレクサ、
セレクト端子と、前記第一組のＪＴＡＧレジスタへ結合している第一入力端子と、前記第三組のＪＴＡＧレジスタへ結合している第二入力端子と、前記第二組のＪＴＡＧレジスタへ結合している出力端子とを具備しているマルチプレクサ、
を有している集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フィールドプログラマブルゲートアレイのようなプログラム可能論理と、ＡＳＩＣ型デバイス等の専用論理と、該プログラム可能デバイス及び専用デバイスの間の通信のためのインターフェースとを有する集積回路に関するものである。
【０００２】
【従来の技術】
半導体業界はより高いレベルの集積度を与える願望に駆り立たれている。より高いレベルの集積度の場合には、シリコンのスペース及びコストが減少され、一方性能及び信頼性が増加される。然しながら、より高いレベルの集積度はより大きな特定性に通ずる。例えば、応用特定集積回路（ＡＳＩＣ）は、しばしば、単に一人の顧客のニーズに役立つに過ぎない高度に特定的なデバイス即ち装置である。
【０００３】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラム可能な論理装置は多様性のある集積回路チップであり、それは、ユーザがユーザにとって特定的な機能を実現するために形態特定することが可能なユーザが選択した接続状態を具備する内部的回路論理を有している。プログラム可能論理は多様性のあるものであるが、大型で複雑な機能をプログラム可能論理を包含するシリコンプラットフォーム上にマッピングする場合に寸法、経路付け、ピンアウト安定性の上でかなりの設計上のチャレンジが存在している。
【０００４】
プログラム可能論理デバイスは別個の専用デバイスとリンクさせることが可能であるが、それと関連するオン／オフチップ遅延、大きな基板面積、及びコスト高等が存在している。更に、所望の機能を実施するためにプログラム可能論理をプログラミングすることが可能であるが、これは高価な提案であり、且つ結果的に得られる性能は、しばしば、許容可能なものではない。
【０００５】
【発明が解決しようとする課題】
従って、プログラム可能論理の柔軟性と専用デバイスの性能及び信頼性とを結合した単一の集積化した装置が必要とされている。
【０００６】
【課題を解決するための手段】
フィールドプログラマブルゲートアレイ等のプログラム可能論理と、ＡＳＩＣ型デバイス等の専用デバイスとを単一集積回路上にアンチヒューズを基礎としたインターフェースで一体的に結合させる。プログラム可能論理の技術を使用するコンフィギャラブル即ち形態特定可能な非揮発性メモリが専用デバイスに対するパラメータ設定又はその便利なオンチップのコンフィギュレーション（形態特定）を与える。１実施例においては、プログラム可能論理用のプラットフォームは既存のプログラム可能論理デバイスの半分であり、それはプログラム可能論理を構成する必要性を有益的に取除いている。専用デバイスは業界標準バスに対するバスインターフェース等の複雑であるがしばしば必要とされる機能を実現することが可能であり、一方プログラム可能回路はユーザがカスタム機能を実現することを可能とさせる。同一のチップ上に専用デバイスとプログラム可能論理の両方を配置させることは、回路間での高い処理能力を可能とさせるものであるが、その通信は集積回路チップ内部のものであるので、より多数のＩ／Ｏピンを必要とするものではない。
【０００７】
プログラム可能論理は、専用デバイス内のクロックネットワークからのみならず入力／出力端子からクロック信号を受取るクロックネットワークを包含することが可能である。従って、プログラム可能論理は専用回路とは独立的な周波数で動作することが可能である。プログラム可能論理用の入力／出力クロック端子は、通常、プログラム可能論理に最も近いチップの１つの側部上にあり、一方専用デバイス用の入力／出力クロック端子は専用デバイスに最も近いチップの反対側上にある。該クロックネットワークはクロック信号をプログラム可能論理及び専用デバイスの両方へ分配させる。
【０００８】
専用デバイスとプログラム可能論理との間のインターフェースは、バッファ及びテスト回路を具備する多数の導体を有している。該テスト回路はＰＭＯＳテストトランジスタとＮＭＯＳテストトランジスタとを有しており、それらのゲートはバッファの出力端子へ結合している。ＰＭＯＳテストトランジスタは電圧供給源と出力端子との間に結合されており、一方ＮＭＯＳテストトランジスタは接地供給源と異なる出力端子との間に結合されている。ＰＭＯＳテストトランジスタの出力端子はインバータの出力端子へ結合している。テストモード期間中、該インバータは電圧供給源へ結合される。ＰＭＯＳテストトランジスタは該インバータにおけるＮＭＯＳトランジスタよりも一層大型である。従って、ＰＭＯＳテストトランジスタがオフである場合には、該インバータは出力端子を低状態へ駆動するが、ＰＭＯＳテストトランジスタがオンである場合には、ＰＭＯＳテストトランジスタは該出力端子を高状態へ駆動する。ＮＭＯＳテストトランジスタの出力端子は、テスト動作期間中接地供給源へ結合される別のインバータの出力端子へ結合される。ＮＭＯＳテストトランジスタは該インバータにおけるＰＭＯＳトランジスタよりも一層大型である。該テスト回路は、該導体へ結合されているアンチヒューズをプログラミングすることなしに、該バッファのテストを有益的に行うことを可能とさせる。
【０００９】
本発明の別の実施例によれば、プログラム可能論理と専用デバイスとの間のインターフェースにおける及びその周辺部周りの入力／出力端子はＪＴＡＧレジスタを使用してテストされる。ＪＴＡＧレジスタを介してのテスト信号の経路は、プログラム可能論理及び専用デバイスの両方の周辺部周り、又は該インターフェースを介し且つ専用デバイスの周辺部周りを通過するように選択可能である。
【００１０】
【発明の実施の形態】
図１は本発明の１実施例に基づく集積回路１０の概略図である。集積回路１０はプログラム可能論理１２と専用論理１４とを有しており、その各々は外部回路との接続のためのＩ／Ｏピンを有している。インターフェース１６がプログラム可能論理１２を専用論理１４へ接続している。集積回路１０は、同一のシリコン片上に専用論理１４を「埋め込んだ」プログラム可能論理装置として、又は、その逆である、即ち「埋込型」プログラム可能論理１２を具備する専用デバイスとして考えることが可能である。プログラム可能論理１２は、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はユーザプログラム可能回路接続を具備するその他の回路であり、一方専用論理１４は所望の機能を実現する固定した回路である。例えば、専用論理１４は業界標準バスとのインターフェースを形成する等の機能を実施する応用特定回路とすることが可能である。
【００１１】
図１は、更に、プログラム可能リードオンリメモリ（ＰＲＯＭ）１８を示している。ＰＲＯＭ１８は、専用論理１４用のパラメータを形態特定又は設定するデータを格納し且つプログラム可能論理１２の技術を使用して実現することが可能である。一方、ＰＲＯＭ１８は同一の目的を達成する外部又は内部のＥＥＰＲＯＭで置換することが可能である。
【００１２】
有益的なことであるが、接続したプログラム可能論理１２及び専用論理１４を具備する集積回路１０は、ユーザに対して、例えばＦＰＧＡ等のプログラム可能論理において見出される形態特定可能性及び柔軟性のみならず、ＡＳＩＣ等の専用デバイスにおいて見出される保証された機能性、使用容易性、及び高性能を与える。
【００１３】
図２はプログラム可能論理１２及びインターフェース１６の一部の１実施例の１つの大きな簡単化した概略図を形成するためにどのようにして図２Ａ，２Ｂ１，２Ｂ２，２Ｂ３，２Ｃ，２Ｄ，２Ｅ，２Ｆ１，２Ｆ２，２Ｆ３，２Ｇ，２Ｈ，２Ｉ，２Ｊ１，２Ｊ２，２Ｊ３，２Ｋ，２Ｌ，２Ｍ，２Ｎ１，２Ｎ２，２Ｎ３，２Ｐ，２Ｑ，２Ｒ１，２Ｒ２，２Ｒ３，２Ｓ，２Ｔを結合させるかを示した概略図である。図２のボックスの各々は図２Ａ−２Ｔの表示した１つに対する文字を有している。例えば、左上ボックス内の「Ａ」は図２Ａを表している。図２から理解されるように、図２Ａの構成は右側が２Ｂと境界を形成しており且つ下側が図２Ｅの構成と境界を形成している。
【００１４】
図２は図２Ａと図２Ｃの構成の間に配設されている図２Ｂの２つの構成を示しており、且つ図２Ｂの２つの構成は合成図において図２Ｃと図２Ｄの構成の間に配設されており、図２Ｂの構成は、プログラム可能論理１２からより複雑な回路を形成するプログラミングを可能とするためにプログラム可能論理１２をより幅広のものとし且つゲート数を増加させるために３倍又はそれ以上のものとすることが可能である。更に理解すべきことであるが、図２Ｆ，２Ｇ，２Ｎ，２Ｒの対応する構成は同様に反復的なものである。同様に、図２Ｆの構成はプログラム可能論理１２の高さを増加させ且つプログラム可能論理１２から実現される回路のゲート数及び複雑性を増加させるために図２Ｂ及び２Ｊの構成の間に１回以上繰返すことが可能である。論理要素のモジュール及びプログラム可能相互接続の一部及びそのプログラミング構造（例えば２Ｆの構成）を包含する集積回路の繰返し部分はマクロセルと呼ばれる。図２のプログラム可能集積回路の種々の側面については以下に更に詳細に説明する。
【００１５】
図２Ａ−２Ｔに示したようなプログラム可能論理の動作は「アンチヒューズを使用したプログラム可能集積回路用のプログラム可能アーキテクチャ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ａ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｌｏｙｉｎｇ  Ａｎｔｉｆｕｓｅｓ）」という名称の米国特許第５，８２５，２０１号において記載されているものと同様であり、尚その特許を引用によって本明細書に取込む。
【００１６】
図２Ｑ−２Ｔはプログラム可能論理１２と専用論理１４との間のインターフェース１６の部分を示している（図１に示してある）。図２Ｒ１において理解することが可能であるように、プログラム可能論理１２と専用論理１４との間のインターフェースはバッファ２０及び「Ｘ」記号によって表わしたプログラム可能アンチヒューズ２２からなるアレイを有している。アンチヒューズ２２は、例えば、アモルファスシリコンアンチヒューズ又は例えば酸化物−窒化物−酸化物アンチヒューズ等のその他の適宜のアンチヒューズ構造とすることが可能である。例えば、「ＰＥＣＶＤアモルファスシリコン要素を具備した電気的にプログラム可能な相互接続構成体（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｔｒｕｃｔｕｒｅ  Ｈａｖｉｎｇ  ａ  ＰＥＣＶＤ  Ａｍｏｒｐｈｏｕｓ  Ｓｉｌｉｃｏｎ  Ｅｌｅｍｅｎｔ）」という名称の米国特許第５，５０２，３１５号、米国特許第５，４２４，６５５号、及び「プログラム可能相互接続構成体及びプログラム可能集積回路（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｔｒｕｃｔｕｒｅｓ  Ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）」という名称の米国特許第５，５５７，１３６号は幾つかの適切なアモルファスシリコンアンチヒューズ構造に関するものであるのでそれらを参照すると良く、尚それらの特許を引用によって本明細書に取込む。
【００１７】
図２Ｒ１は専用論理１４からの信号の入力及び出力用のバッファ２０を有するインターフェース１６の一部を示している。シリコンアンチヒューズ２２はこれらの信号のプログラム可能論理１２内へのプログラム可能なルーチング即ち経路付けを可能とする。アモルファスシリコンアンチヒューズの小さな寸法はプログラム可能要素２２をインターフェース１６内の経路付けラインの各交点に配置させることを可能とし、それによりインターフェース１６のプログラム可能論理１２において高レベルの経路付け可能性を提供している。
【００１８】
図２Ｒ１内にはＰＲＯＭ１８も示されており、それはバッファ２４及びプログラム可能アンチヒューズ２６からなるアレイを有している。各バッファに結合されて２個のアンチヒューズが存在している。一方のアンチヒューズはバッファを高電圧へ接続するためにプログラムされ且つ他方のアンチヒューズはバッファを低電圧へ接続するためにプログラムされる。当業者にとって良く理解されるように、アンチヒューズがプログラムされると、それはプログラム状態を解除することは不可能である。従って、プログラム可能アンチヒューズ２６からなるアレイは非揮発性の形態特定可能なメモリを提供している。
【００１９】
集積回路１０の専用論理１４は例えばペリフェラルコンポーネントインターコネクト（ＰＣＩ）インターフェースを実現する等の任意の所望の機能を実現することが可能である。一方、専用論理１４はそうでなければ複数個の別個のデバイス上で実現される可能性のある多様な関連した又は代替的な機能を実現することが可能である。
【００２０】
図３は本発明の別の実施例に基づく集積回路３０の概略図である。集積回路３０は専用論理と、プログラム可能論理１２と、インターフェース１６と、ＰＲＯＭ１８とを有している。然しながら、集積回路３０においては、専用論理は多数の専用デバイス３４，３６，３８を有している。インターフェース１６又はプログラム可能論理内のプログラム可能要素を適切にプログラミング即ち書込むことによって、所望の専用デバイス３４，３６，３８の１個またはそれ以上を活性化させることが可能である。例えば、プログラム可能アンチヒューズ２２からなるプログラミングアレイ（図２Ｒ１に示してある）は１個の専用デバイスをプログラム可能論理１２内のマクロセルへ接続させることが可能である。従って、埋込型回路３０は一片のシリコン上にあるが、３個の異なる機能が独立的に動作可能である。従って、３個の別々の回路を製造することは必要ではない。この実施例においては、Ｉ／Ｏピンが不使用のデバイス上で無駄になることがないように、プログラム可能論理１２を介して全ての入力／出力を経路付けすることが望ましい場合がある。一方、揮発性メモリ又はＥＥＰＲＯＭが集積回路３０を形態特定し且つ専用デバイスのうちのどれがアクティブ即ち活性状態であるかを動的に選択することが可能である。
【００２１】
専用デバイス３４，３６，３８は別々のデバイスとして示してあるが、デバイス３４，３６，３８は部分的に又は完全にオーバーラップすることが可能であることを理解すべきである。インターフェース１６のデバイス３４，３６，３８へのプログラム可能な接続は特定の専用のデバイス３４，３６又は３８が活性化されることを制御する。
【００２２】
図４はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）５０の簡単化した概略図である。図４に示したように、ＦＰＧＡ５０は２つの半割り部分５２及び５４を有しており、各半割り部分は論理アレイ５６と入力／出力回路５８とを包含している。クロック回路６０が論理アレイ５６の間にあり且つ２つの半割り部分５２及び５４へクロック信号を分配する。ＦＰＧＡ５０は完全に実現可能な回路であり、例えば、半割り部分５２は図２Ａ−２Ｐに示した構成を有しており、且つ他の半割り部分５４は半割り部分５２の鏡像である。
【００２３】
集積回路１０（図１）を発生するためには、ＦＰＧＡ５０の半割り部分５２がプログラム可能論理１２を形成し、且つ専用論理１４が他方の半割り部分５４を置換する。該専用論理を該プログラム可能論理へ接続するために図２Ｑ乃至２Ｔに例示したプログラム可能インターフェースを付加する。従って、インターフェース１６を付加した存立し得るＦＰＧＡ５０の半割り部分は集積回路１０を発生するためのプラットフォームを与える。集積回路１０に対するプラットフォームとして既存のプログラム可能論理装置の構造又はレイアウトの全て又は一部を使用することによって、新たなプログラム可能論理を設計するための必要性が開示される。更に、同一のプラットフォームが多様な異なる専用デバイスを受付けることが可能である。例えば、同一のプラットフォームはＰＣＩバスインターフェース回路を包含する場合があり、その場合には、プログラム可能論理はＰＣＩデバイスにおける他のＩＣに対するユーザがプログラム可能なインターフェースを形成し、又、該プラットフォームはプロセッサを包含する場合があり、その場合には該プログラム可能論理は該プロセッサに対するユーザがプログラム可能なインターフェースを提供する。更に、異なるデバイスにおいて共通のプログラム可能論理を有することは、該プログラム可能論理をユーザの必要性に対して形態特定するプログラミングツールを形成する作業を簡単化させる。
【００２４】
図５はプログラム可能論理１２及び専用論理１４における複数個のマクロセル７０ａ，７０ｂ，７０ｃ，７０ｄ，７０ｅ，７０ｆの間のインターフェースを示している。専用論理１４及びプログラム可能論理１２又はＰＲＯＭ１８の間の信号を転送するための経路付けラインは全てのマクロセルの間に均等に分布されている。然しながら、マクロセル７０ａ−７０ｆにおける経路付けラインの接続は実現されるべき論理に従うものである。例えば、集積回路１０はプログラム可能論理１２から専用論理１４へ２６４ビットを有しており、専用論理１４からプログラム可能論理１２へ２６４ビットを有しており且つＰＲＯＭ１８から専用論理１４へ５２８ビットを有している。上述したように、各マクロセルに対するインターフェースはプログラム可能なアンチヒューズ２２からなるアレイを具備する多数の経路付け資源を包含しているので、各マクロセルに対するインターフェースは高いレベルの経路付け可能性を有している。
【００２５】
図６はプログラム可能論理１２と専用論理１４との間のクロックインターフェース８０の概略図である。クロックインターフェース８０はプログラム可能論理１２全体にわたって経路付けされる多数の経路付け資源８２を包含している。クロック信号を受取るパッド８４ａ，８４ｂ，８４ｃ，８４ｄ，８４ｅ，８４ｆ，８４ｇは経路付け資源８２へ結合されている。これらのパッドのうちの幾つか、例えばパッド８４ｅ−ｇは他のパッド、例えばパッド８４ａ−ｄから該回路の反対側に配設することが可能である。従って、パッド８４ｅ−ｇからの導体は専用論理１４を介して経路付け資源８２に対して経路付けされる。
【００２６】
パッド８６は専用論理１４を駆動するクロック信号ＤＣＬＫを受取り、従って、専用論理１４内部の経路付け資源８８へ結合されている。プログラム可能論理１２が専用論理１４を駆動するクロック信号を受取り、従ってプログラム可能論理１２及び専用論理１４の両方が同一のタイミングで駆動されることが望ましい。従って、パッド８６もバッファ９０を介して経路付け資源８２のうちの少なくとも１つへ結合されている。専用論理１４がプログラム可能論理１２を駆動するクロック信号を受取ることも望ましい。従って、パッド８４ａ−ｇのうちの少なくとも１つ、例えばパッド８４ｄがバッファ９４を介して専用論理１４内部の経路付け資源９２へ結合されている。本発明の１実施例においては、クロック信号用のライン及びＩ／Ｏパッドはその目的のために専用であり且つデータ信号用のライン及びＩ／Ｏパッドとは別である。然しながら、所望により付加的なバッファ及び経路付け資源を使用することが可能である。クロックインターフェース８０のより詳細な構成は、例えば、図２ｏに示してある。
【００２７】
本発明の別の側面によれば、インターフェース１６はプログラム可能論理１２のプログラミングを行う前に、プログラム可能論理１２、専用論理１４、インターフェース１６のテストを行うことを可能とするテスト回路を有している。図７はインターフェース１６におけるバッファをテストするための回路を例示した概略図である。図７においてはバッファ１００［０］乃至１００［ｎ−１］が示されており、それは、通常モード期間中に、プログラム可能論理１２からの信号ＰＬｏｕｔ［０］乃至ＰＬｏｕｔ［ｎ−１］を受取り且つ専用論理１２に対して信号ＤＬｉｎ［０］乃至ＤＬｉｎ［ｎ−１］を発生する。各バッファ１００ [ｉ]は、ｉが０乃至ｎ−１として、ＮＡＮＤゲート１０２［ｉ］及びインバータ１０４［ｉ］を有している。各ＮＡＮＤゲート１０２［ｉ］の一方の入力端子はプログラム可能論理からの対応する信号ＰＬｏｕｔ［０］を受取る。各ＮＡＮＤ１０２［０］乃至１０２ [ｎ−１]の他方の入力端子はマルチプレクサ１０３［０］乃至１０３［ｎ−１］の対応する１つからの出力信号を受取る。
【００２８】
マルチプレクサ１０３［０］乃至１０３［ｎ−１］へのセレクト信号は、バッファ１００［０］乃至１００［ｎ−１］が通常モードで動作するか又はテストモードで動作するかを制御する。通常モードにおいては、セレクト信号はマルチプレクサ１０３［０］乃至１０３［ｎ−１］をしてイネーブル信号ＥＮ［０］乃至ＥＮ［ｎ−１］をＮＡＮＤゲート１０２［０］乃至１０２［ｎ−１］の夫々の第二入力端子へ印加させる。イネーブル信号ＥＮ［０］乃至ＥＮ［ｎ−１］の各々は通常モード動作期間中にバッファ１００［０］乃至１００［ｎ−１］の対応する１つをイネーブル (ディスエーブル)させるために高 (低)である。
【００２９】
テストモードにおいては、セレクト信号はマルチプレクサ１０３［０］乃至１０３［ｎ−１］をしてレジスタ１０５［０］乃至１０５［ｎ−１］から出力される夫々のテスト信号Ｔ［０］乃至Ｔ［ｎ−１］をＮＡＮＤゲート１０２［０］乃至１０２［ｎ−１］の夫々の第二入力端子へ印加させる。レジスタ１０５［０］乃至１０５［ｎ−１］がチェーン状に接続されており、ｉが０乃至ｎ−２として、レジスタ１０５［ｉ］の出力端子はレジスタ１０５［ｉ＋１］の入力端子へ接続している。クロック信号Ｃｌｋは、入力テスト信号Ｔｉｎの値のレジスタ１０５［０］内へのラッチング及び該値のレジスタのチェーン１０５［０］乃至１０５［ｎ−１］を介しての伝播を制御する。
【００３０】
テスト回路１０１はＰＭＯＳトランジスタ１０６［０］乃至１０６［ｎ−１］及びＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］を有しており、ゲートを関連するバッファ１００［０］乃至１００［ｎ−１］の出力端子へ結合している。図７に示したように、ＰＭＯＳトランジスタ１０６［０］乃至１０６［ｎ−１］の各々は供給電圧Ｖｃｃとテストライン２０１との間であり、且つＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］の各々は接地とテストライン２０５との間である。低電流プルダウン装置２０２が、ＰＭＯＳトランジスタ２０６のいずれもがオンでない場合には、ライン２０１上のテスト信号ＯＵＴＰを低電圧に維持する。出力バッファ１００［０］乃至１００［ｎ−１］のうちのいずれかが高出力信号を有している場合には、テストライン２０１へ結合されているＰＭＯＳトランジスタ１０６［０］乃至１０６［ｎ−１］のうちの１つ又はそれ以上がテスト信号ＯＵＴＰを高 (Ｖｃｃ)へプルする。同様に、ＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］の全てがオフである場合には、低電流プルアップ装置２０６はテスト信号ＯＵＴＮをライン２０５上において高に維持し、且つバッファ１００［０］乃至１００［ｉ］のうちのいずれかが低出力信号を有している場合には、１個又はそれ以上のＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］がテスト信号ＯＵＴＮを低へプルする。
【００３１】
バッファ１００［０］乃至１００［ｎ−１］をテストするために、セレクト信号Ｓｅｌがマルチプレクサ１０３［０］乃至１０３［ｎ−１］をして信号Ｔ［０］乃至Ｔ［ｎ−１］をＮＡＮＤ１０２［０］乃至１０２［ｎ−１］へ経路付けさせる。ＮＡＮＤゲート１０２［０］乃至１０２［ｎ−１］の他方の入力端子への信号ＰＬｏｕｔ［０］乃至ＰＬｏｕｔ［ｎ−１］はプログラミングされていないプログラム可能論理１２から高である。引用によって本明細書に取込む「アンチヒューズのプログラミング (Ｐｒｏｇｒａｍｍｉｎｇ  ｏｆ  Ａｎｔｉｆｕｓｅｓ)」という名称の米国特許第５，３０２，５４６号は、ＦＰＧＡがプログラミングされていない場合に高である出力信号を有するＦＰＧＡを記載している。従って、テスト信号Ｔ［０］乃至Ｔ［ｎ−１］の電圧状態がバッファ１００［０］乃至１００［ｎ−１］からの出力信号を制御する。いずれかのＮＡＮＤゲート１０２［ｉ］へ印加されるデータ信号Ｔ［ｉ］が高である場合には、対応するインバータ１０４［ｉ］は高信号を発生し、それはＮＭＯＳテストトランジスタ１０８［ｉ］をターンオンさせ且つＰＭＯＳテストトランジスタ１０６［ｉ］をターンオフさせる。ＮＭＯＳトランジスタ１０８［ｉ］は、オンである場合には、信号ＯＵＴＮをプルダウンさせる。一方、データ信号Ｔ［ｉ］が低である場合には、インバータ１０４［ｉ］は低信号を発生し、それはＮＭＯＳテストトランジスタ１０８［ｉ］をターンオフさせ且つＰＭＯＳテストトランジスタ１０６［ｉ］をターンオンさせる。ＰＭＯＳトランジスタ１０６［ｉ］は、オンである場合には、信号ＯＵＴＰをプルアップさせる。
【００３２】
インバータ２０４及び２０８は、テストバス２０１及び２０５上の信号ＯＵＴＰ及びＯＵＴＮの状態を表わす出力信号ＴＯＵＴ１及びＴＯＵＴ２を発生する。テストプロセスが入力テスト信号ＴＩｎに１組の値を与え且つ出力テスト信号ＴＯＵＴ１及びＴＯＵＴ２の結果的に得られる状態を観察してバッファ１００［０］乃至１００［ｎ−１］の動作をテストする。例えば、テスト信号Ｔｉｎが低に止まり、従ってテスト信号Ｔ［０］乃至Ｔ［ｎ−１］の全てが低である場合には、適切に動作するバッファ１００［０］乃至１００［ｎ−１］が全てのＰＭＯＳトランジスタ１０６［０］乃至１０６［ｎ−１］をターンオンさせ且つ全てのＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］をターンオフさせる。この場合においては、信号ＯＵＴＰ及びＯＵＴＮは高であり、且つインバータ２０４及び２０８からの信号ＴＯＵＴ１及びＴＯＵＴ２は両方とも低である。然しながら、バッファ１００［０］乃至１００［ｎ−１］のうちのいずれかが機能障害を起こしており、従って出力信号ＤＬｉｎ［０］乃至ＤＬｉｎ［ｎ−１］のうちの１つ又はそれ以上が低である場合には、ＮＭＯＳトランジスタ１０８［０］乃至１０８［ｎ−１］のうちの１つ又はそれ以上が信号ＯＵＴＮを低へプルし、且つテスト信号ＴＯＵＴ２は高であって、欠陥性のバッファを表わす。
【００３３】
信号Ｔ［０］乃至Ｔ［ｎ−１］の全てが低である間に単一のクロックサイクルに対して信号ＴＩｎを高へ上昇させると、レジスタ１０５［０］から１０５［ｎ−１］へ信号Ｔ［０］乃至Ｔ［ｎ−１］を介して伝播する高電圧状態をスタートさせる。高である信号Ｔ［ｉ］は対応するトランジスタ１０６［ｉ］をターンオフさせ且つ対応するトランジスタ１０８［ｉ］をターンオンさせる。従って、高状態がレジスタ１０５［０］乃至１０５［ｎ−１］を介して伝播している全時間中トランジスタ１０８［０］乃至１０８［ｎ−１］のうちの少なくとも１つがオンであるべきであるので、テスト出力信号ＴＯＵＴ２は高に止まるべきである。信号ＴＩｎを上昇させた後のいずれかのクロックサイクルｉ期間中にテスト出力信号が低へ降下すると、バッファ１００［ｉ］は機能障害を起こしており、信号Ｔ［ｉ］が高である場合に出力信号ＤＬｉｎ［ｉ］を高状態へ上昇させることはない。この機能障害を起こしているバッファは、信号ＴＯＵＴ２の状態が変化する時から識別することが可能である。
【００３４】
信号ＴＩｎに対する同様のテストパターンは、１つのクロックサイクルに対して、信号Ｔ［０］乃至Ｔ［ｎ−１］の全てを高状態へ上昇させ且つ信号ＴＩｎの電圧状態を低へ降下させることが可能である。そのテストパターンを使用することも可能である。このように、個別的な欠陥性バッファを識別することが可能である。説明したテストは、プログラム可能論理のプログラム可能要素をプログラミングすることなしに、インターフェースバッファ１００［０］乃至１００［ｎ−１］を効果的にテストすることを可能とする。
【００３５】
図７に示したものと同様のテスト回路を、専用論理からプログラム可能論理へ信号を運ぶバッファをテストするために使用することも可能である。更に、テストを行うために、２種類のバッファを同一のスキャンチェーン又は別個のスキャンチェーンにおいて接続することが可能である。図８は、プログラム可能論理１２からの信号ＦＰＧＡｉｎを受取り且つ専用論理１４へ信号ＰＣＩｏｕｔを発生するインターフェースバッファ回路１００及び専用論理１４からの信号ＰＣＩｉｎを受取り且つプログラム可能論理１２へ信号ＦＰＧＡｏｕｔを発生するインターフェースバッファ１１０を示した概略図である。インターフェースバッファ回路１００は入力マルチプレクサ１０３、ＮＡＮＤゲート１０２、インバータ１０４、同様な番号を付けた要素に対して上に説明した態様でトランジスタ１０６及び１０８を有している。図８の信号ｃｏｎ０ｂ及びＤａｔａｉｎは図７における信号ＥＮ［ｉ］及びＴ［ｉ］に対応している。
【００３６】
インターフェースバッファ回路１１０は、入力マルチプレクサ１１２、第一インバータ１１４、第二インバータ１１５、ＰＭＯＳトランジスタ１１６、ＮＭＯＳトランジスタ１１８を有している。インターフェースバッファ回路１１０はイネーブル信号ｃｏｎ５及びｃｏｎ９を有しているという点において、インターフェースバッファ回路１００とは異なっている。イネーブル信号がこのような態様で接続されると、ＮＡＮＤゲート１０２はインバータ１１４で置換され、且つマルチプレクサ１１２は、出力信号ＦＰＧＡｏｕｔを発生するために、専用論理１４からの信号ＰＣＩｉｎか又はテスト信号Ｄａｔａｉｎのいずれかを選択することが可能である。ＰＭＯＳトランジスタ１１６及びＮＭＯＳトランジスタ１１８は出力信号ＦＰＧＡｏｕｔを受取るべくゲートを結合させており、且つ信号ＦＰＧＡｏｕｔの状態に従って、夫々の信号ｉｎｐ及びｉｎｎを夫々プルアップ及びプルダウンさせる。信号ｉｎｎ及びｉｎｐは１組のバッファ１１０に対するテストバス上にある。
【００３７】
図９はＰＲＯＭ１８と専用論理１４との間において使用するインターフェースバッファ回路１２０を示している。インターフェースバッファ１２０は、マルチプレクサ１２３、ＮＡＮＤゲート１２２、インバータ１２４、ＰＭＯＳトランジスタ１２６、ＮＭＯＳトランジスタ１２８を有しており、それらは、実質的に、図８の対応する要素１０３，１０２，１０４，１０６，１０８と同一である。インターフェースバッファ回路１２０は、入力及び出力信号ＰＣＩＲＯＭｉｎ及びＰＣＩＲＯＭｏｕｔ及びテスト信号ＲＯＭｎ及びＲＯＭｐにおいてインターフェースバッファ回路１００と異なっている。信号ＰＣＩＲＯＭｉｎはＰＲＯＭ１８からのデータビットを表わしている。信号ＰＣＩＲＯＭｏｕｔは専用論理１４へ通過するデータビットを表わしている。テスト信号ＲＯＭｎ及びＲＯＭｐは、テスト信号ｏｕｔｎ及びｏｕｔｐが１組のインターフェースバッファ１００をテストするのと同一の態様で１組のインターフェースバッファ１２０をテストするための別々のテストバス (不図示)上の信号である。
【００３８】
図１０は１組のインターフェースバッファ１１０におけるテスト用トランジスタ１１６及び１１８へ結合されている検知回路２１０の概略図である。検知回路２１０は上述したプルダウン２０２、プルアップ２０６、インバータ２０４、インバータ２０８の結合と同一の機能を行う。インターフェースバッファ１２０におけるテスト用トランジスタ１２６及び１２８は同様の検知回路へ結合することが可能である。検知回路２１０への信号ｉｎｐ及びｉｎｎは、夫々、トランジスタ１１６及び１１８の導電度に従ったレベルを有している。検知回路２１０は、又、テスト期間中に高であるテスト信号を端子ＰＣＩｔｓｔにおいて受取る。テスト信号ＰＣＩｔｓｔはマルチプレクサ２１２及び２１４のセレクト端子へ印加され、且つ、インバータ２１６及び２２０によって受取られる。信号ＰＣＩｔｓｔが高である場合には、インバータ２１６及び２１８の結合が信号ｉｎｎを担持するバスをプルアップするための低電流駆動信号を供給し、且つインバータ２２０は信号ｉｎｐを担持するバスをプルダウンするための低電流駆動信号を供給する。
【００３９】
信号ｇｃｎｒ及びｇｃｎｄは、その他のテストバス (不図示)からの信号ｉｎｎ及びｉｎｐと同様のテスト信号である。インバータ２１３は信号ｇｃｎｄを担持するテストバスに対する低電流バイアスデバイスを提供している。インバータ２１５及び２１７は、信号ｇｃｎｒを担持するテストバスをバイアスするための低電流バイアスデバイスを提供しており、且つ信号ｇｃｋｃｈｋは、該バイアス用デバイスが信号ｇｃｎｄ及びｇｃｎｒ用のテストバスをプルアップするか又はプルダウンするかを決定する。マルチプレクサ２１２及び２１４は、テスト信号ｇｃｎｒ，ｉｎｎ，ｇｃｎｄ，ｉｎｐのいずれがインバータ２２４及び２２２へ印加されて集積回路のＩ／Ｏパッドにおいて出力信号ｐａｄｎｒ及びｐａｄｎｄを発生するかを選択する。
【００４０】
図１１はインターフェースセル１３０の相互接続を示した概略図であり、各インターフェースセルはインターフェースバッファタイプ１００，１１０，１２０及び関連するテスト構造を有している。図１１は２個のインターフェースセル１３０［ｉ］及び１３０［ｉ＋１］のみを示しているに過ぎないが、実際のデバイスにおいては多数のセルを直列に結合させることが可能である。例えば、１実施例においては、一体的に結合されるインターフェースバッファの２６４個のセルが存在している。更に、各印セルは同数のインターフェースバッファ１００，１１０，１２０を有することは必要ではない。例えば、１実施例においては、各インターフェースセルは６個のインターフェースバッファ１００と、６個のインターフェースバッファ１１０と、１２個のインターフェースバッファ１２０を有している。
【００４１】
各インターフェースセル１３０［ｉ］において、データレジスタ１０５［ｉ］はテストデータ信号Ｔ［ｉ］をセル１３０内のインターフェースバッファへ供給する。データレジスタ１０５［ｉ］は前のセル (不図示)から、又はセル１３０［ｉ］がそのシリーズにおける最初のセルである場合には入力／出力端子からテスト信号Ｔ［ｉ−１］を受取る。データレジスタ１０５の出力端子は、インターフェースセル１３０［ｉ］における各バッファ１００，１１０，１２０に対して、且つ次のインターフェースセル１３０［ｉ＋１］内における別のデータレジスタ１０５［ｉ＋１］へテスト信号Ｔ［ｉ］を供給する。従って、インターフェースバッファ１００，１１０，１２０の全てのテストを行うために、図７を参照して詳細に説明したのと同一の入力テスト信号ＴＩｎを使用することが可能である。
【００４２】
各セル内のレジスタはテスト信号Ｔ［ｉ］を供給し且つテストバス信号はテスト用トランジスタからのものであるので、テストのために経路付け構造１３２をプログラムすることは必要ではない。従って、インターフェースバッファは経路付け資源のプログラム可能性に影響を与えることなしにテストすることが可能である。
【００４３】
図１２は本発明の別の側面に基づくＪＴＡＧ回路を有する集積回路２５０の概略図である。当該技術分野において公知の如く、ＪＴＡＧレジスタは、集積回路の端子又はパッドにおける入力／出力をテストするために使用される。然しながら、図１２に示したように、ＪＴＡＧブロック２５２及び２５４は、集積回路２５０のＩ／Ｏにおいて (図１２におけるＩＣ２５０の周辺上)及び専用論理１４とプログラム可能論理１２との間のインターフェースにおいて使用することが可能である。図１２において、デマルチプレクサ２５６及びマルチプレクサ２５８は、ＪＴＡＧテスト用のテスト信号を、チップ全体の周辺周りか又は専用論理周りのいずれかに指向させる。
【００４４】
図１３はＩＥＥＥ標準に準拠し且つＪＴＡＧブロック２５２又は２５４にとって適したＪＴＡＧレジスタに対するコンフィギュレーション (形態特定)を示している。各ＪＴＡＧブロックはノード２５５と関連しており、それはそのチップに対するＩ／Ｏパッドであるか、又はプログラム可能論理１２と専用論理１４との間のインターフェース１６における端子のいずれかとすることが可能である。プログラム可能論理１２と専用論理１４との間のインターフェースにおいて入力／出力バッファが存在しているので、これらの入力／出力バッファは該回路の周辺におけるパッドと関連している入力／出力バッファと共にテストすることが可能である。従って、多数のＪＴＡＧブロック２５２が従来の態様でＩ／Ｏパッドにおいて該回路の周辺周りに配置されている。第二組のＪＴＡＧレジスタ２５４がインターフェース１６に沿ってバッファと関連している。
【００４５】
図１２に示したように、テスト信号を受取るデマルチプレクサ２５６は２個の出力端子を有している。該出力端子のうちの１つは周辺部周りのＪＴＡＧレジスタ２５２のうちの最初のものへ結合しており、一方２番目の出力端子はインターフェース１６におけるＪＴＡＧレジスタ２５４のうちの最初のものへ結合している。セレクト入力端子がどのＪＴＡＧレジスタ２５２又は２５４がテスト信号を受取るかを決定する。デマルチプレクサ２５６は説明の便宜上集積回路１０から離れたものとして示してあるが、デマルチプレクサ２５６は、通常、集積回路２５０の一部であることを理解すべきである。
【００４６】
マルチプレクサ２５８は、インターフェース１６に沿った最後のＪＴＡＧレジスタ２５４へ結合している１個の入力端子と、プログラム可能論理１２の周辺上にある最後のＪＴＡＧレジスタ２５２へ結合している別の入力端子とを有している。マルチプレクサ２５８の出力端子は専用論理１４の周辺に沿っての最初のＪＴＡＧレジスタ２５２へ結合している。マルチプレクサ２５８のセレクト入力端子はデマルチプレクサ２５６のセレクト入力端子へ結合している。最後のＪＴＡＧブロック２５３は出力テスト信号ＯＵＴ用の出力端子へ結合している。
【００４７】
チップ２５０の周辺上のＩ／Ｏをテストするために、ＪＴＡＧ回路はデマルチプレクサ２５６を介してテスト信号を受取る。デマルチプレクサ２５６は周辺に沿ってのＪＴＡＧレジスタ２５２へテスト信号を供給する。ＪＴＡＧブロック２５２は、マルチプレクサ２５８がテスト信号を受取るまで、従来通りに１個のＪＴＡＧブロック２５２から次のＪＴＡＧブロック２５２へ該信号を通過させる。マルチプレクサ２５８はインターフェース１６を横断してテスト信号を通過させるべく制御される。従って、該テスト信号は、ＪＴＡＧブロック２５３がテスト信号を出力するまで、１個のＪＴＡＧブロック２５２から次のものへ継続して通過する。
【００４８】
一方、専用論理２５４周りのＪＴＡＧテストの場合には、デマルチプレクサ２５６はインターフェース１６に沿ってＪＴＡＧブロック２５４へテスト信号を供給する。ＪＴＡＧブロック２５４は、従来の如く、マルチプレクサ２５８がテスト信号を受取るまで、１個のＪＴＡＧブロック２５４から次のものへテスト信号を通過させる。この場合には、マルチプレクサ２５８は専用論理１４の周辺部に沿って、最後のＪＴＡＧブロック２５４からＪＴＡＧブロック２５２へテスト信号を通過させる。ＪＴＡＧレジスタ２５３がテスト信号を受取り且つ出力するまで、該テスト信号は１個のＪＴＡＧブロック２５４から次のものへ通過する。
【００４９】
デマルチプレクサ２５６及びマルチプレクサ２５８の代わりに異なる経路付け回路を使用してＪＴＡＧテスト信号の別の経路付けを行うことも可能である。例えば、テスト信号は、インターフェース１６におけるＪＴＡＧブロック２５４を介して、次いで、プログラム可能論理１２の周辺部周り又はチップ２５０全体の周りに経路付けさせることが可能である。
【００５０】
図１４Ａは専用論理１４とプログラム可能論理１２との間の境界に沿ってのテストスキャンを使用した別の実施例を例示している。図１４Ａの実施例においては、一連のスキャンセル２６１乃至２６５が専用論理１４とプログラム可能論理１２との間の境界にある。スキャンセル２６１及び２６２はインターフェース１６におけるバッファ１００から信号を受取る。該信号はプログラム可能論理１２における論理２８０を介して通過することが可能であるが、プログラム可能論理１２において支配的に使用されるクロック信号ＰＣＬＫと同期される。クロックツリー２９４を介して信号ＰＣＬＫを受取るフリップフロップ２９０及び２９２は該信号の同期を例示している。通常動作モード期間中、スキャンセル２６１及び２６２はバッファ１００からの信号を専用論理１４における論理２６０へ通過させる。テストモードにおけるこれらスキャンセルの動作については図１５を参照して以下に説明する。
【００５１】
プログラム可能論理１２からのクロック信号ＰＣＬＫはバッファ１００を介して専用論理１４へ通過し、且つクロックツリー２７２が信号ＰＣＬＫに対する同期を必要とする信号に対して専用論理１４を介してクロック信号ＰＣＬＫを分布させる。このような１つの信号はフリップフロップ２７１からのものである。スキャンセル２６３がその信号を受取り、且つ通常動作期間中、その信号をインターフェース１６におけるバッファ１１０へ通過させる。そこから、該信号はプログラム可能論理１２における論理２８０へ入る。
【００５２】
専用論理１４はクロックツリー２７６を介して分布されたクロック信号ＤＣＬＫを支配的に使用する。例示したように、専用論理１４における論理２７３はフリップフロップ２７４が信号ＤＣＬＫと同期させる信号を発生することが可能である。通常動作期間中、スキャンセル２６５はフリップフロップ２７４からの信号をインターフェース１６内のバッファ１１０へ通過させ、且つバッファ１１０はその信号をプログラム可能論理１２内の論理２８６へ通過させる。
【００５３】
クロック信号ＤＣＬＫは、又、信号ＰＣＬＫとの同期を必要とする信号に対して、バッファ１１０を介しプログラム可能論理１２へ通過させることが可能である。図１４Ａにおいてフリップフロップ２９６は、論理２８４及びバッファ１００を介してスキャンセル２６４へ通過する信号ＰＣＬＫと同期した信号を発生する。
【００５４】
図１４Ｂはスキャンセル２６１の例示的実施例を示している。スキャンセル２６１は入力マルチプレクサ２６６、フリップフロップ２６７及び２６８、出力マルチプレクサ２６９を有している。テスト期間中、初期的に、入力マルチプレクサ２６６が論理２８０に依存する値を有する入力信号ＰＩを選択する。フリップフロップ２６７がスキャンクロック信号ＳＣＬＫに応答してマルチプレクサ２６６からの出力信号をレジスタし且つその値をスキャン出力信号ＳＯに対して出力する。フリップフロップ２６８はクロック信号ＵＣＬＫに応答して信号ＳＯの値をレジスタし且つその値をマルチプレクサ２６９へ出力する。マルチプレクサはテスト期間中フリップフロップ２６８からの信号を選択する。テストの場合には、ＩＣに対する入力信号の全てが既知であり従って信号ＰＩに対する適切な値は既知である。信号ＰＩの値は初期的にフリップフロップ２６７及び２６８内に記録される。
【００５５】
スキャンセル２６１乃至２６７は互いに接続されており、従って１個のスキャンセルからのスキャン出力信号ＳＯは次のスキャンセルに対するスキャン入力信号ＳＩである。フリップフロップ２６７におけるスキャン値を読み出すために、スキャンクロック信号がトグルされ、従って一方のスキャンセルにおけるレジスタ２６７からの値が次のセル内のレジスタ２６７内に記録される。クロック信号ＵＣＬＫはこの時間期間中トグル動作されることはなく、従ってフリップフロップ２６８及びマルチプレクサ２６９からの出力は一定状態に止まる。スキャンセルの最後のものからの出力はＩ／Ｏパッドへ接続させることが可能であり、従ってスキャンセルからの二進値はスキャンクロックの周波数において１つづつ検査することが可能である。
【００５６】
通常動作期間中、出力マルチプレクサ２６９は入力信号ＰＩを受取り且つ出力信号として選択する。従って、入力信号ＰＩは非常に僅かな遅延でもってスキャンセル２６１を介して通過する。
【００５７】
図１５Ａは集積回路１０及びパワー経路付け構造３００におけるプログラム可能論理１２及び専用論理１４の概略図を示している。図１５Ａから理解されるように、プログラム可能論理１２及び専用論理１４用の経路付け構造は必ずしも同一の幅即ちピッチを有するものではない。特に、プログラム可能論理１２に対するＩ／Ｏバッファ及び回路は専用論理１４に対するＩ／Ｏバッファ及び回路とは異なる場合がある。インターフェースにおけるパワーバス３０２がパワー経路付け構造を一体的に結合している。
【００５８】
図１５Ｂはパワーバス３０２のより詳細な図を示している。図１５Ｂから理解されるように、プログラム可能論理１２の側に多数の導体が存在しており、且つ異なる数の導体が専用デバイス１４の側に存在している。１例として、プログラム可能論理１２上の導体３０４，３０５，３０６，３０７は、夫々、接地、３Ｖ、第二接地、５Ｖである。専用論理１４上の導体３１０，３１１，３１２，３１３，３１４，３１５は、夫々、接地、５Ｖ、第二接地、３Ｖ、第三接地、第二３Ｖである。パワーバス３０２はプログラム可能論理１２の導体を専用論理１４の適宜の導体と結合している。従って、例えば、パワーバスは導体３０４を導体３１２及び３１４の両方へ結合しており、導体３０５は導体３１１へ結合しており、導体３０６は導体３１３及び３１５へ結合しており、且つ導体３０７は導体３１０へ結合している。従って、プログラム可能論理１２及び専用論理１４の両方へパワーを供給するために単一の組の入力／出力端子を使用することが可能である。
【００５９】
本発明の例示的な実施例においては、専用論理１４がＰＣＩインターフェース及び関連する回路ブロックを有しており、且つプログラム可能論理１２がＦＰＧＡを有している。該例示的な実施例の１つの特定な例はクイックロジック、インコーポレイテッドから直に入手可能なＱＬ５０６４である。この特許出願の出願時においてクイックロジックから入手可能なＱＬ５０６４予備的データシート及びＱＬ５０６４ユーザーズマニアル、改定０．９８は、ＱＬ５０６４について記載しておりその全体を引用によって本明細書に取込む。この実施例においては、プログラム可能論理１２はユーザがユーザの回路に対して必要に応じてプログラムすることが可能な柔軟性のあるバックエンドインターフェースを提供する。従って、ユーザは、ユーザのデバイスにとって必ずしも最適なものでない例えばパワーＰＣインターフェース等の固定されたインターフェースを使用することに制限されるものではない。然しながら、該専用回路はＰＣＩインターフェースを形成する一般的であるが複雑な機能を実現し、ＰＣＩインターフェースを形成せんとする負担をユーザから解放する。
【００６０】
図１６は本発明の例示的実施例に基づく集積回路４１０を包含するシステムのブロック図である。この例示的実施例においては、専用論理はＰＣＩコア４１４であり、且つプログラム可能論理はＦＰＧＡである。図１６のシステムは、ホストコンピュータのＰＣＩバス３５へ取付けられるデバイスである。ＩＣ４１０のＰＣＩコア４１４がＰＣＩバス３５０へ結合し、且つＦＰＧＡ４１２はユーザ回路４２０へ結合する。例示的な適用例においては、ＩＣ４１０及びユーザ回路４２０はホストコンピュータのＰＣＩバス３５０と電気的に接続するためにホストコンピュータにおけるスロット内にプラグインされるプリント回路基板上に装着されている。ＰＣＩコア４１４はＰＣＩホスト制御器としても作用する。ユーザ回路４２０は、例えば、ビデオ、サウンド、通信又は処理等の所望の機能を実現することが可能であり、且つＦＰＧＡ４１２は殆どの８ビット乃至６４ビットマイクロプロセッサに対して接着剤のないインターフェースを提供することが可能である。
【００６１】
ＰＣＩコア４１４はＰＣＩバス３５０へ接続するＰＣＩインターフェースバッファ及び論理３５２を有している。より詳細には、バッファ及び論理３５２はＰＣＩ標準が定義する信号の受取り及び送信のためにＩＣ４１０のＩ／Ｏピンへ結合する。ＰＣＩプロトコルを実現するために、ＰＣＩコア４１４は、更に、ターゲット制御器３５４及びマスター制御器３５８を有している。インタラプト制御器４０４がＰＣＩバス３５０上のインタラプト信号を制御し、且つ通信ブロック４０６がバッファを必要とすることのないＰＣＩ通信を実現する。特に、通信ブロック４０６は単一のデータから最大で６４ビットの長さのものを転送するためのメールボックスレジスタ、及びＰＣＩデバイスの通信用のＩ2Ｏ標準を実現するための回路を有している。ＰＲＯＭ１８からのコンフィギュレーションデータを使用するコンフィギュレーションブロック４０２はＰＣＩコア４１４のコンフィギュレーションパラメータを決定する。
【００６２】
５個のＤＭＡ制御器３６０は、メインメモリ又はＰＣＩバス３５０上のデバイスからＦＩＦＯバッファ３６２，３６３，３６４へ及びＦＩＦＯバッファ３６６，３６７，３６８からメインメモリ又はＰＣＩバス３５０上のデバイスへのデータを転送する直接メモリアクセス動作を制御する。例示的な実施例においては、各バッファ３６２乃至３６４及び３６６乃至３６８は少なくとも７２ビット幅であり、データに対する６４ビットとバイトイネーブルに対する８ビットとを包含している。ＦＩＦＯバッファ３６２は「ターゲット書込バッファ」又はポストフェッチバッファであり且つ約３２クワッドワードの深さである。ＦＩＦＯバッファ３６３及び３６４はマスター受信バッファであり且つ持続バースト転送をサポートするために約６４クワッドワードの深さである。ＦＩＦＯバッファ３６６は「ターゲット読取バッファ」又はプレフェッチバッファであり、且つ約１６クワッドワードの深さである。ＦＩＦＯバッファ３６７及び３６８はマスター送信バッファであり且つ持続バースト転送をサポートするために約６４クワッドワードの深さである。
【００６３】
ＦＩＦＯバッファ３６２，３６３，３６４からのデータは一方向バス３７０及び二方向バス３９０を介してＦＰＧＡ４１２内へ流れる。ＦＰＧＡ４１２からのデータは一方向バス３７０及び二方向バス３９０を介してＦＩＦＯバッファ３６６，３６７，３６８内へ流れる。レーン操縦回路３７４がＦＩＦＯバッファ３６２乃至３６４とバス３７０との間にある。レーン操縦回路３７４が受取った６４ビットデータを任意のバイトと整合させることを可能とするバレルシフタを有している。同様に、レーン操縦回路３８４及びデータ構成ユニット３８２がバス３８０とＦＩＦＯバッファ３６６乃至３６８との間にある。レーン操縦回路３８４はＦＰＧＡ４１２からの６４ビットデータを再整合させることが可能であり、且つデータ構成ユニット３８２はＦＰＧＡ４１２からの２つの連続したデータ値からのバイトを使用して６４ビットの整合されたデータを構成することが可能である。双方向バス３９０はＦＩＦＯバッファ３６２乃至３６４からか又はバッファ及び論理３５２からのいずれかからのデータ転送を選択する制御インターフェース３９５を有している。
【００６４】
バッファ及びインターフェース３５２はＰＣＩバス３５０を介しての同期通信のためのバスクロック信号ＰＣＩ ＣＬＫ (典型的に６６ＭＨｚの周波数)を受取る。ＰＣＩコア４１４が同期的データ転送のためにクロック信号ＰＣＩ ＣＬＫを使用し且つインターフェース４６を介してＦＰＧＡ４１２へクロック信号ＰＣＩ ＣＬＫを通過させる。
【００６５】
ＦＰＧＡ４１２は別のユーザクロック信号ＵＳＥＲ ＣＬＫも有しており、それはユーザ回路４２０へのデータ転送のためであるが、典型的に、クロック信号ＰＣＩ ＣＬＫと同期されているものではない。ＦＩＦＯバッファ３６２乃至３６４及び３６６乃至３６８はＩＣ４１０におけるクロックドメインを横断してのデータ転送を可能とする。例示的実施例においては、クロック信号ＵＳＥＲ ＣＬＫは最大で１００ＭＨｚの周波数を有することが可能である。然しながら、ＰＣＩデバイスは、しばしば、ＰＣＩバス用のクロック周波数よりも低いクロック信号を使用する。クロック信号ＵＳＥＲ ＣＬＫの周波数がクロック信号ＰＣＩ ＣＬＫの周波数よりも低い場合には、ＩＣ４１０はＰＣＩコア４１４とＦＰＧＡ４１２との間を走行する複数個の６４ビットバスを有しているので、ＩＣ４１０はＰＣＩコア４１２とＦＰＧＡ４１４との間での転送において完全なるＰＣＩデータ帯域幅を使用することが可能である。特に、図１０に示したような３個のバスの場合には、クロック信号ＵＳＥＲ ＣＬＫは２２ＭＨｚ程度に低い周波数を有することが可能であり且つ６６ＭＨｚのＰＣＩバス３５０の全データ帯域幅を使用することが可能である。更に、同一のＩＣ４１０上にＰＣＩコア４１４及びＦＰＧＡ４１２を組込むことは、ＰＣＩコア４１４及びＦＰＧＡ４１４が別々のＩＣデバイスであった場合に必要とされるであろうような各データラインに対して１個のＩ／Ｏピンを有することのない多数のデータラインとすることを可能とする。
【００６６】
図１６のＩＣ４１０のような集積回路の設計は、一般的に、回路コンポーネントの遅延及びタイミングを決定するためのシミュレーションを必要とする。特に、同期回路は、クロック動作されるレジスタ又はラッチ間の回路が１つのクロックサイクル内において所要の論理動作を完了するのに充分に高速であることを必要とする。ＩＣ４１０のような回路は現在入手可能な回路シミュレーションソフトウエアに対してチャンレンジを提示している。何故ならば、ＦＰＧＡ４１２において実現される配線及び実際の論理はユーザがＦＰＧＡ４１２をプログラムするまで未知だからである。このことは専用論理４１２のシミュレーションを困難なものとする。何故ならば、専用論理４１２はＦＰＧＡ４１２から信号を受取り且つそれへ信号を送るからである。
【００６７】
１つのシミュレーション方法は、専用論理４１２のシミュレーションに対するパラメータとしてＦＰＧＡ４１２からのドライバ強度を単純に使用する。然しながら、このことが行われると、現在のシミュレーションソフトウエアはインターフェース１６におけるドライバと専用論理１２における第一論理要素との間の導電性相互接続長さを無視する。ＩＣ製造技術がより小型の寸法を達成するに従い、専用論理１２の実際のシミュレーションに対して相互接続長さの影響が重要なものとなる。特に、０．３５ミクロン以下の相互接続体の場合には、該相互接続体は顕著な遅延となる。
【００６８】
本発明の１つの側面によれば、ＦＰＧＡ４１２に対する簡単なモデルは、ＰＣＩコア１６をシミュレーションする場合に、例えばシノプシスデザインコンパイラー等の現在のシミュレーションソフトウエアが適切にＦＰＧＡ４１２を考慮することを可能とする。図１７は専用論理１２と共に使用するためのプログラム可能論理用のモデル４２２の１実施例を示している。プログラム可能論理のモデル４２２はバッファ１１０へ結合されているＩ／Ｏ (入力)パッド４３１及びバッファ１００へ結合されているＩ／Ｏパッド (出力)１００を有している。バッファ１００及び１１０は使用されるべき実際の駆動強度に従って正確にモデル化される。シミュレーションにおいては、パッドはピン容量及びそのモデルにおけるスリュー対容量テーブルを有している。このシミュレーションは、プログラミング前においては予測不可能なものであるプログラム可能論理において使用される実際の回路及びバッファとパッドとの間のリード長を無視することが可能である。然しながら、従来のソフトウエアはバッファ１００及び１１０と専用論理１２との間の相互接続長を正確に考慮する。
【００６９】
単に２個のパッドを使用することはプログラム可能論理に対するモデルを簡単化するが、所望により、付加的なパッドを付加し且つ選択したバッファへ接続することが可能である。例えば、入力クロック信号に対するパッド、又はＰＲＯＭバッファに対するパッド等である。
【００７０】
本発明を例示的な目的のためにある特定の実施例に関連して説明したが、本発明はそれらに制限されるものではない。種々の図面における種々の構成の表示は例示的なものである。本発明の側面はアモルファスシリコンアンチヒューズ及び酸化物−窒化物−酸化物アンチヒューズに制限されるべきものではなく、その他のアンチヒューズ構造へ拡張される。更に、理解すべきことであるが、導電性経路付け資源は任意の適宜の導電性物質又は物質の組合わせによって構成することが可能であり金属から構成されることが必要なものではない。従って、説明した実施例の種々の特徴の種々の修正、適用及び組合わせは特許請求の範囲に定義した発明の範囲から逸脱することなしに実施することが可能である。
【図面の簡単な説明】
【図１】  プログラム可能論理と、専用デバイスと、それらの間のインターフェースとを有する本発明の１実施例に基づく集積回路の概略図。
【図２】  アンチヒューズを使用したインターフェースの一部及びプログラム可能論理の１実施例の１つの大きな概略図を形成するためにどのようにして図２Ａ，２Ｂ１，２Ｂ２，２Ｂ３，２Ｃ，２Ｄ，２Ｅ，２Ｆ１，２Ｆ２，２Ｆ３，２Ｇ，２Ｈ，２Ｉ，２Ｊ１，２Ｊ２，２Ｊ３，２Ｋ，２Ｌ，２Ｍ，２Ｎ１，２Ｎ２，２Ｎ３，２Ｏ，２Ｐ，２Ｑ，２Ｒ１，２Ｒ２，２Ｒ３，２Ｓ，２Ｔを合成するかを示した概略図。
【図２Ａ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｂ１】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｂ２】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｂ３】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｃ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｄ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｅ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｆ１】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｆ２】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｆ３】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｇ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｈ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｉ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｊ１】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｊ２】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｊ３】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｋ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｌ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｍ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｎ１】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｎ２】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｎ３】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｏ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｐ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｑ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｒ１】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｒ２】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｒ３】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｓ】  図２に示した概略図の一部を構成する部分的概略図。
【図２Ｔ】  図２に示した概略図の一部を構成する部分的概略図。
【図３】  本発明の別の実施例に基づく集積回路の概略図。
【図４】  図１に示した埋込型回路におけるプログラム可能論理用のプラットフォームとして使用することが可能な一部を有するフィールドプログラマブルゲートアレイ (ＦＰＧＡ)の簡単化した概略図。
【図５】  専用デバイスとプログラム可能論理における複数個のマクロセルとの間のインターフェースを示した概略図。
【図６】  プログラム可能論理と専用デバイスとの間のクロックインターフェースを示した概略図。
【図７】  ２個のインターフェースバッファとテスト回路とを示した概略図。
【図８】  プログラム可能論理と専用デバイスとの間のインターフェースバッファ及びテスト回路及び専用デバイスとプログラム可能論理との間のインターフェースバッファ及びテスト回路を示した概略図。
【図９】  ＰＲＯＭと専用デバイスとの間のインターフェースバッファ及びテスト回路を示した概略図。
【図１０】  テスト用トランジスタへ結合されており且つテスト回路内の弱検知回路の概略図。
【図１１】  インターフェースバッファのうちの１個のセルと関連するテスト構成の相互接続を示した概略図。
【図１２】  本発明の１実施例に基づくＪＴＡＧ回路の概略図。
【図１３】  本発明において使用することが可能であり且つＩＥＥＥ標準に基づくＪＴＡＧレジスタの従来のコンフィギュレーション (形態特定)を示した概略図。
【図１４Ａ】  専用論理とプログラム可能論理との間の境界におけるテスト用のスキャンセルの使用を示した概略図。
【図１４Ｂ】  専用論理とプログラム可能論理との間の境界におけるテスト用のスキャンセルの使用を示した概略図。
【図１５Ａ】  本発明の１実施例に基づく電源経路付け構成を示した概略図。
【図１５Ｂ】  本発明の１実施例に基づく電源経路付け構成を示した概略図。
【図１６】  専用デバイスがＰＣＩバスへのインターフェースを実現する本発明の１実施例を示した概略ブロック図。
【図１】
0004673533.tif 000002
【図２】
0004673533.tif 000003
【図２Ａ】
0004673533.tif 000004
【図２Ｂ１】
0004673533.tif 000005
【図２Ｂ２】
0004673533.tif 000006
【図２Ｂ３】
0004673533.tif 000007
【図２Ｃ】
0004673533.tif 000008
【図２Ｄ】
0004673533.tif 000009
【図２Ｅ】
0004673533.tif 000010
【図２Ｆ１】
0004673533.tif 000011
【図２Ｆ２】
0004673533.tif 000012
【図２Ｆ３】
0004673533.tif 000013
【図２Ｇ】
0004673533.tif 000014
【図２Ｈ】
0004673533.tif 000015
【図２Ｉ】
0004673533.tif 000016
【図２Ｊ１】
0004673533.tif 000017
【図２Ｊ２】
0004673533.tif 000018
【図２Ｊ３】
0004673533.tif 000019
【図２Ｋ】
0004673533.tif 000020
【図２Ｌ】
0004673533.tif 000021
【図２Ｍ】
0004673533.tif 000022
【図２Ｎ１】
0004673533.tif 000023
【図２Ｎ２】
0004673533.tif 000024
【図２Ｎ３】
0004673533.tif 000025
【図２Ｏ】
0004673533.tif 000026
【図２Ｐ】
0004673533.tif 000027
【図２Ｑ】
0004673533.tif 000028
【図２Ｒ１】
0004673533.tif 000029
【図２Ｒ２】
0004673533.tif 000030
【図２Ｒ３】
0004673533.tif 000031
【図２Ｓ】
0004673533.tif 000032
【図２Ｔ】
0004673533.tif 000033
【図３】
0004673533.tif 000034
【図４】
0004673533.tif 000035
【図５】
0004673533.tif 000036
【図６】
0004673533.tif 000037
【図７】
0004673533.tif 000038
【図８】
0004673533.tif 000039
【図９】
0004673533.tif 000040
【図１０】
0004673533.tif 000041
【図１１】
0004673533.tif 000042
【図１２】
0004673533.tif 000043
【図１３】
0004673533.tif 000044
【図１４Ａ】
0004673533.tif 000045
【図１４Ｂ】
0004673533.tif 000046
【図１５Ａ】
0004673533.tif 000047
【図１５Ｂ】
0004673533.tif 000048
【図１６】
0004673533.tif 000049
【図１７】
0004673533.tif 000050