説明

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

【課題】対象回路内の依存関係をもつ2つのノード間の信号の伝播に要する時間を、シミュレーションを実行することなく容易に特定する。
【解決手段】検証支援装置100によって、入力値110として調査対象変数(信号やレジスタ)111およびクロック信号名112と、それらを定義・参照しているRTLのソースコード113が入力されると、調査対象変数111についての遅延サイクル数121を出力値120として出力する。検証支援装置100では、RTLのソースコード113における調査対象変数111のパス上のノードを各ノードのクロックドメインごとに検出することによって遅延サイクル数121を特定できる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、回路設計の検証を支援する検証支援プログラム、検証支援装置および検証支援方法に関する。
【背景技術】
【0002】
従来より、LSI(Large Scale Integration)の論理設計の工程では、設計者は複数の技術を駆使して仕様と実装を比較し、設計回路にバグが無いことを確認する検証処理を繰り返しながら設計を行っている。近年では、漏れのない正確な検証を行うため、OVM(Open Verification Methodology)やVMM(Verification Methodology Manual)などの最新の検証メソドロジーが利用されている。
【0003】
一方で、検証対象の状況(たとえば、LSIにおける重要性や設計の困難さ)によっては、上述したような最新の検証メソドロジー以外の手法で実装を検査しなければならない場合がある。そこで、現状では、コードレビューが有効な手法として実施されている。コードレビューとは、設計回路内の誤りを検出・修正するためにソースコードを体系的に検査する、いわゆる査読であり、従来からハードウェアとソフトウェアの実装を検査する際に使われる技術である。
【0004】
LSIの実装をコードレビューによって検査する際、2つの変数(信号、レジスタ等)の間に依存関係があった場合、依存元の変数の値が変化したとき、依存先の変数の値に依存元の変化がいつ反映されるか(または影響を受けるか)を調査したいという要望が多い。そこで、設計回路の実装に応じた動作を再現するシミュレーションを行ったり、設計回路内の指定した2つの素子間の信号の伝播にかかる時間を特定する技術が利用されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3360012号公報
【特許文献2】特開2005−275783号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術のように、動的または静的に設計回路の動作をシミュレーションする手法は、多くの場合、結果が出るまでに多大な時間を要する。また、実装相当の動作を再現するためには、検証者が検証したい箇所以外の設計情報が必要になる。したがって、検証にかかる計算負荷が大きく、検証用のハードウェアとして高スペックな装置が必要になるなど、検証者が容易には利用できないといった問題があった。
【0007】
また上述したような、指定した素子間の信号の伝播にかかる時間を特定する技術も、利用可能となる範囲や、対象となる回路構成が限定されている。しかしながら、実際には、ある時には所定のレジスタであったり、ある時には所定の信号であったりと、検証の対象となる変数は多様である。したがって、検証者が要求するような多様な検証には対応できないといった問題があった。
【0008】
本開示技術は、上述した従来技術による問題点を解消するため、対象回路内の依存関係をもつ2つのノード間の信号の伝播に要する時間を容易に特定する検証支援プログラム、検証支援装置および検証支援方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、本開示技術は、対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付け、複数の変数の中から、指定された第1の変数を依存元とし第2の変数を依存先とする第3の変数を検索し、ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出し、検出された検出結果を出力することを要件とする。
【発明の効果】
【0010】
本検証支援プログラム、検証支援装置および検証支援方法によれば、対象回路内の依存関係をもつ2つのノード間の信号の伝播に要する時間を容易に特定することができるという効果を奏する。
【図面の簡単な説明】
【0011】
【図1】本実施の形態にかかる検証支援処理の一例を示す説明図である。
【図2】RTL記述における依存関係を示す説明図である。
【図3】中間データを利用した遅延サイクル数の特定を示す説明図である。
【図4】検証支援装置のハードウェア構成を示すブロック図である。
【図5】検証支援装置の機能的構成を示すブロック図である。
【図6】検証支援処理の手順を示すフローチャートである。
【図7】依存関係の調査の手順を示す説明図である、
【図8−1】依存関係探索処理の手順を示すフローチャート(その1)である。
【図8−2】依存関係探索処理の手順を示すフローチャート(その2)である。
【図9】遅延サイクル数の算出処理の手順を示すフローチャートである。
【図10】実施例1におけるRTL記述を示す説明図である。
【図11】RTL記述のパーズツリーを示すデータ構成図である。
【図12】実施例1における依存関係パスの構成を示す説明図である。
【図13】実施例1における遅延サイクル数算出の過程を示す説明図である。
【図14】実施例2におけるRTL記述を示す説明図である。
【図15】実施例2における遅延サイクル数算出の過程を示す説明図である。
【図16】実施例3におけるRTL記述を示す説明図である。
【図17】実施例3における遅延サイクル数算出の過程を示す説明図である。
【図18】実施例4におけるRTL記述を示す説明図である。
【図19】実施例4のRTL記述に含まれる依存関係を示す説明図である。
【図20】実施例4における依存関係パスの構成を示す説明図である。
【図21】依存関係パスの分離例を示す説明図である。
【図22】パス1における遅延サイクル数算出の過程を示す説明図である。
【図23】パス2における遅延サイクル数算出の過程を示す説明図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる検証支援プログラム、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。
【0013】
図1は、本実施の形態にかかる検証支援処理の一例を示す説明図である。図1のように、本実施の形態では、検証支援装置100によって、入力値110として調査対象変数(信号やレジスタ)111およびクロック信号名112と、それらを定義・参照しているRTLのソースコード113が入力されると、調査対象変数111についての遅延サイクル数121を出力値120として出力する。
【0014】
検証支援処理の手順としては、検証支援装置100は、まず、調査対象変数111の依存関係を調査し(ステップS101)、もし依存関係が存在すれば依存元から依存先までの依存関係パス131を中間データ130として抽出する。このとき、検証支援装置100は、依存関係が存在しなければそのまま処理を終了する。
【0015】
図2は、RTL記述における依存関係を示す説明図である。図2のソースコード200は、対象回路のRTL記述の一部を表している。調査対象変数111の依存関係とは、ソースコード200内の→で結ばれた代入文同士のように、依存元の左辺が依存先の右辺と共通する状態を意味する。
【0016】
図3は、中間データを利用した遅延サイクル数の特定を示す説明図である。図3のように依存関係パス131は、有向グラフから構成される。有向グラフのノード名は、依存するレジスタ名・信号名に相当する。図3では、依存元ノードin0、中間信号ノードreg0、依存先ノードout0が生成される。また、有向エッジは依存関係の方向を示している。また、依存関係パス131には、ノードの種類(依存元301、依存先303、中間信号302)とクロックドメインを表すラベルが付与されている。
【0017】
図1の説明に戻り、検証支援装置100は、ステップS101の調査によって依存関係があるか否かを判断し(ステップS102)、依存関係があれば(ステップS102:Yes)、依存関係パスを参照して、依存元から依存先までの遅延を算出する(ステップS103)。依存元から依存先までの遅延とは、依存元に入力された値が依存先の値に反映されるまでの時間である。なお、検証対象回路は、クロック信号に基づいて動作するため、遅延時間は、遅延サイクル数121の値と1クロック当たりの時間とから具体的な時間を特定することもできる。
【0018】
なお、検証支援装置100は、ステップS102において依存関係がないと判断された場合(ステップS102:No)、依存関係がない旨を結果として出力する(ステップS104)。一方、ステップS103において、遅延が算出された場合、検証支援装置100は、出力値120として、遅延サイクル数121を出力する(ステップS104)。
【0019】
本実施の形態にかかる検証支援処理では、図3に例示したように、依存関係を表すノードを有向グラフによって表現し、さらに、各ノードに依存関係パスに属する変数のクロックドメインを示すラベルを付与している。したがって、依存関係パス131を参照すれば、容易に、依存先のノードから依存元のノードへ辿りつき、その際に辿ったノードのクロックドメインが依存先ノードのクロックドメインと同一のものを検出することによって、遅延サイクル数121を特定することができる。
【0020】
したがって、従来のように、2つの変数間の遅延時間を特定するために、シミュレーションなどの負荷の大きな処理を実行する必要がない。また、シミュレーションを行う場合と比較して、短時間で、依存元の変数の値が変化したとき、依存先の変数にその値がいつ反映される・影響を与えるか特定できる。また、RTLのソースコード113の記述内容から依存関係を特定して遅延サイクル数121を特定するため、コードレビューを実施する際の、検証対象が限定されない。したがって、検証者の検証能率の向上が期待できる。
【0021】
以下に、上述したような検証支援処理を実現する検証支援装置100の具体的な構成や処理内容について順に説明する。
【0022】
(検証支援装置のハードウェア構成)
つぎに、検証支援装置100のハードウェア構成について説明する。図4は、検証支援装置のハードウェア構成を示すブロック図である。図7において、検証支援装置100は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、通信I/F(Interface)408と、入力デバイス409と、出力デバイス410と、を備えている。また、各構成部はバス420によってそれぞれ接続されている。
【0023】
ここで、CPU401は、検証支援装置100の全体の制御を司る。ROM402は、ブートプログラムや、検証支援プログラムなどの各種プログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。
【0024】
磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。なお、ROM402には、検証支援プログラムによって生成されたアサーション情報や、アサーション情報と検証シナリオを用いたシミュレーション検証を実行する検証プログラムが記録されていてもよい。このような場合は、検証支援装置100によって生成したアサーション情報に留まらず、実際の検証結果まで検証者に提供することができる。
【0025】
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
【0026】
通信インターフェース(以下、「I/F」と略する)408は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク411に接続され、このネットワーク411を介して他の装置に接続される。そして、通信I/F408は、ネットワーク411と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F408には、たとえばモデムやLANアダプタなどを採用することができる。
【0027】
入力デバイス409は、検証支援装置100に対しての外部からの入力を受け付ける。入力デバイス409としては、具体的には、キーボード、マウスなどが挙げられる。
【0028】
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0029】
出力デバイス410は、検証支援装置100によって生成された検証シナリオや、検証シナリオによる検証結果などを出力する。出力デバイス410としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
【0030】
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
【0031】
(検証支援装置の機能的構成)
図5は、検証支援装置の機能的構成を示すブロック図である。検証支援装置100は、指定部501と、検索部502と、検出部503と、出力部504と、算出部505と、抽出部506と、判断部507と、判定部508とを含む構成である。この制御部となる機能(指定部501〜判定部508)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F408により、その機能を実現する。
【0032】
指定部501は、検証者や上位システムから、対象回路に関するハードウェア記述内の複数の変数の中から2つの変数の指定を受け付ける機能を有する。指定部501は、具体的には、依存関係のある2つの変数の指定を受け付ける。ここでは、便宜上、依存関係のある2つの変数のうち、依存元の変数を第1の変数とし、第1の変数の依存先となる変数を第2の変数として以下説明を行う。
【0033】
また指定部501は、上述のような依存関係のある2つの変数以外にも、依存関係の有無が判然としない任意の2つの変数の指定を受け付けることもできる。指定部501が、任意の2つの変数の指定を受け付けた場合には、後述する抽出部506、判断部507および判定部508によって任意の2つの変数について依存関係を判定する処理が行われる。なお、指定された2つの変数は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0034】
検索部502は、ハードウェア記述の中から第1の変数が依存元となり第2の変数が依存先となる第3の変数を検索する機能を有する。具体的には、検索部502は、ハードウェア記述に記述されている代入文に基づいて、変数同士の依存関係を特定することができる。したがって、検索部502は、指定部501によって指定された第1の変数を依存元とし、第2の変数を依存先とする第3の変数をハードウェア記述内の複数の変数の中から検索する。なお、検索結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0035】
検出部503は、第3の変数の中からクロックドメインが同一になる変数を検出する機能を有する。具体的には、検出部503は検索部502によって検索された第3の変数の中から、第1または第2の変数とクロックドメインが同一の変数を検出する。なお、クロックドメインが同一か否かの判断は、ハードウェア記述に記述されているクロックドメインを参照すればよい。通常、ハードウェア記述には、クロックドメインを定義する定義文が記述されている。したがって、検出部503は、ハードウェア記述を参照することによって、各変数のクロックドメインを特定することができる。なお、検出結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0036】
上述した機能に加えて、検出部503は、検索部502において名称とクロックドメインが一致する第3の変数が複数検索されている場合には、名称とクロックドメインが一致する複数の第3の変数を1つだけ検出する。検索部502では、代入文の記述によっては、同じ変数が第3の変数として複数検索されることがある。しかしながら、同じ変数の間では、信号の伝播は起こらない(必要ない)ため、これらの変数の間には、1クロックの遅延も発生しない(時間がかからない)。したがって、同じ変数に関しては、1つだけ検出することで、実際に信号の伝播が発生する変数のみを効率的に検知することができる。
【0037】
また、検出部503は、第1または第2の変数に複数のクロックドメインが存在する場合、クロックドメインごとに、第3の変数の中から、第1または第2の変数とクロックドメインが同一の変数を検出することもできる。したがって、クロックドメインの種類ごとに、クロックドメインが同一の第3の変数を検出するため、クロックごと遅延時間を特定することができる。
【0038】
出力部504は、検証支援装置100によって生成された情報を出力する機能を有する。検証支援装置100によって生成された情報として、具体的には、検出部503よって検出された検出結果が挙げられる。したがって、出力部504は、出力値120として、検出結果を出力する。出力形式としては、たとえば、出力デバイス410として用意されたディスプレイへの表示、プリンタへの印刷出力、通信I/F408による外部装置への送信がある。また、出力値を一旦、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶することとしてもよい。
【0039】
算出部505は、依存関係のある2つの変数の依存元から依存先に信号が伝播する時間を算出する機能を有する。具体的には、算出部505は、検出部503によって検出された検出結果が示す第3の変数の数に応じて、第1の変数の値の変化が第2の変数の値に伝播するまでにかかる時間を算出することができる。なお、算出結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。また、算出部505によって算出された算出結果は、出力部504から出力値120として出力される。
【0040】
以上説明した各機能では、事前に依存関係があるとわかっている2つの変数について処理が行われていたが、検証支援装置100では、依存関係の有無が判然としない任意の2つの変数についても同等の処理を行うことができる。
【0041】
検証支援装置100は、指定部501によって、依存関係の有無が判然としない任意の2つの変数が指定された場合には、以下に説明する機能部(抽出部506、判断部507および判定部508)によって、依存関係の有無を判定することができる。
【0042】
抽出部506は、ハードウェア記述の中から所定の代入文を抽出する機能を有する。具体的には、抽出部506は、ハードウェア記述内の複数の変数の中から、任意の2つの変数の指定を受け付けると、ハードウェア記述に記述された代入文の中から任意の2つの変数を用いた代入文と、この代入文によって記述されている任意の2つの変数以外の変数を用いた他の代入文とを抽出する。すなわち、抽出部506ではハードウェア記述の中から、任意の2つの変数の変化が影響する可能性のある代入文をすべて抽出している。なお、抽出結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0043】
判断部507は、条件式が所定の要件を満たすか否かを判断する機能を有する。具体的には、判断部507は、抽出部506によって抽出された代入文の中のいずれかの代入文に含まれる変数が、それぞれ抽出された代入文の中の他の代入文に記述されているか否かを判断する。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0044】
判定部508は、2つの変数間の依存関係の有無を判定する機能を有する。具体的には、判定部508は、判断部507の判断結果に基づいて、指定部501によって指定された任意の2つの変数に依存関係があるか否かを判定する。なお、判定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。そして、検索部502では、判定部508によって依存関係があると判定された場合に、任意の2つの変数を、第1の変数と第2の変数として、ハードウェア記述の複数の変数の中から第3の変数を検索する。
【0045】
(検証支援処理の手順)
図6は、検証支援処理の手順を示すフローチャートである。図6のフローチャートは、依存元の変数の値の変化が依存先の変数の値に反映されるまでの時間(遅延時間)を把握したい2つの変数の指定を受け付けると、2つの変数の間の信号を伝播させる変数を検出して、遅延時間の算出を可能にするまでの手順を示している。図6の各処理を実行することによって、依存元の変数に入力された信号がどの変数を経由し、どのようなクロックに基づいて、依存先へ伝播するかを把握することができる。
【0046】
図6において、検証支援装置100は、まず、指定部501において、2つの変数が指定されたか否かを判断する(ステップS601)。検証支援装置100は、ステップS601において、2つの変数が指定されるまで待機状態となる(ステップS601:Noのループ)。
【0047】
その後、検証支援装置100は、2つの変数が指定されると(ステップS601:Yes)、指定された2つの変数が依存関係のある変数か否かを判断する(ステップS602)。指定部501では、依存関係のある2つの変数、もしくは、任意の2つの変数の指定が受け付けられる。したがって、検証支援装置100は、依存関係のある2つの変数が指定されていれば、依存関係のある変数であると判断し(ステップS602:Yes)、任意の2つの変数が指定されていれば、依存関係のある変数ではない(ステップS602:No)と判断する。なお、ステップS602における依存関係のある変数ではないとの判断結果は、依存関係の有無が不明であることを意味しており、実際に任意の2つの変数が依存関係にあるかは問わない。
【0048】
検証支援装置100は、ステップS602において、依存関係のある変数であると判断された場合(ステップS602:Yes)、ステップS605の処理に移行する。一方、依存関係のある変数ではないと判断された場合(ステップS602:No)、検証支援装置100は、抽出部506、判断部507および判定部508によって、指定された2つの変数についての依存関係の有無を判定する(ステップS603)。そして、検証支援装置100は、ステップS603において、依存関係があると判定されたか否かを判断する(ステップS604)。
【0049】
その後、検証支援装置100は、ステップS602もしくはステップS604において、2つの変数に依存関係があると判定されると(ステップS602もしくはステップS604:Yes)、検索部502によって、ハードウェア記述の中から第3の変数を検索する(ステップS605)。第3の変数とは、上述したように、第1の変数を依存元とし、第2の変数を依存先とするすべての変数を意味する。したがって、ハードウェア記述に記述されている代入文に応じて、第3の変数として検索される変数の数は異なる。
【0050】
そして、検証支援装置100は、検出部503によって、ステップS605において、検索された変数の中からクロックドメインが同一となる第3の変数を検出する(ステップS606)。検証支援装置100は、ステップS606による検出結果を出力部504から出力して(ステップS607)、一連の処理を終了する。
【0051】
検証支援装置100は、算出部505を利用することによって、検出部503の検出結果に基づいて、第1の変数の値の変化が第2の変数の値に伝播するまでにかかる時間を算出することもできる。上述のような場合、検証支援装置100は、算出結果を出力部504から出力して、一連の処理を終了する。また、検証支援装置100は、ステップS604において、任意の2つの変数に依存関係がないと判定された場合(ステップS604:No)、出力部504から依存関係がない旨を出力して(ステップS608)、一連の処理を終了する。
【0052】
つぎに、上述した検証支援処理における依存関係の調査と、検知結果を利用した遅延サイクル数の算出について詳しく説明する。
【0053】
(依存関係の調査)
図7は、依存関係の調査の手順を示す説明図である。まず、2つの変数の依存関係の調査について説明する。図7のように、検証支援装置100は、RTLのソースコード113からパーザーにRTLソースコードの構造化を行う(ステップS701)。ステップS701の構造化によって、パーズツリー700が生成される。その後、検証支援装置100は、調査対象変数111とクロック信号名112とに基づいて、パーズツリー700の中から検査したい変数を探索する(ステップS702)。
【0054】
そして、検証支援装置100は、検査したい変数がRTLのソースコード113の中に存在したか否かを判断する(ステップS703)。ステップ703において、変数が存在する場合(ステップS703:Yes)、検証支援装置100は、依存関係探索の処理へ移行する(ステップS704)。なお、ステップS704の依存関係探索の処理によって、依存関係パス131が生成される。なお、ステップS704の依存関係探索については詳しく後述する。一方、変数が存在しない場合(ステップS703:No)、検証支援装置100は、エラーメッセージを表示させ(ステップS705)、一連の処理を終了する。
【0055】
(依存関係探索処理)
図8−1および図8−2は、依存関係探索処理の手順を示すフローチャートである。図8−1および図8−2のフローチャートは、2つの変数について依存関係を検索する手順を示している。図8−1および図8−2の各処理を実行することによって、指定された2つの変数の依存関係の有無と、依存関係がある場合には、依存元から依存先へのパス上に存在するノードを検索するとともに、どのようなノードかを表すラベルを付与することができる。
【0056】
図8−1において検証支援装置100は、まず、対象回路のハードウェア記述のパーズツリー(図11参照)の代入式の中から依存元の変数の参照箇所を特定する(ステップS801)。その後、ステップS801において特定された依存元の変数の参照箇所が、実際にパーズツリーに存在するか否かを判断する(ステップS802)。
【0057】
ステップS802において、依存元の変数の参照箇所が、実際にパーズツリーに存在すると判断された場合(ステップS802:Yes)、検証支援装置100は、依存関係パスのノード(N1)を作成し、ラベルにクロックドメインと信号の種類を付与する(ステップS803)。さらに、検証支援装置100は、参照されている代入文の左辺の変数のノード(N2)を作成し、ラベルにクロックドメインと信号の種類を付与する(ステップS804)。一方、ステップS802において、依存元の変数の参照箇所が、実際にパーズツリーに存在しないと判断された場合(ステップS802:No)、検証支援装置100は、図8−2のステップS811の処理に移行する。
【0058】
その後、検証支援装置100は、作成したノードN1からノードN2へ有向エッジを作成し(ステップS805)、左辺と依存先の変数が同じか否かを判断する(ステップS806)。ステップS806において、左辺と依存先の変数が同じと判断された場合(ステップS806:Yes)、検証支援装置100は、図8−2のステップS811の処理に移行する。
【0059】
一方、ステップS806において、左辺と依存先の変数が同じではないと判断された場合(ステップS806:No)、検証支援装置100は、パーズツリーの代入文の中から左辺の変数を右辺で参照する箇所を特定する(ステップS807)。そして、検証支援装置100は、ステップS807において特定された左辺の変数を参照する箇所があるか否かを判断する(ステップS808)。
【0060】
ステップS808において、左辺の変数を参照する箇所があると判断された場合(ステップS808:Yes)、検証支援装置100は、さらに、複数の参照箇所がある場合、それぞれの参照箇所を処理対象に設定して(ステップS809)、ステップS802の処理に移行する。一方、ステップS808において、左辺の変数を参照する箇所がないと判断された場合(ステップS808:No)、検証支援装置100は、依存関係がない旨を出力して(ステップS810)、一連の処理を終了する。
【0061】
続いて、図8−2において、検証支援装置100は、まず、依存元ノードからパスごとに有向グラフを参照して(ステップS811)、連続して同一変数を表すノードがあるか否かを判断する(ステップS812)。ステップS812において、連続して同一変数を表すノードがあると判断された場合(ステップS812:Yes)、検証支援装置100は、さらに、ノードが同一代入文の左辺・右辺に属するか否かを判断する(ステップS813)。
【0062】
ステップS813において、ノードが同一代入文の左辺・右辺に属さないと判断された場合(ステップS813:No)、ノードを統合できるため、検証支援装置100は、ノードを統合するとともにラベル処理を行い(ステップS814)、ステップS815の処理に移行する。一方、ステップS812において、連続して同一変数を表すノードがないと判断された場合(ステップS812:No)、ステップS813において、ノードが同一代入文の左辺・右辺に属すると判断された場合(ステップS813:Yes)にも、検証支援装置100は、ステップS815の処理に移行する。
【0063】
検証支援装置100は、ステップS815にて、参照していないノードがあるか否かを判断し(ステップS815)、参照していないノードがあると判断された場合(ステップS815:Yes)、ステップS811の処理に戻り、残りのノードについて適宜ラベル処理を施す。検証支援装置100は、ステップS815において、参照していないノードがないと判断されると(ステップS815:No)、すべてのノードについてのラベル処理が終了したとして、一連の処理を終了する。
【0064】
以上説明した、処理を実行することによって、ソースコード200に記述された2つの変数の依存関係を表す中間データ130が生成される。
【0065】
(遅延サイクル数の算出処理)
図9は、遅延サイクル数の算出処理の手順を示すフローチャートである。図9のフローチャートは、指定された依存元から依存先までの信号の伝播に要するクロックをカウントする手順を示している。図9の各処理を実行することによって、依存関係のある2つの変数間の遅延サイクル数を算出することができる。
【0066】
図9において、検証支援装置100は、まず、処理対象パスを設定する(ステップS901)。その後、検証支援装置100は、入力されたクロック信号の数と同じ数のカウンタを用意する(ステップS902)。ステップS902において、入力されたクロック信号の数とは、処理対象パスのクロックドメインの種類を意味する。また、ステップS902にて用意するカウンタは実際のハードウェアで用意してもよいし、ソフトウェアで実現したカウンタを用意してもよい。なお、用意されたカウンタにはそれぞれ対応するクロックドメインが設定される。
【0067】
その後、検証支援装置100は、ステップS902において用意した全カウンタを初期化し(ステップS903)、その後、依存先ノードを探索する(ステップS904)。そして、検証支援装置100は、ステップS904の探索によって求めたノードのラベルにクロックドメインが存在するか否かを判断する(ステップS905)。
【0068】
ステップS905において、求めたノードのラベルにクロックドメインが存在すると判断された場合(ステップS905:Yes)、検証支援装置100は、着目ノードのラベルに付与されたクロックに該当するカウンタの値に1を加算して(ステップS906)、ステップS908の処理に移行する。一方、求めたノードのラベルにクロックドメインが存在しないと判断された場合(ステップ905:No、検証支援装置100は、遅延が発生しないため、カウンタの値を保持して(ステップS907)、ステップS908の処理に移行する。
【0069】
ステップS907もしくはステップS906の処理が完了すると、検証支援装置100は、着目ノードを基点にエッジを逆方向へ参照し、つぎのノードを特定する(ステップS908)。その後、検証支援装置100は、ステップS908によって求められたノードは依存元ノードであるか否かを判断する(ステップS909)。求めたノードが依存元ノードか否かはノードに付与されているラベルを参照すればよい。
【0070】
ステップS909において、求められたノードは依存元ノードではないと判断された場合(ステップS909:No)、検証支援装置100は、依存元ノードに至るまでに他のノード(中間信号)が存在するため、ステップS905の処理に戻り、つぎのノードが検索される。
【0071】
一方、ステップS909において、求められたノードは依存元ノードであると判断された場合(ステップS909:Yes)、検証支援装置100は、現在処理対象パスとなっているパスについて処理は終了したため、未処理パスがあるか否かを判断する(ステップS910)。なお、ステップS909において、求められたノードは依存元ノードであると判断されたことをトリガに、カウンタの値がクロックドメインごとの遅延サイクル数が出力される。
【0072】
ステップS910において、未処理パスがあると判断された場合(ステップS910:Yes)、検証支援装置100は、ステップS901に戻り、未処理パスを次の処理対象パスに設定して、遅延サイクル数のカウントを開始する。ステップS910において、未処理パスがないと判断された場合(ステップS910:No)、検証支援装置100は、そのまま一連の処理を終了する。
【0073】
以上説明したように、検証支援装置100は、依存関係パスを参照して、処理対象パスを設定して順次遅延サイクル数の算出を行う。また、カウンタはクロックドメインの種類ごとに用意される。したがって、依存関係パスとして複数パス存在する場合や、複数のクロックドメインが存在する場合であっても、正確にパスごとの遅延サイクル数を算出することができる。
【0074】
つぎに、具体的なRTL記述を例示して、実際に指定された2つの変数間の遅延クロック数を算出する実施例1〜4について説明する。
【0075】
(実施例1)
図10は、実施例1におけるRTL記述を示す説明図である。実施例1では、図10のソースコード1000を対象に依存元の変数in0の値が依存先の変数out0の値へ影響を与えるまでの時間差を調査したい。そこで、まず、ソースコード1000から変数in0→変数out0のパスを検索するための処理を行う。
【0076】
図11は、RTL記述のパーズツリーを示すデータ構成図である。実施例1では、ソースコード1000(図10参照)から変数in0→変数out0のパスを特定するための手法として、パーズツリーを利用する。パーズツリーは、ソースコード1000の記述内容をツリー構造へ変換した一例を表している。ツリー構造への変換には、各種専用ツールを利用することができる。ソースコード1000をツリー構造に変換することによって、効率的に変数in0→変数out0のパスを特定することができる。
【0077】
図12は、実施例1における依存関係パスの構成を示す説明図である。図11のパーズツリーを参照した結果、変数in0→変数out0の間のノード(上述の第3の変数)として中間信号reg0を検索することができる。したがって、変数in0→中間信号reg0→中間信号reg0→変数out0というパスが特定される。
【0078】
また、抽出されたノードにラベル1201〜1204を付与して依存関係パスを生成すると、図12の上段のような構成になる。中間信号reg0は、2つ検索されている。そのうち、ラベル1202が付与された中間信号reg0は、図10の1001の代入文の左辺の変数に相当する。また、ラベル1203が付与された中間信号reg0は、図10の1002の代入文の右辺の変数に相当する。
【0079】
図8−1,8−2の処理において、説明したように、上述した2つの中間信号reg0は実質同じ変数を表している。すなわち、2つの中間信号reg0は1つの中間信号reg0に統合でき、結果として、図12の下段のような構成になる。なお、統合された、中間信号reg0には、図12のように、あらたなラベル1205が付与されてもよいし、統合前のいずれか一方のラベル1202,1203を引き継いでもよい。そして、後述する、遅延サイクル数の算出には、中間信号reg0が統合された依存関係パスが利用される。
【0080】
図13は、実施例1における遅延サイクル数算出の過程を示す説明図である。図13のように、まず、過程1では、依存先の変数out0(clk)から中間信号の変数reg0(clk)の間に、1クロックを要する。そして、過程2では、中間信号の変数reg0(clk)から依存元の変数in0(clk)の間に、1クロックを要する。したがって、過程3では、変数in0から変数out0までの遅延サイクル数としてクロックドメインclkにおいて、2クロックが算出される。
【0081】
以上説明したように、実施例1では、検証対象となる回路のRTL記述のソースコード1000に対して、遅延サイクル数を特定したい2つの変数が指定されると、ソースコード1000を変換したパーズツリーを参照してパスを特定する。特定されたパスは依存関係パスとしてノードにラベルが付与された中間データとして提供される。したがって、ラベルの記述内容を参照することによって、容易かつ、正確に遅延サイクル数を算出することができる。
【0082】
(実施例2)
図14は、実施例2におけるRTL記述を示す説明図である。実施例2では、図14のソースコード1400を対象に依存元の変数in0の値が依存先の変数out0の値へ影響を与えるまでの時間差を調査したい。変数in0から変数out0までのパスを参照すると、変数in0、中間信号reg0、変数out0のノードが検索される。そして、ソースコード1400の記述に基づいて、各ノードにはラベル1401〜1403が付与される。なお、図14は、便宜上、ソースコード1400内に依存関係パスを表示したが、実際のソースコード1400上に表示されているわけではない。
【0083】
図15は、実施例2における遅延サイクル数算出の過程を示す説明図である。図15のように、まず、過程1では、依存先の変数out0(clk)から中間信号の変数reg0(clk無し)の間に、1クロックを要する。そして、過程2では、中間信号の変数reg0(clk無し)から依存元の変数in0(clk)の間に、遅延クロックは発生しない。したがって、過程3では、変数in0から変数out0までの遅延サイクル数としてクロックドメインclkにおいて、1クロックが算出される。
【0084】
以上説明したように、実施例2では、実施例1と同様に、依存元から依存先の間のノードについて、付与されたラベルを参照して遅延サイクル数を算出するが、ラベル1402のように、中間信号にクロックドメインが設定されていない場合には、遅延クロックは発生しないため、遅延サイクル数に影響しない。したがって、実際のハードウェアの動作を忠実に把握して正確な遅延サイクル数を算出することができる。
【0085】
(実施例3)
図16は、実施例3におけるRTL記述を示す説明図である。実施例3では、図16のソースコード1600を対象に依存元の変数in0の値が依存先の変数out0の値へ影響を与えるまでの時間差を調査したい。ところが、実施例3のソースコード1600の場合、定義文1601に記述されているように、クロックドメインとしてclk0,clk1の2種類が利用されている。
【0086】
図17は、実施例3における遅延サイクル数算出の過程を示す説明図である。図17のように、まず、過程1では、依存先の変数out0(clk1)から中間信号の変数reg0(clk0)の間に、クロックドメインclk1において1クロックを要する。そして、過程2では、中間信号の変数reg0(clk0)から依存元の変数in0(clk0)の間に、クロックドメインclk0において1クロックを要する。したがって、過程3では、変数in0から変数out0までの遅延サイクル数としてクロックドメインclk0,clk1それぞれにおいて、1クロックが算出される。
【0087】
以上説明したように、実施例3では、依存元から依存先へのパス上に存在する各ノードに異なるクロックドメインが設定されている場合であっても、ラベルのクロックドメインの種類ごとにクロック数を算出することによって、クロックドメインごとに正確な遅延時間を算出することができる。
【0088】
(実施例4)
図18は、実施例4におけるRTL記述を示す説明図である。実施例4では、図18のソースコード1800を対象に依存元の変数in0の値が依存先の変数out0の値へ影響を与えるまでの時間差を調査したい。ところが、実施例4のソースコード1800の場合、依存元から依存先まで複数のパスが存在している。
【0089】
図19は、実施例4のRTL記述に含まれる依存関係を示す説明図である。また、図20は、実施例4における依存関係パスの構成を示す説明図である。図19のように、ソースコード1800内には、変数in0から変数out0までのパスの途中には、代入文2から代入文3へ通るパスと、代入文2から代入文5へ通るパスとが存在する。ソースコード1800から抽出した各ノードにラベル2001〜2005を付与して依存関係パスを作成すると、図20のような構成になる。複数のパスが存在する場合、各パスを区別するためのパス名を設定し(図20の例ではパス1,2)、各ノードのラベル2001〜2005にパス名を追加する。
【0090】
図21は、依存関係パスの分離例を示す説明図である。各ラベルにパス名が追加されると、各ノード2001〜2005は、パス名に基づいて分離される。したがって、パス1を経由する、ノード2001→ノード2002→ノード2003→ノード2004と、パス2を経由するノード2001→ノード2002→ノード2004→ノード2005とに分離される。そして、分離されたパスごとに遅延サイクル数を算出する。なお、実施例4の場合には、依存元から依存先へ順に遅延サイクル数を算出する手法を採用して説明する。
【0091】
図22は、パス1における遅延サイクル数算出の過程を示す説明図である。図22のように、パス1では、過程1によって、依存元の変数in0(代入文2)から中間信号の変数reg0(代入文2)へ1クロックを要し、過程2によって、中間信号の変数reg0(代入文2)から依存先の変数out0(代入文4)へ1クロックを要する。したがって、過程3によって変数in0(代入文2)から変数out0(代入文4)までの遅延サイクル数として2クロックが算出される。
【0092】
図23は、パス2における遅延サイクル数算出の過程を示す説明図である。図23のように、パス2では、過程1によって、依存元の変数in0(代入文2)から中間信号の変数reg0(代入文2)へ1クロックを要し、過程2によって、中間信号の変数reg0(代入文2)から依存先の変数out0(代入文5)へ1クロックを要する。したがって、変数in0(代入文2)から変数out0(代入文5)までの遅延サイクル数として2クロックが算出される。
【0093】
以上説明したように、依存元から依存先へ複数のパスが存在する場合であっても、ラベルにパスを区別するための情報(実施例4の場合はパス名)を追加すれば、容易にパスごとにノードを分離することができる。分離後の各パスは実施例1〜3と同様の手順によって遅延サイクル数を算出することができる。
【0094】
以上説明したように、検証支援プログラム、検証支援装置および検証支援方法によれば、ハードウェア記述の中から第1の変数が依存元となり第2の変数が依存先となる第3の変数を検索して、第1または第2の変数とクロックドメインが同一の第3の変数を検出する。検出された第3の変数は、依存関係にある第1の変数から第2の変数まで信号が伝播する際に経由する変数である。したがって、検出された第3の変数から、第1の変数から第2の変数にかかる時間を、シミュレーションを実行することなく正確に特定することができる。
【0095】
また、上記技術では、さらに、実質同一となる変数を統合することによって、第1の変数からの入力を伝播する第3の変数の数を正確に検知することができる。
【0096】
また、上記技術では、さらに、検出された各変数が複数のクロックドメインに属している場合には、各クロックドメインについて第3の変数を検出する。したがって、クロックドメインごとに検出された第3の変数から、第1の変数から第2の変数にかかる時間を特定することができる。
【0097】
また、上記技術では、さらに、第1または第2の変数とクロックドメインが同一の第3の変数の検知結果から、第1の変数から第2の変数まで信号が伝播するまでの時間を算出する機能を備えることもできる。したがって、検証者による効率的な検証を支援することができる。
【0098】
また、上記技術では、さらに、依存関係の有無が判別しない2つの変数が指定された場合に、依存関係の有無を判断する機能を備えることもできる。そして、依存関係があると判断された場合には、そのまま処理を行い、依存関係がないと判断された場合には、依存関係がない旨を出力することもできる。したがって、検証者が依存関係を把握していなかった変数同士についても適切な検証を行うことができる。また、依存関係がない旨を出力することによって、検証者に、対象回路における依存関係の有無を正しく把握させることができる。
【0099】
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0100】
また、本実施の形態で説明した検証支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証支援装置100の機能(指定部501〜判定部508)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置100を製造することができる。
【0101】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0102】
(付記1)対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定工程と、
前記複数の変数の中から、前記指定工程によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索工程と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索工程によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【0103】
(付記2)前記検出工程では、前記検索工程によって、名称とクロックドメインが一致する複数の変数が第3の変数として検索されている場合、前記名称とクロックドメインが一致する複数の変数を1つだけ検出することを特徴とする付記1に記載の検証支援プログラム。
【0104】
(付記3)前記検出工程では、前記第1または第2の変数に複数のクロックドメインが存在する場合、クロックドメインごとに、前記第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出することを特徴とする付記1または2に記載の検証支援プログラム。
【0105】
(付記4)前記検出工程では、前記検索工程によって、前記第3の変数として、前記第1の変数と前記第2の変数との間の異なるパスを経る変数が検索された場合、前記異なるパスごとに検索された前記第3の変数が、前記第1または第2の変数とクロックドメインが同一の変数を検出することを特徴とする付記1〜3のいずれか一つに記載の検証支援プログラム。
【0106】
(付記5)前記コンピュータに、
前記検出工程によって検出された検出結果に基づいて、前記第1の変数の値の変化が第2の変数の値に伝播するまでにかかる時間を算出する算出工程を実行させ、
前記出力工程は、
前記算出工程によって算出された算出結果を出力することを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
【0107】
(付記6)前記指定工程によって、前記ハードウェア記述内の複数の変数の中から、前記第1の変数と前記第2の変数として任意の2つの変数の指定を受け付けると、前記ハードウェア記述に記述された代入文の中から前記任意の2つの変数を用いた代入文と、当該代入文によって記述されている前記任意の2つの変数の他の変数を用いた他の代入文とを抽出する抽出工程と、
前記抽出工程によって抽出された代入文の中のいずれかの代入文に含まれる変数が、それぞれ前記抽出された代入文の中の他の代入文に記述されているか否かを判断する判断工程と、
前記判断工程による判断結果に基づいて、前記任意の2つの変数に依存関係があるか否かを判定する判定工程と、をコンピュータに実行させ、
前記検索工程では、前記判定工程によって依存関係があると判定された場合に、前記任意の2つの変数を、前記第1の変数と第2の変数として前記第3の変数を前記複数の変数の中から検索することを特徴とする付記1〜5のいずれか一つに記載の検証支援プログラム。
【0108】
(付記7)前記出力工程では、前記判定工程によって前記任意の2つの変数に依存関係がないと判定された場合、前記判定工程による判定結果を出力することを特徴とする付記1〜6のいずれか一つに記載の検証支援プログラム。
【0109】
(付記8)対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定手段と、
前記複数の変数の中から、前記指定手段によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索手段と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索手段によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出手段と、
前記検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【0110】
(付記9)コンピュータが、
対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定工程と、
前記複数の変数の中から、前記指定工程によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索工程と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索工程によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。
【符号の説明】
【0111】
100 検証支援装置
110 入力値
111 調査対象変数
112 クロック信号名
113 RTLのソースコード
130 中間データ
131 依存関係パス
120 出力値
121 遅延サイクル数
501 指定部
502 検索部
503 検出部
504 出力部
505 算出部
506 抽出部
507 判断部
508 判定部

【特許請求の範囲】
【請求項1】
対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定工程と、
前記複数の変数の中から、前記指定工程によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索工程と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索工程によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項2】
前記検出工程では、前記検索工程によって、名称とクロックドメインが一致する複数の変数が第3の変数として検索されている場合、前記名称とクロックドメインが一致する複数の変数を1つだけ検出することを特徴とする請求項1に記載の検証支援プログラム。
【請求項3】
前記検出工程では、前記第1または第2の変数に複数のクロックドメインが存在する場合、クロックドメインごとに、前記第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出することを特徴とする請求項1または2に記載の検証支援プログラム。
【請求項4】
前記検出工程では、前記検索工程によって、前記第3の変数として、前記第1の変数と前記第2の変数との間の異なるパスを経る変数が検索された場合、前記異なるパスごとに検索された前記第3の変数が、前記第1または第2の変数とクロックドメインが同一の変数を検出することを特徴とする請求項1〜3のいずれか一つに記載の検証支援プログラム。
【請求項5】
前記コンピュータに、
前記検出工程によって検出された検出結果に基づいて、前記第1の変数の値の変化が第2の変数の値に伝播するまでにかかる時間を算出する算出工程を実行させ、
前記出力工程は、
前記算出工程によって算出された算出結果を出力することを特徴とする請求項1〜4のいずれか一つに記載の検証支援プログラム。
【請求項6】
対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定手段と、
前記複数の変数の中から、前記指定手段によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索手段と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索手段によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出手段と、
前記検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【請求項7】
コンピュータが、
対象回路を動作させるクロックドメインごとに変数間の依存関係が記述されたハードウェア記述内の複数の変数の中から、第1の変数と当該第1の変数の依存先となる第2の変数との指定を受け付ける指定工程と、
前記複数の変数の中から、前記指定工程によって指定された第1の変数を依存元とし前記第2の変数を依存先とする第3の変数を検索する検索工程と、
前記ハードウェア記述に記述されている前記第1または第2の変数が属するクロックドメインを参照して、前記検索工程によって検索された第3の変数の中から、前記第1または第2の変数とクロックドメインが同一の変数を検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8−1】
image rotate

【図8−2】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2011−237888(P2011−237888A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2010−106789(P2010−106789)
【出願日】平成22年5月6日(2010.5.6)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】