JP2009266160A - 検証支援プログラム、検証支援装置および検証支援方法 - Google Patents

検証支援プログラム、検証支援装置および検証支援方法 Download PDF

Info

Publication number
JP2009266160A
JP2009266160A JP2008118249A JP2008118249A JP2009266160A JP 2009266160 A JP2009266160 A JP 2009266160A JP 2008118249 A JP2008118249 A JP 2008118249A JP 2008118249 A JP2008118249 A JP 2008118249A JP 2009266160 A JP2009266160 A JP 2009266160A
Authority
JP
Japan
Prior art keywords
register
verification
path
dfg
verification target
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
JP2008118249A
Other languages
English (en)
Other versions
JP5050985B2 (ja
Inventor
Akio Matsuda
明男 松田
Ryosuke Oishi
亮介 大石
浩一郎 ▲高▼山
Koichiro Takayama
Tsuneo Nakada
恒夫 中田
Kazumichi Morizawa Rafael
カズミチ モリザワ ラファエル
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008118249A priority Critical patent/JP5050985B2/ja
Priority to US12/335,105 priority patent/US8015519B2/en
Publication of JP2009266160A publication Critical patent/JP2009266160A/ja
Application granted granted Critical
Publication of JP5050985B2 publication Critical patent/JP5050985B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】検証対象レジスタに対する検証精度を向上させること。
【解決手段】検証対象回路100に含まれるレジスタのうち、L,tの内部レジスタに着目した検証シナリオ1を生成し(ステップS101)、さらに、実装時の構成に応じて出現するSの実装依存レジスタに着目した検証シナリオ2を生成する(ステップS102)。これら2つの検証シナリオを合わせることによって検証効率の高い検証シナリオが生成される(ステップS103)。
【選択図】図1

Description

ハードウェア設計された検証支援回路に含まれるレジスタに対する検証処理を支援する分野に関する。
従来、所望の機能を実現するためハードウェア(回路)を設計した場合には、実際のハードウェア製造に移行する前段階の処理として設計内容に漏れがないかの論理検証をおこなう作業が必須となる。具体的には、ハードウェアの設計内容に沿った検証シナリオを生成し、この検証シナリオを入力した場合の出力結果を用いて論理検証をおこなっていた。
特開2006−190209号公報
しかしながら、従来の論理検証に利用する検証シナリオにはパラメータの設定に不備が多く、検証効率が低いという問題があった。たとえば、ランダムに指定されたパラメータを代入した検証シナリオを実行させる手法があるが、検証例をすべて網羅することができずに、検証漏れが生じる可能性があった。
また、パラメータとして設定可能な値の中から、最大値、最小値および典型値を指定する手法も提供されていたが、本来検証したいパスが抜けてしまうことがあった。上述のいずれの手法の場合も、パラメータとして指定される値は、ハードウェア設計の仕様によって用途や範囲が定義されてしまっている。したがって、ハードウェア内の特定のレジスタに対して網羅的にパラメータが設定された検証シナリオではないため、検証効率を向上させることはできなかった。
また、仕様書に基づいてハードウェアを設計する際に、実装時の構成に応じて、仕様書には記述されていないレジスタが配置されることがある。このように実装時にのみ登場する実装依存のレジスタに対しては、検証シナリオのパラメータが考慮されていない。したがって、設計されたハードウェアに実装依存のレジスタが存在する場合を網羅した検証はおこなわれず、検証効率を下げる一因となっていた。
上述した従来技術による問題点を解消するため、検証対象レジスタに対する検証精度を向上させる検証支援プログラム、検証支援装置および検証支援方法を提供することを目的とする。
この検証支援プログラム、検証支援装置および検証支援方法は、検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する処理と、前記検証対象回路における実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する処理と、前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出する処理と、抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出する処理と、抽出されたパスに含まれる検証対象レジスタの状態遷移を前記DFGに基づいて特定する処理と、特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する処理とパスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける処理と、関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する処理とを含むことを要件とする。
この検証支援プログラム、検証支援装置および検証支援方法によれば、任意の検証対象レジスタにおいて、検証を必要とするパスを網羅的に抽出して、検証対象パスとして当該パスの妥当性ともに出力することができる。
また、この検証支援プログラム、検証支援装置および検証支援方法は、検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する処理と、前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する処理と、取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成する処理と、生成されたCDFGから、前記検証対象回路に含まれたレジスタのうち外部からアクセス不能な内部レジスタが記述されたDFGを抽出する処理と、抽出されたDFGの中から前記内部レジスタに関するデータの流れをあらわすパスを抽出する処理と、抽出されたパスに含まれる内部レジスタの状態遷移を前記DFGに基づいて特定する処理と、特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する処理と、パスに含まれる内部レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタを算出する処理と、算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成する処理とを含むことを要件とする。
この検証支援プログラム、検証支援装置および検証支援方法によれば、検証対象回路に含まれるレジスタのうち、外部からアクセス不能な内部レジスタの検証対象パスを網羅した検証シナリオを生成することができる。
また、この検証支援プログラム、検証支援装置および検証支援方法は、検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する処理と、前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する処理と、取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成する処理と、前記CDFGに記述されているレジスタのうち、取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出する処理と、生成されたCDFGから、抽出された実装依存レジスタが記述されたDFGを抽出する処理と、抽出されたDFGの中から前記実装依存レジスタに関するデータの流れをあらわすパスを抽出する処理と、抽出されたパスに含まれる実装依存レジスタの状態遷移を前記DFGに基づいて特定する処理と、特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する処理と、前記パスに含まれる実装依存レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている実装依存レジスタにパラメータとして代入される可能性のある値を算出する処理と、算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成する処理とを含むことを用件とする。
この検証支援プログラム、検証支援装置および検証支援方法によれば、検証対象回路に含まれるレジスタのうち、実装時の構成に依存して搭載される実装依存レジスタの検証対象パスを網羅した検証シナリオを生成することができる。
この検証支援プログラム、検証支援装置および検証支援方法によれば、検証対象レジスタに対する検証精度を向上させることができるという効果を奏する。
以下に添付図面を参照して、この検証支援プログラム、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。この検証支援プログラム、検証支援装置および検証支援方法では、利用者が指定した特定のレジスタを検証対象とした網羅的なパラメータが設定された検証シナリオを生成することによって検証対象となるハードウェアの検証支援を実現する。
(検証支援処理の概要)
まず、本実施の形態にかかる検証支援処理の概要について説明する。図1は、本実施の形態にかかる検証支援処理の概要を示す説明図である。図1のように、ハードウェアの検証をおこなう場合には、検証対象となる回路(ここでは、検証対象回路100)の構成からレジスタを分類する。この分類に応じてそれぞれ異なる手順により検証シナリオを生成する。
レジスタの分類は、下記の3つに大別される。本実施の形態では、これら3つに分類されたレジスタのうち、従来検証効率の低かった2.内部レジスタと、3.実装依存レジスタとを検証対象とした検証シナリオを生成する。
1.検証対象回路の外部からアクセス可能なI/Oレジスタ
例)検証対象回路100のr1,r2
2.仕様書の記載されている内部レジスタ
例)検証対象回路100のL,t
3.実装依存で有無が決まる仕様書に記載されていない実装依存レジスタ
例)検証対象回路100のS
したがって、検証対象回路100の場合、まず、L,tの内部レジスタに着目した検証シナリオ1を生成する(ステップS101)。さらに、Sの実装依存レジスタに着目した検証シナリオ2を生成する(ステップS102)。これら2つの検証シナリオを合わせることによって検証効率の高い検証シナリオを生成することができる(ステップS103)。なお、ステップS101,102の検証シナリオ1,2の生成順は問わない。
(検証支援装置のハードウェア構成)
図2は、検証支援装置のハードウェア構成を示すブロック図である。図2において、検証支援装置200は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、通信I/F(Interface)208と、入力デバイス209と、出力デバイス210と、を備えている。また、各構成部はバス220によってそれぞれ接続されている。
ここで、CPU201は、検証支援装置200の全体の制御を司る。ROM202は、ブートプログラムや、検証支援プログラムなどの各種プログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。なお、ROM202には、検証支援プログラムによって生成された検証シナリオによる検証シミュレーションを実行する検証プログラムが記録されていてもよい。このような場合は、検証支援装置200によって検証シナリオに留まらず、実際の検証結果まで提供することができる。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
通信インターフェース(以下、「I/F」と略する。)208は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク211に接続され、このネットワーク211を介して他の装置に接続される。そして、通信I/F208は、ネットワーク211と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F208には、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス209は、検証支援装置200に対しての外部からの入力を受け付ける。入力デバイス209としては、具体的には、キーボード、マウスなどが挙げられる。
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス210は、検証支援装置200によって生成された検証シナリオや、検証シナリオによる検証結果などを出力する。出力デバイス210としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
つぎに、検証支援装置200の機能的構成について説明する。図3−1は、検証支援装置の機能的構成を示すブロック図である。検証支援装置200は、記録部301と、取得部302と、CDFG生成部303と、DFG抽出部304と、パス抽出部305と、特定部306と、判別部307と、算出部308と、シナリオ生成部309と、レジスタ抽出部310と、を含む構成である。この制御部となる機能(取得部302〜シナリオ生成部309)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、通信I/F208により、その機能を実現する。
記録部301は、検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する機能部である。DIRWマトリックスにおけるパスの妥当性に関する情報は、検証対象回路100の設計意図が反映されている。記録部301は、たとえば、磁気ディスク205や光ディスク207などによって実現される。
取得部302は、検証支援装置200の出力データであるパラメータ値付き検証シナリオを生成するための入力データを取得する機能部である。具体的に取得部302では、検証対象回路100に対する検証内容をあらわす検証シナリオ(パラメータなし)と、検証対象回路100の実装情報と、検証対象回路100の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する。なお、取得されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
CDFG生成部303は、取得部302によって取得された実装情報とレジスタリストとから、検証対象回路100の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成する機能部である。なお、生成されたCDFGは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
DFG抽出部304は、CDFG生成部303によって生成されたCDFGから、検証対象回路100に含まれたレジスタのうち検証対象レジスタとして指定されたレジスタが記述されたDFGを抽出する機能部である。ここでは、上述した内部レジスタと実装依存レジスタとの2種類の検証対象レジスタのうち、内部レジスタを検証対象レジスタとして、以下説明をおこなう。なお、実装依存レジスタを検証対象レジスタとする場合には、検証対象回路200の実装から実装依存レジスタを抽出する作業が必要となる。このレジスタの抽出についてはレジスタ抽出部310の説明の際に述べる。なお、抽出されたDFGの情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
パス抽出部305は、DFG抽出部304によって抽出されたDFGの中から内部レジスタに関するデータの流れをあらわすパスを抽出する機能部である。なお、抽出されたパスの情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
特定部306は、パス抽出部305によって抽出されたパスに含まれる検証対象レジスタの状態遷移をDFGに基づいて特定する機能部である。パスに含まれる実装依存レジスタの状態遷移とは、DIRWマトリックスにおいて説明したような、Declareと、Initializeと、Readと、Writeとの4つの状態の前状態と後状態との変化である。具体的には、DeclareからReadへの遷移、InitializeからWriteへの遷移などがあり、DFGの記述から判断することができる。なお、特定結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
判別部307は、特定部306によって特定された状態遷移がDIRWマトリックスに設定されているかを判別する機能部である。なお、判別結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
算出部308は、判別部307によってパスの状態遷移がDIRWマトリックスに設定されていると判別された場合、取得部302によって取得された検証シナリオと、CDFGとを用いて、パスに接続されている内部レジスタにパラメータとして代入される可能性のある値を算出する。算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
シナリオ生成部309は、算出部308によって算出された値を検証シナリオに設定したパラメータ値付き検証シナリオを生成する。なお、シナリオ生成部309によって生成されたパラメータ値付き検証シナリオは、たとえば、出力デバイス209においてディスプレイへの表示やプリンタへの印刷出力をおこなってもよいし、通信I/F208による外部装置へ送信してもよい。また、生成されたパラメータ値付き検証シナリオは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶してもよい。
このように、内部レジスタを検証対象レジスタとした場合は、検証支援装置200の利用者が、仕様書から特定の内部レジスタを指定すれば、この内部レジスタを網羅的に検証する検証シナリオを生成することができる。一方、実装依存レジスタの場合、仕様書には記述されていないため、あらかじめ検証対象レジスタとして指定することができない。したがって、レジスタ抽出部310によって、検証対象回路100に搭載されている実装依存レジスタを個別に抽出する必要がある。
レジスタ抽出部310は、CDFGに記述されているレジスタのうち、取得部302によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出する。具体的には、CDFGに記述されているレジスタとレジスタリストに含まれているレジスタとを比較して、重複していないレジスタが、実装依存レジスタとなる。なお、抽出された実装依存レジスタの情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
レジスタ抽出部310によって実装依存レジスタが抽出された場合、実装依存レジスタが検証対象レジスタとなる。したがって、DFG抽出部304では、CDFG生成部303によって生成されたCDFGから、レジスタ抽出部310によって抽出された実装依存レジスタに関するデータの流れが記述されたDFGを抽出する。以下、パス抽出部305〜シナリオ生成部309までにおこなわれた検証対象レジスタに関する処理は、すべて実装依存レジスタに関する処理として実行される。
なお、上述したように検証支援装置200に含まれる特定のレジスタを検証対象レジスタとして検証シナリオを生成する場合、どのようなレジスタが検証対象レジスタに設定されたとしても、核となる処理は、検証支援装置200の実装から検証を要するパス(以下「検証対象パス」という)を抽出する処理である。したがって、以下に検証対象パス抽出の手順について説明する。
図3−2は、検証対象パスの抽出手順を示すフローチャートである。図3−2のフローチャートにおいて、まず、検証対象回路100のCDFGを取得する(ステップS321)。そして、取得したCDFGから検証対象レジスタを含むDFGを抽出する(ステップS322)。このステップS322によって抽出したDFGを参照して検証対象レジスタに関するパスを抽出する(ステップS323)。
さらに、ステップS323によって抽出したパスの状態遷移を特定し(ステップS324)、特定した状態遷移がDIRWマトリックス設定されているか否かを判断する(ステップS325)。DIRWマトリックス設定されていなければ(ステップS325:No)、そのまま一連の処理を終了する。一方、DIRWマトリックスに設定されている場合(ステップS325:Yes)、DIRWマトリックスに設定されている妥当性に関する情報とともに検証対象レジスタの検証対象パスとして出力され(ステップS326)、一連の処理を終了する。
以上説明したように、本実施の形態にかかる検証支援処理では、検証対象レジスタを検証するために必要な検証対象パスを抽出することができる。さらに、設計意図が反映されたDIRWマトリックスを用意して検証対象パスと比較することによって、検証対象パスと妥当性に関する情報とが関連付けられて出力される。したがって、抽出された検証対象パスに対する網羅的に検証するための検証シナリオを容易に生成することができ、検証効率を向上させることができる。
つぎに、上述した検証対象パスの抽出処理を適用して検証効率の高い検証シナリオを生成する処理について具体例を挙げて説明する。
(検証シナリオの生成手順)
つぎに、検証シナリオの生成手順について説明する。図1にて説明したように本実施の形態では、仕様書に記載された内部レジスタと、仕様書に記載されていない実装依存レジスタとをそれぞれ検証対象として必要なパスを網羅するパラメータを設定した検証シナリオを生成する。したがって、以下内部レジスタを検証対象とした場合、実装依存レジスタを検証対象とした場合、それぞれの検証シナリオの生成手順について説明する。
<1,仕様書に記載された内部レジスタの検証>
まず、仕様書に記載された内部レジスタの検証について説明する。まず、検証シナリオ生成手順について説明する。図4は、内部レジスタを検証対象とした検証シナリオの生成手順を示すフローチャートである。ここで、実際の手順説明の前に検証シナリオ生成に用いる情報について説明する。本実施の形態は、下記のi)〜iv)の情報の入力を受け付けて検証シナリオを生成する。
i) 検証シナリオ
ii) 検証対象となるレジスタのリスト
iii)ハードウェアの実装情報
iv) DIRWマトリックス
これらの情報については個々に説明する。特にiv)DIRWマトリックスの利用は、本実施の形態の特徴的な処理となる。
図4のフローチャートでは、まず、上記の情報のうちi)〜iii)が入力されることによって、検証シナリオの中の実行範囲を特定し(ステップS401)、実装記述を解析する(ステップS402)。その後、iv)のDIRWマトリックスが入力されることによってパスを抽出する(ステップS403)。その後、検証対象となる全レジスタに対する処理が終了したか否かを判断し(ステップS404)、全レジスタに対する処理が終了するまでパスの抽出処理を繰り返す(ステップS404:Noのループ)。そして、全レジスタに対する処理が終了すると(ステップS404:Yes)、パラメータが算出され(ステップS405)、パラメータ値付き検証シナリオが生成され(ステップS406)、一連の処理を終了する。以下、各ステップの処理内容について入力される情報とともに詳細に説明する。
(実行範囲を特定:ステップS401)
ステップS401では、システム全体のRTL(Register Transfer Level:レジスタ転送レベル)記述と、システム全体の検証シナリオと、システム全体のレジスタリストとの情報が入力される(上記i)〜iii)に相当)。ここで、図5は、検証対象回路の仕様書を示す説明図である。ステップS401において入力される検証対象回路100の検証シナリオは、仕様書500の記載内容に応じて設定される。
そして、図6は、検証シナリオの記載例を示す説明図である。図6の検証シナリオ600は、図5にて説明した仕様書500を反映した検証処理によって構成されている。また、図7は、仕様書に含まれるレジスタリスト例を示す説明図である。検証シナリオ600に登場するレジスタは、それぞれレジスタリスト700に記載されたような構成になっている。さらに、図8は、RTL記述の記載例を示す説明図(内部レジスタ検証)である。このRTL記述800がハードウェアの実装情報となる。また、RTL記述800の中の記述801は、レジスタリスト700(図7参照)に記載されたレジスタに相当する。
以上説明した情報が入力されると、ステップS401ではRTL記述800の全体から検証シナリオ600によって検証を実行する範囲を抽出する。したがって、ステップS401の処理後、特定した範囲に関するRTL記述と、検証シナリオと、レジスタリストとが出力される。
なお、ステップS401における実行範囲の特定の際には、入力された情報に対して利用者が範囲抽出をおこなってもよいが、公知の技術を用いてもよい。たとえば、上記特許文献1に記載の技術を利用することによって容易に実行範囲を特定することができる。また、ステップS401の処理は、システム全体の中から利用者にとって検証を要する範囲を特定して検証支援をおこなうための選別処理となる。したがって、ステップS401によって検証支援処理全体の処理効率を向上させることができる。なお、ステップS401の処理を省略してシステム全体を検証対象としてもよい。
(実装記述の解析:ステップS402)
ステップS402では、ステップS401によって実行範囲が特定されたRTL記述(図8参照)と、レジスタリスト(図7参照)とが入力される。そして、入力されたRTL記述から制御の流れを表すCFG(Control Flow Graph)とデータの流をあらわすDFG(Data Flow Graph)とを生成する。
図9は、CFGの構成例を示す回路図(内部レジスタ検証)である。図9のCFG900は、RTL記述による制御の流れを視覚的にあらわしている。図8のRTL記述800の場合は、記述802〜808によってデータの制御がおこなわれている。したがって、CFG900の処理の流れは記述802〜808相当となる。
また、CFG900には、5つのDFGが含まれている。図10−1〜図10−5は、DFG1〜5の構成を示す回路図(内部レジスタ検証)である。図10−1〜図10−5にあらわされたレジスタは、下記のようなパラメータが付与されそれぞれ演算がおこなわれる。なお、DFG900は、図8の記述802に相当する。また、DFG1は図8の記述803に、DFG2は記述804に、DFG3は記述805に、DFG4は記述806に、DFG5は記述807,808に、それぞれ相当する。
・r1=a,r2=b,r3=c,r4=p1,r5=p2,r6=d
・t、L:内部レジスタ
・+:加算
・S:面積を求める演算
上述のように、CFGと、DFGとが生成されると、これらの生成結果を用いてさらに、CDFG(Control Data Flow Graph)が生成される。図11は、CDFGの構成例を示す回路図(内部レジスタ検証)である。図11のように、CDFG1100は、CFG(図9参照)と、DFG(図10−1〜図10−5参照)とを合成した構成となる。このCDFGの生成に関する技術として、たとえば、RTL記述から回路生成をおこなう高位合成技術を用いてもよい(松永祐介、「高位合成技術の基礎」、電子情報通信学会ソサエティ大会、2003年9月)。
さらに、図12は、CDFGのデータ構造を示す説明図(内部レジスタ検証)である。ステップS402では、最終的に、入力されたRTL記述に対応するCDFGのデータ1200を出力する。CDFGのデータ1200は、図12のようなデータ構造になっており、CFGごとに、CFG内のDFGが含まれた構造となっている。
(パスの抽出:ステップS403)
ステップS403では、ステップS402の実装記述の解析によって生成されたCDFGと、DIRWマトリックスとが入力されDIRWに対応するパスが出力される。まず、ここで、DIRWマトリックスについて説明する。図13−1は、DIRWマトリックスの状態遷移図(内部レジスタ検証)である。また、図13−2は、DIRWマトリックスを示す真理値表(内部レジスタ検証)である。
本実施の形態で利用するDIRWマトリックスとは、レジスタの状態遷移に応じたパスの状況をあらわした情報である。図13−1の状態遷移図は、検証対象となるレジスタ(ここでは内部レジスタ)において実際に起こる可能性のある下記の4つの状態の遷移例をあらわしている。
・Declare(定義)
・Initialize(初期化)
・Read(読み出し)
・Write(書き込み)
なお、図13−1の状態遷移図において、実線によって矢印が示されている遷移(たとえば、Write→Readなど)は、正しいパスを意味している。また、破線によって矢印が示されている遷移(たとえば、Write→Initializeなど)は、設計意図の確認を要するパスを意味している。また、矢印が示されていない遷移(たとえば、Declare→Readなど)は、バグとなるパスを意味している。なお、ここで説明するDIRWマトリックスの場合、Declareへの遷移は起こらないため、Declareへの遷移をあらわす矢印は存在しない。
そして、図13−1の状態遷移を図表化したものが図13−2の真理値表である。図13−2では、遷移前(before)から遷移後(after)のパスに対して、それぞれ妥当性に関する情報を3種類に分けて設定している。具体的には、正しいパスをあらわす「○」、設計意図の確認を要するパスをあらわす「△」、バグとなるパスをあらわす「×」となっている。
ステップS403では、上述したDIRWマトリックスを参照して特定の内部レジスタに関するパスを抽出する。図14は、内部レジスタtに関するパス抽出手順を示す説明図である。図14を用いて内部レジスタtに関するパス抽出手順について説明する。
ステップS402によって生成したCDFGにおいて、内部レジスタtが利用される箇所は、DFG1、DFG2、DFG4、DFG5の4箇所である。したがって、この4箇所のDFGにおける内部レジスタtのパスにおいてどのような遷移が起こっているかが抽出される。したがって、内部レジスタtの場合、下記のような抽出がおこなわれる。
・DFG1の0をtへInitializeするパス(ステップS1401)
・DFG2のtへSをWriteするパス(ステップS1402)
・DFG4のtからr6へReadするパス(ステップS1403)
・DFG5のLからtへWriteするパスとtからr6へReadするパス(ステップS1404)
ステップS403では、上述のように抽出されたパスに対してさらに、上述したパスの場合分け(×、△、○)に応じてそれぞれパスを抽出する。
まず、バグを生じる(×)パス抽出について説明する。図15は、バグを生じるパス抽出を示す説明図(内部レジスタ検証)である。図15の真理値表1500に示すように、バグを生じるパスは、Declare→Read(×1)と、Write→Write(×2)とが存在する。この2つのパスのうち、DFG2と、DFG5とにWrite→Write(×2)のパスが存在しており、バグを生じる(×)パスとして抽出される。
つぎに、設計意図の確認を要する(△)パス抽出について説明する。図16は、確認を要するパス抽出を示す説明図(内部レジスタ検証)である。図16の真理値表1600に示すように、確認を要するパスは、Declare→Write(△1)と、Initialize→Read(△2)と、Write→Initialize(△3)とが存在する。この3つのパスのうち、DFG1と、DFG4とにInitialize→Read(△2)のパスが存在しており、確認を要する(△)パスとして抽出される。
最後に、正常な(○)パス抽出について説明する。図17は、正常なパス抽出を示す説明図(内部レジスタ検証)である。図17の真理値表1700に示すように、正常なパスは、上述した5つのパス(×1,2および△1〜3)以外の7つのパスは正常なパスとなる。この7つのパスのうち、DFG1には、Declare→Initialize(○1)と、Initialize→Write(○3)が存在している。また、DFG2には、Initialize→Write(○3)と、Write→Read(○7)が存在している。また、DFG4にはWrite→Read(○7)が存在し、DFG5には、Initialize→Write(○3)と、Write→Read(○7)とが存在する。そして、これらのパスは正常な(○)パスとして抽出される。
このように、ステップS403では、DIRWマトリックスを利用して検証対象となるレジスタ(上述の例では内部レジスタt)のパスをすべて検出することができる。なお、ステップS404によって、全レジスタに対する処理が終了したか否かを判断しているように、ステップS403のパス抽出は、検証対象となるレジスタすべてに対して順次おこなわれる。したがって、検証対象回路100の場合は、内部レジスタtの他に内部レジスタLが存在するため、内部レジスタLに対しても、上述のようなパス抽出を実行する。
(パラメータの算出:ステップS405)
ステップS406では、ステップS402の実装記述の解析によって生成されたCDFGと、ステップS404およびステップS405によって抽出されたDIRWに対応するパスとが入力される。そして、ステップS405では、これら入力された情報を用いてパラメータとして代入される可能性のある値を算出する。図18は、パラメータの算出手順を示す説明図(内部レジスタ検証)である。なお、図18では、内部レジスタtに関してパラメータとして代入される可能性のある値を算出しているが、その後、他の内部レジスタ(たとえば、内部レジスタL)に関するパラメータを順次算出する。
図18に示すように、たとえば、DFG1では、I(Initialize)→R(Read)に関するパラメータの算出と、D(Declare)→I(Initialize)に関するパラメータの算出と、I(Initialize)→W(Write)に関するパラメータの算出とがおこなわれる。パラメータの算出の際には、特定の値(1/0)や任意の値がそれぞれ制御条件ごとに場合分けされ代入されることによって求められる。任意の値となるレジスタには、CDFGに記述された制御条件に応じた値が代入される。
DFG1と同様の処理がDFG2、DFG5でもおこなわれる。ステップS405におけるパラメータの算出は、検証対象パス数に応じて複雑になるが、ソルバーやMathematicaなどの既存の演算アプリケーションを利用することによって容易に実現することができる。生成されたパラメータは、つぎのステップS406のパラメータ値付き検証シナリオ生成に利用される。
(パラメータ値付き検証シナリオの生成:ステップS406)
図19は、パラメータが設定された検証シナリオの出力例を示す図表(内部レジスタ検証)である。ステップS406では、ステップS401によって実行範囲が特定された検証シナリオと、ステップS405によって算出されたパラメータが入力される。そして、検証シナリオにパラメータを設定して、図19のようにパラメータ値付き検証シナリオ1900として出力する。
<2,実装時にのみあらわれる実装依存レジスタの検証>
つぎに、実装時にのみあらわれる内部レジスタの検証について説明する。実装依存レジスタの検証の場合は、上述したように、実装依存レジスタを抽出する作業が必要となる。したがって、実装依存レジスタ抽出を含んだ検証シナリオの生成手順を説明する。なお、以下説明では、iv)DIRWマトリックスと、iii)ハードウェアの実装情報(実装依存レジスタを含んだ例)のみ内部レジスタの検証とは異なるものを利用するが、他の入力情報(i)検証シナリオ、ii)検証対象となるレジスタのリスト)については同じものを扱う。
図20は、実装依存レジスタを検証対象とした検証シナリオの生成手順を示すフローチャートである。図20のフローチャートでは、まず、上記の情報のうちi)〜iii)が入力されることによって、検証シナリオの中の実行範囲を特定し(ステップS2001)、実装記述を解析する(ステップS2002)。その後、実装依存レジスタを抽出する処理(2000)がおこなわれる。
まず、実装からDFGに記載されたレジスタのレジスタリストを生成する(ステップS2003)、そして、ステップS2003によって生成されたレジスタリストとステップS2001において入力されたii)検証対象となるレジスタのリストとを比較し(ステップS2004)、実装依存レジスタが抽出される。その後、この実装依存レジスタについてパスを抽出し(ステップS2005)、検証対象となる全レジスタ(実装依存レジスタ)に対する処理が終了したか否かを判断し(ステップS2006)、全レジスタに対する処理が終了するまでパスの抽出処理を繰り返す(ステップS2006:Noのループ)。そして、全レジスタに対する処理が終了すると(ステップS2006:Yes)、パラメータ値が算出され(ステップS2007)、パラメータ値付き検証シナリオが生成され(ステップS2008)、一連の処理を終了する。以下、各ステップの処理内容について入力される情報とともに説明する。
(実行範囲を特定:ステップS2001)
ステップS2001では、システム全体のRTL記述と、システム全体の検証シナリオと、システム全体のレジスタリストとの情報が入力される(上記i)〜iii)に相当)。図21は、実装依存レジスタを含むRTL記述の記載例を示す説明図である。図21は、実装依存レジスタを含んだRTL記述の例であり、RTL記述2100における記述2101が実装依存レジスタをあらわす記述である。
以上説明した情報が入力されると、ステップS2001ではRTL記述2100の全体から検証シナリオ600によって検証を実行する範囲を抽出する。したがって、ステップS2001の処理後、特定した範囲に関するRTL記述と、検証シナリオと、レジスタリストとが出力される。
(実装記述の解析:ステップS2002)
ステップS2002では、ステップS2001によって実行範囲が特定されたRTL記述(図21参照)と、レジスタリスト(図7参照)とが入力される。そして、入力されたRTL記述から制御の流れを表すCFGとデータの流をあらわすDFGとを生成する。
図22は、CFGの構成例を示す回路図(実装依存レジスタ検証)である。また、図23−1〜図23−5は、DFG1〜5の構成を示す回路図(実装依存レジスタ検証)である。図23−1〜図23−5にあらわされたレジスタは、内部レジスタに関する検証と同様に各パラメータが付与されそれぞれ演算がおこなわれる。なお、DFG2200は、図21の記述2102に相当する。また、DFG1は図21の記述2103に、DFG2は記述2104に、DFG3は記述2105に、DFG4は記述2106に、DFG5は記述2107に、それぞれ相当する。そして、CFGと、DFGとが生成されると、これらの生成結果を用いてさらに、CDFG(Control Data Flow Graph)が生成される。
(実装に応じたレジスタリストの生成:ステップS2003)
ステップS2003では、ステップS2002によって生成されたCDFGが入力される。そして、入力されたCDFGの中から検証対象回路100に実装されているレジスタをあらわすレジスタリストを生成する。図24は、DFGに関連するレジスタリストの生成を示す図表である。図24のように、レジスタリスト2400は、CDFGの記述から生成されるため仕様書に含まれるレジスタをあらわすレジスタリスト700(図7参照)とは、異なる構成となっている。
(レジスタリストの比較・抽出:ステップS2004)
ステップS2004では、ステップS2003によって生成されたに実装レジスタをあらわすレジスタリストと、ステップS2001によって入力されたii)検証対象となるレジスタのレジスタリストとの比較をおこない、実装依存レジスタを抽出する。
図25は、レジスタリストの比較手順を示す説明図である。図25においてリストaは、実装されているレジスタをあらわしている、また、リストbは、ii)検証対象となるレジスタのレジスタリストをあらわしている。この2つのリストを比較し、重複しないレジスタをリストaから抽出する。なお、重複しないレジスタとは、片方のレジスタリストにのみ含まれているレジスタ(たとえば、レジスタtmp_reg)のみならず、比較したレジスタ同士で型や種類などの属性が異なるレジスタ(たとえばレジスタt)も含む。
したがって、ステップS2003によって検証対象回路100の実装に対応した実装依存レジスタリストを生成することができる。図26は、実装依存レジスタリストを示す図表である。図26のレジスタリスト2600では、実装依存レジスタと仕様書に含まれるレジスタとを網羅したリストとなっている。また、実装と仕様書とで属性の異なるレジスタは、実装された属性が反映されている。このようなレジスタリスト2600を参照することによって実装依存レジスタが抽出される。また、レジスタリスト2600の中の実装依存レジスタには抽出を容易にするために専用のフラグを付けておいてもよい。
(パスの抽出:ステップS2005、2006)
ステップS2005では、ステップS2002の実装記述の解析によって生成されたCDFGと、DIRWマトリックスと、ステップS2004によって抽出された実装依存レジスタとが入力されDIRWに対応するパスが出力される。図27−1は、DIRWマトリックスの状態遷移図(実装依存レジスタ検証)である。また、図27−2は、DIRWマトリックスを示す真理値表(実装依存レジスタ検証)である。このDIRWマトリックスは、図13−1、図13−2とW→Wのパスに関する妥当性が異なる設定になっている。
また、図28は、実装依存レジスタtmp_regに関するパス抽出手順を示す説明図である。生成されたCDFGにおいて、実装依存レジスタtmp_regが利用される箇所は、DFG2、DFG3の2箇所である。したがって、この2箇所のDFGにおける実装依存レジスタtmp_regのパスにおいてどのような遷移が起こっているかが抽出される。したがって、実装依存レジスタtmp_regの場合、下記のような抽出がおこなわれる。
・DFG2のSからtmp_regへWriteするパス(ステップS2801)
・DFG2のtmp_regからtへReadするパス(ステップS2801)
・DFG3のtmp_regからtへReadするパス(ステップS2802)
ステップS2005では、上述のように抽出されたパスに対してさらに、上述したパスの場合分け(×、△、○)に応じてそれぞれパスを抽出する。
まず、バグを生じる(×)パス抽出について説明する。図29は、バグを生じるパス抽出を示す説明図(実装依存レジスタ検証)である。図29の真理値表2900に示すように、バグを生じるパスは、Declare→Read(×1)が存在し、この遷移がDFG3のパスに存在しており、バグを生じる(×)パスとして抽出される。
つぎに、設計意図の確認を要する(△)パス抽出について説明する。図30は、確認を要するパス抽出を示す説明図(実装依存レジスタ検証)である。図30の真理値表3000に示すように、確認を要するパスは、Declare→Write(△1)と、Write→Initialize(△2)と、Write→Write(△3)とが存在する。この3つのパスのうち、DFG2におけるパスが、確認を要する(△)パスとして抽出される。
最後に、正常な(○)パス抽出について説明する。図31は、正常なパス抽出を示す説明図(実装依存レジスタ検証)である。図31の真理値表3100に示すように、正常なパスは、上述した4つのパス(×1および△1〜3)以外の8つのパスは正常なパスとなる。この7つのパスのうち、DFG2におけるパスが正常な(○)パスとして抽出される。
このように、ステップS2005では、DIRWマトリックスを利用して検証対象となるレジスタ(上述の例では実装依存レジスタtmp_reg)のパスをすべて検出することができる。
(パラメータの算出:ステップS2007)
ステップS2007では、ステップS2002の実装記述の解析によって生成されたCDFGと、ステップS2005およびステップS2006によって抽出されたDIRWに対応するパスとが入力される。そして、ステップS2007では、これら入力された情報を用いてパラメータとして代入される可能性のある値を算出する。図32は、パラメータの算出手順を示す説明図(実装依存レジスタ検証)である。なお、図32では、実装依存レジスタtmp_regに関してパラメータとして代入される可能性のある値を算出しているが、その後、他の実装依存レジスタ(たとえば、実装依存レジスタt)に関するパラメータを順次算出する。
図32に示すように、たとえば、DFG2では、D→Wに関するパラメータの算出と、W→Rに関するパラメータの算出がおこなわれる。また、DFG3においても、同様に、D→Rに関するパラメータの算出がおこなわれる。
(パラメータ値付き検証シナリオの生成:ステップS2008)
図33は、パラメータが設定された検証シナリオの出力例を示す図表(実装依存レジスタ検証)である。ステップS2008では、ステップS2001によって実行範囲が特定された検証シナリオと、ステップS2007によって算出されたパラメータが入力される。そして、検証シナリオにパラメータを設定して、図33のようにパラメータ値付き検証シナリオ3300として出力する。
なお、上述したパラメータ値付き検証シナリオの生成手順の説明では、内部レジスタを扱う場合と、実装依存レジスタを扱う場合とはそれぞれ独立した処理としていたが、一連の処理として扱うこともできる。図34は、内部レジスタと実装依存レジスタとを検証対象とした検証シナリオの生成手順を示すフローチャートである。
図34のフローチャートにおいて、ステップS3401〜ステップS3404の処理によって実装依存レジスタを抽出したのち、ステップS3405〜ステップS3408によって任意の検証対処レジスタ(内部レジスタや実装依存レジスタのうち指定されたレジスタ)を検証するパラメータ値付き検証シナリオを生成することができる(ステップS3409)。
以上説明したように、本実施の形態によれば、検証対象レジスタを検証するために必要な検証対象パスを抽出する。そして、抽出したパスの妥当性を考慮した網羅的な検証をおこなうためのパラメータ値付き検証シナリオを生成することができる。このようなパラメータ値付き検証シナリオを用いて検証対象回路100の検証をおこなうことによって検証効率を向上させることができる。
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明した検証支援装置200は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証支援装置200の機能(記録部301〜レジスタ抽出部310)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置200を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得手段、
前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得手段によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出手段、
前記DFG抽出手段によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段、
前記特定手段によって特定されたパスの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け手段、
前記関連付け手段によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力手段、
として機能させる検証支援プログラム。
(付記2)コンピュータを、
検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段、
前記CDFG生成手段によって生成されたCDFGから、前記検証対象回路に含まれたレジスタのうち外部からアクセス不能な内部レジスタが記述されたDFGを抽出するDFG抽出手段、
前記DFG抽出手段によって抽出されたDFGの中から前記内部レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段、
前記特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタにパラメータとして代入される可能性のある値を算出する算出手段、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段、
として機能させることを特徴とする検証支援プログラム。
(付記3)コンピュータを、
検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段、
前記CDFGに記述されているレジスタのうち、前記取得手段によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出手段、
前記CDFG生成手段によって生成されたCDFGから、前記レジスタ抽出手段によって抽出された実装依存レジスタが記述されたDFGを抽出するDFG抽出手段、
前記DFG抽出手段によって抽出されたDFGの中から前記実装依存レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出手段、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段、
として機能させることを特徴とする検証支援プログラム。
(付記4)コンピュータを、
検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段、
前記CDFGに記述されているレジスタのうち、前記取得手段によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出手段、
前記CDFG生成手段によって生成されたCDFGから、外部からアクセス不能な内部レジスタと、前記レジスタ抽出手段によって抽出された実装依存レジスタとが記述されたDFGを抽出するDFG抽出手段、
前記DFG抽出手段によって抽出されたDFGの中から前記内部レジスタと、実装依存レジスタとに関するデータの流れをあらわすパスを抽出するパス抽出手段、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段、
前記特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタまたは実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出手段、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段、
として機能させることを特徴とする検証支援プログラム。
(付記5)前記CDFG生成手段は、前記取得手段が、前記検証対象回路の中の検証対象となる範囲が限定された検証シナリオ、実装情報およびレジスタリストと取得した場合、前記範囲限定手段から出力された前記検証対象となる範囲に限定された特定された実装情報およびレジスタリストとから、前記検証対象回路のCDFGを生成し、
前記算出手段は、前記検証対象となる範囲が限定された検証シナリオと前記CDFGとを用いて、前記パラメータを算出することを特徴とする付記2〜4のいずれか一つに記載の検証支援プログラム。
(付記6)前記DFG抽出手段は、前記CDFG生成手段によって生成されたCDFGから、任意の検証対象レジスタに関するデータの流れが記述されたDFGを抽出し、
前記パス抽出手段は、前記DFG抽出手段によって抽出されたDFGの中から前記任意の検証対象レジスタに関するデータの流れをあらわすパスを抽出し、
前記特定手段は、前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定し、
前記判別手段は、特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別し、
前記算出手段は、前記判別手段によって、前記DIRWマトリックスに設定されていると判別されたパスを前記任意の検証対象レジスタの検証対象パスとして、前記取得手段によって取得された検証シナリオと前記CDFGとに基づいて、前記任意の検証対象レジスタに代入される可能性のあるパラメータを算出することを特徴とする付記2〜5のいずれか一つに記載の検証支援プログラム。
(付記7)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段と、
前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得手段と、
前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得手段によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出手段と、
前記DFG抽出手段によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段と、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段と、
前記特定手段によって特定されたパスの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段と、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け手段と、
前記関連付け手段によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力手段と、
を備えることを特徴とする検証支援装置。
(付記8)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段と、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段と、
前記CDFG生成手段によって生成されたCDFGから、前記検証対象回路に含まれたレジスタのうち外部からアクセス不能な内部レジスタが記述されたDFGを抽出するDFG抽出手段と、
前記DFG抽出手段によって抽出されたDFGの中から前記内部レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段と、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段と、
前記特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段と、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタにパラメータとして代入される可能性のある値を算出する算出手段と、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段と、
を備えることを特徴とする検証支援装置。
(付記9)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段と、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段と、
前記CDFGに記述されているレジスタのうち、前記取得手段によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出手段と、
前記CDFG生成手段によって生成されたCDFGから、前記レジスタ抽出手段によって抽出された実装依存レジスタが記述されたDFGを抽出するDFG抽出手段と、
前記DFG抽出手段によって抽出されたDFGの中から前記実装依存レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段と、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段と、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出手段と、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段と、
を備えることを特徴とする検証支援装置。
(付記10)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段と、
前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段と、
前記CDFGに記述されているレジスタのうち、前記取得手段によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出手段と、
前記CDFG生成手段によって生成されたCDFGから、外部からアクセス不能な内部レジスタと、前記レジスタ抽出手段によって抽出された実装依存レジスタとが記述されたDFGを抽出するDFG抽出手段と、
前記DFG抽出手段によって抽出されたDFGの中から前記内部レジスタと、実装依存レジスタとに関するデータの流れをあらわすパスを抽出するパス抽出手段、
前記パス抽出手段によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定手段と、
前記特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段と、
前記判別手段によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタまたは実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出手段と、
前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段と、
を備えることを特徴とする検証支援装置。
(付記11)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスをメモリに記録する記録工程と、
前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得工程と、
前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得工程によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出工程と、
前記DFG抽出工程によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出工程と、
前記パス抽出工程によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定工程と、
前記特定工程によって特定されたパスの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別工程と、
前記判別工程によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け工程と、
前記関連付け工程によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力工程と、
を含むことを特徴とする検証支援方法。
(付記12)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスをメモリに記録する記録工程と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得工程と、
前記取得工程によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成工程と、
前記CDFG生成工程によって生成されたCDFGから、前記検証対象回路に含まれたレジスタのうち外部からアクセス不能な内部レジスタが記述されたDFGを抽出するDFG抽出工程と、
前記DFG抽出工程によって抽出されたDFGの中から前記内部レジスタに関するデータの流れをあらわすパスを抽出するパス抽出工程と、
前記パス抽出工程によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定工程と、
前記特定工程によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別工程と、
前記判別工程によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得工程によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタにパラメータとして代入される可能性のある値を算出する算出工程と、
前記算出工程によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成工程と、
を含むことを特徴とする検証支援方法。
(付記13)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスをメモリに記録する記録工程と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得工程と、
前記取得工程によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成工程と、
前記CDFGに記述されているレジスタのうち、前記取得工程によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出工程と、
前記CDFG生成工程によって生成されたCDFGから、前記レジスタ抽出工程によって抽出された実装依存レジスタが記述されたDFGを抽出するDFG抽出工程と、
前記DFG抽出工程によって抽出されたDFGの中から前記実装依存レジスタに関するデータの流れをあらわすパスを抽出するパス抽出工程と、
前記パス抽出工程によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定工程と、
前記判別工程によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得工程によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出工程と、
前記算出工程によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成工程と、
を含むことを特徴とする検証支援方法。
(付記14)検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスをメモリに記録する記録工程と、
前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得工程と、
前記取得工程によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成工程と、
前記CDFGに記述されているレジスタのうち、前記取得工程によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出工程と、
前記CDFG生成工程によって生成されたCDFGから、外部からアクセス不能な内部レジスタと、前記レジスタ抽出工程によって抽出された実装依存レジスタとが記述されたDFGを抽出するDFG抽出工程と、
前記DFG抽出工程によって抽出されたDFGの中から前記内部レジスタと、実装依存レジスタとに関するデータの流れをあらわすパスを抽出するパス抽出工程、
前記パス抽出工程によって抽出されたパスの状態遷移を前記DFGに基づいて特定する特定工程と、
前記特定工程によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別工程と、
前記判別工程によって前記パスの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得工程によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタまたは実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出工程と、
前記算出工程によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成工程と、
を含むことを特徴とする検証支援方法。
本実施の形態にかかる検証支援処理の概要を示す説明図である。 検証支援装置のハードウェア構成を示すブロック図である。 検証支援装置の機能的構成を示すブロック図である。 検証対象パスの抽出手順を示すフローチャートである。 内部レジスタを検証対象とした検証シナリオの生成手順を示すフローチャートである。 検証対象回路の仕様書を示す説明図である。 検証シナリオの記載例を示す説明図である。 仕様書に含まれるレジスタリスト例を示す説明図である。 RTL記述の記載例を示す説明図(内部レジスタ検証)である。 CFGの構成例を示す回路図(内部レジスタ検証)である。 DFG1の構成を示す回路図(内部レジスタ検証)である。 DFG2の構成を示す回路図(内部レジスタ検証)である。 DFG3の構成を示す回路図(内部レジスタ検証)である。 DFG4の構成を示す回路図(内部レジスタ検証)である。 DFG5の構成を示す回路図(内部レジスタ検証)である。 CDFGの構成例を示す回路図(内部レジスタ検証)である。 CDFGのデータ構造を示す説明図(内部レジスタ検証)である。 DIRWマトリックスの状態遷移図(内部レジスタ検証)である。 DIRWマトリックスを示す真理値表(内部レジスタ検証)である。 内部レジスタtに関するパス抽出手順を示す説明図である。 バグを生じるパス抽出を示す説明図(内部レジスタ検証)である。 確認を要するパス抽出を示す説明図(内部レジスタ検証)である。 正常なパス抽出を示す説明図(内部レジスタ検証)である。 パラメータの算出手順を示す説明図(内部レジスタ検証)である。 パラメータが設定された検証シナリオの出力例を示す図表(内部レジスタ検証)である。 実装依存レジスタを検証対象とした検証シナリオの生成手順を示すフローチャートである。 実装依存レジスタを含むRTL記述の記載例を示す説明図である。 CFGの構成例を示す回路図(実装依存レジスタ検証)である。 DFG1の構成を示す回路図(実装依存レジスタ検証)である。 DFG2の構成を示す回路図(実装依存レジスタ検証)である。 DFG3の構成を示す回路図(実装依存レジスタ検証)である。 DFG4の構成を示す回路図(実装依存レジスタ検証)である。 DFG5の構成を示す回路図(実装依存レジスタ検証)である。 DFGに関連するレジスタリストの生成を示す図表である。 レジスタリストの比較手順を示す説明図である。 実装依存レジスタリストを示す図表である。 DIRWマトリックスの状態遷移図(実装依存レジスタ検証)である。 DIRWマトリックスを示す真理値表(実装依存レジスタ検証)である。 実装依存レジスタtmp_regに関するパス抽出手順を示す説明図である。 バグを生じるパス抽出を示す説明図(実装依存レジスタ検証)である。 確認を要するパス抽出を示す説明図(実装依存レジスタ検証)である。 正常なパス抽出を示す説明図(実装依存レジスタ検証)である。 パラメータの算出手順を示す説明図(実装依存レジスタ検証)である。 パラメータが設定された検証シナリオの出力例を示す図表(実装依存レジスタ検証)である。 内部レジスタと実装依存レジスタとを検証対象とした検証シナリオの生成手順を示すフローチャートである。
符号の説明
100 検証対象回路
200 検証支援装置
301 記録部
302 取得部
303 CDFG生成部
304 DFG抽出部
305 パス抽出部
306 特定部
307 判別部
308 算出部
309 シナリオ生成部
310 レジスタ抽出部

Claims (5)

  1. コンピュータを、
    検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
    前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得手段、
    前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得手段によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出手段、
    前記DFG抽出手段によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
    前記パス抽出手段によって抽出されたパスに含まれる検証対象レジスタの状態遷移を前記DFGに基づいて特定する特定手段、
    前記特定手段によって特定されたパスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段、
    前記判別手段によって前記パスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け手段、
    前記関連付け手段によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力手段、
    として機能させる検証支援プログラム。
  2. コンピュータを、
    検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
    前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段、
    前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段、
    前記CDFG生成手段によって生成されたCDFGから、前記検証対象回路に含まれたレジスタのうち外部からアクセス不能な内部レジスタが記述されたDFGを抽出するDFG抽出手段、
    前記DFG抽出手段によって抽出されたDFGの中から前記内部レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
    前記パス抽出手段によって抽出されたパスに含まれる内部レジスタの状態遷移を前記DFGに基づいて特定する特定手段、
    前記特定手段によって特定された状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段、
    前記判別手段によって前記パスに含まれる内部対象レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている内部レジスタにパラメータとして代入される可能性のある値を算出する算出手段、
    前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段、
    として機能させることを特徴とする検証支援プログラム。
  3. コンピュータを、
    検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段、
    前記検証対象回路に対する検証内容をあらわす検証シナリオと、前記検証対象回路の実装情報と、前記検証対象回路の仕様書に含まれるレジスタの属性をあらわすレジスタリストとを取得する取得手段、
    前記取得手段によって取得された実装情報とレジスタリストとから、前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を生成するCDFG生成手段、
    前記CDFGに記述されているレジスタのうち、前記取得手段によって取得されたレジスタリストに含まれていないレジスタを実装時の構成に依存して搭載される実装依存レジスタとして抽出するレジスタ抽出手段、
    前記CDFG生成手段によって生成されたCDFGから、前記レジスタ抽出手段によって抽出された実装依存レジスタが記述されたDFGを抽出するDFG抽出手段、
    前記DFG抽出手段によって抽出されたDFGの中から前記実装依存レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段、
    前記パス抽出手段によって抽出されたパスに含まれる実装依存レジスタの状態遷移を前記DFGに基づいて特定する特定手段、
    前記判別手段によって前記パスに含まれる実装依存レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、前記取得手段によって取得された検証シナリオと前記CDFGとを用いて、前記パスに接続されている実装依存レジスタにパラメータとして代入される可能性のある値を算出する算出手段、
    前記算出手段によって算出された値を前記検証シナリオに設定したパラメータ値付き検証シナリオを生成するシナリオ生成手段、
    として機能させることを特徴とする検証支援プログラム。
  4. 検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスを記録する記録手段と、
    前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得手段と、
    前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得手段によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出手段と、
    前記DFG抽出手段によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出手段と、
    前記パス抽出手段によって抽出されたパスに含まれる検証対象レジスタの状態遷移を前記DFGに基づいて特定する特定手段と、
    前記特定手段によって特定されたパスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別手段と、
    前記判別手段によって前記パスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け手段と、
    前記関連付け手段によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力手段と、
    を備えることを特徴とする検証支援装置。
  5. 検証対象回路に含まれるレジスタにおいてDeclareと、Initializeと、Readと、Writeとの4つの状態の中から生じる可能性のある状態遷移と当該状態遷移に応じたパスの妥当性に関する情報とが設定されたDIRWマトリックスをメモリに記録する記録工程と、
    前記検証対象回路の実装時における制御の流れが記述されたCFG(Control Flow Graph)に当該CFG内のデータの流れが記述されたDFG(Data Flow Graph)が書き込まれたCDFG(Control Data Flow Graph)を取得する取得工程と、
    前記検証対象回路の中の任意のレジスタが検証対象レジスタに指定された場合、前記取得工程によって取得されたCDFGから、前記検証対象レジスタが記述されたDFGを抽出するDFG抽出工程と、
    前記DFG抽出工程によって抽出されたDFGの中から前記検証対象レジスタに関するデータの流れをあらわすパスを抽出するパス抽出工程と、
    前記パス抽出工程によって抽出されたパスに含まれる検証対象レジスタの状態遷移を前記DFGに基づいて特定する特定工程と、
    前記特定工程によって特定されたパスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されているかを判別する判別工程と、
    前記判別工程によって前記パスに含まれる検証対象レジスタの状態遷移が前記DIRWマトリックスに設定されていると判別された場合、当該パスを前記検証対象レジスタの検証対象パスとして前記DIRWマトリックスに設定されている妥当性に関する情報関連付ける関連付け工程と、
    前記関連付け工程によって関連付けられた前記検証対象パスと前記妥当性に関する情報とを出力する出力工程と、
    を含むことを特徴とする検証支援方法。
