(57)【要約】  本発明のＦＰＧＡは回路構造が固定されたハードマクロＣＰＵ（２）と、回路構造を変更可能なプログラマブルロジック（３）と、前記プログラマブルロジック（３）の異常を診断する診断回路（５）と、前記プログラマブルロジック（３）からの外部出力を安全側に制御可能なフェールセーフインタフェース回路（４）と、前記診断回路（５）によってエラーが検出されると、前記ハードマクロＣＰＵ（２）が前記フェールセーフインタフェース回路（４）に対し安全側の出力であるフェールセーフ信号（４１）を出力するよう指示する機能を備えることを特徴とする。  本発明は、故障の恐れの少ないハードマクロＣＰＵ（２）によってフェールセーフインタフェース回路（４）を安全側に制御するため、ＳＲＡＭで構成されるプログラマブルロジック部分が故障しても不適切な値がＦＰＧＡの外部に出力されることを防止し、システムの安全性を保つことが可能になる。
2016207933.tif 000002
【特許請求の範囲】
【請求項１】
回路構造が固定されたハードマクロＣＰＵと、  回路構造を変更可能なプログラマブルロジックと、  前記プログラマブルロジックの異常を診断する診断回路と、  前記プログラマブルロジックからの外部出力を安全側に制御可能なフェールセーフインタフェース回路と、  前記診断回路によってエラーが検出されると、前記ハードマクロＣＰＵが前記フェールセーフインタフェース回路に対し安全側の出力であるフェールセーフ信号を出力するよう指示する機能を備えるフィールドプログラマブルゲートアレイ。
【請求項２】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フェールセーフインタフェース回路は前記プログラマブルロジック内に備えられ、  前記ハードマクロＣＰＵから前記フェールセーフインタフェース回路への指示は、前記ハードマクロ側から前記プログラマブルロジック側へのみデータを送信可能な通信路を介して行われることを特徴とするフィールドプログラマブルゲートアレイ。
【請求項３】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フェールセーフインタフェース回路は、ハードマクロで実装されることを特徴とするフィールドプログラマブルゲートアレイ。
【請求項４】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記ハードマクロＣＰＵが実行するソフトウェアプログラムによって前記フェールセーフインタフェースを制御することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項５】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記診断回路は、コンフィグレーション・ランダム・アクセス・メモリの巡回冗長検査、又は、誤り訂正符号を使用して、前記プログラマブルロジックを診断することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項６】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フィールドプログラマブルゲートアレイに接続した制御システムの立ち上げ処理開始時に前記フェールセーフインタフェース回路から前記制御システムへ前記フェールセーフ信号を出力し、  前記制御システムの立ち上げ処理終了時に前記フェールセーフインタフェース回路から前記制御システムへ前記フェールセーフ信号の出力を終了することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項７】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フェールセーフインタフェースからの前記フェールセーフ信号として高電位（Ｈｉｇｈ）固定もしくは低電位（Ｌｏｗ）固定の値を出力することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項８】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フェールセーフインタフェースからの前記フェールセーフ信号として、一定の間隔で高電位（Ｈｉｇｈ）と低電位（Ｌｏｗ）を繰り返す交番信号を出力することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項９】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フェールセーフインタフェースからの前記フェールセーフ信号として、複数ビットで構成されるコマンドを出力することを特徴とするフィールドプログラマブルゲートアレイ。
【請求項１０】
請求項１に記載のフィールドプログラマブルゲートアレイにおいて、  前記フィールドプログラマブルゲートアレイの外部端子は、  前記ハードマクロＣＰＵに専用に接続される外部端子と、  前記プログラマブルロジックに専用に接続される外部端子と、  前記フェールセーフインタフェース回路に専用に接続される外部端子とに分けられることを特徴とするフィールドプログラマブルゲートアレイ。
【請求項１１】
請求項１０に記載のフィールドプログラマブルゲートアレイにおいて、  前記フィールドプログラマブルゲートアレイは、パッケージの四辺に外部端子が実装されること特徴とするフィールドプログラマブルゲートアレイ。
【請求項１２】
請求項１０に記載のフィールドプログラマブルゲートアレイにおいて、  前記フィールドプログラマブルゲートアレイは、パッケージの底面に外部端子が実装されることを特徴とするフィールドプログラマブルゲートアレイ。
【請求項１３】
回路構造が固定されたハードマクロＣＰＵと、  回路構造を変更可能なプログラマブルロジックと、  前記プログラマブルロジックからの外部出力を安全側に制御可能なフェールセーフインタフェース回路を内蔵するフィールドプログラマブルゲートアレイにおいて、  前記フィールドプログラマブルゲートアレイ内部で前記ハードマクロＣＰＵと前記プログラマブルロジックと前記フェールセーフインタフェースはそれぞれ間隔を置いて配置されることを特徴とするフィールドプログラマブルゲートアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、フィールドプログラマブルゲートアレイに関する。
【背景技術】
【０００２】  プラント、鉄道、自動車、航空機など、人命や環境の安全確保のために非常に高い信頼性が求められる制御システムでは、万が一、システム内で故障や異常が発生した場合、システムが暴走して危険な状態に陥らないように対策をする必要がある。【０００３】  そのため、このようなシステムの内部で制御をする制御装置においては、信頼性や安全性を高めることが要求される。【０００４】  これまで、このような制御装置の制御には、主にＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が使用されてきた。【０００５】  しかし、近年、ＡＳＩＣは半導体プロセスの微細化に伴う製造費の高騰により、製造数が少ない産業制御システムでは新規に開発することが困難になってきている。【０００６】  一方で、１９８０年代に実用化されたフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、以下ＦＰＧＡ）は、微細化により集積度と性能が向上し、価格もこなれてきたため、製造数の少ない産業制御システムに使用する事例も出てきている。【０００７】  ところで、近年のＦＰＧＡで主に使われているのはＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）型のものである。【０００８】  ＳＲＡＭ型ＦＰＧＡは、電源が入ると、ＳＲＡＭで構成されたＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）に書き込む値を変えることによって任意の論理回路を実現できるという特徴がある。【０００９】  しかしこの特性のために、外部からのノイズや空中から放射された宇宙線などの影響でＳＲＡＭのビットが一時的に変化するソフトエラーと呼ばれる一時故障が発生すると、所望の回路とは異なる構成となってしまい、結果的にシステムの誤動作を引き起こしたり、装置が止まったりする場合があり得る。【００１０】  したがって、特に産業用途向けにＳＲＡＭ型ＦＰＧＡを使用するためには、ＦＰＧＡ内の回路で故障を検出し、故障と判定した場合は装置を安全な状態であるフェールセーフ（Ｆａｉｌ−Ｓａｆｅ、以下ＦＳ）に移行させるような仕組みを確実に作り込む必要がある。【００１１】  このような背景から、回路構成が固定されているＡＳＩＣに比べてソフトエラーが起こりやすいと言われているＳＲＡＭ型ＦＰＧＡの安全性を高めるための技術が提案されている。【００１２】  例えば特許文献１には、ＳＲＡＭ型ＦＰＧＡの内部に保護回路を実装してＦＰＧＡが故障した時の耐性を高める例が記載されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−２４３６７１号広報
【発明の概要】
【発明が解決しようとする課題】
【００１４】  ところで、従来のＦＰＧＡの安全性を高める技術について、本発明者が検討した結果、以下のようなことが明らかとなった。【００１５】  特許文献１の例では、ＳＲＡＭ型ＦＰＧＡのＦＰＧＡファブリック部分に内部保護回路を実装しているが、内部保護回路そのものもＳＲＡＭ型ＦＰＧＡファブリックで実現されるため、ソフトエラーなどにより内部保護回路そのものが故障してしまう可能性が否定できず、結果としてシステムとしての正常動作が保てるかどうかの保証ができないという問題があった。【００１６】  また、特許文献１で示される内部保護回路や隣接保護回路をＳＲＡＭ型ＦＰＧＡの外部に設置するようなシステム構成にした場合は、回路の外付けによって高速性・リアルタイム性が損なわれてしまう点と、部品コストが余計にかかる点が問題となった。【００１７】  そこで本発明では、ＳＲＡＭで構成されるプログラマブルロジック（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ、以下ＰＬ）部分が故障しても不適切な値がＦＰＧＡの外部に出力されることを防止し、システムの安全性を保つことが可能なフィールドプログラマブルゲートアレイを提供することを目的とする。
【課題を解決するための手段】
【００１８】  上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。【００１９】  本願のフィールドプログラマブルゲートアレイは上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、回路構造が固定されたハードマクロＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、回路構造を変更可能なプログラマブルロジックと、前記プログラマブルロジックの異常を診断する診断回路と、前記プログラマブルロジックからの外部出力を安全側に制御可能なフェールセーフインタフェース回路と、前記診断回路によってエラーが検出されると、前記ハードマクロＣＰＵが前記フェールセーフインタフェース回路に対し安全側の出力であるフェールセーフ信号を出力することを特徴とする。
【発明の効果】
【００２０】  本発明によれば、ＳＲＡＭで構成されるプログラマブルロジック（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ、以下ＰＬ）部分が故障しても不適切な値がＦＰＧＡの外部に出力されることを防止し、システムの安全性を保つことが可能なフィールドプログラマブルゲートアレイを提供することができる。【００２１】  上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２２】
【図１】実施例１における、本発明のフィールドプログラマブルゲートアレイの全体図の一例である。
【図２】実施例１のフィールドプログラマブルゲートアレイにおけるフェールセーフインタフェース回路の実装の一例である。
【図３】実施例１のフィールドプログラマブルゲートアレイにおけるＰＬ診断回路の実装の一例である。
【図４】実施例１のフィールドプログラマブルゲートアレイを使用してアクチュエータを制御する場合の一例である。
【図５】実施例１のフィールドプログラマブルゲートアレイにおけるハードマクロＣＰＵで動作させるソフトウェアの実装の一例である。
【図６】実施例１のフィールドプログラマブルゲートアレイを使用して制御周期に基づいた制御を行う場合のタイミングチャートの一例である。
【図７】実施例２における制御周期に基づいた制御を行う場合のタイミングチャートの一例である。
【図８】実施例３における、フェールセーフ出力信号の例を示した図である。
【図９】実施例４のフィールドプログラマブルゲートアレイにおける、ハードマクロに接続される外部ピンとプログラマブルロジックに接続される外部ピンの配置図の一例である。
【図１０】実施例４のフィールドプログラマブルゲートアレイにおける、ハードマクロＣＰＵとの専用インタフェースを実装した場合を示す一例である。
【図１１】実施例５における、本発明のフィールドプログラマブルゲートアレイを使用した制御コントローラの実装の一例である。
【図１２】実施例６における、本発明のフィールドプログラマブルゲートアレイを使用した鉄道信号制御システムの実装の一例である。
【図１３】実施例７における、本発明のフィールドプログラマブルゲートアレイを使用した自動車の運転支援システムの実装の一例である。
【発明を実施するための形態】
【００２３】  以下、本発明の実施例を、図面を用いて説明する。
【実施例１】
【００２４】  図１は、本発明のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の全体図を表す一例を示したものである。【００２５】  このＦＰＧＡ（１）は、回路構成が固定され機能変更ができないハードマクロＣＰＵ（２）と、電源投入時や動作中に回路構成を変更可能なプログラマブルロジック（ＰＬ）３と、ＰＬ（３）内に構成されるフェールセーフ（ＦＳ）インタフェース回路４と、ＰＬ診断回路５を内蔵している。【００２６】  ハードマクロＣＰＵ（２）は単方向のＦＳ制御信号１１をＦＳインタフェース回路４に出力するよう実装され、またハードマクロＣＰＵ（２）からは双方向のＰＬ制御信号１２がＰＬ（３）との間で実装されている構成である。【００２７】  またＰＬ診断回路５は、ＰＬ（３）に故障やエラーなどが起こっている場合に検出ができる診断回路であり、ＰＬ診断信号６を介してＰＬ（３）と接続され、診断に必要な情報をやり取りする。本実施例では、ＰＬ診断回路５による診断結果は、ＰＬ（３）を通じてハードマクロＣＰＵ（２）送られるが、ＰＬ診断回路５から直接ハードマクロＣＰＵ（２）へ診断結果を通知してもよい。【００２８】  図２に、ＦＳインタフェース回路４の実装の一例を示す。【００２９】  図２（ａ）で示したＦＳインタフェース回路の例は、ＰＬ出力１６とＦＳ出力１７の二つの出力をマルチプレクサ（ＭＵＸ）１３で選択しＦＰＧＡ出力１８としてＦＰＧＡ外部に出力する構成となっており、二つの出力１６、１７はハードマクロＣＰＵ出力１５の値によって選択される構造となっている。【００３０】  ここでのマルチプレクサ１３は、予めＦＰＧＡに内蔵されていて回路構造が固定されているハードマクロブロックを使用し、出力選択の信号もハードマクロＣＰＵから出力された信号を使用することでソフトエラーなどの故障耐性を高めることができる。【００３１】  また図２（ｂ）で示したＦＳインタフェース回路の例は、図２（ａ）で示したＦＳインタフェース回路の例と比較して、入出力バッファ（ＩＯＢＵＦ）１４を追加した部分が異なっている。【００３２】  入出力バッファ１４にもハードマクロＣＰＵ出力１５を入力し、ハードマクロＣＰＵ出力１５が出力許可を示す期間だけＦＰＧＡ出力１９をＦＰＧＡ外部に出力する構造となっている。【００３３】  なお、図２（ｂ）ではマルチプレクサ１３と入出力バッファ１４へ同じハードマクロＣＰＵ出力１５を入力して制御を簡略化する例を示したが、図２（ｃ）に示したようにハードマクロＣＰＵ出力１９を追加して別々に制御する構造にしても良い。【００３４】  図１で説明したＰＬ診断機能として、コンフィグレーション・ランダム・アクセス・メモリ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒａｎｄｕｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、以下ＣＲＡＭ）診断回路を使う場合の一例を図３に示す。【００３５】  この図３では、ＰＬ（２１）は回路全体を１５列の領域に区切っており、これに対応する形でＣＲＡＭ診断回路であるＰＬ診断回路（２２）も１５の領域に区切っており、ＰＬ（２１）の対応する行ごとに診断を行う。【００３６】  ＰＬ診断回路２２は、近年のＳＲＡＭ型ＦＰＧＡでは一般的に実装されている、符号理論に基づくアルゴリズムを用いてＰＬ（２１）内の各列���保持しているデータの反転を検出する回路であり、本発明のＦＰＧＡにおけるＰＬ診断手法として容易に実装することができる。【００３７】  図４は、図１に示したＦＰＧＡを使用してアクチュエータを制御する場合の一例を示したものである。【００３８】  図４では、ＦＰＧＡ（１）内のＦＳインタフェース回路４からＦＰＧＡ出力信号４１をアクチュエータ４０に出力してアクチュエータ４０の制御を行い、アクチュエータ４０からはＦＰＧＡ入力信号４２をＦＰＧＡ（１）内のＦＳインタフェース回路４で受信してアクチュエータ４０の状態をＦＰＧＡ（１）で監視できる構成になっている。【００３９】  図５は、本発明のＦＰＧＡ内のハードマクロＣＰＵで動作させるソフトウェアプログラムの一例を示したものである。【００４０】  本発明のＦＰＧＡを用いたシステムは、ＦＰＧＡに内蔵されたハードマクロＣＰＵで実行される図５のプログラム３１によって動作するものとし、電源投入後にプログラム３１の１行目のｍａｉｎ（）から処理が開始されるものとする。【００４１】  電源投入後、プログラム３１の３行目の起動処理（ｓｔａｒｔ＿ｒｏｕｔｉｎｅ（））、４行目のＰＬ診断処理（ｄｉａｇ＿ｐｌ（））、５行目の初期化処理（ｉｎｉｔｉａｌ＿ｒｏｕｔｉｎｅ（））の順に処理が進み、７行目のｗｈｉｌｅループに入ると８行目から１８行目の部分を繰り返す。【００４２】  繰り返しの途中、９行目でＰＬ診断結果を示す変数（ＳＴＡＴＵＳ）の値によって、適切な処理を行うために分岐して処理を行う。【００４３】  図１から図５で示した本発明のＦＰＧＡ、システム、ソフトウェアを使って高い安全性が要求されるシステムを実装した場合の動作の流れの一例を図６に示す。【００４４】  図６（ａ）は、システムが故障無く安全に動作している状態の一例を示したタイムチャートである。【００４５】  このシステムは、ＰＬ部分のハードウェアがリアルタイム（Ｒｅａｌ−Ｔｉｍｅ、以下ＲＴ）性の高い処理を実行するＲＴ処理５１、ＣＲＡＭ診断回路などによってＰＬ診断を行うＰＬ診断処理５２、ＰＬからハードマクロへＰＬ処理データを転送する内部転送処理５３、ＦＰＧＡ外部に接続された機器に制御信号を出力する外部出力処理５４、何もしないで次の命令を待つアイドルの５つの処理を一つの制御周期内に繰り返すシステムであり、図６（ａ）は１つの周期において正常に動作を続けている例を示している。【００４６】  一方、図６（ｂ）は、制御周期内のＰＬ診断処理５２でＰＬに故障が発生したことを検出した場合の例であり、図６（ａ）と異なり外部出力処理５４を行なわず、安全処理７０の後に停止処理７２を行ってシステムを安全な状態で停止させる例を示している。【００４７】  このように、ＦＰＧＡのＳＲＡＭで構成されるＰＬ部分でソフトエラーなどの故障が発生したとしても、故障の影響をＦＰＧＡの外部に出力することがないので、安全性を担保したままでシステムの動作を継続したり、システムを安全に停止させたりする仕組みを容易かつ低コストに構築することが可能になる。
【実施例２】
【００４８】  次に、本発明のＦＰＧＡを用いたシステムにおいて、さらなる高安全性を実現する場合の例を示す。【００４９】  図７（ａ）は、本発明のＦＰＧＡを用いたシステムの立ち上げ処理の一例を示したタイムチャートであり、実施例１の図６のタイムチャートに示したものと同じ内容の制御周期で動作するシステムを想定している。【００５０】  このシステムでは、図７（ａ）のように制御周期による定常処理に入る前に、電源投入により立ち上げ処理をしてまずＦＳ出力開始処理５５が実行され、ＦＰＧＡに接続される機器に対してＦＳとなる信号を出力する状態になる。【００５１】  ＦＳ出力開始処理５５の後に起動処理５６が行われてシステムが稼動するために必要な最小限のリソースが立ち上がった後、ＰＬ診断処理５２によってＰＬの診断が正常に終了したら、初期化処理５７を行ってシステムの立ち上げ処理が全て完了した時点で、ＦＳ出力終了処理５８が実行されてＦＰＧＡに接続される機器にＦＰＧＡの出力が接続されるようになり、定常の制御周期に入ってＲＴ処理５１を開始する。【００５２】  一方、図７（ｂ）は、図７（ａ）に示したタイムチャートと比較して、立ち上げ処理中のＰＬ診断処理５２によってＰＬ内で故障やエラーが発生していることを検出した場合の例を示しており、この場合はＰＬ診断処理５２の終了後に安全処理７０を行ってＦＳ出力を出すなどした後、停止処理７２によってシステムを安全に停止させている。【００５３】  このように、システムが起動する最初のタイミングでＳＲＡＭ型ＦＰＧＡ内に故障が発生していたとしても、ＦＳ出力処理を行うことができるため危険状態に入る前に安全に停止させることが可能となる。
【実施例３】
【００５４】  次に、本発明のＦＰＧＡにおいて、ＦＰＧＡ外部へ不正なデータを出力させることのないＦＳ構成を実現する場合の一例を示す。【００５５】  図８は、ＦＰＧＡ内のＦＳインタフェース回路から出力される、クロック信号に同期して出力される４種類のＦＳ信号の例を示している。【００５６】  図８（ａ）は、システムの故障や異常時に高電位（Ｈｉｇｈ）となるＦＳ信号を出力する場合の例であり、ここではクロックサイクルｃ２にてＦＰＧＡ内エラーを検出後、クロックサイクルｃ３以降はＦＳ信号としてＨｉｇｈを出力し続けている。【００５７】  図８（ｂ）は図８（ａ）とは逆に、システムの故障や異常時に低電位（Ｌｏｗ）となるＦＳ信号を出力する場合の例であり、ここではクロックサイクルｃ２にてＦＰＧＡ内エラーを検出後、クロックサイクルｃ３以降はＦＳ信号としてＬｏｗを出力し続けている。【００５８】  図８（ｃ）は、システムが通常動作時はクロックサイクルごとにＨｉｇｈとＬｏｗを繰り返す交番信号を出力し、システムの故障や異常時には高電位（Ｈｉｇｈ）となるＦＳ信号を出力する場合の例であり、ここではクロックサイクルｃ７にてＦＰＧＡ内エラーを検出後、クロックサイクルｃ８以降はＦＳ信号としてＨｉｇｈを出力し続けている。【００５９】  図８（ｄ）は、ＦＰＧＡ内のＦＳインタフェース回路からの信号に意味付けをした複数ビットで実現するコマンドを乗せて出力する場合の例であり、クロックサイクルｃ０とｃ１はＰＬの診断を行うサイクル、クロックサイクルｃ２とｃ３はＰＬ内の故障や異常を検出したサイクル、ｃ４以降はＦＰＧＡに接続した機器を停止させるサイクルを示している。【００６０】  このように、本発明のＦＰＧＡを適用することで、故障の可能性があるＦＰＧＡにおいても接続する機器をフェールセーフに制御することが可能になる。
【実施例４】
【００６１】  次に、本発明のＦＰＧＡにおいて、ハードマクロ部分に直結する外部端子の位置を固定して実装する場合の例を示す。【００６２】  図９（ａ）は、半導体パッケージの外周に外部端子が配置されるＱｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ（ＱＦＰ）で実装したＦＰＧＡ（５０１）の例を示した図であり、このＦＰＧＡ（５０１）は、ハードマクロＣＰＵ（５０２）、ハードマクロＦＳインタフェース回路５０３、ＰＬ（５０４）を内蔵している。【００６３】  ＦＰＧＡ（５０１）では、外部端子群５１１、５１２がハードマクロＣＰＵ（５０２）の入力端子となるように接続され、外部端子群５１３、５１４がハードマクロＣＰＵ（５０２）の出力端子となるように接続されている。【００６４】  またこのＦＰＧＡ（５０１）では、外部端子群５１７がハードマクロＦＳインタフェース回路５０３の入力端子となるように接続され、外部端子群５１８がハードマクロＦＳインタフェース回路５０３の出力端子となるように接続されている。【００６５】  更にこのＦＰＧＡ（５０１）では、外部端子群５１５がＰＬ（５０４）の入力端子となるように接続され、外部端子群５１６がＰＬ（５０４）の出力端子となるように接続されている。【００６６】  また、図９（ｂ）は、半導体パッケージの底面に外部端子が配置されるＢａｌｌ  Ｇｒｉｄ Ａｒｒａｙ（ＢＧＡ）で実装したハードマクロ内蔵ＦＰＧＡ（５０６）の例を示した図である。【００６７】  図９（ｂ）のＦＰＧＡ（５０６）では、ＦＰＧＡ（５０６）に内蔵されるハードマクロ部分は外部端子群５１９しか接続しておらず、それ以外の外部端子はＰＬに接続した構成となっている。【００６８】  図１０（ａ）は、図９（ａ）に示したＦＰＧＡ（５０１）に対し、ＦＰＧＡ内部の通信インタフェースの例を明示したものである。【００６９】  ハードマクロＣＰＵ（５０２）とハードマクロＦＳインタフェース回路５０３との間は、ＦＳ制御送信信号６０１とＦＳ制御受信信号６０２を用いて専用の通信を行う。【００７０】  また、ハードマクロＣＰＵ（５０２）とＰＬ（５０４）との間は、ＰＬ制御送信信号６０３とＰＬ制御受信信号６０４を用いて専用の通信を行う。【００７１】  更に図１０（ｂ）は、図１０（ａ）に示したＦＰＧＡ（５０１）と比較して、ハードマクロＣＰＵの部分を５０７、５０８に分割した部分が異なっている。【００７２】  図１０（ｂ）のＦＰＧＡ（５２１）では、ハードマクロＣＰＵ（５０７）がハードマクロＦＳインタフェース回路５０３と専用通信を行い、ハードマクロＣＰＵ（５０８）がＰＬ（５０４）と専用通信を行う。【００７３】  このように、ハードマクロが接続する外部端子とプログラマブルロジックが接続する外部端子を分けたパッケージ実装にすることで、このＦＰＧＡを使って高安全なシステムを設計する場合の基板実装が容易になる。 
【実施例５】
【００７４】  次に、本発明のフィールドプログラマブルゲートアレイにおいて、産業用途システムなどで使用される制御コントローラに適用した場合の一例を示す。【００７５】  図１１は、電力供給システムを制御する装置の例を示したものであり、制御コントローラ７０１を構成する部品の一つに本発明のＦＰＧＡ（１）を搭載している。【００７６】  この制御コントローラ７０１は、電力供給を担う機械の動作状態を監視カメラ７０２によって常時監視し、動力装置部分に接続されるモータ７０３によって発電制御を行う。【００７７】  また、リレー装置７０４は、システムが故障などの影響で異常状態に陥りそうな時に、電力システムを安全に緊急停止するためのリレー回路を内蔵するものである。【００７８】  動作状態の監視はリアルタイム性が重要であるため、ＦＰＧＡ（１）のＰＬに画像処理回路を実装し、ＦＰＧＡ（１）のＰＬから監視カメラ７０２に対して監視カメラ制御信号７１１を出力し、監視カメラ７０２からＦＰＧＡ（１）のＰＬへは監視カメラデータ信号７１２を出力し、ＰＬのハードウェアで画像処理を行う。【００７９】  また、電力供給を担う機械を動作させるモータも、回転数をきめ細かに制御するためのリアルタイム性がやはり重要であるため、ＦＰＧＡ（１）のＰＬにモータ制御回路を実装し、ＦＰＧＡ（１）のＰＬからモータ７０３に対してモータ制御信号７１３を出力し、モータ７０３からＦＰＧＡ（１）のＰＬへはモータデータ信号７１４を出力し、ＰＬのハードウェアでモータ制御を行う。【００８０】  一方、リレー装置７０４は、システムが故障した場合などの緊急停止動作を司るもので、故障検出時に確実に動作してシステムを安全に停止させる必要があるので、高い安全性が要求される。【００８１】  そのため、リレー装置７０４を制御するリレー制御信号７２１はＦＰＧＡ（１）のＦＳインタフェース回路部分からリレー装置７０４に送信し、緊急時にはリレー装置７０４から緊急停止信号７２２を停止させるべき装置に送信してシステムを安全に停止させる。【００８２】  このように、本発明のＦＰＧＡを適用することで、産業用途システムなどにおいて要求されることが多いリアルタイム性と高い安全性を両立したシステムを容易に実現することが可能になる。 
【実施例６】
【００８３】  次に、本発明のフィールドプログラマブルゲートアレイにおいて、鉄道信号制御システムに適用した場合の一例を示す。【００８４】  図１２は、列車の進行を制御する鉄道信号システムを構成する装置の例を示したものであり、鉄道信号制御コントローラ８０１を構成する部品の一つに本発明のＦＰＧＡ（１）を搭載している。【００８５】  レール部分に取り付けられたセンサによって得られた列車８０５の走行中の位置情報は、有線や無線などの通信手段を介して列車位置計算部８０３に対して列車位置情報８１１が送信され、列車位置計算部８０３によって計算された列車位置データ８１２は鉄道信号制御コントローラ８０１のＦＰＧＡ（１）のＰＬ部分に送られ、ハードウェアで処理される。【００８６】  一方、信号機８０４は、鉄道システムにおいて故障や事故などの緊急時に走行中の列車に対して停止を通知する装置であり、緊急時には確実に動作して列車を安全に停止させる必要があるので、高い安全性が要求される。【００８７】  そのため、信号機８０４を制御する信号制御部８０２に対して送信する信号制御信号８１３はＦＰＧＡ（１）のＦＳインタフェース回路部分から信号制御部８０２に送信し、緊急時には信号制御部８０２から停止指示信号８１４を信号機８０４に送信して停止の通知をすることで列車を安全に停止させる。【００８８】  このように、本発明のＦＰＧＡを適用することで、非常に高い安全性が要求される鉄道向けのシステムなどにおいて、安全性の高いシステムを容易に実現することが可能になる。 
【実施例７】
【００８９】  次に、本発明のフィールドプログラマブルゲートアレイにおいて、自動車の運転支援システムに適用した場合の一例を示す。【００９０】  図１３は、走行中の画像情報を走行制御に使用する、自動車の運転支援システムの構成例を示したものであり、自動車９０１全体の制御を行う統合ＥＣＵ（Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）９３０を構成する部品の一つに本発明のＦＰＧＡ（１）を搭載している。【００９１】  この自動車９０１は、車体前方に取り付けられたステレオカメラ９０２によって走行中の画像情報をリアルタイムに認識する機能を有する。【００９２】  ステレオカメラ９０２内には二つの単眼カメラ９０３、９０４があり、ＦＰＧＡ（１）内のＰＬから二つの単眼カメラ９０３、９０４に対して単眼カメラ制御信号９２１、９２３をそれぞれ出力して制御を行い、単眼カメラ９０３、９０４からは単眼カメラデータ信号９２２、９２４をそれぞれＦＰＧＡ（１）のＰＬに送信し、ＰＬでは画像処理アルゴリズムに基づいて実装されたハードウェアで処理される。【００９３】  一方、前輪９０５、９０６および後輪９０７、９０８に取り付けられたブレーキ９０９、９１０、９１１、９１２は、自動車９０１の内部でシステムが故障した場合などの緊急時には確実に動作して自動車９０１を安全に停止させる必要があり、緊急時に停止できなければ危険な状態に陥る可能性があるため、高い安全性が要求される。【００９４】  そのため、ブレーキ９０９、９１０、９１１、９１２を制御するブレーキ制御ＥＣＵ（９３１）に対して送信するブレーキ制御信号９２５はＦＰＧＡ（１）のＦＳインタフェース回路部分からブレーキ制御ＥＣＵ（９３１）に送信し、緊急時にはブレーキ制御ＥＣＵ（９３１）から停止指示信号９２６を各ブレーキに送信して前輪と後輪を止め、自動車を安全に停止させる。【００９５】  このように、本発明のＦＰＧＡを適用することで、画像処理などのリアルタイム性が要求されるシステムと、ブレーキなどの高安全性が要求されるようなシステムであっても、一つのＦＰＧＡで容易に実現することが可能になる。【００９６】  以上説明した実施例のように、安全性が重要視される装置にＳＲＡＭ型ＦＰＧＡを使用する場合において、近年普及が進んでいるＣＰＵ内蔵ＳＲＡＭ型ＦＰＧＡを活用し、ＳＲＡＭで構成されるＰＬ部分が故障しても不適切な値がＦＰＧＡの外部に出力されない構成をとることで、システムの安全性を保つことが可能な仕組みを提供することができる。【００９７】  すなわち、故障する恐れのあるＰＬ部分からは、安全側に出力を制御可能なフェールセーフ回路を介して外部への出力するよう構成する。そして、ＰＬ部分の異常を検知すると、故障の恐れの少ないハードマクロＣＰＵ部分によって、フェールセーフ回路を安全側へ制御する。【００９８】  これによって、仮にＦＰＧＡが故障してもその影響が外部機器へ伝達する前にシステムを安全な状態に移行させることが可能になり、結果として高速でリアルタイムなシステムを低コストに実現できる。【００９９】  なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳���に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。  
【符号の説明】
【０１００】１、５０１、５０６、５２１…  フィールドプログラマブルゲートアレイ（ＦＰＧＡ）２、５０２、５０７、５０８…  ハードマクロＣＰＵ３、２１、５０４…  プログラマブルロジック（ＰＬ）４…  フェールセーフインタフェース回路５、２２…  ＰＬ診断回路１３…  マルチプレクサ１４…  入出力バッファ４０…  アクチュエータ５１…  ＲＴ処理５２…  ＰＬ診断処理５３…  内部転送処理５４…  外部出力処理５５…  フェールセーフ出力開始処理５６…  起動処理５７…  初期化処理５８…  フェールセーフ出力終了処理７０…  安全処理７２…  停止処理５０３…  ハードマクロフェールセーフインタフェース回路７０１…  制御コントローラ７０２…  監視カメラ７０３…  モータ７０４…  リレー装置８０１…  鉄道信号制御コントローラ８０２…  信号制御部８０３…  列車位置計測部８０４…  信号機８０５…  列車９０１…  自動車９０２…  ステレオカメラ９３０…  統合ＥＣＵ９３１…  ブレーキ制御ＥＣＵ
【図１】
2016207933.tif 000003
【図２】
2016207933.tif 000004
【図３】
2016207933.tif 000005
【図４】
2016207933.tif 000006
【図５】
2016207933.tif 000007
【図６】
2016207933.tif 000008
【図７】
2016207933.tif 000009
【図８】
2016207933.tif 000010
【図９】
2016207933.tif 000011
【図１０】
2016207933.tif 000012
【図１１】
2016207933.tif 000013
【図１２】
2016207933.tif 000014
【図１３】
2016207933.tif 000015
【国際調査報告】
2016207933.tif 000016
2016207933.tif 000017
2016207933.tif 000018
2016207933.tif 000019