"本願明細書に記載された発明。従って、本発明の対象はプログラマブルロジックリソース内のエラー検出システムならびに方法を提供することである。本発明によれば、プログラマブルロジックリソース構成データ内のエラーを検出するエラー検出回路が提供される。プログラマブルロジックリソース上のメモリ内にデータをプログラムする前あるいはプログラマブルロジックリソース上のメモリ内にデータをプログラムしている間に管理式によってデータを除算して剰余を取り出すことによってチェックサムが計算される。この計算はソフトウェア内で計算するかまたはエラー検出回路によって実行することができる。管理式は、例えば電気電子工学会IEEE802規格の32ビット巡回冗長検査CRC-32等の、多項からなる適宜なデータ表現とすることができる。このチェックサムは期待値とも呼ばれ、プログラマブルロジックリソース上の任意の位置例えば専用のレジスタ内等に記録することができ、エラー検出中に引き出すことができる。エラー検出開始の信号を発するためにレジスタ内の専用ビット等からなるフラグがユーザによって初期化されることが可能である。メモリ内にデータがプログラムされた後、フラグをセットしてプログラマブルロジックリソース構成データのエラー検出回路へのローディングを指令する有限状態機械によってエラー検出を開始することができる。プログラマブルロジックリソースのエラー検出回路にプログラマブルロジックリソース構成データがロードされると、エラー検出回路は期待値の計算に使用したものと同一あるいは同等な管理式を使用してロードされたデータからチェックサムの計算を開始する。全てのプログラマブルロジックリソース構成データがロードされると、有限状態機械がエラー検出回路に期待値をロードすることを指令する。本発明の一構成形態において、プログラマブルロジックリソース構成データ上においてチェックサムが計算され、結果として得られたチェックサムが期待値と比較される。チェックサムと期待値との間に予め設定された関係例えばチェックサムと期待値とが等しいか、チェックサムと期待値とが予め設定された偏差または倍数をもって異なっている場合が成立する場合エラーは検出されない。本発明の別の構成形態においては、プログラマブルロジックリソース構成データはまず専用のORXORツリーにロードされる。プログラマブルロジックリソース構成データがロードされた後、期待値がXORツリーにロードされる。XORツリーは管理式に基づいてロードされたデータおよび期待値上でチェックサムを計算する。チェックサムが予め設定された所定の数値に等しい例えばチェックサムが0、またはチェックサムが予め設定された偏差である場合エラーは検出されない。エラー検出回路によって形成された出力はプログラマブルロジックリソース上の出力端子に伝送され、これはユーザロジックによって監視することができる。例えば、本願発明は以下の項目を提供する。項目1ロジックデバイス上に記憶された構成データ内のエラーを検出するものであり:構成データが記憶されるメモリと;前記メモリに結合されこのメモリ内に記憶された構成データを分析してメモリの初期の構成の後にいずれかの値が変更されているかどうかを判定するチェック回路、とからなる回路。項目2メモリはランダムアクセスメモリである項目1記載のロジックデバイス。項目3チェック回路は:構成データに基づいて数値を計算するチェックサム回路と;このチェックサム回路に結合され計算された数値を期待値と比較する比較回路とからなる、項目1記載のロジックデバイス。項目4計算された数値は構成データに基づいた数値を予め設定された数値によって除算した結果得られた剰余である項目3記載のロジックデバイス。項目5期待値はロジックデバイスを設計するために使用される構成データから計算される項目3記載のロジックデバイス。項目6期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値で除算した結果得られる剰余から計算する項目5記載のロジックデバイス。項目7予め設定された数値はチェックサム回路によって使用されるものと同等な数値に基づいたものである項目6記載のロジックデバイス。項目8期待値は構成データがロジックデバイス上にプログラムされている間にチェックサム回路によって計算される項目3記載のロジックデバイス。項目9比較回路は:エラーが検出されなかったことを示す第1の信号と;エラーが検出されたかったことを示す第2の信号と、のうちのいずれかを提供する項目3記載のロジックデバイス。項目10チェック回路は:構成データに基づいた数値を計算する計算回路と;計算回路に結合され計算された数値上でロジック操作を実行するロジック回路、とを備える項目1記載のロジックデバイス。項目11計算された数値は構成データに基づいた数値と期待値とを予め設定された数値によって除算して得られた剰余である項目10記載のロジックデバイス。項目12期待値はロジックデバイスを構成するために使用される構成データから計算される項目11記載のロジックデバイス。項目13期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する項目12記載のロジックデバイス。項目14期待値は構成データがロジックデバイス上にプログラムされている間に計算回路によって計算される項目11記載のロジックデバイス。項目15ロジック回路は:エラーが検出されなかったことを示す第1の信号と;エラーが検出されたかったことを示す第2の信号と、のうちのいずれかを形成するロジックを含んだ項目10記載のロジックデバイス。項目16メモリに結合された第2のメモリをさらに備え、この第2のメモリは構成でデータの一部を記憶する項目1記載のロジックデバイス。項目17チェック回路は第2のメモリに結合され構成データの一部上の分析の一部を実行する項目16記載のロジックデバイス。項目18チェック回路に入力される期待値を記憶するために使用される第2のメモリをさらに備える項目1記載のロジックデバイス。項目19期待値はロジックデバイスを構成するために使用される構成データから計算される項目18記載のロジックデバイス。項目20期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する項目19記載のロジックデバイス。項目21期待値は構成データがロジックデバイス上にプログラムされている間にチェック回路によって計算される項目18記載のロジックデバイス。項目22チェック回路に結合されておりエラーが検出されたかどうかを示す信号を出力するための出力回路をさらに備える項目1記載のロジックデバイス。項目23処理回路と;前記処理回路に結合された第2のメモリと;項目1記載に定義されたロジックデバイスとからなるデジタル処理システム。項目24項目1記載のロジックデバイスが実装されたプリント回路基板。項目25プリント回路基板上に実装されるとともにロジックデバイスに結合された第2のメモリをさらに備える項目24記載のプリント回路基板。項目26第2のメモリはロジックデバイスにプログラムされる構成データを記憶する不揮発メモリからなる項目25記載のプリント回路基板。項目27ロジックデバイス上に設けられるエラー検出回路であり:期待値とロジックデバイス上に記憶された構成データとを入力として取り込むマルチプレクサと;このマルチプレクサの出力に結合されるチェック回路とからなり、このチェック回路が:多項式チェックサム計算を実行するXORツリーと、このXORツリーに結合されたシグニチャレジスタと、このシグニチャレジスタに結合されるロジックゲートとからなり、このロジックゲートはビット形式の入力として前記シグニチャレジスタの内容を取り込む、エラー検出回路。項目28構成データが記憶される第1のメモリをさらに備える請求項27記載のエラー検出回路。項目29第1の回路に結合された第2のメモリをさらに備え、この第2のメモリがマルチプレクサの入力として伝送される構成データの一部を記憶する項目28記載のエラー検出回路。項目30期待値を記憶するために使用されるメモリをさらに備える項目27記載のエラー検出回路。項目31期待値はロジックデバイスを構成するために使用される構成データから計算される項目30記載のエラー検出回路。項目32期待値はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算する項目31記載のエラー検出回路。項目33期待値は構成データがロジックデバイス上にプログラムされている間にチェック回路によって計算される項目30記載のエラー検出回路。項目34マルチプレクサは第1に構成データを出力として伝送し第2に期待値を出力として伝送する項目27記載のエラー検出回路。項目35XORツリーはクロックサイクル毎に多項式チェックサム計算の結果を記憶するためのレジスタを備え、さらにその結果を次のクロックサイクルにおいてXORツリーに入力として伝送する項目27記載のエラー検出回路。項目36レジスタに記憶された結果は次のクロックサイクルにおいてシグニチャレジスタに伝送されその中に記憶される項目35記載のエラー検出回路。項目37XORツリーは構成データに基づいた数値および期待値を予め設定された数値によって除算した結果得られる剰余を計算する項目27記載のエラー検出回路。項目38ロジックゲートは出力として:シグニチャレジスタの内容が予め設定された数値である際に第1のビット;シグニチャレジスタの内容が予め設定された数値以外である際に第2のビットの;いずれかを伝送する項目27記載のエラー検出回路。項目39ロジックゲートの出力に結合されるとともにエラーが検出されたかどうかを表示する信号を出力するための出力ピンをさらに備える項目27記載のエラー検出回路。項目40出力端子はユーザロジックによってアクセス可能である請求項39記載のエラー検出回路。項目41エラー検出回路はロジックデバイス上に設けられたハード配線回路である項目27記載のエラー検出回路。項目42エラー検出回路はロジックデバイスにプログラムされる請求項27記載のエラー検出回路。項目43エラー検出回路はロジックデバイスの外部にあり入出力端子を使用してロジックデバイスと結合される項目27記載のエラー検出回路。項目44エラー検出回路はソフトウェア内で実施される項目27記載のエラー検出回路。項目45ロジックデバイス内にプログラムされる構成データのエラーを検出するものであり:ロジックデバイス上にプログラムされる構成データに基づいて期待値を計算し;ロジックデバイス上に記憶された構成データを分析してエラーが発生しているかどうかを判定することからなる方法。項目46期待値の計算はロジックデバイスを構成する前にこのロジックデバイス上にプログラムされる前の構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算することからなる項目45記載の方法。項目47期待値の計算はロジックデバイスの構成中において構成データがロジックデバイス上にプログラムされている間にこの構成データに基づいた数値を予め設定された数値によって除算した結果得られる剰余から計算することからなる項目45記載の方法。項目48構成データの分析は:構成データに基づいた数値を計算し;計算された数値を期待値と比較する、ことからなる項目45記載の方法。項目49構成データの分析は:構成データに基づいた数値と期待値とを計算し;計算された数値上においてロジック演算を実行する、ことからなる項目45記載の方法。項目50エラーが検出されたかどうかを示す分析結果を出力することをさらに含む項目45記載の方法。項目51結果の出力は:エラーが検出されないことを示す第1の信号を送信するか;エラーが検出されたことを示す第2の信号を送信するか、のいずれか一方である項目45記載の方法。本発明の上記またはその他の利点は添付図面を参照しながら以下に記す詳細な説明によって明らかにされ、ここで同様な構成要素は同様な参照符号によって示される。本発明はプログラマブルロジックリソース内におけるエラー検出システムならびに方法を提供するものである。プログラマブルロジックリソースには、例えばプログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはその他の適宜なプログラマブルデバイスが含まれる。エラーは、ソフトエラーおよびハードエラーのいずれか一方あるいはその両方とすることができる。さらにエラーは、電圧スパイク、システムバグ、ライン伝送不良およびハードウェア誤動作を含むその他の外的な作用、あるいはプログラマブルロジックリソースのデータ表現に影響を及ぼすいずれかの事象に分類することができる。プログラマブルロジックリソースは、多様なアプリケーションのうちのいずれか1つあるいは複数のものを実行するようにこのプログラマブルロジックリソースをプログラムするためのデータを保持する。プログラマブルロジックリソース構成データは二進数値すなわち二進数の1および0の集合として表現され、例えば構成RAMCRAM等の適宜な場所に記憶することができる。他方、プログラマブルロジックリソース構成データは、例えばスタティックRAMSRAM、ダイナミックRAMDRAM、ラムバスDRAMRDRAM、シンクロナスDRAMSDRAM、ダブルデータレートシンクロナスDRAMDDRSDRAM、消去可能プログラム可能ROMEPROM、フラッシュメモリ、およびマグネティックRAMMRAM等のその他の適宜な揮発あるいは不揮発メモリ内に記憶することができる。メモリ内に記憶されたプログラマブルロジックリソース構成データは1つまたは複数のアプリケーションと関連付けることができる。例えば、あるプログラマブルロジックリソース構成データは、プログラマブルロジックリソースのプログラマブル要素をどのように構成するかを決定するすなわち特定のアプリケーションを実行するために使用することができる。プログラマブルロジックリソース構成データのうちのいくつかの二進数字はデータ例えば管理式、期待値等を表現するために使用することができる。プログラマブルロジックリソース構成データのその他の二進数字は、プログラマブルロジックリソースによって実行されるアプリケーションのリアルタイム動作の一部として使用することができる例えばメモリの読み取りおよび書き込みがアプリケーションによって決定される場合。特定の二進数字が誤って表示されるとプログラマブルロジックリソース構成データが変化する例えば、元々二進数1であった二進数字が二進数0とされた場合あるいはその逆の場合。本発明はこのようなエラーを検出する方法を提供する。本発明は前述したように巡回冗長検査CRCチェックサム分析によってプログラマブルロジックリソース内のエラーを検出するものであるが、プログラマブルロジックリソース内のエラーを検出するためのその他の適宜な方法を使用することが可能である。CRCチェックサム分析においてはチェックサムが計算される。このチェックサムは、例えばデータと管理式とからなる除算操作から生じた剰余とすることができる。他方、チェックサムはその他の好適な操作または操作の組み合わせを使用して計算することもできる。管理式はプログラマブルロジックリソース構成データの期待値を計算するために使用されるいずれかの適宜なデータ表示とすることができる。期待値は、プログラマブルロジックリソース内にプログラムされるべきデータあるいはプログラムされているデータと管理式とが演算数となる操作から生じるチェックサムである。この期待値はユーザが定義するものかあるいはその他の適宜な要素とすることができる。期待値は、プログラマブルロジックリソース上のレジスタまたはメモリ内に記憶するか、またはその他の適宜な場所に記憶することができる。一実施例において、チェックサムはプログラマブルロジックリソース構成データ上で計算され期待値と比較される。チェックサムと期待値との間に予め設定された所定の相関性が存在する場合エラーは検出されない例えばチェックサムと期待値とが等しいか、チェックサムが予め設定された偏差あるいは倍数をもって期待値と異なっている場合。別の実施例においては、プログラマブルロジックリソース構成データはまず専用のORXORツリーにロードされる。プログラマブルロジックリソース構成データがロードされた後、期待値がXORツリーにロードされる。XORツリーは管理式に基づいてロードされたデータおよび期待値上でチェックサムを計算する。チェックサムが予め設定された所定の数値に等しい例えばチェックサムが0、またはチェックサムが予め設定された偏差である場合エラーは検出されない。エラー検出回路によって形成される出力はプログラマブルロジックリソースの一出力端子に伝送され、これはユーザロジックによって監視することができる。エラーが検出された場合、プログラマブルロジックリソースのユーザにはプログラマブルロジックリソース構成データの全ての部分を再ロードするか、またはエラーに対応するその他の適宜な動作を行う選択肢が提供される。CRCチェックサム分析を行うためにCRCモジュールが使用される。CRCモジュールは任意の好適な構成を使用して実施することができる。例えば、一実施例においてCRCモジュールはプログラマブルロジックリソース上のハード配線された常駐要素とすることができる。別の実施例においては、CRCモジュールはプログラマブルロジックリソース内にプログラムすることができる。さらに別の実施例においては、CRCモジュールはプログラマブルロジックリソースの外部の独立したデバイスとして実施され、このCRCモジュールは例えば入出力I/O端子を使用してプログラマブルロジックリソースと結合される。さらに別の実施例においては、CRCモジュールはマイクロプロセッサ例えばコンピュータを使用して実行されるソフトウェア内で実施される。これらのいずれの実施形態も本発明と組み合わせて使用することができる。ここでは主にプログラマブルロジックリソース上のハード配線されたCRCモジュールに関連して本発明を説明するが、これは簡略化のためでありこれに限定されるものではない。図1ないし図3に関連してより詳細に説明するように、プログラマブルロジックリソース上においてエラー検出を行うために、追加的な信号、レジスタ、ならびに制御ロジックが必要とされる。例えば、エラー検出の開始を表記するために特定のレジスタ内におけるデータビットがフラグ付けされる。またエラー検出回路の準備を行うために追加的な信号が必要とされ、これには、例えばレジスタを消去する信号、カウンタをプリセットする信号、ならびに種々の制御信号を能動あるいは非能動にするための信号が含まれる。さらに、追加的なレジスタが必要とされ、これには、例えばプログラマブルロジックリソース構成データ内のフレームに指標を付けるためのアドレスレジスタ、および指標を付けたフレームをデータがエラー検出回路にロードする前に一時的に記憶するためのデータレジスタが含まれる。好適な一方式において、CRCモジュールとプログラマブルロジックリソースとの間のデータ交信を取り決めるために有限状態機械FSMが使用される。より具体的には、FSMはCRAM内のデータのCRCモジュールへのロードおよびシフトを命令することができる。他方、FSMはCRAM内のデータを一時的にデータレジスタにロードおよびシフトし、その後データレジスタからCRCモジュールにロードおよびシフトすることを命令することができる。CRCモジュールは、プログラマブルロジックリソース上のチェックサムならびに場合によっては期待値を計算するためのサブモジュールを含んでいる。このサブモジュールは標準的な多項式例えばCRC-32IEEE802規格、データの合計、またはその他の適宜なデータ表現を使用してチェックサム分析を実行するための任意の適宜な回路とすることができる。計算されたチェックサムはその後比較回路に伝送し、そこでチェックサムは期待値あるいはその他の予め設定された適宜な数値と比較することができる。比較回路はコンパレータ、ORゲート、XORゲート、またはその他の適宜なロジックゲートあるいはロジックゲートの組み合わせを使用して構成することができる。図1には、期待値102、プログラマブルロジックリソース構成データ104、有限状態機械FSM108、およびCRCモジュール116を備えた例示的なプログラマブルロジックリソース100が示されている。期待値102はプログラマブルロジックリソース100上のレジスタあるいはメモリ内に記憶することができる。プログラマブルロジックリソース構成データ104は、例えば構成RAMCRAM等のプログラマブルロジックリソース100内の適宜なメモリ内に記憶することができる。プログラマブルロジックリソース構成データ104はデータパス112を介してデータをCRCモジュール116に伝送することができる。パス112は、データを直列あるいは並列、またはその組み合わせによって伝送するための任意の適宜な単一あるいは複数のパスとすることができる。FSM108はCRCモジュール116とプログラマブルロジックリソース100との間のデータ交信を取り決めるために使用することができる。FSM108は、エラー検出の開始を検知し、クロック信号およびその他の信号を形成しパス106を介してプログラマブルロジックリソース構成データ104に送信し、パス112を介してのデータ104のCRCモジュール116へのロードを命令することができる。FSM108はパス114を介してCRCモジュール116内におけるエラー検出分析を命令することができる。パス106,112および114は、データならびにクロック、プリセット信号、フラグ等の種々の信号を伝送するために適したパスとすることができる。データパス106,112および114は直接接続とするか、あるいは中間回路を含むか、またはその両方とすることができる。中間回路は、例えばレジスタ、配線回路、マルチプレクサ、または種々の信号の表示/非表示、能動化/非能動化またはその両方を適宜な時間に実行してデータのロードならびにチェックサムの計算を行うことができるその他の適宜な回路とすることができる。図2には、プログラマブルロジックリソース構成データ104およびFSM108とCRCモジュール116との間のパス内に中間回路202を備えている例示的なプログラマブルロジックリソース200のブロック線図が示されている。図示されている構成要素間の交信を実行するパスのいずれもが適宜な中間回路を備え得ることが理解される。図1を参照すると、CRCモジュール116はチェックサム計算回路118と比較回路122を含んでいる。チェックサム計算回路118は、パス112を介してプログラマブルロジックリソース構成データを受信する。このチェックサム計算回路118はプログラマブルロジックリソース構成データ104上でチェックサムを計算し、これはCRCチェックサム分析で使用することができる。プログラマブルロジックリソース構成データ104上でチェックサムを計算するために任意の好適な方法を使用することができる。例えば、CRC-32IEEE802規格の多項式:[数1]GX=X32X26X23X22X16X12X11X10X8X7X5X4X2X111とすることができる管理式をチェックサムの形成のために使用することができる。一実施例において、チェックサムは例えばデータ例えばプログラマブルロジックリソース構成データ104のモジューロmodをとって管理式1によって行われ、これはデータを管理式で除算した際の剰余である。別の実施例において、データ上でモジューロ操作が行われる前にデータ上でシフト操作を行うことができる。本発明においてはチェックサムを形成するためにその他の好適な管理式を使用し得ることが理解される。プログラマブルロジックリソース構成データ104がCRCモジュール116ロードされる際、期待値102がCRCモジュール116にロードされる。期待値102は、任意の適宜なソースから受信することができる。一実施例において期待値はプログラマブルロジックリソース100にデータをプログラムする際にソフトウェアを使用して計算することができる。別の実施例において、期待値はプログラマブルロジックリソース100にデータをプログラムする際にCRCモジュール116を使用して計算することができる。例えば、プログラマブルロジックリソース100にデータがプログラムされる際に、データはさらにCRCモジュール116にも伝送され、そこで期待値が計算される。期待値はCRCモジュール116内でチェックサムを計算するためのものと同一のチェックサム計算を使用して計算することが好適である。本発明の一実施例おいて、プログラマブルロジックリソース構成データ104はチェックサムを形成するためにチェックサム計算回路118に伝送することができる。計算されたチェックサムはデータパス120を介して比較回路122に伝送される。計算されたチェックサムは比較回路112内において適宜なロジックゲートまたはロジックゲートの組み合わせ例えばコンパレータ、XORゲート、減算器等を使用して期待値102と比較される。チェックサムと期待値102との間に予め設定された関係例えばチェックサムと期待値102とが等しいか、チェックサムと期待値102とが予め設定された偏差または倍数をもって異なっているが成立する場合、比較回路122はエラーが検出されないことを示す出力例えば二進0を形成する。しかしながら、チェックサムと期待値102との間にこの予め設定された関係が成立しない場合例えばチェックサムと期待値102とが異なっているか、チェックサムと期待値102とが別の偏差をもって異なっている場合、比較回路122はエラーが検出されたことを示す出力例えば二進1を形成する。この比較回路122の出力はパス124を介してCRCエラー端子126に伝送される。CRCエラー端子126はプログラマブルロジックリソース構成データ104内のエラーの存在を監視するためにユーザがアクセスすることができる。本発明の別の実施例において、チェックサムを計算するためにプログラマブルロジックリソース構成データ104および期待値102を共にチェックサム計算回路118に伝送することができる。例えば、プログラマブルロジックリソース構成データは管理式の次数に等しいビット数によって乗算あるいはシフトすることができる例えば、CRC-32IEEE802規格において、この次数は最上項の指数であり32となる。期待値102これは同じ計算方式で計算されるはプログラマブルロジックリソース構成データ104の末端に添付しすなわち期待値102を示すビットがプログラマブルロジックリソース構成データ104を示すデータに添付される、チェックサム計算回路118を介して伝送することができる。計算されたチェックサムはその後データパス120に沿って比較回路122に伝送される。比較回路112内において、適宜なロジックゲートまたはロジックゲートの組み合わせ例えばコンパレータ、ORゲート、加算器等を使用して計算されたチェックサム上でロジック操作が行われる。チェックサムが予め設定された所定の数値に等しい場合例えばチェックサムが0、あるいはチェックサムが予め設定された偏差である場合、比較回路122はエラーが検出されないことを示す出力例えば二進0を形成する。しかしながら、チェックサムが予め設定された数値と異なる数値である場合例えばチェックサムが0でない、あるいはチェックサムが予め設定された偏差でない場合、比較回路122はエラーが検出されたことを示す出力例えば二進1を形成する。比較回路122はエラーが検出されたかどうかに従っていずれかの適宜な出力を形成する。この比較回路122の出力はパス124を介してCRCエラー端子126に伝送される。図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ツリーに伝送され、そこでチェックサムが計算される。一実施例において、XORツリー324は式1のCRC-32IEEE802規格の管理式を使用してチェックサムを計算することができる。任意の適宜な管理式を使用することができるが、期待値102の計算にも同じ管理式を使用することが好適である。XOR324が期待値102に後続しているプログラマブルロジックリソース構成データ104を受信すると、XOR324がロードされたデータを処理する。XORツリー324の出力はレジスタ326に結合され、ここで後続する処理のための後続するサイクル中においてXORツリー324にデータを返信することができる。レジスタ326は、ラッチ、フリップフロップ例えばDフリップフロップ、J-Kフリップフロップ、またはクロックメカニズムによって制御される適宜な記憶装置とすることができる。XORツリー324およびレジスタ326は、チェックサム計算回路118の一部を形成することができる。マルチプレクサ322を介してデータを伝送し、XORツリー324に直列、並列あるいはその組み合わせによってロードすることができる。一実施例において、1クロックサイクルごとに1つのデータビットをロードしてXORツリー324内で処理することができる。別の実施例においては、1クロックサイクルごとに複数例えば2,8,16のデータビットをロードしてXORツリー324内で処理することができる。図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が埋め込まれる。これらの追加的なビットはデータ列の前端、データ列の後端、あるいはその他の適宜な位置に埋め込むことができる。XORツリー324およびレジスタ326は以下の行列式で実施することができる:[数2]Q=AqBIN2行列は1つまたは複数の行および1つまたは複数の列に配列されたデータからなり、以下の特性を有する。[数3]XR×C=[1,11,21,C2,1R,1R,C]3ここでRは行の数をCは列の数を示している。Aはレジスタ326および管理式を示すd×dの行列であり、ここでdは管理式の最上項の次数である。qはレジスタ326内に現時点で記憶されている先のクロックサイクルからの内容を示すd×1の行列である。Bは管理式内の各項の係数を示すd×1の行列である。INは入力ビット402を示す定数である。Qは次のサイクル中のXORツリー324の出力例えば先のクロックサイクル中にレジスタ326内に記憶された内容を使用しての入力402の処理の結果を示すd×1の行列である。等式2に基づいて、クロックサイクル毎にN個の入力ビットを処理するための等式は以下のものとなる:[数4]1入力:Q1=AqBI142入力:Q2=A2qABI1BI253入力:Q3=A3qA2BI1ABI2BI36N入力:QN=ANqAN-1BI1ABIN-1BIN7図5には、XORツリー324およびレジスタ326を含んだ回路500の一実施例が示されている例えばチェックサム計算回路118。回路500はクロックサイクル毎に1つの入力ビット例えばI1を処理する。一例を挙げると、管理式は以下のように示される:[数5]GX=X5X318式8においてGXの次数が5であるため、XORツリー324の出力を記憶するために5つのレジスタ326が存在する。回路500の出力は等式4によって示され、その行列は以下のようになる:[数6]A=[0000110000010000010100010]9[数7]q=q1q2q3q4q5]10[数8]B=[10010]11Aは最初の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に代入すると、以下の出力が得られる:[数9]Q1=[q5I1q1q2q3q5I1q4]12Q1は次のサイクル中のレジスタ326の内容を次のように示す5×1の行列である:q5I1,q1,q2,q3q5I1およびq4。Q1の出力は二進数例えば0または1でありXORゲートを使用して達成することができる。回路500はXORゲート502および504とレジスタ510,520,530,540および550を含み、これらは単一のクロックによって制御されるレジスタ326の一部とすることができる。レジスタ510への入力はXORゲート502の出力であり、その入力はI1マルチプレクサ322の出力からのものと現状のレジスタ550の内容である。次のサイクルにおいて、レジスタ510の内容はQ11,1=q5I1となる。レジスタ520の入力はレジスタ510の現状の内容であり、従って次のサイクルにおいてレジスタ520の内容はQ12,1=q1となる。レジスタ530への入力はレジスタ520の現状の内容であり、従って次のサイクルにおいてレジスタ530の内容はQ13,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の内容はQ14,1=q3q5I1となる。レジスタ550の入力はレジスタ540の現状の内容であり、従って次のサイクルにおいてレジスタ550の内容はQ15,1=q4となる。図示されていないが、レジスタ510,520,530,540および550の内容はシグニチャレジスタ328への入力としても伝送される。図6には、XORツリー324およびレジスタ326を含む回路600の別の実施例が示されている。回路600は同じ管理式8を使用しており、サイクル毎に3つの入力ビット例えば、I1,I2,I3を処理する。式9,10および11を等式5に代入すると、以下の出力が得られる:[数10]Q3=[q3q5I1I3q4I2q5I1q1q3q5I1I3q2q4I2]13回路600はXORゲート602,604,606,608および610とレジスタ620,630,640,650および660を備えており、これらは1つのクロックによって制御されるレジスタ326の一部とすることができる。レジスタ620への入力はXORゲート602の出力であり、その入力はI1およびI3共にマルチプレクサ322からの出力であるとレジスタ640および650の現状の内容である。次のサイクルにおいて、レジスタ620の内容はQ31,1=q3q5I1I3となる。レジスタ630への入力はXORゲート604の出力であり、その入力はI2マルチプレクサ322からの出力とレジスタ650の現状の内容である。次のサイクルにおいて、レジスタ630の内容はQ32,1=q4I2となる。レジスタ640への入力はXORゲート606の出力であり、その入力はI1とレジスタ660の現状の内容である。次のサイクルにおいて、レジスタ640の内容はQ33,1=q5I1となる。レジスタ650への入力はXORゲート608の出力であり、その入力はI1およびI3とレジスタ620,640および660の現状の内容である。次のサイクルにおいて、レジスタ650の内容はQ34,1=q1q3q5I1I3となる。レジスタ660への入力はXORゲート610の出力であり、その入力はI2とレジスタ630および650の現状の内容である。次のサイクルにおいて、レジスタ660の内容はQ35,1=q2q4I2となる。XORゲート602,608および610は適宜なXORゲートまたはその組み合わせを使用して実施することができる。図示されていないが、レジスタ620,630,640,650および660の内容はシグニチャレジスタ328への入力としても伝送される。回路500および600は、説明上、クロックサイクル毎にそれぞれ1ビットおよび3ビットの入力を取り込んで管理式8に基づいたチェックサムの計算を実行するものに関して記述する。しかしながら、XORツリー324は任意の適宜な管理式例えばCRC-32IEEE802規格およびクロックサイクル毎に任意の入力ビット数を使用して実施することができる。入力402としてXORツリー324にデータが伝送されると、レジスタ326の内容が更新される。プログラマブルロジックリソース構成データ104および期待値102が処理された後、レジスタ326の内容が結果のチェックサムを保持する。一実施例において、以下に証明するように、エラーが検出されない場合結果のチェックサムは0となる。変数GX,MX,QX,EVおよびμXは以下のものを示している。[数11]GX=CRC-32IEEE802規格;MX=プログラマブルロジックリソース構成データ104;QX=比=MX/QX;EV=期待値=MXmodGX;μX=入力402として伝送されるデータ14期待値を計算するためにMX上でチェックサム計算を実行する際に、以下の式が導出される:[数12]X32MX≡EVmodGX15ここで記号≡は合同を示しており、EVmodGXに同等な剰余の等級に相応するものであるここでEVは等級内において最も小さな要素である。MXは以下のように定義される:[数13]X32MX=QXGXEV16XORツリー324への入力402は以下のように示される:[数14]μX=X32MXEV17MXは偏差X32すなわち管理式GXの次数によってMXに添付された期待値と共に乗算あるいはシフトされる。等式17について代数学的操作を行うことによって以下のものがのものがhれる:[数15]1.両辺をX32によって乗算する:X32μX=X32[X32MXEV]2.X32MXに等式16を代入する:X32μX=X32[QXGXEVEV]3.合同式で記載する:X32μX≡X32[EVEV]≡2EV≡018X32QXGXの項はmodGXの倍数であり、従って合同式においては存在しない。2EVのXORは二進形式の0に合同であるすなわち両方の入力が等しい場合、2入力XORゲートの出力は0となる。以下に、XORツリー324およびレジスタ326の一実施例がどのように機能するかについて簡略的に説明する。プログラマブルロジックリソース内にプログラムされたデータがデータビット列b110110001を含んでいると仮定すると、これは以下の多項式で示すことができる:[数16]MX=X8X7X5X4119管理式もデータビット列b101001であると仮定すると、これは管理式8を示すものとなる。プログラマブルロジックリソース内でデータMXをプログラムする前に期待値が計算される。期待値EVは、XORツリー324内においてチェックサムを計算する場合と同じ方式を使用してデータMXを管理式GXによって除算した際に得られる剰余である:[数17]EV=X5MXmodGX=X3X220すなわち、これはb10111である。XORツリー324はプログラマブルロジックリソース構成データ104を管理式の次数によって乗算あるいはシフトするとともにチェックサムを計算するために期待値102をプログラマブルロジックリソース構成データ104に添付するため、期待値102を計算すためにデータMXも同様に次数によって乗算あるいはシフトされる。プログラマブルロジックリソース構成データ104としてデータがプログラムされた後、エラー検出の開始を示すフラグを立てることができる。以下の式は変更されていないすなわちエラーの存在しないプログラマブルロジックリソース構成データ104の処理を示している:[数18]PX=MX21図7ないし図15を参照しながら以下に詳細に記述するように、このプログラムされたデータはXORツリー324に伝送される。プログラムされたデータがXORツリー324内にロードされた後、以下のように期待値がXORツリー324内にロードされる:[数19]X5PXEV=X13X12X10X9X5X3X2=b1101100010110022式22を管理式GXによって除算した際に得られる剰余は0であり、エラーが存在しないと考えることができる。[数20]X5PXEVmodGX=b023XORツリー324がクロックサイクル毎に1つの入力例えばI1を受け入れる場合、XORツリー324は図5に示されるように実施される管理式8に対して。表1は回路500がチェックサムを計算する際のレジスタ510,520,530,540および550の内容を示している。回路500の出力は0になる。XORツリー324がクロックサイクル毎に3つの入力例えばI1,I2,I3を受け入れる場合、XORツリー324は図6に示されるように実施される管理式8に対して。クロックサイクル毎に複数例えば3の入力ビットがXORツリー324に伝送されるため、データ流の先端に追加的なビット例えば二進数0が埋め込まれる。表2は回路600がチェックサムを計算する際のレジスタ620,630,640,650および660の内容を示している。回路600の出力は0である。以下の式は変更されているすなわちエラーが存在するプログラマブルロジックリソース構成データ104の処理を示している:[数21]PX=X8X7X5124PXは反転した1つのビットを有している。プログラムされたデータおよび期待値は以下のようにXORツリー324内にロードされる:[数22]X5PXEV=X13X12X10X5X3X2=b1101000010110025多項式25を管理式8によって除算した際に得られる剰余は0でなく、エラーが存在することを示している。[数23]X5PXEVGX=b1110126表3は回路600がチェックサムを計算する際のレジスタ620,630,640,650および660の内容を示している。レジスタ620,630,640,650および660の出力は0でなく、エラーの存在を示している。図3を参照すると、各クロックサイクルの後にレジスタ326の内容がシグニチャレジスタ328に伝送される。XORツリー324内においてプログラマブルロジックリソース構成データ104および期待値102が処理された後、シグニチャレジスタは計算されたチェックサムを含んでいる。シグニチャレジスタ328の内容はクロックサイクル毎に更新されるため、シグニチャレジスタ328の内容が有効である際すなわち計算されたチェックサムがシグニチャレジスタ328内に記憶された後にFSM108がシグニチャレジスタ328の内容を記憶するようにアップデートレジスタ330に命令する。ユーザは計算されたチェックサムまたは期待値102のいずれかを参照することができる。計算されたチェックサムを監視することによって、ユーザは検出されたエラーの特徴を判断することができる。例えば、ユーザはエラーが不規則なもの例えば複数回の計算において異なったチェックサムが算定されるであるか、あるいは同じエラーが繰り返し生じるもの例えば複数回の計算において等しいチェックサムが算定されるであるかを判断することができる。ユーザは任意の適宜な方式によって計算されたチェックサムまたは期待値102を参照することができる。一実施例において、各マルチプレクサ332がアップデートレジスタ330から1ビットを取り込み期待値102から1ビットを入力として取り込む。いずれの数値をユーザが参照したいかに従って、FSM108がアップデートレジスタ330からのデータあるいは期待値102のいずれを選択するかマルチプレクサ332に命令する。各マルチプレクサ332の出力はシフトレジスタ334に伝送される。シフトレジスタ334はプログラマブルロジックリソース300によってアクセス可能であるとともにその内容をユーザロジックが読み取ることができる。データがシフトレジスタ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の発光。エラーの存在を信号化するた化するた他の適宜な方式を使用することができる。FSM108はデータのサンプリングを調整するためにCRCモジュール320内の種々のレジスタに信号を送信する。例えば、FSM108は、XORツリー324が処理を終了してシグニチャレジスタ328がチェックサムを記憶した後にアップデートレジスタ330にクロック能動化信号を伝送する。クロック能動化信号は、シグニチャレジスタ328がレジスタ326からのデータを読み込んでいる際に同時にアップデートレジスタ330がシグニチャレジスタ328の内容を読み込むことがないように調整される。ユーザがチェックサムまたは期待値102の参照を要求した際にのみデータがマルチプレクサ332を介してシフトレジスタ334に伝送される。図7には、本発明の一実施例に従ってログラマブルロジックリソースのメモリコア700が示されている。メモリコア700は、アドレスレジスタ706と制御ロジック712とログラマブルロジックリソース構成データ714とデータレジスタ722とを含んでいる。データ714はデータセル716の行と列からなる行列に構成することができ、ここで各データセル716がそれぞれ1つの二進数字を含んでいる。行列に構成されたデータ714に対して、データ線718をセル716の各行と結合し、アドレス線720をセル716の各列と結合することができる。プログラマブルロジックリソース構成データ714は任意の適宜な構成で組織することができ、データセル716は任意の適宜な形式でデータ線およびアドレス線と結合することができる。簡略化および明瞭化のため、前記のデータ714は、データセル716の行を横断して延在するデータ線718とデータセル716の列を横断して延在するアドレス線718とを有するデータセル716の行列として具体的かつ明確に説明される。アドレスレジスタ706はデータセル716の所定の列をロードするためにアドレス線720を選択するよう使用することができる。セル716の各列は1つのフレームを示すことができ、またアドレスレジスタ706内の異なったアドレスビットとそれぞれ結合することができる。アドレスレジスタ706はフレームの数に等しいビット数を有することができ、アドレスレジスタ706内の各ビットはそれぞれ1つのアドレス線720に対応している。アドレスレジスタ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を適宜な時間に選択することを可能にする。フレームが選択されると選択されたデータセル716内に記憶された二進数字が所定のデータ線718上に書き込まれ、そこでデータレジスタクロック信号724がパルス発信されている際にデータレジスタ722内にロードされる。データレジスタ722は、フレームロード中にのみ使用し得る専用レジスタとするか、あるいは異なった時間に異なった機能を行うための共有レジスタとすることができる例えばデータレジスタ722はプログラマブルロジックリソース上へのプログラマブルロジックリソース構成データ714の形成中に使用されるレジスタと同じレジスタとすることができる。続いて、データレジスタ722の内容はパス726を介してエラー検出回路に伝送される。図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に結合され、データセルは例えば構成RAMCRAMまたはその他の適宜なメモリセルとすることができる。各データ線824にはデータセル814が結合される。各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にプログラムするために使用することができ、データビットを全般的に読み取るためには使用されない。各データセル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に伝送することができる。図9ないし図15には、CRCモジュール320等のエラー検出回路にデータをロードするための例示的なフローチャートが示されている。各フレームは、データビットの列か、データビットの行か、データビットのブロックか、あるいはその他の任意の適宜なデータビット構成を含むことができるが、ここでは明確化および具体化のために主にデータビットの列に関連して説明する。アドレスレジスタ内の1つのアドレスビットを各フレームに関連付けることができ、従って特定のアドレスビットが設定例えば二進数1にされた際に対応するフレームが選択され得る。例えばCRAM等のメモリ内に記憶されたプログラマブルロジックリソース構成データ104は、一時点に1フレーム読み出すことができ、一時的なデータレジスタに記憶され、その後データはCRCモジュール320にロードされる。フロー900はステップ910においてアイドルモードで開始する。次にステップ920においてフロー900はエラー検出を開始するかどうか決定し、これはフラグによって示される。このフラグはCRAM内のデータにアクセスする必要があるアプリケーション例えばエラー検出アプリケーションまたはその他の適宜なアプリケーションが起動しようとしている際に立てられる。これは、例えばシステムがユーザモードである際に二進数1が提示されるレジスタ内の専用ビットによって発信することができる。フラグが立っていない場合、フロー900はステップ920に滞留する。フラグが立っている場合、フロー900はステップ1000に移動し、そこでフロー900は第1のフレームをデータレジスタにロードする準備を行う。図10は、ステップ1000をより詳細に示したフローチャートである。ステップ1002において、CRCモジュール320がプリセットされる。例えば、カウンタは0にリセットされ、レジスタ例えば、レジスタ326、シグニチャレジスタ328、アップデートレジスタ330およびシフトレジスタ334がクリアされる。ステップ1002においても、アドレスレジスタクロックが能動化され例えば、ACLOCK信号704がパルス発信される、アドレスレジスタ入力が提示され例えば、AINPUT信号702が二進数1に設定される、プリチャージカウンタが能動化される例えば、PCOUNTERが付勢される。データ線718が予め設定された電圧例えばソース電圧に完全にプリチャージされている際に、プリチャージカウンタが表示される。次にステップ1004において、全てのデータ線618がプリチャージされる。ステップ1004においては、アドレスレジスタクロック信号704が非能動化され、アドレスレジスタ入力信号702は非提示にされる。ステップ1006において、フロー1000はプリチャージカウンタが二進数1に設定されているかどうかを判断する。データ線718が完全にプリチャージされている際例えば16サイクル後に、プリチャージカウンタが二進数1に設定される。プリチャージカウンタが二進数0を維持した場合に、フロー1000はステップ1004に回帰する。プリチャージカウンタが二進数1に設定された場合に、フロー1000はステップ1008に移動し、そこでデータ線のプリチャージが停止され、プリチャージカウンタが非能動化され、さらに読み取りカウンタが能動化される例えば、RCOUNTERが付勢される。選択されたアドレスに対応するデータが対応するデータ線718上に完全に読み取られると例えば、16サイクル後、読み取りカウンタが表示される。ステップ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が付勢される。図9を参照すると、レジスタ722に第1のフレームをロードすることが準備できている際に、フロー900はステップ1100に移動し、そこで最終フレームを除く全てのフレームがデータレジスタ722にロードされる。図11および図12は、ステップ1100におけるCRCモジュール320へのロードをより詳細に示したフローチャートである。ステップ1102において、データ線718上に現存する第1のフレームからのデータがデータレジスタ722内にロードされる。ステップ1102において、アドレス能動化信号710が非能動化され、さらにデータレジスタカウンタが能動化される例えば、DCOUNTERが付勢される。データレジスタ722内の予め設定された数のデータビットがCRCモジュール320にロードされた際に残留ビットを除いて、全てのビット、例えば34ビット、がロードされた際等、データレジスタカウンタが表示される。この予め設定された数は任意の好適な数とすることができ、各フレームをデータレジスタ722にそして実質的にCRCモジュール320にロードするために能動化および提示される多様な信号に適応するものである。ステップ1104において、その時点においてデータレジスタ722上に記憶されている第1のフレームからのデータがCRCモジュール320内にロードされる例えば、マルチプレクサ322に伝送されその後チェックサム計算を開始するためにXORツリーに伝送される。クロックサイクル毎に予め設定された数のビット例えば、8ビット、16ビット、あるいはその他の任意の好適なビット数がデータレジスタ722からCRCモジュール320に伝送される。次にステップ1106において、フロー1100はデータレジスタカウンタが二進数1に設定されているかどうかを判断する。データレジスタカウンタが二進数0である場合、フロー1100はステップ1104に回帰し、そこで次の予め設定された数のビットがCRCモジュール320にロードされる。データレジスタカウンタが二進数1に設定されている場合、フロー1100はステップ1108に移動し、そこでデータレジスタカウンタが非能動化され、アドレスレジスタクロック信号704が能動化され、またプリチャージカウンタが能動化され例えば、二進数0に設定され付勢される次のフレームのロードの準備状態となる。アドレスレジスタクロック信号704は、第1のアドレス線720にインデックスを付している二進数1をシフトして次のアドレス線720にインデックスを付ける。ステップ1108においても、データレジスタ722からの次の予め設定された数のビットがCRCモジュール320にロードされる。ステップ1110においては、全てのデータ線718がプリチャージされ、アドレスレジスタクロック信号704が非能動化され、データレジスタ722からの次の予め設定された数のビットがCRCモジュール320にロードされる。ステップ1112において、フロー1100はプリチャージカウンタが二進数1に設定されているかどうかを判断するプリチャージカウンタが二進数0である場合、フロー1100はステップ1110に回帰する。予め設定された数のサイクル例えば16サイクルにわたってCRCモジュール320にデータがロードされると、この予め設定されたサイクル数のうちのいずれか1つまたは一定の範囲中に前記の次の予め設定された数のビットがCRCモジュール320にロードされる。ビットは、1サイクルあるいは複数サイクルにわたって並列に読み取るか、前記の予め設定されたサイクル数にわたって直列に読み取るか、あるいは直列および並列の読み込みを組み合わせて行うことができる。プリチャージカウンタが二進数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から読み取ることができる。読み取りカウンタが二進数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にロードするために準備される。図9を参照すると、フレームが最終フレームである場合に、フロー900がステップ1300に移動し最終フレームをCRCモジュール320にロードする。図13および図14はステップ1300における最終フレームのロードをより詳細に示したフローチャートである。ステップ1302において、その時点にデータレジスタ722内にあるフレームすなわち最終フレームに隣接するフレームからの最終ビットがCRC回路320にロードされる。ステップ1302においても、最終フレームからのデータがデータ線718からデータレジスタ722にロードされ、アドレス能動化信号710が非能動化され、データレジスタカウンタが能動化される。フロー1300はその後ステップ1304に移動し、そこで最終フレーム内の予め設定された数のデータビットがCRC回路320にロードされる。ステップ1306において、データレジスタカウンタが二進数0である場合、フロー1300はステップ1304に回帰する。データレジスタカウンタが二進数1に設定されている場合、フロー1300はステップ1308に移動し、そこでデータレジスタカウンタが非能動化され、アドレスレジスタクロック信号704が能動化され、プリチャージカウンタが能動化され、そして最終フレーム内の予め設定された数のデータビットがCRC回路320にロードされる。ステップ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信号が提示される。図9を参照すると、プログラマブルロジックリソース構成データ104の全てのフレームがCRCモジュール内にロードされると、フロー900はステップ1500に移動し、そこで期待値がCRCモジュール320にロードされる。図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のバイトがロードされる。図9ないし図15についての記述は、クロックサイクル毎にデータレジスタ722または期待値102のうちの1つからの入力8データビットを受け入れるCRCモジュール320を使用する32ビット生成多項式の観点で説明する目的のものである。生成多項式を提供するために任意の適宜なビット数を使用することが可能であり、また任意のサイクルにおいて任意のビット数をCRCモジュール320にロードし得ることが理解される。しかしながら、これら2つの特徴に従って、データレジスタ722にデータをロードするタイミングならびにデータレジスタ722からCRCモジュール320にデータをシフトするタイミングが変化することに留意する必要がある。再度図9を参照すると、ステップ1500においてCRC期待値102がCRCモジュール320にロードされると、プロセス900はステップ920に回帰する。図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にロードされる。結果のチェックサムがステップ1612においてシグニチャレジスタ328にロードされると、フロー1600はステップ1614に移動し、ここでシグニチャレジスタ328の各ビット上で論理OR演算が実行される。ステップ1616において、OR演算の結果がCRCエラー端子に出力される。フロー1600はその後ステップ1618に回帰する。図17には、データ処理システム1700内に設けられた本発明の実施例を含んだプログラマブルロジックリソース1702またはマルチチップモジュール1704が示されている。データ処理システム1700は以下の構成要素のうち1つまたは複数を備えており:それらはプロセッサ1706;メモリ1708;I/O回路1710;および周辺デバイス1712である。これらの構成要素はシステムバスまたはその他の相互接続要素1720を介して互いに結合され、エンドユーザシステム1740内に内蔵された回路基板1730上に装備されている。システム1700は、コンピュータネットワーキング、データネットワーキング、ビデオ処理、デジタル信号処理、またはプログラマブルあるいはリプログラマブルロジックの利点を活用することが望まれる、広範な適用形態で使用することができる。プログラマブルロジックリソースまたはモジュール1702/1704は多様なロジック機能を広範囲に実行するために使用することができる。例えば、プログラマブルロジックリソースまたはモジュール1702/1704はプロセッサ1706と組合されて動作するプロセッサまたはコントローラとして構成することができる。プログラマブルロジックリソースまたはモジュール1702/1704は、さらにシステム1700内の共有リソースへのアクセスを仲介するアービタとして構成することもできる。さらに別の例として、プログラマブルロジックリソースまたはモジュール1702/1704は、プロセッサ1706とシステム1700内の他の構成要素との間のインタフェースとして構成することもできる。システム1700は1つの例であり、本発明の視点ならびに精神は請求の範囲によってのみ定義されることは勿論である。本発明の特徴を有するプログラマブルロジックリソース1702またはマルチチップモジュール1704、ならびにこれらのデバイスの種々の構成要素例えば、プログラマブルロジックコネクタPLCおよびこのPLCを制御するプログラム可能な機能制御要素FCEを実施するために多様な技術を使用することができる。例えば、各PLCは、いくつかの入力を1つの出力に接続するためのスイッチまたはスイッチ群等の比較的単純なプログラマブルコネクタとすることができる。他方、各PLCは、接続を行うだけでなくロジック例えば、複数の入力のロジック結合を実行することができるより複雑な要素とすることもできる。後者において、各PLCはAND、NAND、OR、またはNOR等の機能を実施するp項ロジックとすることができる。PLCを構成するために適した要素は、プログラマブルロジックリソース構成データを記憶するために使用することができるいずれかのタイプの揮発性あるいは不揮発性メモリとすることができ、EPROM、EEPROM、パストランジスタ、伝達ゲート、アンチヒューズ、レーザヒューズ、メタルオプショナルリンク等が挙げられる。PLCおよびその他の回路要素は、多様なプログラマブル機能制御要素FCEによって制御することができる。例えば、FCEはプログラマブルロジックリソース構成データを記憶するために使用することができるいずれかのタイプの揮発性あるいは不揮発性メモリとすることができる。さらに、FCEは、先入れ先出しFIFOメモリ、EPROM、EEPROM、機能制御レジスタ、強誘電メモリ、ヒューズ、アンチヒューズ等から構成することもできる。前述の多様な例から、本発明は一回のみプログラム可能なデバイスおよびリプログラム可能なデバイスの両方に適用可能であることが理解される。以上、プログラマブルロジックリソース上に設けられるエラー検出回路について説明した。当業者においては、前記の実施例は単に説明の目的のものであり、本発明はこれ以外の構成によっても実施可能であり、従って本発明はこれに限定されることはなく添付の請求の範囲によってのみ限定されることが理解される。"