(57)【要約】  プログラマブル論理装置およびこれら装置をプログラミングおよび／または再設定する方法が開示される。例えば、本発明の実施形態によれば、フラッシュメモリおよびＳＲＡＭを内蔵しまたフラッシュメモリおよび／またはＳＲＡＭをプログラミングするための多数のデータポートを含むプログラマブル論理装置が開示される。
2007517481.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリであって、前記揮発性メモリによって保存された設定データに基づいてプログラマブル論理装置をその意図された機能が得られるように設定するようにされた揮発性メモリと、
前記プログラマブル論理装置を設定するために前記揮発性メモリに転送可能なデータを保存するようにされた不揮発性メモリと、
前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされた第１データポートと、
前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされた第２データポートとを備えた、プログラマブル論理装置。
【請求項２】
前記プログラマブル論理装置を設定するために前記データを前記不揮発性メモリから前記揮発性メモリに転送するようにされた制御ロジックをさらに備えた、請求項１に記載のプログラマブル論理装置。
【請求項３】
前記揮発性メモリに保存された前記設定データによって設定されるようにされたコアロジックをさらに備えた、請求項１に記載のプログラマブル論理装置。
【請求項４】
前記揮発性メモリはスタティックランダムアクセスメモリであり、前記不揮発性メモリはフラッシュメモリである、請求項１に記載のプログラマブル論理装置。
【請求項５】
前記不揮発性メモリはさらに、前記データの前記プログラマブル論理装置からの無断読み出しを防ぐように設定され得るセキュリティビットを保存するようにされている、請求項１に記載のプログラマブル論理装置。
【請求項６】
前記第１データポートはＪＴＡＧポートであり、前記第２データポートはＣＰＵポートである、請求項１に記載のプログラマブル論理装置。
【請求項７】
前記第１データポートはＩＥＥＥ１１４９．１規格をサポートし、前記外部データはＩＥＥＥ１５３２プログラミングモードを介して前記不揮発性メモリおよび／または前記揮発性メモリに、もしくはバックグラウンドプログラミングモードを介して前記不揮発性メモリに転送される、請求項６に記載のプログラマブル論理装置。
【請求項８】
前記外部データは前記第２データポートを通して、システム設定モードを介して前記揮発性メモリに、直接前記不揮発性メモリに、および／またはバックグラウンドプログラミングモードを介して前記不揮発性メモリに転送される、請求項６に記載のプログラマブル論理装置。
【請求項９】
前記プログラマブル論理装置は、検証のための、前記揮発性メモリに保存された前記設定データおよび／または前記不揮発性メモリに保存された前記データのリードバックをさらにサポートする、請求項１に記載のプログラマブル論理装置。
【請求項１０】
前記プログラマブル論理装置は、前記プログラマブル論理装置が前記揮発性メモリによって保存された前記設定データに基づいてその意図された機能を行う一方で前記リードバックをサポートする、請求項９に記載のプログラマブル論理装置。
【請求項１１】
前記プログラマブル論理装置は、前記プログラマブル論理装置がその意図された機能を行うようにされる一方で、前記外部データの前記不揮発性メモリへの転送をサポートする、請求項１に記載のプログラマブル論理装置。
【請求項１２】
スタティックランダムアクセスメモリであって、前記スタティックランダムアクセスメモリによって保存された設定データに基づいてプログラマブル装置をその意図された機能が得られるように設定するようにされたスタティックランダムアクセスメモリと、
前記プログラマブル装置を設定するために前記スタティックランダムアクセスメモリに転送可能なデータを保存するようにされたフラッシュメモリと、
前記スタティックランダムアクセスメモリまたは前記フラッシュメモリのいずれかに転送するために外部データを受け取るようにされたＪＴＡＧポートと、
前記スタティックランダムアクセスメモリまたは前記フラッシュメモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートと、
前記ＪＴＡＧポートまたは前記ＣＰＵポートによって受け取られた前記外部データを前記スタティックランダムアクセスメモリまたは前記フラッシュメモリに転送する手段とを備えた、プログラマブル装置。
【請求項１３】
前記手段は、
前記外部データを前記ＪＴＡＧポートから前記フラッシュメモリへ転送、または前記外部データを前記ＣＰＵポートから前記フラッシュメモリへ転送するようにされたバックグラウンドモードと、
前記外部データを前記ＪＴＡＧポートから前記フラッシュメモリおよび／または前記スタティックランダムアクセスメモリへ転送するようにされたプログラミングモードと、
前記外部データを前記ＣＰＵポートから前記スタティックランダムアクセスメモリへ転送するようにされたシステム設定モードと、
を備えている、請求項１２に記載のプログラマブル装置。
【請求項１４】
前記バックグラウンドモードおよび前記プログラミングモードはさらに、前記フラッシュメモリおよび前記スタティックランダムアクセスメモリに保存されたデータのリードバックをサポートするようにされている、請求項１３に記載のプログラマブル装置。
【請求項１５】
前記ＪＴＡＧポートはＩＥＥＥ１１４９．１規格をサポートし、前記プログラミングモードはＩＥＥＥ１５３２規格をサポートする、請求項１３に記載のプログラマブル装置。
【請求項１６】
前記プログラマブル装置を設定するために前記データを前記フラッシュメモリから前記スタティックランダムアクセスメモリに転送するようにされた制御ロジックをさらに備えた、請求項１２に記載のプログラマブル装置。
【請求項１７】
前記スタティックランダムアクセスメモリに保存された前記データによって設定されるようにされたコアロジックをさらに備える、請求項１２に記載のプログラマブル装置。
【請求項１８】
外部データを第１データポートまたは第２データポートを介して不揮発性メモリへ転送するためのバックグラウンドモードを提供することと、
前記外部データを前記第２データポートを介して前記不揮発性メモリへ転送するための直接モードを提供することと、
前記外部データを前記第２データポートを介して揮発性メモリであって、前記プログラマブル装置を設定するようにされる揮発性メモリへ転送するためのシステム設定モードを提供することと、
を含むプログラマブル装置のためのプログラミングオプションを提供する方法。
【請求項１９】
前記バックグラウンドモードはさらに、前記不揮発性メモリおよび前記揮発性メモリに保存された前記外部データをリードバックするようにされている、請求項１８に記載の方法。
【請求項２０】
前記第１データポートはＪＴＡＧ規格をサポートするようにされ、前記第２データポートはＣＰＵインタフェースを提供するようにされる、請求項１８に記載の方法。
【請求項２１】
前記外部データを前記第１データポートを介して前記不揮発性メモリまたは前記揮発性メモリへ転送するプログラミングモードを提供することをさらに含む、請求項１８に記載の方法。
【請求項２２】
前記プログラミングモードはさらに前記不揮発性メモリおよび前記揮発性メモリに保存された前記外部データをリードバックするようにされる、請求項２１に記載の方法。
【請求項２３】
前記プログラミングモードはさらにＩＥＥＥ１５３２規格をサポートするようにされる、請求項２１に記載の方法。
【請求項２４】
前記不揮発性メモリに保存された前記外部データを前記揮発性メモリへ転送する転送モードを提供することをさらに含む、請求項１８に記載の方法。
【請求項２５】
揮発性メモリであって、前記揮発性メモリによって保存された設定データに基づいてプログラマブル論理装置をその意図された機能が得られるように設定するようにされた揮発性メモリと、
前記プログラマブル論理装置を設定するために前記揮発性メモリに転送可能なデータを保存するようにされた不揮発性メモリと、
前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートとを備えた、プログラマブル論理装置。
【請求項２６】
前記揮発性メモリはスタティックランダムアクセスメモリであり、前記不揮発性メモリはフラッシュメモリである、請求項２５に記載のプログラマブル論理装置。
【請求項２７】
前記プログラマブル論理装置は、前記プログラマブル論理装置がその意図された論理機能を行うようにされる一方で、前記外部データの前記ＣＰＵポートを通しての前記不揮発性メモリへの転送をサポートする、請求項２５に記載のプログラマブル論理装置。
【請求項２８】
前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされたＪＴＡＧポートをさらに備えた、請求項２５に記載のプログラマブル論理装置。
【請求項２９】
前記揮発性メモリに保存されたデータは前記不揮発性メモリに直接転送可能である、請求項２８に記載のプログラマブル論理装置。
【請求項３０】
前記揮発性メモリまたは前記不揮発性メモリのいずれかに保存されたデータは、前記ＣＰＵポートまたは前記ＪＴＡＧポートを介して前記プログラマブル論理装置から転送可能であり、また前記ＪＴＡＧポートまたは前記ＣＰＵポートを介してそれぞれ前記不揮発性メモリまたは前記揮発性メモリへ転送可能であり、前記データのクロスポート転送を完成させる、請求項２８に記載のプログラマブル論理装置。
【請求項３１】
前記プログラマブル論理装置の揮発性メモリまたは不揮発性メモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートであって、前記揮発性メモリに保存されたデータが前記プログラマブル論理回路を設定するものである、ＣＰＵポートを提供することと、
前記不揮発性メモリに保存されたデータを前記揮発性メモリに転送し、そして前記揮発
性メモリに保存されたデータを前記不揮発性メモリに転送するようにされたデータレジスタを提供することと、
を含むプログラマブル論理装置のためのデータ転送オプションを提供する方法。
【請求項３２】
前記揮発性メモリはスタティックランダムアクセスメモリであり、前記不揮発性メモリはフラッシュメモリである、請求項３１に記載の方法。
【請求項３３】
前記プログラマブル論理装置の前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために前記外部データを受け取るようにされたＪＴＡＧポートを提供することをさらに含む、請求項３１に記載の方法。
【請求項３４】
前記ＣＰＵポートおよび前記ＪＴＡＧポートは、前記揮発性メモリと前記不揮発性メモリとの間にクロスポートデータ転送能力を提供する、請求項３３に記載の方法。
【請求項３５】
前記プログラマブル論理装置は、前記プログラマブル論理装置がその意図された論理機能を行うようにされる一方で、前記外部データの前記ＣＰＵポートを通しての前記不揮発性メモリへの転送をサポートする、請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に電気回路に関し、特に、プログラマブル論理装置に関する。
【背景技術】
【０００２】
例えば複合プログラマブル論理装置（ＣＰＬＤ）およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのプログラマブル論理装置（ＰＬＤ）は、ＰＬＤの機能性を規定するこれらの設定データを保存するために様々なタイプのメモリを利用する。例えば、ＣＰＬＤは一般に電気的に消去可能な相補金属酸化物半導体（ＥＥＣＭＯＳ）技術を用いるが、これは、不揮発性であるが限定回数しかプログラミング（例えば、データを受け取り保存）することができず、またプログラミングするのにいくつかの他のタイプのメモリ（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ））より長い時間がかかる。ＣＰＬＤは典型的には、高速で予測可能なタイミングおよび単一レベルの幅広い論理のサポートなどの数多くの利点を提供する。
【０００３】
別の例としては、ＦＰＧＡは典型的には、高論理密度および低待機電力などの利点を提供し、一般にＳＲＡＭ技術を利用する。ＳＲＡＭは無限に再設定可能であるが、電力喪失と同時にそのプログラミングを失い（すなわち揮発性メモリ）、一般に起動と同時に設定データを供給するために外部不揮発性供給源を必要とする。
【０００４】
ＳＲＡＭの代わりとして様々なタイプの不揮発性技術がＦＰＧＡに対して導入されている。例えば、アンチヒューズに基づく技術は不揮発性を提供するが、再プログラミングは可能でないため再設定可能ではない。他のタイプの不揮発性技術も導入されてはいるが、典型的には、限定的にプログラミング可能であるなどのさまざまな欠点がある。
【０００５】
さらに、従来のＰＬＤは一般には内部メモリをプログラミングするのに限定数の方法しか提供できない。例えば、ＥＥＣＭＯＳ技術（例えば、電気的に消去可能なプログラマブル読み出し専用メモリすなわちＥＥＰＲＯＭ）を用いるＰＬＤは、ＪＴＡＧインタフェースを介してのみプログラミングされ得る。このため、プログラマブル論理装置およびプログラマブル論理装置をプログラミングする技術の向上が必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本明細書ではプログラマブル論理装置をこれら装置をプログラミングまたは再設定する方法と共に提供するためにシステムおよび方法が開示される。例えば、本発明の実施形態によれば、フラッシュメモリおよびＳＲＡＭを内蔵して、システム内でプログラミング可能、動的に再設定可能、リモートアップグレード可能、および／または実質的に瞬時ＯＮ可能などのいくつかの利点を提供するプログラマブル論理装置が開示される。フラッシュメモリにより、典型的にはＳＲＡＭベースのＰＬＤでは必要とされる外部設定装置の必要がなくなる。ＳＲＡＭ技術は、フラッシュベースのＰＬＤでは得られない無限の再設定能力を提供する。さらに、設定データをフラッシュメモリからＳＲＡＭに、または複数のデータポート（例えば、ＣＰＵインタフェースポートおよびＪＴＡＧインタフェースポート）を介してフラッシュメモリおよび／またはＳＲＡＭに供給するために、柔軟なプログラミングまたは設定方法が提供される。
【課題を解決するための手段】
【０００７】
詳しくは、本発明の１つの実施形態によれば、プログラマブル論理装置は、揮発性メモリであって、前記揮発性メモリによって保存された設定データに基づいて前記プログラマ
ブル論理装置をその意図された機能が得られるように設定するようにされた揮発性メモリと、前記プログラマブル論理装置を設定するために前記揮発性メモリに転送可能なデータを保存するようにされた不揮発性メモリと、前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされた第１データポートと、前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされた第２データポートと、を備えている。
【０００８】
本発明の別の実施形態によれば、プログラマブル装置は、スタティックランダムアクセスメモリであって、前記スタティックランダムアクセスメモリによって保存された設定データに基づいて前記プログラマブル装置をその意図された機能が得られるように設定するようにされたスタティックランダムアクセスメモリと、前記プログラマブル装置を設定するために前記スタティックランダムアクセスメモリに転送可能なデータを保存するようにされたフラッシュメモリと、前記スタティックランダムアクセスメモリまたは前記フラッシュメモリのいずれかに転送するために外部データを受け取るようにされたＪＴＡＧポートと、前記スタティックランダムアクセスメモリまたは前記フラッシュメモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートと、前記ＪＴＡＧポートまたは前記ＣＰＵポートによって受け取られた前記外部データを前記スタティックランダムアクセスメモリまたは前記フラッシュメモリに転送する手段と、を備えている。
【０００９】
本発明の別の実施形態によれば、プログラマブル装置のためのプログラミングオプションを提供する方法は、外部データを第１データポートまたは第２データポートを介して不揮発性メモリへ転送するためのバックグラウンドモードを提供することと、前記外部データを前記第２データポートを介して前記不揮発性メモリへ転送するための直接モードを提供することと、前記外部データを前記第２データポートを介して揮発性メモリであって、前記プログラマブル装置を設定するようにされる揮発性メモリへ転送するためのシステム設定モードを提供することとを含む。
【００１０】
本発明の別の実施形態によれば、プログラマブル論理装置は、揮発性メモリであって、前記揮発性メモリによって保存された設定データに基づいて前記プログラマブル論理装置をその意図された機能が得られるように設定するようにされた揮発性メモリと、前記プログラマブル論理装置を設定するために前記揮発性メモリに転送可能なデータを保存するようにされた不揮発性メモリと、前記揮発性メモリまたは前記不揮発性メモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートと、を備えている。
【００１１】
本発明の別の実施形態によれば、プログラマブル論理装置のためのデータ転送オプションを提供する方法は、前記プログラマブル論理装置の揮発性メモリまたは不揮発性メモリのいずれかに転送するために外部データを受け取るようにされたＣＰＵポートであって、前記揮発性メモリに保存されたデータが前記プログラマブル論理回路を構成するものである、ＣＰＵポートを提供することと、前記不揮発性メモリに保存されたデータを前記揮発性メモリに転送し、そして前記揮発性メモリに保存されたデータを前記不揮発性メモリに転送するようにされたデータレジスタを提供することと、を含む。
【００１２】
本発明の範囲は、本節に参考として援用される請求の範囲によって規定される。本発明の実施形態のより完全に理解は、その追加の利点の実現と同様に、１つ以上の実施形態の以下の詳細な説明を考慮することによって、当業者には可能であろう。添付の図面シートを参照するが、これらについて先ず簡単に説明する。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態およびこれらの利点は、以下に述べる詳細な説明を参照することによって最も良く理解される。１つ以上の図面に示される類似の設定要素を特定するためには
類似の参照番号を用いている。
【００１４】
図１は、本発明の実施形態によるプログラマブル論理回路（ＰＬＤ）１００を示すブロック図である。ＰＬＤ１００はフラッシュメモリ（フラッシュ）１０２とＳＲＡＭメモリ（ＳＲＡＭ）１０４とを含む。フラッシュ１０２は設定データを保存するために用いられる不揮発性メモリであり、このデータは制御ロジック１０６を介して所望されると内部でＳＲＡＭ１０４に転送されて、ＰＬＤ１００を設定することができる。ＳＲＡＭ１０４は、ＰＬＤ１００をその意図された機能性が得られるように設定する設定データを保存するために用いられるＳＲＡＭメモリセルである。
【００１５】
フラッシュ１０２は不揮発性メモリの例示的なタイプを表しているが、一度または繰り返し再プログラミング可能な他のタイプの不揮発性メモリ（例えば、ＥＥＣＭＯＳ）をフラッシュ１０２の代わりに用いてもよい。さらに、フラッシュ１０２またはＳＲＡＭ１０４のいずれかをプログラミング（すなわち、情報をそのメモリ内に受け取り保存）して、ＰＬＤ１００のための設定データを保存し得るが、ＰＬＤ１００の装置機能性はＳＲＡＭ１０４に保存される情報によって決定される。従って、情報がＳＲＡＭ１０４内にプログラミングされるときＰＬＤ１００は設定または再設定（部分再設定を含む）される。
【００１６】
ＰＬＤ１００内のフラッシュ１０２およびＳＲＡＭ１０４は、本発明の実施形態による様々な技法によってプログラミングされ得る。例えば、後にさらに述べるように、フラッシュ１０２および／またはＳＲＡＭ１０４は第１データポート（例えば、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）１１４９．１または１５３２規格のいずれかのような規格を用いることによるジョイントテストアクショングループ（ＪＴＡＧ）ポートなど）を介して、および／または第２データポート（例えば、周辺データポートとも呼ばれる、中央処理ユニット（ＣＰＵ）ポートなど）を介してプログラミングまたは再プログラミングされ得る。１つ以上の制御ピンおよび／または命令（例えば、制御ビット）を用いて、例えば、いずれのメモリ（フラッシュ１０２またはＳＲＡＭ１０４）をプログラミングするかを決定してもよい。
【００１７】
ＳＲＡＭ１０４はまた、従来の制御ロジック１０６の指示の下にフラッシュ１０２を介してプログラミングされ得る。フラッシュ１０２とＳＲＡＭ１０４とを組み合わせることによって、数多くの利点を提供する単一の集積回路（すなわちチップ）解決法が提供される。例えば、ＳＲＡＭ１０４は、フラッシュ１０２とＳＲＡＭ１０４との間に広いデータ転送経路（例えば、多数のデータブロックを含む）を提供することによってフラッシュ１０２によって、外部による技法よりはるかに速く設定され得る。従って、ＰＬＤ１００は非常に高速に設定され、いくつかの従来の技法（例えば、外部ビットストリームをＳＲＡＭ１０４にロードするにはかなりのミリ秒単位の時間が必要である）に比べて潜在的に高速の設定プロセスにより、実質的に「瞬時ＯＮ」能力（例えば、設定データはフラッシュ１０２からＳＲＡＭ１０４へマイクロ秒単位で転送される）を提供する。
【００１８】
別の例としては、フラッシュ１０２および／またはＳＲＡＭ１０４に保存された設定データは、回路を設定するセキュリティビットによって保護することによって、フラッシュ１０２またはＳＲＡＭ１０４から外部の装置への設定データの無断の読み出しまたはコピーを防ぐ（例えば、ＰＬＤパターンのリードバックを不能にする）ようにしてもよい。さらに、（例えば、製造設備内でのような安全な環境での）フラッシュ１０２のプログラミング後は、外部ビットストリームをさらに必要としないので、起動と同時にその外部ビットストリームパターンを調べることによってフィールド内でのシステム動作中に潜在的にコピーされ得ることはない。
【００１９】
図２は、本発明の実施形態によるプログラマブル論理装置（ＰＬＤ）２００のプログラミングオプションを示すブロック図である。ＰＬＤ２００はフラッシュメモリ（フラッシュ）２０２と、ＳＲＡＭメモリ（ＳＲＡＭ）２０４と、ロジック２０６と、データポート２０８と、データポート２１０とを含む。一例として、ＰＬＤ２００は、それぞれフラッシュ１０２およびＳＲＡＭ１０４に対応するフラッシュ２０２およびＳＲＡＭ２０４を備えた、ＰＬＤ１００の具現化の例を表し得る。
【００２０】
データポート２０８およびデータポート２１０は、例えば、それぞれＣＰＵポートおよびＪＴＡＧポートを表し得る。ロジック２０６は、ロジック２０６の機能性を規定する設定データを保存するＳＲＡＭ２０４を備えた、例えばＦＰＧＡベースの論理回路（例えば、ルックアップテーブル）またはＣＰＬＤベースの論理回路（例えば、ＡＮＤアレイ）などのＰＬＤ２００のコアロジックを表し得る。
【００２１】
図２に示すように、フラッシュ２０２およびＳＲＡＭ２０４のそれぞれはデータポート２０８およびデータポート２１０を介してプログラミングされ得る。例えば、フラッシュ２０２はデータポート２０８（例えば、ＣＰＵポート）またはデータポート２１０（例えば、ＪＴＡＧポート）を介してプログラミングされ得る。同様に、ＳＲＡＭ２０４（すなわち、ＰＬＤ２００のための設定メモリ）はデータポート２０８（例えば、ＣＰＵポート）またはデータポート２１０（例えば、ＪＴＡＧポート）を介してプログラミングされて、ＰＬＤ２００を設定し得る。もしくは、ＳＲＡＭ２０４はフラッシュ２０２を介してプログラミングされてＰＬＤ２００を設定してもよい。
【００２２】
一般に、フラッシュ２０２をプログラミングするには（例えば秒単位）、ＳＲＡＭ２０４をプログラミングする（例えばミリ秒単位）より時間がかかる。しかし、ひとたびプログラミングされるとフラッシュ２０２は、データポート２０８またはデータポート２１０を介して一般に可能であるよりはるかに速く（例えばマイクロ秒単位）ＳＲＡＭ２０４をプログラミングするために用いることができ、実質的に瞬時ＯＮ能力を提供することができる（例えば、ロジック２０６は起動後２００マイクロ秒で利用可能となり得る）。フラッシュ２０２はまた、ＰＬＤ２００が動作している間にプログラミングされ得（例えば、バックグラウンドまたはトランスパレント動作）、ＰＬＤ２００の再設定が所望されるときフラッシュ２０２からの情報がＳＲＡＭ２０４に転送される。
【００２３】
さらに、ＰＬＤ２００は、高度のセキュリティ（例えば、フラッシュ２０２は電源が切れたときＳＲＡＭ２０４のための設定データを維持することができるため外部ビットストリームがない）、基板面積の低減（例えば、フラッシュ２０２の存在によりＰＬＤ２００をプログラミングするのに追加の集積回路が必要ない）、および／または信頼性の向上（例えば、ＰＬＤ２００はプログラミング目的などでは自己完結型であってもよいし、またはデータポート２０８またはデータポート２１０のいずれかを介して設定データを受け付けることができる）を提供することができる単一チップ解決法などの、いくつかの従来のタイプのＰＬＤに勝るいくつかの利点を提供し得る。
【００２４】
不揮発性フラッシュ（例えば、フラッシュ２０２）および揮発性ＳＲＡＭメモリ（例えば、ＳＲＡＭ２０４）の両方をＰＬＤに内蔵して設定データを保存することによって、フラッシュメモリはＳＲＡＭベースのＰＬＤに必要とされる外部設定装置の必要をなくし、一方、ＳＲＡＭは、不揮発性メモリベースのＰＬＤ（例えば、フラッシュまたはＥＥＣＭＯＳメモリ）では一般に不可能な無限の再設定能力を可能にする。さらに、本発明の実施形態によれば、ＪＴＡＧインタフェースを介してのみプログラミングが可能な従来の不揮発性メモリベースのＰＬＤ（例えば、ＥＥＣＭＯＳベースのＰＬＤ）とは異なり、フラッシュメモリは２つ以上の異なるポート（例えば、ＪＴＡＧポートおよびＣＰＵポート）を介してアップグレード（すなわち、プログラミング）され得る。
【００２５】
例えば、フラッシュ２０２およびＳＲＡＭ２０４をＰＬＤ２００（例えば、ＦＰＧＡ）に内蔵することによって、ＰＬＤ２００は、例えばＣＰＵインタフェースまたはＪＴＡＧインタフェースを介して直接フラッシュ２０２をプログラミングする能力を備えた、実質的に瞬時ＯＮが可能で、リモートアップグレード可能、不揮発性であり、動的に再設定可能な装置（例えば、集積回路）を提供する。フラッシュ２０２がＣＰＵインタフェースを介してプログラミング可能であるため、いくつかの利点が得られる。例えば、システム設計者は彼らの回路基板（例えば、ＰＬＤ２００および恐らくは回路基板上の他の装置）を、ＣＰＵインタフェースを介してフラッシュ２０２に提供される簡単なソフトウェアアップデートを通してリモートでアップグレード（例えば、回路基板装置を直接およびリモートでＰＬＤ２００を含む装置のＣＰＵインタフェースを介したソフトウェアアップデートによりアップデート）してもよい。従って、システム設計者は、ＣＰＵポートインタフェースを介する、フラッシュメモリをプログラミングする従来の方法を強化することができる。
【００２６】
さらに、ＣＰＵポートを提供することによって、ＣＰＵポートのスループットはＪＴＡＧポートに比べて速いため試験時間を短縮することができる。例えば、表１は、フラッシュメモリをＪＴＡＧポートを介してプログラミングする場合とＣＰＵポートを介してプログラミングする場合との一般的な比較を提供する。一般に、ＣＰＵポートインタフェースを利用することにより、データスループットにおいていくつかの利点が提供され、プログラミング中は、（例えば、ＪＴＡＧチェーンにおけるように）チェーン内の装置すべてではなく、目標装置を中断させるだけである。
【００２７】
【表１】
2007517481.tif 000003
【００２８】
図３は、本発明の実施形態によるプログラマブル論理装置のプログラミングオプションを示すブロック図である。例えば、図３は、ＰＬＤ１００（図１）またはＰＬＤ２００（図２）をプログラミングおよび／または設定するための技法を示し得る。図３に示すように、２つのポート、データポート３０２およびデータポート３０４が提供され、これらは外部データ（すなわち、制御信号、設定データ、セキュリティビットまたは他のタイプのデータを含み得る情報）をＰＬＤ内のメモリに提供するために用いられる。
【００２９】
アプローチまたは製造フローは様々であるため、図３に例示したＰＬＤのメモリスペー
スをプログラミングおよび設定するためには多くの技法または方法が提供される。ＰＬＤのメモリスペースまたはメモリはフラッシュ３０６およびＳＲＡＭ３０８を含み、これらは図３に示されるように設定またはプログラミングされ得る。
【００３０】
例えば、データポート３０２（例えば、ＪＴＡＧポート）は、例えばＩＥＥＥ１１４９．１準拠のテストアクセスポート（ＴＡＰ）を表し得るが、フラッシュ３０６またはＳＲＡＭ３０８をプログラミングするために用いるとよく、よってシステム内プログラミングまたは装置−プログラマーシステムを通してのプログラミングが可能となる。プログラミングアルゴリズムおよび回路は完全にＩＥＥＥ１５３２準拠であるように設計して、ＩＥＥＥ１５３２プログラミングモード３１２を介してのプログラミングが可能となるようにしてもよく、これにより一般的な自動化テスト装置（ＡＴＥ）および他のタイプのテストシステムからの全般的なサポートが可能になる。
【００３１】
フラッシュ３０６はまた、ＰＬＤがＳＲＡＭ３０８によって制御または設定されるそのシステム論理機能の実行を続けている間に、バックグラウンドモード（ＢＫＧＮＤ）３１０でシステム内においてプログラミングされてもよい（すなわち、フラッシュ３０６のプログラミングは装置の論理動作に対してトランスパレントである）。どちらのメモリ（フラッシュ３０６またはＳＲＡＭ３０８）を用いて（例えば、データポート３０２またはデータポート３０４を介して）外部供給データを保存するか、およびどちらのモード（例えば、バックグラウンドモード３１０または１５３２プログラミングモード３１２）を用いるかを決定するためには、例えば、制御ピンおよび／または命令（例えば、制御ビット）を用いるとよい。
【００３２】
フラッシュ３０６およびＳＲＡＭ３０８はまたデータポート３０４を介してプログラミングされ得る。データポート３０４は、例えば、データをフラッシュ３０６またはＳＲＡＭ３０８に転送するために外部マイクロプロセッサによって利用される専用のシリアルインタフェースおよび／またはＣＰＵポート（例えば、３３ＭＨｚ、８ビットのパラレルポート）を表し得る。ＳＲＡＭ３０８を設定するためにデータポート３０４を利用する場合は、ＰＬＤはシステム設定モード３１４（ｓｙｓＣＯＮＦＩＧ）であり、ＳＲＡＭ３０８に保存されたデータがＰＬＤによって提供される論理および機能性を決定する。フラッシュ３０６を設定するためにデータポート３０４を利用する場合は、フラッシュ３０６は直接またはバックグラウンドモード３１０を通してプログラミングされ得る。例えば、ＰＬＤが動作している間にデータポート３０４（例えば、ＣＰＵインタフェース）を介してフラッシュ３０６をプログラミングするためにフィールドアップグレードをダウンロードするとよい。次にフラッシュ３０６を利用して（例えば、１ミリ秒より短い時間で）ＳＲＡＭ３０８を再設定してもよい。
【００３３】
図３に示すように、ＳＲＡＭ３０８を設定するには３つの異なる方法がある。すなわち、１）フラッシュ３０６からデータをダウンロード、２）データポート３０２を介するＩＥＥＥ１５３２プログラミングモード３１２、および３）データポート３０４を介するシステム設定モード３１４である。ＳＲＡＭ３０８を設定する最も速い方法は一般にはフラッシュ３０６を用いてデータをＳＲＡＭ３０８にダウンロードすることによって得られ、これは例えば、他の方法の場合はミリ秒単位またはそれ以上であるのに比べてマイクロ秒単位で得られ得る。一例としては、フラッシュ３０６は、起動時に自動的に、およびユーザによる指図で、データを直接ＳＲＡＭ３０８にダウンロードし得る。
【００３４】
ＳＲＡＭ３０８がシステム設定モード３１４を用いることによってデータポート３０４を介して設定されるか、またはＩＥＥＥ１５３２プログラミングモード３１２を用いることによってデータポート３０２を介して（例えば、データポート３０２のＩＥＥＥ１１４９．１ＴＡＰを介して）設定される場合は、フラッシュ３０６は無視される。システム設
定モードは、例えば、ＳＲＡＭ３０８を設定するために起動時およびユーザの指図によって利用可能として、ＰＬＤの入出力（Ｉ／Ｏ）回路をＳＲＡＭ３０８の設定中はトライステートとする（すなわち、データをＳＲＡＭ３０８のメモリセルにロードする）とよい。
【００３５】
一般に、ＰＬＤのＩ／Ｏ回路はＳＲＡＭ３０８の設定中はトライステートとされ得る。しかし、従来の方法では、システム設定モード３１４を用いて設定データをリードバックする場合、ＰＬＤのＩ／Ｏ回路およびロジックはそれらの意図された機能を行うように動作を続けるかもしれない。ＩＥＥＥ１５３２プログラミングモード３１２を用いてＳＲＡＭ３０８を設定する場合は、バウンダリスキャンレジスタがＩ／Ｏ回路を制御する。さらに、フラッシュ３０６またはＳＲＡＭ３０８をプログラミングした後、例えばバックグラウンドモード３１０またはＩＥＥＥ１５３２プログラミングモード３１２によって規格検証サイクルを行って、メモリ（すなわち、フラッシュ３０６またはＳＲＡＭ３０８）に保存されたデータをリードバックして、ＰＬＤがデータ（例えば、設定データまたはデータパターン）を正確にロードしたことを確実にするすなわち検証してもよい。
【００３６】
一例として、表２は図３に示した実施形態による動作の様々なプログラミングまたは設定モードの例をまとめている。例示した動作モードには、対応する動作を行うための時間推定値の例が示されている。
【００３７】
【表２】
2007517481.tif 000004
【００３８】
本発明の１つ以上の実施形態によれば、不揮発性であり無限に再設定可能なプログラマブル論理回路が開示される。例えば、本発明の１つ以上の局面を利用する高密度ＦＰＧＡまたはＣＰＬＤなどのプログラマブル論理回路は、システム内でプログラミング可能、リモートアップグレード可能、動的に再設定可能、および／または瞬時ＯＮ可能であり得る。
【００３９】
図４は、本発明の実施形態によるプログラマブル論理回路（ＰＬＤ）４００のプログラミング作業の例を示すブロック図である。ＰＬＤ４００は、ＰＬＤ１００（図１）またはＰＬＤ２００（図２）を表し、またＳＲＡＭメモリ４０２（ＳＲＡＭヒューズと表示）およびフラッシュメモリ４０４（フラッシュヒューズと表示）を有するＰＬＤ４００内での様々な作業を例示的に示している。このときＳＲＡＭメモリ４０２に保存された情報がＰ
ＬＤ４００の装置機能または機能性を決定する。
【００４０】
ＰＬＤ４００はＣＰＵポートインタフェース４０８およびＪＴＡＧポートインタフェース４１０を含み、コマンドデコーダ４０６がＰＬＤ４００内でのならびにＣＰＵポートインタフェース４０８およびＪＴＡＧポートインタフェース４１０へのおよびこれらからのデータフローおよびコマンドを制御する。例えば、コマンドデコーダ４０６はＳＲＡＭメモリ４０２およびフラッシュメモリ４０４とＣＰＵポートインタフェース４０８およびＪＴＡＧポートインタフェース４１０との間のデータの流れを制御する。図示するように、データはＳＲＡＭメモリ４０２からフラッシュメモリ４０４へ、またはフラッシュメモリ４０４からＳＲＡＭメモリ４０２へと転送され得る。
【００４１】
表３はＰＬＤ４００（または図１のＰＬＤ１００もしくは図２のＰＬＤ２００）に対する様々なプログラミング活動の例を示す。クロスポートプログラミングオプションは、キャンデータをＳＲＡＭメモリ４０２とフラッシュメモリ４０４との間で内部的に転送するだけではなく、ＣＰＵポートインタフェース４０８（ＣＰＵポートでの活動と表示）およびＪＴＡＧポートインタフェース４１０（ＪＴＡＧポートでの活動と表示）を介して外部にも転送し得る。例えば、ＳＲＡＭメモリ４０２に保存された情報はＣＰＵポートインタフェース４０８を介してリードバックされ、その情報またはその情報を変更したものを利用してＪＴＡＧポートインタフェース４１０を介してフラッシュメモリ４０４をプログラミングしてもよい。
【００４２】
【表３】
2007517481.tif 000005
【００４３】
表４は、フラッシュメモリ（例えば、ＰＬＤ４００のフラッシュヒューズ）のＪＴＡＧ
ポートプログラミングとＣＰＵポートプログラミングとの間の比較の例を示す。一般に、表４にまとめているように、ＪＴＡＧポートを介するプログラミングはＣＰＵポートを介するプログラミングに勝るいくつかの利点を提供する。
【００４４】
【表４】
2007517481.tif 000006
【００４５】
本発明の１つ以上の実施形態による不揮発性で無限に再設定可能なＰＬＤは、例えば起動または再設定後マイクロ秒単位内に高いセキュリティでロジックが利用可能となることなど、多くの望ましい利点を設計者に確実に提供し得る。必要とされる基板スペースの量、システム設計労力、在庫管理コスト、取り扱いコストおよび製造コストにおいてかなりの節約が達成され得る。システム動作中に行われるものを含めたフィールドシステムアップグレードが簡素化され得る。
【００４６】
１つ以上の実施形態によれば、プログラミング／設定モードを柔軟に組み合わせることにより、システム設計者は数多くの利点を実現することができる。例えば、プログラミングを製造設備内で行って、ＰＬＤが起動時に（例えば、マイクロ秒単位内に）に自動設定され得るようにしてもよい。ＰＬＤは動作中に定期的に再設定してもよい。例えば、ＰＬＤが動作しているときにフィールドアップグレードをダウンロードしてフラッシュメモリを再プログラミングして、次にそのデータを用いてＳＲＡＭをマイクロ秒単位で再設定してもよい。もしくは、製造時フラッシュメモリにデフォルトパターンをプログラミングしておく一方で、システム条件または所望のアプリケーションに応じて、新しいパターンをＳＲＡＭまたはフラッシュメモリに１つ以上のデータポート（例えば、ＪＴＡＧまたはＣＰＵポート）を介して直接プログラミングしてもよい。さらに、パターンをフラッシュメモリにプログラミングして、システム起動を検証して製造時の設定を点検し、次にＰＬＤをデータポートのうちの１つを介してシステム内でシステム動作パターンへと再設定してもよい。
【００４７】
設定時に外部ビットストリームが必要とされないため、ＰＬＤ設定パターンのセキュリティが向上する。不揮発性セキュリティビットはまた、ＰＬＤパターンのリードバックを防止または不能化するために用いてもよい。さらに、例えばシリアルプログラマブル読み出し専用メモリ（ＳＰＲＯＭ）などの外部源からの設定に関連するノイズ、信頼性または基板スペースについての懸念がないため、システム設計が単純化され得る。
【００４８】
本発明の１つ以上の実施形態によれば、システム内でプログラミングが可能であること、リモートアップグレードが可能であること（例えば、ＣＰＵモードインタフェースを介して）、実質的に瞬時ＯＮが可能であること、無限に再設定可能であること、および動的に再設定が可能であることなどのいくつかの利点を提供するＰＬＤ（例えば、ＦＰＧＡ）
が開示される。例えば、不揮発性フラッシュメモリは、ＦＰＧＡ内でＳＲＡＭメモリと共に内蔵され、フラッシュメモリおよびＳＲＡＭメモリはＪＴＡＧインタフェースおよびＣＰＵインタフェースを介してプログラミング可能である。ＰＬＤは、（通常完了までにはるかに長い時間がかかる外部ビットストリームを介してＰＬＤを設定するのではなく）ＰＬＤの起動時にフラッシュメモリからＳＲＡＭメモリに設定データを転送することによって、実質的に瞬時ＯＮ能力（例えば、０．００１秒より少ない時間）を提供する。
【００４９】
上述の実施形態は本発明を制限するものではない。また本発明の原理に従って数多くの改変および変更が可能であることは理解されよう。従って、本発明の範囲は以下の請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態によるプログラマブル論理回路を示すブロック図である。
【図２】本発明の実施形態によるプログラマブル論理回路のプログラミングオプションを示すブロック図である。
【図３】本発明の実施形態によるプログラマブル論理回路のプログラミングオプションを示すブロック図である。
【図４】本発明の実施形態によるプログラマブル論理回路のプログラミング作業の例を示すブロック図である。
【図１】
2007517481.tif 000007
【図２】
2007517481.tif 000008
【図３】
2007517481.tif 000009
【図４】
2007517481.tif 000010
【国際調査報告】
2007517481.tif 000011
2007517481.tif 000012