(57)【要約】【課題】  インライン付加したアサーション記述を個々に制御できる仕組みを組み込むことで、シミュレーション速度の劣化を防ぐ。【解決手段】  対象回路の検証機能等ごとにグループ化されたアサーション記述と回路記述とで記述されアサーション記述の各行先頭部に識別子が付加された入力ファイルを読込むステップ、シミュレーションにより動作検証する機能等のグループを指示するステップ、この指示に基づき入力ファイルの対応する機能等のアサーション記述を検索するステップ、検索により検証対象とされた機能等のアサーション記述の各行識別子を削除するステップ、検索により検証対象外とされたアサーション記述の各行の識別子をコメント行に変更するまたは各行の記述全体を削除するステップ、削除または変更により変換されたアサーション記述と回路記述とで記述された出力ファイルを生成するステップを備えた。【選択図】      図１
2009175930.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の動作検証のためのアサーションベースシミュレーションプログラムを生成するアサーション記述言語生成方法において、
対象回路の検証機能または検証ブロックごとにグループ化されたアサーション記述と回路記述とで記述されアサーション記述の各行の先頭部に識別子が付加された入力ファイルを読み込む読込ステップと、
シミュレーションにより動作検証する検証機能または検証ブロックのグループを指示する指示ステップと、
この指示に基づき上記入力ファイルの対応する機能またはグループのアサーション記述を検索する検索ステップと、
検索により検証対象とされた機能またはグループのアサーション記述の各行の識別子を削除する有効化ステップと、
検索により検証対象外とされたアサーション記述の各行の識別子をコメント行に変更するまたは各行の記述全体を削除する無効化ステップと、
上記削除または変更により変換されたアサーション記述と前記回路記述とで記述された出力ファイルを生成する生成ステップと
を備えたことを特徴とするアサーション記述言語生成方法。
【請求項２】
前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックごとのグループを全て指示する場合、前記有効化ステップと無効化ステップに代え、全てのグループのアサーション記述の各行の識別子を削除する有効化ステップを備えたことを特徴とする請求項１に記載のアサーション記述言語生成方法。
【請求項３】
前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックごとのグループを全て指示しない場合、前記有効化ステップと無効化ステップに代え、全てのグループのアサーション記述の各行の識別子をコメント行に変更するまたは各行の記述全体を削除する無効化ステップを備えたことを特徴とする請求項１に記載のアサーション記述言語生成方法。
【請求項４】
アサーション記述中にアサーション制御文が存在する場合、前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックのグループ内のアサーション記述中のアサーション制御文の有効／無効を個別に指示することにより、前記有効化ステップでは前記指示ステップにおいて無効とされたアサーション制御文の識別子をコメント行に変更または制御文自体の記述を削除するようにしたことを特徴とする請求項１または２に記載のアサーション記述言語生成方法。
【請求項５】
前記無効化ステップにおいて、無効とされた識別子のアサーション記述のリストを出力する出力ステップを備えたことを特徴とする請求項１〜４のいずれか一項に記載のアサーション記述言語生成方法。
【請求項６】
前記請求項１〜４のいずれかに記載のアサーション記述言語生成方法によりアサーションベースシミュレーションプログラムを生成するアサーション記述言語生成装置。
【請求項７】
前記請求項１〜５のいずれかに記載のアサーション記述言語生成方法または前記請求項６に記載のアサーション記述言語生成装置により生成されるアサーションベースシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）／ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等に代表される半導体集積回路において、回路設計後のシミュレーションツールを用いた動的アサーションベース検証におけるアサーション記述を制御する技術に関するものである。
【背景技術】
【０００２】
半導体集積回路設計において、設計した回路に対して、アサーション記述言語により検証したい動作（仕様）を付加し、シミュレーションを実行することで、仕様と回路の一致を検証する手法として、動的アサーションベース検証が近年注目を集めている。
【０００３】
動的アサーションベース検証においては、従来の回路設計を行うためのハードウエア記述言語を用いた回路記述とは異なり、仕様記述に適したアサーション記述言語を用いたアサーションと呼ばれる仕様記述を行う。アサーションは回路設計のベースとなる仕様を、アサーション記述言語により明示的にしたものである。設計意図や設計条件を明確化し、回路記述に埋め込んでおくことができる。回路記述に埋め込むことを、インライン（ｉｎ  ｌｉｎｅ）記述と呼ぶ。
【０００４】
動的アサーションベース検証を行うためには、従来の回路設計を行うためのハードウエア記述言語以外に、アサーション記述言語により仕様記述を行う必要がある。そのため、新たなアサーション記述言語を習得する必要があるが、検証実施者によるアサーション記述言語仕様の習得を不要にし、人為的なミスを軽減してテスト精度の向上を図る手法は色々とある。
【０００５】
例えば、特許文献１には、デザイン仕様書等の設計資料からアサーション記述ファイルが自動生成されるアサーション記述自動生成装置に係る発明が記載されている。この発明によれば、検証者がアサーション言語仕様を修得することが不要となり、アサーション記述ファイル作成工数が大幅に削減でき、また人為的な記述ミスが軽減されるため、テスト精度も向上するとともに記述ミスによる後戻り作業の撲滅を図ることができる。
【特許文献１】特開２００７−０１１４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、シミュレーションを実行する際、回路記述に付加されたアサーション記述があると、シミュレーション速度が遅くなるという欠点がある。通常、設計した回路が正しく動作するか否かのシミュレーションを実施する際、全ての機能を一度に確認するのは非効率である。機能毎に段階を踏んでシミュレーションを行う必要がある。そのため、付加した全てのアサーション記述が、一回のシミュレーションの際に常時必要とは限らない。
【０００７】
本発明は、インライン（ｉｎ  ｌｉｎｅ）付加したアサーション記述を個々に制御できる仕組みを組み込むことにより、シミュレーション速度の劣化を防ぐことを目的とするものである。
【課題を解決するための手段】
【０００８】
請求項１に係るアサーション記述言語生成方法は、半導体集積回路の動作検証のためのアサーションベースシミュレーションプログラムを生成するものであって、
対象回路の検証機能または検証ブロックごとにグループ化されたアサーション記述と回路記述とで記述されアサーション記述の各行の先頭部に識別子が付加された入力ファイルを読み込む読込ステップと、シミュレーションにより動作検証する検証機能または検証ブロックのグループを指示する指示ステップと、この指示に基づき上記入力ファイルの対応する機能またはグループのアサーション記述を検索する検索ステップと、検索により検証対象とされた機能またはグループのアサーション記述の各行の識別子を削除する有効化ステップと、検索により検証対象外とされたアサーション記述の各行の識別子をコメント行に変更するまたは各行の記述全体を削除する無効化ステップと、上記削除または変更により変換されたアサーション記述と前記回路記述とで記述された出力ファイルを生成する生成ステップとを備えたものである。
【０００９】
また、請求項２に係るアサーション記述言語生成方法は、前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックごとのグループを全て指示する場合、前記有効化ステップと無効化ステップに代え、全てのグループのアサーション記述の各行の識別子を削除する有効化ステップを備えたものである。
【００１０】
また、請求項３に係るアサーション記述言語生成方法は、前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックごとのグループを全て指示しない場合、前記有効化ステップと無効化ステップに代え、全てのグループのアサーション記述の各行の識別子をコメント行に変更するまたは各行の記述全体を削除する無効化ステップを備えたものである。
【００１１】
また、請求項４に係るアサーション記述言語生成方法は、アサーション記述中にアサーション制御文が存在する場合、前記指示ステップにおいてシミュレーションにより動作検証する検証機能または検証ブロックのグループ内のアサーション記述中のアサーション制御文の有効／無効を個別に指示することにより、前記有効化ステップでは前記指示ステップにおいて無効とされたアサーション制御文の識別子をコメント行に変更または制御文自体の記述を削除するようにしたものである。
【００１２】
また、請求項５に係るアサーション記述言語生成方法は、前記無効化ステップにおいて、無効とされた識別子のアサーション記述のリストを出力する出力ステップを備えたものである。
【００１３】
また、請求項６に係るアサーション記述言語生成装置は、前記のいずれかに記載のアサーション記述言語生成方法によりアサーションベースシミュレーションプログラムを生成するものである。
【００１４】
また、請求項７に係るアサーションベースシミュレーションプログラムは、前記のいずれかに記載のアサーション記述言語生成方法またはアサーション記述言語生成装置により生成されるものである。
【発明の効果】
【００１５】
本発明によれば、外部よりアサーション記述を制御する指示を行い、この指示に基づきアサーション実行可否の選択を自動化することにより、シミュレーション実行までの準備時間を短縮できる。
【００１６】
また、本発明によれば、シミュレーションを実行する機能単位でアサーションを選択することで、全てのアサーションを実行することによるシミュレーション速度の劣化を防ぐことができる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
具体的な発明の実施例について説明に入る前に、本明細書中で使用する基本的な技術用語の意味を以下に説明する。
「アサーション」：回路の動作仕様を専用のアサーション記述言語で定義して検証することの総称。
「アサーション記述」：回路の動作仕様をコンピュータが理解可能なアサーション記述言語仕様に基づいて定義した記述。
「回路記述」：半導体集積回路設計専用の記述言語により回路設計した記述。
「外部入力／アサーション制御入力」：装置への入力として、アサーション記述の有効／無効情報をファイル形式、コマンド形式等にて与える行為。
「アサーション制御文」：アサーション記述仕様として定義されているアサーションの実行レベルを制御する実行命令。
以下に本発明の実施の形態１について、実施例１〜３を用いて説明する。
【００１８】
実施例１．
本システムは、インライン（ｉｎ  ｌｉｎｅ）で記述されたアサーション記述の実行可否を、コマンドラインまたはＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いることで容易に制御することのできるシステムである。図１は本発明の実施例１〜３で説明する発明を実現するためのアサーション記述言語生成装置の全体構成を示す図である。１００はアサーション記述言語生成装置、１０１は回路記述にアサーション記述が組み込まれた入力ファイルであり、アサーション記述の各記述行の先頭には後述するように識別子が付加されている。１０２はコマンドラインまたはＧＵＩによる外部入力であり、機能単位で記述されたアサーション記述を外部から制御する指示内容である。１０３は入力制御部、１０４はアサーション検索部、１０５は変換部、１０６は出力制御部である。１０７はアサーション記述を有効化あるいは無効化した出力ファイルであり、外部入力１０２の指示内容に基づき、入力ファイル１０１の記述を変換（有効化または無効化）したものとなっている。
【００１９】
以上のように構成されたアサーション言語生成装置の動作フローチャートを図２に示す。本フローチャートでは、図１の各構成要素で実行される動作と対応付けて処理ステップを示している（対応関係にある構成要素と処理ステップ（または処理ステップのグループ）は同一番号を付している）。ステップ１０２でコマンドラインまたはＧＵＩによりアサーション制御指示の外部入力が行われる。このアサーション制御入力はインラインで記述されたアサーション記述に対する制御内容（機能単位に記述されたアサーション記述を有効とするか無効とするかの指示）を示すものである。ステップ２０１で制御対象となる「回路記述＋アサーション記述ファイル」の読込を行う。ステップ２０２で実際に有効／無効の制御処理が行われるアサーション記述制御プログラムが生成され、このプログラムの実行に移る。以降、処理内容に応じて、ステップ２０３で実施例１あるいは実施例２で説明する処理内容に分岐する。
【００２０】
実施例１は、図２のステップ２０３で全アサーション記述に対する操作か否かの判断で、「ＮＯ」が選択された場合を説明する実施例である。この場合、ステップ２０１で読み込まれた読込ファイル中の個々のアサーション記述に対しての操作が行われる。ステップ２０８で順番にアサーション識別子（後述）の検索を行う。ステップ２０９で外部入力のアサーション制御指示がされたアサーション検証対象か否かが判断される。「ＹＥＳ」が選択された場合、ステップ２１０でそのアサーション記述に対して有効処理、すなわち、該当アサーション記述行の識別子を削除する処理が行われる。逆に、ステップ２０９にて「ＮＯ」が選択された場合、ステップ２１１でそのアサーション記述に対して無効処理、すなわち、該当アサーション記述行の識別子をコメント行化する処理が行われる。
【００２１】
その後、ステップ２１２で次の識別子が有るか否かを判断し、「ＹＥＳ」が選択された場合はステップ２０８に戻る。「ＮＯ」が選択された場合はステップ２１３で最後に無効アサーションリストの作成が行われる。その後ステップ２１４で処理後の「回路記述＋アサーション記述ファイル」の生成が行われる。ステップ２１３での無効アサーションリスト作成については、ステップ２０９で「ＮＯ」が選択され、ステップ２１１で識別子がコメント行化されたアサーション記述が無効アサーションとして出力されることとなる。
【００２２】
次に、「回路記述＋アサーション記述ファイル」に対して実際に行われる操作について、図３の事例を用いて説明する。図３の１０１が「回路記述＋アサーション記述ファイル」の一例である。１０１中の回路記述Ａに対するアサーション記述の識別子が「ＣＨＥＣＫ＿Ａ」３０１、回路記述Ｚに対するアサーション記述の識別子が「ＣＨＥＣＫ＿Ｚ」３０２となっている。なお、このままの識別子が付加された記述では、シミュレーションを実行すると記述文法上エラーとなる。図３の１０７が図２の動作フロー処理後の出力ファイルを示す。３０３において回路記述Ａに対するアサーション記述を有効化（識別子「ＣＨＥＣＫ＿Ａ」３０１を削除）、回路記述Ｚに対するアサーション記述を無効化（識別子「ＣＨＥＣＫ＿Ｚ」３０２を削除した上でコメント行化）している。ここで、／／（スラッシュを２個並べる）が、この行をコメント行化することを意味している。一方、３０４は回路記述Ａに対するアサーション記述を無効化、回路記述Ｚに対するアサーション記述を有効化している場合を示す。
【００２３】
このように、本実施例１のアサーション記述言語生成装置（方法）によれば、外部よりアサーション記述を制御する指示を行い、この指示に基づきアサーション実行可否の選択を自動化することにより、実行までの準備時間を短縮できる。また、シミュレーションを実行する機能単位でアサーションを選択することで、全てのアサーションを実行することによるシミュレーション速度の劣化を防ぐことができる。
【００２４】
実施例２．
実施例２は、図２のステップ２０３で全アサーション記述に対する操作か否かの判断で、「ＹＥＳ」が選択された場合を説明する実施例である。この場合、ステップ２０１で読み込まれた読込ファイル中の全てのアサーション記述に対しての操作が行われる。ステップ２０４でアサーション検証対象にするか否かの判断で、「ＹＥＳ」が選択された場合、ステップ２０５でアサーション識別子が検索される。ステップ２０６で全てのアサーション記述に対して有効処理、すなわち、アサーション記述行の識別子を一括削除する処理が行われる。逆に、ステップ２０４で「ＮＯ」が選択された場合、ステップ２０５で同じくアサーション識別子が検索される。ステップ２０７で全てのアサーション記述に対して無効処理、すなわち、アサーション記述行の識別子を一括コメント行化する処理が行われる。ステップ２０４で「ＹＥＳ」「ＮＯ」のどちらの場合でも、ステップ２１３で最後に無効アサーションリストの作成が行われる。その後ステップ２１４で処理後の「回路記述＋アサーション記述ファイル」の生成が行われる。ステップ２１３での無効アサーションリスト作成については、ステップ２０４で「ＹＥＳ」の場合は「該当無し」、ステップ２０４で「ＮＯ」の場合は全てのアサーションが無効アサーションとして出力されることとなる。
【００２５】
次に、「回路記述＋アサーション記述ファイル」に対して実際に行われる操作について、図４の事例により説明する。図４の１０１が「回路記述＋アサーション記述ファイル」の一例である。１０１中の回路記述Ａに対するアサーション記述の識別子が「ＣＨＥＣＫ＿Ａ」４０１、回路記述Ｚに対するアサーション記述の識別子が「ＣＨＥＣＫ＿Ｚ」４０２となっている。なお、このままの識別子が付加された記述では、シミュレーションを実行すると記述文法上エラーとなる。図４の１０７が図２の動作フロー処理後の出力ファイルを示す。４０３では回路記述Ａに対するアサーション記述と回路記述Ｚに対するアサーション記述ともに有効化している。４０４は回路記述Ａに対するアサーション記述、回路記述Ｚに対するアサーション記述とも無効化（識別子「ＣＨＥＣＫ＿Ｚ」４０２を削除した上でコメント行化）している。ここで、／／（スラッシュを２個並べる）が、この行をコメント行化することを意味している。
【００２６】
このように、本実施例２のアサーション記述言語生成装置（方法）によれば、外部よりアサーション記述を制御する指示を行い、この指示に基づきアサーション実行可否の選択を自動化することにより、実行までの準備時間を短縮できる。また、全てのアサーションを実行することによるシミュレーション速度の劣化を防ぐことができる。
【００２７】
実施例３．
実施例３では、実施例１、２それぞれに対して、有効化する各アサーション記述中に、アサーション制御文であるａｓｓｕｍｅ文（不正入力情報チェック）、ｃｏｖｅｒ文（シミュレーションツールによって該当アサーションがカバーされたかチェック）等が存在する場合、そのアサーション制御文を、個別に有効化あるいは無効化できるようにし、各アサーション記述の実行レベルを制御するものである。これにより、有効化された各アサーションは実施されるが、ａｓｓｕｍｅ文による不正入力情報のチェックや、ｃｏｖｅｒ文によるカバーされたかのチェックは実施されない等、チェックレベルが抑制される。
【００２８】
このように、本実施例３のアサーション記述言語生成装置（方法）によれば、アサーション実行レベルの選択を自動化することにより、実行までの準備時間を短縮できる。また、全てのアサーション制御文を実行することによるシミュレーション速度の劣化を防ぐことができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施例１、２、３におけるアサーション言語生成装置（方法）の全体構成図である。
【図２】本発明の実施例１、２におけるアサーション言語生成装置の動作フローチャートである。
【図３】本発明の実施例１における具体的な記述例を示す説明図である。
【図４】本発明の実施例２における具体的な記述例を示す説明図である。
【符号の説明】
【００３０】
１００  アサーション記述言語生成装置（方法）、
１０１  「回路記述＋アサーション記述」の入力ファイル（マスタ）、
１０２  外部入力、
１０３  入力制御部、
１０４  アサーション検索部、
１０５  変換部、
１０６  出力制御部、
１０７  「回路記述＋アサーション記述」の出力ファイル、
２０１  処理ステップ「回路記述＋アサーション記述ファイルの読込」、
２０２  処理ステップ「アサーション記述制御プログラム生成」、
２０３  処理ステップ「条件分岐（全アサーション記述に対する操作か？）」、
２０４  処理ステップ「条件分岐（アサーション検証対象にするか否か？）」、
２０５  処理ステップ「アサーション識別子検索」、
２０６  処理ステップ「全アサーションの有効処理（アサーション記述行の識別子を一括削除）」、
２０７  処理ステップ「全アサーションの無効処理（アサーション記述行の識別子を一括コメント行化）」、
２０８  処理ステップ「アサーション識別子検索」、
２０９  処理ステップ「条件分岐（アサーション検証対象か？）」、
２１０  処理ステップ「アサーションの有効処理（識別子を削除）」、
２１１  処理ステップ「アサーションの無効処理（識別子をコメント行化）」、
２１２  処理ステップ「条件分岐（次の識別子有り？）」、
２１３  処理ステップ「無効アサーションリスト作成」、
２１４  処理ステップ「回路記述＋アサーション記述ファイル生成」、
３０１  ＣＨＥＣＫ＿Ａ（回路記述Ａに対するアサーション記述の識別子）、
３０２  ＣＨＥＣＫ＿Ｚ（回路記述Ｚに対するアサーション記述の識別子）、
３０３  回路記述Ａの検証時の出力ファイル、
３０４  回路記述Ｚの検証時の出力ファイル、
４０１  ＣＨＥＣＫ＿Ａ（回路記述Ａに対するアサーション記述の識別子）、
４０２  ＣＨＥＣＫ＿Ｚ（回路記述Ｚに対するアサーション記述の識別子）、
４０３  全てアサーション検証対象とする場合の出力ファイル、
４０４  全てアサーション検証非対象とする場合の出力ファイル。
【図１】
2009175930.tif 000003
【図２】
2009175930.tif 000004
【図３】
2009175930.tif 000005
【図４】
2009175930.tif 000006