(57)【要約】【課題】自然言語アサーション（ＮＬＡ）を処理する方法を提供する。【解決手段】自然言語アサーション（ＮＬＡ）を処理するための方法は、ＮＬＡを識別し、そのＮＬＡを自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換することを含む。このＶＬＡをＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換する。この時点で、プロセスは前記ＮＬＡ＊と前記ＮＬＡのユーザ評価を行う。ユーザが前記ＮＬＡ＊と前記ＮＬＡが同一である又は重要ではない差違を有すると判断した場合、前記ＶＬＡを用いて検証を実施する。前記検証の結果を前記ＮＬＡにバックアノテートする。完全に自動化された一実施形態では、ＮＬＡとＮＬＡ＊との比較に加えて、ＶＬＡとＶＬＡ＊とを比較し、それによって検証中にユーザに対して更に別の正確さの試験を提供する。【選択図】図１
2011511990.tif 000002
【特許請求の範囲】
【請求項１】
自然言語アサーション（ＮＬＡ）を処理する方法であって、
ＮＬＡを識別するステップと、
前記ＮＬＡを、自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換するステップと、
前記ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換するステップと、
前記ＮＬＡ＊及び前記ＮＬＡのユーザ評価を行うステップと、
前記ユーザ評価の結果に基づいて、前記ＶＬＡを用いて検証を実施するステップとを含むことを特徴とする方法。
【請求項２】
前記検証の結果を前記ＮＬＡにバックアノテートするステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記識別するステップ及び変換するステップはそれぞれ、複数のアサーションを処理することを特徴とする請求項２に記載の方法。
【請求項４】
前記ＮＬＡをキャッシュ内の一連のＮＬＡと比較するステップと、
前記ＮＬＡが前記一連のＮＬＡの内の１つのＮＬＡと一致した場合、検証を実施するステップに直接進むステップを更に含み、
前記検証は、前記キャッシュ内に保存され且つ前記一致したＮＬＡと関連付けられたＶＬＡを用いて実施することを特徴とする請求項１に記載の方法。
【請求項５】
前記ＮＬＡが前記１つのＮＬＡと一致しなかった場合、前記ＮＬＡを変換するステップに進むステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
自動検証を含む、自然言語アサーション（ＮＬＡ）を処理する方法であって、
ＮＬＡを識別するステップと、
前記ＮＬＡを、自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換するステップと、
前記ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換するステップと、
前記ＮＬＡ＊を解釈ＶＬＡ（ＶＬＡ＊）に変換するステップと、
前記ＶＬＡと前記ＶＬＡ＊とを比較するステップと、
前記ＶＬＡと前記ＶＬＡ＊とが異なっている場合、警告を発生するステップと、
前記ＶＬＡと前記ＶＬＡ＊とが異なっていない場合、前記ＶＬＡを用いて検証を実施するステップとを含むことを特徴とする方法。
【請求項７】
前記検証の結果を前記ＮＬＡにバックアノテートするステップを更に含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記識別するステップ及び変換するステップはそれぞれ、複数のアサーションを処理することを特徴とする請求項７に記載の方法。
【請求項９】
前記ＮＬＡをキャッシュ内の一連のＮＬＡと比較するステップと、
前記ＮＬＡが前記一連のＮＬＡの内の１つのＮＬＡと一致した場合、検証を実施するステップに直接進むステップを更に含み、
前記検証は、前記キャッシュ内に保存され且つ前記一致したＮＬＡと関連付けられたＶＬＡを用いて実施することを特徴とする請求項６に記載の方法。
【請求項１０】
前記ＮＬＡが前記１つのＮＬＡと一致しなかった場合、前記ＮＬＡを変換するステップに進むステップを更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
自然言語アサーション（ＮＬＡ）を処理するためのコンピュータで実行可能な命令を保存したコンピュータ可読媒体であって、
ＮＬＡを識別するステップと、
前記ＮＬＡを、自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換するステップと、
前記ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換するステップと、
前記ＮＬＡ＊及び前記ＮＬＡのユーザ評価を行うステップと、
前記ユーザ評価の結果に基づいて、前記ＶＬＡを用いて検証を実施するステップとを実行させるための命令を保存したコンピュータ可読媒体。
【請求項１２】
前記検証の結果を前記ＮＬＡにバックアノテートするステップを更に含むことを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記識別するステップ及び変換するステップはそれぞれ、複数のアサーションを処理することができることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記ＮＬＡをキャッシュ内の一連のＮＬＡと比較するステップを更に含み、
前記ＮＬＡが前記一連のＮＬＡの内の１つのＮＬＡと一致した場合、検証を実施するステップに直接進み、
前記検証は、前記キャッシュ内に保存され且つ前記一致したＮＬＡと関連付けられたＶＬＡを用いて実施することを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
前記ＮＬＡが前記１つのＮＬＡと一致しなかった場合、前記ＮＬＡを変換するステップに進むステップを更に含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
自然言語アサーション（ＮＬＡ）を処理するためのコンピュータで実行可能な命令が保存されたコンピュータ可読媒体であって、
ＮＬＡを識別するステップと、
前記ＮＬＡを、自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換するステップと、
前記ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換するステップと、
前記ＮＬＡ＊を解釈ＶＬＡ（ＶＬＡ＊）に変換するステップと、
前記ＶＬＡと前記ＶＬＡ＊とを比較するステップと、
前記ＶＬＡと前記ＶＬＡ＊とが異なっている場合、警告を発生するステップと、
前記ＶＬＡと前記ＶＬＡ＊とが異なっていない場合、検証を実施するステップとを実行させるための命令を保存したコンピュータ可読媒体。
【請求項１７】
前記検証の結果を前記ＮＬＡにバックアノテートするステップを更に含むことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記識別するステップ及び変換するステップはそれぞれ、複数のアサーションを処理することを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記ＮＬＡをキャッシュ内の一連のＮＬＡと比較するステップを更に含み、
前記ＮＬＡが前記一連のＮＬＡの内の１つのＮＬＡと一致した場合、検証を実施するステップに直接進み、
前記検証は、前記キャッシュ内に保存され且つ前記一致したＮＬＡと関連付けられたＶＬＡを用いて実施することを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
前記ＮＬＡが前記１つのＮＬＡと一致しなかった場合、前記ＮＬＡを変換するステップに進むステップを更に含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
自然言語アサーション（ＮＬＡ）を処理するためのシステムであって、
集積回路の記述と関連付けられた複数のＮＬＡを受信し、前記複数のＮＬＡを複数の検証言語アサーション（ＶＬＡ）に変換するためのＮＬＡプロセッサと、
前記複数のＶＬＡ及び前記ＩＣの記述を受信し、前記ＶＬＡの失敗を示すレポートを作成するための一連のシミュレータ及び検証ツールとを含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語アサーションに関し、具体的には、自然言語アサーションの解析、前記自然言語アサーションの検証言語アサーションへの変換、及び前記検証言語アサーションからの解釈された自然言語アサーションの生成を自動的に行うことができるプロセス／プロセッサを提供し、それによって検証中に有意義なユーザ評価ができるようにした。
【背景技術】
【０００２】
集積回路（ＩＣ）の設計が益々複雑になっているため、その設計をより高速に検証することに関する要望が高まっている。残念なことに、設計の飛躍的な進歩によってもたらされる設計の複雑さは、検証プロセスの改善ペースを大幅に上回っている。この差は、一つには異なる言語が用いられているということで説明することができる。特に、ＶｅｒｉｌｏｇやＶＨＤＬなどのＩＣ設計用のハードウェア記述言語（ＨＤＬ）は、電子システムの空間的構造及び時間的構造並びに電子システムの挙動を標準的なテキストベースで表現している。そのため、ＨＤＬは、設計者に良く理解され且つ受け入れられている。対照的に、Ｓｙｓｔｅｍ Ｖｅｒｉｌｏｇ、ＶＥＲＡ、又はＥ！などの検証言語は、ＨＤＬよりも高いレベルの形式を有しているため、結果としてＨＤＬよりもはるかに少ないユーザにしか受け入れられていない。
【０００３】
ソフトウェアプログラミングにおいて用いられているアサーションと呼ばれる或る表現は、検証言語の形式化に寄与することができる。或るアサーションは、誤りがある場合にエラーを表示する表現である。ＨＤＬ設計のコンテキストでは、アサーションは特定の挙動を調べ、その特定の挙動が発生した場合にメッセージを表示することができる。アサーションは、「良い」及び「悪い」挙動の両方をモニタすることができる。ＨＤＬの標準的なテキストベースの表現とは異なり、アサーションは設計者特有の表現になりやすい。つまり、或るユーザは、他人が書いたアサーションを容易に読むことができない。従って、そのアサーションの書き手以外のユーザは、検証において「失敗した」という状態を有するアサーションを無視することがよくある。
【０００４】
アサーションは、検証における設計の制御可能性及び識別可能性を高めるのに好都合である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、アサーションの読みやすさを向上させ、アサーションのより一層の使用を促すようなプロセスが求められている。
【課題を解決するための手段】
【０００６】
自然言語アサーション（ＮＬＡ）を処理する方法は、ＮＬＡを識別し、次に前記ＮＬＡを自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換することを含む。前記ＶＬＡは、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換することができる。この時点で、プロセスは前記ＮＬＡ＊及び前記ＮＬＡのユーザ評価を可能にする。ユーザが前記ＮＬＡ＊と前記ＮＬＡとが同一である又は重要ではない差違を有していると判断した場合、前記ＶＬＡを用いて検証を実施することができる。その後、前記検証の結果を前記ＮＬＡにバックアノテートすることができる。
【０００７】
一実施形態では、各識別されたＮＬＡは、キャッシュ内の一連のＮＬＡと比較することができる。或るＮＬＡが、前記一連のＮＬＡの内の１つのＮＬＡと一致した場合、プロセスは、検証の実施に直接進む。この場合、前記検証は、キャッシュ内に保存され且つ前記一致したＮＬＡと関連付けられたＶＬＡを用いて実施する。前記ＮＬＡが前記１つのＮＬＡと一致しない場合、プロセスは変換ステップに進む。
【０００８】
自然言語アサーション（ＮＬＡ）を処理する完全に自動化された別の方法は、ＮＬＡを識別し、次に前記ＮＬＡを自然言語パーサ（ＮＬＰ）及び合成手法を用いて検証言語アサーション（ＶＬＡ）に変換することを含み得る。前記ＶＬＡは、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換することができる。この時点で、前記ＮＬＡ＊は、解釈ＶＬＡ（ＶＬＡ＊）に変換することができる。前記ＶＬＡと前記ＶＬＡ＊とを比較することができる。前記ＶＬＡと前記ＶＬＡ＊とが異なっている場合、前記方法は警告を発生する。前記ＶＬＡと前記ＶＬＡ＊とが同一である場合、前記ＶＬＡを用いて検証を実施することができる。従って、この実施形態では、前記ＮＬＡと前記ＮＬＡ＊とを比較することに加えて、前記ＶＬＡと前記ＶＬＡ＊とを比較することができるので、それによって、検証中に、ユーザに対して精度に関する更に別の試験を提供する。
【０００９】
ＮＬＡパーサは、ＮＬＡプロセッサの一部を形成しており、各文章毎に自然言語のセマンティックツリーを生成するのに好都合である。ＮＬＡプロセッサは、その後、前記ツリーを使用してＶＬＡを生成することができる。ＶＬＡを生成するためにＮＬＡプロセッサで用いられる例示的な手法には、例えば、テキストの変換、テキストの維持、及び表現のマッチングなどが含まれる。テキストの変換は、散文を数値変換すること（例えば、「zero」→０、「one」→１）及び短縮形式にすること（例えば、「should not」→shouldn't）を含み得る。テキストの維持は、二重引用符を用いて識別することができる。例えば、ＮＬＡにおける‘‘ａ＋ｂ’’という表現は、その状態のままでＶＬＡに移すことができる。同様に、変数名が英単語の場合、前記変数名を二重引用符の中に配置することによって明確にすることができる（例えば、ＮＬＡは、‘‘ａ’’が発生した場合、次に・・・と記述し得る）。表現のマッチングは、複数の用語がピリオドによって境界を示されている場合、それら複数の用語を調べる。例えば、アサーションの１つの形式は「コンカレントアサーション」であり、（クロッキングシーケンス）（前提）→（結果）であり得る。このようなアサーションは、対応するＮＬＡ形式を有し得る（例えば、「クロックｃｌｋのポジティブエッジで、‘‘ａ’’が発生した場合、ｎのクロックサイクル後に‘‘ｂ’’を行う」）。この場合、前記ＮＬＡにおけるコンカレントアサーションの３つの別個の部分をマッチングすることは、パターンマッチング問題である。アサーションの別の形式は、変形補完である（例えば、「is not high」→low）。
【００１０】
一実施形態では、（ＮＬＡプロセッサで実施される）識別ステップ及び変換ステップはそれぞれ、複数のアサーションを処理し得る。この実施形態では、ＮＬＡプロセッサは、それらのアサーションの処理を並行して行うための複数のプロセッサを含み得る。
【００１１】
ＮＬＡを処理するためのシステムは、ＮＬＡプロセッサ、並びに一連のシミュレータ及び検証ツールを含み得る。前記ＮＬＡプロセッサは、集積回路（ＩＣ）の記述と関連付けられた複数のＮＬＡを受信し、前記複数のＮＬＡを複数の検証言語アサーション（ＶＬＡ）に変換し得る。前記一連のシミュレータ及び検証ツールは、前記複数のＶＬＡ及び前記ＩＣの記述を受信し、ＶＬＡの失敗を示すレポートを作成し得る。
【図面の簡単な説明】
【００１２】
【図１】例示的なＮＬＡ処理手法を示す図である。
【図２】自動検証を含む別の例示的なＮＬＡ処理手法を示す図である。
【図３Ａ】ＲＴＬ識別子、ＲＴＬ入力／出力コード、埋め込まれたＮＬＡ、及びエンドモジュール指定子を含む例示的なコントローラＲＴＬコードを示す図である。
【図３Ｂ】本発明に係る原ＮＬＡから生成されたＶＬＡ及び解釈ＮＬＡの例示的なコード化を示す図である。
【図３Ｃ】本発明に係る原ＮＬＡから生成されたＶＬＡ及び解釈ＮＬＡの例示的なコード化を示す図である。
【図３Ｄ】本発明に係る原ＮＬＡから生成されたＶＬＡ及び解釈ＮＬＡの例示的なコード化を示す図である。
【図３Ｅ】本発明に係る原ＮＬＡから生成されたＶＬＡ及び解釈ＮＬＡの例示的なコード化を示す図である。
【図３Ｆ】ＮＬＡに基づいてＮＬＰによって出力された例示的なセマンティックツリーを示す図である。
【図４】ＮＬＡ処理手法を含む例示的なデジタルＡＳＩＣ設計フローの簡略表現を示す図である。
【図５Ａ】論理設計及び機能検証を実装可能なシステムを簡略化して示す図である。
【図５Ｂ】論理設計及び機能検証を実装可能なシステムを簡略化して示す図である。
【発明を実施するための形態】
【００１３】
アサーションは、検証におけるＩＣ設計の制御可能性及び識別可能性を高めるのに好都合である。残念なことに、別の書き手によって書かれたアサーションを解釈することが困難であるため、検証においてアサーションを使用することが妨げられている。本発明の一側面によれば、プロセス及び／又はプロセッサは、設計挙動の分かりやすい英語表現（本明細書中では、自然言語アサーション（ＮＬＡ）と呼ぶ）を、検証言語アサーション（ＶＬＡ）に自動的に変換することができる。このＶＬＡを、解釈ＮＬＡに変換して戻すことができ、それによって原ＮＬＡと解釈ＮＬＡとの間の有意義なユーザ評価を容易に行えるようにする。前記評価が、前記原ＮＬＡと前記解釈ＮＬＡとの間に実質的に差違が存在しないことを示す場合、前記ＶＬＡを用いて設計の検証を実施することができる。次に、この検証の結果を原ＮＬＡにバックアノテートすることができる。
【００１４】
ＮＬＡとＶＬＡとの区別を明確にするために、トラフィックコントローラの設計が助けになり得る。例示的なトラフィックコントローラでは、適切な作動のために少なくとも５つのＮＬＡを表現することができる。
（１）緑色又は黄色の光が示されている場合、クロスストリート（cross street）を赤色の光にしなければならない。
（２）光は、一般的な（従来通りの）緑色、黄色、赤色の順序で変化しなければならない。
（３）トラフィックが赤色の光で待機しているときに、クロスストリート上にトラフィックがない場合はトラフィックに緑色の光を割り当てなければならない。
（４）クロスストリートにトラフィックが存在している場合でも、トラフィックは赤色の光で５ティックを超えて待機してはならない。
（５）センサがトラフィックを示している場合、緑色の光が現れるまで（赤色の光がない状態）、センサをリセットしない。
【００１５】
前記５つのＮＬＡに対応する一連のＶＬＡを以下に示す（ＮＬＡも示しているが、参照しやすくするためにＮＬＡはイタリック体で示す（下線を付す））。ＶＬＡで表現されるクロスストリートは、メインストリート（Main Street）及び第１ストリート（First Street）であることを留意されたい。
【００１６】
【数１】
2011511990.tif 000003
【００１７】
／／１）  緑色又は黄色の光が示されている場合、クロスストリートを
／／赤色の光にしなければならない。
【００１８】
【数２】
2011511990.tif 000004
【００１９】
／／２）  光は、一般的な緑色、黄色、赤色の順序で
／／変化しなければならない。
【００２０】
【数３】
2011511990.tif 000005
【００２１】
／／３）  トラフィックが赤色の光で待機しているときに、
／／クロスストリート上にトラフィックがない場合は緑色の光を割り当てなければならない。
【００２２】
【数４】
2011511990.tif 000006
【００２３】
／／４）  クロスストリートにトラフィックが存在している場合でも、
／／トラフィックは赤色の光で５ティックを超えて待機してはならない。
【００２４】
【数５】
2011511990.tif 000007
【００２５】
／／５）  センサがトラフィックを示している場合、緑色の光が現れるまで（赤色の光がない状態）、センサをリセットしない。
【００２６】
【数６】
2011511990.tif 000008
【００２７】
前述の単純な設計のトラフィックコントローラのためのＮＬＡと対応するＶＬＡとを比較すると、ますます複雑になっているＩＣ設計のＶＬＡを理解することの難しさが明らかになる。しかし、これらのＩＣ設計のＶＬＡは、検証中に用いることができる組み合わせ論理方程式及び時相論理方程式の両者の数学的表現として必要である。
【００２８】
従って、ＮＬＡをＶＬＡに自動的に変換できるプロセス及び／又はプロセッサが非常に望ましい。更に、そのＶＬＡを変換して解釈ＮＬＡに戻すプロセス及び／又はプロセッサは、ユーザに原ＮＬＡの有意義な評価を行わせるのに好都合であり、それによって前記ＶＬＡのエラー検出をしやすくする。これらの変換を、図１を参照して以下に説明する。
【００２９】
図１は、例示的なＮＬＡ処理手法１００を示す。ステップ１０１では、ＮＬＡを周知の合成手法を用いて識別する。例えば、一実施形態では、この識別ステップは、モジュール／ファイル内のＮＬＡを検索するＵｎｉｘ（登録商標）コマンドを用いて実施することができる。ステップ１０１は、ＲＴＬからＮＬＡを抽出するなどの他の合成手法を更に含むことができ、自然言語の文のみで更なる処理が実施されるようにする。識別された及び抽出されたＮＬＡを、更なる処理のためにキャッシュにコピーすることができる。識別されたＮＬＡに関する情報（例えば、ファイル名、モジュール名、及びライン番号）は、キャッシュ内のＮＬＡと関連付けることができる。一実施形態では、各ＮＬＡは文章の末尾にピリオドを有し、ダウンストリーム処理がＮＬＡの末尾を明確に指定できるようにする。
【００３０】
この時点で、ステップ１０２では、ＮＬＡを自然言語パーサ（ＮＬＰ）を用いてＶＬＡに変換する。例示的なＮＬＰは、インターネット用の新世代検索エンジンとして現在開発中のスタンフォードパーサ（Stanford Parser）（例えば、バージョン１．４）である。ＮＬＰ（例えば、スタンフォードパーサ）の仕組みに関する背景情報は、例えば、Dan Klein及びChristopher D. Manningによる「Fast Exact Inference with a Factored Model for Natural Language Parsing」（Advances in Neural Information Processing Systems 15 (NIPS 2002), Cambridge, MA: MIT Press, pp. 3-10 (2003)）、並びにDan Klein及びChristopher D. Manningによる「Accurate Unlexicalized Parsing」（Proceedings of the 41st Meeting of the Association for Computational Linguistics, pp. 423-430 (2003)）に記載されている。
【００３１】
ステップ１０２で用いられるＮＬＰは、セマンティックツリーを作成し得るインテリジェントクエリツールを用いて実装することができる。ＮＬＰは、確率的構文解析を用いることができ、その場合、セマンティックツリー上で動作する動的プログラミングアルゴリズムに基づいて、所与の文の最も適当な構文解析を計算することができる。適切な構文解析のために、ＮＬＰのモデルは、特定の言語（例えば、英語、中国語、アラビア語、及びドイツ語）毎に開発することができることは明らかである。
【００３２】
ＶＬＡを生成するためにＮＬＡプロセッサで用いられる例示的な手法には、例えば、テキストの変換、テキストの維持、及び表現のマッチングなどが含まれる。テキストの変換は、散文を数値変換すること（例えば、「zero」→０、「one」→１）及び短縮形式にすること（例えば、「should not」→shouldn't）を含み得る。テキストの維持は、二重引用符を用いて識別することができる。例えば、ＮＬＡにおける‘‘ａ＋ｂ’’という表現は、その状態のままでＶＬＡに移すことができる。同様に、変数名が英単語の場合、前記変数名を二重引用符の中に配置することによって明確にすることができる（例えば、ＮＬＡは、‘‘ａ’’が発生した場合、次に・・・と記述し得る）。表現のマッチングは、複数の用語がピリオドによって境界を示されている場合、それら複数の用語を調べる。例えば、アサーションの１つの形式は「コンカレントアサーション」であり、（クロッキングシーケンス）（前提）→（結果）であり得る。このようなアサーションは、対応するＮＬＡ形式を有し得る（例えば、「クロックｃｌｋのポジティブエッジで、‘‘ａ’’が発生した場合、ｎのクロックサイクル後に‘‘ｂ’’を行う」）。この場合、前記ＮＬＡにおけるコンカレントアサーションの３つの別個の部分をマッチングすることは、パターンマッチング問題である。アサーションの別の形式は、変形補完である（例えば、「is not high」→low）。
【００３３】
一実施形態では、ＮＬＡにおける二重引用符内の用語は、トークンと置換することができる。前記トークンは、ＡＬＩＡＳ０１、ＡＬＩＡＳ０２．．．などの固有の識別子であり、その識別子は、入力解析中に名詞としてＮＬＰで処理することができ、また名詞プロパティがタグ付けされたＮＬＰのセマンティックツリー出力において示すことができる。前記原用語による前記名詞の単純な置換は、ＮＬＰ処理を受ける前記用語が保たれることを保証する。例えば、‘‘Ａ’’は、第１信号などのトークンと置換することができる。この置換は、ＮＬＡプロセッサによって自動的に行うことができる、或いはユーザが提案する名前で補完することができる。従って、自然言語パーサへの入力は、特定の自然言語（例えば、英語）要素として十分に理解可能である。
【００３４】
多数のＮＬＡを変換することは、ＣＰＵ時間に対してリソース集約的であり得ることを留意されたい。従って、一実施形態では、ＮＬＰは、変換を並列処理できる複数のプロセッサを含み得る。例えば、ＮＬＰが５つのプロセッサを備えていて、１０００のＮＬＡが存在する場合、それらのＮＬＡをＶＬＡに変換するために各プロセッサには２００のＮＬＡが提供され得る。これらの変換は非同期的に行うことができ、それによって処理時間を最小限にする。全ての変換が実施された後、ＮＬＰのコントローラは、セマンティックツリーを作成するべく様々なプロセッサからの結果を順序付ける。
【００３５】
各セマンティックツリーは、自然言語の文を言語使用グループ（例えば、名詞、動詞、形容詞、副詞など）に分解することを留意されたい。一実施形態では、セマンティックツリーは、複数のリストからなる１つのリストから構成することができる。各原子リストは、タップル（２項目）（属性値）である。例えば、（ＮＮ ｒａｉｎ）は、名詞「ｒａｉｎ」を表す。
【００３６】
例示的な英文とそのセマンティックツリーを以下に記述する。
【００３７】
【数７】
2011511990.tif 000009
【００３８】
セマンティックツリー
【００３９】
【数８】
2011511990.tif 000010
【００４０】
一実施形態では、各言語グループは、ＶＬＡ生成器で読み取ることができる特定の記述子を有し得る。このＶＬＡ生成器は、ＮＬＡからＶＬＡを作成するためにセマンティックツリーのコンテキストにおける言語グループを使用し得る。一実施形態では、ＶＬＡ生成器はセマンティックツリーを通って、全てのノードを訪れる。ＶＬＡ生成器は、訪れたノード、認識したパターン、並びに現在のノード及び現在の経路に関するツリーにおける現在の状態を追跡記録し続けることができる。部分的な表現が一致し、最終的に、「コンカレントアサーション」のような完全なアサーション構造が認識された場合（各下位部分が一致を検出）、ＳＶＡへの変換が実施される。
【００４１】
ステップ１０３では、ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いて解釈ＮＬＡ（ＮＬＡ＊）に変換して戻す。ステップ１０４では、ユーザは、ＮＬＡ及びＶＬＡから再生されたＮＬＡ＊を評価する。ステップ１０５では、ＶＬＡの検証を実施する。一実施形態では、この検証は、シミュレーションと形式チェックを含み得る。ステップ１０６では、検証の結果より、どれが失敗し、どれが成功したかを識別する。一実施形態では、シミュレータ及び／又は形式検証ツールは、例えば、アサーションのファイル及びライン番号のほか、失敗したもののシミュレーション時間などの詳細を含むエラーメッセージによって失敗アサーションを識別することができる。検証の結果をＮＬＡにバックアノテートすることができる。
【００４２】
一実施形態では、各ステップは、複数のアサーションを処理することができる。つまり、ステップ１０１では、モジュール／ファイルの複数のＮＬＡを識別する。ステップ１０２では、それらの識別されたＮＬＡを複数のＶＬＡに変換する。次に、ステップ１０３では、複数のＶＬＡを、複数の解釈されたＮＬＡに変換して戻すことができる。この実施形態では、ＮＬＡはモジュールレベル或いはファイルレベルのどちらかで処理することができることを留意されたい。
【００４３】
一実施形態において速度向上能力を提供するために、ステップ１１０では、新規に識別されたＮＬＡを、キャッシュ内に保存されている既に変換に成功したＮＬＡのグループと比較することができる。つまり、或るＮＬＡが既に処理されている場合、その処理の結果を再利用することができるので、手法はステップ１０５に直接進むことができ、それによって全体の処理を最小限にする。前記ＮＬＡがまだ処理されていない場合、手法は前述のステップ１０２に進む。
【００４４】
特に、キャッシュは、任意の階層レベル（例えば、設計毎、ユーザ毎、又は会社毎）で構成することができる。一実施形態では、キャッシュは、ＮＬＡ、そのセマンティックツリー、及びそのＶＬＡを含み得る。セマンティックツリー及びＶＬＡが、その対応するＮＬＡを参照することによって、前記ＮＬＡが後で設計から削除された場合に前記セマンティックツリー及び前記ＶＬＡも容易に削除することができ、それによってキャッシュのスペース及びシミュレータの使用を最小限にすることを留意されたい。
【００４５】
ステップ１０１の一実施形態では、ＮＬＡは、ＩＣのＲＴＬ（レジスタ転送レベル）記述の中に含まれ得ることを留意されたい。ＩＣ設計分野の当業者には周知のように、ＲＴＬ記述は、レジスタ及び組み合わせ論理を含む同期回路のためのものである。レジスタ転送レベルの抽象化は、通常はＩＣの高水準表現を作成するためにＨＤＬで用いられる。ＮＬＡがＲＴＬ記述の中に含まれている場合、そのＮＬＡはコメントとしてＲＴＬエントリの後に続く。例えば、そのコメントはＮＬＡとして明確に識別することができ、前のＲＴＬ記述において参照された信号名を使用するので、それによってＮＬＡをそのＲＴＬ記述と関連付ける。
【００４６】
ステップ１０１の別の実施形態では、ＮＬＡは標準的なワードプロセッシングドキュメント内に含まれ得る。この実施形態は、ＩＣのＲＴＬ記述が得られる前であっても使用することができる。この実施形態では、ＲＴＬ記述が得られた後、そのＲＴＬ記述において用いられた特定の信号を再び使用して、各ＮＬＡを特定のＲＴＬ記述と関連付けている文書に追加パラグラフを追加することができる。この種類のＮＬＡの実装は、任意のテストベンチに適合可能な一般的な文書を提供するのに好都合であり得る。つまり、異なるテストベンチが使用された結果として信号名が変化した場合、関連付けパラグラフのみ変更を必要とする。
【００４７】
図２は、自動検証を含む別の例示的なＮＬＡ処理手法２００を示す。手法２００のステップ２０１では、ＮＬＡを識別する。この時点で、ステップ２０２では、前記ＮＬＡをＮＬＰ及び合成手法を用いてＶＬＡに変換する。ステップ２０３では、前記ＶＬＡを、ＶＬＡパーサ及びパターンマッチング手法を用いてＮＬＡ＊に変換して戻すことができる。ステップ２０４では、前記ＮＬＡ＊をＶＬＡ＊に変換する。ステップ２０５では、前記ＶＬＡと前記ＶＬＡ＊とを比較する。ステップ２０６における判断結果として、前記ＶＬＡと前記ＶＬＡ＊とが異なっている場合、ステップ２０７では、ユーザに対して警告を発生する。一方、前記ＶＬＡと前記ＶＬＡ＊とが異なっていない（即ち、同じ）場合、ステップ２０８では、前記ＶＬＡの検証を実施する。一実施形態では、この検証は、シミュレーション及び形式チェックを含み得る。ステップ２０９では、前記検証の結果（即ち、どれが失敗し、どれが成功したかの識別）を前記ＮＬＡにバックアノテートする。一実施形態では、各ステップは、複数のアサーションを処理し得ることを理解されたい（図１の説明を参照）。
【００４８】
一実施形態において速度向上能力を提供するために、ステップ２１０では、新規に識別されたＮＬＡを、キャッシュに保存されている既に変換に成功したＮＬＡのグループと比較することができる。つまり、或るＮＬＡが既に処理されている場合、その処理の結果を再利用することができるので、手法はステップ２０８に直接進むことができ、それによって全体の処理を最小限にする。ＮＬＡがまだ処理されていない場合、手法は、前述のステップ２０２に進む。
【００４９】
図３Ａは、ＲＴＬ識別子３０１（コントローラのためのモジュールを識別する）、ＲＴＬ入力／出力コード３０２、埋め込まれたＮＬＡ３０３（この場合、４つのＮＬＡ）、及びエンドモジュール指定子３０４を含む例示的なコントローラＲＴＬコード３００を示す。図３Ｂ〜３Ｅはそれぞれ、本発明に係る原ＮＬＡから生成されたＶＬＡ及び解釈ＮＬＡの例示的なコーディングを示す。各コーディングの例は、ＮＬＡ識別子３１０（この場合、モジュールのライン番号を示す）、原ＮＬＡ（ＯＲＩＧ）３１１、解釈ＮＬＡ（即ち、ＮＬＡ＊）（ＩＮＴＥＲＰ）３１２、ＮＬＡ＊から生成されたＶＬＡ３１３（第１ラインがラベル付けされている）、並びに、ＮＬＡ、ＮＬＡ＊、及びＶＬＡを関連付ける関連付け節３１４を含む。関連付け節３１４は、ＶＬＡをモジュールの特定のライン番号（例えば、この場合はライン１７５）と関連付けることを留意されたい（モジュール内の各ＮＬＡは理論上は複数のラインを用いて表現することができるため、ＮＬＡモジュールの第１ラインのみを参照することができることを留意されたい）。
【００５０】
解釈ＮＬＡ（ＮＬＡ＊）は、原ＮＬＡに対する解釈を反映し得ることを留意されたい。例えば、図３Ｃを参照して、原ＮＬＡは、「ｃｌｋ［１つのクロック］のポジティブエッジで、もしｃｅ０＿Ｎ［クロックは０を有効にする］又はｃｅ１＿Ｎ［クロックは１を有効にする］又はｃｅ２＿Ｎ［クロックは２を有効にする］又はｃｅ３＿Ｎ［クロックは３を有効にする］が立ち上がる場合」と記述する一方で、解釈ＮＬＡは、「ｃｌｋのポジティブエッジで、もしｃｅ０＿Ｎが立ち上がる又はｃｅ１＿Ｎが立ち上がる又はｃｅ２＿Ｎが立ち上がる又はｃｅ３＿Ｎが立ち上がる場合」と記述する。従って、この変換では、ＮＬＡプロセッサは、立ち上がるということを各信号に対して効果的に展開し、それによって作動条件を明確にする。別の実施形態では、図３Ｅを参照して、原ＮＬＡは、「次に、ｂ＿ｃｅ＿ｉｄｌｅが少なくとも１サイクルの間はハイの状態を保ち、続いて１サイクル後にａｄｘＳｔｒｂがハイの状態になる」と記述する一方で、解釈ＮＬＡは、「次に、ｂ＿ｃｅ＿ｉｄｌｅが少なくとも１ｃｌｋサイクルの間はハイの状態を保ち、続いてｃｌｋサイクル１においてａｄｘＳｔｒｂがハイの状態でなければならない」と記述する。従って、この変換では、ＮＬＡプロセッサは、「サイクル」を「ｃｌｋ［クロック］サイクル」に変換し、それによってその用語を明確にし、更に、各時間的アサーション毎に１つのサンプリングのみ行うことができることを明確にする、即ち、前述の「ｉｆ−ｔｈｅｎ（もし−次に）」節は、クロックサイクル１の間のみに適用可能である。図３Ｆは、ＮＬＡに基づいてＮＬＰによって出力されたＩＣ設計の或る部分の例示的なセマンティックツリー出力３２０を示す。
【００５１】
図４は、ＮＬＡ処理手法を含む例示的なデジタルＡＳＩＣ設計フローを簡略化して説明するための図である。上側の段において、プロセスは製品企画（ステップ４００）より開始し、ＥＤＡソフトウェア設計プロセスを実行する（ステップ４１０）。設計が終了すると、テープアウトを行う（イベント４４０）。テープアウト後、製造プロセス（ステップ４５０）、パッケージング及び組立プロセス（ステップ４６０）を実施し、最終的に、完成品チップが得られる（結果４７０）。
【００５２】
ＥＤＡソフトウェア設計プロセス（ステップ４１０）は、実際には複数のステップ４１２〜４３０から構成されており、簡略化のために直線的に示している。実際のＡＳＩＣ設計プロセスでは、特定の設計は、所定の試験に合格するまでステップを逆戻りしなければならないこともある。同様に、実際の設計プロセスでは、これらのステップは、異なる順序及び組み合わせで行われることがある。従って、この説明は、特定のＡＳＩＣのための具体的な或いは推奨する設計フローとしてよりも、むしろ背景説明（context）及び一般的な説明のために提供される。
【００５３】
ここで、ＥＤＡソフトウェア設計プロセス（ステップ４１０）を構成するステップを簡単に説明する。
【００５４】
システム設計（ステップ４１２）：設計者は、実装したい機能性を記述し、ｗｈａｔ−ｉｆプランニングを実施して機能性改良や費用確認などを行うことができる。
ハードウェア−ソフトウェア・アーキテクチャ・パーティショニングは、このステップで行うことができる。このステップで使用することができるシノプシス社（Synopsys, Inc.）製の例示的なＥＤＡソフトウェア製品には、Ｍｏｄｅｌ Ａｒｃｈｉｔｅｃｔ、Ｓａｂｅｒ、Ｓｙｓｔｅｍ Ｓｔｕｄｉｏ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）などの製品が含まれる。
【００５５】
論理設計及び機能性の検証（ステップ４１４）：このステップでは、システム内のモジュールのためのＶＨＤＬまたはＶｅｒｉｌｏｇコードを書き込み、その設計を機能性の精度について検査する。より具体的には、設計を検査することによって、正しい出力を生成することを保証する。このステップで使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＶＣＳ、ＶＥＲＡ、ＤｅｓｉｇｎＷａｒｅ（登録商標）、Ｍａｇｅｌｌａｎ、Ｆｏｒｍａｌｉｔｙ、ＥＳＰ、及びＬＥＤＡなどの製品が含まれる。一実施形態では、前述のＮＬＡ処理手法は、任意のシミュレーション及び検証ツールのセット、例えば、ＶＣＳ（シミュレーション）及びＭａｇｅｌｌａｎ（検証）に含まれ得る。
【００５６】
合成及び試験のための設計（ステップ４１６）：このステップでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇをネットリストに変換する。ネットリストは、目的の技術のために最適化することができる。加えて、完成品チップの検査を可能とする試験の設計及び実装を行う。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｄｅｓｉｇｎ Ｃｏｍｐｉｌｅｒ（登録商標）、Ｐｏｗｅｒ Ｃｏｍｐｉｌｅｒ、Ｔｅｔｒａｍａｘ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）などの製品が含まれる。
【００５７】
ネットリスト検証（ステップ４１８）：このステップでは、ネットリストを、タイミング制約との適合性及びＶＨＤＬ／Ｖｅｒｉｌｏｇソフトウェア製品との対応性について検査する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｆｏｒｍａｌｉｔｙ、ＰｒｉｍｅＴｉｍｅ、及びＶＣＳなどの製品が含まれる。
【００５８】
設計プランニング（ステップ４２０）：このステップでは、チップの全体フロアプランを作成し、タイミング及び最上位ルーティングについて解析する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ａｓｔｒｏ及びＩＣ Ｃｏｍｐｉｌｅｒなどの製品が含まれる。
【００５９】
物理的な実装（ステップ４２２）：このステップでは、配置（回路素子の位置決め）及びルーティング（回路素子の接続）を行う。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ａｓｔｒｏ及びＩＣ Ｃｏｍｐｉｌｅｒなどの製品が含まれる。
【００６０】
解析及び抽出（ステップ４２４）：このステップでは、回路機能をトランジスタレベルで検証し、これによりｗｈａｔ−ｉｆ解析による改良を可能にする。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＡｓｔｒｏＲａｉｌ、Ｐｒｉｍｅｔｉｍｅ、及びＳｔａｒ ＲＣ／ＸＴなどの製品が含まれる。
【００６１】
物理的な検証（ステップ４２６）：このステップでは、様々なチェック機能を実行し、製造、電気的な結果、リソグラフィックの結果、及び回路構成について正確性を保証する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｈｅｒｃｕｌｅｓなどの製品が含まれる。
【００６２】
分解能向上（ステップ４２８）：このステップでは、レイアウトの幾何学的操作を行い、設計の製造可能性を改善する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｐｒｏｔｅｕｓ、ＰｒｏｔｅｕｓＡＦ、及びＰＳＭＧｅｎなどの製品が含まれる。
【００６３】
マスクデータ準備（ステップ４３０）：このステップでは、完成品チップを作成するのに使用するリソグラフィーのために、マスク作成用の「テープアウト」データを提供する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＣＡＴＳ（登録商標）シリーズの製品が含まれる。
【００６４】
図５Ａは、前述の論理設計及び機能検証（ステップ４１４）を実装し得るシステム５００を簡略化して示す。システム５００では、ＮＬＡプロセッサ５０２は、入力５０１Ａとして、ＩＣのＲＴＬ記述及び該ＲＴＬ記述に埋め込まれたその対応するＮＬＡを受信する。入力５０１のＮＬＡ部分を用いて（及びＲＴＬ部分は無視して）、ＮＬＡプロセッサ５０２は、対応するＶＬＡ５０３を生成する。シミュレータ及び検証ツール５０４は、ＶＬＡ５０３及び入力５０１を受信し（この場合、ＮＬＡはコメントであるため、入力５０１のＲＴＬ部分のみがツール５０４で実際に読み出される）、１つ或いは複数のレポート５０５を生成する。一実施形態では、レポート５０５は、ＲＴＬ記述のコンテキストにおいて失敗に終わったＶＬＡを識別する。
【００６５】
この時点で、ＮＬＡプロセッサ５０２は、その失敗ＶＬＡを解釈ＮＬＡに変換して戻し、比較５０６を生成するのに好都合であり、それによってユーザが原ＮＬＡと解釈ＮＬＡとを比較して、エラーを調べられるようにする。別の実施形態では、ＮＬＡプロセッサ５０２は、全てのＶＬＡを解釈ＮＬＡに変換し、比較５０６を生成し得る。比較５０６の結果として、ＮＬＡプロセッサ５０２は、入力５０１ＡのＮＬＡ部分にバックアノテートすることができる。
【００６６】
図５Ｂに示す別の実施形態では、ＮＬＡが埋め込まれたＲＴＬ記述５０１Ａは、ＲＴＬのみの記述５０１Ｂと置換することができる。この場合、システム５１０は、一般的なＮＬＡ（ｇＮＬＡ）及び関連付けパラグラフ（ＢＰ）（即ち、入力５０７）並びにＲＴＬのみの記述５０１ＢをＮＬＡプロセッサ５０２に提供する。入力５０７を用いて、ＮＬＡプロセッサ５０２は、対応するＶＬＡ５０３を生成する。ＮＬＡプロセッサ５０２は、ＲＴＬ５０１Ｂも受信し、ＩＣ設計のポート／変数を識別し且つＮＬＡが前記設計内に存在する対象を参照していることを調査する。シミュレータ及び検証ツール５０４は、ＶＬＡ５０３及びＲＴＬのみの記述５０１Ｂを受信し、１つ或いは複数のレポート５０５を生成する。一実施形態では、レポート５０５は、ＲＴＬ記述のコンテキストにおいて失敗に終わったＶＬＡを識別し得る。
【００６７】
この時点で、ＮＬＡプロセッサ５０２は、そのＶＬＡを解釈ＮＬＡに変換して戻し、比較５０６を生成するのに好都合であり、それによってユーザが原ＮＬＡと解釈ＮＬＡとを比較して、エラーを調べられるようにする。別の実施形態では、ＮＬＡプロセッサ５０２は、全てのＶＬＡを解釈ＮＬＡに変換し、比較５０６を生成し得る。比較５０６の結果として、ＮＬＡプロセッサ５０２は、入力５０７の関連付けパラグラフにバックアノテートすることができる。
【００６８】
ＮＬＡのプロセス及びプロセッサについて前述の通り説明してきた。概念的には、前記プロセス／プロセッサは、２つの異なる手法を含んでいることで特徴付けることができる。第１の手法では、ＮＬＡをＶＬＡに変換する、非アルゴリズム手法が用いられることを広範に記述した。本質的に、この手法は人工知能の一種である。第２の手法では、ＶＬＡを解釈ＮＬＡに変換する、アルゴリズム手法が用いられることを広範に記述した。つまり、ＶＬＡは根本的に数学的表現である。コードのこれらの特定の変換は、検証ツールのユーザに著しい利益を提供する、即ち、そのユーザがＮＬＡと解釈ＮＬＡとの比較を介してＶＬＡの有意義な評価をできるようにする。この評価は、大部分の又は全てのステップをＮＬＡプロセッサで自動的に実行することにより、ＶＬＡのエラー訂正を容易にできるようにする。
【００６９】
本発明は、例えば、１つのデータ保存システム、少なくとも１つの入力装置、及び少なくとも１つの出力装置からデータ及び命令を受信し、且つそれらに対してデータ及び命令を送信するように接続された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行する１つ或いは複数のコンピュータプログラムに有利に実装することができる。各コンピュータプログラムは、高次手続き型又はオブジェクト指向型プログラミング言語で、或いは所望に応じてアセンブリ言語又は機械語で実装することができる。いずれにせよ、その言語は、コンパイラ型言語又はインタープリタ型言語である。適切なプロセッサには、例えば、汎用マイクロプロセッサ及び特定用途向けマイクロプロセッサの両者のほか、他の種類のマイクロコントローラが含まれる。一般的に、プロセッサは、読み出し専用メモリ及び／又はランダムアクセスメモリから命令及びデータを受信する。一般的に、コンピュータは、データファイルの保存用として１つ或いは複数の大容量記憶装置を有しており、その大容量記憶装置には、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及び光ディスクが含まれる。コンピュータプログラム命令及びデータを具体的に実施するのに適合する記憶装置には、全ての形態の不揮発性メモリ（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ装置、及びフラッシュメモリ装置）、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及びＣＤ−ＲＯＭディスクが含まれる。前述したいずれのものも、特定用途向け集積回路（ＡＳＩＣ）により補足することができる又はそれに組み込むことができる。
【００７０】
本発明の例示的な実施形態について添付の図面を参照して本明細書中で詳細に説明してきたが、本発明はこれらの正確な実施形態に限定されるわけではないことを理解されたい。これらの実施形態は、本発明を包括する或いは本発明をこれらと一致するものに制限することを意図しない。実施形態自体は、多数の変更及び変形ができることは明らかである。例えば、他の実施形態では、目前のタスクに完全に専用のＮＬＰを含む異なるＮＬＰを使用することができる。自然言語は、アサーションを記述するのみではなく、ＨＤＬ又はテストベンチ言語に同様に変換することができる試験計画、カバレッジポイント、及び制約を記述するために用いることもできる。更に別の実施形態では、エンドユーザは、ＮＬＡとＶＬＡとの間の変換の規則を明記することができる。従って、本発明の範囲は、特許請求の範囲に記載のもの及びそれらの同等物によって定義されるものとする。
【図１】
2011511990.tif 000011
【図２】
2011511990.tif 000012
【図３Ａ】
2011511990.tif 000013
【図３Ｂ】
2011511990.tif 000014
【図３Ｃ】
2011511990.tif 000015
【図３Ｄ】
2011511990.tif 000016
【図３Ｅ】
2011511990.tif 000017
【図３Ｆ】
2011511990.tif 000018
【図４】
2011511990.tif 000019
【図５Ａ】
2011511990.tif 000020
【図５Ｂ】
2011511990.tif 000021
【国際調査報告】
2011511990.tif 000022
2011511990.tif 000023