(57)【特許請求の範囲】
【請求項１】
プログラミング可能な複数のマイクロデバイスをプログラミングするためのプログラミング装置であって、
プログラミングのための信号を生成するように構成されるプロセッサ（１２）と、
前記プロセッサ（１２）から前記信号を受け、前記複数のマイクロデバイスのために前記信号を分配し、かつ、プログラミングのための供給電圧を含む第１の複数の電圧をバックプレーンモジュールに出力する、ように構成されるピンドライバモジュール（１４）と、
前記プロセッサの制御の下、複数のソケットのうちの少なくとも１つに第２の複数の電圧を出力するための適切な構成が設定されるバックプレーンモジュール（１６）と、
前記バックプレーンモジュール（１６）に結合され、前記複数のマイクロデバイスを置くための複数のソケット（２０Ａ〜２０Ｄ）とを備える、プログラミング装置。
【請求項２】
前記信号は、
アドレス信号、データ信号および制御信号を含み、
前記ピンドライバモジュール（１４）は、
前記アドレス信号、前記データ信号および前記制御信号を分配して前記バックプレーンモジュール（１６）に送る論理回路（２６）と、
前記供給電圧を前記バックプレーンモジュール（１６）に与える電圧源回路（２８）とを含む、請求項１に記載のプログラミング装置。
【請求項３】
前記論理回路（２６）は、フィールドプログラマブルゲートアレイを含む、請求項２に記載のプログラミング装置。
【請求項４】
前記電圧源回路（２８）は、デジタル−アナログ変換器を含む、請求項２に記載のプログラミング装置。
【請求項５】
プログラミングのための前記供給電圧は、Ｖｃｃ電圧を含む、請求項２に記載のプログラミング装置。
【請求項６】
プログラミングのための前記供給電圧は、Ｖｐｐ電圧を含む、請求項２に記載のプログラミング装置。
【請求項７】
前記バックプレーンモジュール（１６）上に位置する交換可能なソケットアダプタ（１８）をさらに備え、
前記複数のソケット（２０Ａ〜２０Ｄ）は、前記交換可能なソケットアダプタに装着される、請求項１に記載のプログラミング装置。
【請求項８】
複数のマイクロデバイス、および対応する複数のソケットの少なくとも一部に電源電圧および接地電圧が送られるようなリレー構成を構成し、
データ／制御バスを介して電圧源回路に書き込みし、
プログラムされる各マイクロデバイスに対して最適な電圧レベルを設定する
ように構成されるプロセッサであって、前記マイクロデバイスの少なくとも一部は、異なる電圧レベルを受け取るように構成されることを特徴とするプロセッサと、
アドレスバスからのアドレス、および前記データ／制御バスからのデータを、各ソケットにおいてプログラムされる各マイクロデバイスに与えるように構成される論理回路と
を備えるシステム。
【請求項９】
前記プロセッサは、前記論理回路を介した複数のリレースイッチ回路に対して複数の制御信号を生成することによって前記リレー構成を構成するようにさらに構成されることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記論理回路は、各々のマイクロデバイスについての各々のバスを、プログラムされるべきマイクロデバイスのサイズに一致するように、サイズ決めすることが可能であることを特徴とする請求項８に記載のシステム。
【請求項１１】
前記電圧レベルは、プログラムされる各々のマイクロデバイスの電源電圧、プログラミング電源電圧、およびプログラム中に各々のマイクロデバイスを駆動するのに使用される信号の電圧を含むことを特徴とする請求項８に記載のシステム。
【請求項１２】
前記論理回路は、専用集積回路またはフィールドプログラマブルゲートアレイを備えることを特徴とする請求項８に記載のシステム。
【請求項１３】
前記論理回路は、プログラムされる各マイクロデバイスに供給電圧を送るように構成されたバックプレーンモジュールに前記アドレスおよび前記データを与えるように構成されることを特徴とする請求項８に記載のシステム。
【請求項１４】
前記バックプレーンモジュールは、複数のリレースイッチ回路と、複数のバッファ回路とを備えることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記バックプレーンモジュールに第１の複数の電圧を出力するように構成されたピンドライバモジュールをさらに備え、前記ピンドライバモジュールは、前記ソケットの少なくとも１つに前記複数のマイクロデバイスの１またはそれ以上のプログラミングのための第２の複数の電圧を出力するように構成されることを特徴とする請求項１３に記載のシステム。
【請求項１６】
ピンドライバモジュールをバックプレーンモジュールに結合するステップを備え、前記ピンドライバモジュールは、アドレス、データおよび制御信号をプロセッサから前記バックプレーンモジュールに送り、前記バックプレーンモジュールに第１の複数の電圧を出力するように構成され、
前記バックプレーンモジュールを、複数の異なるマイクロデバイスを受けるように構成されたソケットアダプタに結合するステップをさらに備え、前記バックプレーンモジュールは、前記ソケットアダプタに第２の複数の電圧を出力することにより、複数の異なるマイクロデバイスが前記プロセッサによりプログラムされることが可能となるように構成される、方法。
【請求項１７】
前記ピンドライバモジュールは、前記バックプレーンモジュールにアドレス、データおよび制御信号を送るための論理回路と、前記バックプレーンモジュールに電圧を与える電圧源回路とを含む、請求項１６に記載の方法。
【請求項１８】
前記論理回路は、専用集積回路またはフィールドプログラマブルゲートアレイを備える、請求項１７に記載の方法。
【請求項１９】
前記電圧源回路は、デジタル−アナログ変換器および校正回路を備える、請求項１７に記載の方法。
【請求項２０】
前記バックプレーンモジュールは、複数のリレースイッチ回路と、複数のバッファ回路とを備える、請求項１６に記載の方法。
【請求項２１】
電源電圧および接地電圧が複数のマイクロデバイスの少なくともいくつかおよび対応するソケットに送られるように、プロセッサで、リレー構成を構成するステップと、
電圧源回路にデータ／制御バスを介して書き込み、プログラムされるべきマイクロデバイスの各々のために適切な電圧レベルを設定するために、前記プロセッサを使用するステップと、
アドレスバスからのアドレスおよびデータ／制御バスからのデータを、直接に、各々のソケットの中でプログラムされる各々のマイクロデバイスに与えるために、論理回路を使用するステップと、
を備え、
前記複数のマイクロデバイスの少なくとも一部は、異なる電圧レベルを受け取るように構成されることを特徴とする方法。
【請求項２２】
前記リレー構成を構成するステップは、論理回路を介して、複数のリレースイッチ回路のための複数の制御信号を発生するステップを備える、請求項２１に記載の方法。
【請求項２３】
前記論理回路は、各々のマイクロデバイスについての各々のバスを、プログラムされるべきマイクロデバイスのサイズに一致するように、サイズ決めすることが可能である、請求項２１に記載の方法。
【請求項２４】
前記電圧レベルは、各々のマイクロデバイスの電源電圧、プログラミング電源電圧、およびプログラム中に各々のマイクロデバイスを駆動するのに使用される信号の電圧を含む、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一般的には、電子製品の製造システムに関し、より特定的には、プログラマブル集積回路を組入れる電子回路基板の連続生産に関する。
【背景技術】
【０００２】
従来、電子回路基板アセンブリのある種の作業は、主な生産アセンブリラインから離れて行なわれてきた。さまざまなフィーダ機械およびロボット操作システムが集積回路を電子回路基板に組入れる一方で、プログラミング、テスト、校正および測定などの、集積回路の処理に関する作業は、主生産アセンブリラインに統合されるのではなく別個の区域で別個の装置上で行なわれてきた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
たとえば、電気的消去再書込可能なリードオンリメモリ（ＥＥＰＲＯＭ）およびフラッシュＥＥＰＲＯＭなどのプログラマブルデバイスのプログラミングにおいては、別個のプログラミング装置を使用するが、これは回路基板アセンブリラインとは別個の区域にしばしば位置していた。プログラミングをオフラインで行なってきた理由は多数あった。
【０００４】
第１に、プログラミング装置は、比較的大きく嵩張るものであった。これは、プログラマブルデバイスを高速で、プログラマ内のプログラミングソケットに正確に挿入しかつそこから除去する必要があったためである。挿入および除去は、高速での比較的長い走行および非常に精密な位置決めが必要であったので、非常に堅固なロボット操作装置が必要とされた。この堅固性の要求は、さまざまな構成要素が、高速で動くピックアンドプレースシステムの構造的一体性および位置決めの精密性を維持するために強力な構造支持部材を備えて比較的大規模でなければならないことを意味した。プログラミング装置のサイズと、さらにより大きなアセンブリ装置の限られたスペースとのために、それらは異なった区域に位置していた。
【０００５】
第２に、単一の高速生産アセンブリシステムは、プログラムされたデバイスを、単一のプログラミングメカニズムでこれらのデバイスがプログラムされ得るよりも速く使い果たす可能性があった。このため、生産アセンブリシステムのためにプログラムされたデバイスを取っておくために、より長い間一般的には動作する多数のプログラマが必要とされた。これは、動作時間および入力要求が、２つのシステムの間では異なっていることを意味した。
【０００６】
第３に、誰も、生産アセンブリシステムの機械的部分および電子的部分の両方と容易に統合し得る単一のシステムを構築することができなかった。これらのシステムは、複雑で、一般的には、付加的な装置を組入れる変更をするのに多大な費用のかかる技術的時間が必要となる。
【０００７】
プログラマブルデバイスを別個の区域でプログラムしてから、プログラムされたデバイスを生産アセンブリ区域に持っていって電子回路基板に挿入するのに関連する主要な問題は、２つの別個のプロセスが異なった区域で行なわれることと、２つの別個のシステムの間の調整をすることとが困難なことであった。しばしば、生産アセンブリラインがプログラマブルデバイスを切らすと、生産アセンブリライン全体をシャットダウンしなければならないことがあった。そうでなければ、プログラミング装置を使用して生産アセンブリラインがシャットダウンしてしまわないように、プログラムされたデバイスの十分な在庫を
プログラムしたものであった。しかしながら、これは在庫コストを増大させた。プログラミングが変更されなければならず、プログラムされた集積回路の大量の在庫が手元に残ってしまった場合に、さらに問題が生じた。この場合、在庫のプログラマブルデバイスは再プログラムされなければならず、それに伴い時間および金銭が浪費されたものであった。
【０００８】
よりよいシステムが望まれるのは明らかであったが、状況を真に改善するための方法はないように思われた。改善の障害となる明らかな克服しがたい問題が多くあった。
【０００９】
第１に、現在の生産アセンブリラインの動作速度は、従来のプログラマのプログラミング速度能力をはるかに上回るので、プログラマは、従来のシステムで可能であると考えられるよりもさらにスループットを増大させる必要があるだろう。
【００１０】
第２に、プログラマは既存のプログラマよりも高速でなければならないだけでなく、それははるかに小さくなければならない。理想的なシステムは、生産アセンブリラインに統合されるものであるが、既存の生産アセンブリラインを妨げることなく、または新しい生産アセンブリラインを理想的システムなしのその長さを超える長さにする必要なしに統合されるものである。さらに、これらの生産アセンブリラインのほとんどは、さまざまなタイプの供給および操作モジュールで既に一杯になっているか、または一杯になるように設計されており、これはいかなる付加的な装置のための場所も制限してしまう。
【００１１】
第３に、生産アセンブリラインに結ばれているいかなるプログラマも、生産アセンブリの電子フィーダにもまた結ばれなければならないだろう。このため、通信およびスケジューリングの目的のために、任意の制御ソフトウェアを生産システムソフトウェアに統合する必要がある。生産アセンブリラインシステムソフトウェアは、複雑であるだけでなく、これらのシステムの製造業者には機密かつ／または財産であるために、これが問題となるであろう。これは、自らのシステムを改良する以外のどんな技術的努力もしたがらない製造業者の協力によって、または、プログラマの制御ソフトウェアに取組む前に製造業者のソフトウェアの理解に多大な技術的努力を費やすことによって、統合が行なわれなければならないことを意味する。
【００１２】
第４に、プログラマと生産装置との間の機械的インターフェイスは、生産アセンブリシステムのピックアンドプレース操作装置に相関してプログラムされたデバイスを置くために高精度である必要があった。
【００１３】
第５に、生産操作装置にも生産製造装置にも多数の異なった製造業者がいる。これは、多数の異なった生産アセンブリライン構成が研究されなければならず、設計において大きな妥協が異なった製造業者のために必要とされるであろうことを意味する。
【００１４】
第６に、理想的なシステムは、異なった構成およびサイズを有する異なったマイクロデバイス間の迅速な変更を見込んだものであろう。
【００１５】
第７に、理想的なシステムは、テープ、テープスタッカ、チューブ、チューブスタッカならびにテープおよびリールを含む、多数の異なったマイクロデバイス供給メカニズムを収容できるようなものである必要があった。
【００１６】
最後に、プログラミングの間に失敗したマイクロデバイスを迅速にはねることができるようにする必要があった。
【００１７】
主な問題点は、この技術の現在の状況では、プログラミング装置が生産ラインに追いつくことが不可能であるということであり、上記の課題のすべてを効果的に解決するのは不
可能であるように思える。基本的には、電子デバイスのプログラムには時間がかかる。集積回路プログラミングシステムのスループットを増大させるための解決策が長い間模索されてきた。
【課題を解決するための手段】
【００１８】
この発明は、スループットを大きく増大させるプログラマシステムを提供する。このシステムは、システム全体の効率的動作を提供するよう最適化されながらも、従来のプログラマシステムの速度／スループット能力について以前生じていた課題のほとんどを解決する。
【００１９】
この発明は、複数のマイクロデバイスを同時にプログラミングするための複数のソケットを備えるプログラマシステムを提供する。これによって、プログラミングスループットを大きく増大させることができる。
【００２０】
この発明は、多数の異なったマイクロデバイスをプログラムするよう設計されるプログラマシステムのためのバッファ回路をさらに提供する。バッファ回路は、プログラミングの間異なったマイクロデバイスを駆動するのに好適である複数個の論理レベルを提供する。
【００２１】
この発明は、プロセッサのアドレスおよびデータを使用してマイクロデバイスが必要とするアドレスおよびデータを供給するようなプロセッサを用いてプログラマブルマイクロデバイスをプログラムするための方法をさらに提供する。特殊なバスサイクルを使用する代わりに、この発明は、プロセッサからの標準のバスサイクルを使用してプログラミングする。これによって、プログラミング速度およびプログラミングスループットは大きく増大する。
【００２２】
この発明は、単一のリードバック動作を用いてプログラマによって複数個のプログラムされたマイクロデバイスにプログラムされたデータをベリファイするためのデータ比較回路および方法をさらに提供する。これによって、複数デバイスのプログラミングを行なうプログラマのプログラミング速度およびプログラミングスループットを大きく増大させることができる。
【００２３】
この発明は、以下のものを含む処理メカニズムをさらに提供する。すなわち、この処理メカニズムは、アドレス信号、データ信号および制御信号を生成するプロセッサと、プロセッサに結合されるピンドライバモジュールと、ピンドライバモジュールに結合されるバックプレーンモジュールと、バックプレーンモジュールに結合される少なくとも１つのソケットとを含む。少なくとも１つのソケットは、処理されていないマイクロデバイスを置くために使用される。ピンドライバモジュールは、アドレス信号、データ信号および制御信号をバックプレーンモジュールに送り、第１の複数個の電圧をバッファ回路に与える。バックプレーンモジュールは、アドレス信号、データ信号および制御信号を少なくとも１つのソケットに送り、第２の複数個の電圧を少なくとも１つのソケットに与える。プログラミングメカニズムは、そのようなシステムが以前直面していたスループットの課題を実質的に解決する。
【００２４】
この発明は、処理されていないマイクロデバイスを処理されたマイクロデバイスに処理することのできる処理メカニズムのためのバッファ回路をさらに提供する。処理メカニズムは、制御データ信号および処理データ信号を生成しかつデバイスデータ信号を受取るプロセッサと、電圧基準を与える電圧基準源およびＶCC1電圧を与えるＶCC1電圧源と、処理されていないマイクロデバイスを置くための少なくとも１つのソケットとを含む。バッファ回路は、プロセッサおよび電圧基準源に結合されるデジタル−アナログ変換器（ＤＡＣ
）と、ＤＡＣに結合される増幅器と、増幅器、プロセッサ、ＶCC1電圧源およびソケットに結合され処理データ信号をプロセッサから処理されていないマイクロデバイスに転送し、デバイスデータ信号を処理されたマイクロデバイスからプロセッサに転送するレベルシフト変換バッファとを含む。ＤＡＣは、制御データ信号および電圧基準に応答して第１の可変ＤＣ電圧を生成する。増幅器は、第１の可変ＤＣ電圧に応答して第２の可変ＤＣ電圧を生成する。レベルシフト変換バッファは、ＶCC1電圧および第２の可変ＤＣ電圧に応答してデバイスデータ信号について複数個の論理レベルを与える。バッファ回路は、プログラマシステムなどの処理メカニズムが以前直面していたスループットの課題を実質的に解決する。
【００２５】
この発明は、プロセッサを用いてプログラマブルマイクロデバイスをプログラムするための方法をさらに提供する。プログラマブルマイクロデバイスは、データを記憶するための複数個のメモリ場所を含む。メモリ場所は、複数個のアドレスそれぞれによって識別される。プログラマブルマイクロデバイスは、アドレスバス、データバスおよび制御バスを介してプロセッサに結合される。この方法は、以下のステップを含む、すなわち、（ａ）アドレスバスを介してプロセッサからプログラマブルマイクロデバイスへ第１のアドレスを与えるステップと、（ｂ）データバスを介してプロセッサからプログラマブルマイクロデバイスへ第１のアドレスに対応する第１のデータを与えるステップと、（ｃ）制御バスを介してプロセッサからプログラマブルマイクロデバイスへ第１の制御信号を与えて、プログラマブルマイクロデバイスが、プログラマブルマイクロデバイス内の第１のアドレスによって識別されるメモリ場所でプロセッサからの第１のデータを受付けることを可能にするステップとを含む。このプログラミング方法は、プログラマシステムが以前直面していたスループットの課題を実質的に解決する。
【００２６】
この発明は、プログラムされていないマイクロデバイスをプログラムされたマイクロデバイスにプログラムすることのできるプログラミングメカニズムをさらに提供する。プログラムされたマイクロデバイスは、データを記憶するための複数個のメモリ場所を有する。複数個のメモリ場所は、複数個のアドレスそれぞれによって識別される。このプログラミングメカニズムは、処理されたマイクロデバイスを置くための複数個のソケットと、複数個のデータバッファ／レジスタとを含み、複数個のデータバッファ／レジスタの各々は、複数個のソケットのそれぞれ１つに結合されて、プログラムされたマイクロデバイスの各々における第１のアドレスに記憶される第１のデータを受取り、前記プログラミングメカニズムはさらに、複数個の比較回路を含み、複数個の比較回路の各々は、第１の入力、第２の入力および１つの出力を有し、複数個の比較回路の各々の第１の入力は、データバッファ／レジスタのそれぞれ１つに結合されて第１のデータを受取り、前記プログラミングメカニズムはさらに、それぞれの複数個の比較回路の各々の第２の入力に結合されて第１の期待データを与える期待データレジスタと、プロセッサバスと、プロセッサバスを介して複数個の比較回路の各々の出力に結合されるプロセッサとを含み、比較回路の各々は、もし第１のデータが第１の期待データに一致していれば第１の論理レベルを出力で与え、もし第１のデータが第１の期待データに一致していなければ第２の論理レベルを出力で与える。プログラミングメカニズムは、プログラマシステムが以前直面していたスループットの課題を実質的に解決する。
【００２７】
この発明の上記およびさらなる利点は、添付の図面と関連付けて以下の詳細な説明を読むことによって当業者には明らかとなるであろう。
【発明を実施するための最良の形態】
【００２８】
プログラミングシステム
この発明は、複数のマイクロデバイスを同時にプログラムするための、複数のソケットを備えるプログラマシステムを提供する。これによって、プログラミングスループットを
大きく増大させることができる。
【００２９】
図１を参照すると、プログラマシステム１０が示される。プログラマシステム１０は、プロセッサカード１１を含み、プロセッサ１２などのマイクロプロセッサがその上に位置し、さらに、ピンドライバモジュール１４と、バックプレーンモジュール１６と、ソケットアダプタ１８とを含み、４つのソケット２０Ａから２０Ｄがその上に設けられている。
【００３０】
プロセッサ１２は、アドレスバス２２およびデータ／制御バス２４を介してピンドライバモジュール１４に結合される。プロセッサ１２は、アドレス信号、データ信号および制御信号を生成する。
【００３１】
ピンドライバモジュール１４は、アドレス信号、データ信号および制御信号をバックプレーンモジュール１６に送る論理回路２６と、バックプレーンモジュール１６に電圧を与える電圧源回路２８とを含む。論理回路２６は、専用集積回路またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であってもよい。電圧源回路２８は、従来のデジタル−アナログ変換器（ＤＡＣ）と、従来の校正回路（図示せず）とを含む。電圧源回路２８は、プログラムされるべきマイクロデバイスの通常の動作電源電圧であるＶCC電源電圧と、ＶPPとして知られるプログラミング電圧とを生成する。
【００３２】
バックプレーンモジュール１６は、複数個のリレースイッチ回路、４つのリレースイッチ回路３０Ａから３０Ｄと、複数個のバッファ回路、４つのバッファ回路３２Ａから３２Ｄとを含む。電圧源回路２８は、電力バス３４を介してリレースイッチ回路／バッファ回路３０Ａ／３２Ａから３０Ｄ／３２Ｄに結合される。論理回路２６は、データ／制御バスＤ／Ｃ０、Ｄ／Ｃ１、Ｄ／Ｃ２およびＤ／Ｃ３を介して、それぞれ、リレースイッチ回路／バッファ回路３０Ａ／３２Ａから３０Ｄ／３２Ｄの各々に結合される。論理回路２６はまた、アドレスバス３６を介して、リレースイッチ回路／バッファ回路３０Ａ／３２Ａから３０Ｄ／３２Ｄの各々に結合される。
【００３３】
リレースイッチ回路／バッファ回路３０Ａ／３２Ａから３０Ｄ／３２Ｄは、バス３８Ａから３８Ｄを介してソケット２０Ａから２０Ｂに結合される。
【００３４】
バックプレーンモジュール１６はまた、プログラムされているマイクロデバイスのソケット（２０Ａから２０Ｄ）のステータスに対してステータス発光ダイオード（ＬＥＤ）を制御する。ステータスは、マイクロデバイスが何らかの理由で失敗しているか、または何らかの理由でそれが成功していることを示してもよい。なお、この発明の実施ではＬＥＤは任意である。
【００３５】
ソケットアダプタ１８は、バックプレーンモジュール１６の上に位置付けられ、マイクロデバイス（図示せず）を位置付けるための４個のソケット２０Ａから２０Ｄを有する。ソケットアダプタ１８の機能の１つは、マイクロデバイスを、それらがプログラムされている間、適所に物理的に保持することである。ソケットアダプタ１８は、１０ビットの識別（ＩＤ）フィールドを含み、このため、それは、それが保持するソケットのタイプ、したがってはそれが保持可能であろうマイクロデバイスのタイプについて独自に識別可能であろう。互換性のあるソケットアダプタ１８の各々は、製造業者のデバイスおよびパッケージのタイプによって、異なったタイプのソケットを有するので、ソケットアダプタ１８の各々は、そのようなＩＤフィールドを使用して独自に識別される必要がある。
【００３６】
動作時には、プロセッサ１２は、まず、プログラムされるべきマイクロデバイスのための電源電圧および接地電圧を設定する。そうするために、プロセッサ１２は、論理回路２６を介して、リレースイッチ回路３０Ａから３０Ｄに制御信号を与える。これが、電源お
よび接地が、各マイクロデバイスおよび各ソケット２０Ａから２０Ｄに適切に送られるような適切なリレー構成を設定する。一旦、電源および接地が正しく設定されると、プロセッサ１２は、データ／制御バス２４を介して電圧源回路２８に対して書込を行ない、プログラムされる必要があるマイクロデバイスについて適切な電圧レベルを設定する。これらの電圧レベルは、マイクロデバイスのためのＶCC源とプログラミング電源電圧としても知られるＶPP源と、マイクロデバイスを、これがプログラムされている間に駆動するのに使用される信号の電圧である第３の電圧ＶIHとを含むであろう。
【００３７】
論理回路２６は、アドレスバス２２およびデータ／制御バス２４から、ソケット２０Ａから２０Ｄの各々においてプログラムされるマイクロデバイスの各々に直接に、アドレスおよびデータを与える。この構成によって、このインターフェイスは、あたかもマイクロデバイスがプロセッサカード１１の一部であって、これがプロセッサ１２のアドレスおよびデータバスに直接に接続され直接に書込可能であるかのように見える。
【００３８】
異なったタイプのマイクロデバイスについては、各バスサイクルの間アクセスされる必要のあるアドレスラインの数および／またはデータラインの数に対して異なった要求が存在する。異なったタイプのマイクロデバイスを収容するために、論理回路２６は、プログラムされるべきマイクロデバイスのサイズに一致するように、各マイクロデバイスについての各バスのサイズ決めをすることができる。
【００３９】
一旦、マイクロデバイスがプロセッサ１２のバスの一部であると考えられ、直接に書込可能となると、マイクロデバイス製造業者によって記述されたようなプログラミングアルゴリズムに従って、プログラムするためにマイクロデバイスに正しいコマンドのシーケンスを与える。この実施例での（４個のソケット設計）などの、複数ソケット設計については、４個のマイクロデバイスのすべてが同時にプログラムされるように、プロセッサ１２からマイクロデバイスに書込まれるデータは、他の３つのマイクロデバイスに同時に送られる。
【００４０】
このようにして、複数のマイクロデバイスは、この発明に従って構成されたプログラマシステムを使用して同時にプログラム可能である。それゆえ、プログラミングスループットを大きく増大させることができる。
【００４１】
ソケット内のマイクロデバイスをランダムな順序でプログラムすることを可能にするような変形が可能であることが当業者には明らかであろう。これは、ソケットをできる限り埋めておき、プログラミング動作をできる限り継続させておくことが所望されるときに望ましいであろう。マイクロデバイスがプログラムされたかまたは欠陥があるとわかれば、交換されてプログラミングが即座に開始するであろう。
【００４２】
電圧レベルシフト変換バッファ
この発明は、多数の異なったマイクロデバイスをプログラムするよう設計されるプログラマシステムのためのバッファ回路を提供する。バッファ回路は、プログラミングの間、異なったタイプのマイクロデバイスを駆動するのに好適である複数個の論理レベルを提供する。
【００４３】
図２を参照すると、図１の、プログラマシステム１０などのプログラマシステムのためのバッファ回路６０が示される。バッファ回路６０は、デジタル−アナログ変換器（ＤＡＣ）６２と、増幅器６４と、校正回路６６と、レベルシフト変換バッファ６８とを含む。ＤＡＣ６２は、ライン７０を介して図１のプロセッサ１２などのプロセッサに結合される読出／書込（Ｗ／Ｒ）端子と、導電性ライン７２を介して基準電圧源（図示せず）に結合されるＶREF端子とを含む。ＤＡＣ６２はまたプロセッサ１２に結合され、データバス７
４を介してそこから制御データ信号を受取る。
【００４４】
増幅器６４は、第１の端子がＤＡＣ６２の出力に結合されるレジスタ７６と、第１の端子がレジスタ７６の第２の端子に結合され第２の端子が接地８０に結合されるキャパシタ７８と、正端子がキャパシタ７８の第１の端子に結合されその出力端子が負端子に結合される演算増幅器８２とを含む。
【００４５】
校正回路６６は、演算増幅器８４を含み、その正端子は増幅器６４の出力端子に結合され、その負端子はライン８６を介して精密電圧基準に結合され、その出力端子は、レジスタ８８の第１の端子と、ライン９０を介して校正ロールバックとに結合される。レジスタ８８の第２の端子は、＋５Ｖに結合される。
【００４６】
レベルシフト変換バッファ６８は、ラッチ９２と、＋５Ｖに結合されるＶCC1端子と、増幅器６４の出力端子に結合されるＶCC2端子と、接地８０に結合される第２の端子と、読出／書込方向（ＤＩＲ）端子と、出力イネーブル（ＯＥ）端子とを含む。レベルシフト変換バッファ６８は、プロセッサ１２に結合されてプログラミングデータをバス９４を介して処理されていないマイクロデバイスに転送し、さらに、マイクロデバイスに結合されてバス９６を介してプロセッサ１２へデバイスデータを転送する。
【００４７】
動作時には、プロセッサ１２は、データバス７４を介してＤＡＣ６２へ制御データ信号を送る。次に、ＤＡＣ６２は、制御データ信号および電圧基準ＶREFに基づいて第１の可変ＤＣ電圧を生成する。この電圧基準ＶREFは、ＤＡＣ６２が出力することのできる電圧の全範囲を規定する。たとえば、もし電圧基準ＶREFが１０ボルトに等しいならば、ＤＡＣ６２は、０から１０ボルトの範囲にわたる電圧を出力する能力を有する。第１の可変ＤＣ電圧に応答して、増幅器６４は、第２の可変ＤＣ電圧を生成する。次に、第２の可変ＤＣ電圧は、レベルシフト変換バッファ６８に与えられる。
【００４８】
第２の可変ＤＣ電圧は、レベルシフト変換バッファ６８のための電源として使用される。ＶCC1は、定電圧源に接続され、プロセッサ１２からのプログラミングデータをその適当な電圧レベル、この場合５ボルトにインターフェイスさせるのに使用される。ＶCC2は、第２の可変ＤＣ電圧に結合され、マイクロデバイスへと出ていくバス９６を制御するのに使用される。第２の可変ＤＣ電圧は、バス９６への出力レベルを制御するので、バス９６は、１．５ボルトから５ボルトの論理マイクロデバイスをサポートすることができる。
【００４９】
この実施例では、レベルシフト変換バッファ６８は、プロセッサ１２からマイクロデバイスへデータを転送するのに使用される。この特定の構成では、プロセッサ１２から来るデータは、プロセッサ１２がどのように設計されて使用されようとも、常に、ある論理レベルであるとわかっている。プロセッサ１２の側で５ボルトの論理の場合、レベルシフト変換バッファ６８は、５ボルトの論理レベルを、レベルシフト変換バッファ６８のＶCC2端子に印加されるいかなる電圧にも変換する。
【００５０】
このようにして、プログラミングの間異なった電圧要求でマイクロデバイスを駆動するのに好適な複数の論理レベルを提供するように、プログラマシステムのためのバッファ回路を、この発明に従って形成することができる。
【００５１】
直接書込プログラミング
この発明は、プロセッサアドレスおよびデータを使用してマイクロデバイスが必要とするアドレスおよびデータを供給するようなプロセッサを使用してプログラマブルマイクロデバイスをプログラミングするための方法を提供する。特殊バスサイクルを使用する代わりに、この発明は、プロセッサからの標準のバスサイクルを使用してプログラミングする
。したがって、プログラミング速度およびプログラミングスループットは大きく増大する。
【００５２】
図３を参照すると、アドレスバス１１４、データバス１１６および制御バス１１８を介して、フラッシュメモリデバイス１１２などのプログラマブルマイクロデバイスに接続される、プロセッサ１２などのプロセッサが示される。ＶPPスイッチ１２０が示され、これはプロセッサ１２とフラッシュメモリデバイス１１２のＶPP端子との間に結合されている。フラッシュメモリデバイス１１２は、データを記憶するための複数個のメモリ場所（図示せず）を含む。メモリ場所は、複数のアドレスのそれぞれ（図示せず）によって識別される。メモリ場所および識別は、そのようなデバイスの特性を示す。
【００５３】
プロセッサ１２によって書込まれるかまたは読出されるメモリアドレス場所は、アドレスバス１１４を介して送られる。データバス１１６は、プロセッサ１２からフラッシュメモリデバイス１１２へデータを運ぶ。プロセッサ１２はこのデータをフラッシュメモリデバイス１１２に書込むことができ、または、フラッシュメモリデバイス１１２はデータを出力してプロセッサ１２が読出すことができるという点で、データバス１１６は双方向である。
【００５４】
制御バス１１８は、プロセッサ１２からフラッシュメモリデバイス１１２へ制御信号を運んで、チップイネーブル信号、ライトイネーブル信号および出力イネーブル信号を生成する。これらの信号は、いつフラッシュメモリデバイス１１２がプログラムを行ない、かつ、いつこれがデータを出力して読出動作を行なうのかを制御する。
【００５５】
動作時には、プロセッサ１２は、これがデータバス１１６を介して書込をしたい有効データとともに、アドレスバス１１４を介してフラッシュメモリデバイスへ有効アドレスを与える。プロセッサ１２は、確実に、フラッシュメモリデバイス１１２のチップイネーブルが、典型的にはローである活性状態にあるようにし、次に、制御バス１１８を介してフラッシュメモリデバイス１１２へライトイネーブルパルスを送るようにする。
【００５６】
制御バス１１８上の、ライトイネーブルパルスでのハイからローへの遷移は、フラッシュメモリデバイス１１２内でのプログラミング動作を開始させる。そのとき、プロセッサ１２は特定のアドレスに戻らなければならない。プログラミング動作が開始した後、プロセッサ１２は、典型的には、特定のアドレスを出力し、プログラミング仕様に規定される特定のデータがデータライン上にリードバックされるまでデータをポーリングする。
【００５７】
データバス１１６上に戻されたデータをチェックし、それを、データバス１１６を介してプロセッサ１２によって送られたデータと比較することによって、プロセッサ１２は、プログラミングがうまく行なわれたかどうかを決定することができる。プロセッサ１２によって送られたデータがリードバックされたデータと異なっていれば、フラッシュメモリデバイス１１２はうまくプログラムされなかったことになる。フラッシュメモリデバイス１１２は、再度プログラムされてから同じデータ比較を経てもよい。フラッシュメモリデバイス１１２が不良であるとみなされるより先に、データ比較の前のプログラミングを予め定められた回数（Ｎ）繰返すことができる。これが起きると、プロセッサ１２は、ＬＥＤをオンにするかまたはアラームを鳴らすなど、信号を与えてプログラミング失敗を示す。これは、アドレス空間全体にわたって、または、フラッシュメモリデバイス１１２にプログラムされる必要のあるデータの少なくともブロックにおいて繰返される。一旦、この動作が完了すると、デバイスはプログラムされたとみなされる。
【００５８】
さらに、動作は通常、フラッシュメモリデバイス１１２が適切にプログラムされたことを確実にするためのベリファイを必要とする。この場合、プロセッサ１２は、それが期待
データを記憶している任意の場所に戻って、それから、各アドレスを出力し、データをリードバックし、これを、それがフラッシュメモリデバイス１１２へ書込むことを意図していたデータと比較するという先のプロセスを繰返す。これによって、プログラミング動作が実際に正しく行なわれたことと、フラッシュメモリデバイス１１２が適切にプログラムされたこととが確証されるであろう。
【００５９】
ＶPPスイッチが、特殊なプログラミング電圧を必要とするより古いメモリデバイスで使用された場合、ＶPPスイッチは、リードバックまたはベリファイモードの間、不活性であるかまたはオフになるであろう。
【００６０】
したがって、この発明に従って、プロセッサからの標準のバスサイクルを用いてプロセッサを使用してマイクロデバイスをプログラミングすることによって、プログラミング速度およびプログラミングスループットを大きく増大させることができる。
【００６１】
ギャングデータ比較
この発明は、単一のリードバック動作を用いて複数個のプログラムされたマイクロデバイスにプログラマによってプログラムされたデータをベリファイするための方法およびデータ比較回路を提供する。これによって、複数デバイスのプログラミングを行なうプログラマのプログラミング速度およびプログラミングスループットを大きく増大させることができる。
【００６２】
図４を参照すると、プログラムされていないマイクロデバイスをプログラムされたマイクロデバイスにプログラミングすることのできる、この発明に従って構成されるプログラマ１４０が示される。プログラマ１４０は、処理されたマイクロデバイス（図示せず）を置くための４個のソケット（１４２Ａから１４２Ｄ）と、データバス１４６Ａから１４６Ｄを介して、それぞれ、４個のソケット（１４２Ａから１４２Ｄ）に結合され４個の処理されたマイクロデバイスの各々における第１のアドレスに記憶されるデータを受取る４個のデータバッファ／レジスタ（１４４Ａから１４４Ｄ）と、４個の比較回路（１４８Ａから１４８Ｄ）と、期待データレジスタ１５２と、プロセッサバス１５６と、プロセッサバス１５６に結合されるプロセッサ１２とを含む。この実施例では、比較回路は、排他的ＯＲゲートを含む。
【００６３】
４個のデータバッファ／レジスタ１４４Ａから１４４Ｄの各々は、データバス１５０Ａから１５０Ｄを介して、それぞれ、比較回路１４８Ａから１４８Ｄのそれぞれ１つの第１の端子に結合される。期待データバッファ／レジスタ１５２は、比較回路１４８Ａから１４８Ｄの各々の第２の端子に結合される。比較回路１４８Ａから１４８Ｄの出力端子は、ライン１５４Ａから１５４Ｄを介して、それぞれ、プロセッサバス１５６に結合される。
【００６４】
ベリファイプロセス（データ比較またはリードバック動作）を始めるために、４個のデータバッファ／レジスタ１４４Ａから１４４Ｄは、ソケット１４２Ａから１４２Ｄに挿入される４個のマイクロデバイス（図示せず）から読出されるデータを与える。データは、読出動作の間、マイクロデバイスの各々における第１のアドレスから来る。次に、データバッファ／レジスタ１４４Ａから１４４Ｄの各々にラッチされたデータの出力は、比較回路１４８Ａから１４８Ｄを用いて、期待データレジスタ１５２によって与えられる期待データと比較される。この実施例では、比較回路１４８Ａから１４８Ｄの各々は、排他的ＯＲゲートを含む。比較回路１４８Ａから１４８Ｄの各々の出力は、もしマイクロデバイスからのデータが期待データレジスタ１５２からの期待データと一致していれば、第１の論理レベルとなる。もしそうでなければ、出力は第２の論理レベルとなる。次に、比較回路１４８Ａから１４８Ｄの各々の出力は、ビット（第１の論理レベルまたは第２の論理レベルによって表わされる）として、ライン１５４Ａから１５４Ｄの各々を介してプロセッサ
バス１５６に出力される。プロセッサ１２は、比較回路１４８Ａから１４８Ｄの各々の出力を、マイクロプロセッサバス１５６を介して、この読出動作の読出サイクルの一部としてリードバックする。
【００６５】
比較回路１４８Ａから１４８Ｄから出てくる４個のビットによって表わされる論理レベルは、比較動作を失敗に終わらせたマイクロデバイスを識別する。もし失敗がなければ、ベリファイが次のアドレスについて続行可能とされる。もし失敗があれば、ソケット１４２Ａから１４２Ｄからのデータは、データバッファ／レジスタ１４４Ａから１４４Ｄから直接に読出可能である。期待データは、期待データレジスタ１５２から読出可能である。次に、比較は、プロセッサ１２によってなされ、データのどのビットに誤りがあったのかを決定することができる。
【００６６】
マイクロデバイスがデータ比較動作を失敗に終わらせたときに、これは、欠陥としてみなされてもよい。代替的に、データ比較動作を失敗に終わらせたマイクロデバイスを、それを欠陥であるとみなすより前に、複数回で再プログラムしてもよい。
【００６７】
データバス１５０Ａから１５０Ｄの幅は、マイクロデバイスの通常のデータバスと同じ幅であることが注目される。たとえば、もしマイクロデバイスが１６ビットのデバイスであれば、データバス１５０Ａから１５０Ｄの各々は、１６ビット幅となるであろう。したがって、比較回路１４８Ａから１４８Ｄは１６個のデータラインを比較し、単一の出力がこれらの１６個のラインが成功か失敗かを示す。
【００６８】
このように、この発明に従うデータ比較回路および方法は、単一のリードバック動作を用いることによって、複数個のプログラムされたマイクロデバイスにプログラマによってプログラムされたデータをベリファイする。ゆえに、複数デバイスのプログラミングを行なうプログラマについてのプログラミング速度およびプログラミングスループットを大きく増大させることができる。
【００６９】
上記から、この発明は、「マイクロデバイス」として表わし得るものに適用可能であることが理解されるであろう。マイクロデバイスは、広範囲の電子的および機械的デバイスを含む。最良の態様は、プログラマブルデバイスのためのプログラミングを行なう処理を記載するが、これは、フラッシュメモリ（Ｆｌａｓｈ）、電気的に消去再書込可能なリードオンリメモリ（Ｅ2ＰＲＯＭ）、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、およびマイクロコントローラなどのデバイスを含むがこれらに限るものではない。しかしながら、この発明は、テスト、デバイス特性の測定、校正、および他の処理動作を必要とするすべての電子的、機械的、ハイブリッド、および他のデバイスのための処理を包含する。たとえば、これらのタイプのマイクロデバイスは、マイクロプロセッサ、集積回路（ＩＣ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロメカニカルマシン、マイクロエレクトロメカニカル（ＭＥＭ）デバイス、マイクロモジュール、および流体工学システムなどの装置を含むが、これらに限るものではない。
【００７０】
この発明は、特定の最良の態様に関連づけて記載されるが、多くの代替、修正および変形が、前の説明に鑑みて当業者には明らかとなることが理解される。したがって、含まれるクレームの精神および範囲内にあるそのような代替、変形および修正のすべてを含むことが意図される。ここに述べられまたは添付の図面に示されるすべての事項は、例示的であって非制限的であるものとして解釈されるべきである。
【図面の簡単な説明】
【００７１】
【図１】この発明のプログラマシステムの全体ブロック図である。
【図２】この発明の電圧レベルシフト変換バッファの概略図である。
【図３】動作時のこの発明のプログラマシステムの概略図である。
【図４】この発明のプログラマシステムの一部の概略図である。
【符号の説明】
【００７２】
１１  プロセッサカード、１２  プロセッサ、１４  ピンドライバモジュール、１６  バックプレーンモジュール、１８  ソケットアダプタ、２８  電圧源回路、２６  論理回路、３０  リレースイッチ回路、３２  バッファ回路、２０  ソケット、６０  バッファ回路、６２  デジタルアナログ変換器、６４  増幅器、６６  校正回路、６８  レベルシフト変換バッファ、１２０  ＶPPスイッチ、１１２  フラッシュメモリデバイス、１１４
アドレスバス、１１６  データバス、１１８  制御バス、１４０  プログラマ、１５６
プロセッサバス、１４８  比較回路、１４４  データバッファ／レジスタ、１４２  ソケット。
【図１】
0004648354.tif 000002
【図２】
0004648354.tif 000003
【図３】
0004648354.tif 000004
【図４】
0004648354.tif 000005