JP2017167732A - 回路設計検証装置およびプログラム - Google Patents

回路設計検証装置およびプログラム Download PDF

Info

Publication number
JP2017167732A
JP2017167732A JP2016051114A JP2016051114A JP2017167732A JP 2017167732 A JP2017167732 A JP 2017167732A JP 2016051114 A JP2016051114 A JP 2016051114A JP 2016051114 A JP2016051114 A JP 2016051114A JP 2017167732 A JP2017167732 A JP 2017167732A
Authority
JP
Japan
Prior art keywords
assertion
function
diagram
output
information
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.)
Pending
Application number
JP2016051114A
Other languages
English (en)
Inventor
岳央 西出
Takeo Nishide
岳央 西出
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016051114A priority Critical patent/JP2017167732A/ja
Priority to US15/253,517 priority patent/US10515179B2/en
Publication of JP2017167732A publication Critical patent/JP2017167732A/ja
Priority to US16/502,933 priority patent/US10706207B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとする。
【解決手段】 実施形態によれば、回路のアサーション記述の検証に使用されるプログラムが提供される。このプログラムは、前記回路のアサーション記述に基づき、1つのサイクルにおける1つ又は複数の信号の状態を1つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能とをコンピュータに実現させる。
【選択図】図1

Description

本発明の実施形態は、回路設計検証装置およびプログラムに関する。
電気回路の設計においては、対象となる回路の動作を定義するに際し、該回路から出力される各種の出力信号の遷移をアサーションと呼ばれる文で表現したアサーション記述を作成することがある。
一般に、アサーション記述は最初から完全なものとして仕上げることが難しいため、設計者は何らかの支援ツールを使用する。支援ツールには、アサーション記述から漏れている信号名を検出して出力するものや、信号名を元にアサーションの網羅度(カバレッジ)を求めて出力するものがある。
いずれの支援ツールを使用した場合も、不足しているアサーションの検出漏れが生じることがあり、また設計者がそのことに気が付かないことがある。
特開2010−113395号公報 特開平11−85828号公報 特許第5287092号公報
不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとすることができる回路設計検証装置およびプログラムを提供する。
実施形態によれば、回路のアサーション記述の検証に使用されるプログラムが提供される。このプログラムは、前記回路のアサーション記述に基づき、1つのサイクルにおける1つ又は複数の信号の状態を1つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能とをコンピュータに実現させる。
一実施形態に係る回路設計検証装置の構成の一例を示すブロック図。 所定の仕様に準拠したコマンドやデータ等の信号を入出力する回路を示す図。 同実施形態に係る回路設計検証装置により作成されて表示出力される図式の例を示す図。 同実施形態に係る回路設計検証装置により作成されて表示出力される、アサーションの不足を指摘する情報が伴った図式の例を示す図。 同実施形態に係る回路設計検証装置により作成されて表示出力される、アサーションの不足を指摘する情報が伴った図式の例を示す図。 同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。 同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。 同実施形態に係る回路設計検証装置による具体的な動作の一部分の例を示す図。 同実施形態に係る回路設計検証装置により作成されて表示出力される表の一例を示す図。 同実施形態に係る回路設計検証装置により作成されて表示出力される第1のアサーション網羅率と第2のアサーション網羅率のそれぞれの経時変化の例を対比して示す図。 同実施形態に係る回路設計検証装置による動作の一例を示す図。
以下、図面を参照して実施の形態について説明する。
図1は、実施形態に係る回路設計検証装置の構成の一例を示すブロック図である。
図1に示される回路設計検証装置1は、半導体装置を構成する回路のアサーション記述を検証するものであり、例えばコンピュータを用いて実現される。
この回路設計検証装置1は、入力装置2および出力装置3を備え、プロセッサ10を内蔵している。入力装置2は、例えばキーボードやマウスなどに相当する。出力装置3は、例えばディスプレイなどの表示装置に相当する。プロセッサ10は、所定のプログラムを実行することにより、後述する図式作成・情報出力部11、網羅率演算・情報出力部12、および表作成・情報出力部13を含む各種の機能を実現する。
回路設計検証装置1は、例えば、設計者が作成したアサーション記述Dおよび信号リストLを取り込み、信号リストLを使用しつつアサーション記述Dの検証を行い、検証結果を含む各種の情報を出力装置3に表示出力したり、設計者による入力装置2の入力操作に応じて各種の処理を実行したりすることができる。また、回路設計検証装置1は、設計者がアサーション記述Dの更新(例えば新たなアサーションの追加によるアサーション記述Dの補完)を行う毎に、更新後のアサーション記述Dを取り込み、アサーション記述Dの検証や検証結果の出力の処理を繰り返すことができる。
アサーション記述Dは、例えば図2に示すように所定の仕様に準拠したコマンドやデータ等の信号を入出力する回路4を対象に設計者が作成した又は作成途中の段階にある1つ又は複数のアサーションの記述である。信号リストLは、回路4で使用される出力信号,入力信号の種類(もしくは信号名)を示す情報を記載したものである。
図2の回路4で使用される主な出力信号(制御信号、データ信号)および入力信号(制御信号、データ信号)の種類としては、次のようなものが挙げられる。
(1)出力信号
・penable
・pwrite
・pwdata
・psel
・paddr
・$unknown(以下、「$UNK」と表記する。)
・$stable(以下、「$STB」と表記する。)
「penable」は、データ転送を可能な状態にするイネーブル信号である。「pwrite」は、ハイのときにライトアクセス、ローのときにリードアクセスとなる信号である。「pwdata」は、「pwrite」がハイのときに転送されるライトデータである。「psel」は、選択されたことを示すセレクト信号である。「paddr」は、アドレスを示すアドレス信号である。「$UNK」は、4値(0,1,X(不定),Z(ハイインピーダンス))のうちのX(不定)を示す信号である。「$STB」は、前の値を保持することを示す信号である。
(2)入力信号
・pready
・prdata
「pready」は、レディ信号である。「prdata」は、「pwrite」がローのときに転送されるリードデータである。
上述の図式作成・情報出力部11は、回路4のアサーション記述Dに基づき、1つのサイクルにおける1つ又は複数の信号の状態を1つのノードで表現すると共にサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結(「アーク」と呼ぶ場合がある。)で表現した図式(「グラフ」と呼ぶ場合がある。)を作成する図式作成機能を有する。
また、図式作成・情報出力部11は、上記図式作成機能で作成した図式を出力装置3に表示出力するとともに、当該図式において少なくとも連結の不足が発生している場合にアサーションの不足を指摘する情報を当該図式と併せて出力装置3に表示出力する情報出力機能を有する。
網羅率演算・情報出力部12は、アサーション記述Dの中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率(第1のアサーション網羅率)とする情報を出力装置3に表示出力する第1の網羅率出力機能を有する。
表作成・情報出力部13は、回路4で使用される出力信号の信号種を示す情報がそれぞれ配列される列または行と、各アサーションの左辺に記述されている条件を示す情報がそれぞれ配列される行または列との組み合わせで構成される複数のセルを有し、各アサーションの右辺に記述されている期待動作が該当する出力信号および該当する条件と同行同列に位置するセルに記入された表(テーブル)を作成し、作成した表を示す情報を出力装置3に表示出力する表作成出力機能を有する。
また、上記網羅率演算・情報出力部12は、表作成・情報出力部13により作成された表に基づき、前記複数のセルに対して期待動作や後述する特定の記号「$norelation」が記述されているセルの割合を演算し、当該割合をアサーション網羅率(第2のアサーション網羅率)とする情報を出力装置3に表示出力する第2の網羅率出力機能を有する。
上記プログラムは、このような図式作成・情報出力部11、網羅率演算・情報出力部12、および表作成・情報出力部13を含む各種の機能をコンピュータに実現させることができる。
[1]図式作成・情報出力部11の機能の詳細
次に、図3を参照して、図式作成・情報出力部11の図式作成機能により作成されて表示出力される図式について説明する。図3(a)はあるアサーションの一例を示し、図3(b)はこのアサーションに対応して作成される図式の一例を示している。
図3(a)に示されるアサーションの例では、左から順に、「penable && pready」、「|=>」、「!penable」が記述されている。この例では、あるサイクルにおいて、対象の出力信号が「penable」のときに、入力信号「ready」が返ってきたら、次のサイクルにおいて、「!penable」となる(「penable」の状態が解除され、初期の状態へ戻る)ことを表している。ここで、「|=>」は次サイクルへの状態変化を示す。なお、「|=>」でなく「|->」の場合は、同サイクル内の状態変化を示す。また、「|=>」の左側(左辺)は、対象の出力信号に関する条件を示し、右側(右辺)はその期待動作を示す。「&&」は対象の出力信号と共に条件を構成する別の入力信号または出力信号を記述する場合に併せて記述される記号である。
図3(b)に示される図式の例では、2つのノードが配置され、これら2つのノードの間に1つのアークが配置されている。アークは「|=>」に対応し、アークの始点に接続されるノードは「|=>」の左側(左辺)に対応し、アークの終点に接続されるノードは「|=>」の右側(右辺)に対応する。この例では、出力信号「penable」がアークの始点に接続されるノードに対応するように配置され、入力信号「pready」がアークに対応するように配置され、「!penable」がアークの終点となるノードに対応するように配置されている。ただし、入力信号「pready」はアークに対応するように配置するのではなく、アークの始点となるノードに対応するように配置してもよい。
図式作成・情報出力部11の図式作成機能は、アサーション記述Dが更新される毎に、アサーション記述Dから個々のアサーションを抽出してその記述内容の解析を行い、一定のルールに従って図式を作成する。
例えば、アサーション記述Dの中に「|->」があれば、左辺に記述されている信号名が配置されたノードの上に、右辺に記述されている信号名を加えて配置する。一方、アサーション記述Dの中に「|=>」があれば、新たなノードを作成して配置し、その上に右辺に記述されている信号名を配置し、さらに、左辺に記述されている信号名が配置されたノードと新たに作成したノードとを連結するアークを新たに作成して配置する。
また、アサーション記述Dの中に「!$UNK(...)」があり、その対象となる信号「...」が制御信号である場合、その信号「...」はX(不定)ではない値、即ち、「0」又は「1」の値をとり、「0」と「1」のいずれの値をとるかによってその後の処理の流れが変わるため、「!$UNK(...)」が配置されるノードを2通りに展開する。これをUNK展開と称す。例えば「!$UNK(pwrite)」の場合であれば、「!$UNK(pwrite)」を配置したノードを、「pwrite」を配置したノードと「!pwrite」を配置したノードに分けて配置する。
また、アサーション記述Dの中に「|=>」があっても、その右辺に「$STB(...)」があれば、新たなノードやアークは作成しない。その対象となる信号「...」は、左辺に記述されている信号名が配置されている既存のノードの上に配置されたままとする。
次に、図4および図5を参照して、図式作成・情報出力部11の情報出力機能により表示出力される、アサーションの不足を指摘する情報が伴った図式の概要について説明する。
図4および図5に、アサーションの不足を指摘すると同時に不足しているアサーションの追加を促す情報を含む表示画面の2つの例を示す。
以下では、ノード間に1つの連結だけがある場合を「弱連結」と呼び、ノード間に2つの互いに向きの異なる連結がある場合を「強連結」と呼ぶ。また、連結されたノード群の集まり(もしくは連結のない1つのノード)を、1つの「連結成分」とみなす。特に「強連結」だけで連結されたノード群の集まりを「強連結成分」と呼ぶ。本実施形態では、図式の中の「強連結成分」が1つだけになるまで、アサーションの不足を指摘する処理および不足しているアサーションの追加を促す処理が繰り返し行われる。
図式作成・情報出力部11の情報出力機能は、他ノードへの連結が不足しているノードがある場合に、アサーションの不足を指摘する情報を図式と併せて表示すると共に、不足しているアサーションの追加を促す情報を表示する。
例えば、図4(a)に示すように、図式の中に、ノード間に連結があってもこの連結が「強連結」でない場合、図式作成・情報出力部11の情報出力機能は、アサーションの不足を指摘する情報として、例えば、「!penable」が配置されたノードから他ノードへのアークが無いことを表す「→」と「?」とを組み合わせたマークなどを図式と併せて表示する。
同時に、図式作成・情報出力部11の情報出力機能は、図4(b)に示すように、他ノードへのアークが無いノードからの遷移を定義する1つのアサーションの候補を作成して表示する。図4(b)のような情報を提示することにより、設計者は不足しているアサーションを容易に認識して作成することができる。
また、図5(a)に示すように、図式の中に、「強連結成分」である連結成分1(CC1)があっても、これと連結されていない別の連結成分2(CC2)がある場合、図式作成・情報出力部11の情報出力機能は、アサーションの不足を指摘する情報として、例えば、連結成分1(CC1)と連結成分2(CC2)との間を結ぶ向きの異なる2つのアークが不足していることを表す「→」と「?」とを組み合わせのマークなどを図式と併せて表示出力する。このとき、個々の連結成分の範囲を分かり易くした囲み線なども、図式と併せて表示出力する。
同時に、図式作成・情報出力部11の情報出力機能は、図5(b)に示すように、連結成分1(CC1)から連結成分2(CC2)への遷移、及び、連結成分2(CC2)から連結成分1(CC1)への遷移をそれぞれ定義する2つのアサーションの候補を作成して表示する。図5(b)のような情報を提示することにより、設計者は不足しているアサーションを容易に認識して作成することができる。
図式作成・情報出力部11の情報出力機能は、図5(b)に示すように連結成分1(CC1)による「強連結成分」があっても、図式の中の「強連結成分」が1つだけにならない限り、アサーションの不足を指摘する処理および不足しているアサーションの追加を促す処理を繰り返し行う。
図式作成・情報出力部11は、次に示す(1)〜(3)の手順に従って動作する。
(1)記述されるアサーション毎に、その内容に応じた図式の追加(ノード、アーク、信号名等の追加、あるいはUNK展開等)を行う。
(2)図式を検証し、連結の不足があれば、その不足を指摘し、該当するアサーションの追加を促す。また、信号名の不足(例えば、「pready」はあるが「!pready」がない、「!pready」はあるが「pready」がない等)があれば、その不足を指摘し、該当するアサーションの追加を促す。
(3)強連結成分が1つだけの図式が完成していなければ、上記(1),(2)を繰り返し、一方、完成していれば処理を終了する。
次に、図6乃至図8を参照して、図式作成・情報出力部11による具体的な動作の一例について説明する。
本実施形態では、アサーション記述Dにアサーションが全く無い状態からでも、図式作成・情報出力部11が設計者に必要な入力操作を促すことにより、設計者は作業を進めることができる。
例えば、図6に示すように、アサーションの記載が何も無い状態(空集合の状態)であれば、図式も無いが、図式作成・情報出力部11は、出力装置3の表示画面を通じて、アサーションの記載が何も無い空集合の状態であることを指摘すると共に、リセット時(解除直後)におけるアサーション追加を促す(ステップS1)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
!preset_n |-> !penable
すると、図式作成・情報出力部11は、出力装置3の表示画面において、図式として新たなノードを作成して配置し、その上に「!preset_n」及び「!penable」を配置する(なお、以降に登場する図式においては、説明が煩雑となることを避けるため、上記「preset_n」の表記を省略する)。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、他ノードへのアークが無いノードがあることを指摘し、当該ノードからの遷移を定義するアサーションの追加を促す(ステップS2)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
!penable |=> ##[0..$] penable
すると、図式作成・情報出力部11は、出力装置3の表示画面において、図式として新たなノードを作成して配置し、その上に「penable」を配置すると共に、ノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分が無いことを指摘し、他ノードへのアークの無いノード(penableが配置されたノード)からの遷移を定義するアサーションの追加を促す(ステップS3)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
penable |-> !$UNK(pwrite)
すると、図式作成・情報出力部11は、出力装置3の表示画面において、「penable」が配置されたノードの上に「!$UNK(pwrite)」を配置する。「!$UNK(pwrite)」の場合は、「pwrite」の値が「0」と「1」のいずれの値をとるかによってその後の処理の流れが変わるため、図式作成・情報出力部11は、「!$UNK(pwrite)」を配置したノードを展開し、「pwrite」を配置したノードと「!pwrite」を配置したノードに分けて配置し、これに追随してアークも2つに分けて配置する(ステップS4)。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分(2つ分)が無いことを指摘し、アークの無い2つのノード(「pwrite」が配置されたノード、および、「!pwrite」が配置されたノード)からの遷移に相当するアサーションの追加を促す(ステップS5)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする(図7参照)。
penable && pwrite |-> $UNK(pwdata)
すると、図式作成・情報出力部11は、出力装置3の表示画面において、「penable」及び「pwrite」が配置されたノードの上に「$UNK(pwdata)」を配置する。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分はあるが弱連結成分がある(強連結成分でないものがある)ことを指摘し、他ノードへのアークの無いノード(2つ分)からの遷移に相当するアサーションの追加を促す(ステップS6)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
penable && pwrite && !pready |=> $STB(penable, pwrite, !pwdata)
すると、図式作成・情報出力部11は、出力装置3の表示画面において、「penable」,「pwrite」,及び「$UNK(pwdata)」が配置されたノードに対し、追加分の信号「!pready」を配置する。なお、「$STB」は、前の値を保持することを意味するため、「penable」,「pwrite」,「pwdata」に変化はない。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分はあるが弱連結成分がある(強連結成分でないものがある)ことを指摘し、他ノードへのアークの無いノード(2つ)からの遷移に相当するアサーションの追加を促す。また、このとき、追加した「!pready」の逆条件である「pready」が存在しないため、「pready」を含むアサーションの追加を促す(ステップS7)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
penable && pwrite && pready |=> !penable
すると、図式作成・情報出力部11は、出力装置3の表示画面において、追加分の信号「pready」を配置すると共に、該当するノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分はあるが弱連結成分がある(強連結成分でないものがある)ことを指摘し、他ノードへのアークの無いノード(「penable」及び「!pwrite」が配置されたノード)からの遷移に相当するアサーションの追加を促す(ステップS8)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする(図8参照)。
penable && !pwrite && !pready |=> $STB(penable, !pwrite)
すると、図式作成・情報出力部11は、出力装置3の表示画面において、「penable」及び「!pwrite」が配置されたノードに対し、追加分の信号「!pready」を配置する。なお、「$STB」は、前の値を保持することを意味するため、「penable」,「!pwrite」に変化はない。ここで、図式作成・情報出力部11は、出力装置3の表示画面を通じて、強連結成分はあるが弱連結成分がある(強連結成分でないものがある)ことを指摘し、他ノードへのアークの無いノード(「penable」及び「!pwrite」が配置されたノード)からの遷移に相当するアサーションの追加を促す。また、このとき、追加した「!pready」の逆条件である「pready」が存在しないため、「pready」を含むアサーションの追加を促す(ステップS9)。
これに応じて、設計者は、入力装置2を通じて、アサーション記述Dに例えば次のアサーションを追加するものとする。
penable && !pwrite && pready |=> !penable
すると、図式作成・情報出力部11は、出力装置3の表示画面において、追加分の信号「pready」を配置すると共に、該当するノード間を連結するアークを新たに作成して配置する。ここで、図式作成・情報出力部11は、全てのノード間に強連結が形成されたことから、出力装置3の表示画面において、不足するアサーションが無い旨を通知し、アサーションの追加を促す処理を終了する(ステップS10)。
本実施形態では、このように作成される図式を通じて、不足しているアサーションを確実に検出できると共に、不足しているアサーションの追加を設計者に促すことができるため、不足しているアサーションの検出漏れを防ぐことができ、また設計者がアサーションの不足に気が付かないという事態を防ぐことができる。
[2]網羅率演算・情報出力部12の機能の詳細
次に、網羅率演算・情報出力部12により演算されて表示出力される第1のアサーション網羅率について説明する。
第1のアサーション網羅率は、アサーション記述Dの中に必要なアサーションが網羅されている割合を示し、例えば、アサーション記述Dの中に存在するアサーションの数と、前述の図式作成・情報出力部11により不足が指摘されたアサーションの不足数とを利用して算出される。例えば、前述した図4のケースでは、他ノードへのアークが無いノードからの遷移を定義する1つのアサーションが不足しているとみなし、アサーションの不足数を「1」とカウントする。また、前述した図5のケースでは、連結成分1(CC1)から連結成分2(CC2)への遷移、及び、連結成分2(CC2)から連結成分1(CC1)への遷移をそれぞれ定義する2つのアサーションが不足しているとみなし、アサーションの不足数を「2」とカウントする。
アサーション記述Dの中に存在するアサーションの数を「Ne」、図式作成・情報出力部11により不足が指摘されたアサーションの不足数を「Nd」とすると、第1のアサーション網羅率は、例えば次のように表される。
(アサーション網羅率)=Ne/(Ne+Nd) …(1)
なお、このアサーション網羅率は百分率で表現しても構わない。
網羅率演算・情報出力部12は、このようなアサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報を出力装置3の表示画面に表示出力する。
このようなアサーション網羅率を示す情報を出力装置3の表示画面に表示させることにより、設計者はアサーション記述Dの完成の度合いを把握しやすく、また、アサーション記述Dの作成作業がしやすくなる。
[3] 表作成・情報出力部13の機能の詳細
次に、図9を参照して、表作成・情報出力部13により作成されて表示出力される表(テーブル)について説明する。
図9は、表作成・情報出力部13により作成されて出力装置3の表示画面に表示出力される表の一例を示す図である。
ここでは、設計者がアサーション記述Dを作成し始めたばかりでアサーション記述Dがまだ完成されていないときの表の状態を示す。
図9に示すように、表の1列目には、回路4で使用される出力信号のすべての信号種を示す項目21がそれぞれ配列されている。ただし、ここでは説明が煩雑となることを避けるため、実際のものよりも信号種の数を少なくして示している。図9の例では、出力信号の信号種として、「psel」,「penable」,「pwrite」,「paddr」,「pwdata」の5つが示されている。
また、表の1行目には、各アサーションの左辺に記述されている条件を示す項目22がそれぞれ配列され、2行目には、各アサーションの左辺と右辺との間にある記号が「|->」と「|=>」のいずれであるかを示す項目23が配列されている。また、これらの項目が配列される行または列との組み合わせにより、5行×9列=45個のセルが構成されている。
表作成・情報出力部13は、図1に示される信号リストLに基づき、回路4で使用される出力信号のすべてを表の1列目に配列する。
また、表作成・情報出力部13は、アサーション記述Dが更新される毎に、アサーション記述Dから個々のアサーションを抽出し、各アサーションの左辺に記述されている条件及び記号(「|->」又は「|=>」)のすべてを表の1行目及び2行目にそれぞれ配列すると共に、各アサーションの右辺に記述されている期待動作のすべてを、該当する出力信号および該当する条件と同行同列に位置するセルに記入する。この結果、図9の表の例では、45個のセルのうち、17個のセルに、各アサーションの右辺に記述されている期待動作がそれぞれ記入されている状態にある。
上記45個のセルのうち、期待動作が記入されていない任意のセルに対し、設計者は所定の入力操作を行うことにより、当該セルと同列に配置されている項目22中の条件に対して当該セルと同行に配置されている項目21中の出力信号が無関係であることを示す「$norelation」なる記号を記入することができる。表作成・情報出力部13は、期待動作が記入されていない空白のセルに対し、所定の入力操作がなされた場合には、当該セルに「$norelation」を記入して表示させる。
また、表作成・情報出力部13は、アサーション記述Dの中に、ある条件に対してある出力信号が無関係であることを宣言する特定のアサーションが存在する場合に、「$norelation」を該当するセルに記入して表示させる機能も備えている。特定のアサーションは、例えばアサーション記述Dの中で次のように記述される。
A |-> $norelation(B)
このアサーションは、BはAに対して無関係であることを示している。
設計者は、表における個々のセルに「$norelation」が表示されている所は検討済みであり、一方、何も表示されていない所は未検討の状態である、ということを容易に把握することができるので、アサーション記述Dの完成の度合いを把握しやすく、また、アサーション記述Dの作成作業がしやすくなる。
ここで、図9の表に基づく第2のアサーション網羅率の算出について説明する。
項目22に記載されている条件の数をNc、項目21に記載されている出力信号の数をNo、セルに記入されている期待動作の数をNr、セルに記入されている$norelationの数をNnとすると、第2のアサーション網羅率は、例えば次のように表される。
(アサーション網羅率)=(Nr+Nn)/(Nc+No) …(2)
図9の表の例では、Nc=9、No=5であるため、分母の(Nc+No)は45となる。また、Nr=17、Nn=1であるため、分子の(Nr+Nn)は18となる。
なお、このアサーション網羅率は百分率で表現しても構わない。
網羅率演算・情報出力部12は、このようなアサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報を出力装置3の表示画面に表示出力する。
このようなアサーション網羅率を示す情報を出力装置3の表示画面に表示させることにより、設計者はアサーション記述Dの完成の度合いを把握しやすく、また、アサーション記述Dの作成作業がしやすくなる。
図10(a),(b)に、それぞれ、前述した(1)式による第1のアサーション網羅率と(2)式による第2のアサーション網羅率のそれぞれの経時変化の例を対比して示す。
上記(1)式による第1のアサーション網羅率においては、図10(a)に示すように、分母の数値と分子の数値とは、それぞれ、設計者がアサーション記述Dの作成を始めてから完成に至る過程で、徐々に上昇していく傾向がある。
一方、上記(2)式による第2のアサーション網羅率においては、図10(b)に示すように、分母の数値は設計者がアサーション記述Dの作成を始めてから完成に至るまで不変であり、分子の数値は設計者がアサーション記述Dの作成を始めてから完成に至る過程で、徐々に上昇していく傾向がある。
いずれのケースも、アサーション記述Dの作成を始めてしばらくの間は、アサーションの不足が度々発生するため、分母の数値に対して分子の数値の方が小さく、アサーション網羅率は比較的低い値をとる。アサーションの追加によりアサーションの不足が徐々に少なくなると、分子の数値が分母の数値に徐々に近づき、アサーション網羅率は上昇していく。アサーション記述Dが完成した時点では、分母の数値と分子の数値とが一致し、アサーション網羅率は1(もしくは100%)となる。
次に、図11を参照して、本実施形態の回路設計検証装置1による動作の一例を説明する。
回路設計検証装置1は、信号リストLを取り込むと共に、アサーション記述Dが更新される毎にアサーション記述Dを取り込み、そのアサーション記述Dから個々のアサーションを抽出してその記述内容の解析を行う(ステップS11)。
次に、回路設計検証装置1は、アサーション記述Dの解析結果に基づき、記述されている個々のアサーションに対応する図式(グラフ)を作成すると共に、作成した図式を出力装置3に表示出力する(ステップS12A)。
また、回路設計検証装置1は、アサーション記述Dの解析結果に基づき、例えば前述した(1)式を用いて、アサーション記述Dの中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率とする情報を出力装置3に表示出力する(ステップS12B)。
また、回路設計検証装置1は、信号リストL及びアサーション記述Dの解析結果に基づき、例えば図9に示す表を作成し、作成した表を示す情報を出力装置3に表示出力する(ステップS12C)。なお、回路設計検証装置1は、表示された表の中の複数のセルのうち、期待動作が記入されていない空白のセルに対して、所定の入力操作がなされた場合には、当該セルに「$norelation」を記入して表示させる。
さらに、回路設計検証装置1は、作成した表に基づき、例えば前述した(2)式を用いて、前記複数のセルに対して期待動作や後述する特定の記号「$norelation」が記述されているセルの割合を演算し、当該割合をアサーション網羅率とする情報を出力する(ステップS12D)。
次に、回路設計検証装置1は、ステップS12Aにおいて作成及び表示が行われた図式において連結が不足している(あるいは信号名が不足している)等の指摘すべき事項があるか否かを検証する(ステップS13)。
ここで、連結が不足している(あるいは信号名が不足している)等の指摘すべき事項があれば(ステップS14のYES)、その旨を指摘する情報を出力装置3に表示出力し(ステップS15)、ステップS11からの処理を繰り返す。
一方、連結が不足している(あるいは信号名が不足している)等の指摘すべき事項がなければ(ステップS14のNO)、一連の処理を終了する。
なお、ステップS12B,S12C,S12Dの処理は、必須の処理ではなく、省略することも可能である。
本実施形態では、作成される図式を通じて、不足しているアサーションを確実に検出できると共に、不足しているアサーションの追加を設計者に促すことができるため、不足しているアサーションの検出漏れを防ぐことができ、また設計者がアサーションの不足に気が付かないという事態を防ぐことができる。
また、本実施形態では、アサーション網羅率の経時変化、もしくはその分母および分子の経時変化を示す情報が表示画面に表示されるため、設計者はアサーション記述Dの完成の度合いを把握しやすく、また、アサーション記述Dの作成作業がしやすくなる。
また、本実施形態では、回路で使用される出力信号と個々のアサーションの条件、期待動作との関係がわかる表が表示画面に表示されるため、アサーション記述Dの完成の度合いを把握しやすく、また、アサーション記述Dの作成作業がしやすくなる。
以上詳述したように実施形態によれば、不足しているアサーションの検出漏れを防ぎ、アサーション記述の作成を容易なものとすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…回路設計検証装置、2…入力装置、3…出力装置、4…回路、10…プロセッサ、11…図式作成・情報出力部、12…網羅率演算・情報出力部、13…表作成・情報出力部、D…アサーション記述、L…信号リスト。

