(57)【要約】【課題】  不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとする。【解決手段】  実施形態によれば、回路のアサーション記述の検証に使用されるプログラムが提供される。このプログラムは、前記回路のアサーション記述に基づき、１つのサイクルにおける１つ又は複数の信号の状態を１つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能とをコンピュータに実現させる。【選択図】図１
2017167732.tif 000002
【特許請求の範囲】
【請求項１】
回路のアサーション記述の検証に使用されるプログラムであって、
前記回路のアサーション記述に基づき、１つのサイクルにおける１つ又は複数の信号の状態を１つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、
前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能と、
をコンピュータに実現させるためのプログラム。
【請求項２】
前記情報出力機能は、
前記図式作成機能で作成した図式において、他ノードへの連結が不足しているノードがある場合に、アサーションの不足を指摘する情報を出力する機能を含む、
請求項１に記載のプログラム。
【請求項３】
前記情報出力機能は、
前記図式作成機能で作成した図式において、ノード間に連結があってもこの連結が２つの互いに向きの異なる連結でない場合に、アサーションの不足を指摘する情報を出力する機能を含む、
請求項１又は２に記載のプログラム。
【請求項４】
前記情報出力機能は、
前記図式作成機能で作成した図式において、ノード間に２つの互いに方向の異なる連結があっても別のノードとの間に連結が無い場合に、アサーションの不足を指摘する情報を出力する機能を含む、
請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記情報出力機能は、
不足しているアサーションの追加を促す情報を出力する機能を含む、
請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記アサーション記述の中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率とする情報を出力する第１の網羅率出力機能を、
さらにコンピュータに実現させるための請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記回路で使用される出力信号を示す情報がそれぞれ配列される列または行と、各アサーションの左辺に記述されている条件を示す情報がそれぞれ配列される行または列との組み合わせで構成される複数のセルを有し、各アサーションの右辺に記述されている期待動作が、該当する出力信号および該当する条件と同行同列に位置するセルに記入された表を作成し、作成した表を示す情報を出力する表作成出力機能を、
さらにコンピュータに実現させるための請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
前記表作成出力機能は、
任意の未記入のセルに対する所定の入力操作に応じ、該当する条件に対して該当する出力信号が無関係であることを示す特定の情報を当該セルに記入して表示させる機能を含む、
請求項７に記載のプログラム。
【請求項９】
前記複数のセルに対して条件および前記特定の情報が記載されているセルの割合を演算し、当該割合をアサーション網羅率とする情報を出力する第２の網羅率出力機能を、
さらにコンピュータに実現させるための請求項８に記載のプログラム。
【請求項１０】
回路のアサーション記述を検証する回路設計検証装置であって、
前記回路のアサーション記述に基づき、１つのサイクルにおける１つ又は複数の信号の状態を１つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成手段と、
前記図式作成手段により作成された図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力手段と、
を具備することを特徴とする回路設計検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、回路設計検証装置およびプログラムに関する。
【背景技術】
【０００２】
電気回路の設計においては、対象となる回路の動作を定義するに際し、該回路から出力される各種の出力信号の遷移をアサーションと呼ばれる文で表現したアサーション記述を作成することがある。
【０００３】
一般に、アサーション記述は最初から完全なものとして仕上げることが難しいため、設計者は何らかの支援ツールを使用する。支援ツールには、アサーション記述から漏れている信号名を検出して出力するものや、信号名を元にアサーションの網羅度（カバレッジ）を求めて出力するものがある。
【０００４】
いずれの支援ツールを使用した場合も、不足しているアサーションの検出漏れが生じることがあり、また設計者がそのことに気が付かないことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１３３９５号公報
【特許文献２】特開平１１−８５８２８号公報
【特許文献３】特許第５２８７０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとすることができる回路設計検証装置およびプログラムを提供する。
【課題を解決するための手段】
【０００７】
実施形態によれば、回路のアサーション記述の検証に使用されるプログラムが提供される。このプログラムは、前記回路のアサーション記述に基づき、１つのサイクルにおける１つ又は複数の信号の状態を１つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能とをコンピュータに実現させる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る回路設計検証装置の構成の一例を示すブロック図。
【図２】所定の仕様に準拠したコマンドやデータ等の信号を入出力する回路を示す図。
【図３】同実施形態に係る回路設計検証装置により作成されて表示出力される図式の例を示す図。
【図４】同実施形態に係る回路設計検証装置により作成されて表示出力される、アサーションの不足を指摘する情報が伴った図式の例を示す図。
【図５】同実施形態に係る回路設計検証装置により作成されて表示出力される、アサーションの不足を指摘する情報が伴った図式の例を示す図。
【図６】同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。
【図７】同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。
【図８】同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。
【図９】同実施形態に係る回路設計検証装置により作成されて表示出力される表の一例を示す図。
【図１０】同実施形態に係る回路設計検証装置により作成されて表示出力される第１のアサーション網羅率と第２のアサーション網羅率のそれぞれの経時変化の例を対比して示す図。
【図１１】同実施形態に係る回路設計検証装置による動作の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施の形態について説明する。
【００１０】
図１は、実施形態に係る回路設計検証装置の構成の一例を示すブロック図である。
【００１１】
図１に示される回路設計検証装置１は、半導体装置を構成する回路のアサーション記述を検証するものであり、例えばコンピュータを用いて実現される。
【００１２】
この回路設計検証装置１は、入力装置２および出力装置３を備え、プロセッサ１０を内蔵している。入力装置２は、例えばキーボードやマウスなどに相当する。出力装置３は、例えばディスプレイなどの表示装置に相当する。プロセッサ１０は、所定のプログラムを実行することにより、後述する図式作成・情報出力部１１、網羅率演算・情報出力部１２、および表作成・情報出力部１３を含む各種の機能を実現する。
【００１３】
回路設計検証装置１は、例えば、設計者が作成したアサーション記述Ｄおよび信号リストＬを取り込み、信号リストＬを使用しつつアサーション記述Ｄの検証を行い、検証結果を含む各種の情報を出力装置３に表示出力したり、設計者による入力装置２の入力操作に応じて各種の処理を実行したりすることができる。また、回路設計検証装置１は、設計者がアサーション記述Ｄの更新（例えば新たなアサーションの追加によるアサーション記述Ｄの補完）を行う毎に、更新後のアサーション記述Ｄを取り込み、アサーション記述Ｄの検証や検証結果の出力の処理を繰り返すことができる。
【００１４】
アサーション記述Ｄは、例えば図２に示すように所定の仕様に準拠したコマンドやデータ等の信号を入出力する回路４を対象に設計者が作成した又は作成途中の段階にある１つ又は複数のアサーションの記述である。信号リストＬは、回路４で使用される出力信号，入力信号の種類（もしくは信号名）を示す情報を記載したものである。
【００１５】
図２の回路４で使用される主な出力信号（制御信号、データ信号）および入力信号（制御信号、データ信号）の種類としては、次のようなものが挙げられる。
【００１６】
（１）出力信号
・penable
・pwrite
・pwdata
・psel
・paddr
・$unknown（以下、「$UNK」と表記する。）
・$stable（以下、「$STB」と表記する。）
「penable」は、データ転送を可能な状態にするイネーブル信号である。「pwrite」は、ハイのときにライトアクセス、ローのときにリードアクセスとなる信号である。「pwdata」は、「pwrite」がハイのときに転送されるライトデータである。「psel」は、選択されたことを示すセレクト信号である。「paddr」は、アドレスを示すアドレス信号である。「$UNK」は、４値（０，１，Ｘ（不定），Ｚ（ハイインピーダンス））のうちのＸ（不定）を示す信号である。「$STB」は、前の値を保持することを示す信号である。
【００１７】
（２）入力信号
・pready
・prdata
「pready」は、レディ信号である。「prdata」は、「pwrite」がローのときに転送されるリードデータである。
【００１８】
上述の図式作成・情報出力部１１は、回路４のアサーション記述Ｄに基づき、１つのサイクルにおける１つ又は複数の信号の状態を１つのノードで表現すると共にサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結（「アーク」と呼ぶ場合がある。）で表現した図式（「グラフ」と呼ぶ場合がある。）を作成する図式作成機能を有する。
【００１９】
また、図式作成・情報出力部１１は、上記図式作成機能で作成した図式を出力装置３に表示出力するとともに、当該図式において少なくとも連結の不足が発生している場合にアサーションの不足を指摘する情報を当該図式と併せて出力装置３に表示出力する情報出力機能を有する。
【００２０】
網羅率演算・情報出力部１２は、アサーション記述Ｄの中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率（第１のアサーション網羅率）とする情報を出力装置３に表示出力する第１の網羅率出力機能を有する。
【００２１】
表作成・情報出力部１３は、回路４で使用される出力信号の信号種を示す情報がそれぞれ配列される列または行と、各アサーションの左辺に記述されている条件を示す情報がそれぞれ配列される行または列との組み合わせで構成される複数のセルを有し、各アサーションの右辺に記述されている期待動作が該当する出力信号および該当する条件と同行同列に位置するセルに記入された表（テーブル）を作成し、作成した表を示す情報を出力装置３に表示出力する表作成出力機能を有する。
【００２２】
また、上記網羅率演算・情報出力部１２は、表作成・情報出力部１３により作成された表に基づき、前記複数のセルに対して期待動作や後述する特定の記号「$norelation」が記述されているセルの割合を演算し、当該割合をアサーション網羅率（第２のアサーション網羅率）とする情報を出力装置３に表示出力する第２の網羅率出力機能を有する。
【００２３】
上記プログラムは、このような図式作成・情報出力部１１、網羅率演算・情報出力部１２、および表作成・情報出力部１３を含む各種の機能をコンピュータに実現させることができる。
【００２４】
［１］図式作成・情報出力部１１の機能の詳細
次に、図３を参照して、図式作成・情報出力部１１の図式作成機能により作成されて表示出力される図式について説明する。図３（ａ）はあるアサーションの一例を示し、図３（ｂ）はこのアサーションに対応して作成される図式の一例を示している。
【００２５】
図３（ａ）に示されるアサーションの例では、左から順に、「penable && pready」、「|=>」、「!penable」が記述されている。この例では、あるサイクルにおいて、対象の出力信号が「penable」のときに、入力信号「ready」が返ってきたら、次のサイクルにおいて、「!penable」となる（「penable」の状態が解除され、初期の状態へ戻る）ことを表している。ここで、「|=>」は次サイクルへの状態変化を示す。なお、「|=>」でなく「|->」の場合は、同サイクル内の状態変化を示す。また、「|=>」の左側（左辺）は、対象の出力信号に関する条件を示し、右側（右辺）はその期待動作を示す。「&&」は対象の出力信号と共に条件を構成する別の入力信号または出力信号を記述する場合に併せて記述される記号である。
【００２６】
図３（ｂ）に示される図式の例では、２つのノードが配置され、これら２つのノードの間に１つのアークが配置されている。アークは「|=>」に対応し、アークの始点に接続されるノードは「|=>」の左側（左辺）に対応し、アークの終点に接続されるノードは「|=>」の右側（右辺）に対応する。この例では、出力信号「penable」がアークの始点に接続されるノードに対応するように配置され、入力信号「pready」がアークに対応するように配置され、「!penable」がアークの終点となるノードに対応するように配置されている。ただし、入力信号「pready」はアークに対応するように配置するのではなく、アークの始点となるノードに対応するように配置してもよい。
【００２７】
図式作成・情報出力部１１の図式作成機能は、アサーション記述Ｄが更新される毎に、アサーション記述Ｄから個々のアサーションを抽出してその記述内容の解析を行い、一定のルールに従って図式を作成する。
【００２８】
例えば、アサーション記述Ｄの中に「|->」があれば、左辺に記述されている信号名が配置されたノードの上に、右辺に記述されている信号名を加えて配置する。一方、アサーション記述Ｄの中に「|=>」があれば、新たなノードを作成して配置し、その上に右辺に記述されている信号名を配置し、さらに、左辺に記述されている信号名が配置されたノードと新たに作成したノードとを連結するアークを新たに作成して配置する。
【００２９】
また、アサーション記述Ｄの中に「!$UNK(...)」があり、その対象となる信号「...」が制御信号である場合、その信号「...」はＸ（不定）ではない値、即ち、「０」又は「１」の値をとり、「０」と「１」のいずれの値をとるかによってその後の処理の流れが変わるため、「!$UNK(...)」が配置されるノードを２通りに展開する。これをＵＮＫ展開と称す。例えば「!$UNK(pwrite)」の場合であれば、「!$UNK(pwrite)」を配置したノードを、「pwrite」を配置したノードと「!pwrite」を配置したノードに分けて配置する。
【００３０】
また、アサーション記述Ｄの中に「|=>」があっても、その右辺に「$STB(...)」があれば、新たなノードやアークは作成しない。その対象となる信号「...」は、左辺に記述されている信号名が配置されている既存のノードの上に配置されたままとする。
【００３１】
次に、図４および図５を参照して、図式作成・情報出力部１１の情報出力機能により表示出力される、アサーションの不足を指摘する情報が伴った図式の概要について説明する。
【００３２】
図４および図５に、アサーションの不足を指摘すると同時に不足しているアサーションの追加を促す情報を含む表示画面の２つの例を示す。
【００３３】
以下では、ノード間に１つの連結だけがある場合を「弱連結」と呼び、ノード間に２つの互いに向きの異なる連結がある場合を「強連結」と呼ぶ。また、連結されたノード群の集まり（もしくは連結のない１つのノード）を、１つの「連結成分」とみなす。特に「強連結」だけで連結されたノード群の集まりを「強連結成分」と呼ぶ。本実施形態では、図式の中の「強連結成分」が１つだけになるまで、アサーションの不足を指摘する処理および不足しているアサーションの追加を促す処理が繰り返し行われる。
【００３４】
図式作成・情報出力部１１の情報出力機能は、他ノードへの連結が不足しているノードがある場合に、アサーションの不足を指摘する情報を図式と併せて表示すると共に、不足しているアサーションの追加を促す情報を表示する。
【００３５】
例えば、図４（ａ）に示すように、図式の中に、ノード間に連結があってもこの連結が「強連結」でない場合、図式作成・情報出力部１１の情報出力機能は、アサーションの不足を指摘する情報として、例えば、「!penable」が配置されたノードから他ノードへのアークが無いことを表す「→」と「？」とを組み合わせたマークなどを図式と併せて表示する。
【００３６】
同時に、図式作成・情報出力部１１の情報出力機能は、図４（ｂ）に示すように、他ノードへのアークが無いノードからの遷移を定義する１つのアサーションの候補を作成して表示する。図４（ｂ）のような情報を提示することにより、設計者は不足しているアサーションを容易に認識して作成することができる。
【００３７】
また、図５（ａ）に示すように、図式の中に、「強連結成分」である連結成分１（ＣＣ１）があっても、これと連結されていない別の連結成分２（ＣＣ２）がある場合、図式作成・情報出力部１１の情報出力機能は、アサーションの不足を指摘する情報として、例えば、連結成分１（ＣＣ１）と連結成分２（ＣＣ２）との間を結ぶ向きの異なる２つのアークが不足していることを表す「→」と「？」とを組み合わせのマークなどを図式と併せて表示出力する。このとき、個々の連結成分の範囲を分かり易くした囲み線なども、図式と併せて表示出力する。
【００３８】
同時に、図式作成・情報出力部１１の情報出力機能は、図５（ｂ）に示すように、連結成分１（ＣＣ１）から連結成分２（ＣＣ２）への遷移、及び、連結成分２（ＣＣ２）から連結成分１（ＣＣ１）への遷移をそれぞれ定義する２つのアサーションの候補を作成して表示する。図５（ｂ）のような情報を提示することにより、設計者は不足しているアサーションを容易に認識して作成することができる。
【００３９】
図式作成・情報出力部１１の情報出力機能は、図５（ｂ）に示すように連結成分１（ＣＣ１）による「強連結成分」があっても、図式の中の「強連結成分」が１つだけにならない限り、アサーションの不足を指摘する処理および不足しているアサーションの追加を促す処理を繰り返し行う。
【００４０】
図式作成・情報出力部１１は、次に示す（１）〜（３）の手順に従って動作する。
【００４１】
（１）記述されるアサーション毎に、その内容に応じた図式の追加（ノード、アーク、信号名等の追加、あるいはＵＮＫ展開等）を行う。
【００４２】
（２）図式を検証し、連結の不足があれば、その不足を指摘し、該当するアサーションの追加を促す。また、信号名の不足（例えば、「pready」はあるが「!pready」がない、「!pready」はあるが「pready」がない等）があれば、その不足を指摘し、該当するアサーションの追加を促す。
【００４３】
（３）強連結成分が１つだけの図式が完成していなければ、上記（１），（２）を繰り返し、一方、完成していれば処理を終了する。
【００４４】
次に、図６乃至図８を参照して、図式作成・情報出力部１１による具体的な動作の一例について説明する。
【００４５】
本実施形態では、アサーション記述Ｄにアサーションが全く無い状態からでも、図式作成・情報出力部１１が設計者に必要な入力操作を促すことにより、設計者は作業を進めることができる。
【００４６】
例えば、図６に示すように、アサーションの記載が何も無い状態（空集合の状態）であれば、図式も無いが、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、アサーションの記載が何も無い空集合の状態であることを指摘すると共に、リセット時（解除直後）におけるアサーション追加を促す（ステップＳ１）。
【００４７】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００４８】
!preset_n |-> !penable
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、図式として新たなノードを作成して配置し、その上に「!preset_n」及び「!penable」を配置する（なお、以降に登場する図式においては、説明が煩雑となることを避けるため、上記「preset_n」の表記を省略する）。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、他ノードへのアークが無いノードがあることを指摘し、当該ノードからの遷移を定義するアサーションの追加を促す（ステップＳ２）。
【００４９】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００５０】
!penable |=> ##[0..$] penable
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、図式として新たなノードを作成して配置し、その上に「penable」を配置すると共に、ノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分が無いことを指摘し、他ノードへのアークの無いノード（penableが配置されたノード）からの遷移を定義するアサーションの追加を促す（ステップＳ３）。
【００５１】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００５２】
penable |-> !$UNK(pwrite)
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、「penable」が配置されたノードの上に「!$UNK(pwrite)」を配置する。「!$UNK(pwrite)」の場合は、「pwrite」の値が「０」と「１」のいずれの値をとるかによってその後の処理の流れが変わるため、図式作成・情報出力部１１は、「!$UNK(pwrite)」を配置したノードを展開し、「pwrite」を配置したノードと「!pwrite」を配置したノードに分けて配置し、これに追随してアークも２つに分けて配置する（ステップＳ４）。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分（２つ分）が無いことを指摘し、アークの無い２つのノード（「pwrite」が配置されたノード、および、「!pwrite」が配置されたノード）からの遷移に相当するアサーションの追加を促す（ステップＳ５）。
【００５３】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする（図７参照）。
【００５４】
penable && pwrite |-> $UNK(pwdata)
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、「penable」及び「pwrite」が配置されたノードの上に「$UNK(pwdata)」を配置する。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分はあるが弱連結成分がある（強連結成分でないものがある）ことを指摘し、他ノードへのアークの無いノード（２つ分）からの遷移に相当するアサーションの追加を促す（ステップＳ６）。
【００５５】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００５６】
penable && pwrite && !pready |=> $STB(penable, pwrite, !pwdata)
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、「penable」，「pwrite」，及び「$UNK(pwdata)」が配置されたノードに対し、追加分の信号「!pready」を配置する。なお、「$STB」は、前の値を保持することを意味するため、「penable」，「pwrite」，「pwdata」に変化はない。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分はあるが弱連結成分がある（強連結成分でないものがある）ことを指摘し、他ノードへのアークの無いノード（２つ）からの遷移に相当するアサーションの追加を促す。また、このとき、追加した「!pready」の逆条件である「pready」が存在しないため、「pready」を含むアサーションの追加を促す（ステップＳ７）。
【００５７】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００５８】
penable && pwrite && pready |=> !penable
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、追加分の信号「pready」を配置すると共に、該当するノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分はあるが弱連結成分がある（強連結成分でないものがある）ことを指摘し、他ノードへのアークの無いノード（「penable」及び「!pwrite」が配置されたノード）からの遷移に相当するアサーションの追加を促す（ステップＳ８）。
【００５９】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする（図８参照）。
【００６０】
penable && !pwrite && !pready |=> $STB(penable, !pwrite)
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、「penable」及び「!pwrite」が配置されたノードに対し、追加分の信号「!pready」を配置する。なお、「$STB」は、前の値を保持することを意味するため、「penable」，「!pwrite」に変化はない。ここで、図式作成・情報出力部１１は、出力装置３の表示画面を通じて、強連結成分はあるが弱連結成分がある（強連結成分でないものがある）ことを指摘し、他ノードへのアークの無いノード（「penable」及び「!pwrite」が配置されたノード）からの遷移に相当するアサーションの追加を促す。また、このとき、追加した「!pready」の逆条件である「pready」が存在しないため、「pready」を含むアサーションの追加を促す（ステップＳ９）。
【００６１】
これに応じて、設計者は、入力装置２を通じて、アサーション記述Ｄに例えば次のアサーションを追加するものとする。
【００６２】
penable && !pwrite && pready |=> !penable
すると、図式作成・情報出力部１１は、出力装置３の表示画面において、追加分の信号「pready」を配置すると共に、該当するノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部１１は、全てのノード間に強連結が形成されたことから、出力装置３の表示画面において、不足するアサーションが無い旨を通知し、アサーションの追加を促す処理を終了する（ステップＳ１０）。
【００６３】
本実施形態では、このように作成される図式を通じて、不足しているアサーションを確実に検出できると共に、不足しているアサーションの追加を設計者に促すことができるため、不足しているアサーションの検出漏れを防ぐことができ、また設計者がアサーションの不足に気が付かないという事態を防ぐことができる。
【００６４】
［２］網羅率演算・情報出力部１２の機能の詳細
次に、網羅率演算・情報出力部１２により演算されて表示出力される第１のアサーション網羅率について説明する。
【００６５】
第１のアサーション網羅率は、アサーション記述Ｄの中に必要なアサーションが網羅されている割合を示し、例えば、アサーション記述Ｄの中に存在するアサーションの数と、前述の図式作成・情報出力部１１により不足が指摘されたアサーションの不足数とを利用して算出される。例えば、前述した図４のケースでは、他ノードへのアークが無いノードからの遷移を定義する１つのアサーションが不足しているとみなし、アサーションの不足数を「１」とカウントする。また、前述した図５のケースでは、連結成分１（ＣＣ１）から連結成分２（ＣＣ２）への遷移、及び、連結成分２（ＣＣ２）から連結成分１（ＣＣ１）への遷移をそれぞれ定義する２つのアサーションが不足しているとみなし、アサーションの不足数を「２」とカウントする。
【００６６】
アサーション記述Ｄの中に存在するアサーションの数を「Ｎe」、図式作成・情報出力部１１により不足が指摘されたアサーションの不足数を「Ｎd」とすると、第１のアサーション網羅率は、例えば次のように表される。
【００６７】
（アサーション網羅率）＝Ｎｅ／（Ｎｅ＋Ｎｄ）      …（１）
なお、このアサーション網羅率は百分率で表現しても構わない。
【００６８】
網羅率演算・情報出力部１２は、このようなアサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報を出力装置３の表示画面に表示出力する。
【００６９】
このようなアサーション網羅率を示す情報を出力装置３の表示画面に表示させることにより、設計者はアサーション記述Ｄの完成の度合いを把握しやすく、また、アサーション記述Ｄの作成作業がしやすくなる。
【００７０】
［３］  表作成・情報出力部１３の機能の詳細
次に、図９を参照して、表作成・情報出力部１３により作成されて表示出力される表（テーブル）について説明する。
【００７１】
図９は、表作成・情報出力部１３により作成されて出力装置３の表示画面に表示出力される表の一例を示す図である。
【００７２】
ここでは、設計者がアサーション記述Ｄを作成し始めたばかりでアサーション記述Ｄがまだ完成されていないときの表の状態を示す。
【００７３】
図９に示すように、表の１列目には、回路４で使用される出力信号のすべての信号種を示す項目２１がそれぞれ配列されている。ただし、ここでは説明が煩雑となることを避けるため、実際のものよりも信号種の数を少なくして示している。図９の例では、出力信号の信号種として、「psel」，「penable」，「pwrite」，「paddr」，「pwdata」の５つが示されている。
【００７４】
また、表の１行目には、各アサーションの左辺に記述されている条件を示す項目２２がそれぞれ配列され、２行目には、各アサーションの左辺と右辺との間にある記号が「|->」と「|=>」のいずれであるかを示す項目２３が配列されている。また、これらの項目が配列される行または列との組み合わせにより、５行×９列＝４５個のセルが構成されている。
【００７５】
表作成・情報出力部１３は、図１に示される信号リストＬに基づき、回路４で使用される出力信号のすべてを表の１列目に配列する。
【００７６】
また、表作成・情報出力部１３は、アサーション記述Ｄが更新される毎に、アサーション記述Ｄから個々のアサーションを抽出し、各アサーションの左辺に記述されている条件及び記号（「|->」又は「|=>」）のすべてを表の１行目及び２行目にそれぞれ配列すると共に、各アサーションの右辺に記述されている期待動作のすべてを、該当する出力信号および該当する条件と同行同列に位置するセルに記入する。この結果、図９の表の例では、４５個のセルのうち、１７個のセルに、各アサーションの右辺に記述されている期待動作がそれぞれ記入されている状態にある。
【００７７】
上記４５個のセルのうち、期待動作が記入されていない任意のセルに対し、設計者は所定の入力操作を行うことにより、当該セルと同列に配置されている項目２２中の条件に対して当該セルと同行に配置されている項目２１中の出力信号が無関係であることを示す「$norelation」なる記号を記入することができる。表作成・情報出力部１３は、期待動作が記入されていない空白のセルに対し、所定の入力操作がなされた場合には、当該セルに「$norelation」を記入して表示させる。
【００７８】
また、表作成・情報出力部１３は、アサーション記述Ｄの中に、ある条件に対してある出力信号が無関係であることを宣言する特定のアサーションが存在する場合に、「$norelation」を該当するセルに記入して表示させる機能も備えている。特定のアサーションは、例えばアサーション記述Ｄの中で次のように記述される。
【００７９】
A |-> $norelation(B)
このアサーションは、BはAに対して無関係であることを示している。
【００８０】
設計者は、表における個々のセルに「$norelation」が表示されている所は検討済みであり、一方、何も表示されていない所は未検討の状態である、ということを容易に把握することができるので、アサーション記述Ｄの完成の度合いを把握しやすく、また、アサーション記述Ｄの作成作業がしやすくなる。
【００８１】
ここで、図９の表に基づく第２のアサーション網羅率の算出について説明する。
【００８２】
項目２２に記載されている条件の数をＮｃ、項目２１に記載されている出力信号の数をＮｏ、セルに記入されている期待動作の数をＮｒ、セルに記入されている$norelationの数をＮｎとすると、第２のアサーション網羅率は、例えば次のように表される。
【００８３】
（アサーション網羅率）＝（Ｎｒ＋Ｎｎ）／（Ｎｃ＋Ｎｏ）      …（２）
図９の表の例では、Ｎｃ＝９、Ｎｏ＝５であるため、分母の（Ｎｃ＋Ｎｏ）は４５となる。また、Ｎｒ＝１７、Ｎｎ＝１であるため、分子の（Ｎｒ＋Ｎｎ）は１８となる。
【００８４】
なお、このアサーション網羅率は百分率で表現しても構わない。
【００８５】
網羅率演算・情報出力部１２は、このようなアサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報を出力装置３の表示画面に表示出力する。
【００８６】
このようなアサーション網羅率を示す情報を出力装置３の表示画面に表示させることにより、設計者はアサーション記述Ｄの完成の度合いを把握しやすく、また、アサーション記述Ｄの作成作業がしやすくなる。
【００８７】
図１０（ａ），（ｂ）に、それぞれ、前述した（１）式による第１のアサーション網羅率と（２）式による第２のアサーション網羅率のそれぞれの経時変化の例を対比して示す。
【００８８】
上記（１）式による第１のアサーション網羅率においては、図１０（ａ）に示すように、分母の数値と分子の数値とは、それぞれ、設計者がアサーション記述Ｄの作成を始めてから完成に至る過程で、徐々に上昇していく傾向がある。
【００８９】
一方、上記（２）式による第２のアサーション網羅率においては、図１０（ｂ）に示すように、分母の数値は設計者がアサーション記述Ｄの作成を始めてから完成に至るまで不変であり、分子の数値は設計者がアサーション記述Ｄの作成を始めてから完成に至る過程で、徐々に上昇していく傾向がある。
【００９０】
いずれのケースも、アサーション記述Ｄの作成を始めてしばらくの間は、アサーションの不足が度々発生するため、分母の数値に対して分子の数値の方が小さく、アサーション網羅率は比較的低い値をとる。アサーションの追加によりアサーションの不足が徐々に少なくなると、分子の数値が分母の数値に徐々に近づき、アサーション網羅率は上昇していく。アサーション記述Ｄが完成した時点では、分母の数値と分子の数値とが一致し、アサーション網羅率は１（もしくは１００％）となる。
【００９１】
次に、図１１を参照して、本実施形態の回路設計検証装置１による動作の一例を説明する。
【００９２】
回路設計検証装置１は、信号リストＬを取り込むと共に、アサーション記述Ｄが更新される毎にアサーション記述Ｄを取り込み、そのアサーション記述Ｄから個々のアサーションを抽出してその記述内容の解析を行う（ステップＳ１１）。
【００９３】
次に、回路設計検証装置１は、アサーション記述Ｄの解析結果に基づき、記述されている個々のアサーションに対応する図式（グラフ）を作成すると共に、作成した図式を出力装置３に表示出力する（ステップＳ１２Ａ）。
【００９４】
また、回路設計検証装置１は、アサーション記述Ｄの解析結果に基づき、例えば前述した（１）式を用いて、アサーション記述Ｄの中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率とする情報を出力装置３に表示出力する（ステップＳ１２Ｂ）。
【００９５】
また、回路設計検証装置１は、信号リストＬ及びアサーション記述Ｄの解析結果に基づき、例えば図９に示す表を作成し、作成した表を示す情報を出力装置３に表示出力する（ステップＳ１２Ｃ）。なお、回路設計検証装置１は、表示された表の中の複数のセルのうち、期待動作が記入されていない空白のセルに対して、所定の入力操作がなされた場合には、当該セルに「$norelation」を記入して表示させる。
【００９６】
さらに、回路設計検証装置１は、作成した表に基づき、例えば前述した（２）式を用いて、前記複数のセルに対して期待動作や後述する特定の記号「$norelation」が記述されているセルの割合を演算し、当該割合をアサーション網羅率とする情報を出力する（ステップＳ１２Ｄ）。
【００９７】
次に、回路設計検証装置１は、ステップＳ１２Ａにおいて作成及び表示が行われた図式において連結が不足している（あるいは信号名が不足している）等の指摘すべき事項があるか否かを検証する（ステップＳ１３）。
【００９８】
ここで、連結が不足している（あるいは信号名が不足している）等の指摘すべき事項があれば（ステップＳ１４のＹＥＳ）、その旨を指摘する情報を出力装置３に表示出力し（ステップＳ１５）、ステップＳ１１からの処理を繰り返す。
【００９９】
一方、連結が不足している（あるいは信号名が不足している）等の指摘すべき事項がなければ（ステップＳ１４のＮＯ）、一連の処理を終了する。
【０１００】
なお、ステップＳ１２Ｂ，Ｓ１２Ｃ，Ｓ１２Ｄの処理は、必須の処理ではなく、省略することも可能である。
【０１０１】
本実施形態では、作成される図式を通じて、不足しているアサーションを確実に検出できると共に、不足しているアサーションの追加を設計者に促すことができるため、不足しているアサーションの検出漏れを防ぐことができ、また設計者がアサーションの不足に気が付かないという事態を防ぐことができる。
【０１０２】
また、本実施形態では、アサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報が表示画面に表示されるため、設計者はアサーション記述Ｄの完成の度合いを把握しやすく、また、アサーション記述Ｄの作成作業がしやすくなる。
【０１０３】
また、本実施形態では、回路で使用される出力信号と個々のアサーションの条件、期待動作との関係がわかる表が表示画面に表示されるため、アサーション記述Ｄの完成の度合いを把握しやすく、また、アサーション記述Ｄの作成作業がしやすくなる。
【０１０４】
以上詳述したように実施形態によれば、不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとすることができる。
【０１０５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１…回路設計検証装置、２…入力装置、３…出力装置、４…回路、１０…プロセッサ、１１…図式作成・情報出力部、１２…網羅率演算・情報出力部、１３…表作成・情報出力部、Ｄ…アサーション記述、Ｌ…信号リスト。
【図１】
2017167732.tif 000003
【図２】
2017167732.tif 000004
【図３】
2017167732.tif 000005
【図４】
2017167732.tif 000006
【図５】
2017167732.tif 000007
【図６】
2017167732.tif 000008
【図７】
2017167732.tif 000009
【図８】
2017167732.tif 000010
【図９】
2017167732.tif 000011
【図１０】
2017167732.tif 000012
【図１１】
2017167732.tif 000013