JP2005505827A - プログラマブルロジックリソース上のエラー検出 - Google Patents
プログラマブルロジックリソース上のエラー検出 Download PDFInfo
- Publication number
- JP2005505827A JP2005505827A JP2003535060A JP2003535060A JP2005505827A JP 2005505827 A JP2005505827 A JP 2005505827A JP 2003535060 A JP2003535060 A JP 2003535060A JP 2003535060 A JP2003535060 A JP 2003535060A JP 2005505827 A JP2005505827 A JP 2005505827A
- Authority
- JP
- Japan
- Prior art keywords
- logic device
- configuration data
- data
- circuit
- error detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Logic Circuits (AREA)
- Detection And Correction Of Errors (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
【関連出願に対する相互参照】
この発明は、2001年10月11日付で提出された米国仮特許出願第60/328,668号の権利を主張するものであり、これを全体的に参照に組み入れている。
【0002】
【発明の背景】
この発明は、プログラマブルロジックリソースに関する。より具体的には、本発明はプログラマブルロジックリソースのエラー検出に関する。
【0003】
プログラマブルロジックリソースは広範なロジック動作のうちのいずれかを実行するようにプログラム可能である汎用集積回路である。既知のプログラマブルロジックリソースの例にはプログラマブルロジックデバイス(PLD)およびフィールドプログラマブルゲートアレイ(FPGA)が含まれる。プログラマブルロジックリソース上にメモリを備えることができ、データの記憶および出力を実行するかまたはユーザが必要とする種々の機能を実行することができる。
【0004】
データはプログラマブルロジックリソース構成データとしてメモリブロック内に記憶することができる。データがメモリブロック内にプログラムされる際、あるいはデータがメモリブロック内に記憶されている間に、プログラマブルロジックリソース構成データの提示においてエラーが生じる可能性がある。この種のエラーはハードエラーおよびソフトエラーを含むことがあり得る。ハードエラーはプログラマブルロジックリソース内の物理的な不完全性によって生じるか、あるいはプログラマブルロジックリソースに対する物理的な損傷によって生じるものである。ソフトエラーは、プログラマブルロジックリソースの動作中に、アルファ粒子または宇宙線がプログラマブルロジックリソースのシリコンに衝突しメモリセルの内容を変化させる電子孔のペアの形成を誘発した際に生じる。プログラマブルロジックリソースは、その大きな数の微小キャパシタンスメモリノードのため、特にソフトエラーに対して敏感である。ソフトエラーによってプログラマブルロジックリソースのロジック機能性に直接影響が及ぼされ、それによってロジック誤動作が誘発される。現状においてはプログラマブルロジックリソース内におけるこの種のエラーを検出し得る方法は存在しない。
【0005】
以上のことから、プログラマブルロジックリソース内におけるエラーを検出するシステムならびに方法が必要とされている。
【0006】
【発明の概要】
従って、本発明の対象はプログラマブルロジックリソース内のエラー検出システムならびに方法を提供することである。
【0007】
本発明によれば、プログラマブルロジックリソース構成データ内のエラーを検出するエラー検出回路が提供される。プログラマブルロジックリソース上のメモリ内にデータをプログラムする前あるいはプログラマブルロジックリソース上のメモリ内にデータをプログラムしている間に管理式によってデータを除算して剰余を取り出すことによってチェックサムが計算される。この計算はソフトウェア内で計算するかまたはエラー検出回路によって実行することができる。管理式は、例えば電気電子工学会(IEEE)802規格の32ビット巡回冗長検査(CRC−32)等の、多項からなる適宜なデータ表現とすることができる。このチェックサムは期待値とも呼ばれ、プログラマブルロジックリソース上の任意の位置(例えば専用のレジスタ内等)に記録することができ、エラー検出中に引き出すことができる。
【0008】
エラー検出開始の信号を発するためにレジスタ内の専用ビット等からなるフラグがユーザによって初期化されることが可能である。メモリ内にデータがプログラムされた後、フラグをセットしてプログラマブルロジックリソース構成データのエラー検出回路へのローディングを指令する有限状態機械によってエラー検出を開始することができる。プログラマブルロジックリソースのエラー検出回路にプログラマブルロジックリソース構成データがロードされると、エラー検出回路は期待値の計算に使用したものと同一あるいは同等な管理式を使用してロードされたデータからチェックサムの計算を開始する。全てのプログラマブルロジックリソース構成データがロードされると、有限状態機械がエラー検出回路に期待値をロードすることを指令する。
【0009】
本発明の一構成形態において、プログラマブルロジックリソース構成データ上においてチェックサムが計算され、結果として得られたチェックサムが期待値と比較される。チェックサムと期待値との間に予め設定された関係(例えばチェックサムと期待値とが等しいか、チェックサムと期待値とが予め設定された偏差または倍数をもって異なっている場合)が成立する場合エラーは検出されない。
【0010】
本発明の別の構成形態においては、プログラマブルロジックリソース構成データはまず専用のOR(XOR)ツリーにロードされる。プログラマブルロジックリソース構成データがロードされた後、期待値がXORツリーにロードされる。XORツリーは管理式に基づいてロードされたデータおよび期待値上でチェックサムを計算する。チェックサムが予め設定された所定の数値に等しい(例えばチェックサムが0、またはチェックサムが予め設定された偏差である)場合エラーは検出されない。エラー検出回路によって形成された出力はプログラマブルロジックリソース上の出力端子に伝送され、これはユーザロジックによって監視することができる。
【0011】
本発明の上記またはその他の利点は添付図面を参照しながら以下に記す詳細な説明によって明らかにされ、ここで同様な構成要素は同様な参照符号によって示される。
【0012】
【発明の詳細】
本発明はプログラマブルロジックリソース内におけるエラー検出システムならびに方法を提供するものである。プログラマブルロジックリソースには、例えばプログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはその他の適宜なプログラマブルデバイスが含まれる。エラーは、ソフトエラーおよびハードエラーのいずれか一方あるいはその両方とすることができる。さらにエラーは、電圧スパイク、システムバグ、ライン伝送不良およびハードウェア誤動作を含むその他の外的な作用、あるいはプログラマブルロジックリソースのデータ表現に影響を及ぼすいずれかの事象に分類することができる。
【0013】
プログラマブルロジックリソースは、多様なアプリケーションのうちのいずれか1つあるいは複数のものを実行するようにこのプログラマブルロジックリソースをプログラムするためのデータを保持する。プログラマブルロジックリソース構成データは二進数値(すなわち二進数の“1”および“0”)の集合として表現され、例えば構成RAM(CRAM)等の適宜な場所に記憶することができる。他方、プログラマブルロジックリソース構成データは、例えばスタティックRAM(SRAM)、ダイナミックRAM(DRAM)、ラムバスDRAM(RDRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートシンクロナスDRAM(DDR SDRAM)、消去可能プログラム可能ROM(EPROM)、フラッシュメモリ、およびマグネティックRAM(MRAM)等のその他の適宜な揮発あるいは不揮発メモリ内に記憶することができる。
【0014】
メモリ内に記憶されたプログラマブルロジックリソース構成データは1つまたは複数のアプリケーションと関連付けることができる。例えば、あるプログラマブルロジックリソース構成データは、プログラマブルロジックリソースのプログラマブル要素をどのように構成するかを決定する(すなわち特定のアプリケーションを実行する)ために使用することができる。プログラマブルロジックリソース構成データのうちのいくつかの二進数字はデータ(例えば管理式、期待値等)を表現するために使用することができる。プログラマブルロジックリソース構成データのその他の二進数字は、プログラマブルロジックリソースによって実行されるアプリケーションのリアルタイム動作の一部として使用することができる(例えばメモリの読み取りおよび書き込みがアプリケーションによって決定される場合)。特定の二進数字が誤って表示されるとプログラマブルロジックリソース構成データが変化する(例えば、元々二進数“1”であった二進数字が二進数“0”とされた場合あるいはその逆の場合)。本発明はこのようなエラーを検出する方法を提供する。
【0015】
本発明は前述したように巡回冗長検査(CRC)チェックサム分析によってプログラマブルロジックリソース内のエラーを検出するものであるが、プログラマブルロジックリソース内のエラーを検出するためのその他の適宜な方法を使用することが可能である。CRCチェックサム分析においてはチェックサムが計算される。このチェックサムは、例えばデータと管理式とからなる除算操作から生じた剰余とすることができる。他方、チェックサムはその他の好適な操作または操作の組み合わせを使用して計算することもできる。管理式はプログラマブルロジックリソース構成データの期待値を計算するために使用されるいずれかの適宜なデータ表示とすることができる。
【0016】
期待値は、プログラマブルロジックリソース内にプログラムされるべきデータあるいはプログラムされているデータと管理式とが演算数となる操作から生じるチェックサムである。この期待値はユーザが定義するものかあるいはその他の適宜な要素とすることができる。期待値は、プログラマブルロジックリソース上のレジスタまたはメモリ内に記憶するか、またはその他の適宜な場所に記憶することができる。
【0017】
一実施例において、チェックサムはプログラマブルロジックリソース構成データ上で計算され期待値と比較される。チェックサムと期待値との間に予め設定された所定の相関性が存在する場合エラーは検出されない(例えばチェックサムと期待値とが等しいか、チェックサムが予め設定された偏差あるいは倍数をもって期待値と異なっている場合)。
【0018】
別の実施例においては、プログラマブルロジックリソース構成データはまず専用のOR(XOR)ツリーにロードされる。プログラマブルロジックリソース構成データがロードされた後、期待値がXORツリーにロードされる。XORツリーは管理式に基づいてロードされたデータおよび期待値上でチェックサムを計算する。チェックサムが予め設定された所定の数値に等しい(例えばチェックサムが0、またはチェックサムが予め設定された偏差である)場合エラーは検出されない。
【0019】
エラー検出回路によって形成される出力はプログラマブルロジックリソースの一出力端子に伝送され、これはユーザロジックによって監視することができる。エラーが検出された場合、プログラマブルロジックリソースのユーザにはプログラマブルロジックリソース構成データの全ての部分を再ロードするか、またはエラーに対応するその他の適宜な動作を行う選択肢が提供される。
【0020】
CRCチェックサム分析を行うためにCRCモジュールが使用される。CRCモジュールは任意の好適な構成を使用して実施することができる。例えば、一実施例においてCRCモジュールはプログラマブルロジックリソース上のハード配線された常駐要素とすることができる。別の実施例においては、CRCモジュールはプログラマブルロジックリソース内にプログラムすることができる。さらに別の実施例においては、CRCモジュールはプログラマブルロジックリソースの外部の独立したデバイスとして実施され、このCRCモジュールは例えば入出力(I/O)端子を使用してプログラマブルロジックリソースと結合される。さらに別の実施例においては、CRCモジュールはマイクロプロセッサ(例えばコンピュータ)を使用して実行されるソフトウェア内で実施される。これらのいずれの実施形態も本発明と組み合わせて使用することができる。ここでは主にプログラマブルロジックリソース上のハード配線されたCRCモジュールに関連して本発明を説明するが、これは簡略化のためでありこれに限定されるものではない。
【0021】
図1ないし図3に関連してより詳細に説明するように、プログラマブルロジックリソース上においてエラー検出を行うために、追加的な信号、レジスタ、ならびに制御ロジックが必要とされる。例えば、エラー検出の開始を表記するために特定のレジスタ内におけるデータビットがフラグ付けされる。またエラー検出回路の準備を行うために追加的な信号が必要とされ、これには、例えばレジスタを消去する信号、カウンタをプリセットする信号、ならびに種々の制御信号を能動あるいは非能動にするための信号が含まれる。さらに、追加的なレジスタが必要とされ、これには、例えばプログラマブルロジックリソース構成データ内のフレームに指標を付けるためのアドレスレジスタ、および指標を付けたフレームをデータがエラー検出回路にロードする前に一時的に記憶するためのデータレジスタが含まれる。
【0022】
好適な一方式において、CRCモジュールとプログラマブルロジックリソースとの間のデータ交信を取り決めるために有限状態機械(FSM)が使用される。より具体的には、FSMはCRAM内のデータのCRCモジュールへのロードおよびシフトを命令することができる。他方、FSMはCRAM内のデータを一時的にデータレジスタにロードおよびシフトし、その後データレジスタからCRCモジュールにロードおよびシフトすることを命令することができる。CRCモジュールは、プログラマブルロジックリソース上のチェックサムならびに場合によっては期待値を計算するためのサブモジュールを含んでいる。このサブモジュールは標準的な多項式(例えばCRC−32IEEE802規格)、データの合計、またはその他の適宜なデータ表現を使用してチェックサム分析を実行するための任意の適宜な回路とすることができる。
【0023】
計算されたチェックサムはその後比較回路に伝送し、そこでチェックサムは期待値あるいはその他の予め設定された適宜な数値と比較することができる。比較回路はコンパレータ、ORゲート、XORゲート、またはその他の適宜なロジックゲートあるいはロジックゲートの組み合わせを使用して構成することができる。
【0024】
図1には、期待値102、プログラマブルロジックリソース構成データ104、有限状態機械(FSM)108、およびCRCモジュール116を備えた例示的なプログラマブルロジックリソース100が示されている。期待値102はプログラマブルロジックリソース100上のレジスタあるいはメモリ内に記憶することができる。プログラマブルロジックリソース構成データ104は、例えば構成RAM(CRAM)等のプログラマブルロジックリソース100内の適宜なメモリ内に記憶することができる。プログラマブルロジックリソース構成データ104はデータパス112を介してデータをCRCモジュール116に伝送することができる。パス112は、データを直列あるいは並列、またはその組み合わせによって伝送するための任意の適宜な単一あるいは複数のパスとすることができる。
【0025】
FSM108はCRCモジュール116とプログラマブルロジックリソース100との間のデータ交信を取り決めるために使用することができる。FSM108は、エラー検出の開始を検知し、クロック信号およびその他の信号を形成しパス106を介してプログラマブルロジックリソース構成データ104に送信し、パス112を介してのデータ104のCRCモジュール116へのロードを命令することができる。FSM108はパス114を介してCRCモジュール116内におけるエラー検出分析を命令することができる。パス106,112および114は、データならびにクロック、プリセット信号、フラグ等の種々の信号を伝送するために適したパスとすることができる。
【0026】
データパス106,112および114は直接接続とするか、あるいは中間回路を含むか、またはその両方とすることができる。中間回路は、例えばレジスタ、配線回路、マルチプレクサ、または種々の信号の表示/非表示、能動化/非能動化またはその両方を適宜な時間に実行してデータのロードならびにチェックサムの計算を行うことができるその他の適宜な回路とすることができる。
【0027】
図2には、プログラマブルロジックリソース構成データ104およびFSM108とCRCモジュール116との間のパス内に中間回路202を備えている例示的なプログラマブルロジックリソース200のブロック線図が示されている。図示されている構成要素間の交信を実行するパスのいずれもが適宜な中間回路を備え得ることが理解される。
【0028】
図1を参照すると、CRCモジュール116はチェックサム計算回路118と比較回路122を含んでいる。チェックサム計算回路118は、パス112を介してプログラマブルロジックリソース構成データを受信する。このチェックサム計算回路118はプログラマブルロジックリソース構成データ104上でチェックサムを計算し、これはCRCチェックサム分析で使用することができる。プログラマブルロジックリソース構成データ104上でチェックサムを計算するために任意の好適な方法を使用することができる。例えば、CRC−32IEEE802規格の多項式:
【0029】
【数1】
G(X)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1 (1)
【0030】
とすることができる管理式をチェックサムの形成のために使用することができる。
【0031】
一実施例において、チェックサムは例えばデータ(例えばプログラマブルロジックリソース構成データ104)のモジューロ(mod)をとって管理式(1)によって行われ、これはデータを管理式で除算した際の剰余である。別の実施例において、データ上でモジューロ操作が行われる前にデータ上でシフト操作を行うことができる。本発明においてはチェックサムを形成するためにその他の好適な管理式を使用し得ることが理解される。
【0032】
プログラマブルロジックリソース構成データ104がCRCモジュール116ロードされる際、期待値102がCRCモジュール116にロードされる。期待値102は、任意の適宜なソースから受信することができる。一実施例において期待値はプログラマブルロジックリソース100にデータをプログラムする際にソフトウェアを使用して計算することができる。別の実施例において、期待値はプログラマブルロジックリソース100にデータをプログラムする際にCRCモジュール116を使用して計算することができる。例えば、プログラマブルロジックリソース100にデータがプログラムされる際に、データはさらにCRCモジュール116にも伝送され、そこで期待値が計算される。期待値はCRCモジュール116内でチェックサムを計算するためのものと同一のチェックサム計算を使用して計算することが好適である。
【0033】
本発明の一実施例おいて、プログラマブルロジックリソース構成データ104はチェックサムを形成するためにチェックサム計算回路118に伝送することができる。計算されたチェックサムはデータパス120を介して比較回路122に伝送される。計算されたチェックサムは比較回路112内において適宜なロジックゲートまたはロジックゲートの組み合わせ(例えばコンパレータ、XORゲート、減算器等)を使用して期待値102と比較される。チェックサムと期待値102との間に予め設定された関係(例えばチェックサムと期待値102とが等しいか、チェックサムと期待値102とが予め設定された偏差または倍数をもって異なっている)が成立する場合、比較回路122はエラーが検出されないことを示す出力(例えば二進“0”)を形成する。しかしながら、チェックサムと期待値102との間にこの予め設定された関係が成立しない場合(例えばチェックサムと期待値102とが異なっているか、チェックサムと期待値102とが別の偏差をもって異なっている場合)、比較回路122はエラーが検出されたことを示す出力(例えば二進“1”)を形成する。この比較回路122の出力はパス124を介してCRCエラー端子126に伝送される。CRCエラー端子126はプログラマブルロジックリソース構成データ104内のエラーの存在を監視するためにユーザがアクセスすることができる。
【0034】
本発明の別の実施例において、チェックサムを計算するためにプログラマブルロジックリソース構成データ104および期待値102を共にチェックサム計算回路118に伝送することができる。例えば、プログラマブルロジックリソース構成データは管理式の次数に等しいビット数によって乗算あるいはシフトすることができる(例えば、CRC−32IEEE802規格において、この次数は最上項の指数であり32となる)。期待値102(これは同じ計算方式で計算される)はプログラマブルロジックリソース構成データ104の末端に添付し(すなわち期待値102を示すビットがプログラマブルロジックリソース構成データ104を示すデータに添付される)、チェックサム計算回路118を介して伝送することができる。
【0035】
計算されたチェックサムはその後データパス120に沿って比較回路122に伝送される。比較回路112内において、適宜なロジックゲートまたはロジックゲートの組み合わせ(例えばコンパレータ、ORゲート、加算器等)を使用して計算されたチェックサム上でロジック操作が行われる。チェックサムが予め設定された所定の数値に等しい場合(例えばチェックサムが0、あるいはチェックサムが予め設定された偏差である場合)、比較回路122はエラーが検出されないことを示す出力(例えば二進“0”)を形成する。しかしながら、チェックサムが予め設定された数値と異なる数値である場合(例えばチェックサムが0でない、あるいはチェックサムが予め設定された偏差でない場合)、比較回路122はエラーが検出されたことを示す出力(例えば二進“1”)を形成する。比較回路122はエラーが検出されたかどうかに従っていずれかの適宜な出力を形成する。この比較回路122の出力はパス124を介してCRCエラー端子126に伝送される。
【0036】
図3には例示的なプログラマブルロジックリソース300のブロック線図が示されている。CRCモジュール320は、マルチプレクサ322および332とXORツリー324とレジスタ326,328,330および334と例えばORゲート336等の1つまたは複数のロジックゲートを備えている。プログラマブルロジックリソース構成データ104および期待値102はマルチプレクサ322に入力することができる。マルチプレクサは、FXM108によって検出された選択信号の数値に従って入力のうち一方を選択してその出力に伝送する。例えば、FSM108は、選択信号を第1の二進数ビット(例えば二進数“0”)に設定し、これはマルチプレクサ322にパス112を介してプログラマブルロジックリソース構成データ104を受信するための第1の入力を選択して出力へ伝送することを指令するものとすることができる。プログラマブルロジックリソース構成データ104を出力へ伝送した後、FSM108は、選択信号を第2の二進数ビット(例えば二進数“1”)に設定し、これはマルチプレクサ322にパス110を介して期待値102を受信するための第2の入力を選択して出力へ伝送することを指令するものとすることができる。マルチプレクサ322の出力はXORツリーに伝送され、そこでチェックサムが計算される。
【0037】
一実施例において、XORツリー324は式(1)のCRC−32IEEE802規格の管理式を使用してチェックサムを計算することができる。任意の適宜な管理式を使用することができるが、期待値102の計算にも同じ管理式を使用することが好適である。XOR324が期待値102に後続しているプログラマブルロジックリソース構成データ104を受信すると、XOR324がロードされたデータを処理する。XORツリー324の出力はレジスタ326に結合され、ここで後続する処理のための後続するサイクル中においてXORツリー324にデータを返信することができる。レジスタ326は、ラッチ、フリップフロップ(例えばDフリップフロップ、J−Kフリップフロップ)、またはクロックメカニズムによって制御される適宜な記憶装置とすることができる。XORツリー324およびレジスタ326は、チェックサム計算回路118の一部を形成することができる。
【0038】
マルチプレクサ322を介してデータを伝送し、XORツリー324に直列、並列あるいはその組み合わせによってロードすることができる。一実施例において、1クロックサイクルごとに1つのデータビットをロードしてXORツリー324内で処理することができる。別の実施例においては、1クロックサイクルごとに複数(例えば2,8,16)のデータビットをロードしてXORツリー324内で処理することができる。
【0039】
図4には入力402としてXORツリー324に伝送されるデータ列が示されている。プログラマブルロジックリソース構成データ104は複数のフレーム406(例えばM個のフレーム)に分割することができる。データ104は1つの時点において1つのフレーム406にロードされる(例えばフレーム1、フレーム2、・・・フレームM)。各フレーム406内において複数のビット(例えばNビット)404が一時点にロードされる。データは最も重要なビットから最も重要でないビットへとロードすることができる。各クロックサイクル内において、各ビット404が異なったデータパス402(例えばI1,I2,...IN)を介してXORツリー324に伝送される。データ104がロードされた後、期待値が同様にXORツリー324にロードされる。ビットの総数(例えば構成データ104と期待値102の)が入力(N)の倍数でない場合、データ列に追加的なビット(例えば二進数“1s”および二進数“0s”)が埋め込まれる。これらの追加的なビットはデータ列の前端、データ列の後端、あるいはその他の適宜な位置に埋め込むことができる。
【0040】
XORツリー324およびレジスタ326は以下の行列式で実施することができる:
【0041】
【数2】
Q=A*q+B*IN (2)
【0042】
行列は1つまたは複数の行および1つまたは複数の列に配列されたデータからなり、以下の特性を有する。
【0043】
【数3】
【0044】
ここでRは行の数をCは列の数を示している。
【0045】
“A”はレジスタ326および管理式を示すd×dの行列であり、ここでdは管理式の最上項の次数である。“q”はレジスタ326内に現時点で記憶されている先のクロックサイクルからの内容を示すd×1の行列である。“B”は管理式内の各項の係数を示すd×1の行列である。“IN”は入力ビット402を示す定数である。“Q”は次のサイクル中のXORツリー324の出力(例えば先のクロックサイクル中にレジスタ326内に記憶された内容を使用しての入力402の処理の結果)を示すd×1の行列である。
【0046】
等式(2)に基づいて、クロックサイクル毎にN個の入力ビットを処理するための等式は以下のものとなる:
【0047】
【数4】
【0048】
図5には、XORツリー324およびレジスタ326を含んだ回路500の一実施例が示されている(例えばチェックサム計算回路118)。回路500はクロックサイクル毎に1つの入力ビット(例えばI1)を処理する。一例を挙げると、管理式は以下のように示される:
【0049】
【数5】
G(X)=X5+X3+1 (8)
【0050】
式(8)においてG(X)の次数が5であるため、XORツリー324の出力を記憶するために5つのレジスタ326が存在する。回路500の出力は等式(4)によって示され、その行列は以下のようになる:
【0051】
【数6】
【0052】
【数7】
【0053】
【数8】
【0054】
“A”は最初の4つの列がレジスタ326を示し最後の列が管理式(8)の項の係数を示す5×5の行列である。“q”はレジスタ326の内容を示す5×1の行列である(例えば、q1,q2,q3,q4およびq5はそれぞれレジスタ510,520,530,540および550の内容を示す)。“B”は管理式(8)の項の係数を示す5×1の行列である。式(9),(10)および(11)を等式(3)に代入すると、以下の出力が得られる:
【0055】
【数9】
【0056】
Q1は次のサイクル中のレジスタ326の内容を次のように示す5×1の行列である:(q5+I1),q1,q2,(q3+q5+I1)およびq4。Q1の出力は二進数(例えば“0”または“1”)でありXORゲートを使用して達成することができる。
【0057】
回路500はXORゲート502および504とレジスタ510,520,530,540および550を含み、これらは単一のクロックによって制御されるレジスタ326の一部とすることができる。レジスタ510への入力はXORゲート502の出力であり、その入力はI1(マルチプレクサ322の出力からのもの)と現状のレジスタ550の内容である。次のサイクルにおいて、レジスタ510の内容はQ1(1,1)=q5+I1となる。レジスタ520の入力はレジスタ510の現状の内容であり、従って次のサイクルにおいてレジスタ520の内容はQ1(2,1)=q1となる。レジスタ530への入力はレジスタ520の現状の内容であり、従って次のサイクルにおいてレジスタ530の内容はQ1(3,1)=q2となる。レジスタ540への入力はXORゲート504の出力であり、その入力はI1とレジスタ530および550の現状の内容である。XORゲート504は1個の3入力XORゲートあるいは2個の2入力XORゲートを使用して構成することができ、ここで入力のうちの2つが第1のXORゲートを通じてこの第1のXORゲートの出力と共に伝送され、第3の入力は第2のXORゲートを通じて伝送される。次のサイクルにおいてレジスタ540の内容はQ1(4,1)=q3+q5+I1となる。レジスタ550の入力はレジスタ540の現状の内容であり、従って次のサイクルにおいてレジスタ550の内容はQ1(5,1)=q4となる。図示されていないが、レジスタ510,520,530,540および550の内容はシグニチャレジスタ328への入力としても伝送される。
【0058】
図6には、XORツリー324およびレジスタ326を含む回路600の別の実施例が示されている。回路600は同じ管理式(8)を使用しており、サイクル毎に3つの入力ビット(例えば、I1,I2,I3)を処理する。式(9),(10)および(11)を等式(5)に代入すると、以下の出力が得られる:
【0059】
【数10】
【0060】
回路600はXORゲート602,604,606,608および610とレジスタ620,630,640,650および660を備えており、これらは1つのクロックによって制御されるレジスタ326の一部とすることができる。レジスタ620への入力はXORゲート602の出力であり、その入力はI1およびI3(共にマルチプレクサ322からの出力である)とレジスタ640および650の現状の内容である。次のサイクルにおいて、レジスタ620の内容はQ3(1,1)=q3+q5+I1+I3となる。レジスタ630への入力はXORゲート604の出力であり、その入力はI2(マルチプレクサ322からの出力)とレジスタ650の現状の内容である。次のサイクルにおいて、レジスタ630の内容はQ3(2,1)=q4+I2となる。レジスタ640への入力はXORゲート606の出力であり、その入力はI1とレジスタ660の現状の内容である。次のサイクルにおいて、レジスタ640の内容はQ3(3,1)=q5+I1となる。レジスタ650への入力はXORゲート608の出力であり、その入力はI1およびI3とレジスタ620,640および660の現状の内容である。次のサイクルにおいて、レジスタ650の内容はQ3(4,1)=q1+q3+q5+I1+I3となる。レジスタ660への入力はXORゲート610の出力であり、その入力はI2とレジスタ630および650の現状の内容である。次のサイクルにおいて、レジスタ660の内容はQ3(5,1)=q2+q4+I2となる。XORゲート602,608および610は適宜なXORゲートまたはその組み合わせを使用して実施することができる。図示されていないが、レジスタ620,630,640,650および660の内容はシグニチャレジスタ328への入力としても伝送される。
【0061】
回路500および600は、説明上、クロックサイクル毎にそれぞれ1ビットおよび3ビットの入力を取り込んで管理式(8)に基づいたチェックサムの計算を実行するものに関して記述する。しかしながら、XORツリー324は任意の適宜な管理式(例えばCRC−32IEEE802規格)およびクロックサイクル毎に任意の入力ビット数を使用して実施することができる。
【0062】
入力402としてXORツリー324にデータが伝送されると、レジスタ326の内容が更新される。プログラマブルロジックリソース構成データ104および期待値102が処理された後、レジスタ326の内容が結果のチェックサムを保持する。一実施例において、以下に証明するように、エラーが検出されない場合結果のチェックサムは0となる。
【0063】
変数G(X),M(X),Q(X),EVおよびμ(X)は以下のものを示している。
【0064】
【数11】
G(X)=CRC−32 IEEE802規格;
M(X)=プログラマブルロジックリソース構成データ104;
Q(X)=比=M(X)/Q(X);
EV =期待値=M(X)(mod)G(X);
μ(X)=入力402として伝送されるデータ (14)
【0065】
期待値を計算するためにM(X)上でチェックサム計算を実行する際に、以下の式が導出される:
【0066】
【数12】
X32M(X)≡EV(mod)G(X) (15)
【0067】
ここで記号“≡”は合同を示しており、EV(mod)G(X)に同等な剰余の等級に相応するものである(ここでEVは等級内において最も小さな要素である)。M(X)は以下のように定義される:
【0068】
【数13】
X32M(X)=Q(X)G(X)+EV (16)
【0069】
XORツリー324への入力402は以下のように示される:
【0070】
【数14】
μ(X)=X32M(X)+EV (17)
【0071】
M(X)は偏差X32(すなわち管理式G(X)の次数)によってM(X)に添付された期待値と共に乗算あるいはシフトされる。等式(17)について代数学的操作を行うことによって以下のものがのものがhれる:
【0072】
【数15】
1.両辺をX32によって乗算する:
X32μ(X)=X32[X32M(X)+EV]
2.X32M(X)に等式(16)を代入する:
X32μ(X)=X32[Q(X)G(X)+EV+EV]
3.合同式で記載する:
X32μ(X)≡X32[EV+EV]≡2EV≡0 (18)
【0073】
X32Q(X)G(X)の項は((mod)G(X))の倍数であり、従って合同式においては存在しない。2EVのXORは二進形式の0に合同である(すなわち両方の入力が等しい場合、2入力XORゲートの出力は0となる)。
【0074】
以下に、XORツリー324およびレジスタ326の一実施例がどのように機能するかについて簡略的に説明する。プログラマブルロジックリソース内にプログラムされたデータがデータビット列b110110001を含んでいると仮定すると、これは以下の多項式で示すことができる:
【0075】
【数16】
M(X)=X8+X7+X5+X4+1 (19)
【0076】
管理式もデータビット列b101001であると仮定すると、これは管理式(8)を示すものとなる。プログラマブルロジックリソース内でデータM(X)をプログラムする前に期待値が計算される。期待値(EV)は、XORツリー324内においてチェックサムを計算する場合と同じ方式を使用してデータM(X)を管理式G(X)によって除算した際に得られる剰余である:
【0077】
【数17】
EV=X5M(X)(mod)G(X)=X3+X2 (20)
【0078】
(すなわち、これはb10111である)。XORツリー324はプログラマブルロジックリソース構成データ104を管理式の次数によって乗算あるいはシフトするとともにチェックサムを計算するために期待値102をプログラマブルロジックリソース構成データ104に添付するため、期待値102を計算すためにデータM(X)も同様に次数によって乗算あるいはシフトされる。
【0079】
プログラマブルロジックリソース構成データ104としてデータがプログラムされた後、エラー検出の開始を示すフラグを立てることができる。以下の式は変更されていない(すなわちエラーの存在しない)プログラマブルロジックリソース構成データ104の処理を示している:
【0080】
【数18】
P(X)=M(X) (21)
【0081】
図7ないし図15を参照しながら以下に詳細に記述するように、このプログラムされたデータはXORツリー324に伝送される。プログラムされたデータがXORツリー324内にロードされた後、以下のように期待値がXORツリー324内にロードされる:
【0082】
【数19】
X5P(X)+EV=X13+X12+X10+X9+X5+X3+X2
=b11011000101100 (22)
【0083】
式(22)を管理式G(X)によって除算した際に得られる剰余は0であり、エラーが存在しないと考えることができる。
【0084】
【数20】
(X5P(X)+EV)(mod)G(X)=b0 (23)
【0085】
XORツリー324がクロックサイクル毎に1つの入力(例えばI1)を受け入れる場合、XORツリー324は図5に示されるように実施される(管理式(8)に対して)。表1は回路500がチェックサムを計算する際のレジスタ510,520,530,540および550の内容を示している。
【0086】
【表1】
【0087】
回路500の出力は0になる。
【0088】
XORツリー324がクロックサイクル毎に3つの入力(例えばI1,I2,I3)を受け入れる場合、XORツリー324は図6に示されるように実施される(管理式(8)に対して)。クロックサイクル毎に複数(例えば3)の入力ビットがXORツリー324に伝送されるため、データ流の先端に追加的なビット(例えば二進数“0”)が埋め込まれる。表2は回路600がチェックサムを計算する際のレジスタ620,630,640,650および660の内容を示している。
【0089】
【表2】
【0090】
回路600の出力は0である。
【0091】
以下の式は変更されている(すなわちエラーが存在する)プログラマブルロジックリソース構成データ104の処理を示している:
【0092】
【数21】
P(X)=X8+X7+X5+1 (24)
【0093】
P(X)は反転した1つのビットを有している。プログラムされたデータおよび期待値は以下のようにXORツリー324内にロードされる:
【0094】
【数22】
X5P(X)+EV=X13+X12+X10+X5+X3+X2
=b11010000101100 (25)
【0095】
多項式(25)を管理式(8)によって除算した際に得られる剰余は0でなく、エラーが存在することを示している。
【0096】
【数23】
(X5P(X)+EV)%G(X)=b11101 (26)
【0097】
表3は回路600がチェックサムを計算する際のレジスタ620,630,640,650および660の内容を示している。
【0098】
【表3】
【0099】
レジスタ620,630,640,650および660の出力は0でなく、エラーの存在を示している。
【0100】
図3を参照すると、各クロックサイクルの後にレジスタ326の内容がシグニチャレジスタ328に伝送される。XORツリー324内においてプログラマブルロジックリソース構成データ104および期待値102が処理された後、シグニチャレジスタは計算されたチェックサムを含んでいる。シグニチャレジスタ328の内容はクロックサイクル毎に更新されるため、シグニチャレジスタ328の内容が有効である際(すなわち計算されたチェックサムがシグニチャレジスタ328内に記憶された後)にFSM108がシグニチャレジスタ328の内容を記憶するようにアップデートレジスタ330に命令する。
【0101】
ユーザは計算されたチェックサムまたは期待値102のいずれかを参照することができる。計算されたチェックサムを監視することによって、ユーザは検出されたエラーの特徴を判断することができる。例えば、ユーザはエラーが不規則なもの(例えば複数回の計算において異なったチェックサムが算定される)であるか、あるいは同じエラーが繰り返し生じるもの(例えば複数回の計算において等しいチェックサムが算定される)であるかを判断することができる。
【0102】
ユーザは任意の適宜な方式によって計算されたチェックサムまたは期待値102を参照することができる。一実施例において、各マルチプレクサ332がアップデートレジスタ330から1ビットを取り込み期待値102から1ビットを入力として取り込む。いずれの数値をユーザが参照したいかに従って、FSM108がアップデートレジスタ330からのデータあるいは期待値102のいずれを選択するかマルチプレクサ332に命令する。各マルチプレクサ332の出力はシフトレジスタ334に伝送される。シフトレジスタ334はプログラマブルロジックリソース300によってアクセス可能であるとともにその内容をユーザロジックが読み取ることができる。
【0103】
データがシフトレジスタ334からアクセスされる際にチェックサムに影響を与えてエラーが発生し得る。より精密にエラーを検出する方式において、一度計算されたチェックサムがシグニチャレジスタ328内に存在すると、シグニチャレジスタ328内の各ビットをORゲート336の独立した入力に伝送することができる。ORゲート336はシグニチャレジスタのビット数に等しい数の入力を備えた1つのゲートを有するか、あるいはそれぞれより少数の入力を備えたゲート群からなるカスケードを有するか、あるいはシグニチャレジスタビットを比較するためのその他の適宜な方式とすることができる。シグニチャレジスタの全てのビットが二進数“0”である場合、ORゲート336の出力は二進数“0”となり、エラーが検出されなかったことを示している。1つあるいは複数のシグニチャレジスタのビットが二進数“1”である場合、ORゲート336の出力は二進数“1”となり、エラーが検出されたことを示している。ORゲート336の出力はCRCエラー端子338に伝送され、これはユーザロジックによって監視することができる。CRCエラー端子338は1データビットを保持することができ、これにおいて1つ目の数値はエラーが検出されなかったことを示し、一方第2の数値はエラーが検出されたことを示している。他方、CRCエラーピン338は例えば発光ダイオード(LED)等の表示装置を有することができ、これはエラーが検出された際に信号を発する(例えばLEDの発光)。エラーの存在を信号化するた化するた他の適宜な方式を使用することができる。
【0104】
FSM108はデータのサンプリングを調整するためにCRCモジュール320内の種々のレジスタに信号を送信する。例えば、FSM108は、XORツリー324が処理を終了してシグニチャレジスタ328がチェックサムを記憶した後にアップデートレジスタ330にクロック能動化信号を伝送する。クロック能動化信号は、シグニチャレジスタ328がレジスタ326からのデータを読み込んでいる際に同時にアップデートレジスタ330がシグニチャレジスタ328の内容を読み込むことがないように調整される。ユーザがチェックサムまたは期待値102の参照を要求した際にのみデータがマルチプレクサ332を介してシフトレジスタ334に伝送される。
【0105】
図7には、本発明の一実施例に従ってログラマブルロジックリソースのメモリコア700が示されている。メモリコア700は、アドレスレジスタ706と制御ロジック712とログラマブルロジックリソース構成データ714とデータレジスタ722とを含んでいる。データ714はデータセル716の行と列からなる行列に構成することができ、ここで各データセル716がそれぞれ1つの二進数字を含んでいる。行列に構成されたデータ714に対して、データ線718をセル716の各行と結合し、アドレス線720をセル716の各列と結合することができる。
【0106】
プログラマブルロジックリソース構成データ714は任意の適宜な構成で組織することができ、データセル716は任意の適宜な形式でデータ線およびアドレス線と結合することができる。簡略化および明瞭化のため、前記のデータ714は、データセル716の行を横断して延在するデータ線718とデータセル716の列を横断して延在するアドレス線718とを有するデータセル716の行列として具体的かつ明確に説明される。
【0107】
アドレスレジスタ706はデータセル716の所定の列をロードするためにアドレス線720を選択するよう使用することができる。セル716の各列は1つのフレームを示すことができ、またアドレスレジスタ706内の異なったアドレスビットとそれぞれ結合することができる。アドレスレジスタ706はフレームの数に等しいビット数を有することができ、アドレスレジスタ706内の各ビットはそれぞれ1つのアドレス線720に対応している。
【0108】
アドレスレジスタ706は2つの入力信号を有し、それらはアドレスレジスタ入力(AINPUT)信号702およびアドレスレジスタクロック(ACLOCK)信号704である。入力信号702はアドレスレジスタクロック信号704によって第1のパルスをもって提示され(例えば二進数“1”に設定)、第1のフレームに相当するアドレスレジスタ706内の第1のビット位置を二進数“1”に設定させる。アドレスレジスタクロック信号704による第1のパルスの後に、入力信号702を非提示とすることができる(例えば、二進数“0”に設定)。アドレスレジスタクロック信号704による後続の各パルスによってアドレスレジスタ706内の二進数“1”が1ビット位置ずつシフトされ、次のフレームのインデックスを形成する。アドレスレジスタ706の出力はデータパス708を介して制御ロジック712に伝送される。制御ロジック712はアドレス能動化(AENABLE)信号710によって制御され、これは1つのアドレス線720を適宜な時間に選択することを可能にする。
【0109】
フレームが選択されると選択されたデータセル716内に記憶された二進数字が所定のデータ線718上に書き込まれ、そこでデータレジスタクロック信号724がパルス発信されている際にデータレジスタ722内にロードされる。データレジスタ722は、フレームロード中にのみ使用し得る専用レジスタとするか、あるいは異なった時間に異なった機能を行うための共有レジスタとすることができる(例えばデータレジスタ722はプログラマブルロジックリソース上へのプログラマブルロジックリソース構成データ714の形成中に使用されるレジスタと同じレジスタとすることができる)。続いて、データレジスタ722の内容はパス726を介してエラー検出回路に伝送される。
【0110】
図8には、本発明の一実施例に係るプログラマブルロジックリソース内のメモリコア800がより詳細に示されている。メモリコア800は、アドレスレジスタ入力(AINPUT)信号802およびアドレスレジスタクロック(ACLOCK)信号804の入力を備えたアドレスレジスタ806を有している。アドレスレジスタ806内の各ビット位置はパス808を介してそのビット値を入力ANDゲート812に伝送し、これは制御ロジック712の一部とすることができる。各ANDゲート812への第2の入力はアドレス能動化信号810である。両方の入力が二進数“1”である場合出力は二進数“1”となる。ANDゲート812の出力は所定のアドレス線826を介して伝送される。アドレスレジスタ806内の殆どの1ビット値がいずれのサイクルでも“1”に設定されるため、いずれのクロックサイクルでも殆どの単一アドレス線が能動化される。データセル814のフレームが各アドレス線826に結合され、データセルは例えば構成RAM(CRAM)またはその他の適宜なメモリセルとすることができる。各データ線824にはデータセル814が結合される。
【0111】
各CRAMセル814は、例えば2個のトランジスタ816および822と2個のインバータ818および820とを含むことができる。トランジスタ816および822は、バイポーラトランジスタ(BJT)、電界効果トランジスタ(FET)、およびMOS電界効果トランジスタ(MOSFET)を含む適宜なトランジスタとすることができる。例えばトランジスタ816は、ソースノードが所定のデータ線824に結合され、ゲートノードが所定のアドレス線826に結合され、ドレインノードがインバータ818および820に結合されたMOSFETとすることができる。各インバータ818および820の入力は別のインバータ818および820の出力にそれぞれ結合される。トランジスタ822は、例えば、ソースノードがインバータ818および820に結合され、ゲートノードがクリア(CLR)信号に結合され、ドレインノードが共通アースに結合されたMOSFETとすることができる。クリア信号はデータビットをセル814にプログラムするために使用することができ、データビットを全般的に読み取るためには使用されない。
【0112】
各データセル814内の二進数字はノードAに提示される。データ線814が二進数“1”に設定(すなわち予め設定された電圧にプリチャージされる)されるとともにアドレス線826が二進数“1”に設定されると、対応するCRAMセル814内の数値が読み取られる。ノードAが二進数“1”を提示する場合、そのデータ線824がディスチャージされる(すなわち二進数“0”にされる)。ノードAが二進数“0”を提示している場合、そのデータ線824はプリチャージされた(すなわち二進数“1”設定された)にまま保持される。各データ線824上に読み込まれる数値は、データレジスタクロック(DCLOCK)信号830がパルス発信した際にデータレジスタ828に送信される。データレジスタ828にデータが伝送される前にデータの二進数表示を反転させるためのインバータを各データ線824に結合することができる。データパス832を介してデータレジスタ828からデータを読み取ることができる。データパス832は、シリアルバス、パラレルバス、またはこれらの組み合わせを含んだ、データを伝送するための適宜なパスとすることができる。データレジスタ828の内容全体またはデータの一部(例えば、1データビット、8データビット、16データビット、32データビット)を所定のサイクルにおいてパス832に伝送することができる。
【0113】
図9ないし図15には、CRCモジュール320等のエラー検出回路にデータをロードするための例示的なフローチャートが示されている。各フレームは、データビットの列か、データビットの行か、データビットのブロックか、あるいはその他の任意の適宜なデータビット構成を含むことができるが、ここでは明確化および具体化のために主にデータビットの列に関連して説明する。アドレスレジスタ内の1つのアドレスビットを各フレームに関連付けることができ、従って特定のアドレスビットが設定(例えば二進数“1”に)された際に対応するフレームが選択され得る。例えばCRAM等のメモリ内に記憶されたプログラマブルロジックリソース構成データ104は、一時点に1フレーム読み出すことができ、一時的なデータレジスタに記憶され、その後データはCRCモジュール320にロードされる。
【0114】
フロー900はステップ910においてアイドルモードで開始する。次にステップ920においてフロー900はエラー検出を開始するかどうか決定し、これはフラグによって示される。このフラグはCRAM内のデータにアクセスする必要があるアプリケーション(例えばエラー検出アプリケーションまたはその他の適宜なアプリケーション)が起動しようとしている際に立てられる。これは、例えばシステムがユーザモードである際に二進数“1”が提示されるレジスタ内の専用ビットによって発信することができる。フラグが立っていない場合、フロー900はステップ920に滞留する。フラグが立っている場合、フロー900はステップ1000に移動し、そこでフロー900は第1のフレームをデータレジスタにロードする準備を行う。
【0115】
図10は、ステップ1000をより詳細に示したフローチャートである。ステップ1002において、CRCモジュール320がプリセットされる。例えば、カウンタは0にリセットされ、レジスタ(例えば、レジスタ326、シグニチャレジスタ328、アップデートレジスタ330およびシフトレジスタ334)がクリアされる。ステップ1002においても、アドレスレジスタクロックが能動化され(例えば、ACLOCK信号704がパルス発信される)、アドレスレジスタ入力が提示され(例えば、AINPUT信号702が二進数“1”に設定される)、プリチャージカウンタが能動化される(例えば、PCOUNTERが付勢される)。データ線718が予め設定された電圧(例えばソース電圧)に完全にプリチャージされている際に、プリチャージカウンタが表示される。
【0116】
次にステップ1004において、全てのデータ線618がプリチャージされる。ステップ1004においては、アドレスレジスタクロック信号704が非能動化され、アドレスレジスタ入力信号702は非提示にされる。ステップ1006において、フロー1000はプリチャージカウンタが二進数“1”に設定されているかどうかを判断する。データ線718が完全にプリチャージされている際(例えば16サイクル後)に、プリチャージカウンタが二進数“1”に設定される。プリチャージカウンタが二進数“0”を維持した場合に、フロー1000はステップ1004に回帰する。
【0117】
プリチャージカウンタが二進数“1”に設定された場合に、フロー1000はステップ1008に移動し、そこでデータ線のプリチャージが停止され、プリチャージカウンタが非能動化され、さらに読み取りカウンタが能動化される(例えば、RCOUNTERが付勢される)。選択されたアドレスに対応するデータが対応するデータ線718上に完全に読み取られると(例えば、16サイクル後)、読み取りカウンタが表示される。
【0118】
ステップ1010において、第1のフレームに対するアドレス線(例えば、データセル716の第1の列はアドレス線1に対応する)が能動化(例えば、AENABLE信号710が二進数“1”に設定される)され、対応するセルの内容が対応するデータ線718上に読み取られる。ステップ1012において、フロー1000は読み取りカウンタが二進数“1”に設定されているかどうかを判断する。読み取りカウンタが依然として二進数“0”に設定されている場合、フロー1000はステップ1010に回帰し、そこでアドレス能動化信号710が能動状態に保持され、データ線718上へのデータの読み取りが継続される。例えば、図8に示されたCRAMデータセルに対して、CRAMデータセル814内に二進数“0”が示されると(例えば、ノードAにおいて)、対応するデータ線824がプリチャージされた状態に維持される。CRAMデータセル814内に二進数“1”が示されると、対応するデータ線824がディスチャージされる。データ線824が0Vまで充分にディスチャージされることを確認するために、複数サイクル(例えば16サイクル)にわたってデータ線824上にデータが読み取られる。読み取りカウンタが二進数“1”に設定された場合、フロー1000はステップ1014に移動し、そこで読み取りカウンタが非能動化され、データレジスタクロックが能動化される(例えば、DCLOCK信号724が付勢される)。
【0119】
図9を参照すると、レジスタ722に第1のフレームをロードすることが準備できている際に、フロー900はステップ1100に移動し、そこで最終フレームを除く全てのフレームがデータレジスタ722にロードされる。
【0120】
図11および図12は、ステップ1100におけるCRCモジュール320へのロードをより詳細に示したフローチャートである。ステップ1102において、データ線718上に現存する第1のフレームからのデータがデータレジスタ722内にロードされる。ステップ1102において、アドレス能動化信号710が非能動化され、さらにデータレジスタカウンタが能動化される(例えば、DCOUNTERが付勢される)。データレジスタ722内の予め設定された数のデータビットがCRCモジュール320にロードされた際に(残留ビットを除いて、全てのビット、例えば34ビット、がロードされた際等)、データレジスタカウンタが表示される。この予め設定された数は任意の好適な数とすることができ、各フレームをデータレジスタ722にそして実質的にCRCモジュール320にロードするために能動化および提示される多様な信号に適応するものである。
【0121】
ステップ1104において、その時点においてデータレジスタ722上に記憶されている第1のフレームからのデータがCRCモジュール320内にロードされる(例えば、マルチプレクサ322に伝送されその後チェックサム計算を開始するためにXORツリーに伝送される)。クロックサイクル毎に予め設定された数のビット(例えば、8ビット、16ビット、あるいはその他の任意の好適なビット数)がデータレジスタ722からCRCモジュール320に伝送される。次にステップ1106において、フロー1100はデータレジスタカウンタが二進数“1”に設定されているかどうかを判断する。データレジスタカウンタが二進数“0”である場合、フロー1100はステップ1104に回帰し、そこで次の予め設定された数のビットがCRCモジュール320にロードされる。
【0122】
データレジスタカウンタが二進数“1”に設定されている場合、フロー1100はステップ1108に移動し、そこでデータレジスタカウンタが非能動化され、アドレスレジスタクロック信号704が能動化され、またプリチャージカウンタが能動化され(例えば、二進数“0”に設定され付勢される)次のフレームのロードの準備状態となる。アドレスレジスタクロック信号704は、第1のアドレス線720にインデックスを付している二進数“1”をシフトして次のアドレス線720にインデックスを付ける。ステップ1108においても、データレジスタ722からの次の予め設定された数のビットがCRCモジュール320にロードされる。
【0123】
ステップ1110においては、全てのデータ線718がプリチャージされ、アドレスレジスタクロック信号704が非能動化され、データレジスタ722からの次の予め設定された数のビットがCRCモジュール320にロードされる。ステップ1112において、フロー1100はプリチャージカウンタが二進数“1”に設定されているかどうかを判断するプリチャージカウンタが二進数“0”である場合、フロー1100はステップ1110に回帰する。予め設定された数のサイクル(例えば16サイクル)にわたってCRCモジュール320にデータがロードされると、この予め設定されたサイクル数のうちのいずれか1つまたは一定の範囲中に前記の次の予め設定された数のビットがCRCモジュール320にロードされる。ビットは、1サイクルあるいは複数サイクルにわたって並列に読み取るか、前記の予め設定されたサイクル数にわたって直列に読み取るか、あるいは直列および並列の読み込みを組み合わせて行うことができる。
【0124】
プリチャージカウンタが二進数“1”に設定されている場合、フロー1100はステップ1114に移動し、ここでデータ線のプリチャージが停止され、プリチャージカウンタが非能動化され、また読み込みカウンタが能動化される(例えばRCOUNTERが二進数“0”に設定されて付勢される)。ステップ1116において、次のフレームに対するアドレス線が能動化され(例えば、AENABLE信号710を二進数“1”に設定する)、次のフレーム内のセル716の内容が対応するデータ線718上に読み取られる。ステップ1116においても、データレジスタ722からの次の予め設定された数のビットがCRCモジュール320にロードされる。ステップ1118において、フロー1100は読み取りカウンタが二進数“1”に設定されているかどうかを判断する。読み取りカウンタが二進数“0”である場合、フロー1100はステップ1116に回帰する。予め設定された数のサイクル(例えば16サイクル)中にデータ線618上にデータが読み取られると、この予め設定されたサイクル数のうちのいずれか1つまたは一定の範囲中に前記の次の予め設定された数のビットをデータレジスタ722から読み取ることができる。
【0125】
読み取りカウンタが二進数“1”に設定されている場合、フロー1100はステップ1120に移動し、そこでデータレジスタ722内のその時点のフレームの最終ビットの次のものがCRCモジュール320にロードされ、フレームカウンタが増加され(これはN++で示され、ここでNはデータ線618上にロードされているその時点のフレームである)、そして読み取りカウンタが非能動化される。ステップ1222において、フロー1100はそのフレームが最終フレームであるかどうかを判断する。フレームが最終フレームでない場合、フロー1100はステップ1124に移動し、そこでその時点でデータレジスタ722内にあるフレーム(例えばフレームN−1)の最終ビットがCRCモジュール320にシフトされ、その時点でデータ線718上にデータがある、次のフレームがデータレジスタ722にロードされ、アドレス能動化信号710が非能動化され、そしてデータレジスタカウンタが能動化される(例えば、DCOUNTERを二進数“0”にリセットして付勢する)。フロー1100は、その後ステップ1104に回帰し、その時点でデータレジスタ722内にあるフレームがCRCモジュール320にロードされ、その間に後続するフレームがデータレジスタ722にロードするために準備される。
【0126】
図9を参照すると、フレームが最終フレームである場合に、フロー900がステップ1300に移動し最終フレームをCRCモジュール320にロードする。図13および図14はステップ1300における最終フレームのロードをより詳細に示したフローチャートである。ステップ1302において、その時点にデータレジスタ722内にあるフレーム(すなわち最終フレームに隣接するフレーム)からの最終ビットがCRC回路320にロードされる。ステップ1302においても、最終フレームからのデータがデータ線718からデータレジスタ722にロードされ、アドレス能動化信号710が非能動化され、データレジスタカウンタが能動化される。
【0127】
フロー1300はその後ステップ1304に移動し、そこで最終フレーム内の予め設定された数のデータビットがCRC回路320にロードされる。ステップ1306において、データレジスタカウンタが二進数“0”である場合、フロー1300はステップ1304に回帰する。データレジスタカウンタが二進数“1”に設定されている場合、フロー1300はステップ1308に移動し、そこでデータレジスタカウンタが非能動化され、アドレスレジスタクロック信号704が能動化され、プリチャージカウンタが能動化され、そして最終フレーム内の予め設定された数のデータビットがCRC回路320にロードされる。
【0128】
ステップ1310において、データ線718がプリチャージされ、アドレスレジスタクロック信号704が非能動化され、最終フレームの次のビットがCRC回路320にロードされる。次に、ステップ1312において、フロー1300はプリチャージカウンタが二進数“1”に設定されているかどうかを判断する。プリチャージカウンタが二進数“0”に留まっている場合、フロー1300はステップ1310に回帰する。プリチャージカウンタが二進数“1”に設定されている場合、フロー1300はステップ1314に移動し、ここでデータ線のプリチャージが停止され、プリチャージカウンタが非能動化され、読み込みカウンタが能動化され、また最終フレームの次のビットがCRCモジュール320にロードされる。ステップ1316において最終フレームの次のビットがCRCモジュール320にロードされる。次に、ステップ1318において、フロー1300は読み取りカウンタが二進数“1”に設定されているかどうかを判断する。読み取りカウンタが二進数“0”に留まっている場合、フロー1300はステップ1316に回帰する。読み取りカウンタが二進数“1”に設定されている場合、フロー1300はステップ1320に移動し、ここで読み取りカウンタが非能動化され、また最終ビットの次のものがCRCモジュール320にロードされる。ステップ1322において、最終フレームの最後のビットがCRCモジュール320にロードされ、ロードCRC信号が提示される。
【0129】
図9を参照すると、プログラマブルロジックリソース構成データ104の全てのフレームがCRCモジュール内にロードされると、フロー900はステップ1500に移動し、そこで期待値がCRCモジュール320にロードされる。
【0130】
図15は、クロックサイクル毎に入力8ビットデータとして受け入れるCRCモジュール320への32ビットのCRC期待値102のロードをより詳細に示したフローチャートである。ステップ1502において、CRC期待値102の第1のバイトがCRCモジュール320にロードされる。第1のバイトは最も重要なバイトとされ、最も重要なバイトから最も重要でないバイトへの順である。マルチプレクサ322を使用して期待値102を選択し、チェックサムを計算するためにXORツリー324に伝送することができる。ステップ1504において、CRC期待値102の次のバイトがロードされ、ステップ1506においてはCRC期待値102の第3のバイトがロードされ、ステップ1508においてはCRC期待値102の第4のバイトがロードされる。
【0131】
図9ないし図15についての記述は、クロックサイクル毎にデータレジスタ722または期待値102のうちの1つからの入力8データビットを受け入れるCRCモジュール320を使用する32ビット生成多項式の観点で説明する目的のものである。生成多項式を提供するために任意の適宜なビット数を使用することが可能であり、また任意のサイクルにおいて任意のビット数をCRCモジュール320にロードし得ることが理解される。しかしながら、これら2つの特徴に従って、データレジスタ722にデータをロードするタイミングならびにデータレジスタ722からCRCモジュール320にデータをシフトするタイミングが変化することに留意する必要がある。
【0132】
再度図9を参照すると、ステップ1500においてCRC期待値102がCRCモジュール320にロードされると、プロセス900はステップ920に回帰する。
【0133】
図16はプログラマブルロジックリソース上でエラー検出を実施する際に含まれる代表的なステップを示したフローチャートである。フロー1600は、プログラマブルロジックリソース構成データ104上のエラー検出の開始を示す信号を発信するステップ1602から開始する。図9ないし図15に関して説明したように、ステップ1604においてプログラマブルロジックリソース構成データ104がCRCモジュール320にロードされる。ステップ1606において、フロー1600は全てのプログラマブルロジックリソース構成データ104がCRCモジュール320にロードされているかどうかを判断する。プログラマブルロジックリソース構成データ104の全てはCRCモジュール320にロードされていない場合、フロー1600はステップ1604に回帰する。フロー1600はさらにステップ1608に移動し、そこでデータ上のチェックサム計算を開始する。全てのプログラマブルロジックリソース構成データ104がCRCモジュール320にロードされている場合、フロー1600はステップ1608および1610に移動する。ステップ1610において、期待値102がCRCモジュール320にロードされ、その後フロー1600はステップ1608に移動する。ステップ1608において、プログラマブルロジックリソース構成データ104および期待値102の最後の部分がCRCモジュール320にロードされると、XORツリー324が継続的にチェックサムを計算する。クロックサイクル毎に、ステップ1612においてチェックサム計算の結果がシグニチャレジスタ328にロードされる。
【0134】
結果のチェックサムがステップ1612においてシグニチャレジスタ328にロードされると、フロー1600はステップ1614に移動し、ここでシグニチャレジスタ328の各ビット上で論理“OR”演算が実行される。ステップ1616において、“OR”演算の結果がCRCエラー端子に出力される。フロー1600はその後ステップ1618に回帰する。
【0135】
図17には、データ処理システム1700内に設けられた本発明の実施例を含んだプログラマブルロジックリソース1702またはマルチチップモジュール1704が示されている。データ処理システム1700は以下の構成要素のうち1つまたは複数を備えており:それらはプロセッサ1706;メモリ1708;I/O回路1710;および周辺デバイス1712である。これらの構成要素はシステムバスまたはその他の相互接続要素1720を介して互いに結合され、エンドユーザシステム1740内に内蔵された回路基板1730上に装備されている。
【0136】
システム1700は、コンピュータネットワーキング、データネットワーキング、ビデオ処理、デジタル信号処理、またはプログラマブルあるいはリプログラマブルロジックの利点を活用することが望まれる、広範な適用形態で使用することができる。プログラマブルロジックリソースまたはモジュール1702/1704は多様なロジック機能を広範囲に実行するために使用することができる。例えば、プログラマブルロジックリソースまたはモジュール1702/1704はプロセッサ1706と組合されて動作するプロセッサまたはコントローラとして構成することができる。プログラマブルロジックリソースまたはモジュール1702/1704は、さらにシステム1700内の共有リソースへのアクセスを仲介するアービタとして構成することもできる。さらに別の例として、プログラマブルロジックリソースまたはモジュール1702/1704は、プロセッサ1706とシステム1700内の他の構成要素との間のインタフェースとして構成することもできる。システム1700は1つの例であり、本発明の視点ならびに精神は請求の範囲によってのみ定義されることは勿論である。
【0137】
本発明の特徴を有するプログラマブルロジックリソース1702またはマルチチップモジュール1704、ならびにこれらのデバイスの種々の構成要素(例えば、プログラマブルロジックコネクタ(“PLC”)およびこのPLCを制御するプログラム可能な機能制御要素(“FCE”))を実施するために多様な技術を使用することができる。例えば、各PLCは、いくつかの入力を1つの出力に接続するためのスイッチまたはスイッチ群等の比較的単純なプログラマブルコネクタとすることができる。他方、各PLCは、接続を行うだけでなくロジック(例えば、複数の入力のロジック結合)を実行することができるより複雑な要素とすることもできる。後者において、各PLCはAND、NAND、OR、またはNOR等の機能を実施するp項ロジックとすることができる。PLCを構成するために適した要素は、プログラマブルロジックリソース構成データを記憶するために使用することができるいずれかのタイプの揮発性あるいは不揮発性メモリとすることができ、EPROM、EEPROM、パストランジスタ、伝達ゲート、アンチヒューズ、レーザヒューズ、メタルオプショナルリンク等が挙げられる。PLCおよびその他の回路要素は、多様なプログラマブル機能制御要素(“FCE”)によって制御することができる。例えば、FCEはプログラマブルロジックリソース構成データを記憶するために使用することができるいずれかのタイプの揮発性あるいは不揮発性メモリとすることができる。さらに、FCEは、先入れ先出し(“FIFO”)メモリ、EPROM、EEPROM、機能制御レジスタ、強誘電メモリ、ヒューズ、アンチヒューズ等から構成することもできる。前述の多様な例から、本発明は一回のみプログラム可能なデバイスおよびリプログラム可能なデバイスの両方に適用可能であることが理解される。
【0138】
以上、プログラマブルロジックリソース上に設けられるエラー検出回路について説明した。当業者においては、前記の実施例は単に説明の目的のものであり、本発明はこれ以外の構成によっても実施可能であり、従って本発明はこれに限定されることはなく添付の請求の範囲によってのみ限定されることが理解される。
【図面の簡単な説明】
【図1】
本発明の一実施例に係るエラー検出回路を備えたプログラマブルロジックリソースを示すブロック線図である。
【図2】
本発明の別の実施例に係るエラー検出回路を備えたプログラマブルロジックリソースを示すブロック線図である。
【図3】
図1の本発明の一実施例に係るエラー検出回路を備えたプログラマブルロジックリソースを示すより詳細なブロック線図である。
【図4】
本発明の一実施例に係る複数入力XORツリーへの入力データを示す構成図である。
【図5】
本発明の一実施例に係るエラー検出回路において実施され得る例示的な単一入力XORツリーを示す構成図である。
【図6】
本発明の一実施例に係るエラー検出回路において実施され得る例示的な複数入力XORツリーを示す構成図である。
【図7】
本発明の一実施例においてプログラマブルロジックリソース構成データがどのように記録されるかを示すブロック線図である。
【図8】
本発明の一実施例においてプログラマブルロジックリソース構成データがどのように記録されるかを示す概略説明図である。
【図9】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図10】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図11】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図12】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図13】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図14】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図15】
本発明の一実施例に係るエラー検出回路内へのプログラマブルロジックリソース構成データのローディングに含まれている例示的なステップ示すフローチャートである。
【図16】
本発明の一実施例に係るプログラマブルロジックリソース上におけるエラー検出の実施に含まれている例示的なステップ示すフローチャートである。
【図17】
本発明の一実施例に係る回路を使用する例示的なシステムを示す概略ブロック線図である。
Claims (51)
- ロジックデバイス上に記憶された構成データ内のエラーを検出するものであり:
構成データが記憶されるメモリと;
前記メモリに結合されこのメモリ内に記憶された構成データを分析してメモリの初期の構成の後にいずれかの値が変更されているかどうかを判定するチェック回路、
とからなる回路。 - メモリはランダムアクセスメモリである請求項1記載のロジックデバイス。
- チェック回路は:
構成データに基づいて数値を計算するチェックサム回路と;
このチェックサム回路に結合され計算された数値を期待値と比較する比較回路とからなる、
請求項1記載のロジックデバイス。 - 計算された数値は構成データに基づいた数値を予め設定された数値によって除算した結果得られた剰余である請求項3記載のロジックデバイス。
- 期待値はロジックデバイスを設計するために使用される構成データから計算される請求項3記載のロジックデバイス。
- 期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値で除算した結果得られる剰余から計算する請求項5記載のロジックデバイス。
- 予め設定された数値はチェックサム回路によって使用されるものと同等な数値に基づいたものである請求項6記載のロジックデバイス。
- 期待値は構成データがロジックデバイス上にプログラムされている間にチェックサム回路によって計算される請求項3記載のロジックデバイス。
- 比較回路は:
エラーが検出されなかったことを示す第1の信号と;
エラーが検出されたかったことを示す第2の信号と、
のうちのいずれかを提供する請求項3記載のロジックデバイス。 - チェック回路は:
構成データに基づいた数値を計算する計算回路と;
計算回路に結合され計算された数値上でロジック操作を実行するロジック回路、
とを備える請求項1記載のロジックデバイス。 - 計算された数値は構成データに基づいた数値と期待値とを予め設定された数値によって除算して得られた剰余である請求項10記載のロジックデバイス。
- 期待値はロジックデバイスを構成するために使用される構成データから計算される請求項11記載のロジックデバイス。
- 期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する請求項12記載のロジックデバイス。
- 期待値は構成データがロジックデバイス上にプログラムされている間に計算回路によって計算される請求項11記載のロジックデバイス。
- ロジック回路は:
エラーが検出されなかったことを示す第1の信号と;
エラーが検出されたかったことを示す第2の信号と、
のうちのいずれかを形成するロジックを含んだ請求項10記載のロジックデバイス。 - メモリに結合された第2のメモリをさらに備え、この第2のメモリは構成でデータの一部を記憶する請求項1記載のロジックデバイス。
- チェック回路は第2のメモリに結合され構成データの一部上の分析の一部を実行する請求項16記載のロジックデバイス。
- チェック回路に入力される期待値を記憶するために使用される第2のメモリをさらに備える請求項1記載のロジックデバイス。
- 期待値はロジックデバイスを構成するために使用される構成データから計算される請求項18記載のロジックデバイス。
- 期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する請求項19記載のロジックデバイス。
- 期待値は構成データがロジックデバイス上にプログラムされている間にチェック回路によって計算される請求項18記載のロジックデバイス。
- チェック回路に結合されておりエラーが検出されたかどうかを示す信号を出力するための出力回路をさらに備える請求項1記載のロジックデバイス。
- 処理回路と;
前記処理回路に結合された第2のメモリと;
請求項1記載に定義されたロジックデバイスとからなるデジタル処理システム。 - 請求項1記載のロジックデバイスが実装されたプリント回路基板。
- プリント回路基板上に実装されるとともにロジックデバイスに結合された第2のメモリをさらに備える請求項24記載のプリント回路基板。
- 第2のメモリはロジックデバイスにプログラムされる構成データを記憶する不揮発メモリからなる請求項25記載のプリント回路基板。
- ロジックデバイス上に設けられるエラー検出回路であり:
期待値とロジックデバイス上に記憶された構成データとを入力として取り込むマルチプレクサと;
このマルチプレクサの出力に結合されるチェック回路とからなり、このチェック回路が:
多項式チェックサム計算を実行するXORツリーと、
このXORツリーに結合されたシグニチャレジスタと、
このシグニチャレジスタに結合されるロジックゲートとからなり、このロジックゲートはビット形式の入力として前記シグニチャレジスタの内容を取り込む、
エラー検出回路。 - 構成データが記憶される第1のメモリをさらに備える請求項27記載のエラー検出回路。
- 第1の回路に結合された第2のメモリをさらに備え、この第2のメモリがマルチプレクサの入力として伝送される構成データの一部を記憶する請求項28記載のエラー検出回路。
- 期待値を記憶するために使用されるメモリをさらに備える請求項27記載のエラー検出回路。
- 期待値はロジックデバイスを構成するために使用される構成データから計算される請求項30記載のエラー検出回路。
- 期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する請求項31記載のエラー検出回路。
- 期待値は構成データがロジックデバイス上にプログラムされている間にチェック回路によって計算される請求項30記載のエラー検出回路。
- マルチプレクサは第1に構成データを出力として伝送し第2に期待値を出力として伝送する請求項27記載のエラー検出回路。
- XORツリーはクロックサイクル毎に多項式チェックサム計算の結果を記憶するためのレジスタを備え、さらにその結果を次のクロックサイクルにおいてXORツリーに入力として伝送する請求項27記載のエラー検出回路。
- レジスタに記憶された結果は次のクロックサイクルにおいてシグニチャレジスタに伝送されその中に記憶される請求項35記載のエラー検出回路。
- XORツリーは構成データに基づいた数値および期待値を予め設定された数値によって除算した結果得られる剰余を計算する請求項27記載のエラー検出回路。
- ロジックゲートは出力として:
シグニチャレジスタの内容が予め設定された数値である際に第1のビット;
シグニチャレジスタの内容が予め設定された数値以外である際に第2のビットの;
いずれかを伝送する請求項27記載のエラー検出回路。 - ロジックゲートの出力に結合されるとともにエラーが検出されたかどうかを表示する信号を出力するための出力ピンをさらに備える請求項27記載のエラー検出回路。
- 出力端子はユーザロジックによってアクセス可能である請求項39記載のエラー検出回路。
- エラー検出回路はロジックデバイス上に設けられたハード配線回路である請求項27記載のエラー検出回路。
- エラー検出回路はロジックデバイスにプログラムされる請求項27記載のエラー検出回路。
- エラー検出回路はロジックデバイスの外部にあり入出力端子を使用してロジックデバイスと結合される請求項27記載のエラー検出回路。
- エラー検出回路はソフトウェア内で実施される請求項27記載のエラー検出回路。
- ロジックデバイス内にプログラムされる構成データのエラーを検出するものであり:
ロジックデバイス上にプログラムされる構成データに基づいて期待値を計算し;
ロジックデバイス上に記憶された構成データを分析してエラーが発生しているかどうかを判定することからなる方法。 - 期待値の計算はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算することからなる請求項45記載の方法。
- 期待値の計算はロジックデバイスの構成中において構成データがロジックデバイス上にプログラムされている間にこの構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算することからなる請求項45記載の方法。
- 構成データの分析は:
構成データに基づいた数値を計算し;
計算された数値を期待値と比較する、
ことからなる請求項45記載の方法。 - 構成データの分析は:
構成データに基づいた数値と期待値とを計算し;
計算された数値上においてロジック演算を実行する、
ことからなる請求項45記載の方法。 - エラーが検出されたかどうかを示す分析結果を出力することをさらに含む請求項45記載の方法。
- 結果の出力は:
エラーが検出されないことを示す第1の信号を送信するか;
エラーが検出されたことを示す第2の信号を送信するか、
のいずれか一方である請求項45記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32866801P | 2001-10-11 | 2001-10-11 | |
US60/328,668 | 2001-10-11 | ||
PCT/US2002/033395 WO2003032159A2 (en) | 2001-10-11 | 2002-10-10 | Error detection on programmable logic resources |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011182629A Division JP5290370B2 (ja) | 2001-10-11 | 2011-08-24 | プログラマブルロジックリソース上のエラー検出 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005505827A true JP2005505827A (ja) | 2005-02-24 |
JP4856848B2 JP4856848B2 (ja) | 2012-01-18 |
Family
ID=23281914
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003535060A Expired - Fee Related JP4856848B2 (ja) | 2001-10-11 | 2002-10-10 | プログラマブルロジックリソース上のエラー検出 |
JP2011182629A Expired - Fee Related JP5290370B2 (ja) | 2001-10-11 | 2011-08-24 | プログラマブルロジックリソース上のエラー検出 |
JP2013096843A Expired - Fee Related JP5696175B2 (ja) | 2001-10-11 | 2013-05-02 | プログラマブルロジックリソース上のエラー検出 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011182629A Expired - Fee Related JP5290370B2 (ja) | 2001-10-11 | 2011-08-24 | プログラマブルロジックリソース上のエラー検出 |
JP2013096843A Expired - Fee Related JP5696175B2 (ja) | 2001-10-11 | 2013-05-02 | プログラマブルロジックリソース上のエラー検出 |
Country Status (5)
Country | Link |
---|---|
US (4) | US7310757B2 (ja) |
EP (1) | EP1438662A2 (ja) |
JP (3) | JP4856848B2 (ja) |
CN (1) | CN100489797C (ja) |
WO (1) | WO2003032159A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004327036A (ja) * | 2004-08-06 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 半導体集積回路および半導体集積回路の検査方法 |
JP2006157482A (ja) * | 2004-11-30 | 2006-06-15 | Fujitsu Ltd | プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法 |
JP2009521059A (ja) * | 2005-12-23 | 2009-05-28 | インテル コーポレイション | ユーザレベル命令に応じた巡回冗長検査演算の実行 |
US8156401B2 (en) | 2006-03-20 | 2012-04-10 | Intel Corporation | Validating data using processor instructions |
JP2014197754A (ja) * | 2013-03-29 | 2014-10-16 | 大同信号株式会社 | 二線式検査回路搭載fpga |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6661253B1 (en) | 2000-08-16 | 2003-12-09 | Altera Corporation | Passgate structures for use in low-voltage applications |
JP4856848B2 (ja) | 2001-10-11 | 2012-01-18 | アルテラ コーポレイション | プログラマブルロジックリソース上のエラー検出 |
ATE320125T1 (de) * | 2002-09-11 | 2006-03-15 | Giesecke & Devrient Gmbh | Geschützte kryptographische berechnung |
KR101142584B1 (ko) * | 2003-11-18 | 2012-05-10 | 스칼라도 아베 | 디지털 이미지 처리 방법 및 이미지 표현 포맷 |
US7328377B1 (en) | 2004-01-27 | 2008-02-05 | Altera Corporation | Error correction for programmable logic integrated circuits |
US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7425841B2 (en) | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
US7340667B2 (en) * | 2004-05-10 | 2008-03-04 | Via Telecom Co., Ltd. | Method and/or apparatus implemented in hardware to discard bad logical transmission units (LTUs) |
US7292065B2 (en) * | 2004-08-03 | 2007-11-06 | Altera Corporation | Enhanced passgate structures for reducing leakage current |
US7301242B2 (en) | 2004-11-04 | 2007-11-27 | Tabula, Inc. | Programmable system in package |
US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US7363573B1 (en) * | 2005-01-10 | 2008-04-22 | Xilinx, Inc. | Method and apparatus for a dedicated cyclic redundancy check block within a device |
US8201124B1 (en) | 2005-03-15 | 2012-06-12 | Tabula, Inc. | System in package and method of creating system in package |
US7230869B1 (en) | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
CN100406903C (zh) * | 2005-03-28 | 2008-07-30 | 大唐移动通信设备有限公司 | 一种可编程逻辑器件配置的检测方法 |
US9459960B2 (en) | 2005-06-03 | 2016-10-04 | Rambus Inc. | Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation |
US7831882B2 (en) | 2005-06-03 | 2010-11-09 | Rambus Inc. | Memory system with error detection and retry modes of operation |
US7620876B2 (en) * | 2005-06-08 | 2009-11-17 | Altera Corporation | Reducing false positives in configuration error detection for programmable devices |
DE102006028695B4 (de) * | 2005-06-23 | 2017-11-30 | Denso Corporation | Elektronisches Steuersystem mit Fehlfunktionsüberwachung |
US7996731B2 (en) * | 2005-11-02 | 2011-08-09 | Advanced Micro Devices, Inc. | Error detection in high-speed asymmetric interfaces |
US7761776B1 (en) | 2005-11-03 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for a modular, programmable cyclic redundancy check design |
US7568136B2 (en) * | 2005-11-08 | 2009-07-28 | M2000 Sa. | Reconfigurable system and method with corruption detection and recovery |
US7562285B2 (en) | 2006-01-11 | 2009-07-14 | Rambus Inc. | Unidirectional error code transfer for a bidirectional data link |
US7339816B1 (en) * | 2006-01-27 | 2008-03-04 | Altera Corporation | Soft error tolerance for configuration memory in programmable devices |
US7669097B1 (en) * | 2006-03-27 | 2010-02-23 | Tabula, Inc. | Configurable IC with error detection and correction circuitry |
US7529992B1 (en) * | 2006-03-27 | 2009-05-05 | Tabula, Inc. | Configurable integrated circuit with error correcting circuitry |
US8024639B2 (en) | 2006-06-23 | 2011-09-20 | Schweitzer Engineering Laboratories, Inc. | Software and methods to detect and correct data structure |
US20080155293A1 (en) * | 2006-09-29 | 2008-06-26 | Schweitzer Engineering Laboratories, Inc. | Apparatus, systems and methods for reliably detecting faults within a power distribution system |
US20080080114A1 (en) * | 2006-09-29 | 2008-04-03 | Schweitzer Engineering Laboratories, Inc. | Apparatus, systems and methods for reliably detecting faults within a power distribution system |
US7508231B2 (en) * | 2007-03-09 | 2009-03-24 | Altera Corporation | Programmable logic device having redundancy with logic element granularity |
US8316158B1 (en) | 2007-03-12 | 2012-11-20 | Cypress Semiconductor Corporation | Configuration of programmable device using a DMA controller |
US7535252B1 (en) | 2007-03-22 | 2009-05-19 | Tabula, Inc. | Configurable ICs that conditionally transition through configuration data sets |
US8001446B2 (en) * | 2007-03-26 | 2011-08-16 | Intel Corporation | Pipelined cyclic redundancy check (CRC) |
US8060661B1 (en) | 2007-03-27 | 2011-11-15 | Cypress Semiconductor Corporation | Interface circuit and method for programming or communicating with an integrated circuit via a power supply pin |
US7636802B1 (en) * | 2007-04-11 | 2009-12-22 | Xilinx, Inc. | Data transfer using the configuration port of a programmable logic device |
US7644344B2 (en) * | 2007-05-15 | 2010-01-05 | Intel Corporation | Latency by offsetting cyclic redundancy code lanes from data lanes |
US7535787B2 (en) * | 2007-06-06 | 2009-05-19 | Daniel Elmhurst | Methods and apparatuses for refreshing non-volatile memory |
US8248101B2 (en) | 2007-09-06 | 2012-08-21 | Tabula, Inc. | Reading configuration data from internal storage node of configuration storage circuit |
FR2928769B1 (fr) * | 2008-03-14 | 2012-07-13 | Airbus France | Dispositif permettant l'utilisation d'un composant programmable dans un environnement radiatif naturel |
US8116115B2 (en) | 2008-11-06 | 2012-02-14 | Micron Technology, Inc. | Multilevel phase change memory operation |
US7948792B1 (en) | 2009-04-15 | 2011-05-24 | Altera Corporation | Memory and techniques for using same |
US8370705B1 (en) * | 2009-09-23 | 2013-02-05 | Nvidia Corporation | System and method for calculating a checksum address while maintaining error correction information |
CN102169711A (zh) * | 2010-02-25 | 2011-08-31 | 复旦大学 | 带电阻随机存储器模块的单芯片结构可编程逻辑器 |
US8441768B2 (en) | 2010-09-08 | 2013-05-14 | Schweitzer Engineering Laboratories Inc | Systems and methods for independent self-monitoring |
US8437200B1 (en) * | 2011-02-07 | 2013-05-07 | Altera Corporation | Zeroization verification of integrated circuit |
US20130046912A1 (en) * | 2011-08-18 | 2013-02-21 | Maxeler Technologies, Ltd. | Methods of monitoring operation of programmable logic |
WO2013062562A1 (en) | 2011-10-27 | 2013-05-02 | Hewlett-Packard Development Company, L.P. | Shiftable memory supporting in-memory data structures |
KR20140085468A (ko) * | 2011-10-28 | 2014-07-07 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 행 시프팅 시프트가능 메모리 |
US9235460B2 (en) | 2012-02-27 | 2016-01-12 | Altera Corporation | Methods and apparatus for automatic fault detection |
US9007731B2 (en) | 2012-03-26 | 2015-04-14 | Schweitzer Engineering Laboratories, Inc. | Leveraging inherent redundancy in a multifunction IED |
US9230683B2 (en) | 2012-04-25 | 2016-01-05 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and driving method thereof |
CN103825649A (zh) * | 2012-11-16 | 2014-05-28 | 华为技术有限公司 | 光模块信息的修复方法和装置 |
US9348690B2 (en) * | 2013-08-21 | 2016-05-24 | Via Alliance Semiconductor Co., Ltd. | Correctable configuration data compression and decompression system |
US8982655B1 (en) | 2013-08-21 | 2015-03-17 | Via Technologies, Inc. | Apparatus and method for compression and decompression of microprocessor configuration data |
US9223715B2 (en) | 2013-08-21 | 2015-12-29 | Via Alliance Semiconductor Co., Ltd. | Microprocessor mechanism for decompression of cache correction data |
DE102013225131A1 (de) * | 2013-12-06 | 2015-06-11 | Robert Bosch Gmbh | Verfahren zur Fehlerüberprüfung einer hardware-konfigurierbaren Logikschaltung |
CN103678028A (zh) * | 2013-12-16 | 2014-03-26 | 重庆川仪自动化股份有限公司 | 一种ram内存检测方法及装置 |
US9641809B2 (en) * | 2014-03-25 | 2017-05-02 | Nxp Usa, Inc. | Circuit arrangement and method for processing a digital video stream and for detecting a fault in a digital video stream, digital video system and computer readable program product |
US9712186B1 (en) | 2014-04-18 | 2017-07-18 | Altera Corporation | Serial memory interface circuitry for programmable integrated circuits |
US9395802B2 (en) | 2014-05-22 | 2016-07-19 | Via Alliance Semiconductor Co., Ltd. | Multi-core data array power gating restoral mechanism |
US9665490B2 (en) | 2014-05-22 | 2017-05-30 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for repairing cache arrays in a multi-core microprocessor |
US9606933B2 (en) | 2014-05-22 | 2017-03-28 | Via Alliance Semiconductor Co., Ltd. | Multi-core apparatus and method for restoring data arrays following a power gating event |
US9524241B2 (en) | 2014-05-22 | 2016-12-20 | Via Alliance Semiconductor Co., Ltd. | Multi-core microprocessor power gating cache restoral mechanism |
JP2016009893A (ja) * | 2014-06-23 | 2016-01-18 | Necエンジニアリング株式会社 | データ不正検出装置及びデータ不正検出方法 |
US9826252B2 (en) | 2014-07-29 | 2017-11-21 | Nxp Usa, Inc. | Method and video system for freeze-frame detection |
CN104635190B (zh) * | 2014-12-31 | 2017-05-03 | 漳州科能电器有限公司 | 一种计量芯片抗干扰检测及纠错方法和装置 |
JP2016167669A (ja) * | 2015-03-09 | 2016-09-15 | 富士通株式会社 | プログラマブル論理回路装置及びそのエラー検出方法 |
US10481972B1 (en) | 2015-08-10 | 2019-11-19 | Google Llc | File verification using cyclic redundancy check |
US9576625B1 (en) * | 2015-10-08 | 2017-02-21 | Altera Corporation | Register initialization using multi-pass configuration |
JP6718294B2 (ja) * | 2016-04-25 | 2020-07-08 | アズビル株式会社 | レジスタ異常検出装置 |
JP6880795B2 (ja) * | 2017-02-08 | 2021-06-02 | オムロン株式会社 | 制御装置およびその制御方法 |
CN108628694B (zh) * | 2017-03-20 | 2023-03-28 | 腾讯科技(深圳)有限公司 | 一种基于可编程硬件的数据处理方法以及装置 |
US10326651B1 (en) | 2017-04-18 | 2019-06-18 | Amazon Technologies, Inc. | Client configurable hardware logic and corresponding signature |
US10825541B1 (en) * | 2018-10-02 | 2020-11-03 | Xilinx, Inc. | Built in configuration memory test |
CN113094308B (zh) * | 2020-01-08 | 2023-01-31 | 株洲中车时代电气股份有限公司 | 一种变频器的通信管理方法及系统 |
US11323362B2 (en) | 2020-08-07 | 2022-05-03 | Schweitzer Engineering Laboratories, Inc. | Resilience to single event upsets in software defined networks |
NO346155B1 (en) * | 2020-10-26 | 2022-03-28 | Kongsberg Defence & Aerospace As | Configuration authentication prior to enabling activation of a FPGA having volatile configuration-memory |
US11604692B2 (en) | 2021-08-19 | 2023-03-14 | Wuxi Esiontech Co., Ltd. | Field programmable gate array (FPGA) with automatic error detection and correction function for programmable logic modules |
CN113608918B (zh) * | 2021-08-19 | 2023-04-28 | 无锡中微亿芯有限公司 | 具有对可编程逻辑模块自动检纠错功能的fpga |
Family Cites Families (133)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4005405A (en) | 1975-05-07 | 1977-01-25 | Data General Corporation | Error detection and correction in data processing systems |
US4371930A (en) | 1980-06-03 | 1983-02-01 | Burroughs Corporation | Apparatus for detecting, correcting and logging single bit memory read errors |
US4866717A (en) | 1986-07-29 | 1989-09-12 | Matsushita Electric Industrial Co., Ltd. | Code error detecting and correcting apparatus |
US5717440A (en) * | 1986-10-06 | 1998-02-10 | Hitachi, Ltd. | Graphic processing having apparatus for outputting FIFO vacant information |
US4949342A (en) * | 1987-04-14 | 1990-08-14 | Matsushita Electric Industrial Co., Ltd. | Code error detecting method |
JPH0232620A (ja) * | 1988-07-22 | 1990-02-02 | Fujitsu Ltd | プログラマブル・ロジック・アレイ |
US4930107A (en) | 1988-08-08 | 1990-05-29 | Altera Corporation | Method and apparatus for programming and verifying programmable elements in programmable devices |
US5511211A (en) | 1988-08-31 | 1996-04-23 | Hitachi, Ltd. | Method for flexibly developing a data processing system comprising rewriting instructions in non-volatile memory elements after function check indicates failure of required functions |
US4930098A (en) | 1988-12-30 | 1990-05-29 | Intel Corporation | Shift register programming for a programmable logic device |
US4940909A (en) | 1989-05-12 | 1990-07-10 | Plus Logic, Inc. | Configuration control circuit for programmable logic devices |
US4918378A (en) * | 1989-06-12 | 1990-04-17 | Unisys Corporation | Method and circuitry for enabling internal test operations in a VLSI chip |
US5111464A (en) | 1989-12-01 | 1992-05-05 | Mips Computer Systems, Inc. | Interrupt reporting for single-bit memory errors |
US5200920A (en) | 1990-02-08 | 1993-04-06 | Altera Corporation | Method for programming programmable elements in programmable devices |
US5349691A (en) | 1990-07-03 | 1994-09-20 | Xilinx, Inc. | Programming process for 3-level programming logic devices |
US5305324A (en) | 1990-09-26 | 1994-04-19 | Demografx | Data scrambling interface for correcting large burst errors in high speed, high capacity tape drives |
US5321704A (en) | 1991-01-16 | 1994-06-14 | Xilinx, Inc. | Error detection structure and method using partial polynomial check |
US5307056A (en) * | 1991-09-06 | 1994-04-26 | Texas Instruments Incorporated | Dynamic memory allocation for frame buffer for spatial light modulator |
JPH05102056A (ja) * | 1991-10-11 | 1993-04-23 | Rohm Co Ltd | ウエハー支持具 |
US5237219A (en) | 1992-05-08 | 1993-08-17 | Altera Corporation | Methods and apparatus for programming cellular programmable logic integrated circuits |
JPH05327477A (ja) * | 1992-05-26 | 1993-12-10 | Fuji Facom Corp | フィールドプログラム可能なゲートアレイの誤り検査方法及び装置 |
JPH0636600A (ja) * | 1992-07-16 | 1994-02-10 | Fujitsu Ltd | 半導体記憶装置 |
US5291079A (en) | 1992-07-23 | 1994-03-01 | Xilinx, Inc. | Configuration control unit for programming a field programmable gate array and reading array status |
GB9223226D0 (en) | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US5588112A (en) | 1992-12-30 | 1996-12-24 | Digital Equipment Corporation | DMA controller for memory scrubbing |
JPH06242957A (ja) | 1993-02-16 | 1994-09-02 | Fujitsu Ltd | プログラム実行制御装置 |
US5495491A (en) | 1993-03-05 | 1996-02-27 | Motorola, Inc. | System using a memory controller controlling an error correction means to detect and correct memory errors when and over a time interval indicated by registers in the memory controller |
US5466117A (en) | 1993-06-10 | 1995-11-14 | Xilinx, Inc. | Device and method for programming multiple arrays of semiconductor devices |
US5682064A (en) * | 1993-08-16 | 1997-10-28 | Micron Technology, Inc. | Repairable wafer scale integration system |
US5629949A (en) * | 1993-09-21 | 1997-05-13 | Cirrus Logic, Inc. | Error correction verification method and apparatus using CRC check remainders |
US5473620A (en) * | 1993-09-21 | 1995-12-05 | Cirrus Logic, Inc. | Programmable redundancy/syndrome generator |
US5590305A (en) | 1994-03-28 | 1996-12-31 | Altera Corporation | Programming circuits and techniques for programming logic |
US5430687A (en) | 1994-04-01 | 1995-07-04 | Xilinx, Inc. | Programmable logic device including a parallel input device for loading memory cells |
GB2289779B (en) | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US5426379A (en) | 1994-07-29 | 1995-06-20 | Xilinx, Inc. | Field programmable gate array with built-in bitstream data expansion |
US5606276A (en) | 1994-10-05 | 1997-02-25 | Altera Corporation | Method and apparatus for creating a large delay in a pulse in a layout efficient manner |
US6279128B1 (en) | 1994-12-29 | 2001-08-21 | International Business Machines Corporation | Autonomous system for recognition of patterns formed by stored data during computer memory scrubbing |
US5581198A (en) | 1995-02-24 | 1996-12-03 | Xilinx, Inc. | Shadow DRAM for programmable logic devices |
US5543730A (en) | 1995-05-17 | 1996-08-06 | Altera Corporation | Techniques for programming programmable logic array devices |
US5640106A (en) | 1995-05-26 | 1997-06-17 | Xilinx, Inc. | Method and structure for loading data into several IC devices |
DE19519946A1 (de) * | 1995-06-02 | 1996-12-05 | Thomson Brandt Gmbh | Verfahren zur Synchronisation eines aus Informationsdaten und einem anschließenden Prüfsummenfeld bestehenden empfangenen Datenblocks sowie Vorrichtung zur Durchführung des Verfahrens |
EP0747826B1 (en) * | 1995-06-06 | 2001-09-19 | Hewlett-Packard Company, A Delaware Corporation | Cache system with simultaneous tag comparison |
US5734868A (en) | 1995-08-09 | 1998-03-31 | Curd; Derek R. | Efficient in-system programming structure and method for non-volatile programmable logic devices |
US5608342A (en) | 1995-10-23 | 1997-03-04 | Xilinx, Inc. | Hierarchical programming of electrically configurable integrated circuits |
US5650734A (en) | 1995-12-11 | 1997-07-22 | Altera Corporation | Programming programmable transistor devices using state machines |
US5767734A (en) | 1995-12-21 | 1998-06-16 | Altera Corporation | High-voltage pump with initiation scheme |
JP3635757B2 (ja) * | 1995-12-28 | 2005-04-06 | 昭和電工株式会社 | AlGaInP発光ダイオード |
US6023565A (en) | 1996-03-29 | 2000-02-08 | Xilinx, Inc. | Method for configuring circuits over a data communications link |
US5694056A (en) | 1996-04-01 | 1997-12-02 | Xilinx, Inc. | Fast pipeline frame full detector |
US5694399A (en) | 1996-04-10 | 1997-12-02 | Xilinix, Inc. | Processing unit for generating signals for communication with a test access port |
US5742531A (en) | 1996-05-03 | 1998-04-21 | Xilinx Inc | Configurable parallel and bit serial load apparatus |
US5961576A (en) | 1996-05-03 | 1999-10-05 | Xilinx, Inc. | Configurable parallel and bit serial load apparatus |
US6024486A (en) | 1996-06-05 | 2000-02-15 | Compaq Computer Corporation | Data error detection and correction |
US6023564A (en) | 1996-07-19 | 2000-02-08 | Xilinx, Inc. | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions |
US5821772A (en) | 1996-08-07 | 1998-10-13 | Xilinx, Inc. | Programmable address decoder for programmable logic device |
JPH1082839A (ja) * | 1996-09-06 | 1998-03-31 | Hitachi Telecom Technol Ltd | Fpgaを使用した電子装置の診断方式 |
US5754566A (en) | 1996-09-06 | 1998-05-19 | Intel Corporation | Method and apparatus for correcting a multilevel cell memory by using interleaving |
US5844854A (en) | 1996-09-18 | 1998-12-01 | Altera Corporation | Programmable logic device with two dimensional memory addressing |
US5873113A (en) | 1996-09-24 | 1999-02-16 | Altera Corporation | System and method for programming eprom cells using shorter duration pulse(s) in repeating the programming process of a particular cell |
US5773993A (en) | 1996-09-26 | 1998-06-30 | Xilinx, Inc. | Configurable electronic device which is compatible with a configuration bitstream of a prior generation configurable electronic device |
GB9621540D0 (en) * | 1996-10-16 | 1996-12-04 | British Gas Plc | An electric power generation system |
US6065146A (en) | 1996-10-21 | 2000-05-16 | Texas Instruments Incorporated | Error correcting memory |
US5844923A (en) * | 1996-10-24 | 1998-12-01 | At&T Corp | Fast framing of nude ATM by header error check |
US5841867A (en) * | 1996-11-01 | 1998-11-24 | Xilinx, Inc. | On-chip programming verification system for PLDs |
US5978952A (en) | 1996-12-31 | 1999-11-02 | Intel Corporation | Time-distributed ECC scrubbing to correct memory errors |
US5943490A (en) | 1997-05-30 | 1999-08-24 | Quickturn Design Systems, Inc. | Distributed logic analyzer for use in a hardware logic emulation system |
US6314550B1 (en) | 1997-06-10 | 2001-11-06 | Altera Corporation | Cascaded programming with multiple-purpose pins |
US6018250A (en) | 1997-06-26 | 2000-01-25 | Xilinx, Inc. | Programming method to enable system recovery after power failure |
US5812472A (en) * | 1997-07-16 | 1998-09-22 | Tanisys Technology, Inc. | Nested loop method of identifying synchronous memories |
JP3597972B2 (ja) * | 1997-07-25 | 2004-12-08 | 富士通株式会社 | プログラマブルロジックデバイス及びその試験方法並びに試験用データ作成方法 |
US6128215A (en) | 1997-08-19 | 2000-10-03 | Altera Corporation | Static random access memory circuits |
US6078736A (en) | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
US5999014A (en) | 1997-09-17 | 1999-12-07 | Xilinx, Inc. | Method for concurrently programming or accessing a plurality of in-system-programmable logic devices |
US6011406A (en) | 1997-10-28 | 2000-01-04 | Altera Corporation | Ultra-fast configuration mode for a programmable logic device |
US5995744A (en) | 1997-11-24 | 1999-11-30 | Xilinx, Inc. | Network configuration of programmable circuits |
US5995988A (en) | 1997-12-04 | 1999-11-30 | Xilinx, Inc. | Configurable parallel and bit serial load apparatus |
US5848026A (en) * | 1997-12-08 | 1998-12-08 | Atmel Corporation | Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations |
US6057704A (en) | 1997-12-12 | 2000-05-02 | Xilinx, Inc. | Partially reconfigurable FPGA and method of operating same |
US6028445A (en) | 1997-12-30 | 2000-02-22 | Xilinx, Inc. | Decoder structure and method for FPGA configuration |
US6049222A (en) | 1997-12-30 | 2000-04-11 | Xilinx, Inc | Configuring an FPGA using embedded memory |
US6237124B1 (en) * | 1998-03-16 | 2001-05-22 | Actel Corporation | Methods for errors checking the configuration SRAM and user assignable SRAM data in a field programmable gate array |
US6772387B1 (en) * | 1998-03-16 | 2004-08-03 | Actel Corporation | Cyclic redundancy checking of a field programmable gate array having an SRAM memory architecture |
WO1999051013A1 (en) * | 1998-03-31 | 1999-10-07 | British Telecommunications Public Limited Company | Call distribution |
US6242941B1 (en) | 1998-05-29 | 2001-06-05 | Altera Corporation | Reducing I/O noise when leaving programming mode |
US6137307A (en) | 1998-08-04 | 2000-10-24 | Xilinx, Inc. | Structure and method for loading wide frames of data from a narrow input bus |
US6097210A (en) | 1998-08-04 | 2000-08-01 | Xilinx, Inc. | Multiplexer array with shifted input traces |
US6069489A (en) | 1998-08-04 | 2000-05-30 | Xilinx, Inc. | FPGA having fast configuration memory data readback |
US6223309B1 (en) | 1998-10-02 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for ECC logic test |
FR2784475B1 (fr) | 1998-10-12 | 2000-12-29 | Centre Nat Etd Spatiales | Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires |
US6128760A (en) * | 1998-10-13 | 2000-10-03 | Lsi Logic Corporation | Method and apparatus for calculating a CRC remainder |
US6349390B1 (en) | 1999-01-04 | 2002-02-19 | International Business Machines Corporation | On-board scrubbing of soft errors memory module |
US6044025A (en) | 1999-02-04 | 2000-03-28 | Xilinx, Inc. | PROM with built-in JTAG capability for configuring FPGAs |
US6262596B1 (en) | 1999-04-05 | 2001-07-17 | Xilinx, Inc. | Configuration bus interface circuit for FPGAS |
US6191614B1 (en) | 1999-04-05 | 2001-02-20 | Xilinx, Inc. | FPGA configuration circuit including bus-based CRC register |
JP2000305859A (ja) * | 1999-04-22 | 2000-11-02 | Matsushita Electric Ind Co Ltd | プロセッサ |
US6204687B1 (en) | 1999-08-13 | 2001-03-20 | Xilinx, Inc. | Method and structure for configuring FPGAS |
US6684358B1 (en) * | 1999-11-23 | 2004-01-27 | Janusz Rajski | Decompressor/PRPG for applying pseudo-random and deterministic test patterns |
DE60138145D1 (de) | 2000-01-07 | 2009-05-07 | Nippon Telegraph & Telephone | Funktionsrekonfigurierbare Halbleitervorrichtung und integrierte Schaltung zum Konfigurieren der Halbleitervorrichtung |
US6832340B2 (en) | 2000-01-26 | 2004-12-14 | Hewlett-Packard Development Company, L.P. | Real-time hardware memory scrubbing |
US6701480B1 (en) | 2000-03-08 | 2004-03-02 | Rockwell Automation Technologies, Inc. | System and method for providing error check and correction in memory systems |
US6510534B1 (en) * | 2000-06-29 | 2003-01-21 | Logicvision, Inc. | Method and apparatus for testing high performance circuits |
US6651155B1 (en) * | 2000-07-28 | 2003-11-18 | Altera Corporation | Apparatus and method for translating a programmable logic device programmer object file |
US6678861B1 (en) * | 2000-08-21 | 2004-01-13 | Cypress Semiconductor Corp. | FIFO with CRC in a PLD |
US6766429B1 (en) | 2000-08-31 | 2004-07-20 | International Business Machines Corporation | Low cost and high RAS mirrored memory |
US6366117B1 (en) * | 2000-11-28 | 2002-04-02 | Xilinx, Inc. | Nonvolatile/battery-backed key in PLD |
US6981153B1 (en) * | 2000-11-28 | 2005-12-27 | Xilinx, Inc. | Programmable logic device with method of preventing readback |
US6441641B1 (en) * | 2000-11-28 | 2002-08-27 | Xilinx, Inc. | Programmable logic device with partial battery backup |
US7036059B1 (en) * | 2001-02-14 | 2006-04-25 | Xilinx, Inc. | Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays |
US6651238B1 (en) * | 2001-04-17 | 2003-11-18 | Xilinx, Inc. | Providing fault coverage of interconnect in an FPGA |
US6859904B2 (en) | 2001-05-11 | 2005-02-22 | Sun Microsystems, Inc. | Apparatus and method to facilitate self-correcting memory |
JP4317013B2 (ja) * | 2001-08-07 | 2009-08-19 | ザイリンクス インコーポレイテッド | プログラマブルロジックデバイスのための特定用途向け検査方法 |
US7170891B2 (en) * | 2001-08-30 | 2007-01-30 | Messenger Terabit Networks, Inc. | High speed data classification system |
US6636935B1 (en) * | 2001-09-10 | 2003-10-21 | Rambus Inc. | Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules |
JP4856848B2 (ja) * | 2001-10-11 | 2012-01-18 | アルテラ コーポレイション | プログラマブルロジックリソース上のエラー検出 |
US7051264B2 (en) | 2001-11-14 | 2006-05-23 | Monolithic System Technology, Inc. | Error correcting memory and method of operating same |
US6848063B2 (en) | 2001-11-20 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | System and method for scrubbing errors in very large memories |
US6545501B1 (en) * | 2001-12-10 | 2003-04-08 | International Business Machines Corporation | Method and system for use of a field programmable function within a standard cell chip for repair of logic circuits |
US6861867B2 (en) * | 2002-03-07 | 2005-03-01 | Lightspeed Semiconductor Corporation | Method and apparatus for built-in self-test of logic circuits with multiple clock domains |
US7007203B2 (en) | 2002-08-02 | 2006-02-28 | Motorola, Inc. | Error checking in a reconfigurable logic signal processor (RLSP) |
JP3969240B2 (ja) | 2002-08-02 | 2007-09-05 | ソニー株式会社 | 半導体記憶装置 |
US7103743B2 (en) * | 2002-08-23 | 2006-09-05 | Intel Corporation | System and method of accessing vital product data |
US6938201B2 (en) * | 2002-09-05 | 2005-08-30 | Agilent Technologies, Inc. | Error detection system for a FIFO memory |
US6944836B1 (en) * | 2002-11-15 | 2005-09-13 | Xilinx, Inc. | Structures and methods for testing programmable logic devices having mixed-fabric architectures |
US6838899B2 (en) | 2002-12-30 | 2005-01-04 | Actel Corporation | Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array |
JP4791954B2 (ja) * | 2003-02-13 | 2011-10-12 | メンター・グラフィクス・コーポレーション | コンパクタを使用する試験応答の圧縮 |
US7278128B1 (en) * | 2003-04-11 | 2007-10-02 | Xilinx, Inc. | Method of altering a bitstream |
US20050071730A1 (en) * | 2003-09-30 | 2005-03-31 | Lattice Semiconductor Corporation | Continuous self-verify of configuration memory in programmable logic devices |
US7012835B2 (en) | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7370260B2 (en) | 2003-12-16 | 2008-05-06 | Freescale Semiconductor, Inc. | MRAM having error correction code circuitry and method therefor |
US7509560B2 (en) | 2003-12-29 | 2009-03-24 | Intel Corporation | Mechanism for adjacent-symbol error correction and detection |
US7461312B2 (en) * | 2004-07-22 | 2008-12-02 | Microsoft Corporation | Digital signature generation for hardware functional test |
US7627798B2 (en) * | 2004-10-08 | 2009-12-01 | Kabushiki Kaisha Toshiba | Systems and methods for circuit testing using LBIST |
WO2007098167A2 (en) * | 2006-02-17 | 2007-08-30 | Mentor Graphics Corporation | Multi-stage test response compactors |
US7701254B2 (en) * | 2007-03-13 | 2010-04-20 | Oracle America, Inc. | Reconfigurable circuits |
-
2002
- 2002-10-10 JP JP2003535060A patent/JP4856848B2/ja not_active Expired - Fee Related
- 2002-10-10 EP EP02784165A patent/EP1438662A2/en not_active Withdrawn
- 2002-10-10 WO PCT/US2002/033395 patent/WO2003032159A2/en not_active Application Discontinuation
- 2002-10-10 US US10/270,711 patent/US7310757B2/en not_active Expired - Fee Related
- 2002-10-10 CN CNB028033000A patent/CN100489797C/zh not_active Expired - Fee Related
-
2007
- 2007-10-31 US US11/930,739 patent/US7577055B2/en not_active Expired - Fee Related
-
2009
- 2009-07-15 US US12/503,637 patent/US7907460B2/en not_active Expired - Fee Related
-
2011
- 2011-02-10 US US13/024,666 patent/US8130574B2/en not_active Expired - Fee Related
- 2011-08-24 JP JP2011182629A patent/JP5290370B2/ja not_active Expired - Fee Related
-
2013
- 2013-05-02 JP JP2013096843A patent/JP5696175B2/ja not_active Expired - Fee Related
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004327036A (ja) * | 2004-08-06 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 半導体集積回路および半導体集積回路の検査方法 |
JP4643977B2 (ja) * | 2004-11-30 | 2011-03-02 | 富士通株式会社 | プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法 |
JP2006157482A (ja) * | 2004-11-30 | 2006-06-15 | Fujitsu Ltd | プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法 |
US8775911B2 (en) | 2005-12-23 | 2014-07-08 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8793559B2 (en) | 2005-12-23 | 2014-07-29 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8225184B2 (en) | 2005-12-23 | 2012-07-17 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8713416B2 (en) | 2005-12-23 | 2014-04-29 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8769385B2 (en) | 2005-12-23 | 2014-07-01 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8769386B2 (en) | 2005-12-23 | 2014-07-01 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8775912B2 (en) | 2005-12-23 | 2014-07-08 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
JP2009521059A (ja) * | 2005-12-23 | 2009-05-28 | インテル コーポレイション | ユーザレベル命令に応じた巡回冗長検査演算の実行 |
US8775910B2 (en) | 2005-12-23 | 2014-07-08 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US11899530B2 (en) | 2005-12-23 | 2024-02-13 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8856627B2 (en) | 2005-12-23 | 2014-10-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US11048579B2 (en) | 2005-12-23 | 2021-06-29 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US9116684B2 (en) | 2005-12-23 | 2015-08-25 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US9262159B2 (en) | 2005-12-23 | 2016-02-16 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US9645884B2 (en) | 2005-12-23 | 2017-05-09 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US10379938B2 (en) | 2005-12-23 | 2019-08-13 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8156401B2 (en) | 2006-03-20 | 2012-04-10 | Intel Corporation | Validating data using processor instructions |
JP2014197754A (ja) * | 2013-03-29 | 2014-10-16 | 大同信号株式会社 | 二線式検査回路搭載fpga |
Also Published As
Publication number | Publication date |
---|---|
EP1438662A2 (en) | 2004-07-21 |
CN1529853A (zh) | 2004-09-15 |
JP5696175B2 (ja) | 2015-04-08 |
US8130574B2 (en) | 2012-03-06 |
US7907460B2 (en) | 2011-03-15 |
WO2003032159A2 (en) | 2003-04-17 |
US20030097628A1 (en) | 2003-05-22 |
US20110138240A1 (en) | 2011-06-09 |
WO2003032159A3 (en) | 2004-04-01 |
CN100489797C (zh) | 2009-05-20 |
US7310757B2 (en) | 2007-12-18 |
JP2012027927A (ja) | 2012-02-09 |
US7577055B2 (en) | 2009-08-18 |
JP4856848B2 (ja) | 2012-01-18 |
JP2013149290A (ja) | 2013-08-01 |
JP5290370B2 (ja) | 2013-09-18 |
US20080052569A1 (en) | 2008-02-28 |
US20090282306A1 (en) | 2009-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4856848B2 (ja) | プログラマブルロジックリソース上のエラー検出 | |
US7036059B1 (en) | Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays | |
US7111224B1 (en) | FPGA configuration memory with built-in error correction mechanism | |
US8112678B1 (en) | Error correction for programmable logic integrated circuits | |
US8797061B2 (en) | Partial reconfiguration circuitry | |
US9600366B1 (en) | Error detection and correction circuitry | |
JP5048972B2 (ja) | プログラマブル・デバイスの構成エラー検出の偽陽性の低減 | |
US8909941B1 (en) | Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit | |
US8612814B1 (en) | Memory error detection circuitry | |
US7278128B1 (en) | Method of altering a bitstream | |
US9252778B2 (en) | Robust flexible logic unit | |
US9575862B1 (en) | Integrated circuits with error handling capabilities | |
US8918706B1 (en) | Methods and circuitry for performing parallel error checking | |
US8437200B1 (en) | Zeroization verification of integrated circuit | |
US20150155057A1 (en) | Error detection circuit and semiconductor integrated circuit using the same | |
US7024618B2 (en) | Transmission error checking in result forwarding | |
JP2544494B2 (ja) | プログラマブル・ロジックアレイの論理規模拡張構成 | |
Ponrani et al. | Module based partial reconfiguration on bitstream relocation filter | |
Tietze et al. | Semiconductor Memories | |
JPH09128256A (ja) | Crcコード生成回路 | |
JP2003347905A (ja) | プログラマブル・デジタル信号発生回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050927 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070713 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071013 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080827 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090123 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090226 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090918 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101124 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101129 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101224 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110124 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110323 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110323 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110712 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110715 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110824 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111031 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141104 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |