(57)【要約】      （修正有）【課題】回路規模を増加させず、フリップフロップの保持値が当初の設定値を維持できる論理回路及び設定回路の制御方法を提供する。【解決手段】設定情報を保持して出力する設定回路１０と、クロックに同期して設定回路への書き込みデータを保持する第１のフリップフロップ１５ａと、第２のフリップフロップ１５ｂと、クロックに同期して設定回路への書き込みイネーブルを保持する第３のフリップフロップ１５ｃと、タイミング信号に同期して設定情報を保持する第４のフリップフロップ１１と、第４のフリップフロップと第１のフリップフロップの出力の一方を第４のフリップフロップの入力に与えるセレクタ１２と、セレクタを制御するゲート回路１４とを有する。クロックに同期して第３のフリップフロップの出力を保持して、第４のフリップフロップへタイミング信号として書き込みクロックを出力する第５のフリップフロップ１６とをさらに備える。【選択図】図２
2016208231.tif 000002
【特許請求の範囲】
【請求項１】
設定情報を保持して出力する設定回路と、
入力されるクロックに同期して前記設定回路への書き込みデータを保持して出力する第１のフリップフロップと、
前記入力されるクロックに同期して前記設定回路を選択する書き込みアドレスを保持して出力する第２のフリップフロップと、
前記入力されるクロックに同期して前記設定回路への書き込みを許可する書き込みイネーブルを保持して出力する第３のフリップフロップと、を有し、
前記設定回路は、与えられるタイミング信号に同期して設定情報を保持する第４のフリップフロップと、前記第４のフリップフロップの出力と前記第１のフリップフロップの出力との一方を前記第４のフリップフロップの入力に与えるセレクタと、前記第２のフリップフロップの出力と前記第３のフリップフロップの出力から、前記セレクタの選択状態を制御するゲート回路と、を備え、
前記入力されるクロックに同期して前記第３のフリップフロップの出力を保持して、前記第４のフリップフロップへ前記タイミング信号として書き込みクロックを出力する第５のフリップフロップをさらに有する論理回路。
【請求項２】
前記第１乃至第３のフリップフロップへ入力される同相のクロックに対し、前記第５のフリップフロップへは逆相のクロックが入力される、請求項１に記載の論理回路。
【請求項３】
前記第５のフリップフロップは、前記クロックの立ち下がりに同期して、前記書き込みクロックを出力する、請求項２に記載の論理回路。
【請求項４】
前記第１乃至第３のフリップフロップへ入力される同相のクロックに対し、前記第５のフリップフロップへは位相をずらしたクロックが入力される、請求項１に記載の論理回路。
【請求項５】
前記第５のフリップフロップへは位相を180°ずらしたクロックが入力される、請求項４に記載の論理回路。
【請求項６】
前記第５のフリップフロップは、前記クロックの立ち上がりに同期して、前記書き込みクロックを出力する、請求項４又は請求項５に記載の論理回路。
【請求項７】
前記入力されるクロックから、前記第５のフリップフロップへのタイミング信号を生成するＰＬＬ（Phase Locked Loop）をさらに有する、請求項１に記載の論理回路。
【請求項８】
設定情報を保持する設定回路の制御方法であって、
書き込みイネーブル信号が有効でかつ、書き込みアドレス信号が有効なときのみ、前記設定回路に対する書き込みを可能にする、設定回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路、及び設定回路の制御方法に関し、特に設定情報を保持する設定回路に対する制御方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）は自由に配線を切り替え、所望の回路構成をプログラマブルに実現できることが特徴である。ＦＰＧＡは、論理ゲート間の論理関係と接続関係とを記述したコンフィグレーションデータを、ＦＰＧＡが備えるコンフィグレーションＲＡＭ（Configuration Random Access Memory）に書き込むことで、所定の論理回路として機能する。このコンフィグレーションＲＡＭに設定された値（”１”或いは”０”）によりＦＰＧＡ内の配線を自由に接続することが可能となり、目的とする回路が実現される。
【０００３】
ところで、コンフィグレーションＲＡＭで発生するエラーには、回路そのものが損傷した「ハードエラー」と、アルファ線等の放射線によりＲＡＭ内のデータが破壊された「ソフトエラー」とが、存在する。「ソフトエラー」が発生した場合、ＦＰＧＡをリコンフィグレーションすれば復旧が可能である。リコンフィグレーションは、コンフィグレーションデータをコンフィグレーションＲＡＭにリロードすることによって行われる（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−７１５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
コンフィグレーションＲＡＭにソフトエラーが発生し、ＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した場合を想定する。コンフィグレーションＲＡＭのエラーが訂正されても、設定情報として設定値を保持するフリップフロップが当初の設定値を維持する機能の実現が、強く望まれていた。
【０００６】
本発明の目的は、回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる論理回路、及び設定回路の制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
前記目的を達成するため、本発明に係る論理回路は、
設定情報を保持して出力する設定回路と、
入力されるクロックに同期して上記設定回路への書き込みデータを保持して出力する第１のフリップフロップと、
上記入力されるクロックに同期して上記設定回路を選択する書き込みアドレスを保持して出力する第２のフリップフロップと、
上記入力されるクロックに同期して上記設定回路への書き込みを許可する書き込みイネーブルを保持して出力する第３のフリップフロップと、を有し、
上記設定回路は、与えられるタイミング信号に同期して設定情報を保持する第４のフリップフロップと、上記第４のフリップフロップの出力と上記第１のフリップフロップの出力との一方を上記第４のフリップフロップの入力に与えるセレクタと、上記第２のフリップフロップの出力と上記第３のフリップフロップの出力から、上記セレクタの選択状態を制御するゲート回路と、を備え、
上記入力されるクロックに同期して上記第３のフリップフロップの出力を保持して、上記第４のフリップフロップへ上記タイミング信号として書き込みクロックを出力する第５のフリップフロップをさらに有する。
【０００８】
本発明に係る設定回路の制御方法は、設定情報を保持する設定回路の制御方法であって、書き込みイネーブル信号が有効でかつ、書き込みアドレス信号が有効なときのみ、上記設定回路に対する書き込みを可能にする。
【発明の効果】
【０００９】
本発明によれば、回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる。
【図面の簡単な説明】
【００１０】
【図１】ＦＰＧＡの構成を示す概略図である。
【図２】本発明の最上位概念による論理回路を示すブロック図である。
【図３】本発明の第１実施形態による論理回路を示すブロック図である。
【図４】図３の論理回路の動作を説明するためのタイムチャートである。
【図５】本発明の第２実施形態による論理回路を示すブロック図である。
【図６】図５の論理回路の動作を説明するためのタイムチャートである。
【図７】本発明の第３実施形態による論理回路を示すブロック図である。
【図８】図７の論理回路の動作を説明するためのタイムチャートである。
【発明を実施するための形態】
【００１１】
本発明の好ましい実施形態について、図面を参照しながら詳細に説明する。図１は、ＦＰＧＡの構成を示す概略図である。ＦＰＧＡ２０は、スイッチマトリクス部２１、縦配線と横配線からなる配線部２２、ＰＬＤ（Programmable Logic Device）２３、コンフィグレーションＲＡＭ２４などを有する。スイッチマトリクス部２１は、縦配線と横配線からなる配線部２２の接続を決める。コンフィグレーションＲＡＭ２４は、スイッチマトリクス部２１の接続／未接続を指示する。コンフィグレーションＲＡＭ２４は、論理ゲート間の論理関係と接続関係とを記述したコンフィグレーションデータを外部からロードする。ＰＬＤ２３は、プログラム可能な論理素子であり、例えば論理演算を行う。
【００１２】
具体的には、コンフィグレーションＲＡＭ２４の１ｂｉｔ、１ｂｉｔが、ＦＰＧＡ２０のスイッチマトリクス部２１に接続されている。コンフィグレーションＲＡＭ２４の値（”０”又は”１”）によりこのスイッチマトリクス部２１の接続（接続又は未接続）を変更することにより、結果として縦配線と横配線を自由に接続することが可能となり、目的とする回路が実現される。
【００１３】
ところで、ＦＰＧＡのコンフィグレーションＲＡＭにおいても、ソフトエラー問題は避けることはできない。
【００１４】
以下、具体的に計算してみる。最近の２０ｎｍプロセスによる大規模ＦＰＧＡにおいては、このコンフィグレーションＲＡＭのｂｉｔ数が３００Ｍｂｉｔ程度になっている。また、Ｍｂｉｔ当たりのソフトエラーＦＩＴ数は約３３ＦＩＴ／Ｍｂｉｔ程度であり、この場合のコンフィグレーションＲＡＭのソフトエラーＦＩＴ数は
３００Ｍｂｉｔ  ×  ３３ＦＩＴ／Ｍｂｉｔ  ＝  約１００００ＦＩＴ
と求まる。ここでＦＩＴとは、１０の９乗時間（１０億時間）当たりの不良発生率を示す単位である。なお、ＦＰＧＡは配線の容易性を考慮して、縦配線／横配線領域本数を潤沢に用意している。縦配線の本数をｎ、横配線の本数をｍとした場合、スイッチマトリクスの交点はｎ×ｍ個となり、スイッチマトリクスにこの数だけコンフィグレーションＲＡＭのｂｉｔ数が必要となる。
【００１５】
ＦＰＧＡメーカの情報によれば、ＦＰＧＡの領域をほぼ使用可能上限まで使用した場合でも、スイッチマトリクス部にて具体的に使用されている交点は、搭載数の１／１０程度との指針が出ている。
【００１６】
つまり、実質のコンフィグレーションＲＡＭのソフトエラーＦＩＴ数は上記の１／１０（１０００ＦＩＴ）と見積もってよいとされている。結局、最新プロセスの大規模ＦＰＧＡは約１０００ＦＩＴと３ケタ台の数値を取ることになる。
【００１７】
本装置を毎年１０００台出荷し、１０年間でトータル１万台使用したとすると、平均の稼働年数は１０／２＝５年となり、トータルの部品稼働時間は
１００００台  ×  ５年  ×  ３６５日  ×  ２４時間＝４．３８Ｅ（＋８）
と求まる。したがって予測ソフトエラー故障数は
１０００Ｅ（−９）  ×  ４．３８Ｅ（＋８）＝４３８
となり、１０年で４３８台程度のソフトエラー故障が見込まれる。
【００１８】
これまで通信機器においては、予期せぬ故障に備えて、システムとして対応する場合が多く、冗長設計が行われるのが一般的である。しかしライフ期間において出荷母体の5%程度の故障が予想されるような装置では、冗長構成を取って通信品質は確保できたとしても、故障対応の費用が多くなり、適正な品質を適正なコストで提供することが難しくなる。
【００１９】
そのため、近年はＦＰＧＡ内に組み込まれたコンフィグレーションＲＡＭの自律エラー訂正機能を用いる場合が、多くなってきた。本機能は、ＦＰＧＡのコンフィグレーションＲＡＭにＦＥＣ（Forward Error Correction）機能を付加したものである。常時ＦＥＣエラーを検出し、万一コンフィグレーションＲＡＭにソフトエラーが発生して、結果としてＦＥＣエラーが発生した場合には、コンフィグレーションＲＡＭのエラーｂｉｔの訂正を自律で行う機能である。
【００２０】
しかし、コンフィグレーションＲＡＭがソフトエラーで反転して、ＦＥＣ処理が行われて訂正が行われるまで、多少なりとも時間を要すことになる。一例であるが、大規模・高速向きの２０ｎｍプロセスＦＰＧＡの場合は、ＦＥＣの並列処理数を多くするなどの工夫が組み込まれ、３０ｍｓｅｃオーダの時間で訂正（以下、訂正時間と略）が可能である。
【００２１】
それゆえ、通信機器にコンフィグレーションＲＡＭのソフトエラー訂正機能を使用することを前提に考えるため、通信機器の機能を大きく２つに分けて定義する。一つは「信号処理部」である。本信号処理部は通信機能のメイン機能をつかさどり、信号処理のための各基本要素を実現するマクロの集合体となる。もう一方が「設定回路」である。設定回路は一般にＣＰＵポートを通じて、各種の設定情報が蓄えられる。この情報により信号処理部の各モードや各機能の詳細な定義指定が行われる。
【００２２】
第一に信号処理部のコンフィグレーションＲＡＭのソフトエラー訂正に関して考察する。信号処理部では、エラー訂正時間の間は処理された結果にエラーが入ることになる。ただし、一般の信号処理回路には何らかのデータリカバリ機能が準備されており、通常はこの機能でデータの復帰が行われる。
【００２３】
次に、設定回路に関して考察する。一般に各設定値はフリップフロップに記憶され、一度記憶されると、この設定値が更新されるまで設定値は保持される。通信機器では一度設定されると装置のＬｉｆｅ間、再設定が行われないものも多く、例えば１０年間も同一値を保持しているフリップフロップも多く存在する。
【００２４】
このような設定値を保持したフリップフロップに関し、コンフィグレーションＲＡＭのソフトエラーにて回路構成が変化して設定値が書き換わってしまうことが想定される。その後、ソフトエラー訂正が行われて回路接続は復帰したとしても、フリップフロップの設定値は書き換わったままとなり、結局コンフィグレーションＲＡＭのエラー訂正が完了しても、本装置はエラーから復帰できないこととなる。
【００２５】
まとめると、信号処理系はコンフィグレーションＲＡＭのソフトエラー訂正機能を有効に活用できるが、設定系はコンフィグレーションＲＡＭのソフトエラー訂正機能を有効に活用できない場合が生じる。その結果として、コンフィグレーションＲＡＭのソフトエラー訂正機能を活用しても、装置機能が復帰しない場合が想定される。
【００２６】
すなわち、機器の供給側並びに機器の使用側の一方又は双方が通信機器の保守費用低減を目的に、コンフィグレーションＲＡＭのソフトエラー訂正機能を使用した場合でも、設定系の保持値が反転すると、正常な設定ができなくなる。故障パネルと判断され、保守部門の対応が必要になり、結果として保守費削減の効果を十分に引き出すことができないという課題があった。
【００２７】
なお、これまで宇宙用途や特別な機器には同一の機能ブロックを３回路用意し、その結果の多数決を持って結果の正当性を見分ける「Triple-Redundancy手法」が広く用いられている。「Triple-Redundancy手法」では回路規模が確実に３倍以上になり、コスト面の理由で一般の装置では採用を見送る場合が多い。また特に重要な一部の回路のみに適用する事例は多数あるが、この場合は適用した領域以外での故障発生の場合は、保守交換の対象となり、保守費用削減の効果は限定的となる。
【００２８】
本発明は、「Triple-Redundancy手法」のように回路規模を増加させることなく、フリップフロップの保持値が当初の設定値を維持できる論理回路、及び設定回路の制御方法を提供するものである。
【００２９】
具体的な実施形態について説明する前に、本発明の最上位概念による論理回路を説明する。図２は、本発明の最上位概念による論理回路を示すブロック図である。
【００３０】
図２の論理回路は、設定回路１０と、第１のフリップフロップ１５ａと、第２のフリップフロップ１５ｂと、第３のフリップフロップ１５ｃと、第５のフリップフロップ１６とを、有する。設定回路１０は、第４のフリップフロップ１１と、セレクタ１２と、ゲート回路１４とを備える。
【００３１】
設定回路１０は、設定情報を保持して出力する。第１のフリップフロップ１５ａは、入力されるクロックに同期して、上記設定回路１０への書き込みデータを保持して出力する。第２のフリップフロップ１５ｂは、上記入力されるクロックに同期して、上記設定回路１０を選択する書き込みアドレスを保持して出力する。第３のフリップフロップ１５ｃは、上記入力されるクロックに同期して、上記設定回路１０への書き込みを許可する書き込みイネーブルを保持して、１clock期間（1T）だけ遅延させて出力する。
【００３２】
設定回路１０の第４のフリップフロップ１１は、与えられるタイミング信号に同期して設定情報を保持する。設定回路１０のセレクタ１２は、上記第４のフリップフロップ１１の出力と、上記第１のフリップフロップ１５ａの出力との一方を、上記第４のフリップフロップ１１の入力に与える。ゲート回路１４は、上記第２のフリップフロップ１５ｂの出力と上記第３のフリップフロップ１５ｃの出力から、上記セレクタ１２の選択状態を制御する。
【００３３】
第５のフリップフロップ１６は、上記入力されるクロックに同期して、上記第３のフリップフロップ１５ｃの出力を保持して、設定回路１０の上記第４のフリップフロップ１１へ上記タイミング信号として書き込みクロックを出力する。
【００３４】
図２の論理回路では、書き込みイネーブルが有効な場合のみ、第５のフリップフロップ１６が出力する書き込みクロック信号に立ち上がりエッジが発生する。このため、書き込みイネーブルが無効な場合は、書き込みクロックは固定値となる。コンフィグレーションＲＡＭのソフトエラーで、設定回路１０の第４のフリップフロップ１１の周辺回路の回路構成が変わってしまった場合でも、書き込みイネーブルが有効でない場合には、フリップフロップ１１に新たな値を書き込むことができない。従って、フリップフロップ１１の保持値が変化することはない。以下、より詳細な実施形態について説明する。
【００３５】
〔第１実施形態〕
初めに、本発明の第１実施形態による論理回路について、説明する。図３は、本発明の第１実施形態による論理回路を示すブロック図である。図４は、図３の論理回路の動作を説明するためのタイムチャートである。
【００３６】
図３の論理回路は、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃ、フリップフロップ６を有する。さらに、設定情報を保持する設定回路が、フリップフロップ１、セレクタ２、ｎ  ｔｏ  １  デコーダ３、ゲート４を有する。図３では、設定回路＃１、設定回路＃２、設定回路＃３と３組の場合を示している。なお、書き込みアドレス（Write_Address）の種類分だけ書き込みフリップフロップが存在する。
【００３７】
書き込みデータ（Write_Data）はｍビット構成、書き込みアドレス信号（Write_Address）はｎビット構成の場合を、示している。
【００３８】
フリップフロップ１は、設定情報として設定値を保持する。
【００３９】
フリップフロップ５ａは、書き込みデータ信号（Write_Data）をリタイミングする。フリップフロップ５ｂは、書き込みアドレス信号（Write_Address）をリタイミングする。フリップフロップ５ｃは、書き込みイネーブル信号（Write_Enable）をリタイミングする。フリップフロップ５ｃは、この書き込みイネーブル信号（Write_Enable）を１clock期間（1T）だけ遅延させて出力する。セレクタ２は、フリップフロップ１に対して新たなDataを書き込む際に、書き込みデータ（Write_Data）を読み込む。ｎ  ｔｏ  １  デコーダ３は、有効なWrite_Address時（例えば＃１のAddress値）のみ”high”を出力する。ゲート４は、デコーダ３が”High”でかつフリップフロップ５ｃの出力（Write_Enable_1T）が有効な場合に”High”を出力する。
【００４０】
本実施形態では、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃに対しては正相のClockが供給されると共に、フリップフロップ６ａに対してはClockが逆相となって供給される。
【００４１】
フリップフロップ６は、フリップフロップ５ｃの出力を立ち下がりエッジでリタイミングする。フリップフロップ６の出力は、フリップフロップ１の書き込みクロック信号（Write_Clock）となる。
【００４２】
次に図４のタイムチャートを用いて、本実施形態の論理回路を説明する。書き込みイネーブル信号（Write_Enable）は、フリップフロップ５ｃでClockの立ち上がりでリタイミングされ、出力（Write_Enable_1T）となる。その後、フリップフロップ６にてClockの立ち下がりでリタイミングされ、フリップフロップ１の書き込みクロック信号（Write_Clock）となる。
【００４３】
フリップフロップ１に対する書き込みを可能にする条件は、(1)書き込みイネーブル信号（Write_Enable）が有効でかつ、(2)書き込みアドレス（Write_Address）が有効なWrite_Address（例えば＃１のAddress値）のときのみである。
【００４４】
書き込みイネーブル信号（Write_Enable）が有効な場合のみ、フリップフロップ６が出力する、書き込みクロック信号（Write_Clock）に立ち上がりエッジが発生する。このため、書き込みイネーブル信号（Write_Enable）が無効（Low固定）な場合は、書き込みクロック信号（Write_Clock）が固定値（Low）となる。
【００４５】
コンフィグレーションＲＡＭのソフトエラーで、フリップフロップ１の周辺回路の回路構成が変わってしまった場合でも、書き込みイネーブル信号（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）の”Ｃ”が、設定回路＃３のフリップフロップ１に書き込まれる。
【００４８】
本実施形態の論理回路によれば、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。
【００４９】
〔第２実施形態〕
次に、本発明の第２実施形態による論理回路について説明する。第２実施形態は第１実施形態の変形例である。同様な構成には同じ参照番号を付与することにより、詳細な説明を省略することとする。図５は、本発明の第２実施形態による論理回路を示すブロック図である。図６は、図５の論理回路の動作を説明するためのタイムチャートである。
【００５０】
Clockの周波数が高くなると、逆相エッジを使うことは交流回路設計マージンを減らすことにつながる。本実施形態は、正相フリップフロップのみで論理回路を構成した例を示す。
【００５１】
図５の論理回路は、第１実施形態と同様に、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃを有する。さらに、設定情報を保持する設定回路が、フリップフロップ１、セレクタ２、ｎ  ｔｏ  １  デコーダ３、ゲート４を有する。
【００５２】
本実施形態では、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃに対しては正相のClockが供給されると共に、フリップフロップ６ａに対しても正相のClockが供給される。
【００５３】
図６に示すように、書き込みイネーブル信号（Write_Enable）は、フリップフロップ５ｃでClockの立ち上がりでリタイミングされ、出力（Write_Enable_1T）となる。その後、フリップフロップ６ａにてClockの立ち上がりでリタイミングされ、フリップフロップ１の書き込みクロック信号（Write_Clock）となる。
【００５４】
本実施形態の論理回路によれば、第１実施形態と同様に、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。
【００５５】
さらに本実施形態では、フリップフロップ５ａ〜５ｃ、６ａを正相フリップフロップのみで構成したので、交流回路設計マージンの減少を防止することができる。
【００５６】
〔第３実施形態〕
次に、本発明の第３実施形態による論理回路について、説明する。第３実施形態は、第１実施形態や第２実施形態の変形例である。同様な構成には同じ参照番号を付与することにより、詳細な説明を省略することとする。図７は、本発明の第３実施形態による論理回路を示すブロック図である。図８は、図７の論理回路の動作を説明するためのタイムチャートである。
【００５７】
Duty_Cycleが劣化している（つまり50%からずれている）ようなClockの場合、逆相エッジを使うことは交流回路設計マージンを減らすことにつながる。本実施形態では、ＦＰＧＡ内に組み込まれているＰＬＬ（Phase Locked Loop）回路を使用した例である。
【００５８】
図７の論理回路は、第２実施形態と同様に、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃ、フリップフロップ６ａを有する。さらに、設定情報を保持する設定回路が、フリップフロップ１、セレクタ２、ｎ  ｔｏ  １  デコーダ３、ゲート４を有する。
【００５９】
さらに、本実施形態では、位相を180°ずらしたClockを発生するＰＬＬ７をさらに有する。ＰＬＬ７はClockから、位相を180°ずらしたClock（180°_Clock）を生成する。
【００６０】
本実施形態では、フリップフロップ５ａ、フリップフロップ５ｂ、フリップフロップ５ｃに対してはClockが供給されると共に、フリップフロップ６ａに対しては位相を180°ずらしたClock（180°_Clock）が供給される。
【００６１】
図８に示すように、書き込みイネーブル信号（Write_Enable）は、フリップフロップ５ｃでClockの立ち上がりでリタイミングされ、出力（Write_Enable_1T）となる。その後、フリップフロップ６ａにて位相を180°ずらしたClock（180°_Clock）の立ち上がりでリタイミングされ、フリップフロップ１の書き込みクロック信号（Write_Clock）となる。
【００６２】
本実施形態によれば、第１実施形態や第２実施形態の論理回路と同様に、設定値を保持するフリップフロップ１の保持値を変化させずに保持させることが可能となる。コンフィグレーションＲＡＭにソフトエラーが発生し、更にＦＰＧＡ内の自律エラー訂正機能でコンフィグレーションＲＡＭのエラーが訂正されてエラーから復帰した際にも、フリップフロップ１の保持値を変化させないようにできる。また回路規模の増加もほとんどない。
【００６３】
さらに本実施形態では、フリップフロップ６ａに対しては位相を180°ずらしたClock（180°_Clock）を供給することにより、フリップフロップ５ａ〜５ｃ、６ａを正相フリップフロップのみで構成している。これにより、交流回路設計マージンの減少を防止することができる。
【００６４】
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。例えば、第３実施形態においては、180°以外の位相でも動作すること並びに、ＰＬＬにより２倍の周波数や数倍の周波数の発生を行っても同様な動作となる。特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
【符号の説明】
【００６５】
１、５ａ、５ｂ、５ｃ、６、６ａ    フリップフロップ
２    セレクタ
３    デコーダ
４    ゲート
７    ＰＬＬ
１０    設定回路
１１    第４のフリップフロップ
１２    セレクタ
１４    ゲート回路
１５ａ    第１のフリップフロップ
１５ｂ    第２のフリップフロップ
１５ｃ    第３のフリップフロップ
１６    第５のフリップフロップ
２０    ＦＰＧＡ
２１    スイッチマトリクス部
２２    配線部
２３    ＰＬＤ
２４    コンフィグレーションＲＡＭ
【図１】
2016208231.tif 000003
【図２】
2016208231.tif 000004
【図３】
2016208231.tif 000005
【図４】
2016208231.tif 000006
【図５】
2016208231.tif 000007
【図６】
2016208231.tif 000008
【図７】
2016208231.tif 000009
【図８】
2016208231.tif 000010