Claims (10)

  1. 回路のアサーション記述の検証に使用されるプログラムであって、
    前記回路のアサーション記述に基づき、1つのサイクルにおける1つ又は複数の信号の状態を1つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成機能と、
    前記図式作成機能で作成した図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力機能と、
    をコンピュータに実現させるためのプログラム。
  2. 前記情報出力機能は、
    前記図式作成機能で作成した図式において、他ノードへの連結が不足しているノードがある場合に、アサーションの不足を指摘する情報を出力する機能を含む、
    請求項1に記載のプログラム。
  3. 前記情報出力機能は、
    前記図式作成機能で作成した図式において、ノード間に連結があってもこの連結が2つの互いに向きの異なる連結でない場合に、アサーションの不足を指摘する情報を出力する機能を含む、
    請求項1又は2に記載のプログラム。
  4. 前記情報出力機能は、
    前記図式作成機能で作成した図式において、ノード間に2つの互いに方向の異なる連結があっても別のノードとの間に連結が無い場合に、アサーションの不足を指摘する情報を出力する機能を含む、
    請求項1乃至3のいずれか1項に記載のプログラム。
  5. 前記情報出力機能は、
    不足しているアサーションの追加を促す情報を出力する機能を含む、
    請求項1乃至4のいずれか1項に記載のプログラム。
  6. 前記アサーション記述の中に存在するアサーションの数と不足が指摘されたアサーションの数との和に対する前記存在するアサーションの数の割合を演算し、当該割合をアサーション網羅率とする情報を出力する第1の網羅率出力機能を、
    さらにコンピュータに実現させるための請求項1乃至5のいずれか1項に記載のプログラム。
  7. 前記回路で使用される出力信号を示す情報がそれぞれ配列される列または行と、各アサーションの左辺に記述されている条件を示す情報がそれぞれ配列される行または列との組み合わせで構成される複数のセルを有し、各アサーションの右辺に記述されている期待動作が、該当する出力信号および該当する条件と同行同列に位置するセルに記入された表を作成し、作成した表を示す情報を出力する表作成出力機能を、
    さらにコンピュータに実現させるための請求項1乃至6のいずれか1項に記載のプログラム。
  8. 前記表作成出力機能は、
    任意の未記入のセルに対する所定の入力操作に応じ、該当する条件に対して該当する出力信号が無関係であることを示す特定の情報を当該セルに記入して表示させる機能を含む、
    請求項7に記載のプログラム。
  9. 前記複数のセルに対して条件および前記特定の情報が記載されているセルの割合を演算し、当該割合をアサーション網羅率とする情報を出力する第2の網羅率出力機能を、
    さらにコンピュータに実現させるための請求項8に記載のプログラム。
  10. 回路のアサーション記述を検証する回路設計検証装置であって、
    前記回路のアサーション記述に基づき、1つのサイクルにおける1つ又は複数の信号の状態を1つのノードで表現するとともにサイクル間における信号の状態の遷移を一方向性のノード間を繋ぐ連結で表現した図式を作成する図式作成手段と、
    前記図式作成手段により作成された図式を出力装置に出力するとともに、当該図式において少なくとも連結の不足が発生している場合に、アサーションの不足を指摘する情報を出力装置に出力する情報出力手段と、
    を具備することを特徴とする回路設計検証装置。
