JP6146224B2 - 判定方法、判定プログラム、および判定装置 - Google Patents

判定方法、判定プログラム、および判定装置 Download PDF

Info

Publication number
JP6146224B2
JP6146224B2 JP2013189861A JP2013189861A JP6146224B2 JP 6146224 B2 JP6146224 B2 JP 6146224B2 JP 2013189861 A JP2013189861 A JP 2013189861A JP 2013189861 A JP2013189861 A JP 2013189861A JP 6146224 B2 JP6146224 B2 JP 6146224B2
Authority
JP
Japan
Prior art keywords
terminal
information
terminals
attribute
determination
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.)
Expired - Fee Related
Application number
JP2013189861A
Other languages
English (en)
Other versions
JP2015056076A (ja
Inventor
永一 仁茂田
永一 仁茂田
なつみ 齊藤
なつみ 齊藤
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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2013189861A priority Critical patent/JP6146224B2/ja
Priority to US14/464,737 priority patent/US9047428B2/en
Publication of JP2015056076A publication Critical patent/JP2015056076A/ja
Application granted granted Critical
Publication of JP6146224B2 publication Critical patent/JP6146224B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、判定方法、判定プログラム、および判定装置に関する。
従来、半導体集積回路を示す回路情報においてオープンとなっている端子が、設計仕様においてオープンとなっているのか設計ミスによりオープンとなっているのかをフォーマル検証によって判定する技術がある(例えば、下記特許文献1参照。)。
また、従来、値が固定される仕様である入力端子の状態が、ハイインピーダンス状態とならないことを確認し、ハイインピーダンス状態でない場合に、その入力端子の値が期待値となるかをシミュレーションによって判定する技術がある(例えば、下記特許文献2参照。)。
また、従来、半導体集積回路の試験では、オープンとなっている端子間の接続部分を検証するためのテスト信号を流し、このテスト信号をモニタすることによりマクロ間の接続の正当性を試験する技術がある(例えば、下記特許文献3参照。)。
特開2011−203962号公報 特開2009−48312号公報 特開平10−326301号公報
しかしながら、回路情報において特定の端子がオープン端子となっているかをシミュレーションによって判定することができないため、端子の接続に関する検証を効率よく行えないという問題点がある。
1つの側面では、本発明は、検証の効率化を図ることができる判定方法、判定プログラム、および判定装置を提供することを目的とする。
本発明の一側面によれば、複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する判定方法、判定プログラム、および判定装置が提案される。
本発明の一態様によれば、検証の効率化を図ることができる。
図1は、判定装置による一動作例を示す説明図である。 図2は、端子の接続例を示す説明図である。 図3は、実施の形態にかかる判定装置のハードウェア構成例を示すブロック図である。 図4は、判定装置の機能的構成を示すブロック図である。 図5は、モジュールZの接続仕様情報例を示す説明図である。 図6は、判定例1にかかるネットリストが示すモジュール間の接続関係を示す説明図である。 図7は、判定例1にかかるモジュールZのネットリストを示す説明図である。 図8は、判定例1にかかる変換前後のモジュールXのネットリスト例を示す説明図である。 図9は、判定例1にかかる変換前後のモジュールYのネットリスト例を示す説明図である。 図10は、アサーション記述情報例を示す説明図である。 図11は、判定例1における判定結果を示す説明図である。 図12は、判定例2にかかるネットリストが示すモジュール間の接続関係を示す説明図である。 図13は、判定例2にかかるモジュールZのネットリストを示す説明図である。 図14は、判定例2にかかる変換前後のモジュールYのネットリスト例を示す説明図である。 図15は、判定例2における判定結果を示す説明図である。 図16は、実施例1にかかる判定装置による判定処理手順例を示すフローチャート(その1)である。 図17は、実施例1にかかる判定装置による判定処理手順例を示すフローチャート(その2)である。 図18は、実施例2にかかるネットリストの生成例を示す説明図である。 図19は、実施例2にかかる判定装置による判定処理手順例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかる判定方法、判定プログラム、および判定装置の実施の形態を詳細に説明する。
図1は、判定装置による一動作例を示す説明図である。判定装置100は、設計仕様においてオープン端子であると定められた端子が、設計仕様に基づいて設計されたネットリストにおいてオープン端子となっているかを判定するコンピュータである。まず、判定装置100は、複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定の対象端子を示す端子情報101を取得する。ここで、部分回路は、モジュールと称する。端子情報101は、例えば、設計仕様を示す情報である。図1の例では、端子P2と端子P4が判定の対象端子である。
つぎに、判定装置100は、各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得する。具体的には、接続情報と第1属性情報とは、複数のモジュールを含むモジュールを示すネットリストに含まれる。ネットリストは、例えば、VerilogやVHDL(Very high speed integrated circuit Hardware Description Language)などのハードウェア記述言語やシステム記述言語によって記述される。また、第1属性情報は、設計仕様を示す情報であってもよい。図1上側では、理解の容易化のために、ネットリストが示すモジュールzを示す。図1に示すように、モジュールzはモジュールxとモジュールyを含む。モジュールxは端子P1〜端子P4を含み、モジュールyは端子P5〜端子P7を含む。ここで、入力端子および出力端子のいずれであるかの属性を入出力属性と称する。入出力属性が入力である場合、第1属性情報は「Input」である。入出力属性が出力である場合、第1属性情報は「Output」である。図1の例では、各端子名の前に付随する「Input」または「Output」が第1属性情報である。例えば、端子P1,P2,P4,P7の入出力属性は出力であり、端子P3,P5,P6の入出力属性は入力である。
つぎに、判定装置100は、各端子のそれぞれについて、取得した第1属性情報が示す入出力属性の反対の入出力属性を示す第2属性情報を生成する。図1に示すように、判定装置100は、端子の各々について、第1属性情報が「Input」であれば、「Output」にした第2属性情報を生成し、第1属性情報が「Output」であれば、「Input」にした第2属性情報を生成する。このように、判定装置100は、図1下側に示すように、端子の各々について、入出力属性を反対にした第2属性情報を生成する。これにより、判定装置100は、例えば、取得した接続情報と生成した第2属性情報とを含むネットリストを生成する。例えば、端子P1,P2,P4,P7の入出力属性は入力となり、端子P3,P5,P6の入出力属性は出力となる。
判定装置100は、取得した接続情報と生成した第2属性情報とに基づいて、各端子のうち、第2属性情報が出力端子であることを示す端子の値を特定値とした場合における各端子の状態をシミュレーションする。特定値は、予め設計者によって定められ、判定装置100がアクセス可能な記憶装置に記憶される。図1の例では、特定値は“1’b0”である。これにより、判定装置100は、端子情報101が示す対象端子の状態がハイインピーダンス状態となるかを判定する。具体的には、判定装置100は、対象端子の状態がハイインピーダンス状態となるかを判定することを示すアサーション記述情報と、取得した接続情報と生成した第2属性情報とを含むネットリストと、をシミュレータに与えることによりシミュレーションする。アサーション記述情報は、例えば、アサーション言語によって記述された情報である。
例えば、判定装置100は、対象端子の状態がハイインピーダンス状態となっていれば、対象端子がオープンとなっていると判定する。また、例えば、判定装置100は、対象端子の状態はハイインピーダンス状態となっていなければ、対象端子がオープンとなっていないと判定する。例えば、端子P2の値は、端子P6と接続されているため“1’b0”となり、端子P2はオープン端子となっていないと判定される。例えば、端子P4の状態はハイインピーダンス状態となり、端子P4はオープン端子となっていると判定される。
これにより、オープン端子の正当性を検証することができる。したがって、端子の接続に関する検証の効率化を図ることができる。また、端子の誤接続により発生しうる故障を低減させることができ、設計品質を向上させることができる。
図2は、端子の接続例を示す説明図である。例えば、モジュールm1がモジュールm2とモジュールm3とを含む場合、ネットリストにおける接続は、外部とモジュールm2との接続、モジュールm2とモジュールm3とのモジュール間接続、モジュールm3と外部との接続、の3つに分類される。
また、モジュール間接続における端子の接続には、例えば、(1)入力端子と出力端子とが接続される端子間接続と、(2)入力端子の値が固定されるクリップ接続と、(3)出力端子に接続先がないオープン接続と、の3種類の接続がある。(2)クリップ接続について、図2の例では、入力端子の値が“1’b0”に固定されるが、入力端子の値が“1’b1”に固定される場合もある。上述したように、本実施の形態では、オープン接続について出力端子がオープン端子となっているかをシミュレーションによって判定する。
また、例えば、クリップ接続については、入力端子の値をシミュレーションして固定値になっているかを判定することにより、ネットリストにおいて入力端子の値が固定されているかを検証する。また、例えば、端子間接続については、出力端子の値と入力端子の値とをシミュレーションして出力端子の値と入力端子の値とが一致しているか否かを判定することにより、ネットリストにおいて出力端子と入力端子とが接続されているかを検証する。例えば、端子aと端子dとの端子間接続を検証するためのアサーション言語の記述は以下のようになる。
「Assert Always(モジュールm2.a===モジュールm3.d)」
(判定装置のハードウェア構成例)
図3は、実施の形態にかかる判定装置のハードウェア構成例を示すブロック図である。判定装置100は、CPU301と、ROM(Read Only Memory)302と、RAM303と、ディスクドライブ304と、ディスク305と、を有する。判定装置は、I/F(Inter Face)306と、入力装置307と、出力装置308と、を有する。また、各部はバス300によってそれぞれ接続される。
ここで、CPU301は、例えばROM302に記憶されたプログラムをRAM303にロードして実行することにより、判定装置100の全体の制御やデータ処理を行う。ROM302は、ブートプログラムや判定プログラムなどのプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される記憶部である。ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、磁気ディスク、光ディスクなどが挙げられる。
I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F306は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F306には、例えばモデムやLANアダプタなどを採用することができる。
入力装置307は、キーボード、マウス、タッチパネルなど設計者の操作により、各種データの入力を行うインターフェースである。また、入力装置307は、カメラから画像や動画を取り込むこともできる。また、入力装置307は、マイクから音声を取り込むこともできる。出力装置308は、CPU301の指示により、データを出力するインターフェースである。出力装置308には、ディスプレイやプリンタが挙げられる。
(判定装置の機能的構成例)
図4は、判定装置の機能的構成を示すブロック図である。判定装置100は、端子情報取得部401と、ネットリスト取得部402と、ネットリスト生成部403と、アサーション記述情報生成部404と、判定部405と、出力部406と、を有する。端子情報取得部401から出力部406までの処理は、例えば、CPU301がアクセス可能なディスク305などの記憶装置に記憶されたシミュレーションプログラムにコーディングされる。そして、CPU301が記憶装置に記憶された判定プログラムを読み出して、判定プログラムにコーディングされている処理を実行する。これにより、端子情報取得部401から判定部405までの処理が実現される。また、各部の処理結果は、例えば、RAM303、ディスク305などの記憶装置に記憶される。
まず、端子情報取得部401は、複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定の第1対象端子を示す端子情報を取得する。また、端子情報取得部401は、各端子のうち、第2対象端子を示す端子情報を取得する。第2対象端子は、上述したクリップ接続となっている端子かの判定の対象である。また、端子情報取得部401は、各端子のうち、第3対象端子を示す端子情報を取得する。第3対象端子は、端子間接続となっている端子かの判定の対象である。具体的な取得方法としては、例えば、ディスクなどの記憶装置から取得してもよいし、入力装置を介して入力された端子情報を取得してもよいし、ネットワークを介して他の装置から端子情報を取得してもよい。ここでは、検証の対象回路はモジュールZとし、モジュールZに含まれる部分回路はモジュールXとモジュールYとした例を挙げる。具体的には、端子情報取得部401は、接続仕様情報に含まれる各モジュールの接続表を取得する。
図5は、モジュールZの接続仕様情報例を示す説明図である。モジュールZの接続仕様情報500は、モジュールXの接続表501と、モジュールYの接続表511と、を有する。モジュールXの接続表501は、モジュール内のモジュールの各端子の接続仕様を示す。モジュールYの接続表511は、モジュール内のモジュールの各端子の接続仕様を示す。
モジュールXの接続表501は、例えば、PortName、Bit、I/O、Connection、Noteのフィールドを含む。モジュールXの接続表501の各フィールドに情報が設定されることにより、レコード(502−1〜502−3)として記憶される。モジュールXの接続表501は、RAM303やディスク305などの記憶装置に記憶される。
PortNameのフィールドには、モジュールXの端子を示す識別情報として端子名が設定される。Bitのフィールドには、端子のビット幅が設定される。I/Oのフィールドには、端子が入力端子であるか出力端子であるかの入出力属性を示す属性情報が設定される。出力端子である場合、「Out」が設定され、入力端子である場合、「In」が設定される。Connectionのフィールドには、接続先、固定値、またはオープンなどの接続に関する情報が設定される。入力端子または出力端子に接続される場合、接続先の識別情報が設定される。入力値をクリップさせる入力端子の場合、クリップさせる値が固定値として設定される。オープン端子の場合、「OPEN」が設定される。Noteのフィールドには、各端子についての設計者による注釈が設定される。
モジュールXの接続表501によれば、端子Port_Aは、出力端子であり、モジュールYの端子Port_Dに接続される。モジュールXの接続表501によれば、端子Port_Bは、入力端子であり、“1’b1”に固定される。モジュールXの接続表501によれば、端子Port_Cは、出力端子であり、オープン端子である。
モジュールYの接続表511のフィールドは、モジュールXの接続表501のフィールドと同じであるため、各フィールドの詳細な説明を省略する。モジュールYの接続表511の各フィールドに情報が設定されることにより、レコード(512−1と512−2)として記憶される。モジュールYの接続表511は、RAM303やディスク305などの記憶装置に記憶される。
モジュールYの接続表511によれば、端子Port_Dは、入力端子であり、モジュールXの端子Port_Aに接続される。モジュールYの接続表511によれば、端子Port_Eは、入力端子であり、“1’b0”に固定される。
そして、具体的には、端子情報取得部401は、接続仕様情報500に含まれる各モジュールの接続表から、Connectionのフィールドに「OPEN」が設定されたレコードを、オープン端子の判定の第1対象端子を示す端子情報として抽出する。例えば、第1対象端子を示す端子情報としてレコード502−3が抽出される。また、具体的には、端子情報取得部401は、各モジュールの接続表から、Connectionのフィールドに固定値が設定されたレコードを、第2対象端子を示す端子情報として抽出する。例えば、第2対象端子を示す端子情報としてレコード502−2とレコード512−2とが抽出される。また、具体的には、端子情報取得部401は、各モジュールの接続表から、Connectionのフィールドに接続先の端子名が設定されたレコードを、第3対象端子を示す端子情報として抽出する。例えば、第3対象端子を示す端子情報としてレコード502−1とレコード512−1とが抽出される。
ここで、ネットリスト取得部402から出力部406までの各処理を実施例1と実施例2を挙げて詳細に説明する。本実施の形態では、モジュールXの端子Port_Cが、組み上げたモジュールZを示すネットリストにおいて、オープン端子となっているかを判定する。以下実施例1では、モジュールXの端子Port_Cが、オープン端子となっていると判定される判定例1と、モジュールXの端子Port_Cが、オープン端子となっていないと判定される判定例2と、を示す。また、実施例2では、実施例1と異なるシミュレーション用のネットリストの作成方法例を示す。
(実施例1)
(判定例1)
図6は、判定例1にかかるネットリストが示すモジュール間の接続関係を示す説明図である。判定例1では、オープン端子であるか否かの判定の第1対象端子である端子Port_Cがネットリストにおいてオープン端子となっていると判定される例を示す。
ネットリスト取得部402は、各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得する。具体的には、ネットリスト取得部402は、複数のモジュールを示すネットリストであって、接続情報と第1属性情報とを含むネットリストを取得する。ここで取得されるネットリストは、例えば、VerilogやVHDLなどのハードウェア記述言語やシステム記述言語によって記述される。
図7は、判定例1にかかるモジュールZのネットリストを示す説明図である。取得されるネットリスト700は、モジュールZのネットリスト701と、モジュールXのネットリスト702と、モジュールYのネットリスト703と、を有する。ネットリスト701は、VerilogHDLによって記述されたモジュールZの定義文であって、モジュールZを示す回路情報である。ネットリスト701では、モジュールZの端子宣言文を省略する。例えば、ネットリスト701には、モジュールXとモジュールYとのそれぞれをインスタンス化するインスタンス構文が記述される。各インスタンス構文には、各モジュールの端子の接続が記述されるため、ネットリスト701は、各モジュールXの端子の接続を示す接続情報である。
モジュールXのインスタンス構文には、モジュールXを示すモジュール名と、モジュールXの端子を示す端子名と、各端子に接続される信号線を示すネット名と、が記述される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Aは、信号線sig_Number1に接続される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Bの値は、“1’b1”に固定される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Cは、信号線sig_Number2に接続される。
また、モジュールYのインスタンス構文には、モジュールYの端子と、モジュールYの端子に接続される信号を示すネット名と、が記述される。モジュールYのインスタンス構文によれば、モジュールYの端子Port_Dは、信号線sig_Number1に接続される。モジュールYのインスタンス構文によれば、モジュールYの端子Port_Eの値は、“1’b0”に固定される。
つぎに、ネットリスト生成部403は、各端子のそれぞれについて、取得した第1属性情報が示す属性の反対の属性を示す第2属性情報を生成する。また、ネットリスト生成部403は、取得された接続情報に基づいて、各端子のうち、値が固定値となる第1端子について第2属性情報を生成しない。また、ネットリスト生成部403は、各端子のうち、第2属性情報が出力端子であることを示す端子の値を特定値とする出力情報を生成する。特定値は、例えば、1または0の論理値である。特定値については、予め設計者によって定められ、RAM303やディスク305などの記憶装置に記憶される。具体的には、第2属性情報と出力情報とは、各モジュールが定義された定義文であって、各モジュールを示すネットリストである。
具体的には、ネットリスト生成部403は、ネットリスト701から、ネットリスト701に記述されたインスタンス構文のモジュール名と、接続先が記述された端子名または接続先および固定値のいずれも記述されていない端子名と、の組み合わせを検出する。ここでは、図7に示す○で囲われた端子名と、当該端子名が記述されたインスタンス構文のモジュール名と、の組み合わせが検出される。接続先が関連付けて記述された端子名と、接続先および固定値のいずれも関連付けて記述されていない端子名と、のいずれかが示す端子は、各端子のうちの第1端子以外の第2端子である。第1端子は、固定値が関連付けて記述された端子名が示す端子である。
そして、ネットリスト生成部403は、検出した組み合わせの各々について、ネットリスト701から、組み合わせのモジュール名に基づいて、モジュールの定義文を検索する。組み合わせの端子名に基づいて、検索したモジュールの定義文に含まれる端子定義文に記述された入出力属性を反対になるように変換する。例えば、ネットリスト生成部403は、「Output」であれば、「Input」に変換し、「Input」であれば、「Output」に変換する。
図8は、判定例1にかかる変換前後のモジュールXのネットリスト例を示す説明図である。ネットリスト702は、VerilogHDLによって記述されたモジュールXの定義文であって、モジュールXを示す回路情報である。ネットリスト702では、詳細な論理回路記述を省略する。ネットリスト生成部403は、例えば、ネットリスト702に記述された端子Port_Aの端子宣言文の入出力属性情報を「Output」から「Input」に変換する。ネットリスト生成部403は、例えば、ネットリスト702に記述された端子Port_Cの端子宣言文の入出力属性情報を「Output」から「Input」に変換する。これにより、ネットリスト生成部403は、ネットリスト701と、入出力属性情報が変換されたネットリスト801と、を有するネットリスト800を生成する。
図9は、判定例1にかかる変換前後のモジュールYのネットリスト例を示す説明図である。ネットリスト703は、VerilogHDLによって記述されたモジュールYの定義文であって、モジュールYを示す回路情報である。ネットリスト703では、詳細な論理回路記述を省略する。ネットリスト生成部403は、例えば、ネットリスト703に記述された端子Port_Dの端子宣言文の属性情報を「Input」から「Output」に変換したネットリスト901を生成する。
また、シミュレーションにおいて入出力属性が出力である端子の出力値を特定値とするために、ネットリスト生成部403は、入出力属性情報を「Input」から「Output」に変換した端子の値を特定値とすることを示す出力情報を追加する。特定値は、設計者によって予め定められ、RAM303、ディスク305などの記憶装置に記憶される。出力情報は、図9の例では、「assign」定義文であり、端子Port_Eの値が“1’b1”に固定される。これにより、ネットリスト生成部403は、ネットリスト701と、ネットリスト801と、ネットリスト901と、を含むネットリスト800を生成する。また、生成されたネットリスト800は、RAM303やディスク305などの記憶装置に記憶される。
つぎに、アサーション記述情報生成部404は、取得した端子情報が示す第1対象端子の状態がハイインピーダンス状態であるか否かを判定することを示すアサーション記述情報を生成する。アサーション記述情報は、設計仕様を記述するアサーション言語によって記述された情報である。
図10は、アサーション記述情報例を示す説明図である。例えば、アサーション記述情報生成部404は、第1対象端子を示す端子情報として取得したレコード502−3を含む接続表501が示すモジュール名と、レコード502−3に含まれるPortNameのフィールドに設定された端子名と、を特定する。そして、アサーション記述情報生成部404は、特定したモジュール名と、特定した端子名と、によって、左辺の“モジュールX.Port_C”を生成する。
そして、アサーション記述情報生成部404は、レコード502−3に含まれるBitのフィールドに設定されたビット幅に基づいて、ハイインピーダンス状態を示す右辺の“1’bz”を生成する。これにより、アサーション記述情報生成部404は、生成した右辺と生成した左辺とを組み合わせたアサーション記述情報1000を生成する。アサーション記述情報1000によれば、端子Port_Cの状態がハイインピーダンス状態でない場合に、エラーが出力される。また、生成されたアサーション記述情報1000は、RAM303やディスク305などの記憶装置に記憶される。
また、アサーション記述情報生成部404は、第2対象端子を示す端子情報を示す第2対象端子の値が第2特定値となっているか否かを判定することを示すアサーション記述情報を生成する。第2特定値については、接続仕様情報500に含まれる。例えば、端子Port_Bについての第2特定値は、レコード502−2に含まれるConnectionのフィールドに設定された“1’b1”である。また、例えば、端子Port_Eについての第2特定値は、レコード512−2に含まれるConnectionのフィールドに設定された“1’b0”である。
また、判定部405は、取得された接続情報と生成された第2属性情報とに基づいて、各端子のうち、第2属性情報が出力端子であることを示す端子の値を特定値とした場合における各端子の状態をシミュレーションする。これにより、判定部405は、端子情報が示す第1対象端子の状態がハイインピーダンス状態となるかを判定する。具体的には、判定部405は、ネットリスト800と、アサーション記述情報1000と、に基づいて、各端子の状態をシミュレーションすることにより、第1対象端子の状態がハイインピーダンス状態となるとエラーを出力する。
また、判定部405は、各端子のそれぞれについて取得された接続情報と、第1端子のそれぞれについて取得された第1属性情報と、第2端子のそれぞれについて生成された第2属性情報と、に基づいて、各端子の状態をシミュレーションする。これにより、さらに、判定部405は、第2対象端子が第2特定値となるかを判定する。
また、出力部406は、判定部405による判定結果を出力する。例えば、出力部406は、第1対象端子の状態がハイインピーダンス状態となる場合、第1対象端子がオープン端子であることを出力し、第1対象端子の状態がハイインピーダンス状態とならない場合、第1対象端子がオープン端子とならないことを出力する。
図11は、判定例1における判定結果を示す説明図である。第1対象端子である端子Port_Cの状態はハイインピーダンス状態となり、端子Port_Cはオープン端子であると判定される。また、第2対象端子である端子Port_Bの値は“1’b1”となり、端子Port_Bはクリップ接続となっている端子であると判定される。第2対象端子である端子Port_Eの値は“1’b0”となり、端子Port_Eはクリップ接続となっている端子であると判定される。また、第3対象端子である端子Port_Aの値と第3対象端子である端子Port_Dの値とは一致するため、端子Port_Aと端子Port_Dとは端子間接続となっている端子であると判定される。
(判定例2)
図12は、判定例2にかかるネットリストが示すモジュール間の接続関係を示す説明図である。判定例2では、オープン端子であるか否かの判定の第1対象端子である端子Port_Cがネットリストにおいてオープン端子となっていないと判定される例を示す。図12に示すように、端子Port_Cが誤って端子Port_Eに接続される。各部の処理は、判定例1と同じである。
図13は、判定例2にかかるモジュールZのネットリストを示す説明図である。ネットリスト1300は、判定例1にかかるネットリスト700と同様に記述される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Aは、信号線sig_Number1に接続される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Bの値は、“1’b1”に固定される。モジュールXのインスタンス構文によれば、モジュールXの端子Port_Cは、信号線sig_Number2に接続される。
モジュールYのインスタンス構文によれば、モジュールYの端子Port_Dは、信号線sig_Number1に接続される。モジュールYのインスタンス構文によれば、モジュールYの端子Port_Eの値は、信号線sig_Number2に接続される。
つぎに、ネットリスト生成部403は、判定例1で説明したように、ネットリスト1300に基づいて、各端子のうち、値が固定値となる第1端子以外の第2端子の入出力属性を反対にしたネットリストを生成する。入出力属性を反対にしたモジュールXのネットリストは、判定例1と同一のネットリスト801であるため、詳細な説明を省略する。
図14は、判定例2にかかる変換前後のモジュールYのネットリスト例を示す説明図である。ネットリスト生成部403は、例えば、ネットリスト703に記述された端子Port_Dの端子宣言文の入出力属性情報を「Input」から「Output」に変換する。また、ネットリスト生成部403は、例えば、ネットリスト703に記述された端子Port_Eの端子宣言文の入出力属性情報を「Input」から「Output」に変換する。
また、ネットリスト生成部403は、入出力属性情報を「Input」から「Output」に変換した端子の値を特定値とすることを示す出力情報を追加する。出力情報は、各端子の値を固定する「assign」定義文である。図14の例では、端子Port_Dと端子Port_Eのそれぞれの値が“1’b1”に固定される。これにより、ネットリスト生成部403は、ネットリスト1301と、入出力属性を反対にしたネットリスト801と、入出力属性を反対にしたネットリスト1401と、を含むネットリスト1400を生成する。また、ネットリスト1400は、RAM303やディスク305などの記憶装置に記憶される。
そして、判定部405は、ネットリスト1400と、アサーション記述情報1000と、に基づいて、各端子の状態をシミュレーションする。アサーション記述情報1000は、判定例1と同一であるため、詳細な説明を省略する。出力部406は、端子Port_Cの状態がハイインピーダンス状態とならない場合、端子Port_Cがオープン端子でないことを出力する。
図15は、判定例2における判定結果を示す説明図である。端子Port_Cは、端子Port_Eに接続されている。また、端子Port_Eの値が“1’b1”に固定されているため、端子Port_Cの値は“1’b1”となり、端子Port_Cの状態がハイインピーダンス状態とならないため、アサーションによってエラーが出力される。
このように、判定装置100は、ネットリスト1400に基づいて各端子の状態のシミュレーションを行うことにより、第1対象端子の状態がハイインピーダンス状態となるか判定する。これにより、オープン端子の正当性をシミュレーションによって検証することができる。したがって、検証の効率化を図ることができる。また、接続仕様情報500に示したように、モジュールXの端子Port_Cは、オープン端子であるが、ネットリスト700におけるモジュールXのインスタンス構文のように、信号線sig_Number2に接続されるように記述される場合がある。この場合、信号線sig_Number2が、他の信号線や端子などに接続されている状態か、またはいずれにも接続されていないオープン状態かはインスタンス構文だけでは判定できない。そのため、ネットリスト700だけで第1対象端子がオープン端子となっているかを確認するには、設計者の操作により、信号名を辿らなければならないため、検証に時間がかかる。このように、本実施の形態にかかる判定装置100によれば、設計者の操作によりオープン端子となっているかを確認する場合と比較して、検証時間を低減させることができる。したがって、端子の接続に関する検証の効率化を図ることができる。
(実施例1にかかる判定装置100による判定処理手順例)
図16および図17は、実施例1にかかる判定装置による判定処理手順例を示すフローチャートである。図16および図17の例は、判定例1で用いたネットリスト700を用いて示す。まず、判定装置100は、各モジュールの接続表を有する接続仕様情報500を取得する(ステップS1601)。判定装置100は、接続仕様情報500からオープン端子であるか否かの判定の第1対象端子を示す端子情報を抽出する(ステップS1602)。
判定装置100は、オープン端子であるか否かの判定の第1対象端子のアサーション記述情報1000を生成する(ステップS1603)。判定装置100は、接続仕様情報500から、クリップ接続であるか否かの判定の第2対象端子を示す端子情報と、端子間接続であるか否かの判定の第3対象端子を示す端子情報と、を抽出する(ステップS1604)。判定装置100は、第2対象端子と第3対象端子とのそれぞれのアサーション記述情報1600を生成する(ステップS1605)。
判定装置100は、設計者の操作により、RTL設計を行う(ステップS1606)。判定装置100は、検証用のネットリスト700と、アサーション記述情報1600と、に基づきシミュレーションすることにより、第2対象端子と第3対象端子についての判定を行う(ステップS1607)。判定装置100は、判定結果を出力する(ステップS1608)。判定装置100は、判定結果を含めた検証結果がOKか否かを判断する(ステップS1609)。例えば、第2対象端子がクリップ接続となっている端子であり、第3対象端子が端子間接続となっている端子であると判定されれば、判定装置100は、検証結果がOKであると判断する。さらに、その他にエラーなどが発生しなければ、判定装置100は、検証結果がOKであると判断する。検証結果がOKでないと判断された場合(ステップS1609:No)、判定装置100は、ステップS1606へ戻って、再度RTL設計を行う。
一方、検証結果がOKであると判断された場合(ステップS1609:Yes)、判定装置100は、検証用のネットリスト700から、トップモジュールのネットリスト701を抽出する(ステップS1701)。判定例1では、トップモジュールはモジュールZである。つぎに、判定装置100は、抽出したネットリスト701から、固定値となっていない端子を示す端子名と当該端子を有するモジュールを示すモジュール名の組み合わせを検出する(ステップS1702)。例えば、判定例1では、モジュールXと端子Port_Aとの組み合わせと、モジュールXと端子Port_Cとの組み合わせと、モジュールYと端子Port_Eとの組み合わせと、の組み合わせが検出される。
判定装置100は、検証用のネットリスト700から、組み合わせのモジュール名が示すモジュールのネットリストを抽出する(ステップS1703)。判定例1では、モジュールXのネットリスト702とモジュールYのネットリスト703とが抽出される。判定装置100は、抽出したネットリスト702,703に基づいて、組み合わせの端子名の端子の入出力属性と反対の入出力属性を示す属性情報を含むネットリスト800を生成する(ステップS1704)。ここでは、ステップS1704では、判定装置100は、反対にした後の入出力属性が出力である端子の値を特定値とする出力情報をネットリスト800に追加する。そして、判定装置100は、生成したネットリスト800と、アサーション記述情報1000,1600と、に基づきシミュレーションすることにより、第1対象端子から第3対象端子のそれぞれについての判定を行う(ステップS1705)。
判定装置100は、判定結果を出力する(ステップS1706)。判定装置100は、判定結果を含めた検証結果がOKか否かを判断する(ステップS1707)。例えば、第1対象端子がオープンとなり、第2対象端子がクリップ接続となっている端子であり、第3対象端子が端子間接続となっている端子であると判定されれば、判定装置100は、検証結果がOKであると判断する。判定例1では、第1対象端子である端子Port_Cの状態はハイインピーダンス状態となり、端子Port_Cはオープン端子であると判定される。また、第2対象端子である端子Port_Bの値は“1’b1”となり、端子Port_Bはクリップ接続となっている端子であると判定される。第2対象端子である端子Port_Eの値は“1’b0”となり、端子Port_Eはクリップ接続となっている端子であると判定される。また、第3対象端子である端子Port_Aの値と第3対象端子である端子Port_Dの値とは一致するため、端子Port_Aと端子Port_Dとは端子間接続となっている端子であると判定される。さらに、その他にエラーなどが発生しなければ、判定装置100は、検証結果がOKであると判断する。
検証結果がOKでない場合(ステップS1707:No)、判定装置100は、ステップS1606へ戻る。検証結果がOKである場合(ステップS1707:Yes)、判定装置100は、一連の処理を終了する。
(実施例2)
実施例2では、第1属性情報として接続仕様情報500を取得し、接続仕様情報500に含まれる各接続表に基づいて、第2属性情報および出力情報を含むネットリストを生成する。実施例2は、実施例1と同一構成について同一符号を付し、実施例1と同一機能や構成についての詳細な説明を省略する。
図18は、実施例2にかかるネットリストの生成例を示す説明図である。ネットリスト生成部403は、ネットリスト701から、ネットリスト701に記述されたインスタンス構文のモジュール名と、固定値となることが記述されていない端子名と、の組み合わせを検出する。ここで、検出される組み合わせは、実施例1で説明した判定例1と同一とする。
そして、ネットリスト生成部403は、検出した組み合わせのうち、モジュール名が同一の組み合わせを同一グループにする。そして、ネットリスト生成部403は、グループの各々について、グループに含まれる組み合わせの端子名が示す端子の入出力属性を反対にした入出力属性を示す第2属性情報を含むネットリストを生成する。具体的には、ネットリスト生成部403は、接続仕様情報500から、グループに含まれる組み合わせのモジュール名に基づいて、接続表を取得する。
そして、ネットリスト生成部403は、グループに含まれる組み合わせのモジュール名のモジュールの定義文を生成する。つぎに、ネットリスト生成部403は、グループについて取得した接続表内の各レコードに基づいて、モジュール定義文の端子宣言文を生成する。そして、ネットリスト生成部403は、モジュール定義文の端子宣言文に記述される属性情報を設定する。ここでは、ネットリスト生成部403は、グループに含まれる端子名の属性情報が示す入出力属性を、グループに含まれる組み合わせの端子名を有するレコードに含まれるI/Oのフィールドに設定された入出力属性の反対の入出力属性となるようにする。これにより、ネットリスト生成部403は、第2属性情報を生成する。
例えば、ネットリスト生成部403は、モジュールXの接続表501に基づいて、モジュール定義文を生成する。ネットリスト生成部403は、端子Port_Aの入出力属性を、端子名として「Port_A」を含む接続表501内のレコードに含まれるI/Oのフィールドに設定された入出力属性の反対の入出力属性となるようにする。ネットリスト生成部403は、端子Port_Cの入出力属性を、端子名として「Port_C」を含む接続表内のレコードに含まれるI/Oのフィールドに設定された入出力属性の反対の入出力属性となるようにする。これにより、モジュールXのネットリスト801が生成される。同様に、ネットリスト生成部403は、モジュールYのネットリスト901を生成する。
(実施例2にかかる判定装置100による判定処理手順例)
図19は、実施例2にかかる判定装置による判定処理手順例を示すフローチャートである。ここでは、実施例2にかかる判定装置100による判定処理手順と、実施例1にかかる判定装置100による判定処理手順と、の違う手順についてのみ説明する。図16に示す処理手順については、実施例2においても同様の処理を行うため、ステップS1609のYesの場合の処理について説明する。
検証結果がOKであると判断された場合(ステップS1609:Yes)、判定装置100は、検証用のネットリスト700から、トップモジュールのネットリスト701を抽出する(ステップS1901)。上述例では、トップモジュールはモジュールZである。つぎに、判定装置100は、抽出したネットリスト701から、固定値が設定されていない端子を示す端子名と当該端子を有するモジュールを示すモジュール名の組み合わせを検出する(ステップS1902)。
つぎに、判定装置100は、接続仕様情報500から、組み合わせのモジュール名が示すモジュールの接続表501,511を抽出する(ステップS1903)。判定装置100は、抽出した接続表501,511に基づいて、組み合わせの端子名の端子の入出力属性と反対の入出力属性を示す属性情報を含むネットリスト800を生成する(ステップS1904)。判定装置100は、生成したネットリスト800と、アサーション記述情報1000,1600と、に基づきシミュレーションすることにより、第1対象端子から第3対象端子のそれぞれについての判定を行う(ステップS1905)。
判定装置100は、判定結果を出力する(ステップS1906)。判定装置100は、判定結果を含めた検証結果がOKか否かを判断する(ステップS1907)。例えば、第1対象端子がオープン端子であると判定され、第2対象端子がクリップ接続となる端子であると判定され、第3対象端子が端子間接続となる端子であると判定されれば、判定装置100は、検証結果がOKであると判断する。さらに、その他にエラーなどが発生しなければ、判定装置100は、検証結果がOKであると判断する。検証結果がOKでない場合(ステップS1907:No)、判定装置100は、ステップS1606へ戻る。検証結果がOKである場合(ステップS1907:Yes)、判定装置100は、一連の処理を終了する。
以上説明したように、本実施の形態にかかる判定装置は、ネットリスト内の各端子の入出力属性を反対にし、出力属性となった端子の値を特定値にした場合の各端子の状態のシミュレーションにより第1対象端子の状態がハイインピーダンス状態となるか判定する。これにより、オープン端子の正当性をシミュレーションによって検証することができる。したがって、端子の接続に関する検証の効率化を図ることができる。
また、ネットリストにおいて値が固定値となる入力端子は、オープン端子となるかの判定の対象端子と接続されていない。そこで、本実施の形態にかかる判定装置は、値が固定値となる端子の入出力属性を反対にせず、入出力属性を反対にした端子の状態をシミュレーションする。これにより、第1対象端子がオープン端子となっているかの判定に影響しない端子をシミュレーションから除外することができ、検証の効率化を図ることができる。
また、本実施の形態にかかる判定装置は、ネットリストにおいて値が固定値となる端子の入出力属性を反対にせず、各端子の状態をシミュレーションすることにより、さらに、クリップ接続となるかの判定の第2対象端子が、特定値に固定されたかを判定する。これにより、クリップ接続となるかの判定とオープン端子となるかの判定とを同一のシミュレーションにより検証することができる。これにより、検証の効率化を図ることができる。
また、本実施の形態にかかる判定装置は、第1対象端子の状態がハイインピーダンス状態となる場合、第1対象端子がオープン端子であることを出力し、第1対象端子の状態がハイインピーダンス状態とならない場合、第1対象端子がオープン端子でないことを出力する。これにより、第1対象端子がオープン端子であったか否かの判断を容易化することができる。
また、本実施の形態によれば、モジュール間接続における3種類の接続について、すべて正当性を検証することができる。そのため、モジュール間の端子の誤接続により発生しうる故障を低減させることができ、設計品質を向上させることができる。
なお、本実施の形態で説明した判定プログラムは、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本判定プログラムは、ディスクやUSB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本算出プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが、
複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、
前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、
前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、
取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する、
処理を実行することを特徴とする判定方法。
(付記2)前記生成する処理では、取得した前記接続情報に基づいて、前記各端子のうち、入力値が固定値となる第1端子について前記第2属性情報を生成せず、
前記判定する処理では、前記各端子のうち、前記第1端子以外の第2端子のそれぞれについて取得した前記接続情報と生成した前記第2属性情報と、に基づいて、前記第1対象端子の状態が前記ハイインピーダンス状態となるかを判定することを特徴とする付記1に記載の判定方法。
(付記3)前記コンピュータが、
前記各端子のうち、前記第1対象端子と異なる、クリップ接続であるか否かの判定対象の第2対象端子を示す第2端子情報を取得する処理を実行し、
前記判定する処理では、前記各端子のそれぞれについて取得した前記接続情報と、前記第1端子のそれぞれについて取得した前記第1属性情報と、前記第2端子のそれぞれについて生成した前記第2属性情報と、に基づいて、前記各端子の状態をシミュレーションすることにより、さらに、前記第2端子情報が示す前記第2対象端子が第2特定値となるかを判定することを特徴とする付記2に記載の判定方法。
(付記4)前記コンピュータが、
前記第1対象端子の状態が前記ハイインピーダンス状態となる場合、前記第1対象端子が前記オープン端子であることを示す情報を出力し、前記第1対象端子の状態が前記ハイインピーダンス状態とならない場合、前記第1対象端子が前記オープン端子でないことを示す情報を出力する処理を実行することを特徴とする付記1〜3のいずれか1つに記載の判定方法。
(付記5)コンピュータに、
複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、
前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、
前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、
取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する、
処理を実行させることを特徴とする判定プログラム。
(付記6)前記生成する処理では、取得した前記接続情報に基づいて、前記各端子のうち、入力値が固定値となる第1端子について前記第2属性情報を生成せず、
前記判定する処理では、前記各端子のうち、前記第1端子以外の第2端子のそれぞれについて取得した前記接続情報と生成した前記第2属性情報と、に基づいて、前記第1対象端子の状態が前記ハイインピーダンス状態となるかを判定することを特徴とする付記5に記載の判定プログラム。
(付記7)前記コンピュータに、
前記各端子のうち、前記第1対象端子と異なる、クリップ接続であるか否かの判定対象の第2対象端子を示す第2端子情報を取得する処理を実行させ、
前記判定する処理では、前記各端子のそれぞれについて取得した前記接続情報と、前記第1端子のそれぞれについて取得した前記第1属性情報と、前記第2端子のそれぞれについて生成した前記第2属性情報と、に基づいて、前記各端子の状態をシミュレーションすることにより、さらに、前記第2端子情報が示す前記第2対象端子が第2特定値となるかを判定することを特徴とする付記6に記載の判定プログラム。
(付記8)前記コンピュータに、
前記第1対象端子の状態が前記ハイインピーダンス状態となる場合、前記第1対象端子が前記オープン端子であることを示す情報を出力し、前記第1対象端子の状態が前記ハイインピーダンス状態とならない場合、前記第1対象端子が前記オープン端子でないことを示す情報を出力する処理を実行させることを特徴とする付記5〜7のいずれか1つに記載の判定プログラム。
(付記9)複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得する端子情報取得部と、
前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得するネットリスト取得部と、
前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成するネットリスト生成部と、
取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する判定部と、
を有することを特徴とする判定装置。
(付記10)前記ネットリスト生成部は、取得した前記接続情報に基づいて、前記各端子のうち、入力値が固定値となる第1端子について前記第2属性情報を生成せず、
前記判定部は、前記各端子のうち、前記第1端子以外の第2端子のそれぞれについて取得した前記接続情報と生成した前記第2属性情報と、に基づいて、前記第1対象端子の状態が前記ハイインピーダンス状態となるかを判定することを特徴とする付記9に記載の判定装置。
(付記11)前記端子情報取得部は、前記各端子のうち、前記第1対象端子と異なる、クリップ接続であるか否かの判定対象の第2対象端子を示す第2端子情報を取得し、
前記判定部は、前記各端子のそれぞれについて取得した前記接続情報と、前記第1端子のそれぞれについて取得した前記第1属性情報と、前記第2端子のそれぞれについて生成した前記第2属性情報と、に基づいて、前記各端子の状態をシミュレーションすることにより、さらに、前記第2端子情報が示す前記第2対象端子が第2特定値となるかを判定することを特徴とする付記10に記載の判定装置。
(付記12)前記第1対象端子の状態が前記ハイインピーダンス状態となる場合、前記第1対象端子が前記オープン端子であることを示す情報を出力し、前記第1対象端子の状態が前記ハイインピーダンス状態とならない場合、前記第1対象端子が前記オープン端子でないことを示す情報を出力する出力部を有することを特徴とする付記9〜11のいずれか1つに記載の判定装置。
(付記13)複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、
前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、
前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、
取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する、
処理をコンピュータに実行させる判定プログラムを記録したことを特徴とする記録媒体。
100 判定装置
101 端子情報
401 端子情報取得部
402 ネットリスト取得部
403 ネットリスト生成部
404 アサーション記述情報生成部
405 判定部
406 出力部
500 接続仕様情報
501,511 接続表
700,701〜703,800,801,901,1300,1301,1400,1401 ネットリスト
1000,1600 アサーション記述情報
x,y,z,X,Y,Z,m1,m2,m3 モジュール
P1〜P7,a〜d,Port_A,Port_B,Port_C,Port_D,Port_E 端子

Claims (6)

  1. コンピュータが、
    複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、
    前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、
    前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、
    取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する、
    処理を実行することを特徴とする判定方法。
  2. 前記生成する処理では、取得した前記接続情報に基づいて、前記各端子のうち、入力値が固定値となる第1端子について前記第2属性情報を生成せず、
    前記判定する処理では、前記各端子のうち、前記第1端子以外の第2端子のそれぞれについて取得した前記接続情報と生成した前記第2属性情報と、に基づいて、前記第1対象端子の状態が前記ハイインピーダンス状態となるかを判定することを特徴とする請求項1に記載の判定方法。
  3. 前記コンピュータが、
    前記各端子のうち、前記第1対象端子と異なる、クリップ接続であるか否かの判定対象の第2対象端子を示す第2端子情報を取得する処理を実行し、
    前記判定する処理では、前記各端子のそれぞれについて取得した前記接続情報と、前記第1端子のそれぞれについて取得した前記第1属性情報と、前記第2端子のそれぞれについて生成した前記第2属性情報と、に基づいて、前記各端子の状態をシミュレーションすることにより、さらに、前記第2端子情報が示す前記第2対象端子が第2特定値となるかを判定することを特徴とする請求項2に記載の判定方法。
  4. 前記コンピュータが、
    前記第1対象端子の状態が前記ハイインピーダンス状態となる場合、前記第1対象端子が前記オープン端子であることを示す情報を出力し、前記第1対象端子の状態が前記ハイインピーダンス状態とならない場合、前記第1対象端子が前記オープン端子でないことを示す情報を出力する処理を実行することを特徴とする請求項1〜3のいずれか1つに記載の判定方法。
  5. コンピュータに、
    複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得し、
    前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得し、
    前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成し、
    取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する、
    処理を実行させることを特徴とする判定プログラム。
  6. 複数の部分回路に含まれる各端子のうち、オープン端子であるか否かの判定対象の第1対象端子を示す端子情報を取得する端子情報取得部と、
    前記各端子のそれぞれについて、接続情報と、入力端子および出力端子のいずれであるかの属性を示す第1属性情報と、を取得するネットリスト取得部と、
    前記各端子のそれぞれについて、取得した前記第1属性情報が示す属性の反対の属性を示す第2属性情報を生成するネットリスト生成部と、
    取得した前記接続情報と生成した前記第2属性情報とに基づいて、前記各端子のうち、前記第2属性情報が出力端子であることを示す端子の値を第1特定値とした場合における前記各端子の状態をシミュレーションすることにより、前記端子情報が示す前記第1対象端子の状態がハイインピーダンス状態となるかを判定する判定部と、
    を有することを特徴とする判定装置。
JP2013189861A 2013-09-12 2013-09-12 判定方法、判定プログラム、および判定装置 Expired - Fee Related JP6146224B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013189861A JP6146224B2 (ja) 2013-09-12 2013-09-12 判定方法、判定プログラム、および判定装置
US14/464,737 US9047428B2 (en) 2013-09-12 2014-08-21 Determining method, computer product, and determining apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013189861A JP6146224B2 (ja) 2013-09-12 2013-09-12 判定方法、判定プログラム、および判定装置

Publications (2)

Publication Number Publication Date
JP2015056076A JP2015056076A (ja) 2015-03-23
JP6146224B2 true JP6146224B2 (ja) 2017-06-14

Family

ID=52626832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013189861A Expired - Fee Related JP6146224B2 (ja) 2013-09-12 2013-09-12 判定方法、判定プログラム、および判定装置

Country Status (2)

Country Link
US (1) US9047428B2 (ja)
JP (1) JP6146224B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182189B (zh) * 2016-12-08 2021-01-29 中国石油天然气集团公司 材料表文件生成方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10327047A (ja) * 1997-05-22 1998-12-08 Sony Corp 半導体集積回路およびその設計方法
JPH10326301A (ja) 1997-05-23 1998-12-08 Nec Corp Lsi試験方式
FR2772944A1 (fr) * 1997-12-19 1999-06-25 Sgs Thomson Microelectronics Procede de gestion d'un circuit electronique et unite de gestion pour sa mise en oeuvre
JP4176906B2 (ja) * 1999-01-14 2008-11-05 株式会社ルネサステクノロジ 静的・動的タイミング検証方法及び記憶媒体
US6640329B2 (en) * 2001-08-29 2003-10-28 Intel Corporation Real-time connection error checking method and process
JP2004280279A (ja) * 2003-03-13 2004-10-07 Fujitsu Ltd トップダウン設計装置およびトップダウン設計プログラム
US20050050506A1 (en) * 2003-08-25 2005-03-03 Keller S. Brandon System and method for determining connectivity of nets in a hierarchical circuit design
JP4782743B2 (ja) * 2007-08-15 2011-09-28 富士通株式会社 論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法
JP2011203962A (ja) * 2010-03-25 2011-10-13 Renesas Electronics Corp 半導体集積回路の検証装置及び検証方法

Also Published As

Publication number Publication date
US20150074626A1 (en) 2015-03-12
US9047428B2 (en) 2015-06-02
JP2015056076A (ja) 2015-03-23

Similar Documents

Publication Publication Date Title
TWI627547B (zh) 用於ic設計協定的自動化功能覆蓋生成和管理的系統和方法
US10354042B2 (en) Selectively reducing graph based analysis pessimism
US9589096B1 (en) Method and apparatus for integrating spice-based timing using sign-off path-based analysis
JP5471432B2 (ja) 検証支援プログラム、および検証支援装置
CN112417798B (zh) 一种时序测试方法、装置、电子设备及存储介质
CN112560401B (zh) Verilog文件转换方法、装置、存储介质及设备
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
CN114169271A (zh) 使用静态检查器结果对证伪的功率感知形式属性进行自动调试
Goli et al. Automated analysis of virtual prototypes at electronic system level
JP4533918B2 (ja) 回路仕様記述設計解析装置及び回路仕様記述設計解析方法
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
JP6146224B2 (ja) 判定方法、判定プログラム、および判定装置
JP5830955B2 (ja) 検証装置、検証方法及び検証プログラム
CN111624475A (zh) 大规模集成电路的测试方法及系统
JP2009223661A (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US7454729B1 (en) Method and system for validating testbench
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
US20190163844A1 (en) Checking equivalence between changes made in a circuit definition language and changes in post-synthesis nets
JP5568779B2 (ja) 論理検証方法及び論理検証システム
JP2011203962A (ja) 半導体集積回路の検証装置及び検証方法
US10546083B1 (en) System, method, and computer program product for improving coverage accuracy in formal verification
US9928328B1 (en) Method and system for automated debugging of a device under test
Stotland et al. Standalone functional verification of multicore microprocessor memory subsystem units based on application of memory subsystem models
CN117725866B (zh) 一种验证方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170303

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170501

R150 Certificate of patent or registration of utility model

Ref document number: 6146224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees