(57)【特許請求の範囲】
【請求項１】
クロック信号が与えられるクロック入力ノードを含めた複数の入力ノードと複数の内部ノードを持ち、前記クロック入力ノード以外の前記入力ノードに与えられる入力信号の論理値変化を時間経過または前記クロック信号の論理値変化のサイクル数に対応して伝えるタイミングネットワークと、前記内部ノードの１つである前記タイミングネットワークの出口ノードに現れるタイミングネットワーク出力信号および前記クロック信号に対応する論理値変化または変化後の論理値が与えられる特定論理デバイスとを含む論理回路の動作を調べる論理シミュレーション装置であって、
前記クロック信号に同期して前記論理回路のマルチサイクルパスの回路動作のシミュレーションを実行するシミュレーション実行部を備え、
（ａ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以下であればよいとする、所要クロックサイクル数に関するタイミングの制約、または（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以上であればよいとする、所要クロックサイクル数に関するタイミングの制約を所定の制約情報で表すときに、
前記特定論理デバイスに与えられる前記タイミングネットワーク出力信号が、前記所定の制約情報に違反するかどうかをチェックするように前記シミュレーション実行部を構成し、
前記時間経過または前記クロック信号の論理値変化のサイクル数の特定ポイントにおいて、前記入力ノードおよび前記内部ノードにおける論理値および／またはその論理値変化を遷移情報として保持する手段を具備した論理シミュレーション装置。
【請求項２】
前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値に制約される、という制約が前記所定の制約情報で表される場合において、前記所定の数値未満の信号レベル変化の遷移が存在した場合は、前記特定論理デバイスの出力を不定とするように構成された請求項１に記載の論理シミュレーション装置。
【請求項３】
クロック信号が与えられるクロック入力ノードを含めた複数の入力ノードと複数の内部ノードを持ち、前記クロック入力ノード以外の前記入力ノードに与えられる入力信号の論理値変化を時間経過または前記クロック信号の論理値変化のサイクル数に対応して伝えるタイミングネットワークと、前記内部ノードの１つである前記タイミングネットワークの出口ノードに現れるタイミングネットワーク出力信号および前記クロック信号に対応する論理値変化または変化後の論理値が与えられる特定論理デバイスとを含む論理回路の動作をシミュレートするシミュレーション装置であって、
（ａ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以下であればよいとする、所要クロックサイクル数に関するタイミングの制約、または（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以上であればよいとする、所要クロックサイクル数に関するタイミングの制約を所定の制約情報で表すときに、
前記論理回路の回路構成を示す回路情報を入力する回路情報入力部と、
前記論理回路内の前記特定論理デバイスにおける前記所定の制約情報を入力する制約情報入力部と、
前記入力ノードに所定の論理値変化または所定の論理値を与える入力ノード論理情報設定部と、
前記回路情報入力部から入力された前記回路情報、前記制約情報入力部から入力された前記所定の制約情報、および前記入力ノード論理情報設定部で与えられた前記所定の論理値変化または所定の論理値を記憶する入力情報記憶部と、
前記クロック信号に対応するクロックを発生するクロック発生部と、
前記クロック発生部で発生されたクロックをカウントするカウンタと、
前記入力情報記憶部に記憶された情報に基づいて、前記クロック発生部で発生されたクロックに同期して前記論理回路のマルチサイクルパスの回路動作のシミュレーションを実行するシミュレーション実行部とを備え、
前記シミュレーション実行部において、前記特定論理デバイスに与えられる前記タイミングネットワーク出力信号が前記所定の制約情報に違反するかどうかをチェックするように構成した論理シミュレーション装置。
【請求項４】
前記カウンタによる前記クロックのカウント値をクロック番号で表すときに、特定のクロック番号またはそのクロック番号に対応した時間において前記入力ノードおよび前記内部ノードのうちの少なくとも一部における論理値変化または変化後の論理値を遷移情報として記録する遷移情報記録部をさらに備えた請求項３に記載の論理シミュレーション装置。
【請求項５】
前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値に制約される、という制約が前記所定の制約情報で表される場合において、前記所定の数値未満の信号レベル変化の遷移が存在した場合は、前記特定論理デバイスの出力を不定とするように構成された請求項３または請求項４に記載の論理シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理値０から論理値１（または論理値１から論理値０）への信号遷移が所定の時間（または所定のクロックサイクル数）を経て通過する回路要素（タイミングネットワーク）を含む論理回路のシミュレータに関する。
【背景技術】
【０００２】
論理回路設計においては、その回路を集積化回路等で実際に製品化する前に、その回路設計の妥当性をチェックする論理シミュレータが用いられている。その例として、以下のものがある。すなわち、論理接続データを入力し、各論理ゲートの接続関係を接続情報として抽出し、ハザードをモデル化して各論理ゲートの状態伝搬を論理値で表し、抽出された各論理ゲートの接続関係について、論理ゲート状態伝搬表を用いてハザードの発生と伝搬についてのシミュレーションを行うものがある（特許文献１）。（この文献１はハザード機能に限定されている。）
また、各素子の出力信号にレベル遷移が生ずる毎に、素子に対応する記憶エリアに、少なくとも、レベル遷移の内容を特定するレベル遷移情報と、いずれの入力端子に与えられたテストパターン信号がレベル遷移の原因となったかを示すレベル遷移原因情報とを情報テーブル形式で書込み、タイミングエラーを検出するものがある（特許文献２）。
【０００３】
また、タイミングプリミティブ内部のタイミングエラー検証手段により、シミュレーション実行状況から、素子間の信号線の信号変化から得られる素子の入出力信号変化を把握し、タイミングチェック値定義ファイルの内容に基づいて、素子毎に独立した内容のタイミングエラー検証を行うものがある（特許文献３）。
【０００４】
また、タイミングチェックプリミティブ付加手段が、選択素子情報付回路情報及び選択ループ回路情報付回路情報に基づき、選択素子あるいは選択ループ回路の入出力間のみにタイミングチェックプリミティブを付加したタイミングチェックプリミティブ付回路情報を出力し、素子間の信号線の信号変化から得られる素子の入出力信号変化を把握し、詳細なタイミングエラー検証を行うものがある（特許文献４）。
【０００５】
さらに、シミュレーション実行手段が、信号値として論理値以外にタイミングエラーの有無を示すエラー値を与えて、エラーの影響追跡を可能にするものがある（特許文献５）。
【特許文献１】特開平9-16649号公報（図１）
【特許文献２】特開平2-252066号公報（図１）
【特許文献３】特開平5-128199公報（図１）
【特許文献４】特開平5-61931号公報（図１）
【特許文献５】特開平4-357569号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように論理シミュレータは従来から種々提案されているが、従来のシミュレータでは、例えば「ある論理回路内の信号経路を信号遷移が通過するのに要する時間またはクロックサイクル数は特定値以上もしくは特定値以下にすべき」といった制約情報がある場合に、シミュレート対象回路内がこの制約情報に違反しているかどうかのチェックを含めた回路検証は困難であった。換言すると、上記のような制約情報によるタイミング制約が妥当であったのか（静的タイミング解析に使用されるタイミング制約の妥当性）を信号遷移の通過状況に応じて確認すること（誤ったタイミング制約を与えてしまった場合に動的に確認すること）が、従来のシミュレータでは困難であった。
【０００７】
この発明の課題の１つは、論理回路のシミュレーションにおいて、タイミング制約の妥当性を確認できるようにすることである。
【課題を解決するための手段】
【０００８】
この発明の一実施の形態に係る論理シミュレータは、クロック信号（ＣＬＫ）が与えられるクロック入力ノード（Ｎ２）を含めた複数の入力ノード（Ｎ１〜Ｎ３）と複数の内部ノード（Ｎ４〜Ｎ６）を持ち、前記クロック入力ノード（Ｎ２）以外の前記入力ノード（Ｎ３）に与えられる入力信号（ＳＩＧ＿Ａ）の論理値変化を時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）に対応して伝えるタイミングネットワーク（ＦＦ−Ａ、Ｕ１）と、前記内部ノード（Ｎ４〜Ｎ６）の１つ（Ｎ５）である前記タイミングネットワークの出口ノード（Ｎ５）に現れるタイミングネットワーク出力信号（ＴＩ５）および前記クロック信号（ＣＬＫ）に対応する論理値変化または変化後の論理値（ＴＩ２）が与えられる特定論理デバイス（ＦＦ−Ｂ）とを含む論理回路の動作を調べる論理シミュレータである。
【０００９】
この論理シミュレータは、（ａ）前記タイミングネットワーク（ＦＦ−Ａ、Ｕ１）内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以下であればよいとする、所要クロックサイクル数に関するタイミングの制約（例えばset_multicycle_path-setup2-from A to B-のような形式で記述される制約:その内容は、ＡからＢまでの遷移が２サイクル以内なら良しとする、あるいはその遷移に３サイクル以上掛かってはいけないという制約；換言すれば、ｎ番目の信号遷移がｎ＋３番目以降のクロックで到達するのは不可であるが、ｎ番目の信号遷移がｎ＋２番目以前のクロックで到達するなら良しとする制約；この制約に違反するとセットアップエラーとなる）、または
（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する所要クロックサイクル数が所定の数値以上であればよいとする、所要クロックサイクル数に関するタイミングの制約（例えばset_multicycle_path-hold2-from B to C-のような形式で記述される制約:その内容は、ＢからＣまでの遷移が１サイクル以上なら良しとする、あるいはその遷移が１サイクル未満でＣへ到達してはならないという制約；換言すれば、ｎ番目の信号遷移がｎ番目のクロックで到達してはならないが、ｎ番目の信号遷移がｎ＋１番目以降のクロックで到達するなら良しとする制約；この制約に違反するとホールドエラーとなる）を所定の制約情報で表すときに、
前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が、前記所定の制約情報に違反するかどうかをチェックする（図８のＳＴ２０）ように構成される。
【００１０】
上記の構成において、前記時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）の特定ポイント（図７のｔ０〜ｔ３０）において、前記入力ノード（Ｎ１〜Ｎ３）および前記内部ノード（Ｎ４〜Ｎ６）における論理値（０／１の値）および／またはその論理値変化（↓↑）を遷移情報として保持することができる。
【００１１】
また、上記の構成において、前記特定論理デバイス（ＦＦ−Ｂ）は前記内部ノード（Ｎ４〜Ｎ６）の他の１つ（Ｎ６）として出力ノード（Ｎ６）を持ち、前記所定の制約情報に違反するというチェック結果がでた場合（図８のＳＴ２０イエス）は、前記特定論理デバイス（ＦＦ−Ｂ）の出力ノード（Ｎ６）の論理値を不定（Ｘ）とし、および／またはエラーメッセージを出力する（図８のＳＴ２４）ことができる。このエラーメッセージ（セットアップエラーやホールドエラーのメッセージ等）は、図示しない表示装置に画像出力されてもよいし、図示しないプリンタによりプリントアウトされてもよい。
【発明の効果】
【００１２】
静的タイミング解析に使用されるタイミング制約の妥当性を、論理シミュレータを使用して動的に確認することが可能となる。換言すれば、誤ったタイミング制約を与えてしまった場合に、そのことを信号遷移の通過状況に応じて動的に確認することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照してこの発明の種々な実施の形態を説明する。図１は、この発明の一実施の形態に係る論理シミュレータの構成を説明するブロック図である。シミュレートしようとする論理回路の回路構成を示す回路情報は、回路情報入力部１０から入力される。入力された回路情報は、例えば図２のような回路構成を持つ。この回路構成のうち、タイミングネットワークＴＮＷ１（ＤタイプフリップフロップＦＦ−ＡとＯＲゲートＵ１からなる回路）に注目して書き直した論理回路が図３である。図３の回路は、クロック信号ＣＬＫが与えられるクロック入力ノードＮ２を含めた複数の入力ノードＮ１〜Ｎ３と複数の内部ノードＮ４〜Ｎ６を持つ。図３の回路は、クロック入力ノードＮ２以外の入力ノードＮ３に与えられる入力信号ＳＩＧ＿Ａの論理値変化（０から１への↑変化、または１から０への↓変化）を時間経過またはクロック信号ＣＬＫの論理値変化のサイクル数（クロック番号増加）に対応して伝えるタイミングネットワークＴＮＷ１（ＦＦ−Ａ、Ｕ１）を含む。この回路はさらに、内部ノードＮ４〜Ｎ６の１つであるタイミングネットワークの出口ノードＮ５に現れるタイミングネットワーク出力信号ＴＩ５および、クロック信号ＣＬＫに対応する論理値変化または変化後の論理値ＴＩ２が与えられる特定論理デバイスとして、ＤタイプフリップフロップＦＦ−Ｂを含んでいる。
【００１４】
図３の論理回路内の特定論理デバイスＦＦ−Ｂにおける所定の制約情報は、図１の制約情報入力部１２から入力される。ここで、所定の制約情報とは、（ａ）前記論理回路に含まれるタイミングネットワーク（図１のＴＮＷ１、ＴＮＷ２等）内の信号経路を信号レベル変化（０から１への↑変化、または１から０への↓変化）の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以下であるとする制約、または（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以上であるとする制約を表すものである。その記述形式は、例えば（ａ）set_multicycle_path-setup2-from A to B-あるいは（ｂ）set_multicycle_path-hold2-from B to C-のようになる。
【００１５】
（ａ）の記述例は、ＡからＢまでの遷移が２サイクル以内なら良しとする、あるいはその遷移に３サイクル以上掛かってはいけないというタイミングに関する制約を表している。換言すれば、（ａ）の記述例は、ｎ番目の信号遷移がｎ＋３番目以降のクロックで到達するのは不可であるが、ｎ番目の信号遷移がｎ＋２番目以前のクロックで到達するなら良しとする、所要クロックサイクル数に関するタイミングの制約情報を示す。また、（ｂ）の記述例は、ＢからＣまでの遷移が１サイクル以上なら良しとする、あるいはその遷移が１サイクル未満でＣへ到達してはならないというタイミングに関する制約を表している。換言すれば、（ｂ）の記述例は、ｎ番目の信号遷移がｎ番目のクロックで到達してはならないが、ｎ番目の信号遷移がｎ＋１番目以降のクロックで到達するなら良しとする、所要クロックサイクル数に関するタイミングの制約情報を示す。
【００１６】
図３の入力ノードＮ１〜Ｎ３における初期設定値（論理値変化↓↑または論理値（０または１））は入力ノード論理情報設定部（１４）から与えられる。回路情報入力部１０から入力された前記回路情報、制約情報入力部１２から入力された前記所定の制約情報、および入力ノード論理情報設定部１４）で与えられた前記所定の論理値変化（↓↑の論理値変化または０／１の値）は、入力情報記憶部１６で記憶される。記憶された各情報は、シミュレーション実行部２０に送られる。
【００１７】
シミュレーション実行部２０の動作クロックはクロック発生部２４で作られる。クロック発生部２４からのクロックはクロックカウンタ２２でカウントされつつ、クロック信号ＣＬＫに変換されてシミュレーション実行部２０に与えられる。そのクロック周波数は既知なので、クロックカウンタ２２でのクロックカウント数（カウントされたクロック番号）は、シミュレーション実行中における時間経過ポイントを示すことに使用できる。
【００１８】
シミュレーション実行部２０は、入力情報記憶部１６に記憶された回路情報、制約情報、および入力ノードの初期設定値情報に基づき、クロック信号ＣＬＫに同期して、前記論理回路の回路動作のシミュレーションを実行する。このシミュレーション実行中における特定の時間経過ポイント（カウンタ２２でカウントされた特定クロック番号のポイント）での回路ノードの状態（↓↑の論理値変化状態または０／１の値）は、そのポイント毎に、遷移情報記録部２６に記録される。つまり、シミュレーション実行開始からその終了までの特定ポイント各々において、回路内の種々なノードにおける論理状態が遷移情報記録部２６に記録され、この記録は後にシミュレーション結果の検証に利用される。シミュレーション実行部２０によるシミュレーション結果が悪かった場合（特定論理デバイスＦＦ−Ｂにおいて制約情報違反があった場合等）は、処理部２８において、特定論理デバイスＦＦ−Ｂの出力を不定（Ｘ）に設定し、および／または図示しない表示装置にエラーメッセージを出力する（その際エラーの結果を図示しないプリンタによりプリントアウトするように構成してもよい）。
【００１９】
図８は、この発明の一実施の形態に係る論理シミュレータの動作例を説明するフローチャートである。図３〜図６は、この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ０〜ｔ３０における各ノードの論理値状態を例示している。また、図７は、時刻ｔ０〜ｔ３０における各ノードの論理値変化タイミングを例示している。以下、図３〜図７を適宜参照しつつ、図８のフローチャートを説明する。
【００２０】
まず、シミュレートする論理回路（図３等）の回路情報と、その回路内の特定論理デバイス（ＦＦ−Ｂ）における制約情報（set_multicycle_path-setup2-from A to B-のような形式の記述）が入力される（図８のＳＴ１０）（回路の入力ノード論理レベルは当初不定Ｘ…図７のｔ０より前）。ここでは、入力信号ＳＩＧ＿Ａの変化↑が２クロック以内にＦＦ−Ｂの出力へ遷移しておれば良いという条件が所定の制約情報として与えられているとする。
【００２１】
続いて、シミュレートする論理回路の入力ノード（Ｎ１、Ｎ２、Ｎ３）に所定の論理レベル変化または所定の論理値を与える（リセット信号ＲＳＴ↑、クロック信号ＣＬＫ↓、入力信号ＳＩＧ＿Ａ↑；またはＲＳＴ＝１、ＣＬＫ＝０、ＳＩＧ＿Ａ＝１）（図８のＳＴ１２）（図７のｔ０〜ｔ５）。このときの回路ノードＮ１〜Ｎ６各々における信号状態は、図３に例示されている。これらの信号状態は、時間ポイントｔ０〜ｔ５（クロック番号は＃０）におけるノードＮ１〜Ｎ６の遷移情報となる。この遷移情報は図１の遷移情報記録部２６で記録される。
【００２２】
続いて、シミュレーションが実行される（図８のＳＴ１４）。すなわち、図７のｔ１０において、ＤタイプフリップフロップＦＦ−ＡのＤ入力である信号ＳＩＧ＿Ａ（ノードＮ３）が１の状態でクロック信号ＣＬＫ（ノードＮ２）が↑に変化（クロック番号は＃１に増加）すると、ＦＦ−ＡのＱ出力（ノードＮ４）は↑に変化し、このＱ出力を受けたＯＲゲートＵ１の出力(ノードＮ５)は↑に変化する。クロック信号ＣＬＫ（ノードＮ２）が↑に変化した直前のＤタイプフリップフロップＦＦ−ＢのＤ入力（ノードＮ５）は０レベルであったので、ｔ１０でＦＦ−ＢがＣＬＫの↑でクロックされてもそのＱ出力（ノードＮ６）は０のままである（ＦＦ−ＡとＵ１からなるタイミングネットワークを通過したＳＩＧ＿Ａの信号遷移は未だＦＦ−Ｂに到達していない）。図４はこのときの回路ノードＮ１〜Ｎ６各々における信号状態を例示している。これらの信号状態は、時間ポイントｔ１０（クロック番号は＃１）におけるノードＮ１〜Ｎ６の遷移情報となる。この遷移情報は図１の遷移情報記録部２６で記録される（図８のＳＴ１６）。
【００２３】
図７のｔ２０において、クロック信号ＣＬＫ（ノードＮ２）が↓に変化（クロック番号は＃１）しても、回路状態の変化はない（ＦＦ−ＡとＵ１からなるタイミングネットワークを通過したＳＩＧ＿Ａの信号遷移は未だＦＦ−Ｂに到達していない）。図５はこのときの回路ノードＮ１〜Ｎ６各々における信号状態を例示している。これらの信号状態は、時間ポイントｔ２０（クロック番号は＃１）におけるノードＮ１〜Ｎ６の遷移情報となる。この遷移情報は図１の遷移情報記録部２６で記録される（図８のＳＴ１６）。
【００２４】
図７のｔ３０において、ＦＦ−ＡのＤ入力（ノードＮ３）が１の状態でクロック信号ＣＬＫ（ノードＮ２）が↑に変化（クロック番号は＃２に増加）すると、ＦＦ−ＡのＱ出力（ノードＮ４）は↑を維持し、このＱ出力を受けたＯＲゲートＵ１の出力(ノードＮ５)は↑を維持する。この場合、ＦＦ−ＢはＤ入力(ノードＮ５)が１の状態でＣＬＫの↑でクロックされるため、そのＱ出力（ノードＮ６）は↑に変化する（つまり、ＦＦ−ＡとＵ１からなるタイミングネットワークを通過したＳＩＧ＿Ａの信号遷移がＦＦ−Ｂに到達した）。図６はこのときの回路ノードＮ１〜Ｎ６各々における信号状態を例示している。これらの信号状態は、時間ポイントｔ３０（クロック番号は＃２）におけるノードＮ１〜Ｎ６の遷移情報となる。この遷移情報は図１の遷移情報記録部２６で記録される（図８のＳＴ１６）。
【００２５】
図７のｔ３０ではタイミングネットワークを通過したＳＩＧ＿Ａの信号遷移がＦＦ−Ｂに到達したため、この到達が、ＦＦ−Ｂ（特定論理デバイス）が持っている制約情報（例えば２クロックサイクル以内に到達すべきという制約）に違反するか否かがチェックされる（図８のＳＴ１８）。
【００２６】
上記の例ではＳＩＧ＿Ａの信号遷移がＦＦ−Ｂへ制約情報に違反することなく２クロック以内に（クロック番号＃２で）到達したため、違反はない（図８のＳＴ２０ノー）。その後、ＦＦ−ＢのＱ出力につながる別回路（図示せず）のシミュレーションを続ける場合は（図８のＳＴ２２ノー）、ＳＴ１４に戻る。それ以上検証する回路がないなら、シミュレーションを終了する（図８のＳＴ２２イエス）。
【００２７】
上記の例はシミュレートされた回路（図３）が所定の制約情報に違反しなかった場合であり、制約情報は妥当であったと判断される。しかしながら、もし、制約情報が「１クロックサイクル以内に特定論理デバイスＦＦ−Ｂに到達すべきである」という内容であったり、「３クロックサイクル以後に特定論理デバイスＦＦ−Ｂに到達すべきである」という内容であったなら、シミュレートされた回路（図３）は特定論理デバイスＦＦ−Ｂが持っている所定の制約情報に違反したことになる（図８のＳＴ２０イエス）。
【００２８】
その場合は、特定論理デバイスＦＦ−ＢのＱ出力（ノードＮ６）を不定（Ｘ）にセットし、および／またはＦＦ−ＢのＱ出力（ノードＮ６）を０レベルのままとしてエラーメッセージ（例えばセットアップエラーがあった旨のメッセージ）を図示しない表示装置に表示し、必要に応じてそのメッセージ等を図示しないプリンタからプリントアウトする（図８のＳＴ２４）。
【００２９】
上記の表示および／またはプリントアウトから、図７のｔ０〜ｔ３０の各時点で図１の記録部２６に記録された遷移情報（ノードＮ１〜Ｎ６各々の論理値あるいは論理値変化とクロック番号）を逐一参照することにより、なぜシミュレーション結果が事前に定めた制約情報に違反したのかの検討が可能になる。その検討結果から、事前に定めた制約情報に違反しない回路設計をやり直すか、制約情報の見直しを行うことができる。
【００３０】
＜実施の形態のまとめ＞
ハードウエアの論理シミュレータは、通常０や１の論理を定められたルールに従って伝播させ、ハードウエアの論理回路の妥当性を確認するが、その際に、単に０や１という値のみならず、「どのタイミングネットワークを通過してきたか」という信号遷移情報を図２〜図６のように伝播させる。各ノードはそのノードに至る信号遷移情報を常に保持している。
【００３１】
各タイミングアークの終点（通常はＦＦ）に信号が到達した際には、そのタイミングアークの終点が持つタイミング制約と、実際の信号遷移情報の間に食い違いがおきていないかをチェックする。
【００３２】
食い違いが起きた場合、その時刻および信号遷移情報と、食い違った制約について出力する。信号遷移情報には、クロックのサイクル情報（クロック番号情報）も付加されている。また、信号遷移情報には、他入力論理セルにおける実際の遷移を引き起こさなかった側の入力（たとえば図２の論理回路においてタイミングネットワークＴＮＷ２の出力ノードＮ８からＵ１への入力）に保持されている信号遷移情報も加えることができる。
【００３３】
その際に、シミュレーション開始から終了までの全インスタンスにおける入力と出力を信号遷移情報に加えてもよいし、タイミング制約として使用されているポイントにおける入力と出力のみを信号遷移情報に加えてもよい（制約情報として予め記載した内容とクロック番号のみを信号遷移情報に加えてもよい）。
【００３４】
＜実施の形態の他例＞
別の実施の形態としては、ゼロサイクルパス（遅延時間が１クロックサイクル以下）の信号変化を検出したらその旨の警告（Warning）を出力することができる。
【００３５】
さらに別の実施の形態としては、マルチサイクルパス（遅延時間が２クロックサイクル以上）が指定されているパスの信号変化が指定されたマルチサイクルの値未満で終点のＦＦに到達している場合において、セットアップエラーやホールドエラーの有無にかかわらず、終点ＦＦの出力を不定（Ｘ）とすることができる。そうすることによって、そのような変化（マルチサイクルの値未満で終点のＦＦに到達した信号変化）が実際に生じた場合のＦＦの出力が、そのＦＦにつながる後段の論理回路に影響を与えていないかどうかを確認することが可能となる。
【００３６】
＜実施の形態による効果＞
静的タイミング解析に使用されるタイミング制約の妥当性（所定の制約情報の内容がシミュレーション対象の論理回路では妥当であったか否かということ）を論理シミュレータを使用して動的に確認することが可能となる。
【００３７】
誤ったタイミング制約を与えてしまった場合は、その原因を動的に検証することが可能となる。例えば、所定の制約情報に違反するというチェック結果がでた場合（図８のＳＴ２０イエス）、そのチェック結果がでるまでの特定ポイント（図７のｔ０〜ｔ３０あるいはＣＬＫの各立ち上がりポイント等）において、各ノード（図７のＮ１〜Ｎ６）における前記遷移情報が図１の遷移情報記録部２６に記録されている。この記録された遷移情報を特定ポイント毎に検討することにより、前記所定の制約情報に違反したことの原因を追究できる。
【００３８】
＜実施の形態と発明との対応例＞
（１）  クロック信号（ＣＬＫ）が与えられるクロック入力ノード（Ｎ２）を含めた複数の入力ノード（Ｎ１〜Ｎ３）と複数の内部ノード（Ｎ４〜Ｎ６）を持ち（図３）、前記クロック入力ノード（Ｎ２）以外の前記入力ノード（Ｎ３）に与えられる入力信号（ＳＩＧ＿Ａ）の論理値変化を時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）に対応して伝えるタイミングネットワーク（ＦＦ−Ａ、Ｕ１）と、前記内部ノード（Ｎ４〜Ｎ６）の１つ（Ｎ５）である前記タイミングネットワークの出口ノード（Ｎ５）に現れるタイミングネットワーク出力信号（ＴＩ５）および前記クロック信号（ＣＬＫ）に対応する論理値変化または変化後の論理値（ＴＩ２）が与えられる特定論理デバイス（ＦＦ−Ｂ）とを含む論理回路（図２〜図６）の動作を調べる論理シミュレータであって、
（ａ）前記タイミングネットワーク（ＦＦ−Ａ、Ｕ１）内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以下であるとする制約（例えばset_multicycle_path-setup2-from A to B-のような形式で記述される制約:その内容は、ＡからＢまでの遷移が２サイクル以内なら良しとする、あるいはその遷移に３サイクル以上掛かってはいけないという制約；換言すれば、ｎ番目の信号遷移がｎ＋３番目以降のクロックで到達するのは不可であるが、ｎ番目の信号遷移がｎ＋２番目以前のクロックで到達するなら良しとする制約；この制約に違反するとセットアップエラーとなる）、または
（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以上であるとする制約（例えばset_multicycle_path-hold2-from B to C-のような形式で記述される制約:その内容は、ＢからＣまでの遷移が１サイクル以上なら良しとする、あるいはその遷移が１サイクル未満でＣへ到達してはならないという制約；換言すれば、ｎ番目の信号遷移がｎ番目のクロックで到達してはならないが、ｎ番目の信号遷移がｎ＋１番目以降のクロックで到達するなら良しとする制約；この制約に違反するとホールドエラーとなる）
を所定の制約情報で表すときに、
前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が、前記所定の制約情報に違反するかどうかをチェックする（図８のＳＴ２０）ように構成した論理シミュレータ。
【００３９】
（２）  前記時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）の特定ポイント（図７のｔ０〜ｔ３０）において、前記入力ノード（Ｎ１〜Ｎ３）および前記内部ノード（Ｎ４〜Ｎ６）における論理値（０／１の値）および／またはその論理値変化（↓↑）を遷移情報として保持する（１）に記載の論理シミュレータ。
【００４０】
（３）  前記特定論理デバイス（ＦＦ−Ｂ）は前記内部ノード（Ｎ４〜Ｎ６）の他の１つ（Ｎ６）として出力ノード（Ｎ６）を持ち、前記所定の制約情報に違反するというチェック結果がでた場合（図８のＳＴ２０イエス）は、前記特定論理デバイス（ＦＦ−Ｂ）の出力ノード（Ｎ６）の論理値を不定（Ｘ）とし、および／またはエラーメッセージを出力（図８のＳＴ２４）する(１)または(２)に記載の論理シミュレータ。
【００４１】
（４）  クロック信号（ＣＬＫ）が与えられるクロック入力ノード（Ｎ２）を含めた複数の入力ノード（Ｎ１〜Ｎ３）と複数の内部ノード（Ｎ４〜Ｎ６）を持ち（図３）、前記クロック入力ノード（Ｎ２）以外の前記入力ノード（Ｎ３）に与えられる入力信号（ＳＩＧ＿Ａ）の論理値変化を時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）に対応して伝えるタイミングネットワーク（ＦＦ−Ａ、Ｕ１）と、前記内部ノード（Ｎ４〜Ｎ６）の１つ（Ｎ５）である前記タイミングネットワークの出口ノード（Ｎ５）に現れるタイミングネットワーク出力信号（ＴＩ５）および前記クロック信号（ＣＬＫ）に対応する論理値変化または変化後の論理値（ＴＩ２）が与えられる特定論理デバイス（ＦＦ−Ｂ）とを含む論理回路（図２〜図６）の動作をシミュレートする方法であって、
（ａ）前記タイミングネットワーク（ＦＦ−Ａ、Ｕ１）内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以下であるとする制約、または（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以上であるとする制約を所定の制約情報で表すときに、
前記論理回路（図２〜図６）の回路構成を示す回路情報と、その回路内の前記特定論理デバイス（ＦＦ−Ｂ）における前記所定の制約情報を入力し（図８のＳＴ１０）、
前記入力ノード（Ｎ１〜Ｎ３）に所定の論理値変化（↓↑）または所定の論理値（０／１の値）を与えて前記論理回路のシミュレーションを実行し（図８のＳＴ１２〜ＳＴ１６）、
前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が、前記所定の制約情報に違反するかどうかをチェックする（図８のＳＴ２０）ように構成した論理シミュレーション方法。
【００４２】
（５）  前記シミュレーションを実行する工程（図８のＳＴ１２〜ＳＴ１６）が、前記時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）の特定ポイント（図７のｔ０〜ｔ３０）において、前記入力ノード（Ｎ１〜Ｎ３）および前記内部ノード（Ｎ４〜Ｎ６）における論理値（０／１の値）および／またはその論理値変化（↓↑）を遷移情報として保持する工程（図８のＳＴ１６）を含む（４）に記載の論理シミュレーション方法。
【００４３】
（６）  前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が前記所定の制約情報に違反するかどうかをチェック（図８のＳＴ２０）した結果、違反するという結果が出た場合は（ＳＴ２０イエス）、前記特定論理デバイス（ＦＦ−Ｂ）の出力ノード（Ｎ６）の論理値を不定（Ｘ）とし、および／またはエラーメッセージを出力（図８のＳＴ２４）する（４）または（５）に記載の論理シミュレーション方法。
【００４４】
（７）  クロック信号（ＣＬＫ）が与えられるクロック入力ノード（Ｎ２）を含めた複数の入力ノード（Ｎ１〜Ｎ３）と複数の内部ノード（Ｎ４〜Ｎ６）を持ち（図３）、前記クロック入力ノード（Ｎ２）以外の前記入力ノード（Ｎ３）に与えられる入力信号（ＳＩＧ＿Ａ）の論理値変化を時間経過または前記クロック信号（ＣＬＫ）の論理値変化のサイクル数（クロック番号増加）に対応して伝えるタイミングネットワーク（ＦＦ−Ａ、Ｕ１）と、前記内部ノード（Ｎ４〜Ｎ６）の１つ（Ｎ５）である前記タイミングネットワークの出口ノード（Ｎ５）に現れるタイミングネットワーク出力信号（ＴＩ５）および前記クロック信号（ＣＬＫ）に対応する論理値変化または変化後の論理値（ＴＩ２）が与えられる特定論理デバイス（ＦＦ−Ｂ）とを含む論理回路（図２〜図６）の動作をシミュレートする装置（図１）であって、
（ａ）前記タイミングネットワーク（ＦＦ−Ａ、Ｕ１）内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以下であるとする制約、または（ｂ）前記タイミングネットワーク内の信号経路を信号レベル変化の遷移が通過するのに要する時間または所要クロックサイクル数が所定の数値以上であるとする制約を所定の制約情報で表すときに、
前記論理回路（図２〜図６）の回路構成を示す回路情報を入力する回路情報入力部（１０）と、
前記論理回路内の前記特定論理デバイス（ＦＦ−Ｂ）における前記所定の制約情報を入力する制約情報入力部（１２）と、
前記入力ノード（Ｎ１〜Ｎ３）に所定の論理値変化（↓↑）または所定の論理値（０／１の値）を与える入力ノード論理情報設定部（１４）と、
前記回路情報入力部（１０）から入力された前記回路情報、前記制約情報入力部（１２）から入力された前記所定の制約情報、および前記入力ノード論理情報設定部（１４）で与えられた前記所定の論理値変化（↓↑）または所定の論理値（０／１の値）を記憶する入力情報記憶部（１６）と、
前記クロック信号（ＣＬＫ）に対応するクロックを発生するクロック発生部（２４）と、
前記クロック発生部（２４）で発生されたクロックをカウントするカウンタ（２２）と、
前記入力情報記憶部(１６)に記憶された情報に基づいて、前記クロック発生部（２４）で発生されたクロック（ＣＬＫ）に同期して前記論理回路の回路動作のシミュレーションを実行するシミュレーション実行部（２０）とを備え、
前記シミュレーション実行部（２０）において、前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が前記所定の制約情報に違反するかどうかをチェックする（図８のＳＴ２０）ように構成した論理シミュレータ。
【００４５】
（８）  前記カウンタ（２２）による前記クロックのカウント値をクロック番号で表すときに、特定のクロック番号またはそのクロック番号に対応した時間（図７のｔ０〜ｔ３０）において前記入力ノード（Ｎ１〜Ｎ３）および前記内部ノード（Ｎ４〜Ｎ６）のうちの少なくとも一部（Ｎ２、Ｎ５等）における論理値変化（↓↑）または変化後の論理値（０／１の値）を遷移情報として記録する遷移情報記録部（２６）をさらに備えた（７）に記載の論理シミュレータ。
【００４６】
（９）  前記特定論理デバイス（ＦＦ−Ｂ）に与えられる前記タイミングネットワーク出力信号（ＴＩ５）が前記所定の制約情報に違反するかどうかをチェック（図８のＳＴ２０）した結果、違反するという結果が出た場合は（ＳＴ２０イエス）、前記特定論理デバイス（ＦＦ−Ｂ）の出力ノード（Ｎ６）の論理値を不定（Ｘ）とし、および／またはエラーメッセージを出力する処理部（２８）をさらに備えた（７）または（８）に記載の論理シミュレータ。
【００４７】
なお、この発明は前述した実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００４８】
【図１】この発明の一実施の形態に係る論理シミュレータの構成を説明するブロック図。
【図２】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例を説明する図。
【図３】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ０〜ｔ５における各ノードの論理値状態を例示する図。
【図４】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ１０における各ノードの論理値状態を例示する図。
【図５】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ２０における各ノードの論理値状態を例示する図。
【図６】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ３０における各ノードの論理値状態を例示する図。
【図７】この発明の一実施の形態に係る論理シミュレータで調べられる論理回路例において、時刻ｔ０〜ｔ３０における各ノードの論理値変化を説明するタイミングチャート図。
【図８】この発明の一実施の形態に係る論理シミュレータの動作例を説明するフローチャート図。
【符号の説明】
【００４９】
１０…回路情報入力部、１２…制約情報入力部、１４…入力ノード論理情報設定部、１６…入力情報記憶部、２０…シミュレーション実行部、２２…クロックカウンタ（タイマ）、２４…クロック発生部、２６…クロック番号（クロックカウント）に対応した遷移情報記録部、２８…制約情報違反があった場合に（ＦＦ−Ｂの出力に）不定値を設定しおよび／またはエラーメッセージを出力する処理部、ＴＮＷ１、ＴＮＷ２…タイミングネットワーク、ＦＦ−Ａ…Ｄタイプフリップフロップ、ＦＦ−Ｂ…Ｄタイプフリップフロップ（特定論理デバイス）。
【図１】
0004316644.tif 000002
【図２】
0004316644.tif 000003
【図３】
0004316644.tif 000004
【図４】
0004316644.tif 000005
【図５】
0004316644.tif 000006
【図６】
0004316644.tif 000007
【図７】
0004316644.tif 000008
【図８】
0004316644.tif 000009