(57)【要約】      （修正有）【課題】回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる論理回路、及び設定回路の制御方法を提供する。【解決手段】設定情報を保持する設定回路１０と、前記設定回路への書き込みデータを保持する第１のフリップフロップ１５ａと、前記設定回路を選択する書き込みアドレスを保持する第２のフリップフロップ１５ｂと、前記設定回路への書き込みイネーブル信号を保持する第３のフリップフロップ１５ｃと、を有する。前記設定回路は、設定情報を保持する第４のフリップフロップ１１と、前記第４のフリップフロップの入力に接続されたセレクタ１２と、前記セレクタの選択状態を制御するゲート回路１４と、を備える。前記第４のフリップフロップは、セット端子又はリセット端子付きであり、前記セット端子及び前記リセット端子には、共通の固定電位を供給する。【選択図】図２
2017130837.tif 000002
【特許請求の範囲】
【請求項１】
設定情報を保持して出力する設定回路と、
入力されるクロックに同期して前記設定回路への書き込みデータを保持して出力する第１のフリップフロップと、
前記入力されるクロックに同期して前記設定回路を選択する書き込みアドレスを保持して出力する第２のフリップフロップと、
前記入力されるクロックに同期して前記設定回路への書き込みを許可する書き込みイネーブルを保持して出力する第３のフリップフロップと、を有し、
前記設定回路は、与えられるタイミング信号に同期して設定情報を保持する第４のフリップフロップと、前記第４のフリップフロップの出力と前記第１のフリップフロップの出力との一方を前記第４のフリップフロップの入力に与えるセレクタと、前記第２のフリップフロップの出力と前記第３のフリップフロップの出力から、前記セレクタの選択状態を制御するゲート回路と、を備え、
前記第４のフリップフロップは、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップであり、前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子には、共通の固定電位が供給されている、論理回路。
【請求項２】
前記第１乃至第３のフリップフロップをリセットするリセット信号とは別のリセット信号が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、請求項１に記載の論理回路。
【請求項３】
前記第１乃至第３のフリップフロップをリセットするリセット信号が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、請求項１に記載の論理回路。
【請求項４】
前記第１乃至第３のフリップフロップをリセットするリセット信号とは別に固定電位が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、請求項１に記載の論理回路。
【請求項５】
装置評価時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を無効にする共通の固定電位が供給され、実運用時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を有効にする共通の固定電位が供給される、請求項１乃至請求項４のいずれか一項に記載の論理回路。
【請求項６】
装置評価時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を無効にする共通の固定電位が供給され、実運用時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を有効にする共通の固定電位が供給される、請求項１乃至請求項４のいずれか一項に記載の論理回路。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の論理回路と、複数の配線を含む配線部と、前記配線部の前記複数の配線の接続を決定するスイッチマトリクス部と、前記配線部に接続され、プログラム可能な論理素子を含むＰＬＤ（Programmable Logic Device）部とを有する、プログラム可能な論理回路。
【請求項８】
設定情報を保持する設定回路の制御方法であって、
前記設定回路は、与えられるタイミング信号に同期して前記設定情報を保持するフリップフロップであって、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップで構成されたフリップフロップを備え、
書き込みイネーブル信号が有効でかつ、書き込みアドレス信号が有効なときのみ、前記設定回路に対する書き込みを可能にし、
前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に、共通の固定電位を供給する、設定回路の制御方法。
【請求項９】
装置評価時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を無効にする共通の固定電位が供給され、実運用時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を有効にする共通の固定電位が供給される、
請求項８に記載の設定回路の制御方法。
【請求項１０】
装置評価時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を無効にする共通の固定電位が供給され、実運用時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を有効にする共通の固定電位が供給される、請求項８に記載の設定回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路、及び設定回路の制御方法に関し、特に設定情報を保持する設定回路に対する制御方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）は自由に配線を切り替え、所望の回路構成をプログラマブルに実現できることが特徴である。ＦＰＧＡは、論理ゲート間の論理関係と接続関係とを記述したコンフィグレーションデータを、ＦＰＧＡが備えるコンフィグレーションＲＡＭ（Configuration Random Access Memory）に書き込むことで、所定の論理回路として機能する。このコンフィグレーションＲＡＭに設定された値（”１”或いは”０”）によりＦＰＧＡ内の配線を自由に接続することが可能となり、目的とする回路が実現される。
【０００３】
ところで、コンフィグレーションＲＡＭで発生するエラーには、回路そのものが損傷した「ハードエラー」と、アルファ線等の放射線によりＲＡＭ内のデータが破壊された「ソフトエラー」とが、存在する。「ソフトエラー」が発生した場合、ＦＰＧＡをリコンフィグレーションすれば復旧が可能である。リコンフィグレーションは、コンフィグレーションデータをコンフィグレーションＲＡＭにリロードすることによって行われる（特許文献１参照）。
【０００４】
特許文献１では、一度コンフィギュレーションされるとソフトエラー以外では変化することのない固定情報を読み出して、読み出した固定情報にソフトエラーが発生したかを検出し、エラーが発生した場合はリコンフィグレーションすることが提案されている。
【０００５】
特許文献２は、ＳＲＡＭ（Static Random Access Memory）に回路構成情報を保持させるＦＰＧＡに関するものである。特許文献２では、ＳＲＡＭから回路構成情報を読み出して期待値と比較し、ソフトエラーエラーが発生していると判定されたときには期待値を利用して回路構成情報を書き換えることが、提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２３５０７４号公報
【特許文献２】特開２００８−１５９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コンフィグレーションＲＡＭにソフトエラーが発生し、ＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した場合を、想定する。コンフィグレーションＲＡＭのエラーが訂正されても、設定情報として設定値を保持するフリップフロップが当初の設定値を維持する機能の実現が、強く望まれていた。
【０００８】
特許文献１及び特許文献２には、このようなコンフィグレーションＲＡＭのエラーが訂正されても、設定情報として設定値を保持するフリップフロップが当初の設定値を維持するといった機能について、記載がない。
【０００９】
本発明の目的は、回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる論理回路、及び設定回路の制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
前記目的を達成するため、本発明に係る論理回路は、設定情報を保持して出力する設定回路と、入力されるクロックに同期して上記設定回路への書き込みデータを保持して出力する第１のフリップフロップと、上記入力されるクロックに同期して上記設定回路を選択する書き込みアドレスを保持して出力する第２のフリップフロップと、上記入力されるクロックに同期して上記設定回路への書き込みを許可する書き込みイネーブルを保持して出力する第３のフリップフロップと、を有し、
上記設定回路は、与えられるタイミング信号に同期して設定情報を保持する第４のフリップフロップと、上記第４のフリップフロップの出力と上記第１のフリップフロップの出力との一方を上記第４のフリップフロップの入力に与えるセレクタと、上記第２のフリップフロップの出力と上記第３のフリップフロップの出力から、上記セレクタの選択状態を制御するゲート回路と、を備え、
上記第４のフリップフロップは、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップであり、上記セット端子付きのフリップフロップの上記セット端子及び上記リセット端子付きのフリップフロップの上記リセット端子には、共通の固定電位が供給されている。
【００１１】
本発明に係る設定回路の制御方法は、設定情報を保持する設定回路の制御方法であって、
上記設定回路は、与えられるタイミング信号に同期して上記設定情報を保持するフリップフロップであって、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップで構成されたフリップフロップを備え、
書き込みイネーブル信号が有効でかつ、書き込みアドレス信号が有効なときのみ、上記設定回路に対する書き込みを可能にし、
上記セット端子付きのフリップフロップの上記セット端子及び上記リセット端子付きのフリップフロップの上記リセット端子に、共通の固定電位を供給する。
【発明の効果】
【００１２】
本発明によれば、回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる。
【図面の簡単な説明】
【００１３】
【図１】ＦＰＧＡの構成を示す概略図である。
【図２】本発明の最上位概念による論理回路を示すブロック図である。
【図３】本発明の第１実施形態による論理回路を示すブロック図である。
【図４】図３の論理回路の、装置評価時の動作を説明するためのタイムチャートである。
【図５】図３の論理回路の、実運用時の動作を説明するためのタイムチャートである。
【図６】本発明の第２実施形態による論理回路を示すブロック図である。
【図７】本発明の第３実施形態による論理回路を示すブロック図である。
【発明を実施するための形態】
【００１４】
本発明の好ましい実施形態について、図面を参照しながら詳細に説明する。図１は、ＦＰＧＡの構成を示す概略図である。ＦＰＧＡ２０は、スイッチマトリクス部２１、縦配線と横配線からなる配線部２２、ＰＬＤ（Programmable Logic Device）２３、コンフィグレーションＲＡＭ２４などを有する。スイッチマトリクス部２１は、縦配線と横配線からなる配線部２２の接続を決定する。コンフィグレーションＲＡＭ２４は、スイッチマトリクス部２１の接続／未接続を指示する。コンフィグレーションＲＡＭ２４は、論理ゲート間の論理関係と接続関係とを記述したコンフィグレーションデータを外部からロードする。ＰＬＤ２３は、プログラム可能な論理素子であり、例えば論理演算を行う。
【００１５】
具体的には、コンフィグレーションＲＡＭ２４の１ｂｉｔ、１ｂｉｔが、ＦＰＧＡ２０のスイッチマトリクス部２１に接続されている。コンフィグレーションＲＡＭ２４の値（”０”又は”１”）によりこのスイッチマトリクス部２１の接続（接続又は未接続）を変更することにより、結果として縦配線と横配線を自由に接続することが可能となり、目的とする回路が実現される。
【００１６】
ところで、ＦＰＧＡのコンフィグレーションＲＡＭにおいても、ソフトエラー問題は避けることはできない。
【００１７】
最近の光通信機器においては、100Gbps容量の機器開発が一巡し、200Gbps容量、そして400Gbps容量と進む勢いである。この様な状況において、ディジタル回路設計には主に高速・大容量ＦＰＧＡが用いられる。
【００１８】
ＦＰＧＡは自由に配線を切り替え、所望の回路構成をプログラマブルに実現できることが特徴であり、具体的にはＦＰＧＡ内のコンフィグレーションＲＡＭに回路データを書き込むことで実現される。
【００１９】
このコンフィグレーションＲＡＭに設定された値（“1”や“0”）によりＦＰＧＡ内の配線を自由に接続することが可能となり、目的とする回路が実現される。ところで、ＦＰＧＡのコンフィグレーションＲＡＭにおいてもソフトエラー問題は避けることはでない。具体的に計算してみると最近の20nmプロセスによる大規模ＦＰＧＡにおいては、このコンフィグレーションＲＡＭのbit数が300Mbit程度になっている。また、Mbit当たりのソフトエラーFIT数は約33FIT/Mbit程度であり、この場合のコンフィグレーションＲＡＭのソフトエラーFIT数は
300Mbit×33FIT/Mbit=約10000FITと求まる。なお、ＦＰＧＡは配線の容易性を考慮して、縦配線／横配線領域本数を潤沢に用意している。縦配線の本数をｎ、横配線の本数をｍとした場合、スイッチマトリクスの交点はｎ×ｍ個となり、スイッチマトリクスにこの数だけコンフィグレーションＲＡＭのbit数が必要となる。ＦＰＧＡメーカの情報によれば、ＦＰＧＡの領域をほぼ使用可能上限まで使用した場合でも、スイッチマトリクスにて具体的に使用されている交点は、搭載数の1/10程度との指針が出ている。つまり、実質のコンフィグレーションＲＡＭのソフトエラーFIT数は上記の1/10（1000FIT）と見積もってよいとされている。結局、最新プロセスの大規模ＦＰＧＡは約1000FITと３ケタ台の数値を取ることになる。本装置を毎年1000台出荷し、10年間でトータル1万台使用したとすると、平均の稼働年数は10/2＝5年となり、トータルの部品稼働時間は
10000台×5年×365日×24時間＝4.38E(+8)
と求まる。したがって予測ソフトエラー故障数は1000E（-9）×4.38E(+8)＝438となり、10年で438台程度のソフトエラー故障が見込まれる。これまで、通信機器においては、予期せぬ故障に備えて、システムとして対応する場合が多く、冗長設計が行われるのが一般的である。しかしライフ期間において出荷母体の５％程度の故障が予想されるような装置は、冗長構成を取って通信品質は確保できたとしても、故障対応の費用が多くなり、適正な品質を適正なコストで提供することが難しくなる。そのため、近年はＦＰＧＡ内に組み込まれたコンフィグレーションＲＡＭの自律エラー訂正機能を用いる場合が多くなってきた。本機能はＦＰＧＡのコンフィグレーションＲＡＭにＦＥＣ（Forward Error Correction）機能を付加し、常時ＦＥＣエラーを検出するものである。万一コンフィグレーションＲＡＭにソフトエラーが発生して、結果としてＦＥＣエラーが発生した場合はコンフィグレーションＲＡＭのエラーbitの訂正を自律で行う機能である。しかし、コンフィグレーションＲＡＭがソフトエラーで反転して、ＦＥＣ処理が行われて訂正が行われるまで、多少なりとも時間を要すことになる。一例であるが、大規模・高速向きの20nmプロセスＦＰＧＡの場合は、ＦＥＣの並列処理数を多くするなどの工夫が組み込まれ、30msecオーダの時間で訂正（以下、訂正時間と略）が可能である。
【００２０】
それゆえ、通信機器に本コンフィグレーションＲＡＭのソフトエラー訂正機能を使用する事を前提に考えるため、通信機器の機能を大きく２つに分けて定義する。一つは「信号処理部」である。本信号処理部は通信機能のメイン機能をつかさどり、信号処理のための各基本要素を実現するマクロの集合体となる。もう一方が「設定回路」である。設定回路は一般にＣＰＵポートを通じて、各種の設定情報が蓄えられる。この情報により信号処理部の各モードや各機能の詳細な定義指定が行われる。
【００２１】
第一に信号処理部のコンフィグレーションＲＡＭのソフトエラー訂正に関して考察する。信号処理部では、エラー訂正時間の間は処理された結果にエラーが入ることになる。ただし、一般の信号処理回路には何らかのデータリカバリ機能が準備されており、通常はこの機能でデータの復帰が行われる。本機能の一例ではあるが、データの内容がEthernet（登録商標）のPacketであれば、上位レイヤのプロトコル（TCP/IP）でエラーしたPacketの再送が行われるのが一般的である。またSonet/SDHのような装置であれば、50msec間のデータ欠落は通信の品質にはほとんど影響がないとみなされ、データエラーが許容されるのが一般的である。次に、設定回路に関して考察する。一般に各設定値はＦＦ(Flip-Flop)に記憶され、一度記憶されると、この設定値が更新されるまで設定値は保持される。通信機器では一度設定されると装置のLife間、再設定が行われないものも多く、例えば10年間も同一値を保持しているＦＦも多く存在する。このような設定値を保持したＦＦに関し、コンフィグレーションＲＡＭのソフトエラーにて回路構成が変化して設定値が書き換わってしまう事が想定される。その後、ソフトエラー訂正が行われて回路接続は復帰したとしても、ＦＦの設定値は書き換わったままとなり、結局コンフィグレーションＲＡＭのエラー訂正が完了しても、本装置はエラーから復帰できない事となる。
【００２２】
まとめると、信号処理系はコンフィグレーションＲＡＭのソフトエラー訂正機能を有効に活用できるが、設定系はコンフィグレーションＲＡＭのソフトエラー訂正機能を有効に活用できない場合が生じる。結果として、コンフィグレーションＲＡＭのソフトエラー訂正機能を活用しても装置機能が復帰しない場合が想定される。
【００２３】
すなわち、機器の供給側並びに機器の使用側の一方、または双方が通信機器の保守費用低減を目的に、コンフィグレーションＲＡＭのソフトエラー訂正機能を使用した場合でも、設定系の保持値が反転すると、正常な設定ができなくなる。故障パネルと判断され、保守部門の対応が必要になり、結果として保守費削減の効果を十分に引き出すことができないという課題があった。
【００２４】
なお、これまで宇宙用途や特別な機器には同一の機能ブロックを３回路用意し、その結果の多数決を持って結果の正当性を見分ける「Triple-Redundancy手法」が広く用いられている。回路規模が確実に３倍以上になり、コスト面の理由で一般の装置では採用を見送る場合が多い。また特に重要な一部の回路のみに適用する事例は多数あるが、この場合は適用した領域以外での故障発生の場合は、保守交換の対象となり、保守費用削減の効果は限定的となる。
【００２５】
本発明は、「Triple-Redundancy手法」のように回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる論理回路、及び設定回路の制御方法を提供するものである。
【００２６】
具体的な実施形態について説明する前に、本発明の最上位概念による論理回路を説明する。図２は、本発明の最上位概念による論理回路を示すブロック図である。図２の論理回路は、設定回路１０と、第１のフリップフロップ１５ａと、第２のフリップフロップ１５ｂと、第３のフリップフロップ１５ｃとを、有する。設定回路１０は、第４のフリップフロップ１１と、セレクタ１２と、ゲート回路１４とを備える。
【００２７】
設定回路１０は、設定情報を保持して出力する。第１のフリップフロップ１５ａは、入力されるクロックに同期して、上記設定回路１０への書き込みデータを保持して出力する。第２のフリップフロップ１５ｂは、上記入力されるクロックに同期して、上記設定回路１０を選択する書き込みアドレスを保持して出力する。第３のフリップフロップ１５ｃは、上記入力されるクロックに同期して、上記設定回路１０への書き込みを許可する書き込みイネーブルを保持して、１clock期間（1T）だけ遅延させて出力する。
【００２８】
設定回路１０の第４のフリップフロップ１１は、与えられるタイミング信号に同期して設定情報を保持する。第４のフリップフロップ１１は、リセット端子付きのフリップフロップであるか、セット端子付きのフリップフロップであることを、想定している。設定回路１０のセレクタ１２は、上記第４のフリップフロップ１１の出力と、上記第１のフリップフロップ１５ａの出力との一方を、上記第４のフリップフロップ１１の入力に与える。ゲート回路１４は、上記第２のフリップフロップ１５ｂの出力と上記第３のフリップフロップ１５ｃの出力から、上記セレクタ１２の選択状態を制御する。
【００２９】
図２の論理回路では、書き込みイネーブルが有効な場合に、書き込みアドレスで選択された設定回路１０の第４のフリップフロップ１１に新たな値を書き込むことができる。コンフィグレーションＲＡＭのソフトエラーで、設定回路１０の第４のフリップフロップ１１の周辺回路の回路構成が変わってしまった場合でも、書き込みイネーブルが有効でない場合には、第４のフリップフロップ１１に新たな値を書き込むことができない。従って、第４のフリップフロップ１１の保持値が変化することはない。
【００３０】
図２の論理回路では、設定回路１０の第４のフリップフロップ１１は、リセット端子付きのフリップフロップであるか、セット端子付きのフリップフロップである。そして、リセット端子付きのフリップフロップのリセット端子と、セット端子付きのフリップフロップのセット端子には、共通の固定電位（リセット信号）が供給されている。フリップフロップ１１のセット端子及びリセット端子には、装置評価時と実運用時とで異なる固定電位が与えられる。具体的には、装置評価時にはセット端子にはセット機能を無効にし、リセット端子にはリセット機能を無効にする固定電位が与えられる。また実運用時にはセット端子にはセット機能を有効にし、リセット端子にはリセット機能を有効にする固定電位が与えられる。
【００３１】
図２の論理回路では、コンフィグレーションＲＡＭにソフトエラーが発生して実運用時に設定回路の回路構成が変わってしまっても、各設定回路１０の各設定値の保持値が変化することは無い。各設定回路１０のフリップフロップ１１のセット端子にはセット機能を有効にし、フリップフロップ１１のリセット端子にはリセット機能を有効する固定電位が与えられている。設定回路の回路構成が変わっても、一例として、設定回路１０のゲート回路１４の出力が変わった場合でも、各設定回路１０のフリップフロップ１１がSet/Resetされたままである。これにより、設定回路１０のフリップフロップ１１の各設定値の保持値が変化することは無い。
【００３２】
コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。従って、保守性の優れた通信機器を費用の増加なく供給することが可能になる。以下、より詳細な実施形態について説明する。
【００３３】
〔第１実施形態〕
本発明の第１実施形態による論理回路について、説明する。図３は、本発明の第１実施形態による論理回路を示すブロック図である。図４は、図３の論理回路の、装置評価時の動作を説明するためのタイムチャートである。図５は、図３の論理回路の、実運用時の動作を説明するためのタイムチャートである。本実施形態による論理回路は、装置評価時の動作と実運用時の動作とが異なるものである。
【００３４】
図３の論理回路は、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃを有する。さらに、設定情報を保持する設定回路が、フリップフロップ１、セレクタ２、ｎ  ｔｏ  １  デコーダ３、ゲート４を有する。図３では一例として、設定回路＃１、設定回路＃２、設定回路＃３、設定回路＃３と４組の場合を示している。なお、書き込みアドレス（Write_Address）の種類分だけ書き込みフリップフロップが存在する。
【００３５】
書き込みデータ（Write_Data）はｍビット構成、書き込みアドレス信号（Write_Address）はｎビット構成の場合を、示している。
【００３６】
図３の設定回路のフリップフロップ１は、設定情報として設定値を保持する。フリップフロップ１は、Reset端子付きのフリップフロップ又はSet端子付きのフリップフロップである。
【００３７】
（表１）に、Set機能付きフリップフロップと、Reset機能付きフリップフロップの真理値表を示す。（表１）から理解されるように、フリップフロップはクロック信号の立ち上がりエッジに同期して入力端子への入力を保持して、出力端子から出力する。Set機能付きフリップフロップではSet端子への“１”入力により、入力端子への入力に関係なく出力端子の出力は“１”となる。Reset機能付きフリップフロップではReset端子への“１”入力により、入力端子への入力に関係なく出力端子の出力は“０”となる。
【００３８】
【表１】
2017130837.tif 000003
【００３９】
設定回路＃１において、設定回路＃１のフリップフロップ１は図３に示すようにReset端子付きのフリップフロップであり、リセット信号Reset_2により、装置の実運用時はReset状態（0）となる。
【００４０】
また、設定回路＃２において、設定回路＃２のフリップフロップ１は図３に示すようにSet端子付きのフリップフロップであり、リセット信号Reset_2により、装置の実運用時はSet状態（1）となる。
【００４１】
設定回路＃３及び設定回路＃４においても、設定回路＃３及び設定回路＃４＃２のフリップフロップ１はReset端子付きのフリップフロップ又はSet端子付きのフリップフロップである。そして、Reset端子付きのフリップフロップの場合には、リセット信号Reset_2により、装置の実運用時はreset状態（0）となり、Set端子付きのフリップフロップの場合には、リセット信号Reset_2により、装置の実運用時はset状態（1）となるものである。
【００４２】
図３の設定回路のフリップフロップ１は、リセット信号Reset_2により、装置評価時は通常動作する。すなわち、フリップフロップ１はクロック信号の立ち上がりエッジに同期して入力端子への入力を保持して、出力端子から出力する。
【００４３】
フリップフロップ５ａは、書き込みデータ信号（Write_Data）をリタイミングする。フリップフロップ５ｂは、書き込みアドレス信号（Write_Address）をリタイミングする。フリップフロップ５ｃは、書き込みイネーブル信号（Write_Enable）をリタイミングする。フリップフロップ５ｃは、この書き込みイネーブル信号（Write_Enable）を１clock期間（1T）だけ遅延させて出力する。フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃはそれぞれReset端子付きのフリップフロップで構成されており、共通のリセット信号Reset_1を受ける。第１の実施形態では、リセット信号Reset_1とリセット信号Reset_2とはお互いに異なる信号である。
【００４４】
セレクタ２は、フリップフロップ１に対して新たなDataを書き込む際に、書き込みデータ（Write_Data）を読み込む。ｎ  ｔｏ  １  デコーダ３は、有効なWrite_Address時（例えば＃１のAddress値）のみ”high”を出力する。ゲート４は、デコーダ３が”High”でかつフリップフロップ５ｃの出力（Write_Enable_1T）が有効な場合に”High”を出力する。本実施形態では、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃに対しては正相のClockが供給される。
【００４５】
次に図４のタイムチャートを用いて、装置評価時の本実施形態の論理回路を説明する。書き込みイネーブル信号（Write_Enable）は、フリップフロップ５ｃでClockの立ち上がりでリタイミングされ、出力（Write_Enable_1T）となる。
【００４６】
フリップフロップ１に対する書き込みを可能にする条件は、(1)書き込みイネーブル信号（Write_Enable）が有効でかつ、(2)書き込みアドレス（Write_Address）が有効なWrite_Address（例えば＃１のAddress値）のときのみである。
【００４７】
コンフィグレーションＲＡＭのソフトエラーで、フリップフロップ１の周辺回路の回路構成が変わってしまった場合でも、書き込みイネーブル信号（Write_Enable）が有効でない場合には、フリップフロップ１に新たな値を書き込むことができない。従って、フリップフロップ１の保持値が変化することはない。
【００４８】
このようにして、次の(1)及び(2)の両方を満たすときに、書き込みデータ（Write_Data）の”Ａ”が、設定回路＃１のフリップフロップ１に書き込まれる。
(1) 書き込みイネーブル信号（Write_Enable）が有効
(2) 書き込みアドレス（Write_Address）が有効なWrite_Address（＃１のAddress値）
同様に、書き込みイネーブル信号（Write_Enable）が有効でかつ、書き込みアドレス（Write_Address）が有効なWrite_Address（＃２のAddress値）のときに、書き込みデータ（Write_Data）の”Ｂ”が、設定回路＃２のフリップフロップ１に書き込まれる。
【００４９】
同様に、書き込みイネーブル信号（Write_Enable）が有効でかつ、書き込みアドレス（Write_Address）が有効なWrite_Address（＃３のAddress値）のときに、書き込みデータ（Write_Data）の”Ｃ”が、設定回路＃３のフリップフロップ１に書き込まれる。
【００５０】
こうして、装置評価時には、設定回路＃１〜設定回路＃３のフリップフロップ１に目的とする書き込みデータ（Write_Data）の“Ａ”、”Ｂ”、“Ｃ”が順に書き込まれる。装置評価時の各Addressの設定値がすでに決まっているので、RTL（Register Transfer Level）設計に設定値をフィードバックし、各設定値の初期値を評価で求まった初期値として、ＦＰＧＡの再Fittingを行う。
【００５１】
次に図５のタイムチャートを用いて、実運用時の本実施形態の論理回路を説明する。実運用時には、リセット信号Reset_2が“１”に固定される。先の真理値表に示した通り、フリップフロップのSet/Reset機能は最優先の機能であり、Clock端子やData端子の値に関係なく出力が定まる。Set機能付きのフリップフロップの場合において、Set端子が“１”の場合はフリップフロップの出力が“１”と定まり、Reset機能付きのフリップフロップの場合において、Reset端子が“１”の場合はフリップフロップの出力が“０”と定まる。これにより、設定回路＃１のフリップフロップ１のようなReset端子付きのフリップフロップはReset状態（0）となり、入力端子への入力に関係なく出力端子の出力は“０”となる。リセット信号Reset_2により、設定回路＃２のフリップフロップ１のようなSet端子付きのフリップフロップはSet状態（1）となり、入力端子への入力に関係なく出力端子の出力は“１”となる。
【００５２】
このように設定された論理回路では、コンフィグレーションＲＡＭにソフトエラーが発生して図５の時刻T1にて設定回路の回路構成が変わってしまっても、各設定回路＃１〜＃４の各設定値の保持値が変化することは無い。設定回路の回路構成が変わって、一例として、設定回路＃１のゲート４(#1_AND4)の出力が“０”から“１”に変わった場合でも各設定回路＃１〜＃４のフリップフロップ１はリセット信号Reset_2によりSet/Resetされたままである。各設定回路＃１〜＃４のフリップフロップ１はリセット信号Reset_2によりSet/Resetされたままであることにより、設定回路＃１〜＃４のフリップフロップ１の各設定値の保持値が変化することは無い。
【００５３】
唯一、フリップフロップ１の保持値反転が発生するのは、以下の場合である。
１）リセット信号Reset_2の配線がコンフィグレーションＲＡＭにソフトエラーで“０”固定となる。
２）フリップフロップ１へ入力されている入力データDataまたはクロック信号ClockがコンフィグレーションＲＡＭのソフトエラーで回路構成が変わってしまう。
【００５４】
このように２回のソフトエラーが発生した場合、フリップフロップ１の保持値が反転する可能性が残る。そこでその可能性に関して数値で考察する。上記説明で使用した数値をここでも使用する。
【００５５】
装置を毎年1,000台出荷し、10年間でトータル1万台使用したとすると、平均の稼働年数は10/2＝5年となり、トータルの部品稼働時間は
10,000台×5年×365日×24時間＝4.38E(+8)
と求まる。したがって予測ソフトエラー故障数は1000E（-9）×4.38E(+8)＝438となり、10年で438台程度のソフトエラー故障が見込まれる。
【００５６】
10年で438回のソフトエラーによる故障が見込まれることになり、これより平均故障間隔を求めると、10（年）×365（日）×24（時間）/438＝200（時間）
すなわち、ソフトエラーによる故障は平均、200時間に１回と求まる。先にも述べたように、最新の20nmプロセスＦＰＧＡの場合のコンフィグレーションＲＡＭのソフトエラーの訂正時間は30msecオーダであるので、200時間と30msecを比べると、200×3600/30e-3＝2.4e+7となり、７桁以上の数値となる。すなわち、30msec間に２回のソフトエラーが発生する発生確率は極めて小さい事になり、実用的な範囲では、30msec間に２回のソフトエラーの発生は無視してよいと考えられる。すなわち本実施形態の設定回路による対策は、実用的な範囲では完全であると言える。
【００５７】
なお、出荷後に設定値の変更が必要になった場合は、以下のような手段にてＦＰＧＡの書き換え対応が必要になる。
１）出荷パネルを一度工場に返却して、工場内でＦＰＧＡを書き換える。
２）ＦＰＧＡの遠隔ダウンロード機能を利用して、パネル運用状態のまま新しいConfig情報に切り替える。この場合、切り替え時間中は本パネルの機能は停止する。
３）ＦＰＧＡパーシャルリコンフィグ機能を利用して、パネル運用状態のまま新しいConfig情報に切り替える。この場合、切り替え時間中は本パネルの機能は停止または限定される。
４）切り替えが必要なパネルを一旦予備家に切り替え後、ＦＰＧＡの遠隔ダウンロード機能やパーシャルリコンフィグ機能を利用して、新しいConfig情報に切り替える。この場合は、システムとしての影響は発生しない。
【００５８】
なお、パッケージ側におけるリセット端子Reset_2の切り替え方法（評価時に“０”、出荷時に“１”に切替え）も多数の方法が考えられる。
・ディップスイッチの使用やハードストラップによる物理的な手法
・パネル上にソフトエラーに強いＦＰＧＡ（フラッシュＲＡＭタイプ等）を用いてソフトウエアで制御するソフト的手法
等が考えられる。
【００５９】
ところで、出荷後において、一時的に設定値の変更を行いたい場合もある。具体的には何らかの理由で思わぬ異常現象が見つかり、確認のために設定値を変更したい場合などである。この場合はパッケージ側のリセット端子Reset_2を一旦“０”に戻してから、新しい設定値を書き込むことで対応が可能になる。本評価でもし恒久的に設定値の変更が生じた場合は、「出荷後に設定値の変更が必要になった場合」と同じ方法でＦＰＧＡの書き換えを行う必要が有る。
【００６０】
ところで、出荷後に設定値の変更が必要になった場合、ＦＰＧＡの書き換え対応が必ず必要という事ではない。リセット端子Reset_2を“０”にしたまま、新しい設定値を書き込んだ状態で運用する選択肢も有効である。この場合はコンフィグレーションＲＡＭのソフトエラーにより設定値の反転が生じる確率が高くなるので、そのような状況が許容される保守体制が充実しているような地域等ではこの選択肢を選んでもよい。
【００６１】
本実施形態の論理回路によれば、装置の実運用時には、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。従って、保守性の優れた通信機器を費用の増加なく供給することが可能になる。
【００６２】
〔第２実施形態〕
次に、本発明の第２実施形態による論理回路について説明する。第２実施形態は第１実施形態の変形例である。同様な構成には同じ参照番号を付与することにより、詳細な説明を省略することとする。図６は、本発明の第２実施形態による論理回路を示すブロック図である。
【００６３】
第２実施形態は、第１実施形態のリセット信号Reset_2を第１実施形態のリセット信号Reset_1と共通化したものである。すなわち、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃのReset端子へ与えられる、共通のリセット信号Reset_1を設定回路のフリップフロップ１のSet端子やReset端子へ供給するように、構成したものである。
【００６４】
本実施形態の論理回路によれば第１の実施形態と同様に、装置の実運用時には、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。従って、保守性の優れた通信機器を費用の増加なく供給することが可能になる。
【００６５】
〔第３実施形態〕
次に、本発明の第３実施形態による論理回路について説明する。第３実施形態は第１実施形態の変形例である。同様な構成には同じ参照番号を付与することにより、詳細な説明を省略することとする。図７は、本発明の第３実施形態による論理回路を示すブロック図である。
【００６６】
第３実施形態は、第１実施形態のリセット信号Reset_2をレジスタ転送レベル（RTL）上で“０”に固定した例である。図３の第１実施形態と同様に、図７に示すように、装置評価時はリセット信号Reset_1を“０”に設定して装置評価を行う。そして装置評価で設定部の初期値が決まった際、その初期値をRTLに反映させるが、その後更にRTL上のリセット端子Reset_2を図７のように“１”に固定する。
【００６７】
したがって、本手法にはＦＰＧＡ端子（リセット端子Reset_2）が不要となり、装置パネル上でリセット端子Reset_2の処理が不要となるメリットが有る。またRTL上でリセット端子Reset_2を固定すると、ＦＰＧＡのFitting工程において、設定フリップフロップがマッピングされず、“０”または“１”の固定値が直接マッピングされる。すなわち設定フリップフロップがマッピングされないために、回路規模が削減できるという効果もある。なお、本手法はリセット端子Reset_2が存在しないので、「出荷後の一時的な設定値の変更」には対応できない点を考慮して、用いればよい。
【００６８】
本実施形態によれば、第１実施形態や第２実施形態の論理回路と同様に、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。
【００６９】
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。例えば、各設定回路のフリップフロップ１が全てSet端子付きのフリップフロップで構成された論理回路に本発明を適用することができる。また、各設定回路のフリップフロップ１が全てReset端子付きのフリップフロップで構成された論理回路に本発明を適用することができる。さらに、上述した第１乃至第３の実施形態のようにSet端子付きのフリップフロップとReset端子付きのフリップフロップとが共存した論理回路に、本発明を適用することができる。特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
【００７０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）設定情報を保持して出力する設定回路と、
入力されるクロックに同期して前記設定回路への書き込みデータを保持して出力する第１のフリップフロップと、
前記入力されるクロックに同期して前記設定回路を選択する書き込みアドレスを保持して出力する第２のフリップフロップと、
前記入力されるクロックに同期して前記設定回路への書き込みを許可する書き込みイネーブルを保持して出力する第３のフリップフロップと、を有し、
前記設定回路は、与えられるタイミング信号に同期して設定情報を保持する第４のフリップフロップと、前記第４のフリップフロップの出力と前記第１のフリップフロップの出力との一方を前記第４のフリップフロップの入力に与えるセレクタと、前記第２のフリップフロップの出力と前記第３のフリップフロップの出力から、前記セレクタの選択状態を制御するゲート回路と、を備え、
前記第４のフリップフロップは、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップであり、前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子には、共通の固定電位が供給されている、論理回路。
（付記２）前記第１乃至第３のフリップフロップをリセットするリセット信号とは別のリセット信号が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、付記１に記載の論理回路。
（付記３）前記第１乃至第３のフリップフロップをリセットするリセット信号が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、付記１に記載の論理回路。
（付記４）前記第１乃至第３のフリップフロップをリセットするリセット信号とは別に固定電位が、前記共通の固定電位として前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に供給される、付記１に記載の論理回路。
（付記５）装置評価時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を無効にする共通の固定電位が供給され、実運用時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を有効にする共通の固定電位が供給される、付記１乃至付記４のいずれか一つに記載の論理回路。
（付記６）装置評価時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を無効にする共通の固定電位が供給され、実運用時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を有効にする共通の固定電位が供給される、付記１乃至付記４のいずれか一つに記載の論理回路。
（付記７）付記１乃至付記６のいずれか一つに記載の論理回路と、複数の配線を含む配線部と、前記配線部の前記複数の配線の接続を決定するスイッチマトリクス部と、前記配線部に接続され、プログラム可能な論理素子を含むＰＬＤ（Programmable Logic Device）部とを有する、プログラム可能な論理回路。
（付記８）前記配線部の前記複数の配線の接続又は未接続を前記スイッチマトリクス部へ指示するコンフィグレーションＲＡＭ（Configuration Random Access Memory）をさらに有する、付記７に記載のプログラム可能な論理回路。
（付記９）設定情報を保持する設定回路の制御方法であって、
前記設定回路は、与えられるタイミング信号に同期して前記設定情報を保持するフリップフロップであって、セット端子付きのフリップフロップ又はリセット端子付きのフリップフロップで構成されたフリップフロップを備え、
書き込みイネーブル信号が有効でかつ、書き込みアドレス信号が有効なときのみ、前記設定回路に対する書き込みを可能にし、
前記セット端子付きのフリップフロップの前記セット端子及び前記リセット端子付きのフリップフロップの前記リセット端子に、共通の固定電位を供給する、設定回路の制御方法。
（付記１０）装置評価時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を無効にする共通の固定電位が供給され、実運用時には、前記セット端子付きのフリップフロップの前記セット端子にセット機能を有効にする共通の固定電位が供給される、
付記９に記載の設定回路の制御方法。
（付記１１）装置評価時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を無効にする共通の固定電位が供給され、実運用時には、前記リセット端子付きのフリップフロップの前記リセット端子にリセット機能を有効にする共通の固定電位が供給される、付記９に記載の設定回路の制御方法。
【符号の説明】
【００７１】
１、５ａ、５ｂ、５ｃ    フリップフロップ
２    セレクタ
３    デコーダ
４    ゲート
１０    設定回路
１１    第４のフリップフロップ
１２    セレクタ
１４    ゲート回路
１５ａ    第１のフリップフロップ
１５ｂ    第２のフリップフロップ
１５ｃ    第３のフリップフロップ
２０    ＦＰＧＡ
２１    スイッチマトリクス部
２２    配線部
２３    ＰＬＤ
２４    コンフィグレーションＲＡＭ
【図１】
2017130837.tif 000004
【図２】
2017130837.tif 000005
【図３】
2017130837.tif 000006
【図４】
2017130837.tif 000007
【図５】
2017130837.tif 000008
【図６】
2017130837.tif 000009
【図７】
2017130837.tif 000010