JP2016051114A 2016-03-15 2016-03-15 回路設計検証装置およびプログラム Pending JP2017167732A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016051114A JP2017167732A (ja) 2016-03-15 2016-03-15 回路設計検証装置およびプログラム
US15/253,517 US10515179B2 (en) 2016-03-15 2016-08-31 Circuit design verification apparatus and program
US16/502,933 US10706207B2 (en) 2016-03-15 2019-07-03 Circuit design verification apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016051114A JP2017167732A (ja) 2016-03-15 2016-03-15 回路設計検証装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2017167732A true JP2017167732A (ja) 2017-09-21

Family

ID=59855639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016051114A Pending JP2017167732A (ja) 2016-03-15 2016-03-15 回路設計検証装置およびプログラム

Country Status (2)

Country Link
US (2) US10515179B2 (ja)
JP (1) JP2017167732A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018004651T5 (de) 2017-08-31 2020-06-04 Kyb Corporation Servolenkungsvorrichtung

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6506439B1 (ja) * 2018-03-30 2019-04-24 株式会社AI Samurai 情報処理装置、情報処理方法及び情報処理プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185828A (ja) 1997-09-11 1999-03-30 Toshiba Corp 順序回路機能検証方法および順序回路機能検証システム
GB2363214B (en) * 1999-10-29 2002-05-29 Sgs Thomson Microelectronics A method of identifying an accurate model
JP2005512236A (ja) * 2001-12-07 2005-04-28 カデンス デザイン システムズ, インコーポレイテッド タイミンググラフ縮小によるタイミングモデル抽出
JP4255079B2 (ja) 2004-09-30 2009-04-15 株式会社リコー アサーション生成システムと回路検証システムおよびプログラムならびにアサーション生成方法
US7313772B2 (en) * 2005-05-24 2007-12-25 International Business Machines Corporation Systems, methods, and media for block-based assertion generation, qualification and analysis
JP5287092B2 (ja) 2008-09-26 2013-09-11 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP2010113395A (ja) 2008-11-04 2010-05-20 Toshiba Corp 論理回路設計検証装置
US9898562B2 (en) * 2014-01-30 2018-02-20 Mentor Graphics Corporation Distributed state and data functional coverage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018004651T5 (de) 2017-08-31 2020-06-04 Kyb Corporation Servolenkungsvorrichtung

