(57)【要約】【課題】メタステーブルを考慮した遅延検証を行なうことが可能な遅延検証装置を提供すること。【解決手段】メタステーブルＦＦ指定部３６は、メタステーブルが発生する可能性のあるＦＦを指定する。タイミング検証部３５は、パス抽出部３４によって抽出されたパスの中から、対象となる順序回路の始点ポイントから終点ポイントに至るパスを抽出し、抽出されたパスの遅延を行なう。このとき、メタステーブルＦＦ指定部３６によって指定されたＦＦの遅延値として、メタステーブル時の遅延値が使用される。したがって、メタステーブルを考慮した遅延検証を行なうことが可能となる。【選択図】        図４
2005031890.tif 000002
【特許請求の範囲】
【請求項１】
静的パス遅延解析手法を用いて遅延検証を行なう遅延検証装置であって、
論理回路に含まれる順序回路の中から、メタステーブルが発生する可能性のある順序回路を指定する指定手段と、
前記指定手段によって指定された順序回路の遅延値としてメタステーブル時の遅延値を用い、それ以外の順序回路の遅延値として非メタステーブル時の遅延値を用いて遅延解析を行なう解析手段とを含む、遅延検証装置。
【請求項２】
前記解析手段は、前記論理回路中の外部出力端子と順序回路のデータ入力ピンとを始点ポイントとして抽出する始点ポイント抽出手段と、
前記論理回路中の外部入力端子と順序回路のデータ出力ピンとを終点ポイントとして抽出する終点ポイント抽出手段と、
前記始点ポイント抽出手段によって抽出された始点ポイントから、前記終点ポイント抽出手段によって抽出された終点ポイントまでのパスを抽出するパス抽出手段と、
前記パス抽出手段によって抽出されたパスの中から、対象となる順序回路の始点ポイントから終点ポイントに至るパスを抽出し、抽出されたパスの遅延値の中で最大の遅延値がクロックの周期以上であれば、違反パスレポートを出力するタイミング検証手段とを含む、請求項１記載の遅延検証装置。
【請求項３】
前記指定手段は、前記論理回路に含まれる順序回路がどの外部クロック端子からのクロックで動作するかによって、順序回路が非同期の関係にあるどのクロック系に属するかを分類し、対象となる順序回路に異なるクロック系の順序回路からのデータ出力が入力される場合には、前記対象となる順序回路をメタステーブルが発生する可能性のある順序回路として指定する、請求項１または２記載の遅延検証装置。
【請求項４】
前記遅延検証装置はさらに、前記解析手段によって使用される遅延値を格納する格納手段と、
非メタステーブル時の遅延値とメタステーブル時の遅延値との差の平均値に、対象となる順序回路の非メタステーブル時の遅延値を加算して、前記対象となる順序回路のメタステーブル時の遅延値として前記格納手段に登録する遅延値登録手段とを含む、請求項１〜３のいずれかに記載の遅延検証装置。
【請求項５】
前記遅延検証装置はさらに、前記解析手段によって使用される遅延値を格納する格納手段と、
非メタステーブル時の遅延値とメタステーブル時の遅延値との比の平均値に、対象となる順序回路の非メタステーブル時の遅延値を乗算して、前記対象となる順序回路のメタステーブル時の遅延値として前記格納手段に登録する遅延値登録手段とを含む、請求項１〜３のいずれかに記載の遅延検証装置。
【請求項６】
遅延シミュレーション手法を用いて遅延検証を行なう遅延検証装置であって、
論理回路内の素子の入力ピンに信号変化が発生したことを示すイベントを生成して登録するイベント登録手段と、
前記イベント登録手段によって登録されたイベントに基づいて遅延シミュレーションを行ない、順序回路の入力信号の変化が制約を満たさない場合には、当該順序回路の遅延値としてメタステーブル時の遅延値を用いて、前記イベント登録手段にイベントを生成させる遅延シミュレーション手段とを含む、遅延検証装置。
【請求項７】
前記遅延検証装置はさらに、前記遅延シミュレーション手段によって使用される遅延値を格納する格納手段と、
非メタステーブル時の遅延値とメタステーブル時の遅延値との差の平均値に、対象となる順序回路の非メタステーブル時の遅延値を加算して、前記対象となる順序回路のメタステーブル時の遅延値として前記格納手段に登録する登録手段とを含む、請求項６記載の遅延検証装置。
【請求項８】
前記遅延検証装置はさらに、前記遅延シミュレーション手段によって使用される遅延値を格納する格納手段と、
非メタステーブル時の遅延値とメタステーブル時の遅延値との比の平均値に、対象となる順序回路の非メタステーブル時の遅延値を乗算して、前記対象となる順序回路のメタステーブル時の遅延値として前記格納手段に登録する遅延値登録手段とを含む、請求項６記載の遅延検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フリップフロップなどの順序回路を含んだ論理回路の遅延検証を行なう技術に関し、特に、順序回路のデータ入力に非同期信号が入力されてメタステーブルが発生するような場合を考慮して論理回路の遅延検証を行なう遅延検証装置に関する。
【０００２】
【従来の技術】
近年、半導体集積回路の回路規模が増加する傾向にあり、このような半導体集積回路の遅延検証を高速で高精度に行なえるような遅延検証装置が盛んに開発されている。一般に、遅延検証においては、遅延シミュレーション手法と、静的パス遅延解析手法との２つの方法が用いられる。これら２つの手法とも、論理回路を構成する論理素子に対する遅延値を計算し、この遅延値に基づいて検証を行なうものである。
【０００３】
論理素子の遅延値とは、素子の入力ピンにおける信号変化が出力ピンにおける信号変化として現れるまでの時間のことである。論理素子の入力／出力ピンが多数ある場合、入力ピンと出力ピンとの組合わせに対して、他の入力ピンの信号値が変化しない場合の遅延値を計算し、これを遅延値として用いる。この遅延値の計算は、他の入力ピンが変化しないことが前提となっている。
【０００４】
しかし、実際の論理回路においては、複数の入力ピンにおける信号が同時に変化する可能性がある。この場合、上述した方法で計算された遅延値と、実際の論理回路における遅延値とは、大きな計算誤差が発生し得る。このような大きな計算誤差が発生する場合として、フリップフロップ（以下、ＦＦと略す。）などの順序回路において発生するメタステーブル状態を挙げることができる。
【０００５】
メタステーブル状態とは、ＦＦの入力信号において、セットアップ時間やホールド時間が守られなかった場合に、出力信号が不安定な状態になることをいう。このメタステーブル状態は長く続くことはなく、必ず起きる現象でもない。しかし、メタステーブル状態でない場合のＦＦの遅延値に比べ、１０倍以上の遅延誤差が発生する可能性がある。動作周波数の高い、高速な回路を設計する上では無視できない誤差である。なお、メタステーブルの発生原理は、「非同期クロック間のデータ転送方法」、ｐｐ１１９，  Ｄｅｓｉｇｎ  Ｗａｖｅ  Ｍａｇａｚｉｎｅ  ２００１  Ｓｅｐｔｅｍｂｅｒに詳細に説明されているので、これを参照されたい。
【０００６】
これに関連する技術として、特開平１０−１２４５５２号公報および特開平６−７６０１５号公報に開示された発明がある。
【０００７】
特開平１０−１２４５５２号公報に開示されたタイミング検証方法においては、非タイミング検証素子である同期ラッチまたは外部データ出力ピンを起点として外部データ入力ピンまたは同期ラッチに至るまでの間に順次接続される非同期ラッチを検証対象とする。そして、最悪条件のもとで各非同期ラッチが正常に動作するために必要とされる非同期クロックのタイミングに関する条件を順次導出し、さらに端に位置する非同期ラッチが受ける外部入力データ（または、同期ラッチから出力されるデータ）のタイミングに関する制約条件を導出して、これらの制約条件と予め用意した非同期クロック情報等とを対比することにより検証を行なう。
【０００８】
特開平６−７６０１５号公報に開示された論理回路検証方法においては、各セルの持つ遅延値を最小遅延値から最大遅延値までの値に統計的手法により設定し、設定した遅延時間を利用してシミュレーションを繰返すことにより、統計的に論理回路を検証するものである。
【０００９】
【特許文献１】
特開平１０−１２４５５２号公報
【００１０】
【特許文献２】
特開平６−７６０１５号公報
【００１１】
【発明が解決しようとする課題】
通常のクロック同期型の論理回路において、異なるクロック系に属する回路からの信号や、非同期の信号が入力されるＦＦでメタステーブルが発生する可能性がある。しかし、従来の遅延検証方法においては、メタステーブルを想定した正しい遅延値を用いたものがないため、メタステーブルを考慮した遅延検証が行なえないといった問題点があった。
【００１２】
また、上述した特開平１０−１２４５５２号公報に開示されたタイミング検証方法および特開平６−７６０１５号公報に開示された論理回路検証方法においては、セットアップ時間やホールド時間を満足しないＦＦなどの順序回路を検出することは可能であるが、メタステーブルを考慮した遅延検証を行なうことは不可能である。
【００１３】
本発明は、上記問題点を解決するためになされたものであり、その目的は、メタステーブルを考慮した遅延検証を行なうことが可能な遅延検証装置を提供することである。
【００１４】
【課題を解決するための手段】
本発明のある局面に従えば、静的パス遅延解析手法を用いて遅延検証を行なう遅延検証装置であって、論理回路に含まれる順序回路の中から、メタステーブルが発生する可能性のある順序回路を指定する指定手段と、指定手段によって指定された順序回路の遅延値としてメタステーブル時の遅延値を用い、それ以外の順序回路の遅延値として非メタステーブル時の遅延値を用いて遅延解析を行なう解析手段とを含む。
【００１５】
本発明の別の局面に従えば、遅延シミュレーション手法を用いて遅延検証を行なう遅延検証装置であって、論理回路内の素子の入力ピンに信号変化が発生したことを示すイベントを生成して登録するイベント登録手段と、イベント登録手段によって登録されたイベントに基づいて遅延シミュレーションを行ない、順序回路の入力信号の変化が制約を満たさない場合には、当該順序回路の遅延値としてメタステーブル時の遅延値を用いて、イベント登録手段にイベントを生成させる遅延シミュレーション手段とを含む。
【００１６】
【発明の実施の形態】
（第１の実施の形態）
通常のクロック同期型の論理回路において、メタステーブルが発生する可能性があるＦＦは、異なるクロック系に属する回路からの信号や、非同期の信号を入力とするＦＦに限定される。
【００１７】
図１は、メタステーブルが発生する場合の論理回路の一例を示す図である。この論理回路は、ＦＦ１０１，１０２および１０４と、組合わせ回路１０３とを含む。ＦＦ１０１に入力されるクロックＣＬＫＡと、ＦＦ１０２に入力されるクロックＣＬＫＢとが非同期であるので、ＦＦ１０２のデータ入力端子には非同期信号が入力される。そのため、ＦＦ１０２においてメタステーブルが発生する可能性があり、メタステーブル状態の伝播（レーシング）を防止するために、ＦＦ１０４においてメタステーブル時の遅延値を用いた遅延検証が必要になる。
【００１８】
図２は、メタステーブル状態の伝播を防止するための論理回路の一例を示す図である。この論理回路は、図１に示す論理回路と比較して、ＦＦ１０２と組合わせ回路１０３との間に、ＦＦ１０５を挿入したものである。ＦＦ１０５に入力されるクロックは、ＦＦ１０２に入力されるクロックと同じものが使用され、メタステーブル時における遅延値よりも十分に大きな周期を有している。そのため、十分な遅延マージンを得ることができ、メタステーブル時における遅延誤差を吸収することができる。すなわち、ＦＦ１０４の遅延検証においては、非メタステーブル時の遅延値を用いた遅延検証で十分となる。しかし、このようなメタステーブル状態の伝播の防止策は、必要となるＦＦ数が増大し、論理回路の規模増大や消費電力が増大するという問題点がある。
【００１９】
本発明の第１の実施の形態における遅延検証装置は、メタステーブル時の遅延値を用いた遅延検証を可能とし、メタステーブル状態の伝播を防止するためのＦＦを不要とするものである。
【００２０】
図３は、本発明の第１の実施の形態における遅延検証装置の構成例を示すブロック図である。この遅延検証装置は、コンピュータ本体１、ディスプレイ装置２、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）４が装着されるＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８が装着されるＣＤ−ＲＯＭ装置７、およびネットワーク通信装置９を含む。
【００２１】
遅延検証プログラムは、ＦＤ４またはＣＤ−ＲＯＭ８等の記録媒体によって供給される。遅延検証プログラムがコンピュータ本体１によって実行されることによって、論理回路の遅延検証が行なわれる。また、遅延検証プログラムは他のコンピュータよりネットワーク通信装置９を経由し、コンピュータ本体１に供給されてもよい。
【００２２】
図３に示すコンピュータ本体１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２およびハードディスク１３を含む。ＣＰＵ１０は、ディスプレイ装置２、ＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ装置７、ネットワーク通信装置９、ＲＯＭ１１、ＲＡＭ１２またはハードディスク１３との間でデータを入出力しながら処理を行なう。
【００２３】
ＦＤ４またはＣＤ−ＲＯＭ８に記録された遅延検証プログラムは、ＣＰＵ１０によりＦＤドライブ３またはＣＤ−ＲＯＭ装置７を介してハードディスク１３に格納される。ＣＰＵ１０は、ハードディスク１３から適宜遅延検証プログラムをＲＡＭ１２にロードして実行することによって、論理回路の遅延検証が行なわれる。
【００２４】
図４は、本発明の第１の実施の形態における遅延検証装置の機能的構成を示すブロック図である。この遅延検証装置は、論理回路のネットリストが格納されるネットリスト格納部２１と、ネットリスト格納部２１に格納されたネットリストを参照して各素子の遅延値を計算する遅延値計算部３１と、遅延値計算部３１によって計算された遅延値が格納される素子遅延データベース２２と、ネットリスト格納部２１に格納されたネットリストを参照してパス遅延解析の始点ポイントを抽出する始点ポイント抽出部３２と、ネットリスト格納部２１に格納されたネットリストを参照してパス遅延解析の終点ポイントを抽出する終点ポイント抽出部３３と、始点ポイント抽出部３２によって抽出された始点ポイントから終点ポイント抽出部３３によって抽出された終点ポイントに至るパスを抽出するパス抽出部３４と、素子遅延データベース２２およびパス抽出部３４によって抽出されたパスに基づいてタイミング検証を行ない、違反パスレポート２３を出力するタイミング検証部３５と、メタステーブルが発生する可能性のあるＦＦを指定するメタステーブルＦＦ指定部３６とを含む。
【００２５】
図５は、本発明の第１の実施の形態における遅延検証装置の処理手順を説明するためのフローチャートである。まず、ネットリスト格納部２１に格納された解析対象の論理回路のネットリストが入力される（Ｓ１１）。遅延値計算部３１は、ネットリスト中の各素子に対して、素子の入力から出力に至る遅延値を計算し、その遅延値を素子遅延データベース２２に登録する（Ｓ１２）。このとき、ＦＦについては、メタステーブル時と非メタステーブル時との２種類の遅延値を計算する。
【００２６】
次に、クロック周期や入力／出力端子の外部遅延が指定される（Ｓ１３）。そして、ネットリスト中のＦＦがメタステーブルの可能性があるＦＦと、メタステーブルの可能性がないＦＦとが指定される（Ｓ１４）。この指定は、メタステーブルＦＦ指定部３６を用いて、人手によって対象ＦＦを指定することによって行なわれる。
【００２７】
次に、始点ポイント抽出部３２および終点ポイント抽出部３３は、パス遅延解析の始点ポイントと終点ポイントとの集合を抽出する（Ｓ１５）。始点ポイント抽出部３２は、回路の外部出力端子とＦＦのデータ入力ピンとを始点ポイントとして抽出する。また、終点ポイント抽出部３３は、回路の外部入力端子とＦＦのデータ出力ピンとを終点ポイントとして抽出する。
【００２８】
次に、パス抽出部３４は、始点ポイント抽出部３２によって抽出された始点ポイントの集合の中から１つを選択する（Ｓ１６）。ここで、選択する始点ポイントがなければ、処理を終了する。
【００２９】
パス抽出部３４は、選択した始点ポイントに対して、終点パスに向かう全パスを列挙する。そして、タイミング検証部３５は、その各パス上にある素子の遅延値の総和を計算する。そして、遅延値の総和の最大値が、クロック周期よりも大きければ、違反パスレポート２３を出力する（Ｓ１７）。ここで、素子がメタステーブルの可能性があるＦＦの場合、遅延値としてメタステーブル時の遅延値を用いる。また、素子がメタステーブルの可能性がないＦＦの場合、遅延値として非メタステーブル時の遅延値を用いる。
【００３０】
図６は、本発明の第１の実施の形態における遅延検証装置によって静的パス遅延解析が行なわれる論理回路の一例を示す図である。この論理回路は、ＦＦ１１１、１１３、１１４および１１５と、ＡＮＤ回路１１２とを含む。
【００３１】
まず、図６に示す回路図（ネットリスト）がネットリスト格納部２１に格納されており、その回路図が入力される（Ｓ１１）。遅延値計算部３１は、各素子の遅延値を図５に示すように計算する。すなわち、ＦＦ−Ａ１１３、ＦＦ−Ｂ１１４、ＦＦ−Ｃ１１１およびＦＦ−Ｄ１１５のメタステーブル時の遅延値として、Ｄｅｌａｙ（ＦＦ−Ａ−ｍ），Ｄｅｌａｙ（ＦＦ−Ｂ−ｍ），Ｄｅｌａｙ（ＦＦ−Ｃ−ｍ）およびＤｅｌａｙ（ＦＦ−Ｄ−ｍ）を計算し、非メタステーブル時の遅延値として、Ｄｅｌａｙ（ＦＦ−Ａ），Ｄｅｌａｙ（ＦＦ−Ｂ），Ｄｅｌａｙ（ＦＦ−Ｃ）およびＤｅｌａｙ（ＦＦ−Ｄ）を計算する。また、ＡＮＤ回路の遅延値として、入力端子Ａから出力端子Ｙまでの遅延値Ｄｅｌａｙ（Ａ＿Ｙ）と入力端子Ｂから出力端子Ｙまでの遅延値Ｄｅｌａｙ（Ｂ＿Ｙ）とを計算する。
【００３２】
次に、クロック周期や入力／出力端子の外部遅延が指定され（Ｓ１３）、メタステーブルの可能性があるＦＦが指定される（Ｓ１４）。図６に示す論理回路においては、ＦＦ−Ｃ１１１のクロック入力ピンのみが異なるクロック（ＣＬＫ１）系に属するＦＦ（ＦＦ−Ｄ１１５）からの入力データを受入れるため、ＦＦ−Ｃ１１１がメタステーブルの可能性があるＦＦとして指定される。
【００３３】
次に、始点ポイント抽出部３２および終点ポイント抽出部３３は、始点ポイントおよび終点ポイントの集合を抽出する（Ｓ１５）。図５に示す論理回路においては、始点ポイントとして外部出力端子（ＯＵＴ）と、各ＦＦのデータ入力ピンとが抽出される。また、終点ポイントとして外部入力端子（ＩＮＰ）と、各ＦＦのデータ出力ピンとが抽出される。
【００３４】
たとえば、ＦＦ−Ａ１１３のデータ入力ピンが始点として選択された場合（Ｓ１６）、ＦＦ−Ａ１１３のデータ入力ピンを始点としたパスは、ＦＦ−Ｂ１１４のデータ出力ピンに至るパスと、ＦＦ−Ｃ１１１のデータ出力ピンに至るパスとの２種類がある。ＦＦ−Ｂ１１４は、ＦＦ−Ａ１１３と同期の関係にあるため、ＦＦ−Ｂ１１４の遅延値として、非メタステーブル時の遅延値Ｄｅｌａｙ（ＦＦ−Ｂ）が使用される。また、ＦＦ−Ｃ１１１の入力を受けるタイミングは、ＦＦ−Ａ１１３と非同期の関係にあるため、ＦＦ−Ｃ１１１の遅延値として、メタステーブル時の遅延値Ｄｅｌａｙ（ＦＦ−Ｃ−ｍ）が使用される。したがって、ＦＦ−Ａ１１３のデータ入力ピンに至る２つのパスの遅延値は、Ｄｅｌａｙ（ＦＦ−Ｃ−ｍ）＋Ｄｅｌａｙ（Ａ＿Ｙ）と、Ｄｅｌａｙ（ＦＦ−Ｂ）＋Ｄｅｌａｙ（Ｂ＿Ｙ）とになる。
【００３５】
タイミング検証部３５は、この遅延値が、指定されたクロック周期以上であれば、違反パスレポート２３を出力する。
【００３６】
以上説明したように、本実施の形態における遅延検証装置によれば、メタステーブルの可能性があるＦＦの場合には、メタステーブル時の遅延値を用いてタイミング検証を行なうようにしたので、メタステーブルを考慮した遅延解析を行なうことが可能となった。
【００３７】
（第２の実施の形態）
本発明の第１の実施の形態においては、メタステーブルの可能性があるＦＦを人手によって指定していたが、メタステーブルの可能性があるＦＦの数が多い場合、指定抜けが発生する可能性があり、正しい遅延検証が行なえなくなるという問題点がある。本発明の第２の実施の形態においては、メタステーブルの可能性があるＦＦを自動的に抽出するものである。
【００３８】
本発明の第２の実施の形態における遅延検証装置の構成例は、図３に示す第１の実施の形態における遅延検証装置の構成例と同様である。また、本発明の第２の実施の形態における遅延検証装置の機能的構成は、図４に示す第１の実施の形態におけるメタステーブルＦＦ指定部３６の機能が異なる点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００３９】
図７は、本発明の第２の実施の形態におけるメタステーブルＦＦ指定部３６の構成をさらに詳細に説明するための図である。メタステーブルＦＦ指定部３６は、ネットリスト格納部２１に格納されるネットリストを参照して外部クロック端子などに定義するクロックドメイン名を入力するクロックドメイン入力部４１と、論理回路中の全てのＦＦのデータ入力ピンおよびクロック入力ピンが所属するクロックドメイン名を指定するクロックドメイン指定部４２と、論理回路中のＦＦをクロックドメイン名に基づいて分類するクロックドメイン分類部４３と、クロックドメイン分類部４３による分類に応じてメタステーブルが発生する可能性のあるＦＦを抽出してメタステーブルＦＦ格納部４５に格納するメタステーブルＦＦ抽出部４４とを含む。
【００４０】
図８は、本発明の第２の実施の形態におけるメタステーブルＦＦ指定部３６の処理手順を説明するためのフローチャートである。上述したように、メタステーブルが発生する可能性のあるＦＦは、外部入力端子から直接データ入力があるＦＦおよび異なるクロック系のＦＦからデータ入力があるＦＦに限定される。したがって、ＦＦの属するクロック系を解析することで、メタステーブルが発生する可能性のあるＦＦを自動的に抽出することができる。
【００４１】
まず、ネットリスト格納部２１からネットリストが入力される（Ｓ２１）。そして、クロックドメイン入力部４１によってクロックドメイン名が入力される（Ｓ２２）。同期関係がないクロック入力端子に対して、別々のクロックドメイン名が定義される。また、非同期信号が入力される外部入力端子に対しても、別のドメイン名が定義される。このクロックドメイン入力部４１によるクロックドメイン名の入力は、ユーザがキーボード５、マウス６などを用いることによって行なわれる。
【００４２】
次に、クロックドメイン指定部４２によって論理回路中の全ての入力ピンおよびクロック入力ピンに対して、所属するクロックドメイン名が指定される（Ｓ２３）。このクロックドメイン指定部４２によるクロックドメイン名の指定は、ユーザがキーボード５、マウス６などを用いることによって行なわれる。
【００４３】
次に、クロックドメイン分類部４３は、ネットリスト中の全てのＦＦに対して、クロック入力ピンに接続しているクロック入力端子のクロックドメイン名によって分類する（Ｓ２４）。
【００４４】
最後に、メタステーブルＦＦ抽出部４４は、ＦＦのデータ入力ピンを始点として、データ入力方向に、外部入力端子またはＦＦの出力ピンに到達するまでネットリストをトレースする。トレースした末端の外部入力端子またはＦＦのクロックドメイン名が、始点のＦＦのクロックドメイン名と異なる場合、その始点のＦＦをメタステーブルが発生する可能性のあるＦＦとして抽出し、メタステーブルＦＦ格納部２４に登録して（Ｓ２５）、処理を終了する。
【００４５】
以上説明したように、本実施の形態における遅延検証装置においては、同期関係がないクロック入力端子、または非同期信号が入力される外部入力端子に別のクロックドメイン名を定義し、論理回路中の全ての入力ピンおよびクロック入力ピンに対して所属するクロックドメイン名を指定し、クロックドメイン名によってメタステーブルが発生する可能性のあるＦＦを抽出するようにしたので、メタステーブルが発生する可能性のあるＦＦを自動的に抽出することができ、ＦＦの指定抜けを防止することが可能となった。
【００４６】
（第３の実施の形態）
本発明の第１の実施の形態における遅延検証装置においては、素子遅延データベース２２に、各ＦＦに対するメタステーブル時の遅延値と非メタステーブル時の遅延値との２種類の遅延値を登録する必要がある。しかし、素子の遅延計算においては、一般に半導体メーカ固有のツールを用いる必要があり、メタステーブル時の遅延値を登録できない場合が考えられる。本発明の第３の実施の形態の遅延検証装置においては、メタステーブル時の遅延値の概算値を求めて、素子遅延データベース２２に登録するものである。
【００４７】
図９は、本発明の第３の実施の形態におけるメタステーブル時の遅延値の計算処理を説明するためのフローチャートである。典型的な回路構成におけるＦＦの非メタステーブル時の遅延値と、メタステーブル時の遅延値との情報を、予め半導体メーカ等から入手する。そして、これらの情報から、非メタステーブル時の遅延値と、メタステーブル時の遅延値との差の平均（Ａ）２５が求められる。
【００４８】
素子遅延データベース２２に登録がないＦＦのメタステーブル時の遅延値を、非メタステーブル時の遅延値（素子遅延情報２６）に対して、平均遅延差（Ａ）２５を加算することによって求め、メタステーブル時の遅延値（素子遅延情報２７）として素子遅延データベース２２に登録する（Ｓ３１）。
【００４９】
以上説明したように、本実施の形態における遅延検証装置においては、典型的な回路構成におけるＦＦの非メタステーブル時の遅延値と、メタステーブル時の遅延値との差の平均から、登録がないＦＦのメタステーブル時の遅延値を計算するようにしたので、メタステーブル時の遅延値を入手できない場合でも、メタステーブルを考慮した遅延検証を行なうことが可能となった。
【００５０】
（第４の実施の形態）
本発明の第３の実施の形態においては、メタステーブル時の遅延値を、非メタステーブル時の遅延値に平均遅延値（Ａ）２５を加算することによって求めた。本発明の第４の実施の形態においては、実際の回路の遅延値に近い値とするために、平均遅延差（Ａ）２５を加算するのではなく、平均的な遅延値の比を乗算して求めた値を用いる。これによって、メタステーブル時の遅延値の誤差を小さくすることができる。
【００５１】
図１０は、本発明の第４の実施の形態におけるメタステーブル時の遅延値の計算処理を説明するためのフローチャートである。典型的な回路構成におけるＦＦの非メタステーブル時の遅延値と、メタステーブル時の遅延値との情報を、予め半導体メーカ等から入手する。そして、これらの情報から、非メタステーブル時の遅延値と、メタステーブル時の遅延値との比の平均（Ｂ）２８が求められる。
【００５２】
素子遅延データベース２２に登録がないＦＦのメタステーブル時の遅延値を、非メタステーブル時の遅延値（素子遅延情報２６）に対して、平均遅延比（Ｂ）２８を乗算することによって求め、メタステーブル時の遅延値（素子遅延情報２９）として素子遅延データベース２２に登録する（Ｓ４１）。
【００５３】
以上説明したように、本実施の形態における遅延検証装置においては、典型的な回路構成におけるＦＦの非メタステーブル時の遅延値と、メタステーブル時の遅延値との比の平均から、登録がないＦＦのメタステーブル時の遅延値を計算するようにしたので、実施の形態３と比較して、メタステーブル時の遅延値の誤差を小さくすることが可能となった。
【００５４】
（第５の実施の形態）
本発明の第５の実施の形態における遅延検証装置は、イベント処理方式の遅延シミュレーションに関するものである。イベント処理方式の遅延シミュレーションとは、ネットリスト中の外部入力端子や素子のピンの信号変化だけに着目して、効率的にシミュレーションを行なう手法である。一般的な論理回路においては、外部入力端子の信号が変化しても、論理回路中の多くの素子のピン状態は変化しないことが多い。したがって、ネットリスト中の全素子を対象として信号変化のシミュレーションを行なうよりも、信号変化が発生した素子だけを対象としてシミュレーションを行なう方が効率的である。イベント処理方式の遅延シミュレーションにおいては、信号変化をイベントと呼ぶ。そして、イベントを登録する内部データベースをイベントキューと呼ぶ。イベントキューには、変化する素子のピン、信号値および変化が発生する時刻が登録される。
【００５５】
図１１は、本発明の第５の実施の形態における遅延検証装置の機能的構成を示すブロック図である。この遅延検証装置は、ネットリスト格納部２１と、素子遅延データベース２２と、論理回路のシミュレーションを行なうためのテストパターンが格納されるテストパターン格納部５１と、信号変化イベントを検出して登録する信号変化イベント登録部５２と、論理回路のシミュレーションを実行するシミュレーション実行部５４と、信号変化イベント登録部５２によって検出された信号変化イベントが登録されるイベントキュー５３とを含む。
【００５６】
図１２は、本発明の第５の実施の形態における遅延検証装置の処理手順を説明するためのフローチャートである。まず、ネットリスト格納部２１からネットリストが読込まれ、素子遅延データベース２２から素子遅延データが読込まれる（Ｓ５１）。
【００５７】
次に、シミュレーション時刻の初期化が行なわれる（Ｓ５２）。そして、信号変化イベント登録部５２は、テストパターン格納部５１に格納されたテストパターン（入力信号ベクタ）を読込み、テストパターンを解釈して、信号変化のある入力ピンについては、その変化の時刻の信号変化イベントとしてイベントキュー５３に全て登録する（Ｓ５３）。
【００５８】
次に、シミュレーション実行部５４は、イベントキュー５３にイベントがあるか否かをチェックする（Ｓ５４）。イベントがなければ（Ｓ５４，無）、処理を終了する。イベントがあれば（Ｓ５４，有）、現時刻のイベントがあるか否かを判定する（Ｓ５５）。
【００５９】
現時刻のイベントがなければ（Ｓ５５，無）、シミュレーション時刻を進め（Ｓ５７）、ステップＳ５４へ戻って以降の処理を繰返す。現時刻のイベントがあれば（Ｓ５５，有）、シミュレーション実行部５４は、現時刻のイベントに対するシミュレーションを実行する。信号変化が発生した信号線を入力とする素子を調べ、その信号変化が素子の出力信号に変化をもたらすか否かをチェックする。
【００６０】
素子の出力信号に変化がある場合、信号変化イベント登録部５２は、その素子の遅延分だけ時刻を遅らせた新しい信号変化イベントとして、イベントキュー５３に登録する（Ｓ５６）。このとき、対象素子がＦＦであれば、入力データの変化がセットアップ時間やホールド時間の制約を満たしているか否かによって、遅延時間を変更する。制約を満たしている場合には、非メタステーブル時の遅延時間を用いる。また、制約を満たしていない場合には、メタステーブル時の遅延時間を用いる。そして、ステップＳ５５に戻って以降の処理を繰返す。
【００６１】
以上説明したように、本実施の形態における遅延検証装置によれば、イベント処理方式の遅延シミュレーションを実行し、信号変化があったＦＦにおいてメタステーブルが発生する場合には、メタステーブル時の遅延時間を用いるようにしたので、メタステーブルを考慮した遅延シミュレーションを行なうことが可能となった。
【００６２】
（第６の実施の形態）
第５の実施の形態においては、メタステーブル時の遅延データと非メタステーブル時の遅延データとが素子遅延データベース２２に格納されていることを想定していた。しかし、必ずしもメタステーブル時の遅延データを使用できるとは限らない。この場合には、第３の実施の形態または第４の実施の形態において説明した構成を用いることによって、メタステーブル時の遅延データも素子遅延データベース２２に登録することができる。
【００６３】
なお、本実施の形態における遅延検証装置の構成例は、図３に示す第１の実施の形態における遅延検証装置の構成例と同様である。また、本実施の形態における遅延検証装置の機能的構成は、図１１に示す第５の実施の形態における遅延検証装置の機能的構成と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００６４】
以上説明したように、本実施の形態における遅延検証装置によれば、本発明の第５の実施の形態において説明した効果に加えて、メタステーブル時の遅延値を入手できない場合でも、メタステーブルを考慮した遅延検証を行なうことが可能となった。
【００６５】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００６６】
【発明の効果】
本発明のある局面によれば、解析手段が、指定手段によって指定された順序回路の遅延値としてメタステーブル時の遅延値を用い、それ以外の順序回路の遅延値として非メタステーブル時の遅延値を用いて遅延解析を行なうので、メタステーブルを考慮した遅延検証を行なうことが可能となった。
【００６７】
本発明の別の局面によれば、遅延シミュレーション手段が、イベント登録手段によって登録されたイベントに基づいて遅延シミュレーションを行ない、順序回路の入力信号の変化が制約を満たさない場合には、当該順序回路の遅延値としてメタステーブル時の遅延値を用いて、イベント登録手段にイベントを生成させるので、メタステーブルを考慮した遅延検証を行なうことが可能となった。
【図面の簡単な説明】
【図１】メタステーブルが発生する場合の論理回路の一例を示す図である。
【図２】メタステーブル状態の伝播を防止するための論理回路の一例を示す図である。
【図３】本発明の第１の実施の形態における遅延検証装置の構成例を示すブロック図である。
【図４】本発明の第１の実施の形態における遅延検証装置の機能的構成を示すブロック図である。
【図５】本発明の第１の実施の形態における遅延検証装置の処理手順を説明するためのフローチャートである。
【図６】本発明の第１の実施の形態における遅延検証装置によって静的パス遅延解析が行なわれる論理回路の一例を示す図である。
【図７】本発明の第２の実施の形態におけるメタステーブルＦＦ指定部３６の構成をさらに詳細に説明するための図である。
【図８】本発明の第２の実施の形態におけるメタステーブルＦＦ指定部３６の処理手順を説明するためのフローチャートである。
【図９】本発明の第３の実施の形態におけるメタステーブル時の遅延値の計算処理を説明するためのフローチャートである。
【図１０】本発明の第４の実施の形態におけるメタステーブル時の遅延値の計算処理を説明するためのフローチャートである。
【図１１】本発明の第５の実施の形態における遅延検証装置の機能的構成を示すブロック図である。
【図１２】本発明の第５の実施の形態における遅延検証装置の処理手順を説明するためのフローチャートである。
【符号の説明】
１  コンピュータ本体、２  ディスプレイ装置、３  ＦＤドライブ、４  ＦＤ、５  キーボード、６  マウス、７  ＣＤ−ＲＯＭ装置、８  ＣＤ−ＲＯＭ、９ネットワーク通信装置、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  ハードディスク、２１  ネットリスト格納部、２２  素子遅延データベース、２３  違反パスレポート、３１  遅延値計算部、３２  始点ポイント抽出部、３３終点ポイント抽出部、３４  パス抽出部、３５  タイミング検証部、３６  メタステーブルＦＦ指定部、４１  クロックドメイン入力部、４２  クロックドメイン指定部、４３  クロックドメイン分類部、４４  メタステーブルＦＦ抽出部、４５  メタステーブルＦＦ格納部、５１  テストパターン格納部、５２  信号変化イベント登録部、５３  イベントキュー、５４  シミュレーション実行部、１０１，１０２，１０４，１０５，１１１，１１３，１１４，１１５  ＦＦ、１０３  組合わせ回路、１１２  ＡＮＤ回路。
【図１】
2005031890.tif 000003
【図２】
2005031890.tif 000004
【図３】
2005031890.tif 000005
【図４】
2005031890.tif 000006
【図５】
2005031890.tif 000007
【図６】
2005031890.tif 000008
【図７】
2005031890.tif 000009
【図８】
2005031890.tif 000010
【図９】
2005031890.tif 000011
【図１０】
2005031890.tif 000012
【図１１】
2005031890.tif 000013
【図１２】
2005031890.tif 000014