JP2008118249A 2008-04-30 2008-04-30 検証支援プログラム、検証支援装置および検証支援方法 Expired - Fee Related JP5050985B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008118249A JP5050985B2 (ja) 2008-04-30 2008-04-30 検証支援プログラム、検証支援装置および検証支援方法
US12/335,105 US8015519B2 (en) 2008-04-30 2008-12-15 Verification supporting apparatus, verification supporting method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008118249A JP5050985B2 (ja) 2008-04-30 2008-04-30 検証支援プログラム、検証支援装置および検証支援方法

Publications (2)

Publication Number Publication Date
JP2009266160A true JP2009266160A (ja) 2009-11-12
JP5050985B2 JP5050985B2 (ja) 2012-10-17

Family

ID=41257965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008118249A Expired - Fee Related JP5050985B2 (ja) 2008-04-30 2008-04-30 検証支援プログラム、検証支援装置および検証支援方法

Country Status (2)

Country Link
US (1) US8015519B2 (ja)
JP (1) JP5050985B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003281A (ja) * 2008-05-19 2010-01-07 Fujitsu Ltd 検証支援プログラム、検証支援装置および検証支援方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6201382B2 (ja) * 2013-04-05 2017-09-27 株式会社ソシオネクスト 論理検証装置及び論理検証方法
US20150332482A1 (en) * 2014-05-16 2015-11-19 Microsoft Corporation Detecting conformance of graphical output data from an application to a convention
CN114880045A (zh) * 2022-05-13 2022-08-09 海光信息技术股份有限公司 寄存器配置方法、装置及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262045A (ja) * 1990-03-12 1991-11-21 Oki Electric Ind Co Ltd ハードウエア設計言語からのテストデータ生成方式
JP2001101250A (ja) * 1999-09-30 2001-04-13 Matsushita Electric Ind Co Ltd 検証項目抽出方法、再利用コア検証方法、検証判断方法、および再利用テストベンチ編集方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001507772A (ja) * 1996-10-23 2001-06-12 フォード、グローバル、テクノロジーズ、インコーポレーテッド ビットシリアルに基くリカレント・ニューロプロセッサーを含む自動車用エンジンの失火検出システム
US6707463B1 (en) * 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US7017043B1 (en) * 1999-03-19 2006-03-21 The Regents Of The University Of California Methods and systems for the identification of circuits and circuit designs
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6721937B2 (en) * 2000-06-06 2004-04-13 Fujitsu Network Communications, Inc. Method and system for automated processor register instantiation
ATE367700T1 (de) * 2002-04-16 2007-08-15 Bosch Gmbh Robert Verfahren und einheit zur bitstromdekodierung
GB0215034D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Architecture generation method
US20050289518A1 (en) * 2002-10-15 2005-12-29 Tadaaki Tanimoto Compiler and logic circuit design method
DE60336677D1 (de) * 2002-12-02 2011-05-19 Silverbrook Res Pty Ltd Totdüsenausgleich
JP4175953B2 (ja) * 2003-05-23 2008-11-05 シャープ株式会社 高位合成装置、ハードウェア検証用モデル生成方法、ハードウェア検証方法、制御プログラムおよび可読記録媒体
US7565631B1 (en) * 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
US7366807B1 (en) * 2004-08-27 2008-04-29 Xilinx, Inc. Network media access controller embedded in a programmable logic device—statistics interface
US7143218B1 (en) * 2004-08-27 2006-11-28 Xilinx, Inc. Network media access controller embedded in a programmable logic device-address filter
US7509599B1 (en) * 2004-12-10 2009-03-24 Synopsys, Inc Method and apparatus for performing formal verification using data-flow graphs
JP4217220B2 (ja) 2005-01-07 2009-01-28 富士通株式会社 検証支援プログラムおよび検証支援装置
US20060200720A1 (en) * 2005-03-01 2006-09-07 David Grimme Generating and verifying read and write cycles in a PCI bus system
GB0519984D0 (en) * 2005-09-30 2005-11-09 Texas Instruments Ltd Configuration interface
JP4393450B2 (ja) * 2005-12-01 2010-01-06 株式会社東芝 論理回路モデル変換装置及び論理回路モデル変換プログラム
US8364456B2 (en) * 2008-01-10 2013-01-29 The Mathworks, Inc. Conditionally executed states
JP5163350B2 (ja) * 2008-05-19 2013-03-13 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
US7957942B2 (en) * 2008-06-22 2011-06-07 United Electronic Industries, Inc Position and angle digital detection and simulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262045A (ja) * 1990-03-12 1991-11-21 Oki Electric Ind Co Ltd ハードウエア設計言語からのテストデータ生成方式
JP2001101250A (ja) * 1999-09-30 2001-04-13 Matsushita Electric Ind Co Ltd 検証項目抽出方法、再利用コア検証方法、検証判断方法、および再利用テストベンチ編集方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003281A (ja) * 2008-05-19 2010-01-07 Fujitsu Ltd 検証支援プログラム、検証支援装置および検証支援方法