Also Published As

Publication number Publication date
US10706207B2 (en) 2020-07-07
US20190325110A1 (en) 2019-10-24
US10515179B2 (en) 2019-12-24
US20170270234A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
JP6314741B2 (ja) Guiに基づいたアプリケーションの決定性有限状態マシンモデルの抽出方法
JP5267434B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
US20140214396A1 (en) Specification properties creation for a visual model of a system
US20150286355A1 (en) Crawling for extracting a model of a gui-based application
CN107688682B (zh) 一种使用时序路径提取电路拓扑的方法
CN104503957A (zh) 一种公式图形自动生成方法和装置
US9218447B2 (en) Automatic test pattern generation (ATPG) considering crosstalk effects
US8984461B1 (en) Visualization constraints for circuit designs
US8495054B2 (en) Logic diagram search device
JP2017167732A (ja) 回路設計検証装置およびプログラム
JP5762542B2 (ja) 半導体プロセスレシピの検証のコンピュータ実装方法及び持続性コンピュータ可読媒体
JP6169302B2 (ja) 仕様構成装置および方法
JP4774237B2 (ja) プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法
JP6649731B2 (ja) Fpgaからリードバックするための信号の特定
US20090244089A1 (en) Apparatus and method for automatic scaling of tick marks
JP6318976B2 (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
JP6037976B2 (ja) ソースコード生成装置
CN110297773B (zh) 一种形式验证中断言综合的可视化方法、存储介质和终端
JP2018112995A (ja) 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US10094875B1 (en) Methods, systems, and articles of manufacture for graph-driven verification and debugging of an electronic design
JP6087473B2 (ja) プログラム抽象図作成装置、及びプログラム抽象図作成プログラム
CN104462681B (zh) 辅助干涉检查的方法
JP6113599B2 (ja) 検査モデル生成装置
JP2008021056A (ja) 樹脂成形品の強度評価プログラム及びこの強度評価プログラムを搭載した装置
JP6344921B2 (ja) 作図装置及び作図方法