(57)【特許請求の範囲】
【請求項１】
プログラム可能論理装置において、
プログラミング命令を受取るための形態とされている命令バス、
前記命令バスへ接続されている第一のプログラム可能な機能ユニット、
前記命令バスへ接続されている第二のプログラム可能な機能ユニット、
前記第一及び第二のプログラム可能な機能ユニットの各々へ接続されている命令ブロッキング回路であって、前記命令バスからのプログラミング命令を前記第一及び第二のプログラム可能な機能ユニットの選択した１つに対して選択的にブロックし、その際に該選択したプログラム可能な機能ユニットが該プログラミング命令によって中断されることなしに既にプログラムされている機能を実行することを可能とする命令ブロッキング回路、
を有する装置。
【請求項２】
請求項１において、前記命令ブロッキング回路がコマンドバスへ接続しているレジスタである装置。
【請求項３】
請求項１において、前記第一のプログラム可能な機能ユニットが再プログラム可能である装置。
【請求項４】
請求項１において、前記第一のプログラム可能な機能ユニットが第一論理機能を実施すべくプログラムされ且つ前記第二のプログラム可能な機能ユニットが第二論理機能を実施すべくプログラムされ、且つ前記第二のプログラム可能な機能ユニットは、前記第一のプログラム可能な機能ユニットが前記第一論理機能を実施する期間中に再プログラム可能である装置。
【請求項５】
請求項１において、前記ブロッキング回路が、
前記命令バスへ接続されている入力ノード、
前記第一及び第二の機能ユニットへ夫々接続している第一及び第二の出力ノード、
を有している装置。
【請求項６】
請求項５において、前記入力ノードが前記命令バス上のブロッキング命令を受取るための形態とされ、且つ前記ブロッキング命令が、前記第一及び第二の機能ユニットのうちのいずれが前記命令バス上の爾後のプログラミング命令に応答するかを表す装置。
【請求項７】
集積回路において、
第一及び第二のプログラム可能な機能ユニット、
第一及び第二の論理機能を夫々実行するために前記第一及び第二のプログラム可能な機能ユニットをプログラミングする手段、
前記第二のプログラム可能な機能ユニットが前記第二論理機能を実行している間に前記第一のプログラム可能な機能ユニットを再プログラミングする手段、
を有しており、前記第一のプログラム可能な機能ユニットは、前記第二のプログラム可能な機能ユニットの論理機能を中断させることなしに既にプログラムされている前記第二論理機能を実行することを可能とさせたまま、再プログラムさせることが可能である回路。
【請求項８】
請求項７において、更に、前記第一のプログラム可能な機能ユニットが前記第一論理機能を実行している期間中に、前記第二のプログラム可能な機能ユニットを再プログラムする手段を有している回路。
【請求項９】
第一及び第二の機能ユニットを具備するプログラム可能な論理装置を部分的に再プログラミングする方法において、前記第一及び第二の機能ユニットは夫々第一及び第二論理機能を実行すべくプログラムされ、前記第一の機能ユニットにおいて前記第一論理機能を実行し、且つ前記第一論理機能を実行している間に、前記プログラム可能な論理装置へプログラミング命令を供給し、前記第一の機能ユニットが前記プログラミング命令に応答しないように前記第一の機能ユニットに対して前記プログラミング命令をブロックし、前記第二の機能ユニットを再プログラムさせるために前記第二の機能ユニットに対して前記プログラミング命令を通過させる、方法。
【請求項１０】
プログラム可能な論理装置において、
プログラミング命令を受取るための形態とされている命令バス、
前記命令バスへ接続している第一のプログラム可能な機能ユニット、
前記命令バスへ接続している第二のプログラム可能な機能ユニット、
を有しており、前記第一及び第二のプログラム可能な機能ユニットの各々に対して接続されている命令ブロッキング回路であって、前記第一及び第二のプログラム可能な機能ユニットのうちの一方が特定された論理機能を実行している間に、前記第一及び第二のプログラム可能な機能ユニットのうちの他方に対して前記命令バスからのプログラミング命令を選択的にブロッキングする命令ブロッキング回路を有している装置。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、大略、プログラム可能論理装置（ＰＬＤ）に関するものであって、更に詳細には、複雑なインシステムプログラム可能ＰＬＤに関するものである。
関連技術の説明
ＰＬＤはユニバーサル相互接続マトリクス（ＵＩＭ）を介して接続されている同一の機能ブロックからなるアレイを包含する公知のタイプのプログラマブル即ちプログラム可能な集積回路である。入力信号は装置入力ピンからＵＩＭへ送られ且つＵＩＭによって機能ブロックに対して経路付けされる。各機能ブロックは１個のＡＮＤアレイと多数のマクロセルとを包含している。
各機能ブロック内において、ＡＮＤアレイはＵＩＭからの入力信号を受取り且つマクロセルに対して積項を与える。各マクロセルはＡＮＤアレイからの選択した積項に基づいて出力信号を発生するＯＲゲートを有している。マクロセルによって発生された出力信号は、更なる処理のためにＵＩＭへフィードバックされるか、又は出力信号としてＰＬＤの出力ピンへ送られる。上述した回路構成を有するＰＬＤは、ザイリンクス社に発行されているザ・プログラマブル・ロジック・データ・ブック（Ｔｈｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄａｔａ  Ｂｏｏｋ）（１９９４）の３章、３−２乃至３−９０頁において詳細に記載されており、尚該文献は引用によって本明細書に取込む。
機能ブロック及びＵＩＭは「ユーザ」（例えば、回路設計者）によって所望される論理機能を与えるべくプログラム即ち書込むことが可能である。このようなプログラミングを達成するために、各機能ブロック及びＵＩＭは所望の機能即ち関数を特定するためにプログラムすることの可能な例えばフラッシュトランジスタ格納セル等のプログラム可能なメモリセルからなるアレイを包含している。個々の機能ブロックは別個の論理機能を与えるべくプログラムすることが可能であり、又は機能ブロック及びＵＩＭはより複雑な論理機能を与えるために一体的にプログラムすることが可能である。
「インシステム」、即ちＰＬＤがプリント回路基板上に据え付けられている間に、ＰＬＤを再プログラムすることは公知である。然しながら、ＰＬＤを物理的に取り外すことは必要ではないが、従来のインシステム再プログラミングは、再プログラミングプロセス期間中にＰＬＤの動作を中断させることを必要とするものである。然しながら、この必要的な中断は、ＰＬＤが通信リンクを維持しているか又は基本的なクロック信号を供給している場合のように一時的な動作の中断であっても許容することの不可能なシステムの構成要素である場合には問題を発生する場合がある。以上の理由により、ＰＬＤによって与えられている基本的な動作を中断させることなしに再プログラムすることの可能なＰＬＤに対する必要性が存在している。
発明の要約
本発明は、ＰＬＤによって与えらえている基本的な動作を中断することなしに再プログラムすることの可能なＰＬＤに関するものである。本発明ＰＬＤは外部的に供給されるプログラミング命令を受取るための形態とされている命令バスへ接続されている多数のプログラム可能な機能ユニットを有している。このようなプログラミング命令を発生させることによって、ユーザは特定の論理機能を実行するために機能ユニットの１つ又はそれ以上のものをプログラムする。
本発明によれば、入力されてくるプログラミング命令が１つ又はそれ以上の機能ユニットに影響を与えることを選択的に阻止し、一方残りの機能的ユニットが該命令に応答することを可能とさせる命令ブロッキング回路を包含している。従って、ＰＬＤの残りの機能ユニットの動作を中断させることなしに、１つ又はそれ以上の機能ユニットを再プログラムさせることが可能である。更に、本発明によれば、ユーザは１つ又はそれ以上の機能ユニットにおいて基本的な論理機能を実行させ、残りの機能的ユニットが例えばより基本的なものでない論理機能を実施させることが可能である。従って、ユーザが基本的な論理機能のうちのいずれかを中断させることなしにより基本的なものでない論理機能のうちの１つを再プログラムすることを所望する場合には、残りの機能的ユニットが再プログラムされている間にプログラミング命令が基本的な論理を包含する機能的ユニットに対してブロックさせるために命令ブロッキング回路が使用される。従って、本発明は、基本的な論理機能を中断させることなしに再プログラムされるＰＬＤに対する必要性を満足させている。
【図面の簡単な説明】
本発明のこれら及びその他の特徴、側面及び利点は、以下の説明、請求の範囲及び添付の図面を参照して理解されることとなる。
図１は本発明に基づく複雑なＰＬＤ１００のブロック図であり、
図２はＪＴＡＧテスト回路１１５のブロック図であり、且つ
図３は機能ブロックＦＢ５のブロック図である。
図面の詳細な説明
図１は本発明に基づく複雑なＰＬＤ１００のブロック図である。ＰＬＤ１００はユニバーサル相互接続マトリクス（ＵＩＭ）１１０によって互いに接続されている６個の同一な機能ブロックＦＢ０−ＦＢ５からなるアレイを包含している。機能ブロックＦＢ０−ＦＢ５及びＵＩＭ１１０の各々は、所望の機能即ち関数を特定するためにプログラムすることの可能なフラッシュトランジスタ格納セルからなるアレイを包含している。この理由により「機能ユニット」という用語は、機能ブロックＦＢ０−ＦＢ５とＵＩＭ１１０の両方のことを言及するものとして使用される。ＰＬＤ１００は、更に、ＪＴＡＧテスト回路１１５を包含している。
ＰＬＤ１００はインシステムプログラミング特徴及び命令をサポートしている。当業者にとって公知の如く、「インシステムプログラミング（ｉｎ−ｓｙｓｔｅｍ  ｐｒｏｇｒａｍｍｉｎｇ）」（以後、ＩＳＰ）は、ＰＬＤをインシステム即ちシステム内においてプログラミングするプロセス全体のことを意味しており、従って、例えば、消去、プログラミング（書込）、及びフラッシュトランジスタ格納セル状態の検証等の動作を包含している。本発明によれば、ＪＴＡＧテスト回路１１５はＩＳＰをサポートするためのＩＳＰイネーブルレジスタ１２０を包含している。
６個の同一の機能的ブロックＦＢ０−ＦＢ５の各々はそれらのそれぞれの入力バスＩＢ０−ＩＢ５上において７２個の入力ノード（３６個の入力ノードとそれらの補元）を有している。１０線命令バスＩＮＳＴは該機能ユニットの各々によって共用されており、例えば、機能ユニットの各々におけるプログラム可能なメモリセルの状態をプログラミング、消去、検証するための命令を供給するテスト制御回路（不図示）へ結合されている。該テスト制御回路に関連する種々のコマンドに関する詳細な説明については、１９９５年９月２５日付で出願した発明者がＮａｐｏｌｅｏｎ  Ｗ．  Ｌｅｅ、Ｄｅｒｅｋ  Ｒ．  Ｃｕｒｄ、Ｗｅｉ−Ｙｉ  Ｋｕ、Ｓｈｏｌｅｈ  Ｄｉｂａ、Ｇｅｏｒｇｅ  Ｓｉｍｍｏｎｓであり発明の名称が「フラッシュＰＬＤ用のワード線ドライバ（Ｗｏｒｄｌｉｎｅ  Ｄｒｉｖｅｒ  Ｆｏｒ  Ｆｌａｓｈ  ＰＬＤ）」であり本願出願人が所有する米国特許出願第０８／５３３，４１２（代理人ドケット番号Ｘ−１８１）を参照するとよく、尚該文献を引用によって本明細書に取込む。
ＵＩＭ１１０は例えばバスＦＢＵ＜０：１７＞上において各機能ブロックから１８個ずつ１０８個の入力線を受取り、且つ例えば機能ブロックＦＢ５に対して特定的なバスＵＩＭＢＬ＜０：３５＞上の機能ブロックＦＢ０−ＦＢ５の各々に対する３６個の出力線を駆動する。残りの機能ブロックＦＢ０−ＦＢ４に対する接続も同様なものであり、従って、簡単化のために符号を省略してある。
ＪＴＡＧテスト回路１１５は、ＰＬＤ１００及び互換性のあるＪＴＡＧテスト回路を有する組立てられたプリント回路基板上のその他の回路の間のプリント回路基板トレースの一体性即ち信頼性を検証するために従来使用されている。必要な互換性を与えるために、ＪＴＡＧテスト回路１１５は通常「ＪＴＡＧスタンダード」又は単に「ＪＴＡＧ」と呼ばれるＩＥＥＥスタンダード１１４９．１テストアクセスポート及びバウンダリースキャンアーキテクチュアを完全に順守するものである。即ち、テスト回路１１５はＩＥＥＥスタンダード１１４９．１を順守するものであると主張する全てのベンダーがサポートせねばならない１組の必須の「パブリック」命令をサポートしている。ＪＴＡＧはＪＴＡＧスタンダードを取り決めた技術的副委員会であるジョイントテストアクショングループ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）に対する略称である。
必須のパブリック命令に加えて、ＪＴＡＧテスト回路１１５は、更に、ＪＴＡＧスタンダードによって定義されている幾つかのオプションとしてのパブリック命令をサポートしている。このようなオプションの命令は、例えば、単一のチップをテストするためにその回路を回路ボードから分離させるものがある。ＪＴＡＧテスト回路１１５は図２に関連してより詳細に説明する。
ＩＳＰイネーブルレジスタ１２０は３つのオプションコードビットＯＰ［２：０］、ＵＩＭプログラムステータスビットＰＳ［６］、６個の機能ブロックプログラムステータスビットＰＳ［５：０］を一体的に格納する１０個のプログラムステータス（ＰＳＴＡＴＵＳ）フリップフロップを包含している。プログラムステータスビットを格納する各フリップフロップは、ＵＩＭ１１０及び機能ブロックＦＢ０−ＦＢ５の対応する１つへ接続している出力線（ＵＰＳＴＡＴ及びＰＳＴＡＴ０−ＰＳＴＡＴ５）を駆動する。ＩＳＰイネーブルレジスタ１２０は実質的に同一の態様で機能ブロックＦＢ０−ＦＢ５の各々と共動するので、以下の説明は単一の機能ブロック、即ち機能ブロックＦＢ５、及びＵＩＭ１１０に焦点をあてる。
各機能ユニット内におけるもののようなプログラム可能メモリセルがプログラムされるかまたは消去される場合には、影響を受けるメモリセルの結果的に得られる状態（即ち、プログラムされたか又は消去されたか）を検証するために、通常、プログラム検証又は消去検証テストが行なわれる。この検証プロセスのうちの１つのステップは、テスト中のメモリセルに対して検証電圧を印加させることを包含しており、その検証電圧のレベルは、実施されるテストがプログラム検証であるか又は消去検証テストであるかに依存する。オプションコードビットＯＰ［２：０］はＰＬＤ１００が与えられた検証命令に対して適宜の検証電圧を供給させることを可能とする。メモリセルの状態がどのようにして検証されるかについての更なる詳細な説明に関しては、本願出願人が所有する「フラッシュＰＬＤ用のワード線ドライバ」という名称の米国特許出願第０８／５３３，４１２号を参照するとよい。
本発明によれば、ＰＳＴＡＴＵＳビットＰＳ［６：０］を使用して、１つ又はそれ以上の機能ユニットを選択的に再プログラムすると共に、残りの機能的ユニットが動作状態に留まること（即ち、「アクティブモード」に留まること）を可能とさせる。ＰＳＴＡＴＵＳビットＰＳ［６：０］の状態（例えば、論理０又は論理１）が、機能ユニットのうちのどれがアクティブのまま残存され且つどれが再プログラムされるかを決定する。例えば、残りの機能ユニットの動作を中断することなしに（即ち、ＦＢ０−ＦＢ４及びＵＩＭ１１０がアクティブモードに留まることを可能とさせる）機能ブロックＦＢ５の再プログラムを行なうためには、ＰＳＴＡＴＵＳビットＰＳ［６：０］は、機能ブロックＦＢ５に対するものを除いて、命令バスＩＮＳＴ上のプログラミング命令をブロック即ち阻止すべく形態とされる。図２はＪＴＡＧテスト回路１１５の詳細を示したブロック図である。ＪＴＡＧスタンダードによって定義される全ての必須の命令及び特徴をサポートするために、ＪＴＡＧテスト回路１１５は以下の従来のＪＴＡＧ構成要素、即ちバンダリースキャンレジスタ２１０、システム論理２２０、バイパスレジスタ２４０、命令デコーダ２５０、命令レジスタ２６０、出力回路２６５、ＪＴＡＧテストアクセスポート（ＴＡＰ）制御器２８０を包含している。本発明によれば、ＪＴＡＧテスト回路１１５は、更に、ＩＳＰ回路２７０を包含しており、それは、図１のＩＳＰイネーブルレジスタ１２０とコンフィギュレーション（形態特定）レジスタ２７２とを包含しており、それらは両方とも付加的なＪＴＡＧデータレジスタに対するガイドラインの下でのＪＴＡＧスタンダードに従って定義されている。これらのＪＴＡＧ構成要素の詳細な説明については、１９９５年８月９日付で出願した発明者がＤｅｒｅｋ  Ｒ．  Ｃｕｒｄ、Ｋａｍｅｓｗａｒａ  Ｋ．  Ｒａｏ．  Ｎａｐｏｌｅｏｎ  Ｗ．Ｌｅｅであり発明の名称が「非揮発性プログラム可能論理装置用の効率的なインシステムプログラミング構成体及び方法（Ｅｆｆｉｃｉｅｎｔ  Ｉｎ−Ｓｙｓｔｅｍ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｔｒｕｃｔｕｒｅ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ）」という名称の本願出願人が所有する米国特許出願第０８／５１２，７９６号（代理人ドケット番号Ｘ−１８４）を参照するとよい。
システム論理２２０（ここでは詳細には示していない）は、ＪＴＡＧ回路１１５と複数個の入力／出力（Ｉ／Ｏ）ピンとの間に従来のインターフェースを与えている。システム論理２２０は、バウンダリースキャンレジスタ２１０を介して選択的に入力／出力ピンＩ／Ｏへ接続され、且つシステム論理２２０又はバウンダリースキャンレジスタ２１０のいずれかからの信号がＩ／Ｏピンを駆動するような形態とされる。Ｉ／Ｏピン及びＪＴＡＧテスト回路１１５の間のインターフェースは当該技術分野において公知であるので、その詳細な説明は割愛する。
ＴＡＰ制御器２８０はＪＴＡＧスタンダードに基づいてＪＴＡＧアーキテクチュア１１５の種々のレジスタ内ヘデータをスキャニングすることを制御する１６状態の有限状態マシンである。ＴＡＰ制御器２８０は４つの端子ＴＤＩ、ＴＤＯ、ＴＭＳ、ＴＣＫを有しており、それらはテストアクセスポートを構成している。端子ＴＤＩはＰＬＤ１００への直列入力端子であり、ＩＳＰイネーブルレジスタ１２０、バイパスレジスタ２４０、命令レジスタ２６０、コンフィギュレーション（形態特定）レジスタ２７２へ信号を供給する。端子ＴＭＳはＴＡＰ制御器２８０の状態遷移を制御するための信号を供給し、一方端子ＴＣＫはＴＡＰ制御器２８０内のマルチプレクサ２８２ヘクロック信号を供給する。ＴＡＰ制御器２８０の状態に依存して、端子ＴＣＫ上のクロック信号から派生されるローカルクロック信号は、ＩＳＰイネーブルレジスタ１２０、バウンダリースキャンレジスタ２１０、バイパスレジスタ２４０、命令レジスタ２６０又はコンフィギュレーションレジスタ２７２のうちの選択した１つをクロック動作させ、これらの全てのレジスタはトライステート可能な直列シフトレジスタである。従って、そのような形態とされると、レジスタ１２０，２４０，２６０，２７２のうちのいずれかの内容を、例えば、複雑なＰＬＤ１００と同一の回路基板上の２番目のＪＴＡＧ互換性のある複雑なＰＬＤの同様なレジスタ内に直列的にシフト入力させることが可能である。
端子ＴＤＯはＰＬＤ１００の直列出力端子であり、且つマルチプレクサ２６７、フリップフロップＦＦ、トライステート可能なドライバ２６８を包含する出力回路２６５によって駆動される。マルチプレクサ２６７は、命令レジスタ２６０か又はデータレジスタのうちの１つのいずれかの出力を選択するために、ＪＴＡＧスタンダードに従ってＴＡＰ制御器２８０によりセレクト（選択）端子を介して制御される。更に、ＪＴＡＧスタンダードに従って、フリップフロップＦＦが出力端子ＴＤＯをしてクロック信号ＴＣＫの下降エッジ上で状態を変化させ、且つ出力端子ＴＤＯはトライステート可能なドライバ２６８によってトライステート状態とさせることが可能である。ドライバ２６８のトライステート端子は、端子ＴＤＯ上の信号がＪＴＡＧアーキテクチュア１１５を介してデータをシフト動作している期間中にのみアクティブであるように制御され、端子ＴＤＯはその他の全ての時間においてトライステート状態とされる。
１実施例においては、テストアクセスポートの端子（ＴＤＩ、ＴＤＯ、ＴＣＫ、ＴＭＳ）は、更に、プログラム可能なＪＴＡＧディスエーブルビット（不図示）の状態に依存して、入力／出力端子として作用する。ＪＴＡＧディスエーブルビットが論理０である場合には、該４個のテストアクセスポート端子を駆動する出力バッファ（不図示）が、ＴＡＰ制御器２８０及び種々のＪＴＡＧレジスタがＪＴＡＧ端子上の信号に応答することを可能とさせる。一方、ＪＴＡＧディスエーブルビットが論理１である場合には、ＪＴＡＧアーキテクチュア１１５は完全にディスエーブル即ち動作不能状態とされる（例えば、ＴＡＰ制御器２８０は強制的に永久的なリセット状態とされる）。ＪＴＡＧディスエーブルビット及びそれに関連する回路の詳細な説明については、発明者がＲｏｎａｌｄ  Ｊ．  Ｍａｃｋ、Ｄｅｒｅｋ  Ｒ．  Ｃｕｒｄ、Ｓｈｏｌｅｈ  Ｄｉｂａ、Ｎａｐｏ１ｅｏｎ  Ｗ．  Ｌｅｅ、Ｋａｍｅｓｗａｒａ  Ｋ．  Ｒａｏ、Ｍｉｈａｉ  Ｇ．  Ｓｔａｔｏｖｉｃｅであり発明の名称が「プログラム可能な論理装置用のリセット回路（Ｒｅｓｅｔ  Ｃｉｒｃｕｉｔ  Ｆｏｒ  ａ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）」である本願出願人の米国特許出願（代理人ドケット番号Ｘ−１７０）を参照するとよく、それを引用によって本明細書に取込む。
命令レジスタ２６０は８個のビット、即ちＩＲ［７：０］を有しており且つ端子ＴＤＩと端子ＴＤＯとの間に接続されている。命令レジスタ２６０からの８ビット並列出力バス２６６が、命令レジスタ２６０内に格納されている命令（即ち、「ＯＰＣＯＤＥ（命令コード）」）をデコードする命令デコーダ２５０へ信号を供給する。次いで、従来技術の如く、命令デコーダ２５０の出力信号が端子ＴＤＩとＴＤＯとの間のＪＴＡＧレジスタのうちのいずれが与えれた命令に対して選択されるかを決定する。
バイパスレジスタ２４０は端子ＴＤＩと端子ＴＤＯとの間に接続されている１段シフトレジスタである。ＪＴＡＧ機能がＰＬＤ１００に対して所望されない場合には、バイパスレジスタ２４０は、ＰＬＤ１００がＰＬＤ１００の動作に影響を与えることなしに、端子ＴＤＩからのデータを端子ＴＤＯへバイパスさせることによって、多数のＪＴＡＧ互換性構成要素からなる直列ＪＴＡＧチェーンから「バイパス」されることを可能とする。
上述した如く、ＪＴＡＧアーキテクチュア１１５はＩＳＰイネーブルレジスタ１２０とコンフィギュレーションレジスタ２７２とを包含するＩＳＰ回路２７０を具備するＩＳＰをサポートしている。ＩＳＰをサポートするために更に設けられているものとしては、付加的な命令ＩＳＰイネーブル（ＩＳＰＥＮ）、インシステムプログラム（ＩＰＧＭ）、インシステム検証（ＩＶＦＩ）、インシステム消去（ＩＥＲＡＳＥ）、コンフィギュレーションロード（ＣＯＮＬＤ）等があり、それらはＪＴＡＧ命令セットに付加されている。これらのＩＳＰ命令はＪＴＡＧスタンダードにおいて特定されているものではないが、付加的な命令を付加するためのＪＴＡＧスタンダード規則に完全に順守するものである。
ＩＳＰイネーブルレジスタ１２０は、インシステムプログラム消去（ＩＳＰｅｎ）命令が命令レジスタ２６０内にロードされる場合に、アクティブである。命令レジスタ２６０内にロードされるＩＳＰｅｎ命令は、命令デコーダ２５０をして、ＩＳＰイネーブルレジスタ１２０を選択させ、その際にＩＳＰイネーブルレジスタ１２０が端子ＴＤＩからの直列的に入力されるプログラムステータス命令を受取ることを可能とさせる。該プログラムステータス命令は、ＰＬＤ１００をして完全な又は部分的な再プログラミングに対して準備をさせる。再プログラミングの程度は、図１に関連して上述した如く、ＩＳＰイネーブルレジスタ１２０内に格納されるＰＳＴＡＴＵＳビットＰＳ［６：０］の値によって決定される。
コンフィギュレーションレジスタ２７２は、アドレスフィールドＡＤＤ、プログラムデータフィールドＰＤＡＴＡ、ステータスフィールドＳＴＡＴＵＳを包含している。ＩＳＰ命令ＩＰＧＭ、ＩＶＦＹ、ＩＥＲＡＳＥのうちのいずれかが命令レジスタ２６０内にエンターされると、コンフィギュレーションレジスタ２７２が選択され且つ端子ＴＤＩへ入力されるデータはコンフィギュレーションレジスタ２７２を介して出力端子ＴＤＯへ通過される。命令デコーダ２５０は命令レジスタ２６０における命令ビットをデコードし且つ制御／イネーブル信号をコンフィギュレーションレジスタ２７２へ供給する。
図３は、例えば図１のＦＢ５のような機能ブロックのブロック図である。各機能ブロックは、入力マルチプレクサ（ＩＭＵＸ）３１０、ワード線ドライバ３２０、マルチプレクサ３２５、ＡＮＤアレイ３３０、センスアンプアレイ３４０、マクロセルブロック３６０を包含している。本発明によれば、機能ブロックＦＢ５を包含する各機能ブロックは、更に、ＮＡＮＤゲート１１３０、１１４２、１１５０、１１７７を包含している。これらのＮＡＮＤゲートは、ラインＰＯＲ上のパワーオンリセット信号、プレロードラインＰＲＬＤ上の信号、コンフィギュレーションロードラインＣＯＮＬＤ上の信号、及びコンロード（ｃｏｎｌｏａｄ）／プログラム・検証／ＤＣ・消去ラインＣＰＶＤＣＥ上の信号を、プログラムステータスラインＰＳＴＡＴ上の信号と論理的に結合させる。ＮＡＮＤゲート１１３０、１１４２、１１５０、１１７７は、ラインＰＯＲ、ＰＲＬＤ、ＣＯＮＬＤ、ＣＰＶＤＣＥ上のコマンド信号が、ノードＰＳＴＡＴ上の信号が論理１である場合に、機能ブロックＦＢ５の種々の構成要素へ通過することを可能とし、且つノードＰＳＴＡＴ上の該信号が論理０である場合には、これらのコマンド信号をブロック即ち阻止することを可能とするスイッチとして動作する。従って、ＩＳＰイネーブルレジスタ１２０及びＮＡＮＤゲート１１３０、１１４２、１１５０、１１７７は、一体的に、命令ブロッキング回路として動作し、該回路は、機能ユニットのうちの選択したものがプログラミング命令を無視し且つアクティブモードに留まることを可能とさせる。
勿論、命令信号を選択的にブロックさせるためにその他の論理要素を使用することも可能である。例えば、各機能ブロック内のマルチプレクサを使用してＮＡＮＤゲート１１３０、１１４２、１１５０、１１７７によって図３において与えられる論理を与えることが可能であり、又は単一の複雑なマルチプレクサが機能ブロックＦＢ０−ＦＢ５及びＵＩＭ１１０の全てに対し必要な命令ブロッキング論理を与えることが可能である。
ＡＮＤアレイ３３０と関連しているコンフィギュレーションビットラッチ（不図示）は、従来技術の如く、機能ブロックＦＢ０−ＦＢ５及びＵＩＭ１１０によって与えられる論理機能を決定するコンフィギュレーション即ち形態特定情報を格納する。コンフィギュレーションロード（即ち、「コンロード（ｃｏｎｒｏａｄ）」）モードにおいては、ＰＬＤ１００がリセットされた直後に、コンフィギュレーション情報がプログラム可能メモリセル内にプログラムされ、次いで、自動的にコンフィギュレーションビットラッチ内にロードされる。ＰＬＤ１００が完全に形態特定され且つ初期化されると、ＰＬＤ１００はアクティブモードへ入る。
ＩＭＵＸ３１０は１５１個の入力ノードと３６個の出力ノードとを有しており、該出力ノードは入力バス９６、ローカルフィードバックバスＬＦＢ＜０：１７＞、及びＵＩＭ１１０からのグローバルフィードバックバスＵＩＭＢＬ＜０：３５＞からの入力信号のマルチプレクス化された即ち多重化された組合わせを与える。ＩＭＵＸ３１０と関連するプログラム可能なメモリセルは、該入力信号のうちのいずれが出力として供給されるかを決定する。
ＡＮＤアレイ３３０はＡＮＤゲートからなるプログラム可能なアレイを形成すべく形態特定される複数個のメモリセルからなるアレイである。これらのＡＮＤゲートは、選択された論理機能を与えるべくプログラムすることが可能である。本発明の１実施例に基づくＡＮＤアレイの動作の更なる詳細な説明については、上掲した「フラッシュＰＬＤ用のワード線ドライバ」という名称の特許出願を参照するとよい。
センスアンプアレイ３４０は１８個のセンスアンプからなるアレイであり、該センスアンプの各々はＡＮＤアレイ３３０からのビット線ＢＬ＃１−ＢＬ＃１８のうちの対応する１つから入力信号を受取る。センスアンプアレイ３４０はビット線ＢＬ＃１−ＢＬ＃１８上の電圧レベルを増幅して、０Ｖ及びＶcc（例えば、５Ｖ）の論理レベルを有する論理出力信号をマクロセルブロック３６０へ供給する。
プログラム可能なＡＮＤアレイ３３０は、ビット線ＢＬ＃１−ＢＬ＃１８及びセンスアンプアレイ３４０を介して各ブロック内のマクロセルへ供給される多数の積項を発生する。マクロセルブロック３６０の１８個のマクロセルは、各々、プログラミングの前においては同一であり、プログラミングの後に、それらの各々は、例えば、フリップフロップ等の機能を与えるものの形態とさせることが可能である。
図２を参照すると、ＩＳＰイネーブル命令が端子ＴＤＩから命令レジスタ２６０内にロードされると、命令デコーダ２５０がＩＳＰイネーブルレジスタ１２０をして端子ＴＤＩ上で受取られたデータを受け付けることを可能とさせる。このデータ、即ちプログラムステータスデータは、ＰＳＴＡＴＵＳビットＰＳ［６：０］内に格納される値を決定し、従って機能ユニットのうちのいずれが爾後のプログラミングコマンドによって影響を受けるかを決定する。プログラムイネーブルはインシステムプログラミングサイクル期間中に実行される最初の命令でなければならない。何故ならば、どの機能ユニットがこれらの命令に応答すべきかを最初に選択することなしに、他のＩＳＰ命令（例えば、プログラム、消去又はコンフィギュレーション（形態特定）ロード）を実行することは不可能だからである。
プログラムステータス命令がＩＳＰイネーブルレジスタ１２０内にロードされた後に、ＰＳＴＡＴＵＳビットＰＳ［６：０］のうちの特定の１つに格納されている論理１が、そのＰＳＴＡＴＵＳビットと関連する機能ユニットをして、命令バスＩＮＳＴを介してプログラミング命令を受取ることを可能とさせる。逆に、論理０は、命令バスＩＮＳＴ上の入力してくるプログラミング命令をブロックし、従って対応する機能ユニットはアクティブモードに留まる。ＰＳＴＡＴＵＳビットがプログラムステータス命令によって上書きされない場合には、ＩＳＰイネーブルレジスタ１２０は各ＰＳＴＡＴＵＳビットに対してデフォルトの論理１を出力し、その結果、全ての機能ユニットを再プログラミングさせることとなる。
図３において、機能ブロックＦＢ５と関連しているＰＳＴＡＴＵＳビットＰＳ［５］はプログラムステータスラインＰＳＴＡＴ５上の論理レベルを決定する。例えば、機能ブロックＦＢ５のみを再プログラムするために部分的な再プログラミングシーケンスが開始される場合には、ＰＳＴＡＴＵＳビットＰＳ［５］は１にセットされ、ラインＰＳＴＡＴ５上の信号を論理１とさせる。このような場合においては、ＡＮＤゲート１１３０、１１４２、１１５０、１１７７は、ラインＰＯＲ、ＰＲＬＤ、ＣＰＶＤＣＥ、ＣＯＮＬＤ上の夫々の信号が機能ブロックＦＢ５に関して動作することを可能とさせる。一方、機能ブロックＦＢ５に影響を与えるべきでない部分的な再プログラムが開始されると、ＰＳＴＡＴＵＳビットＰＳ［５］が論理０へセットされ、ラインＰＳＴＡＴ５上の信号は論理０とされ、その結果、ＮＡＮＤゲート１１３０、１１４２、１１５０、１１７７はラインＰＯＲ、ＰＲＬＤ、ＣＰＶＤＣＥ、ＣＯＮＬＤ上の信号をブロックし、従って機能ブロックＦＢ５はこれらのライン上の信号によって影響を受けることはない。図３には示していないその他のＮＡＮＤゲートが、前述した説明から理解されるように、機能ブロックＦＢ０−ＦＢ５及びＵＩＭ１１０のうちの１つ又はそれ以上のものをプログラミングすることに関連する多数のその他の命令信号を選択的に許容するか又はブロックする。
パワーＭＵＸ３２５は、ワード線ドライバ３２０に対して、ノードＶcc上の電圧レベルか又はノードＶpe上の電圧レベルで交互に電圧を供給する。ノードＶcc上の電圧は、典型的に５Ｖであり、アクティブモードにおいてワード線ドライバ３２０へパワーを供給する。然しながら、機能ブロックＦＢ５内のフラッシュメモリセルは、プログラミング及び消去動作のためにより高い電圧（例えば１２Ｖ）を必要とする。従って、パワーＭＵＸ３２５はノードＰＳＴＡＴ５へ接続されており且つ、ＰＳＴＡＴ５が論理１である場合（機能ブロックＦＢ５が再プログラムされるべきであることを表わす）、ノードＶpe上のプログラミング又は消去電圧がワード線ドライバ３２０へ接続され、且つＰＳＴＡＴ５が論理０である場合（機能ブロックＦＢ５がアクティブモードに留まるべきであることを表わす）には、ノードＶcc上の電圧がワード線ドライバ３２０へ接続されるように所定の形態とされる。ＵＩＭ１１０内の同様のパワーマルチプレクサ（不図示）がパワーＭＵＸ３２５と同一の機能を達成し、且つノードＵＰＳＴＡＴ上の論理レベルによってスイッチ動作される。
注意すべきことであるが、ＰＬＤ１００は、与えられた機能ユニットが該機能ユニットの他のものからの入力信号に依存するようにプログラムすることが可能である。例えば、機能ブロックＦＢ５はＵＩＭ１１０からフィードバック信号を受取ることが可能である。このような場合には、アクティブな機能ユニットが依存する機能ユニットを再プログラムする試みはエラーを発生する場合がある。従って、１実施例においては、別個の論理機能が別の機能ブロック内においてプログラムされる。
例えば、ＰＬＤ１００は、機能ブロックＦＢ５がカウンタ回路に対して必要な組合わせ論理を供給し且つ機能ブロックＦＢ４がクロックドライバ回路に対して必要な組合わせ論理を供給するようにプログラムすることが可能である。従って、機能ブロックＦＢ５のカウンタ回路が機能ブロックＦＢ４からの入力信号に依存することがないものと仮定すると、機能ブロックＦＢ４は、機能ブロックＦＢ５のカウンタ回路の動作を中断することなしに、再形態特定させることが可能である。
本発明をある実施例についてかなり詳細に説明したが、その他の実施例も可能である。例えば、本発明の１実施例は、上述したような単一のマルチプレクス動作される命令バスの代わりに、複数個の機能ユニットに対し複数個の別々の命令バスを包含することが可能である。従って、請求範囲は本明細書に記載した実施例の説明に制限されるものではない。
【図１】
0003930053.tif 000002
【図２】
0003930053.tif 000003
【図３】
0003930053.tif 000004