Also Published As

Publication number Publication date
US8015519B2 (en) 2011-09-06
JP5050985B2 (ja) 2012-10-17
US20090276740A1 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
JP4667386B2 (ja) 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置
US8327333B2 (en) Apparatus, method, and system of assisting software development
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
JP2007094818A (ja) 複数データの一括コピー及びペースト方法、装置、およびコンピュータ・プログラム
JP3822044B2 (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
JP2009265810A (ja) 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法
JP4657912B2 (ja) 設計装置および設計方法とそのプログラム
JP5050985B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5163350B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5287058B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP6803857B2 (ja) レイアウト系検査のための解析プロセス・パラメータの視覚化
JP6568017B2 (ja) テスト支援装置、および、テスト支援方法
US20050039148A1 (en) Apparatus, method and program for designing semiconductor integrated circuit
JP2009252169A (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP5163172B2 (ja) ソフトウェアテスト項目編集支援装置およびソフトウェアテスト項目編集支援方法
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP5163308B2 (ja) Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム
JP5198130B2 (ja) 可変画像形成ジョブの自動検査
US20230401355A1 (en) Method and system for validating product and manufacturing information of a geometric model
JP6066690B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、プログラム
KR102052338B1 (ko) 테스트케이스 설계 정보의 추적 분석을 위한 시각화 방법, 테스트케이스 생성 장치 및 컴퓨터 판독가능 기록매체
NO20150503A1 (en) Interference detection in a tree-dimensional data model
JP5239647B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP2016139203A (ja) 設計情報作成方法、設計情報作成装置及びプログラム
JP2006221473A (ja) 論理検証装置、論理検証方法および論理検証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120416

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: 20120626

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120709

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5050985

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees