JP2013219473A - プログラマブルロジックデバイス - Google Patents

プログラマブルロジックデバイス Download PDF

Info

Publication number
JP2013219473A
JP2013219473A JP2012086985A JP2012086985A JP2013219473A JP 2013219473 A JP2013219473 A JP 2013219473A JP 2012086985 A JP2012086985 A JP 2012086985A JP 2012086985 A JP2012086985 A JP 2012086985A JP 2013219473 A JP2013219473 A JP 2013219473A
Authority
JP
Japan
Prior art keywords
logic
logic block
parity
output
logic blocks
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.)
Pending
Application number
JP2012086985A
Other languages
English (en)
Inventor
Fumihisa Morooka
史久 諸岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012086985A priority Critical patent/JP2013219473A/ja
Publication of JP2013219473A publication Critical patent/JP2013219473A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】ロジックブロックの信頼性を向上させたプログラマブルロジックデバイスを得る。
【解決手段】それぞれ独立に同一のデータ処理を行うロジックブロックA11、B12は、起動時の内部データをそれぞれ格納する初期データメモリA31、B32と、この初期データメモリA31、B32に格納されたデータと、対応するロジックブロックA11、B12の任意の時点の内部データを比較し、一致するかどうかによりロジックブロックA11、B12の正常、異常の判定を行う比較回路A41、B42とに接続されるとともに、出力選択回路5は、比較回路A41、B42の判定結果を用いて、ロジックブロックA11、B12の出力を保持する出力選択バッファA61、B62のいずれかを選択して、異常と判定されたロジックブロックからの出力を行わないようにして、ロジックブロックの信頼性を向上させる。
【選択図】図1

Description

この発明は、SRAM構造のFPGA(Field Programmable Gate Array)/CPLD(Complex Programmable Logic Device)を使用した回路の信頼性向上を行うプログラマブルロジックデバイスに関するものである。
SRAM構造のFPGA/CPLDを使用した場合に、FPGA/CPLDにて異常(データビット化け)が発生した際には、FPGA/CPLDのロジックブロックが正常状態で0のデータを出力する場合では、ロジックブロックの故障発生時には出力データが、異常の1になる場合がある。
特表2001−513236号公報(第6〜8頁、図1)
上述のとおり、従来のFPGA/CPLDを使用した回路では、ロジックブロックに異常(データビット化け)が発生した場合は出力が異常となる。そのため1箇所の故障でも回路の動作が継続することができないという問題があった。
この発明は、上記のような課題を解決するためになされたものであり、ロジックブロックの信頼性を向上させたプログラマブルロジックデバイスを得ることを目的にする。
この発明に係わるプログラマブルロジックデバイスにおいては、それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、起動時の各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、この各初期データメモリに格納されたデータと、対応するロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより各ロジックブロックの正常、異常の判定を行う複数の比較回路、及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、ロジックブロックの出力を選択する出力選択回路を備えたものである。
この発明によれば、それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、起動時の各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、この各初期データメモリに格納されたデータと、対応するロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより各ロジックブロックの正常、異常の判定を行う複数の比較回路、及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、ロジックブロックの出力を選択する出力選択回路を備えたので、いずれかのロジックブロックが異常となっても正常動作の継続が可能となり、信頼性が向上する。
この発明の実施の形態1によるプログラマブルロジックデバイスを示す構成図である。 この発明の実施の形態1によるプログラマブルロジックデバイスの異常発生時を説明する図である。 この発明の実施の形態2によるプログラマブルロジックデバイスを示す構成図である。 この発明の実施の形態2によるプログラマブルロジックデバイスのパリティ動作を説明する図である。 この発明の実施の形態3によるプログラマブルロジックデバイスを示す構成図である。 この発明の実施の形態3によるプログラマブルロジックデバイスのタイマ動作を示すフローチャートである。 この発明の実施の形態4によるプログラマブルロジックデバイスを示す構成図である。 この発明の実施の形態5によるプログラマブルロジックデバイスを示す構成図である。 この発明の実施の形態6によるプログラマブルロジックデバイスを示す構成図である。
実施の形態1.
以下、この発明の実施の形態1を図に基づいて説明する。
図1は、この発明の実施の形態1によるプログラマブルロジックデバイスを示す構成図である。
図1において、SRAM構造のFPGA/CPLDを使用したプログラマブルロジックデバイスは、次のように構成されている。
ロジックブロックA11、B12は、それぞれ独立に同一のデータ処理を行う。
ロジックブロックA11は、初期データメモリA31と比較回路A41とに接続され、ロジックブロックB12は、初期データメモリB32と比較回路B42とに接続される。
初期データメモリA31は、動作開始時(起動時)にロジックブロックA11のロジック状態をリードし、格納する。初期データメモリB32は、動作開始時(起動時)にロジックブロックB12のロジック状態をリードし、格納する。
この初期状態のロジック状態は、動作開始時にロジックブロックとして機能させるためにロードする元のデータと同じであり、初期データメモリA31、B32は、この元のデータをリードし、格納する。
ロジックブロックA11の出力結果A21と、ロジックブロックB12の出力結果B22の値はいずれも0となり、それぞれ、出力選択バッファA61、出力選択バッファB62に保持される。
比較回路A41及び比較回路B42は、それぞれ対応する初期データメモリA31、B32のデータと、予め決められたタイミングのロジックブロックA11、B12の内部データ(ロジック状態)をリードし、データが一致しているかどうかを判定する。また、出力選択回路5と接続されて、判定結果を出力選択回路5に通知する。
出力選択回路5は、比較回路A41及び比較回路B42の判定結果を受けて、出力選択バッファA61、出力選択バッファB62のいずれかを有意にして出力選択を行う。
図1では、出力選択回路5は、両ロジックブロックA11、B12が正常動作時の選択として、出力選択バッファA61を有意にしている。このとき出力結果2は、ロジックブロックA11の出力結果A21の値0となる。
図2は、この発明の実施の形態1によるプログラマブルロジックデバイスの異常発生時を説明する図である。
図2において、2、5、11、12、21、22、31、32、41、42、61、62は図1におけるものと同一のものである。
図2は、ロジックブロックA11の異常発生時の動作を示すもので、出力選択回路5は、出力選択バッファB62を有意にしている。
次に、動作について説明する。
初期データメモリA31は、動作開始時(起動時)にロジックブロックA11のロジック状態をリードし、格納する。同様に、初期データメモリB32は、動作開始時(起動時)にロジックブロックB12のロジック状態をリードし、格納する。
比較回路A41は、予め決められたタイミングで、初期データメモリA31のデータと、ロジックブロックA11の内部データをそれぞれリードし、データが一致しているかどうかを確認する。一致した場合は、正常判定を出力選択回路5に通知し、一致しない場合は異常判定を通知する。
同様に、比較回路B42は、予め決められたタイミングで、初期データメモリB32のデータとロジックブロックB12の内部データをそれぞれリードし、データが一致しているかどうかを確認する。一致した場合は、正常判定を出力選択回路5に通知し、一致しない場合は異常判定を通知する。
出力選択回路5は、比較回路A41及び比較回路B42の判定結果を受けて、出力選択バッファA61、出力選択バッファB62のいずれかを有意にして、出力選択を行う。
図1に示すように、両ロジックブロックが正常の場合は、いずれを有意としても問題ないが、説明のため、図1では出力選択バッファA61を選択するものとする。
図2に示すように、ロジックブロックA11に異常が発生した場合は、比較回路A41は、異常判定を行う。異常判定を受けた出力選択回路5は、出力選択バッファA61を無意とし、出力選択バッファB62を有意とする。
これにより、出力結果A21が正しくない値1となった場合に、正しい結果である出力結果B22の値0が選択される。その結果、出力結果2は正しい値0となる。
実施の形態1によれば、上記の動作により、いずれかのロジックブロックが異常となっても正常動作の継続が可能となり、FPGA/CPLD回路の動作の信頼性が向上する。
実施の形態2.
図3は、この発明の実施の形態2によるプログラマブルロジックデバイスを示す構成図である。
図3において、2、5、11、12、21、22、61、62は図1におけるものと同一のものである。図3では、ロジックブロックA11、B12のそれぞれの初期状態の内部データに対応するパリティビットを格納するパリティメモリA71、B72を設け、さらに、パリティメモリA71、B72のパリティデータと、ロジックブロックA11、B12の内部データとを用いて、正常、異常の判定を行うパリティ判定回路A81、B82が設けられている。
図4は、この発明の実施の形態2によるプログラマブルロジックデバイスのパリティ動作を説明する図である。
図4において、初期状態のロジックブロックの8ビットデータに対し、パリティメモリにパリティビット1ビットを付加している。適宜ロジックブロックの内部データとパリティメモリのパリティデータを読み出して、パリティビットを含めて内部データの1の数が偶数であれば正常、奇数の場合は異常とする。
実施の形態2は、図3に示すように実施の形態1の初期データメモリA31、初期データメモリB32をパリティメモリA71、パリティメモリB72に変更し、さらに比較回路A41、比較回路B42を、パリティ判定回路A81、パリティ判定回路B82に変更したものである。
次に、変更箇所の動作について説明する。
パリティ判定回路A81は、予め決められたタイミングで、ロジックブロックA11から内部データ、パリティメモリA71からパリティデータをリードし、パリティチェックした結果で正常/異常の判定を行う。このパリティチェックについては後述する。
同様に、パリティ判定回路B82は、予め決められたタイミングで、ロジックブロックB12から内部データ、パリティメモリB72からパリティデータをリードし、パリティチェックした結果で正常/異常の判定を行う。
それ以外の動作は、実施の形態1と同様である。
これにより、FPGA/CPLDを用いた回路の動作の信頼性が向上する。
パリティチェック機構は既知の技術であるが、念のため説明を行う。ここでは偶数パリティで説明する。
図4に示すように、初期状態のロジックブロックの8ビットデータに対し、パリティメモリにパリティビット1ビットを付加しておく。そして、予め決められたタイミングでロジックブロックの8ビットデータと、これに対応するパリティデータを読み出し、パリティビットを含めて1の数が偶数であれば正常、奇数の場合は異常とする。
図4では、ロジックブロックのいずれかのデータが化けた場合のもので、1の数が奇数となっていて、この場合異常となる。
なお、パリティ機構を応用したECC等も同様の考え方であり、同様の効果を奏することができる。
実施の形態2によれば、FPGA/CPLDを使用した回路の動作の信頼性が向上するとともに、実施の形態1と比べて、メモリのデータ量、比較/判定の計算時間が削減できるというメリットがある。
実施の形態3.
図5は、この発明の実施の形態3によるプログラマブルロジックデバイスを示す構成図である。
図5において、2、5、11、12、21、22、61、62は図1におけるものと同一のものである。図5では、ロジックブロックA11、B12にそれぞれタイマクリア回路A101、B102を設け、タイマクリア回路A101、B102により、周期的に、ロジックブロックA11、B12にそれぞれ対応して設けられたタイマA91、B92をクリアする。
実施の形態3は、図5に示すように、実施の形態1の比較回路に替えてタイマA91、B92とし、初期データメモリを削除し、さらに、ロジックブロックA11、B12の内部にタイマクリア回路A101、B102を設けたものである。
次に、変更箇所の動作について説明する。
タイマA91は、内部のカウンタを持ち、内部のカウンタがある値(しきい値)を超えた場合に異常の判定となる。カウンタの値は、タイマクリア回路A101がタイマクリア動作を行うことで、クリアされる。
この動作が継続している場合は、正常が継続するが、ロジックブロックA11が異常となった場合はタイムクリア回路A101も異常となり、本動作が継続しないことで、ロジックブロックA11が異常となったことを判別できる。タイマA91、B92の判定結果は、それぞれ出力選択回路5に出力される。
ロジックブロックB12についても同様の動作となる。それ以外の動作は、実施の形態1と同様となり、FPGA/CPLDを使用した回路の動作の信頼性が向上する。実施の形態1と比べた場合、初期状態を確認しなくて良い点にメリットがある。
次に、タイマA91、B92の動作を図6に基づき説明する。
タイマA91、B92は、動作開始時に初期化を行う(ステップS100)。タイマA91、B92のカウンタ値が設定上限(しきい値)であるかどうかを判定し(ステップS101)、上限となった場合は、異常判定とする。
上限となっていない場合は、当該タイマをカウントアップする(ステップS102)。次いで、タイマクリア回路A101、B102のいずれかからタイマクリア指令があるかどうかの判定を行い(ステップS103)、タイマクリア指令があった場合は、タイマ初期化(ステップS100)に戻って、対応するタイマを初期化し、無い場合は、タイマが設定上限であるかどうかの判定(ステップS101)に戻る。
これらの一連のフローを繰り返すことで、異常検出を行う。
実施の形態3によれば、FPGA/CPLDを使用した回路の動作の信頼性が向上するとともに、実施の形態1と比べた場合、初期状態を確認しなくて良い点にメリットがある。
実施の形態4.
図7は、この発明の実施の形態4によるプログラマブルロジックデバイスを示す構成図である。
図7において、2、5、11、12、21、22、31、32、41、42、61、62は図1におけるものと同一のものである。図7のプログラマブルロジックデバイスには、ロジックブロックC13と、動作開始時(起動時)にロジックブロックC13のロジック状態をリードし格納する初期データメモリC33と、初期データメモリC33のデータと、ロジックブロックC13の内部データとを比較する比較回路C43と、ロジックブロックC13の出力である出力結果23と、出力結果を保持する出力選択バッファC63とが設けられている。つまり、図1の2つのロジックブロックが3つのロジックブロックの構成になっている。
実施の形態4は、図7に示すように実施の形態1にロジックブロックC13、初期データメモリC33、比較回路C43、出力選択バッファC63を追加したものである。基本的な動作は実施の形態1と同様となる。実施の形態4においては、ロジックブロックA11、ロジックブロックB12が異常となった場合も動作が継続可能となり、実施の形態1よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
実施の形態4によれば、さらにFPGA/CPLDを使用した回路の冗長度を増したので、実施の形態1よりも信頼性が向上する。
実施の形態5.
図8は、この発明の実施の形態5によるプログラマブルロジックデバイスを示す構成図である。
図8において、2、5、11、12、21、22、61、62、71、72、81、82は図3におけるものと同一のものである。図8のプログラマブルロジックデバイスでは、さらにロジックブロックC13と、ロジックブロックC13のパリティを格納したパリティメモリC73と、ロジックブロックC13の内部データと、パリティメモリC73のパリティデータから正常、異常を判定するパリティ判定回路C83と、ロジックブロックC13の出力を保持する出力選択バッファC63とを設けている。
実施の形態5は、図8に示すように、実施の形態2にロジックブロックC13、パリティメモリC73、パリティ判定回路C83、出力選択バッファC63を追加したものである。
実施の形態5の基本的な動作は、実施の形態2と同様となる。本実施の形態5においては、ロジックブロックA11、ロジックブロックB12が異常となった場合も動作が継続可能となり、実施の形態2よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
実施の形態5によれば、さらにFPGA/CPLDを使用した回路の冗長度を増したので、実施の形態2よりも信頼性が向上する。
実施の形態6.
図9は、この発明の実施の形態6によるプログラマブルロジックデバイスを示す構成図である。
図9において、2、5、11、12、21、22、61、62、91、92、101、102は図5におけるものと同一のものである。図9のプログラマブルロジックデバイスでは、さらにロジックブロックC13と、ロジックブロックC13内に配置されたタイマクリア回路C103と、タイマクリア回路C103によりクリアされ、内部にカウンタを有するタイマC93と、ロジックブロックC13の出力を格納する出力選択バッファC63とが設けられている。
実施の形態6は、図9に示すように、実施の形態3にロジックブロックC13、タイマC93、ロジックブロックC13内部のタイマクリア回路C103、出力選択バッファC63を追加したものである。
実施の形態6の基本的な動作は、実施の形態3と同様である。本実施の形態6においては、ロジックブロックA11、ロジックブロックB12が異常となった場合も動作が継続可能となり、実施の形態3よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
実施の形態6によれば、さらにFPGA/CPLDを使用した回路の冗長度を増したので、実施の形態3よりも信頼性が向上する。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
11 ロジックブロックA
12 ロジックブロックB
13 ロジックブロックC
2 出力結果
21 出力結果A
22 出力結果B
23 出力結果C
31 初期データメモリA
32 初期データメモリB
33 初期データメモリC
41 比較回路A
42 比較回路B
43 比較回路C
5 出力選択回路
61 出力選択バッファA
62 出力選択バッファB
63 出力選択バッファC
71 パリティメモリA
72 パリティメモリB
73 パリティメモリC
81 パリティ判定回路A
82 パリティ判定回路B
83 パリティ判定回路C
91 タイマA
92 タイマB
93 タイマC
101 タイマクリア回路A
102 タイマクリア回路B
103 タイマクリア回路C

Claims (3)

  1. それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
    起動時の上記各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、
    この各初期データメモリに格納されたデータと、対応する上記ロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより上記各ロジックブロックの正常、異常の判定を行う複数の比較回路、
    及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
  2. それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
    起動時の上記各ロジックブロックの内部データのパリティビットをそれぞれ格納する複数のパリティメモリ、
    この各パリティメモリに格納されたパリティビットと、対応する上記ロジックブロックの内部データとを用いて、予め決められたタイミングでパリティチェックを行い、上記各ロジックブロックの正常、異常の判定を行う複数のパリティ判定回路、
    及びこの複数のパリティ判定回路の判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
  3. それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
    上記各ロジックブロックに対応して設けられるとともに、対応するロジックブロックによりクリアされるカウンタを有し、上記カウンタがクリアされないために上記カウンタのカウント値がしきい値を超えた場合に、当該ロジックブロックの異常を判定する複数のタイマ、
    及びこの複数のタイマの判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
JP2012086985A 2012-04-06 2012-04-06 プログラマブルロジックデバイス Pending JP2013219473A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012086985A JP2013219473A (ja) 2012-04-06 2012-04-06 プログラマブルロジックデバイス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012086985A JP2013219473A (ja) 2012-04-06 2012-04-06 プログラマブルロジックデバイス

Publications (1)

Publication Number Publication Date
JP2013219473A true JP2013219473A (ja) 2013-10-24

Family

ID=49591141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012086985A Pending JP2013219473A (ja) 2012-04-06 2012-04-06 プログラマブルロジックデバイス

Country Status (1)

Country Link
JP (1) JP2013219473A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015213510A1 (de) 2014-07-18 2016-01-21 Denso Corporation Signalverarbeitungsvorrichtung
CN113657062A (zh) * 2021-08-19 2021-11-16 无锡中微亿芯有限公司 基于奇偶校验提高fpga运行可靠性的方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015213510A1 (de) 2014-07-18 2016-01-21 Denso Corporation Signalverarbeitungsvorrichtung
JP2016025464A (ja) * 2014-07-18 2016-02-08 株式会社デンソー 信号処理装置
US10209303B2 (en) 2014-07-18 2019-02-19 Denso Corporation Signal processing apparatus
CN113657062A (zh) * 2021-08-19 2021-11-16 无锡中微亿芯有限公司 基于奇偶校验提高fpga运行可靠性的方法
CN113657062B (zh) * 2021-08-19 2023-09-05 无锡中微亿芯有限公司 基于奇偶校验提高fpga运行可靠性的方法

Similar Documents

Publication Publication Date Title
CN107045463B (zh) 具有纠错码的存储器架构以及其操作方法
JP5696175B2 (ja) プログラマブルロジックリソース上のエラー検出
US8996972B1 (en) Low-density parity-check decoder
US20180323806A1 (en) Sliding window list decoder for error correcting codes
US9246515B2 (en) Error correction code block having dual-syndrome generator, method thereof, and system having same
KR102094878B1 (ko) 반도체 메모리 장치 및 동작 방법
KR20150083028A (ko) 데이터 처리 장치
JP5663881B2 (ja) クロック装置
US9252778B2 (en) Robust flexible logic unit
US8332727B2 (en) Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit
US9471416B2 (en) Partitioned error code computation
JP2013219473A (ja) プログラマブルロジックデバイス
JP5449623B2 (ja) 信号処理装置
JP6408482B2 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
KR20100031402A (ko) 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
JP6861611B2 (ja) 半導体装置及びそれを備えた半導体システム
JP6889138B2 (ja) 格納装置及び格納方法
JPWO2015068207A1 (ja) プログラマブルデバイス
US20160117218A1 (en) Monitoring data error status in a memory
RU51427U1 (ru) Отказоустойчивое запоминающее устройство повышенной достоверности функционирования
JP2011154551A (ja) 誤り検出訂正装置及び方法並びにメモリ装置
Gherman et al. Sequential Decoders for Binary Linear Block ECCs
RU2486611C1 (ru) Резервированный регистр в многофазном коде
JP2022142201A (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム
CN107615248A (zh) 分布式数据存储方法、控制设备和系统