(57)【要約】【課題】  論理設計の段階で、論理設計された電子回路（論理回路）から、それより後の設計段階で不具合とされる動作を行う可能性が考えられる箇所を抽出し提示するための技術を提供する。【解決手段】解析部１０２は、ネットリスト１０１を解析し、信号の伝搬で生じる遅延時間を考慮すれば不具合とされる動作を行う可能性が考えられる箇所を抽出し、その箇所の動作を監視するためのアサーション記述１０３を生成する。シミュレーション部１０４は、そのアサーション記述１０３、ネットリスト１０１、及びテストパターン１０５を用いて論理シミュレーションを行うことにより、アサーション記述１０３が表す動作に違反する動作を検出した場合に、その動作を警告する警告メッセージ１０６を出力する。【選択図】図１
2009086817.tif 000002
【特許請求の範囲】
【請求項１】
設計用の基本素子であるセルを組み合わせて設計された電子回路を検証するための論理シミュレーションを行う論理シミュレーション装置において、
前記電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定手段と、
前記ピン特定手段が特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される前記制御用信号の駆動元となるセルを特定するセル特定手段と、
前記論理シミュレーションを行い、前記ピン特定手段が特定したピンにより前記セル特定手段が特定した複数のセルのうち２つ以上のセルでの同時動作を検出した場合に、該２つ以上のセルでの同時動作を警告するシミュレーション手段と、
を具備することを特徴とする論理シミュレーション装置。
【請求項２】
前記ピン特定手段が特定したピンにより前記セル特定手段が複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成手段、を具備し、
前記シミュレーション手段は、前記記述生成手段が生成したアサーション記述を用いて、前記セル特定手段が特定した複数のセルのうち２つ以上のセルでの同時動作の検出を行う、
ことを特徴とする請求項１記載の論理シミュレーション装置。
【請求項３】
前記セル特定手段が特定するセルはシーケンシャル・セルを対象とし、前記同時動作は、該シーケンシャル・セルにクロック信号として供給される信号の同一サイクル内での動作である、
ことを特徴とする請求項１記載の論理シミュレーション装置。
【請求項４】
設計用の基本素子であるセルを組み合わせて設計された電子回路の動作検証用のアサーション記述を自動的に生成するアサーション記述自動生成装置において、
前記電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定手段と、
前記ピン特定手段が特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される前記制御用信号の駆動元となるセルを特定するセル特定手段と、
前記ピン特定手段が特定したピンにより前記セル特定手段が複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成手段と、
を具備することを特徴とするアサーション記述自動生成装置。
【請求項５】
設計用の基本素子であるセルを組み合わせて設計された電子回路の動作検証用のアサーション記述を自動的に生成するアサーション記述自動生成装置として用いられるコンピュータに、
前記電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定機能と、
前記ピン特定機能により特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される前記制御用信号の駆動元となるセルを特定するセル特定機能と、
前記ピン特定機能によって特定したピンにより前記セル特定機能によって複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計用の基本素子であるセルを組み合わせて設計された電子回路（論理回路）を検証するための技術に関する。
【背景技術】
【０００２】
最近では、プリント配線板（ＰＣＢ）や集積回路などの電子回路の設計はＣＡＤ（Computer Aided Design ）を用いて行われる。そのＣＡＤでは、深い知識が無くとも設計が行えるように、標準化、モデル化が重視されている。電子回路の機能的、或いは論理的な単位となる素子、及び部品などは、具体的にはＮＡＮＤやＮＯＲなどの基本ゲート、フリップフロップ、シフト・レジスタ、ＣＰＵ、及びメモリなどは、基本素子（セル）としてライブラリに登録させている。それにより論理設計は基本的に、ライブラリに登録されたセルのなかで必要なセルを選択し、その選択したセル同士を接続させることで行われる。セル同士の接続は、それらがそれぞれ持つピンとピンを結ぶことで行われる。
【０００３】
論理設計の結果はネットリスト（論理回路データ）に変換される。そのネットリストはライブラリに登録されたセルの相互接続として記述されている。そのネットリストを利用して、各種検証やレイアウト設計が行われる。
【０００４】
その検証として行われるものに、論理シミュレーションがある。その論理シミュレーションは、論理設計された電子回路が正しく動作することを検証するために行われるものである。その論理シミュレーションでは、テストパターンと呼ばれるテスト用の信号を用いて、信号の伝搬で生じる遅延時間は考慮せずに行われる。
【０００５】
その遅延時間を考慮して行われる解析（シミュレーション）としては、信号が伝搬していく時間差によって不具合（誤動作など）が生じるか否か確認するためのタイミング解析がある。そのタイミング解析には、フリップフロップなどのセル（シーケンシャル・セル）でデータを取り込むタイミングが遅すぎるか否か確認するセットアップタイムチェックや、そのデータを取り込むタイミングが早すぎるか否か確認するホールドタイムチェックなどがある。
【０００６】
上記タイミング解析（シミュレーション）は、論理シミュレーションによる動作検証が済んだ電子回路（論理回路）を対象に行われる。そのタイミング解析で不具合が見つかることは多いのが実情であり、その不具合を解消するために、前の設計段階に戻って設計をやり直すことも多い。
【０００７】
そのタイミング解析は、論理シミュレーションと比較して処理時間は非常に長くかかる。一般的に、設計段階が後になるほど、検証（シミュレーション（解析））に要する処理時間は長くなる。このことから、設計上の不具合はより前の段階で見つけだすのが望まれる。それにより、論理設計が終了した段階でも、論理設計された電子回路（論理回路）から、それより後の設計段階で不具合とされる動作を行う可能性が考えられる箇所を抽出し提示することが望ましいと考えられる。
【０００８】
ところで現在では、動作検証にアサーション・ベース検証が注目されてきている。アサーションは、正しく動作することをより確実にするために使われる手法の一つであり、それによる検証（監視）は、成立すべき条件を指定し、その条件への違反を自動で検出させる形で行われる。最近では、ＳｙｓｔｅｍＶｅｒｉｌｏｇ等のように、アサーションに対応するアサーション機能を設計／検証言語に統合した言語も存在する。それにより、アサーションを容易に使用できる環境が整ってきている。
【０００９】
このようなこともあり、アサーションを用いれば、ケースに応じた個別の対応もより容易に行えるようになるといえる。このことから、不具合とされる動作を行う可能性が考えられる箇所の抽出にもアサーションを用いることが考えられる。なお、アサーションを検証に用いる従来の技術としては、例えば特許文献１に記載されたものがある。その特許文献１に記載の従来技術では、設計資料からアサーション記述を自動的に生成することにより、その設計資料の内容に応じた検証を可能とさせている。
【特許文献１】特開２００７−１１４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の課題は、論理設計の段階で、論理設計された電子回路（論理回路）から、それより後の設計段階で不具合とされる動作を行う可能性が考えられる箇所を抽出し提示するための技術を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の論理シミュレーション装置は、設計用の基本素子であるセルを組み合わせて設計された電子回路（論理回路）を検証するための論理シミュレーションを行うものであり、電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定手段と、ピン特定手段が特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される制御用信号の駆動元となるセルを特定するセル特定手段と、論理シミュレーションを行い、ピン特定手段が特定したピンによりセル特定手段が特定した複数のセルのうち２つ以上のセルでの同時動作を検出した場合に、該２つ以上のセルでの同時動作を警告するシミュレーション手段と、を具備する。
【００１２】
なお、上記ピン特定手段が特定したピンによりセル特定手段が複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成手段、を具備し、上記シミュレーション手段は、記述生成手段が生成したアサーション記述を用いて、セル特定手段が特定した複数のセルのうち２つ以上のセルでの同時動作の検出を行う、ことが望ましい。また、セル特定手段が特定するセルはシーケンシャル・セルを対象とし、同時動作は、該シーケンシャル・セルにクロック信号として供給される信号の同一サイクル内での動作である、ことが望ましい。
【００１３】
本発明のアサーション記述自動生成装置は、設計用の基本素子であるセルを組み合わせて設計された電子回路の動作検証用のアサーション記述を自動的に生成するものであり、電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定手段と、ピン特定手段が特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される制御用信号の駆動元となるセルを特定するセル特定手段と、ピン特定手段が特定したピンによりセル特定手段が複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成手段と、を具備する。
【００１４】
本発明のプログラムは、設計用の基本素子であるセルを組み合わせて設計された電子回路の動作検証用のアサーション記述を自動的に生成するアサーション記述自動生成装置として用いられるコンピュータに、電子回路を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、該シーケンシャル・セルに該制御用信号が入力されるピンを特定するピン特定機能と、ピン特定機能により特定したピン毎に、該ピンの入力側を対象とするバックトレースを行い、該ピンに入力される制御用信号の駆動元となるセルを特定するセル特定機能と、ピン特定機能によって特定したピンによりセル特定機能によって複数のセルを特定した場合に、該複数のセルのうち２つ以上のセルでの同時動作を検出するためのアサーション記述を自動的に生成する記述生成機能と、を実現させる。
【発明の効果】
【００１５】
本発明では、電子回路（論理回路）を構成するセルのなかでクロック信号等の制御用信号により制御されるシーケンシャル・セル毎に、そのシーケンシャル・セルに制御用信号が入力されるピンを特定し、特定したピン毎に、そのピンの入力側を対象とするバックトレースを行い、そのピンに入力される制御用信号の駆動元となるセルを特定し、論理シミュレーションを行う際に、特定したピンにより特定された複数のセルのうち２つ以上のセルでの同時動作を検出すると、その２つ以上のセルでの同時動作を警告する。
【００１６】
複数の駆動元からそれぞれ出力される信号によりシーケンシャル・セルのピンに制御用信号として入力される信号には、複数のセルのうちの２つ以上が同時動作することで意図しないパルスが発生する可能性がある。それにより、その２つ以上のセルでの同時動作は、信号の伝搬で生じる遅延時間（伝搬時間）を考慮すると、実際には不具合とされる動作である可能性がある。本発明では、そのような動作が行われる箇所を論理検証（論理シミュレーション）時に抽出し警告（提示）するため、設計者にとってはより早い段階で、信号の伝搬時間により生じる可能性が考えられる不具合に対応できることとなる。その後の設計段階に移行する前により多くの不具合を解消させられるようになることから、より完全な論理設計をより容易に行えることとなる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による論理シミュレーション装置の機能構成を示す図である。その論理シミュレーション装置は、記述された設計結果であるＨＤＬ（ハードウェア記述言語）、或いはそのＨＤＬから変換・生成されるネットリスト（論理設計結果である論理回路データ）を論理設計結果１０１、及びその動作検証用に生成されたテストパターン１０５を取得し、それらを用いて論理シミュレーションを行い、その結果を出力するものである。以降、図１を参照しつつ、詳細に説明する。論理設計結果１０１については以降、最終的に用いられるのは一般的にネットリストであることから「ネットリスト」と呼ぶことにする。
【００１８】
解析部１０２は、ネットリスト１０１を解析し、タイミング解析等で不具合とされる動作を行う可能性が考えられる箇所を抽出し、その箇所の動作を監視するためのアサーション記述１０３を予め決定した言語で生成する。ここで図２〜図４に示す各説明図を参照して、そのアサーション記述１０３を自動生成する対象となる箇所の動作、及びその箇所の動作監視用に自動生成するアサーション記述１０３について具体的に説明する。本実施形態によるアサーション記述自動生成装置は、その解析部１０２によって実現されている。
【００１９】
図２は、設計された非同期回路の例を示す図である。その回路は、３つのＤフリップフロップＦＦ１〜３、及びアンドゲートＡＮＤ１を備えた構成である。クロック信号ＣｌｐｏｃｋはＤフリップフロックＦＦ１及び２のクロック入力端子にそれぞれ入力され、ＤフリップフロップＦＦ１のＱ出力端子から出力される信号はＤフリップフロップＦＦ２のＤ入力端子、及びアンドゲートＡＮＤ１にそれぞれ入力され、アンドゲートＡＮＤ１はＤフリップフロップＦＦ１及びＦＦ２のＱ出力端子及びバーＱ出力端子からそれぞれ出力された信号の論理積を示す信号をＤフリップフロップＦＦ３のクロック入力端子に出力する構成となっている。それにより、ＤフリップフロップＦＦ３のクロック入力端子にクロック信号として入力される信号は、ＤフリップフロップＦＦ１及び２、並びにアンドゲートＡＮＤ１から成る組み合わせ論理回路により生成される。
【００２０】
その組み合わせ回路において、アンドゲートＡＮＤ１から出力される信号は、その時点で各ＤフリップフロップＦＦ１及び２から出力される信号に依存する。それらＤフリップフロップＦＦ１及び２は、クロック入力端子に入力されるクロック信号、更にはセット（ＳＥＴ）、或いはクリア（ＣＬＲ）端子に入力される信号を制御用信号として動作するシーケンシャル・セルに相当し、その出力信号は、それ以前の状態にも依存して変化する。それにより、制御用信号の入力間隔を単位時間として出力信号のレベル（論理値）を維持する信号発生源として機能する。このことから、ＤフリップフロップＦＦ３のクロック入力端子に入力される信号の駆動元、つまりその信号を生成させる元となる信号の発生源に相当する。このような信号の駆動元と見なすセルとしては、他の種類のフリップフロップ、レジスタ、及びカウンタ等がある。また、回路によっては、マクロセル、或いは入力ポート（プライマリインプット）となるピンが駆動元に相当する場合がある。ここでは便宜的に、駆動元はシーケンシャル・セルのみ想定することとする。
【００２１】
図３は、図２の非同期回路の動作を示すタイミングチャートである。その図３では、クロック信号Ｃｌｏｃｋ、ＤフリップフロップＦＦ１及びＦＦ２の各Ｑ出力端子から出力される信号（図中「ＦＦ１／Ｑ」「ＦＦ２／Ｑ」と表記）、並びにＤフリップフロップＦＦ３のクロック入力端子に入力される信号（図中「ＦＦ３／ＣＫ」と表記）の時間変化を示している。
【００２２】
図３に示すように、ＤフリップフロップＦＦ３のクロック入力端子に入力される信号（アンドゲートＡＮＤ１の出力信号）には、ＤフリップフロップＦＦ１のＱ出力端子から出力される信号が立ち上がり、且つＤフリップフロップＦＦ２のＱ出力端子からの信号が立ち下がるタイミング、及び逆にそれらの信号が立ち上がり、且つ立ち下がるタイミングで論理値が１、つまり信号レベルがＨレベルとなるパルスＰ１及び２が発生している。これは、信号の伝搬で生じる遅延時間の差等により、ＡＮＤゲートＡＮＤ１に入力される２つの信号が一時的に共にＨレベルとなるからである。
【００２３】
上記パルスＰ１及び２は、ＤフリップフロップＦＦ３のＤ入力端子に入力されるデータ信号との関係から、それ以降の動作を想定していないものとする可能性がある。それにより、タイミング解析等では不具合と見なされる。しかし、信号の伝搬で生じる遅延時間を考慮しない論理シミュレーションでは、その不具合と見なすべき動作は検証（検出）できない。このことから本実施形態では、解析部１０２により、タイミング解析等で不具合とされる動作を行う可能性が考えられる箇所を抽出し、その箇所の動作を監視するためのアサーション記述１０３を生成する。
【００２４】
その箇所の抽出は、Ｄフリップフロップのようなシーケンシャル・セルに備えられた制御用信号を入力するためのピン（入力端子）を探し出して行う。これは、シーケンシャル・セルでは、意図しない制御用信号の入力により動作が大きく変化する可能性が高いためである。それにより解析部１０２は、シーケンシャル・セルの制御用信号を入力するためのピン（ＤフリップフロップＦＦ３では、クロック入力端子、セット端子、或いはクリア端子が相当）を探し出すと、そのピンのロジックコーン（入力側の信号経路）をバックトレースし、駆動元となるセルを特定する。そのセルが複数、存在していれば、図３に示すパルスＰ１及び２のような不具合となる動作を行う可能性が考えられるとして、それら複数のセルの動作を監視するためのアサーション記述１０３を生成する。監視する動作は、それら複数のセルのうち２つ以上のセルが同時動作するか否かである。これは、上述した理由から、複数のセルのうち２つ以上のセルが同時動作すれば図３に示すようなパルスＰ１及び２が発生する可能性があるためである。
【００２５】
そのパルスＰ１及び２は、ＤフリップフロップＦＦ１及び２を駆動元として出力される信号によって生成される。その生成は、それらＤフリップフロップＦＦ１及び２が同時動作することによって行われる可能性がある。その可能性は、それらを制御するクロック信号Ｃｌｏｃｋのそれらが同時動作する同一のサイクル内であれば存在する。一定時間、その可能性がある。このことから、より高精度に監視を行うために同一のサイクル内での動作を同時動作と見なすようにしている。それにより、解析部１０２は、図２に示す非同期回路では、動作を監視する対象はそれらＤフリップフロップＦＦ１及び２とし、それらが同時動作しないか否か（同一のサイクル内で共に動作しないか否か）監視するためのアサーション記述１０３を生成する。
【００２６】
図４は、図２の非同期回路で生成されるアサーション記述１０３の例を示す図である。その例は、ＳｙｓｔｅｍＶｅｒｉｌｏｇで記述した場合のものである。アサーション記述１０３に用いる言語は、それに限定されるものではなく、別の言語を採用しても良い。
【００２７】
図４中「ｐｒｏｐｅｒｔｙ  ｐ１；」から最初の「ｅｎｄｐｒｏｐｅｒｔｙ」までの記述は、次の行の記述「ｓｖａ１  ：  ａｓｓｅｒｔ  ｐｒｏｐｅｒｔｙ（ｐ１）」であるアサーションステートメントをトリガするための先行式（条件）であり、ＤフリップフロップＦＦ１のＱ出力端子から出力される信号がＬレベルからＨレベルへ変化することと、ＤフリップフロップＦＦ２のＱ出力端子から出力される信号がＨレベルからＬレベルへ変化することがクロック信号Ｃｌｏｃｋの同一の立ち上がりエッジで発生してはならないことを監視対象とすることを意味する。その監視対象とする動作に違反する動作が、通知の対象である。残りの記述は逆に、ＤフリップフロップＦＦ１のＱ出力端子から出力される信号がＨレベルからＬレベルへ変化することとＤフリップフロップＦＦ２のＱ出力端子から出力される信号がＬレベルからＨレベルへ変化することがクロック信号Ｃｌｏｃｋの同一の立ち上がりエッジで発生してはならないことを監視するためのものである。
【００２８】
図４に示すようなアサーション記述１０３は、シーケンシャル・セルの制御用信号が入力されるピンのなかで駆動元のセルが複数、抽出されたピン毎に生成される。シミュレーション部１０３は、そのように生成されたアサーション記述１０３をネットリスト１０１、及びテストパターン１０５と共に用いて論理シミュレーションを行い、通常の論理検証と併せて、アサーション記述１０３により指定された動作の監視を行う。その監視により、指定された動作と異なる動作が行われた箇所では、動作上の不具合が存在する可能性が考えられるとして検討を促す警告メッセージ１０６を出力する。アサーション記述１０３による動作の監視は、例えばテストパターンに記述されたクロック信号の１サイクル毎に行う。
【００２９】
このようにして本実施形態では、論理検証（論理シミュレーション）の段階で、論理設計された電子回路（論理回路）から、それより後の設計段階で不具合とされる動作を行う可能性が考えられる箇所を設計者に提示する。従来の論理シミュレーションでは対象とされなかった、警告すべきと考えられる動作を警告の対象とする。このため、設計者にとっては、より適切な論理設計を行うための情報がより多く得られるようになり、より早い段階で不具合への対応がより容易に行えるようになる。それにより、論理設計に不適切な箇所が存在していながら後の設計段階に移行するのはより抑えられるようになることから、設計全体もより容易に行えるようになる。
【００３０】
上述の機能構成を備えた論理シミュレーション装置は、パーソナル・コンピュータ等のコンピュータを用いて実現されたものである。図１中、ネットリスト１０１、アサーション記述１０３、及びテストパターン１０５は、例えばコンピュータに搭載、或いは接続された補助記憶装置（例えばハードディスク装置）、及び半導体メモリ上に記憶されて用いられる。解析部１０２、及びシミュレーション部１０３はそれぞれ、例えば補助記憶装置上に格納された対応するプログラムをＣＰＵが実行することで実現される。警告メッセージ１０６は、例えばコンピュータに接続された表示装置、或いは通信ネットワークを介して接続された外部装置に出力され、設計者に伝達される。ネットリスト１０１及びテストパターン１０５もそれぞれ、補助記憶装置上に格納されたプログラムの実行により生成させることが可能である。ＬＡＮ等の通信ネットワークを介して外部装置から受信することで取得させることも可能である。
【００３１】
このようなことから、本実施形態による論理シミュレーション装置（或いはアサーション記述自動生成装置）は、コンピュータ（に搭載されたＣＰＵ）に、その論理シミュレーション装置（或いはアサーション記述自動生成装置）に搭載させるべき機能を実現させるプログラムを実行させることで得ることができる。このため、そのプログラムは光ディスクやフラッシュメモリ等の記録媒体に記録して配布しても良く、ＬＡＮ、或いはインターネット等の通信ネットワークを介して配信できるようにしても良い。それにより、プログラムは通信ネットワークを介して配信する装置がアクセス可能であっても良い。
【００３２】
図５は、アサーション記述自動生成処理のフローチャートである。その生成処理は、ネットリスト１０１を参照して、不具合とされる動作を行う可能性が考えられる箇所の動作を監視するためのアサーション記述１０３を生成するための処理である。上記解析部１０２は、例えばコンピュータ（に搭載されたＣＰＵ）が、その生成処理を行う機能を搭載したプログラムを実行することで実現される。その起動は、例えば設計者からの指示をトリガにして行われる。
【００３３】
先ず、ステップＳ１では、ネットリスト１０１に記述されたシーケンシャル・セルの一つに着目し、そのセルで制御用信号が入力されるピンの抽出を行う。次のステップＳ２では、抽出できたピンが有るか否か判定する。シーケンシャル・セルの制御用信号が入力されるピンのなかで、アサーション記述１０３を生成する対象となる可能性が考えられるものが残っていない場合、抽出されるピンは存在しないことから、判定はＮＯとなり、既に生成したアサーション記述１０３を論理シミュレーションに用いる形にして保存した後、一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップＳ３に移行する。
【００３４】
ステップＳ３では、抽出したピンのロジックコーンをバックトレースし、そのピンに入力される制御用信号の駆動元となるセル（シーケンシャル・セル）を探索する。続くステップＳ４では、その探索により、アサーション記述１０３を生成する条件である２つ以上の駆動元のセルを抽出したか否か判定する。駆動元のセルが２つ以上、抽出された場合、条件は満たすとして、判定はＹＥＳとなってステップＳ５に移行し、２つ以上のセルが同時動作しないことを監視するためのアサーション記述１０３を生成した後、上記ステップＳ１に戻る。それにより、対象を他のそれまでに対象としていないピンに変更して、その抽出を行う。一方、そうでない場合には、つまり１つの駆動元のセルのみ抽出された場合には、判定はＮＯとなり、そのステップＳ１に戻る。
【００３５】
このようにして、シーケンシャル・セルが有する制御用信号が入力されるピン毎に、アサーション記述１０３を記述する条件を満たすか否か判定し、その判定結果に応じてアサーション記述１０３の生成を行うようになっている。それにより、動作の不具合が考えられる箇所を全て抽出して設計者に提示できるようにしている。
【００３６】
駆動元のセルが３つ以上であった場合、全てのセルが同時動作しないのを監視するためのアサーション記述１０２のみを生成しても良いが、その場合、検出精度は低くなる。なぜなら、抽出されたセルの総数がＮ（＞２）であれば、２以上（Ｎ−１）以下のセルが同時動作することで生じる可能性が考えられる不具合（ハザード）を見逃してしまうからである。このことから、その場合には、２つのセルの組み合わせ毎に、アサーション記述１０３を生成することが望ましい。
【００３７】
なお、本実施形態では、抽出された駆動元のセルが複数であれば無条件でアサーション記述１０３を生成するようにしているが、駆動元までのセル数の違いを考慮して、アサーション記述１０３を生成する条件を設けても良い。例えばセル数の差が所定値以上となることを条件に、アサーション記述１０３を生成するようにしても良い。これは、セル数の違いが少なければ、配線長が大きく異ならない限り、信号の伝搬で生じる遅延時間の差は小さい可能性が高くなると考えられるからである。
【図面の簡単な説明】
【００３８】
【図１】本実施形態による論理シミュレーション装置の機能構成を示す図である。
【図２】設計された非同期回路の例を示す図である。
【図３】図２の非同期回路の動作を示すタイミングチャートである。
【図４】図２の非同期回路で生成されるアサーション記述１０３の例を示す図である。
【図５】アサーション記述自動生成処理のフローチャートである。
【符号の説明】
【００３９】
１０１    ネットリスト
１０２    解析部
１０３    アサーション記述
１０４    シミュレーション部
１０５    テストパターン
１０６    警告メッセージ
ＦＦ１〜３    Ｄフリップフロップ
ＡＮＤ１    アンドゲート
【図１】
2009086817.tif 000003
【図２】
2009086817.tif 000004
【図３】
2009086817.tif 000005
【図４】
2009086817.tif 000006
【図５】
2009086817.tif 000007