JP2017224060A - アプリロジックおよびその検証方法および構成方法 - Google Patents

アプリロジックおよびその検証方法および構成方法 Download PDF

Info

Publication number
JP2017224060A
JP2017224060A JP2016117505A JP2016117505A JP2017224060A JP 2017224060 A JP2017224060 A JP 2017224060A JP 2016117505 A JP2016117505 A JP 2016117505A JP 2016117505 A JP2016117505 A JP 2016117505A JP 2017224060 A JP2017224060 A JP 2017224060A
Authority
JP
Japan
Prior art keywords
logic
macro
calculation
verification
arithmetic
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.)
Granted
Application number
JP2016117505A
Other languages
English (en)
Other versions
JP6721423B2 (ja
Inventor
徹 本谷
Toru MOTOYA
徹 本谷
雅裕 白石
Masahiro Shiraishi
雅裕 白石
悟史 西川
Satoshi Nishikawa
悟史 西川
圭輔 山本
Keisuke Yamamoto
圭輔 山本
鳥羽 忠信
Tadanobu Toba
忠信 鳥羽
巧 上薗
Takumi Uezono
巧 上薗
英雄 原田
Hideo Harada
英雄 原田
雄介 菅野
Yusuke Sugano
雄介 菅野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016117505A priority Critical patent/JP6721423B2/ja
Priority to CN201710271230.5A priority patent/CN107506509B/zh
Priority to EP17169381.5A priority patent/EP3258470B1/en
Priority to US15/621,519 priority patent/US10929273B2/en
Publication of JP2017224060A publication Critical patent/JP2017224060A/ja
Application granted granted Critical
Publication of JP6721423B2 publication Critical patent/JP6721423B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G21NUCLEAR PHYSICS; NUCLEAR ENGINEERING
    • G21CNUCLEAR REACTORS
    • G21C17/00Monitoring; Testing ; Maintaining
    • GPHYSICS
    • G21NUCLEAR PHYSICS; NUCLEAR ENGINEERING
    • G21DNUCLEAR POWER PLANT
    • G21D3/00Control of nuclear power plant
    • G21D3/001Computer implemented control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E30/00Energy generation of nuclear origin
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E30/00Energy generation of nuclear origin
    • Y02E30/30Nuclear fission reactors

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • High Energy & Nuclear Physics (AREA)
  • Plasma & Fusion (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Programmable Controllers (AREA)
  • Monitoring And Testing Of Nuclear Reactors (AREA)
  • Advance Control (AREA)

Abstract

【課題】SIL4相当の高安全なアプリロジックを提供する。【解決手段】所定の演算を行う1または複数のマクロロジックと、マクロロジックに演算を行わせるために、マクロロジックに演算の開始を指示するマクロ演算制御部と、データを記憶する演算データ記憶領域と、を備えるアプリロジックの検証方法である。このアプリロジックは、マクロロジック、マクロ演算制御部、演算データ記憶領域の各々について、形式検証言語のプロパティ記述による静的検証を行い、マクロロジックの少なくとも一つについて、さらに、シミュレーションによる動的検証を行う。【選択図】 図1

Description

本発明は,原子炉等の安全保護系アプリロジックおよびその設計手法に関する。
原子炉の計装制御装置は、制御系と安全保護系に分類される。安全保護系は、原子炉の異常を検知し緊急停止する役割を担う。このため、安全保護系のアプリロジックは、IEC 61508においてシステムの安全性能を表す尺度である、SIL(Safety Integrity Level)4相当の高安全である必要がある。安全保護系のアプリロジックが異常を検知するまでの処理としては、原子炉内の中性子束を計測し、その上昇率を演算し規定値を超過しているか判断する方法がある。中性子束の計測値は、演算に必要な精度が10進5桁以上であることと、計測値の最大値と最小値の比率が10進7桁程度であるため、計測値を用いた演算方法には固定小数点数演算ではなく、扱える数値の範囲の広い浮動小数点数演算が必要となる。
特開2005−249609号公報(特許文献1)には、ハードウェアロジックを用いた原子炉の安全保護計装システムであり、入力の全てのロジックパターンに対して出力のロジックパターンがあらかじめ検証された機能ユニットを組み合わせて構成される安全保護系計装システムが開示されている。
特開2005−249609号公報
特許文献1に開示されている技術では、入力の全てのロジックパターンに対する出力のロジックパターンがあらかじめ検証された機能ユニットを組み合わせた安全保護計装システムが開示されている。しかしながら、特許文献1に開示されている技術では,SIL4相当の高安全なシステムを開発できない問題があった。基本安全規格IEC61508の定義によれば、シミュレーションによる動的検証により検証されたロジックの安全性はせいぜいSIL3相当である。特許文献1に開示されている検証内容はシミュレーションによる動的検証のみであるため、SIL4相当の安全性は担保できない問題があった。
本発明の一側面は、所定の演算を行う1または複数のマクロロジックと、マクロロジックに演算を行わせるために、マクロロジックに演算の開始を指示するマクロ演算制御部と、データを記憶する演算データ記憶領域と、を備えるアプリロジックの検証方法である。このアプリロジックは、マクロロジック、マクロ演算制御部、演算データ記憶領域の各々について、形式検証言語のプロパティ記述による静的検証を行い、マクロロジックの少なくとも一つについて、さらに、シミュレーションによる動的検証を行う。
本発明の他の一側面は、所定の演算を行う1または複数のマクロロジックと、マクロロジックに演算を行わせるために、マクロロジックに演算の開始を指示するマクロ演算制御部と、データを記憶する演算データ記憶領域とを備えるアプリロジックである。このアプリロジックでは、マクロロジックは、所定の浮動小数点数演算を行う1または複数の演算ロジックと、演算アルゴリズムの順序にしたがって演算ロジックに浮動小数点数演算を行わせるために、演算ロジックに浮動小数点数演算の開始を指示する浮動小数点数演算制御部と、浮動小数点数演算制御部の制御により、演算ロジックに浮動小数点数演算に必要なデータを転送するためのセレクタと、演算ロジックから受け取った出力データを処理して出力する出力値処理部と、を備える。また、演算ロジックは、複数のサブ機能モジュールの組み合わせで構成される。
本発明のさらに他の一側面は、原子炉計装制御装置の安全保護系アプリロジックの構成方法であって、安全保護系アプリロジックを、形式検証言語のプロパティ記述による静的検証によりあらかじめ検証済の機能モジュールの組み合わせで構成することを特徴とする。
本発明により、高安全なアプリロジックを開発可能であり、IEC61508のSIL4相当の高安全を達成することが可能となる。
実施例1における安全保護系アプリロジックの構成を示すブロック図。 実施例1におけるアプリロジックの処理手順を示すフロー図。 実施例1における静的検証を行う場合の検証方法を示す概念図。 実施例1における動的検証を行う場合の検証方法を示す概念図。 実施例1におけるアプリロジックのサブモジュールの検証方法を示す表図。 実施例1における回路規模が大きく処理内容が複雑なマクロロジックの構成を示すブロック図。 実施例1における回路規模が大きく処理内容が複雑なマクロロジックの処理手順を示すフロー図。 実施例1におけるマクロロジックのサブモジュールの検証方法を示す表図。 実施例1における単精度浮動小数点数演算ロジックの構成を示すブロック図。 実施例1における単精度浮動小数点数演算ロジックのサブモジュールの検証方法を示す表図。 実施例2におけるアプリロジックの構成を示すブロック図。 実施例3におけるアプリ開発画面の平面図。 実施例3におけるソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係を示す概念図。 実施例3におけるアプリロジック設計手法を示す概念図。 実施例4におけるアプリ開発画面の平面図。 実施例4におけるアプリロジック設計手法を示す概念図。 実施例5におけるアプリロジック設計手法を示す概念図。 実施例6におけるアプリロジック設計手法を示す概念図。
以下、実施例を図面を用いて説明する。なお、実施例を説明する全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は特に必要な場合を除き省略する。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
図1は、実施の形態1における安全保護系アプリロジック100の構成を示すブロック図である。安全保護系アプリロジック100の演算は,マクロロジック101の組み合わせで実現される。マクロロジック101には様々な種類があり,アプリの必要に応じてn種類のマクロロジック101a,101b,…,101nを置く。安全保護系アプリロジック100は例えばマイクロプロセッサやFPGA(Field Programmable Gate Array)、あるいは、ASIC(Application Specific Integrated Circuit)などの、1または複数の半導体チップで構成することができる。
マクロロジック101は、マクロ演算制御部102によって制御される。マクロ演算制御部102とマクロロジック101は、マクロ演算開始信号線103とマクロ演算終了信号線104それぞれによって接続される。マクロ演算制御部102はマクロ演算開始信号線103を介して演算開始信号をマクロロジック101に送り、演算の開始を指示する。
アプリロジック100がn種類のマクロロジック101a,101b,…,101nを持つ場合、マクロ演算開始信号線103とマクロ演算終了信号線104も同様にn種類存在する。マクロロジック101はマクロ演算終了信号線104を介して演算終了信号をマクロ演算制御部102に送り、演算の終了を通知する。マクロ演算制御部102が演算開始信号をマクロロジック101に送ってからマクロロジック101がマクロ演算を実行し演算終了信号をマクロ演算制御部102に送るまでを、「マクロロジック101の呼出し」と定義する。アプリ演算は、マクロロジック101の呼出しを繰り返すことで実行される。
マクロロジック101の呼出し順序は、演算順序記憶領域105に保存されている。マクロロジック101の呼出しを繰返すにあたり、アプリ演算の中間データは演算データ記憶領域106に保存される。マクロロジック101のマクロ演算に必要な入力データは演算データ記憶領域106から適宜呼び出され、マクロロジック101の演算結果である出力データは演算データ記憶領域106に保存される。
マクロロジック101の呼出し前には、演算データ記憶領域106に保存されている演算データが必要に応じて入力セレクタ107を通じてp本の入力レジスタ108a,108b,…,108pに転送される。計p本の入力レジスタ108a,108b,…,108pは,それぞれn種類のマクロロジック101a,101b,…,101nすべての入力として接続されている。マクロ演算制御部102は演算データ記憶領域106と入力セレクタ107それぞれを制御し、適切に演算データを入力レジスタ108a,108b,…,108pに転送する。この例では、浮動小数点演算を想定しているため、入力セレクタ107からの各出力は、32ビットを想定している。図1等各図では、太く示すラインが32ビットのラインである。
マクロロジック101の呼出し後には、マクロロジック101の演算結果がq本の出力レジスタ110a,110b,…,110qに保存される。マクロロジック101a,101b,…,101nのなかでも呼び出されたマクロロジック101の演算結果を保存するために,マクロ演算制御部102はセレクタ109a,109b,…,109qを制御し、呼び出されたマクロロジック101と出力レジスタ110a,110b,…,110qを接続する。
マクロ演算制御部102は、出力レジスタ110a,110b,…,110qに保存された出力データを演算データ記憶領域106に書き込むために、出力セレクタ111を順次切り替える。アプリ演算開始信号線START112,入力信号線IDAT113,アプリ演算終了信号線114,出力信号線ODAT115,クロック信号線CLK116,リセット信号線RST117はそれぞれ,アプリロジック100が外部モジュールと接続し通信するための入出力信号線である。
アプリロジック100は,アプリ演算開始信号線START112からアプリ演算開始信号を受信することで、アプリ演算を開始する。アプリロジック100でのアプリ演算に必要な演算初期値は、入力信号線IDAT113から供給される。アプリ演算が終了すると、アプリロジック100はアプリ演算終了信号線END114からアプリ演算終了信号を送信する。アプリロジック100でのアプリ演算の演算結果は,出力信号線ODAT115より出力する。クロック信号線116やリセット信号線117よりクロック信号とリセット信号がアプリロジック100に供給され、アプリロジック100はマクロロジック101をはじめとする内部のサブモジュールに再分配する。こうすることで、アプリロジック100は同期動作をする。図中ではアプリロジック100内部のサブモジュールに供給されるクロック信号線とリセット信号線は省略した。
図2は、実施の形態1におけるアプリロジック100の処理手順を示すフローチャートである。
ステップ120:入力信号線IDAT113を通じて外部モジュールからアプリ演算の初期値データが届くと,マクロ演算制御部102は演算データ記憶領域106にそれら初期値データを保存する。ステップ120が終了しアプリ演算に必要な初期値データが演算データ記憶領域106に一通り揃うと,ステップ121に進む。
ステップ121:アプリ演算開始信号線112を通じて外部モジュールからアプリ演算開始信号が送られてくる。アプリ演算開始信号を合図にアプリロジック100はアプリ演算を開始するため,アプリロジック100はアプリ演算開始信号の受信を待つ。アプリ演算開始信号を受信したらステップ122に進み,そうでないならステップ121に進む。
ステップ122:演算順序記憶領域105にはマクロロジック101の呼び出し順序が一覧で記載されている。またマクロロジック101を呼び出す際に使用する演算データの演算データ記憶領域106中のアドレスも併記されている。マクロ演算制御部102は,演算順序記憶領域から,つぎに呼び出し実行するマクロロジックの種別と,その入力データのアドレスを読み込む。その後,ステップ123に進む。
ステップ123:マクロロジック101が演算を行う前に,入力レジスタ108a,108b, …,108nに入力データを準備する。マクロ演算制御部102は,入力セレクタ107を切り替えつつ,入力レジスタ108a,108b,…,108nの順に入力データを演算データ記憶領域106から転送する。マクロロジック101に必要な入力データが各種入力レジスタ108に揃ったらステップ124に進む。
ステップ124:マクロ演算制御部102は,マクロ演算開始信号線103を介してマクロロジック101に演算開始信号を送信する。マクロロジック101a,101b,…,101nのなかから今回呼び出すべきマクロロジック101xの演算が実行されるように,対応したマクロ演算開始信号線103xを用いて演算開始信号を送信する。またこのとき,出力レジスタ110にマクロロジックの演算結果データが適切に保存されるようにセレクタ109を切り替えておく。
ステップ125:マクロロジック101は演算を終了するとマクロ演算終了信号線104を介してマクロ演算制御部102に演算終了信号を出力する。マクロ演算制御部102は,演算終了信号の受信を待つ。演算終了信号を受信したらステップ126に進み,そうでない場合はステップ125に進む。
ステップ126:マクロロジック101の演算結果である出力データが,出力レジスタ110に保存されている。まずはマクロ演算制御部102は出力レジスタに保存されたデータが破壊されないように,セレクタ109を切り替えて出力レジスタの出力と入力を接続する。その後,マクロ演算制御部102は出力セレクタ111を切り替えることで出力レジスタ110a,110b,…,110qに保存されている演算結果データを演算データ記憶領域106に転送する。すべての出力データが演算データ記憶領域106に転送されたならば,ステップ127に進む。
ステップ127:マクロ演算制御部102は演算順序記憶領域105を参照し,つぎに演算すべきマクロが存在するかどうかを確認する。もしつぎに演算すべきマクロが存在するならばステップ122に進み,そうでないならステップ128に進む。
ステップ128:演算順序記憶領域105に保存されているすべてのマクロロジック101の演算が終了したとき,演算データ記憶領域106にはアプリ演算結果のデータが保存されている。マクロ演算制御部102は,出力信号線ODAT115を介してアプリ演算結果のデータを演算データ記憶領域106から外部モジュールへ送信する。このとき,マクロ演算制御部102はアプリ演算終了信号線END114を介してアプリ演算終了信号を外部モジュールへ送信し,アプリ演算の終了を通知する。
図3と図4は,実施の形態1におけるハードウェアモジュールの検証方法を示す図である。まず,検査対象であるハードウェアモジュールをハードウェア記述言語で記述する。
図3は,実施の形態1における静的検証130を行う場合の検証方法を示す図である。静的検証130では,形式検証言語によるプロパティ記述でハードウェアモジュールの機能仕様を検証する。形式検証ツール133がハードウェア記述言語で記述された131と形式検証言語で記述された検査対象のプロパティ132を受け取り,検査結果134を出力する。検査結果に誤りがなければ,ハードウェアモジュールにバグが無かったと言って良い。
図4は,実施の形態1における動的検証140を行う場合の検証方法を示す図である。動的検証140では,ハードウェアモジュールをシミュレーターで動作させ,実績があり高信頼な比較対象と結果を比較することでハードウェアモジュールの機能仕様を検証する。まず,乱数生成器141がハードウェアモジュールに対する入力値142を乱数を用いて生成する。ハードウェア記述言語シミュレーター143は,ハードウェア記述言語で記述された検査対象131と入力値142を受け取り,このハードウェアモジュールの出力値145を出力する。また,動的検証140では出力値145と比較するための出力期待値146が必要となる。出力期待値146を得るために,検証対象であるハードウェアモジュールと同等の機能を持ち,かつ実績があり高信頼な比較対象144を用意し,入力値142を印加する。さいごに,比較器147が出力値145と出力期待値146を受け取り,検査結果148を出力する。検査結果148のなかで比較結果に不一致があれば,ハードウェアモジュールにバグが検出されたこととなる。
図5は,実施の形態1におけるアプリロジック100のサブモジュールの検証方法を示す図である。マクロロジックA101a,マクロロジックN101n,マクロ演算制御部102,演算順序記憶領域105,演算データ記憶領域106,入力セレクタ107,入力レジスタ108,セレクタ109,出力レジスタ110,出力セレクタ111は静的検証130により検証を行う。マクロロジックB101bは動的検証140と静的検証130の組み合わせにより検証を行う。回路規模が小さく処理内容が簡素なハードウェアモジュールは,静的検証130により検証可能である。
逆に,回路規模が大きく処理内容が複雑なハードウェアモジュールは,形式言語のプロパティ記述による検証が困難であるため、静的検証130だけではなく動的検証140により検証を行う。マクロロジックB101bをはじめとする数種類のマクロロジックは、たとえば単精度浮動小数点数を用いた指数関数の演算を行うため,回路規模が大きく処理内容が複雑である。こうした回路規模が大きく処理内容が複雑なマクロロジック101は,トップモジュールそのものは動的検証によりバグが無いことを確認するほか、さらにサブモジュール分割して静的検証130により検証を行う。こうした回路規模が大きく処理内容が複雑なマクロロジック101は三角関数や指数関数,対数関数などの数学関数を演算するものが多い。したがって,そうしたマクロロジック101の動的検証140における実績があり高信頼な比較対象144には,たとえば一般的なPC上で動作するC言語の数学関数ライブラリを用いる。
図6は、実施の形態1における回路規模が大きく処理内容が複雑なマクロロジック101の構成を示すブロック図である。一般に三角関数や指数関数,対数関数などの数学関数は最良近似多項式などにより多項式近似することで実現される。最良近似多項式は単精度浮動小数点数の四則演算や床関数,型変換の組み合わせで実装可能である。したがって,回路規模が大きく処理内容が複雑なマクロロジック101は,内部に複数の種類の単精度浮動小数点数演算ロジック150a,150b,…,150mを持つような構成となる。
数学関数を最良近似多項式などにより多項式近似をおこなう場合、単精度浮動小数点数加算と単精度浮動小数点数乗算を複数回繰り返すこととなる。このとき,言うまでもなく,1回の単精度浮動小数点数演算につき1個の単精度浮動小数点数演算ロジック150を持つことは,回路規模が非効率である。したがって、マクロロジック101は必要に応じて単精度浮動小数点数演算ロジック150は1種類につき1個だけ持つこととし、マクロ演算のアルゴリズムにしたがって単精度浮動小数点数演算ロジック150を繰り返し呼び出すこととなる。
このため、単精度浮動小数点数演算ロジック150の入力にはそれぞれセレクタ151とレジスタ152が備わっており,マクロロジック101の入力データや以前の単精度浮動小数点数演算の出力データを入力データとして利用可能としている。したがって、セレクタ151a,151b,…,151i,151jは、マクロロジックの入力信号線IN_A154a,…,IN_P154pや単精度浮動小数点数演算ロジック150の出力信号線155a,…,155mと必要に応じて接続している。
単精度浮動小数点数演算ロジック150や,その入力に備わっているセレクタ151は、浮動小数点数演算制御部153により制御される。浮動小数点数演算制御部153は,浮動小数点数演算開始信号線156と浮動小数点数演算終了信号線157を介して単精度浮動小数点数演算ロジック150と接続している。
浮動小数点数演算制御部153が浮動小数点数演算開始信号線156を介して単精度浮動小数点数演算ロジック150に演算開始信号を送信すると、単精度浮動小数点数演算ロジック150は演算を開始する。単精度浮動小数点数演算ロジック150は演算が終了すると,浮動小数点数演算終了信号線157を介して浮動小数点数演算制御部153に演算終了信号を送信する。
浮動小数点数演算制御部153は,マクロ演算開始信号線IVALID103およびマクロ演算終了信号線OVALID104と接続する。マクロ演算開始信号線IVALID103からマクロ演算開始信号を受信すると,浮動小数点数演算制御部153はマクロロジック101で実現すべき演算のアルゴリズムにしたがい,単精度浮動小数点数演算ロジック150とセレクタ151を制御しつつ浮動小数点数演算を行う。
一通りの浮動小数点数演算が終了すると、出力値処理部158は単精度浮動小数点数演算ロジック150の出力信号線155a,…,155mや例外信号線159a,…,159mから受け取ったデータをデジタル処理し,マクロロジック出力信号線OUT_A160a,…,OUT_Q160qからマクロ出力データを出力する。このとき,浮動小数点数演算制御部153は、マクロ演算終了信号線104を介して演算終了信号を送信する。また,マクロロジック101はクロック信号線CLK116とリセット信号線RST117からそれぞれクロック信号をリセット信号を供給されており,内部の各サブモジュールにクロック信号とリセット信号を再分配する。こうすることで,マクロロジック101は同期動作をする。
図中ではマクロロジック101内部のサブモジュールに供給されるクロック信号線とリセット信号線は省略した。また,マクロロジックの入力信号線IN_A154a,…,IN_P154pはそれぞれアプリロジック100における入力レジスタ108a,…,108pとそれぞれ必要に応じて接続し,マクロロジック出力信号線OUT_A160A,…,OUT_Q160qはアプリロジック100におけるセレクタ109a,…,109qと必要に応じて接続している。
図7は,実施の形態1における回路規模が大きく処理内容が複雑なマクロロジック101の処理手順を示すフローチャートである。
ステップ170:マクロロジック101は、マクロ演算開始信号線IVALID103を介してマクロ演算制御部102から送られてくる演算開始信号をトリガにマクロ演算を行う。浮動小数点数演算制御部153が演算開始信号を受信するとステップ171に進み,そうでないならステップ170に進む。
ステップ171:浮動小数点数演算制御部153は、マクロロジック101の演算アルゴリズムの順序にしたがって単精度浮動小数点数演算ロジック150の演算を実行する。このため、アルゴリズムの現在のステップで実行すべき単精度浮動小数点数演算ロジック150とその入力データを選択し、セレクタ151を切り替える。その後,ステップ172に進む。
ステップ172:浮動小数点数演算制御部153は、浮動小数点数演算開始信号線156を開始信号を単精度浮動小数点数演算ロジック150に送る。その後,ステップ173に進む。
ステップ173:単精度浮動小数点数演算ロジック150は演算を終了すると浮動小数点数演算終了信号線157を介して浮動小数点数演算制御部153に浮動小数点数演算終了信号を出力する。浮動小数点数演算制御部153は,浮動小数点数演算終了信号の受信を待つ。浮動小数点数演算終了信号を受信したらステップ174に進み,そうでない場合はステップ173に進む。
ステップ174:浮動小数点数演算制御部153は、浮動小数点数演算終了信号を受信すると内部状態を更新し、マクロロジック101の演算アルゴリズムを次のステップに進める。演算アルゴリズムが終了した場合はステップ175に進み、そうでない場合はステップ171に進む。
ステップ175:出力値処理部158が,入力信号線IN_A154a,…,IN_P154pを介して受信した入力データや単精度浮動小数点数演算ロジックの出力信号線155a,…,155mや例外信号線や例外信号線159a,…,159mから受信した演算データを用いることでマクロロジック101の演算結果データを生成し、マクロロジック出力信号線OUT_A160a,…, OUT_Q160qを介して演算結果データを送信する。その後、ステップ176に進む。
ステップ176:浮動小数点数演算制御部153は、マクロ演算終了信号線OVALID104を介してマクロ演算終了信号を送信する。
図8は、実施の形態1におけるマクロロジック101のサブモジュールの検証方法を示す図である。セレクタ151,レジスタ152,浮動小数点数演算制御部153,出力値処理部158は静的検証130により検証を行う。単精度浮動小数点数演算マクロロジックA150a,…,単精度浮動小数点数演算マクロロジックM150mは動的検証140と静的検証130の組み合わせにより検証を行う。
これは単精度浮動小数点数演算ロジック150は回路規模が大きく処理内容が複雑のため,トップモジュールの静的検証130は困難である。したがって、単精度浮動小数点数演算ロジック150のトップモジュールは動的検証140により検証を行い,実績があり高信頼な比較対象144としては.たとえば一般的なPCに搭載されておりIEEE754規格に準拠した単精度浮動小数点数演算器を用いる。単精度浮動小数点数演算ロジック150はサブモジュール分割し静的検証130を行う。
図9は、実施の形態1における単精度浮動小数点数演算ロジック150の構成を示す図である。
入力比較部180は、入力信号線IN_0 181,IN_1 182を介して受け取った入力データの比較結果を出力する。
符号部処理部183は、入力比較部180の比較結果を用いて,入力データの符号部を処理する。
指数部処理部184は、入力比較部180の比較結果を用いて,入力データの指数部を処理する。
仮数部処理部185は、入力比較部180の比較結果と指数部処理部184の処理結果を用いて,入力データの仮数部を処理する。
指数部調整部186は、指数部処理部184の処理結果と仮数部処理部185の処理結果を用いて,出力すべき指数部の調整を行う。
例外処理部187は、入力データと指数部調整部186の調整結果を用いて,浮動小数点数例外を処理する。
出力値処理部188は、符号部処理部183の処理結果と仮数部処理部185の処理結果と指数部調整部186の処理結果と例外処理部187の処理結果を用いて,単精度浮動小数点数演算ロジック150の演算結果データを生成し、出力信号線OUT155と例外信号線EXCEPTION159それぞれを介して出力する。
単精度浮動小数点数演算ロジック150は、浮動小数点数演算開始信号線IVALID156を介して浮動小数点数演算開始信号を受け取ってから演算を開始する。
演算サイクル数計数部189は、入力比較部180,符号部処理部183,指数部処理部184,仮数部処理部185,指数部調整部186,例外処理部187,出力値処理部の単精度浮動小数点数演算ロジック150のサブモジュールに経過サイクル数を通知することで、それら内部での繰り返し処理を可能とする。
単精度浮動小数点数演算ロジック150のサブモジュールが繰り返し処理を行うことで,回路規模を節約することが可能である。
演算サイクル数計数部189は浮動小数点数演算開始信号を受け取ってから演算サイクル数を計数し始め、浮動小数点数演算が終了したタイミングで浮動小数点数演算終了信号線OVALID157から浮動小数点数演算終了信号を出力する。
図10は、実施の形態1における単精度浮動小数点数演算ロジック150のサブモジュールの検証方法を示す図である。入力比較部180,符号部処理部183,指数部処理部184,仮数部処理部185,指数部調整部186,例外処理部187,出力値処理部188,演算サイクル数計数部189をすべて静的検証130で検証する。単精度浮動小数点数演算ロジック150の演算方式や実装方法などにより形式検証のプロパティ記述が困難な場合は、それらサブモジュールをさらにサブモジュール分割することで静的検証130により検証可能とする。
こうすることで、アプリロジック100を構成するハードウェアモジュールはすべて静的検証130により検証される。また、マクロロジック101や浮動小数点数演算ロジック150などの実装上意味のある単位で動的検証140を行うことにより、ハードウェアモジュールのバグ発見を用意とした。これにより、アプリロジック100はIEC61508 SIL4相当の高安全に開発可能となる。また、単精度浮動小数点数演算ロジック150はクロック信号線CLK116とリセット信号線RST117からそれぞれクロック信号をリセット信号を供給されており、内部の各サブモジュールにクロック信号とリセット信号を再分配する。こうすることで、単精度浮動小数点数演算ロジック150は同期動作をする。図中ではマクロロジック101内部のサブモジュールに供給されるクロック信号線とリセット信号線は省略した。
実施の形態1で示したアプリロジック100は、回路規模を節約するために各種マクロロジック101a,…,101nを1種類につき1個だけ配置する構成であった。このため、実施の形態1では回路規模を節約可能である反面、マクロロジック101の演算順序やアプリロジック100の演算内容が回路図からわかりにくい問題があった。実施の形態2においては、マクロロジック101を演算順序やアプリ演算の内容が視覚的に理解が容易な構成で配置する。
図11は実施の形態2におけるアプリロジック100の構成を示す図である。マクロロジック101がアプリロジック100の内部に、ファンクション・ブロック・ダイアグラム形式で配置されている。これらマクロロジック101のうちいくつかは入力信号線190を介して演算データ記憶領域106と接続し、初期値データの供給を受ける。またこれらマクロロジックのうちいくつかは出力信号線191を介して演算データ記憶領域106と接続し、演算結果データを演算データ記憶領域106に保存する。
ファンクション・ブロック・ダイアグラム形式で配置されたマクロロジック101は,入出力信号192を介して相互接続し、各々のマクロロジック101の出力データが他のマクロロジック101の入力データとして演算データ記憶領域106を介さずに直接入出力可能としている。また、ファンクション・ブロック・ダイアグラム形式で配置されたマクロロジック101は,あるマクロロジック101のマクロ演算終了信号線OVALIDが他のマクロロジック101のマクロ演算開始信号線IVALIDとして接続されるように演算制御信号線194によって相互接続されている。すなわち、1本の演算制御信号線194を流れる演算制御信号は,あるマクロロジック101からすればマクロ演算終了信号であり,他のマクロロジック101からすればマクロ演算開始信号である。
したがって、ファンクション・ブロック・ダイアグラムで相互接続されたマクロロジック101は演算制御信号線194により数珠つなぎ状に直列に接続されており、演算制御信号の流れに沿ってマクロロジック101の演算が進行する。このとき、前の順番のマクロロジック101の出力データが必ず後の順番のマクロロジックの入力データとなるよう,留意してアプリロジック100を設計する必要がある。
一番最初に実行されるマクロロジック101のマクロ演算開始信号線IVALIDはアプリ演算開始信号線START112であり、一番最後に実行されるマクロロジック101のマクロ演算終了信号線OVALIDはアプリ演算終了信号線END114である。実施の形態2におけるハードウェアモジュールの検証は,マクロ演算制御部102と演算データ記憶領域106については静的検証130によって実行し、マクロロジック101については実施の形態1と同様に図8/図10に示したように静的検証130と動的検証140の組み合わせにより実行する。
実施の形態3では、実施の形態1で示したアプリロジック100の設計手法である。
図12に,実施の形態3におけるアプリ開発画面200を示す。IEC61508 SIL4相当の高安全なアプリを開発するには、キャラクタ・ユーザ・インターフェースではなくグラフィック・ユーザ・インターフェースによる,視覚的かつ直感的なモデルベースでの開発が必要となる。このためアプリ開発者は,アプリで必要なマクロ演算を行うことが可能なソフトウェアマクロ201をアプリ開発画面200に配置することでアプリの開発を行う。
アプリを開発するにあたり,ソフトウェアマクロライブラリ202を用意する。ソフトウェアマクロライブラリ202には、アプリを開発するために必要な種類のソフトウェアマクロA201a,ソフトウェアマクロB201b,…,ソフトウェアマクロN201zが揃っている。アプリ開発者はソフトウェアマクロライブラリ202から配置したいソフトウェアマクロ201をアプリ開発画面200にドラッグ・アンド・ドロップ203することで,アプリを開発する。
また,アプリ開発画面200に配置されたソフトウェアマクロ201にはそれぞれ通し番号204を付与する。アプリ演算の中でソフトウェアマクロ201を並列化せず直列に実行する場合の実行順序を,英数字を用いて指定したものが通し番号204である。通し番号204は,アプリをアプリロジック100に実装する際に必要となる。
図13は,実施の形態3におけるソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210を示す図である。アプリの開発のために用いたソフトウェアマクロ201のライブラリであるソフトウェアマクロライブラリ202に対して,マクロロジック101のライブラリであるマクロロジックライブラリ211を用意する。ソフトウェアマクロライブラリ202に含まれる種々のソフトウェアマクロA201a,ソフトウェアマクロB201b,…,ソフトウェアマクロN201zに対して,マクロロジックライブラリ211にはそれぞれ同等の演算のマクロロジックA101a,マクロロジックB101b,…,マクロロジックZ101zが含まれている。
すなわち,ソフトウェアマクロA201aとマクロロジックA101aは同等の演算を行うマクロであり,ソフトウェアマクロB201bとマクロロジックB101bは同等の演算を行うマクロであり,…,ソフトウェアマクロZ201zとマクロロジックZ101zは同等の演算を行うマクロである。したがって,ソフトウェアマクロライブラリ202に含まれるソフトウェアマクロ201とマクロロジックライブラリ211に含まれるマクロロジック101は一対一対応の関係にある。
ソフトウェアマクロ201とマクロロジック101の差異は,マクロロジック101はハードウェアであるためクロック信号線116やリセット信号線117を持ち,またアプリロジック100がマクロロジック101を制御するためにマクロ演算開始信号線103とマクロ演算終了信号線104を持つことである。こうしたインターフェースにこうした差異があるものの,ソフトウェアマクロ201とマクロロジック101はそれぞれが同等の演算を行う。
ソフトウェアマクロ201とマクロロジック101それぞれが同等の演算を行うことは,静的検証130や動的検証140により検証する。静的検証130を用いる場合は,まずソフトウェアマクロ201をハードウェア記述言語に高位合成する。ハードウェア記述言語で記述された検査対象131は,ハードウェア記述言語で記述されたソフトウェアマクロ201とマクロロジック101の双方のセットである。形式検証言語で記述された検査対象のプロパティ132には、ハードウェア記述言語で記述されたソフトウェアマクロ201とマクロロジック101の入力が等しければ出力も等しいことをプロパティ記述する。動的検証140を用いる場合は,ハードウェア記述言語で記述された検査対象131がマクロロジック101であり、実績があり高信頼な比較対象144がソフトウェアマクロ201である。
図14は、実施の形態3におけるアプリロジック設計手法を示す図である。アプリ開発者が開発したアプリ220と,ソフトウェアマクロライブラリ202からアプリロジック100を生成するまでを示した。マクロ接続情報抽出部221は、アプリ220中のソフトウェアマクロ201と通し番号204とソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210の情報から、マクロロジック演算順序222を出力する。
ソフトウェアマクロ201に付与されている通し番号204の順番にソフトウェアマクロ201を並べることでソフトウェアマクロ201の演算順序を得、ソフトウェアマクロ201の演算順序とソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210からマクロロジック演算順序222を得る。また、マクロ接続情報抽出部221は,アプリ220中のソフトウェアマクロ201同士の接続情報から、ソフトウェアマクロの入出力データに付与する入出力アドレス223を出力する。さらに、マクロ接続情報抽出部は,アプリ開発者が10進数で入力したアプリ220中の定数値を単精度浮動小数点数に変換するなどし,定数データ224と出力する。マクロロジック利用情報抽出部225は,アプリ220中で利用されているソフトウェアマクロ201の種類を調べ、ソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210から利用されているマクロロジック101を抽出し、マクロロジック利用情報226として出力する。演算順序記憶領域105は、マクロロジック演算順序222と入出力アドレス223に記載された情報をもとに開発される。演算データ記憶領域106は,入出力アドレス223と定数データ224に記載された情報をもとに開発される。アプリロジック100に搭載されるマクロロジック101の種別であるマクロロジックA101a,マクロロジック101b,…,マクロロジック101nは、マクロロジック利用情報226に記載された情報の通りである。
実施の形態4では、実施の形態1で示したアプリロジック100の設計手法である。
図15に、実施の形態4におけるアプリ開発画面200を示す。実施の形態3の図12で示した通し番号204ではなく、演算制御信号線193をソフトウェアマクロ201を持たせることで演算順序を指定してもよい。演算制御信号線193を接続するために,ソフトウェアマクロ201にもマクロ演算開始信号線103とマクロ演算終了信号線104をそれぞれ持たせる。アプリ開発者がアプリ220を開発するさい、あるソフトウェアマクロ201のマクロ演算終了信号線104をつぎの演算順序の別のソフトウェアマクロ201のマクロ演算開始信号線103として接続し、演算制御信号線193とする。ソフトウェアマクロ201は,演算制御信号線193により演算順序にしたがい数珠つなぎとなる。演算制御信号が演算制御信号線193を伝播することでアプリ演算は進行する。
図16は、実施の形態4におけるアプリロジック設計手法を示す図である。マクロ接続情報抽出部231は,アプリ220の中で演算制御信号線194が接続している順番にソフトウェアマクロ201をたどりソフトウェアマクロ201の演算順序を得る。ソフトウェアマクロの演算順序とソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210からマクロロジック演算順序222を得る。
実施の形態5では、実施の形態2で示したアプリロジック100の設計手法である。
図17は,実施の形態5におけるアプリロジック設計手法を示す図である。本実施例では,アプリ220でのソフトウェアマクロ201の演算順序の指定に通し番号204を用いた場合とする。ソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210により、アプリ220中のソフトウェアマクロ201をマクロロジック101に置き換え,マクロ接続情報抽出部221が出力したマクロロジック演算順序222をもとに演算制御信号線194を数珠つなぎで接続することで,アプリロジックにおけるマクロロジックのファンクション・ブロック・ダイアグラム230を得る。
実施の形態6では、実施の形態2で示したアプリロジック100の設計手法である。
図18は、実施の形態6におけるアプリロジック設計手法を示す図である。本実施例では、アプリ220でのソフトウェアマクロ201の演算順序の指定に演算制御信号線194を用いた場合とする。ソフトウェアマクロライブラリとマクロロジックライブラリの一対一対応関係210により、アプリ220中のソフトウェアマクロ201をマクロロジック101に置き換えることで,アプリロジックにおけるマクロロジックのファンクション・ブロック・ダイアグラム230を得る。
上記実施例で説明したように、本発明の一実施例の安全保護系アプリロジックは、階層的に構成された複数の機能モジュールに分割され、形式検証言語による静的検証あるいは、動的検証を機能モジュールごとに任意に適用することが容易となる。一実施例の検証方法により検証されたアプリロジックは、機能モジュールごとに静的検証を適用することができる。このため、基本安全規格IEC61508の定義によれば、形式検証言語による静的検証により検証されたロジックはSIL4相当の安全性の要件を満足する。
また、実施例の階層構造では、アプリロジックの演算は、マクロロジックの組合せにより実現される。マクロロジックは、必要に応じて内部に浮動小数点数演算ロジックを含む。マクロロジックと浮動小数点数演算ロジックは,それぞれシミュレーションによる動的検証により検証を行う。したがって、本発明の安全保護系アプリロジックは,形式検証言語による静的検証とシミュレーションによる動的検証の組み合わせにより網羅的に検証され得る。
このような信頼性の高いアプリロジックとその設計手法は、例えば原子炉計装制御装置の安全保護系に適用することができる。典型的な応用例としては、浮動小数点数演算ロジックを内部に搭載した数十種類のマクロロジックの組み合わせで開発されたアプリロジックにおいて,アプリロジックを構成するすべての機能モジュールをプロパティ記述による形式検証などの静的検証により検証済とし、また浮動小数点数演算ロジックやマクロロジックはシミュレーションによる動的検証により検証済とすることで、信頼性の高いアプリロジックを提供することが可能となる。
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
100:アプリロジック
101:マクロロジック
102:マクロ演算制御部
150:単精度浮動小数点数演算ロジック
183:符号部処理部
184:指数部処理部
185:仮数部処理部
186:指数部調整部

Claims (15)

  1. 所定の演算を行う1または複数のマクロロジックと、
    前記マクロロジックに前記演算を行わせるために、前記マクロロジックに前記演算の開始を指示するマクロ演算制御部と、
    データを記憶する演算データ記憶領域と、
    を備えるアプリロジックの検証方法であって、
    前記マクロロジック、前記マクロ演算制御部、前記演算データ記憶領域の各々について、形式検証言語のプロパティ記述による静的検証を行い、
    前記マクロロジックの少なくとも一つについて、さらに、シミュレーションによる動的検証を行う、
    アプリロジックの検証方法。
  2. 前記アプリロジックはさらに、
    前記マクロロジックに前記演算を行わせる順序を記憶する演算順序記憶領域と、
    前記演算データ記憶領域に記憶された前記データを、前記演算の前に前記マクロロジックに転送する入力セレクタと、
    前記演算の後に、前記マクロロジックの演算結果を前記演算データ記憶領域に転送する出力セレクタと、
    前記マクロ演算制御部から前記マクロロジックに、前記演算の開始を指示するための演算開始信号を送信する演算開始信号線と、
    前記マクロロジックから前記マクロ演算制御部に、前記演算の終了を通知するための演算終了信号を送信する演算終了信号線と、
    を備え、
    前記演算順序記憶領域、前記入力セレクタ、及び前記出力セレクタの各々について、形式検証言語のプロパティ記述による静的検証を行う、
    請求項1記載のアプリロジックの検証方法。
  3. 前記アプリロジックの前記マクロロジックは、ファンクション・ブロック・ダイアグラムで相互接続され、
    前記アプリロジックはさらに、
    前記マクロ演算制御部から前記マクロロジックに、前記演算の開始を指示するための演算開始信号を送信する演算開始信号線と、
    前記マクロロジックから前記マクロ演算制御部または他のマクロロジックに、前記演算の終了を通知するための演算終了信号を送信する演算終了信号線と、
    を備える、
    請求項1記載のアプリロジックの検証方法。
  4. 前記マクロロジックは、
    所定の浮動小数点数演算を行う1または複数の演算ロジックと、
    演算アルゴリズムの順序にしたがって前記演算ロジックに前記浮動小数点数演算を行わせるために、前記演算ロジックに前記浮動小数点数演算の開始を指示する浮動小数点数演算制御部と、
    前記浮動小数点数演算制御部の制御により、前記演算ロジックに前記浮動小数点数演算に必要なデータを転送するためのセレクタと、
    前記演算ロジックから受け取った出力データを処理して出力する出力値処理部と、
    を備え、
    前記演算ロジック、前記浮動小数点数演算制御部、前記セレクタ、及び前記出力値処理部の各々について、形式検証言語のプロパティ記述による静的検証を行い、
    前記演算ロジックについて、さらに、シミュレーションによる動的検証を行う、
    請求項1記載のアプリロジックの検証方法。
  5. 前記演算ロジックは、複数のサブ機能モジュールの組み合わせで構成され、
    前記サブ機能モジュールの各々について、形式検証言語のプロパティ記述による静的検証を行う、
    請求項4記載のアプリロジックの検証方法。
  6. 所定の演算を行う1または複数のマクロロジックと、
    前記マクロロジックに前記演算を行わせるために、前記マクロロジックに前記演算の開始を指示するマクロ演算制御部と、
    データを記憶する演算データ記憶領域とを備え、
    前記マクロロジックは、
    所定の浮動小数点数演算を行う1または複数の演算ロジックと、
    演算アルゴリズムの順序にしたがって前記演算ロジックに前記浮動小数点数演算を行わせるために、前記演算ロジックに前記浮動小数点数演算の開始を指示する浮動小数点数演算制御部と、
    前記浮動小数点数演算制御部の制御により、前記演算ロジックに前記浮動小数点数演算に必要なデータを転送するためのセレクタと、
    前記演算ロジックから受け取った出力データを処理して出力する出力値処理部と、
    を備え、
    前記演算ロジックは、複数のサブ機能モジュールの組み合わせで構成される、
    アプリロジック。
  7. 前記アプリロジックはさらに、
    前記マクロロジックに前記演算を行わせる順序を記憶する演算順序記憶領域と、
    前記演算データ記憶領域に記憶された前記データを、前記演算の前に前記マクロロジックに転送する入力セレクタと、
    前記演算の後に、前記マクロロジックの演算結果を前記演算データ記憶領域に転送する出力セレクタと、
    前記マクロ演算制御部から前記マクロロジックに、前記演算の開始を指示するための演算開始信号を送信する演算開始信号線と、
    前記マクロロジックから前記マクロ演算制御部に、前記演算の終了を通知するための演算終了信号を送信する演算終了信号線と、
    を備える請求項6記載のアプリロジック。
  8. 前記アプリロジックの前記マクロロジックは、ファンクション・ブロック・ダイアグラムで相互接続され、
    前記アプリロジックはさらに、
    前記マクロ演算制御部から前記マクロロジックに、前記演算の開始を指示するための演算開始信号を送信する演算開始信号線と、
    前記マクロロジックから前記マクロ演算制御部または他のマクロロジックに、前記演算の終了を通知するための演算終了信号を送信する演算終了信号線と、
    を備える請求項6記載のアプリロジック。
  9. 前記演算ロジックは、
    入力データの比較結果を出力する入力比較部と、
    前記入力比較部の比較結果を用いて、前記入力データの符号部を処理する符号部処理部と、
    前記入力比較部の比較結果を用いて、前記入力データの指数部を処理する指数部処理部と、
    前記入力比較部の比較結果と前記指数部処理部の処理結果を用いて、前記入力データの仮数部を処理する仮数部処理部と、
    前記指数部処理部の処理結果と前記仮数部処理部の処理結果を用いて,出力すべき指数部の調整を行う指数部調整部と、
    前記入力データと前記指数部調整部の調整結果を用いて、浮動小数点数例外を処理する例外処理部と、
    前記符号部処理部の処理結果と前記仮数部処理部の処理結果と前記指数部調整部の処理結果と前記例外処理部の処理結果を用いて、演算結果データを生成し出力する出力値処理部と、
    を備える請求項6記載のアプリロジック。
  10. 原子炉計装制御装置の安全保護系アプリロジックの構成方法であって、
    前記安全保護系アプリロジックを、形式検証言語のプロパティ記述による静的検証によりあらかじめ検証済の機能モジュールの組み合わせで構成することを特徴とする、
    アプリロジックの構成方法。
  11. 前記安全保護系アプリロジックは浮動小数点数演算を行う浮動小数点数演算ロジックを持ち、
    前記浮動小数点数演算ロジックはシミュレーションによる動的検証と形式検証言語のプロパティ記述による静的検証の両方で検証され、
    またそれら浮動小数点数演算ロジックのサブ機能モジュールは形式検証言語のプロパティ記述による静的検証で検証されることを特徴とする、
    請求項10記載のアプリロジックの構成方法。
  12. 前記安全保護系アプリロジックは演算ライブラリであるマクロロジックの組み合わせで構成され、
    前記マクロロジックの少なくとも一つはシミュレーションによる動的検証と形式検証言語のプロパティ記述による静的検証の両方で検証され、
    またそれらマクロロジックのサブ機能モジュールの少なくとも一つもまたシミュレーションによる動的検証と形式検証言語のプロパティ記述による静的検証の両方で検証されることを特徴とする、
    請求項10記載のアプリロジックの構成方法。
  13. 前記安全保護系アプリロジックはマクロロジック演算制御部とマクロロジック演算データ記憶領域とマクロ演算順序記憶領域を持ち、
    前記マクロ演算順序記憶領域に保存された演算順序にしたがって前記マクロロジック演算制御部は前記マクロロジックを呼び出し、
    前記マクロロジックは前記マクロロジック演算データ記憶領域から入力データを受信し出力データを書き込むことを特徴とする、
    請求項12記載のアプリロジックの構成方法。
  14. グラフィカル・ユーザ・インターフェースによるモデルベースのアプリ開発環境を用い、
    前記アプリ開発環境はアプリ演算の構成要素である演算マクロのライブラリを利用可能であり、
    前記アプリ開発環境は前記演算マクロの実行順序を指定する機能を有し、
    前記演算マクロの実行順序の情報を用いて前記マクロ演算順序記憶領域に前記マクロロジックの実行順序を記載することを特徴とする、
    請求項13記載のアプリロジックの構成方法。
  15. 前記演算マクロのライブラリを構成する個々の演算マクロにはそれぞれ一対一で対応する前記マクロロジックが存在し、
    前記演算マクロを前記マクロロジックに置き換えることで前記安全保護系アプリロジックを構成し、
    前記演算マクロと前記マクロロジックの演算内容が等価であることを前記動的検証もしくは前記静的検証により検証することを特徴とする、
    請求項14記載のアプリロジックの構成方法。
JP2016117505A 2016-06-14 2016-06-14 アプリロジックおよびその検証方法 Active JP6721423B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016117505A JP6721423B2 (ja) 2016-06-14 2016-06-14 アプリロジックおよびその検証方法
CN201710271230.5A CN107506509B (zh) 2016-06-14 2017-04-18 应用逻辑及其验证方法和构成方法
EP17169381.5A EP3258470B1 (en) 2016-06-14 2017-05-04 Application logic, and verification method and configuration method thereof
US15/621,519 US10929273B2 (en) 2016-06-14 2017-06-13 Application logic, and verification method and configuration method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016117505A JP6721423B2 (ja) 2016-06-14 2016-06-14 アプリロジックおよびその検証方法

Publications (2)

Publication Number Publication Date
JP2017224060A true JP2017224060A (ja) 2017-12-21
JP6721423B2 JP6721423B2 (ja) 2020-07-15

Family

ID=58692364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016117505A Active JP6721423B2 (ja) 2016-06-14 2016-06-14 アプリロジックおよびその検証方法

Country Status (4)

Country Link
US (1) US10929273B2 (ja)
EP (1) EP3258470B1 (ja)
JP (1) JP6721423B2 (ja)
CN (1) CN107506509B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185301A (ja) * 2018-04-06 2019-10-24 株式会社日立製作所 演算器の検証装置
JP7435951B2 (ja) 2021-12-21 2024-02-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 集積回路チップ検証のための浮動小数点数生成方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム
JP7446123B2 (ja) 2020-02-19 2024-03-08 三菱電機株式会社 制御装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112462731B (zh) * 2020-10-16 2022-06-24 北京西南交大盛阳科技股份有限公司 安全监督控制方法、安全监督控制装置、计算机设备及安全监督系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
JP2005249609A (ja) * 2004-03-04 2005-09-15 Toshiba Corp 安全保護計装システムおよびその取扱方法
JP2006236214A (ja) * 2005-02-28 2006-09-07 Toshiba Corp 安全系装置の検証方法およびその検証方法で検証された安全系装置
JP2006309576A (ja) * 2005-04-28 2006-11-09 Canon Inc 論理システムの検証装置及び検証方法、記憶媒体及びコンピュータプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297151A (en) * 1992-06-17 1994-03-22 International Business Machines Corporation Adjustable weighted random test pattern generator for logic circuits
US5586156A (en) * 1995-07-14 1996-12-17 General Electric Company Reactor protection system with automatic self-testing and diagnostic
DE69618160T2 (de) * 1995-07-14 2002-09-05 Gen Electric Reaktorschutzsystem
US5621776A (en) * 1995-07-14 1997-04-15 General Electric Company Fault-tolerant reactor protection system
US6519696B1 (en) * 2000-03-30 2003-02-11 I.P. First, Llc Paired register exchange using renaming register map
US7260794B2 (en) * 2002-12-20 2007-08-21 Quickturn Design Systems, Inc. Logic multiprocessor for FPGA implementation
CN101694643B (zh) * 2003-09-30 2012-10-10 明导公司 使用一个或多个自动机的系统验证
US7334203B2 (en) * 2004-10-01 2008-02-19 Dynetix Design Solutions, Inc. RaceCheck: a race logic analyzer program for digital integrated circuits
US8041554B1 (en) * 2007-06-06 2011-10-18 Rockwell Collins, Inc. Method and system for the development of high-assurance microcode
US20090144669A1 (en) * 2007-11-29 2009-06-04 International Business Machines Corporation Method and arrangement for enhancing process variability and lifetime reliability through 3d integration
US7850127B2 (en) * 2008-03-11 2010-12-14 Ansaldo Sts Usa, Inc. Cab signal receiver demodulator employing redundant, diverse field programmable gate arrays
JP5675208B2 (ja) * 2010-08-06 2015-02-25 三菱重工業株式会社 原子力施設の制御システム
JP5675256B2 (ja) * 2010-10-12 2015-02-25 三菱重工業株式会社 原子力施設の制御システム
US8375345B1 (en) * 2012-02-16 2013-02-12 International Business Machines Corporation Soft-bounded hierarchical synthesis
CA2922701C (en) * 2013-08-28 2021-05-04 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US9075935B2 (en) * 2013-09-19 2015-07-07 The Board Of Trustees Of The University Of Illinois Merit-based characterization of assertions in hardware design verification
US9785732B2 (en) * 2015-06-12 2017-10-10 Netspeed Systems, Inc. Verification low power collateral generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
JP2005249609A (ja) * 2004-03-04 2005-09-15 Toshiba Corp 安全保護計装システムおよびその取扱方法
JP2006236214A (ja) * 2005-02-28 2006-09-07 Toshiba Corp 安全系装置の検証方法およびその検証方法で検証された安全系装置
JP2006309576A (ja) * 2005-04-28 2006-11-09 Canon Inc 論理システムの検証装置及び検証方法、記憶媒体及びコンピュータプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185301A (ja) * 2018-04-06 2019-10-24 株式会社日立製作所 演算器の検証装置
JP7112232B2 (ja) 2018-04-06 2022-08-03 株式会社日立製作所 演算器の検証装置
JP7446123B2 (ja) 2020-02-19 2024-03-08 三菱電機株式会社 制御装置
JP7435951B2 (ja) 2021-12-21 2024-02-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 集積回路チップ検証のための浮動小数点数生成方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム

Also Published As

Publication number Publication date
CN107506509A (zh) 2017-12-22
CN107506509B (zh) 2020-08-07
EP3258470A1 (en) 2017-12-20
US10929273B2 (en) 2021-02-23
EP3258470B1 (en) 2019-12-25
US20170357567A1 (en) 2017-12-14
JP6721423B2 (ja) 2020-07-15

Similar Documents

Publication Publication Date Title
JP6721423B2 (ja) アプリロジックおよびその検証方法
US11748536B2 (en) Automated microprocessor design
KR101865666B1 (ko) 원자로노심보호계통 소프트웨어 검증용 시뮬레이션 장치 및 시스템
Jung et al. Development of field programmable gate array-based reactor trip functions using systems engineering approach
JP2005249609A (ja) 安全保護計装システムおよびその取扱方法
US20220137586A1 (en) Method, computer program and apparatus for analysing a programmable logic controller program
US8204608B2 (en) Monitoring and control apparatus
US20120060064A1 (en) Soft error verification in hardware designs
US11163579B2 (en) Instruction generation based on selection or non-selection of a special command
CN102520949B (zh) 形式化计算机联锁实现方法
US11151301B2 (en) Point-to-point module connection interface for integrated circuit generation
US10534625B1 (en) Carry chain logic in processor based emulation system
JP2017224128A (ja) 半導体lsi設計装置および設計方法
JP5818762B2 (ja) プログラマブルロジックデバイス及びその検証方法
Cousineau et al. Automated deductive verification for ladder programming
KR102325612B1 (ko) 시뮬레이터를 구현하는 방법, 장치, 기기 및 매체
Harward et al. A fault injection system for measuring soft processor design sensitivity on Virtex-5 FPGAs
CN201145858Y (zh) 一种基于工业组态的航天器测试设备
JP2005032191A (ja) 仮想テスタ、テスト装置、半導体集積回路用テストシステム、及び半導体集積回路用テストプログラムの検証方法
Borcsok et al. Implementation of a 1oo2-RISC-architecture on FPGA for safety systems
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
Cao A serial communication-based FPGA co-emulation test bench [D]
Kazakov Simulation of functioning onboard radioelectronic equipment of space vehicle using fpga
Telnov MODEL-BASED DESIGN IN SOFTWARE DEVELOPMENT FOR EMBEDDED SYSTEMS
Ozmen et al. Simulation-based testing for instrumentation and control systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200618

R150 Certificate of patent or registration of utility model

Ref document number: 6721423

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150