IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立オートモティブシステムズ株式会社の特許一覧

特開2022-162860演算装置、演算システム、テスト方法
<>
  • 特開-演算装置、演算システム、テスト方法 図1
  • 特開-演算装置、演算システム、テスト方法 図2
  • 特開-演算装置、演算システム、テスト方法 図3
  • 特開-演算装置、演算システム、テスト方法 図4
  • 特開-演算装置、演算システム、テスト方法 図5
  • 特開-演算装置、演算システム、テスト方法 図6
  • 特開-演算装置、演算システム、テスト方法 図7
  • 特開-演算装置、演算システム、テスト方法 図8
  • 特開-演算装置、演算システム、テスト方法 図9
  • 特開-演算装置、演算システム、テスト方法 図10
  • 特開-演算装置、演算システム、テスト方法 図11
  • 特開-演算装置、演算システム、テスト方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022162860
(43)【公開日】2022-10-25
(54)【発明の名称】演算装置、演算システム、テスト方法
(51)【国際特許分類】
   G01R 31/28 20060101AFI20221018BHJP
【FI】
G01R31/28 V
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021067900
(22)【出願日】2021-04-13
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】特許業務法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】池田 康浩
(72)【発明者】
【氏名】鳥羽 忠信
(72)【発明者】
【氏名】新保 健一
(72)【発明者】
【氏名】荒田 純之
【テーマコード(参考)】
2G132
【Fターム(参考)】
2G132AA02
2G132AB01
2G132AD06
2G132AD07
2G132AK07
2G132AK09
2G132AK13
2G132AK29
2G132AL09
2G132AL12
(57)【要約】
【課題】少ないテストパタンでハードウエア異常の発生個所を特定できる。
【解決手段】演算装置は、テスト対象であるユーザ回路と、ユーザ回路におけるテスト箇所の信号がトグルする入力であるテスト入力をユーザ回路に入力するテストパタン印加部と、ユーザ回路の出力に基づきユーザ回路の異常の有無を判定する判定部と、判定部の判定に基づきユーザ回路におけるハードウエア異常の発生個所を特定する異常個所判定部とを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
テスト対象であるユーザ回路と、
前記ユーザ回路におけるテスト箇所の信号がトグルする入力であるテスト入力を前記ユーザ回路に入力するテストパタン印加部と、
前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定する判定部と、
前記判定部の判定に基づき前記ユーザ回路におけるハードウエア異常の発生個所を特定する異常個所判定部とを備える、演算装置。
【請求項2】
請求項1に記載の演算装置において、
前記判定部は、前記ユーザ回路の出力における変化の有無に基づき前記ユーザ回路の異常の有無を判定する、演算装置。
【請求項3】
請求項1に記載の演算装置において、
前記判定部は、前記ユーザ回路の出力における変化の遅れに基づき前記ユーザ回路の異常の有無を判定する、演算装置。
【請求項4】
請求項1に記載の演算装置において、
前記テスト箇所とは、前記ユーザ回路に含まれるルックアップテーブルのそれぞれの出力である、演算装置。
【請求項5】
請求項1に記載の演算装置において、
前記異常個所判定部の判定結果を送信する送信部をさらに備える、演算装置。
【請求項6】
請求項1に記載の演算装置において、
前記演算装置は車両に搭載され、
前記異常個所判定部の判定結果を前記車両の乗員に通知する通知部をさらに備える、電子制御装置。
【請求項7】
テスト対象であるユーザ回路と、
前記ユーザ回路におけるテスト箇所の信号がトグルする入力であるテスト入力を前記ユーザ回路に入力するテストパタン印加部と、
前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定する判定部と、
前記判定部の判定に基づき前記ユーザ回路におけるハードウエア異常の発生個所を特定する異常個所判定部とを備える、演算システム。
【請求項8】
テスト対象であるユーザ回路、および前記ユーザ回路をテストするための入力であるテスト入力を前記ユーザ回路に印加するテストパタン印加部を備える演算装置が実行するテスト方法であって、
前記テストパタン印加部が、前記ユーザ回路におけるテスト箇所の信号がトグルする前記テスト入力を入力することと、
前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定することと、
前記ユーザ回路におけるハードウエア異常の発生個所を特定することとを含む、テスト方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置、演算システム、およびテスト方法に関する。
【背景技術】
【0002】
自動運転や先進運転支援システムを対象とした複眼カメラや電子制御装置は、大容量のセンシングデータの処理が必要であり、データ処理を担うデバイスとして書き換え可能な論理回路の活用が進んでいる。また、カーシェアなどのMaas(Mobility-as-a-Service)の普及に伴い、自動車の高稼働率化が求められ、FPGAを含むハード機器の診断だけでなく、不良要因の特定を短時間で行い、改修後早期に市場投入することが必要である。しかし、FPGAの大規模化により要素回路の組合せ数が大幅に増加し、不良要因特定のためのテストパタン数が増大してテスト時間が長くなる問題が知られている。特許文献1には、情報処理装置の論理検証方法であって、情報処理装置の論理検証の網羅性を管理するカバレッジ情報を参照してテストデータを生成するステップと、前記生成テストデータがテスト済みかどうかを判断し、テスト済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト済みでないと判断された場合は、前記生成テストデータを妥当であると判定するステップと、前記妥当であると判定された前記生成テストデータを用いて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成するステップと、前記妥当であると判定された前記生成テストデータに関しカバレッジ情報を更新するステップと、前記生成テストデータを用いて情報処理装置に対し本テストを実行するステップと、前記情報処理装置に対して実行した本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定するステップと、前記テスト結果の判定が正常の場合は、終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記各ステップを繰り返すことを特徴とする、方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-164646号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明では、ハードウエア異常の発生個所の特定に多くのテストパタンが必要となる。
【課題を解決するための手段】
【0005】
本発明の第1の態様による演算装置は、テスト対象であるユーザ回路と、前記ユーザ回路におけるテスト箇所の信号がトグルする入力であるテスト入力を前記ユーザ回路に入力するテストパタン印加部と、前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定する判定部と、前記判定部の判定に基づき前記ユーザ回路におけるハードウエア異常の発生個所を特定する異常個所判定部とを備える。
本発明の第2の態様による演算システムは、テスト対象であるユーザ回路と、前記ユーザ回路におけるテスト箇所の信号がトグルする入力であるテスト入力を前記ユーザ回路に入力するテストパタン印加部と、前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定する判定部と、前記判定部の判定に基づき前記ユーザ回路におけるハードウエア異常の発生個所を特定する異常個所判定部とを備える。
本発明の第3の態様によるテスト方法は、テスト対象であるユーザ回路、および前記ユーザ回路をテストするための入力であるテスト入力を前記ユーザ回路に印加するテストパタン印加部を備える演算装置が実行するテスト方法であって、前記テストパタン印加部が、前記ユーザ回路におけるテスト箇所の信号がトグルする前記テスト入力を入力することと、前記ユーザ回路の出力に基づき前記ユーザ回路の異常の有無を判定することと、前記ユーザ回路におけるハードウエア異常の発生個所を特定することとを含む。
【発明の効果】
【0006】
本発明によれば、少ないテストパタンでハードウエア異常の発生個所を特定できる。
【図面の簡単な説明】
【0007】
図1】第1の実施の形態における演算装置の機能構成図
図2】プログラマブルロジック部において実行されるテストの概念を示す図
図3】演算装置および事前算出装置のハードウエア構成図
図4】テスト情報の一例を示す図
図5】事前算出装置によるユーザ回路の開発処理を示すフローチャート
図6】テスト情報作成処理を示すフローチャート
図7】出力経路探索処理の詳細を示すフローチャート
図8】トグルパタン生成処理の詳細を示すフローチャート
図9】テスト情報の作成処理の具体例を説明する図
図10】テスト情報の作成処理の具体例を説明する図
図11】第2の実施の形態における演算装置の機能構成図
図12】第3の実施の形態における演算装置の機能構成図
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、図1図10を参照して、本発明に係る演算装置の第1の実施の形態を説明する。
【0009】
図1は、第1の実施の形態における演算装置70の機能構成図である。演算装置70は、テスト対象の回路が含まれるプログラマブルロジック部100と、テストの実行を制御するテスト制御部300と、ハードウエア異常が発生した箇所を特定する異常個所判定部500とを備える。また演算装置70には、テスト情報400が格納される。テスト情報400は事前算出装置80により作成される。
【0010】
図2は、プログラマブルロジック部100において実行されるテストの概念を示す図であり、このテストはBIST(Built-in Self Test)として広く知られている。すなわち、テストパタン印加部210からテストパタンをテスト対象である第2ユーザ回路222に印加し、その出力結果を判定部230で期待値と比較する。演算装置70の機能構成の詳細を説明する前にハードウエア構成を説明する。
【0011】
図3は、演算装置70および事前算出装置80のハードウエア構成図である。演算装置70は、中央演算装置であるCPU71、読み出し専用の記憶装置であるROM72、および読み書き可能な記憶装置であるRAM73、不揮発性の記憶装置であるフラッシュメモリ74、書き換え可能な論理回路であるプログラマブルロジック部100、および出力部75を備える。CPU71がROM72に格納されるプログラムをRAM73に展開して実行することでテスト制御部300および異常個所判定部500を実現する。プログラマブルロジック部100は、たとえばFPGAである。
【0012】
ただし演算装置70は、CPU71、ROM72、およびRAM73の組み合わせの代わりに書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)を用いて後述する機能を実現してもよい。また演算装置70は、CPU71、ROM72、およびRAM73の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU71、ROM72、RAM73とFPGAの組み合わせにより後述する機能を実現してもよい。またここでいうFPGAは、プログラマブルロジック部100であってもよい。テスト情報400は、フラッシュメモリ74に格納されてもよいしROM72に格納されてもよい。
【0013】
事前算出装置80は、前述のテスト情報400を作成する装置である。事前算出装置80は、CPU81と、ROM82と、RAM83と、不揮発性の記憶装置であるハードディスクドライブ(HDD)84とを備える。CPU81がROM82に格納されるプログラムをRAM83に展開して実行することで後述する機能を実現する。ただし事前算出装置80は、CPU81、ROM82、およびRAM83の組み合わせの代わりに書き換え可能な論理回路であるFPGAや特定用途向け集積回路であるASICを用いて後述する機能を実現してもよい。また事前算出装置80は、CPU81、ROM82、およびRAM83の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU81、ROM82、RAM83とFPGAの組み合わせにより後述する機能を実現してもよい。図1に戻って説明を続ける。
【0014】
プログラマブルロジック部100には、テストパタン印加部210、第1ユーザ回路221、第2ユーザ回路222、第3ユーザ回路223、判定部230、第1セレクタ241、および第2セレクタ242が含まれる。本実施の形態では、第2ユーザ回路222がテストの対象となる。
【0015】
第1セレクタ241は、テストパタン印加部210、第1ユーザ回路221、および第2ユーザ回路222を接続する。第1セレクタ241はたとえば、初期状態では第1ユーザ回路221と第2ユーザ回路222とを接続し、テスト制御部300から動作指令を受信すると、テストパタン印加部210と第2ユーザ回路222とを接続する。第2セレクタ242は、第2ユーザ回路222、判定部230、および第3ユーザ回路223を接続する。第2セレクタ242はたとえば、初期状態では第2ユーザ回路222と第3ユーザ回路223とを接続し、テスト制御部300から動作指令を受信すると、第2ユーザ回路222と判定部230とを接続する。
【0016】
テスト情報400には、入力情報410、期待値情報420、および異常個所特定情報430が含まれる。入力情報410は、テストパタンごとにユーザ回路220へ入力すべき信号の情報である。入力情報410は、テスト制御部300を介してテストパタン印加部210に伝達される。期待値情報420は、テストパタンごとにユーザ回路220から出力されることが記載される信号の情報である。期待値情報420は、テスト制御部300を介して判定部230に伝達される。異常個所特定情報430は、テストパタンと異常個所との組合せである。ここでいう異常個所とは、第2ユーザ回路222に含まれる構成である。
【0017】
テスト制御部300は、テスト情報400を読み取り、テストパタン印加部210に入力情報410を出力し、判定部230に期待値情報420を出力する。テストパタン印加部210は、テスト制御部300から受信したテストパタンの情報に基づき第2ユーザ回路222に信号を出力する。テストパタン印加部210はたとえば、テストパタンのリストを先頭から順番に読み込み、100msごとに次々に信号を出力する。
【0018】
判定部230は、テスト制御部300から受信した期待値情報420に基づき、第2ユーザ回路222の出力が期待値に合致するか否かを判断する。判定部230はたとえば期待値のリストを先頭から順番に読み込み、100msごとに次の出力がされることを前提に評価する。判定部230は、受信した信号が期待値と一致しない場合には、その期待値に対応するテストパタンの情報を異常個所判定部500に出力する。テストパタンの情報を受信した異常個所判定部500は、異常個所特定情報430を参照して異常箇所を特定する。
【0019】
(テスト情報)
図4は、テスト情報400の一例を示す図である。テスト情報400は前述のとおり、入力情報410と、期待値情報420と、異常個所特定情報430とを含む。図4に示す例では、テスト対象である第2ユーザ回路222は入力が3以上あり、出力が2つであると想定している。図4に示す例では、テストパタンの名称はテスト箇所と数字「1」または「2」の組合せとしている。具体的には「パタンA1」は、箇所「A」に対するテストの「1」回目であり、「パタンA2」は、箇所「A」に対するテストの「2」回目である。図8では主に2つのテストパタンしか記載していないが、「パタンB1」、「パタンB2」、「パタンC1」など他にもテストパタンが含まれてよい。
【0020】
入力情報410には、テストパタンごとの第2ユーザ回路222への入力値が示されている。期待値情報420には、テストパタンごとの第2ユーザ回路222の出力値の期待値が示されている。異常個所特定情報430には、テストパタンごとの異常個所の情報が格納される。
【0021】
図4に例示するテスト情報400を使ったテストの一例を説明する。テストパタン印加部210は、たとえば入力情報410に記載されたテストパタンを上から順番に読み込み、指定された入力値を第2ユーザ回路222に対して100msごとに出力する。判定部230は期待値情報420を読み込み、100msごとに第2ユーザ回路222の出力が期待値情報420に記載された出力値と一致するか否かを100msごとに判断する。判定部230はたとえば、最初の100msは第2ユーザ回路222の出力がパタンA1の期待値と一致するか否かを判定し、次の100msは第2ユーザ回路222の出力がパタンA2の期待値と一致するか否かを判定する。
【0022】
判定部230は、第2ユーザ回路222の出力と期待値とが一致しないと判断する場合には、たとえばそのテストパタンの名称を異常個所判定部500に出力する。判定部230はたとえば、テスト開始からの経過秒数、およびテストが期待値情報420に記載された上から順番に実行されるという情報により、現在テストが行われているテストパタンを特定できる。異常個所判定部500は、判定部230からテストパタンの名称を受信すると、異常個所特定情報430を参照してハードウエア故障が発生した個所を特定する。
【0023】
(テスト情報の作成)
図5図10を参照して事前算出装置80によるテスト情報400の作成処理および、その前提となるユーザ回路の開発処理を説明する。図5は、事前算出装置80によるユーザ回路の開発処理を示すフローチャートである。事前算出装置80は、以下に説明する開発処理により、少なくとも第2ユーザ回路222の開発を行う。なおこの開発処理は、後述する処理により得られるテスト情報400を利用している。以下に説明する各ステップの実行主体は、事前算出装置80のCPU81または開発者である。
【0024】
開発者はまずステップS1001においてユーザ回路の仕様を検討し、続くステップS1002において論理設計を行う。そして開発者は、ステップS1003において設計した論理の検証を行い、続くステップS1004において回路の最適化、すなわち論理合成を行う。なお以下では、ステップS1004において生成される情報を「論理情報A」と呼ぶ。さらに続くステップS1005において、論理合成した回路の配置および配線、すなわち配置配線を決定する。なお以下では、ステップS1005において生成される情報を「接続情報B」と呼ぶ。続くステップS1006では、ステップS1004およびステップS1005において生成した、論理情報Aおよび接続情報Bを出力する。出力したこれらの情報は、後述するテスト情報生成処理において利用される。
【0025】
続くステップS1007では、プログラマブルロジック部100に書き込むためのコンフィグレーションファイルを生成し、ステップS1008では実機であるプログラマブルロジック部100を用いて動作を検証する。続くステップS1009では後述するテスト情報生成処理により得られたテスト情報を取得し、ステップS1010においてテスト情報を演算装置70に格納する。以下では、図6図10を参照してテスト情報400の作成処理を説明する。
【0026】
図9および図10はテスト情報400の作成処理の具体例を説明する図である。図9の上部中央は第2ユーザ回路222の構成を示している。図9および図10は、以下に説明するフローチャートの具体的な処理を説明するために適宜参照されるが、先に例示する第2ユーザ回路222の構成を説明する。図9に示す第2ユーザ回路222は、ドットのハッチングで示すフリップフロップと、斜線のハッチングで示すルックアップテーブル(以下では、「LUT」とも記載する)とを複数有する。
【0027】
具体的には第2ユーザ回路222は、第1フリップフロップF1~第8フリップフロップF8、および第1ルックアップテーブルL1~第5ルックアップテーブルL5を含む。第1フリップフロップF1~第6フリップフロップF6にはそれぞれ、第2ユーザ回路222の外部から入力される。第1フリップフロップF1および第2フリップフロップF2の出力が第1ルックアップテーブルL1に入力される。
【0028】
第3フリップフロップF3および第4フリップフロップF4の出力が第2ルックアップテーブルL2に入力される。第5フリップフロップF5および第6フリップフロップF6の出力が第3ルックアップテーブルL3に入力される。第7フリップフロップF7には第4ルックアップテーブルL4の出力が入力され、第7フリップフロップF7の出力が第2ユーザ回路222の第1の出力となる。第8フリップフロップF8には第5ルックアップテーブルL5の出力が入力され、第8フリップフロップF8の出力が第2ユーザ回路222の第2の出力となる。
【0029】
第1ルックアップテーブルL1は2入力2出力である。第1ルックアップテーブルL1は第1フリップフロップF1と第2フリップフロップF2から入力を受け、第4ルックアップテーブルL4および第5ルックアップテーブルL5に出力する。第2ルックアップテーブルL2は2入力1出力である。第2ルックアップテーブルL2は第3フリップフロップF3と第4フリップフロップF4から入力を受け、第5ルックアップテーブルL5に出力する。第3ルックアップテーブルL3は2入力1出力である。第3ルックアップテーブルL3は第5フリップフロップF5と第6フリップフロップF6から入力を受け、第5ルックアップテーブルL5に出力する。
【0030】
第4ルックアップテーブルL4は1入力1出力である。第4ルックアップテーブルL4は第1ルックアップテーブルL1から入力を受け、第7フリップフロップF7に出力する。第5ルックアップテーブルL5は3入力1出力である。第5ルックアップテーブルL5は第1ルックアップテーブルL1、第2ルックアップテーブルL2、および第3ルックアップテーブルL3から入力を受け、第8フリップフロップF8に出力する。
【0031】
図6はテスト情報作成処理を示すフローチャートである。図6に示す処理の実行主体はCPU71である。テスト情報作成処理では、まずステップS1021において論理情報Aおよび接続情報Bを取得する。続くステップS1022ではCPU71は、接続情報Bを用いて出力経路探索処理を行う。出力経路探索処理の詳細は後述する。続くステップS1023ではCPU71は、未処理の経路を処理対象に選択する。続くステップS1024ではCPU71は、処理対象の経路を対象としてトグルパタン生成処理を行う。トグルパタン生成処理の詳細は後述する。
【0032】
続くステップS1025ではCPU71は、全ての経路を処理したか否かを判断し、全ての経路を処理したと判断する場合はステップS1025に進み、未処理の経路が存在すると判断する場合はステップS1023に戻る。最後のステップS1026ではCPU71はトグルパタン生成処理において作成したテスト情報400を出力して図6に示す処理を終了する。
【0033】
図7は、出力経路探索処理の詳細を示すフローチャートである。まずステップS1201ではCPU71は、未処理の出力ピンを選択する。出力ピンとは、テスト対象のユーザ回路における出力であり図9に示す第2ユーザ回路222における「出力1」と「出力2」である。初回にステップS1201が実行された際には、「出力1」および「出力2」のいずれかが選択され、2回目に実行された際には1回目に選択されなかった方が選択される。以下では、本ステップにおいて選択した出力ピンを「選択ピン」と呼ぶ。
【0034】
続くステップS1202ではCPU71は、選択ピンに接続されている論理ブロックを上流に向かって抽出する。ここでいう「上流」とは、ユーザ回路への入力側であり、図9に示す例における図示左側である。続くステップS1203ではCPU71は、全ての入力端に至るまでの経路と論理ブロックを記録する。たとえば図9に示す例では第5ルックアップテーブルL5は入力が3つあるので、「出力2」から上流側に向かうと経路が3つに分岐しているが、その全てについて入力まで辿る。
【0035】
続くステップS1204ではCPU71は、全ての出力ピンを選択したか否かを判断する。CPU71は、全ての出力ピンを選択したと判断する場合は図7に示す処理を終了し、選択していない出力ピンが存在すると判断する場合はステップS1201に戻る。以上が図7の説明である。この出力経路探索処理により、図9に示す例では第1の経路220Aと、第2の経路220Bとが探索される。
【0036】
図8は、図6のステップS1024におけるトグルパタン生成処理の詳細を示すフローチャートである。なお本処理が実行される直前に図6のステップS1023において処理対象の経路が選択されている。まずステップS1301ではCPU71は、処理対象の経路に含まれる全てのルックアップテーブル(LUT)の出力を特定する。たとえば図9に示す例において「出力1」が選択されている場合にはLUTの出力は、第4ルックアップテーブルL4の出力1つと、第1ルックアップテーブルL1の出力1つの合計2つが特定される。
【0037】
続くステップS1302ではCPU71は、ステップS1301において特定した出力のうち、未処理であるLUTの出力の1つを処理対象に選択する。続くステップS1303ではCPU71は、選択した出力が属するLUTのメモリ情報を読み込む。メモリ情報とは、ルックアップテーブルにおける入力値と出力値の対応表である。続くステップS1304ではCPU71は、選択した出力の値をトグルさせるLUTへの入力値を特定する。続くステップS1305ではCPU71は、特定したLUTへの入力値に対応するユーザ回路の入力値を特定して記録する。なお、本ステップにおいて特定して記録した入力値が入力情報410に用いられる。
【0038】
ステップS1303~S1306の具体例を説明する。たとえば図10の上部に示すように第4ルックアップテーブルL4の出力を処理対象に選択した場合に、ステップS1303ではCPU71は図示するようなメモリ情報を読み込む。ステップS1304ではCPU71は、選択した出力をトグルさせる第4ルックアップテーブルL4への入力値として、「0」と「1」を特定する。続くステップS1305ではCPU71は、第4ルックアップテーブルL4への入力値が「0」と「1」となる第2ユーザ回路222への入力を特定する。
【0039】
この特定のためにCPU71は、まず、第4ルックアップテーブルL4の上流に存在する第1ルックアップテーブルL1のメモリ情報を読み込む。次にCPU71は、出力の「0」に対応する「入力1」および「入力2」の値と、出力の「1」に対応する「入力1」および「入力2」の値とを特定して記録する。なおこの場合に、第1ルックアップテーブルL1の出力が「0」および「1」となる入力値は複数存在するが、CPU71はいずれを選択してもよい。また、図9に示す第2ユーザ回路222では「入力1」~「入力6」の6つの入力があり、ここで示した説明の範囲では「入力3」~「入力6」の値が特定されていないが、これらの値は任意である。
【0040】
さらに、後述するようにループ処理により次は第1ルックアップテーブルL1の出力を処理対象に選択した場合には、図10に示す例では入力値の組合せが第4ルックアップテーブルL4の出力をトグルする場合と同一になる可能性がある。しかし本実施の形態では入力値の組合せが重複することを許容し、処理の簡潔さを優先する。以上がステップS1303~S1305の具体例の説明である。
【0041】
続くステップS1306ではCPU71は、ステップS1305において特定したユーザ回路の入力値に対応するユーザ回路の出力値を特定して記録する。なお、本ステップにおいて特定して記録した出力値が期待値情報420に用いられる。続くステップS1307ではCPU71は、ステップS1304において特定した入力値、ステップS1306において特定した出力値、ステップS1302において選択した処理対象の出力が属するルックアップテーブルの名称、の組合せをテスト情報400の一部として記録する。
【0042】
ステップS1307では具体的には、ステップS1304において特定した入力値と任意の名称との組合せを入力情報410の新たなレコードとする。また、ステップS1306において特定した出力値と前述の任意の名称との組合せを期待値情報420の新たなレコードとする。さらに、前述の任意の名称とステップS1302において選択した処理対象の出力が属するルックアップテーブルの名称との組合せを異常個所特定情報430の新たなレコードとする。
【0043】
続くステップS1307ではCPU71は、ステップS1301において特定した全ての出力を処理対象として選択したか否かを判断する。CPU71は、全ての出力を処理対象として選択したと判断する場合は図8の処理を終了し、未選択の出力が存在すると判断する場合はステップS1302に戻る。
【0044】
(1)演算装置70は、テスト対象である第2ユーザ回路222と、第2ユーザ回路222におけるテスト箇所の信号がトグルする入力であるテスト入力をユーザ回路に入力するテストパタン印加部210と、第2ユーザ回路222の出力に基づき第2ユーザ回路222の異常の有無を判定する判定部230と、判定部230の判定に基づき第2ユーザ回路222におけるハードウエア異常の発生個所を特定する異常個所判定部500とを備える。そのため、少ないテストパタンでハードウエア異常の発生個所を特定できる。
【0045】
(2)判定部230は、ユーザ回路の出力における変化の有無に基づきユーザ回路の異常の有無を判定する。そのため、判定部230は出力が「0」または「1」に固定される縮退を検出できる。
【0046】
(3)テスト箇所とは、ユーザ回路に含まれるルックアップテーブルのそれぞれの出力である。
【0047】
(変形例1)
上述した第1の実施の形態では、プログラマブルロジック部100には第1ユーザ回路221、第2ユーザ回路222、および第3ユーザ回路223の3つのユーザ回路が含まれ、このうち第2ユーザ回路222のみがテストの対象となった。しかしユーザ回路の全体をテスト対象としてもよい。この場合には、図2における第1ユーザ回路221がユーザ回路への入力信号回路に置き換わり、図2における第3ユーザ回路223がユーザ回路への出力信号回路に置き換わる。
【0048】
(変形例2)
上述した第1の実施の形態では、プログラマブルロジック部100にはテストパタン印加部210、判定部230、第1セレクタ241、および第2セレクタ242が含まれた。しかしこれらはテスト以外では不要のためプログラマブルロジック部100に常時配されなくてもよい。その場合には、たとえば部分再構成によりテストパタン印加部210、判定部230、第1セレクタ241、および第2セレクタ242をプログラマブルロジック部100に構成する再構成部およびテストパタン印加部210、判定部230、第1セレクタ241、および第2セレクタ242の回路情報を格納する回路記憶部が演算装置70にさらに含まれる。
【0049】
(変形例3)
上述した第1の実施の形態では、判定部230はルックアップテーブルの出力が固定される不具合、いわゆる0/1縮退を検出した。しかし判定部230は、0/1縮退に加えて信号の変化が規定よりも遅い故障である遅延故障をさらに検出してもよい。期待値情報420には出力ごとの期待値が含まれているので、期待値がトグルする際の遅れ、具体的には無駄時間および時定数の少なくとも一方を評価する。
【0050】
本変形例によれば演算装置70は次の作用効果を奏する。
(4)判定部230は、ユーザ回路の出力における変化の遅れに基づきユーザ回路の異常の有無を判定する。そのため判定部230は、遅延故障を検出できる。
【0051】
(変形例4)
上述した実施の形態では、図1に示す構成の全体を演算装置70として説明した。しかし図1に示す構成は2以上のハードウエアにより実現されてもよい。たとえば、プログラマブルロジック部100と、テスト制御部300と、異常個所判定部500とが、それぞれ別のハードウエア、たとえばECUやマイコンの一部として構成されてもよい。この場合には、図1に示す構成は演算システムと呼ぶことができる。
【0052】
(変形例5)
上述した第1の実施の形態では、トグルパタン生成処理において入力値の組合せが重複することを許容し、処理の簡潔さを優先した。しかし処理の簡潔さよりも入力値の総数が減少するようにトグルパタンを生成してもよい。
【0053】
―第2の実施の形態―
図11を参照して、演算装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、異常個所判定部の判定結果を送信する点で、第1の実施の形態と異なる。
【0054】
図11は、第2の実施の形態における演算装置70Aの機能構成図である。演算装置70Aは第1の実施の形態における演算装置70の構成に加えて、異常診断結果を演算装置70Aの外部、たとえばサーバーやデータセンタに通知する送信部700をさらに有する。送信部700はたとえば、4Gや5Gに対応する無線通信モジュールである。
【0055】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(5)演算装置70Aは、異常個所判定部500の判定結果を送信する送信部700を備える。そのため、異常箇所の通知をサーバーやデータセンタに通知でき、ログやデータ解析を行うことで、異常しやすい箇所の特定や設計へのフィードバックや、メンテナンスの容易化を実現することができる。
【0056】
―第3の実施の形態―
図12を参照して、演算装置の第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、演算装置が車両に設置され車両の乗員に異常を報知する点で、第1の実施の形態と異なる。
【0057】
図12は、第3の実施の形態における演算装置70Bの機能構成図である。演算装置70Bは第1の実施の形態における演算装置70の構成に加えて、演算装置70Bが搭載される車両のドライバに判定結果を通知する通知部800をさらに有する。通知部800は、音声により通知するスピーカーでもよいし、光により通知するライトでもよいし、映像により通知する画像表示装置でもよい。通知部800は、異常個所判定部500の判定結果に基づき音声、光、および映像の少なくとも1つを用いて車両のドライバに判定結果を通知する。
【0058】
上述した第3の実施の形態によれば、次の作用効果が得られる。
(6)電子制御装置70Bは、異常個所判定部500の判定結果を車両の乗員に通知する通知部800を備える。そのため、自動車の運用中におけるリアルタイムなドライバへの通知が可能となり、安全制御や注意喚起が可能になる。
【0059】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0060】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0061】
70、70A、70B…演算装置
80…事前算出装置
100…プログラマブルロジック部
210…テストパタン印加部
222…第2ユーザ回路
230…判定部
300…テスト制御部
400…テスト情報
410…入力情報
420…期待値情報
430…異常個所特定情報
500…異常個所判定部
700…送信部
800…通知部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12