(57)【要約】  機能仕様に基づいて設計されたディジタル回路におけるマルチサイクルパスに関する情報を得るため，組合せ論理回路に遅延が生じないとした場合のシミュレーションを行い，パスに関連したクロックサイクル数に対応する情報等を出力する。
2008050505.tif 000002
【特許請求の範囲】
【請求項１】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング、  上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの入力信号が変化する第２のタイミング、および、  上記第２のフリップフロップの入力信号が変化する第１のタイミングと上記入力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング  のいずれか１対のタイミングを抽出する抽出部と、  上記抽出部の抽出結果に基づいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報を出力する出力部を備えていることを特徴とするシミュレーション装置。
【請求項２】
請求項１のシミュレーション装置であって、  上記出力部は、上記抽出部によって抽出されたタイミングが示された信号の波形図をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項３】
請求項１のシミュレーション装置であって、  上記出力部は、  上記シミュレーションにおいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数が、あらかじめ指定されたマルチサイクルパスのサイクル数よりも少なくなる場合があるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項４】
請求項１のシミュレーション装置であって、  上記シミュレーションにおいて、  上記抽出部は、複数対の第１および第２のタイミングを抽出し、  上記出力部は、上記抽出部が抽出した複数対のタイミングのうちでタイミングの差が最小である対における第１のタイミングから第２のタイミングまでのクロックサイクル数を出力することを特徴とするシミュレーション装置。
【請求項５】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  第１のフリップフロップの出力信号が変化するタイミングから、あらかじめ指定されたマルチサイクルパスの指定クロックサイクル数より１クロックサイクル短い期間、第１のフリップフロップの出力信号、または第２のフリップフロップの入力信号を、ハイレベルでもローレベルでもない状態であることを示す特定信号にする特定信号代入部と、  上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とするシミュレーション装置。
【請求項６】
請求項５のシミュレーション装置であって、  上記出力部は、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号の波形をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項７】
請求項５のシミュレーション装置であって、  上記出力部は、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項８】
請求項５のシミュレーション装置であって、  上記出力部は、  あらかじめ指定された複数種類の指定クロックサイクル数のうち、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項９】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される複数の第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  上記第１のフリップフロップから出力され、各第２のフリップフロップに入力される信号のパス毎に、上記第１のフリップフロップの出力信号を別個の信号として扱い、  上記第１のフリップフロップの各出力信号を、上記第１のフリップフロップの出力信号が変化するタイミングから、上記パス毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、ハイレベルでもローレベルでもない特定信号にする特定信号代入部と、  上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とするシミュレーション装置。
【請求項１０】
請求項９のシミュレーション装置であって、  シミュレーション対象の回路における、第１のフリップフロップのデータ出力端子から分岐して各第２のフリップフロップのデータ入力端子に接続される信号配線を示す回路情報を、互いに独立した信号配線を示す回路情報に変換する回路情報変換部を備え、  上記特定信号代入部は、  上記変換された回路情報の回路のシミュレーションにおいて、  第１のフリップフロップの出力信号が変化するタイミングから、上記独立した信号配線毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、上記第１のフリップフロップの各出力信号を、上記特定信号にするように構成されていることを特徴とするシミュレーション装置。
【請求項１１】
請求項９のシミュレーション装置であって、  上記出力部は、上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号の波形をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項１２】
請求項９のシミュレーション装置であって、  上記出力部は、上記第１のフリップフロップの各出力信号について、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項１３】
請求項９のシミュレーション装置であって、  上記出力部は、  上記第１のフリップフロップの各出力信号について、上記パス毎にあらかじめ指定された複数種類の指定クロックサイクル数のうち、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、回路の機能仕様（動作仕様、設計仕様）に基づいて設計されたディジタル回路における、マルチサイクルパスに関する情報を得るためのシミュレーション装置に関するものである。
【背景技術】
【０００２】  一般に、ディジタル回路は、機能仕様に基づいて設計され、レジスタトランスファレベル（ＲＴＬ，Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）のＲＴＬ記述等が作成される。また、機能仕様に基づいて、タイミング制約を考慮した論理合成制約条件が作成される。上記ＲＴＬ記述および論理合成制約条件は、論理合成ツールに入力されて、タイミング制約（タイミング仕様）を満足するゲートレベルのネットリストが生成される。【０００３】  上記論理合成制約条件には、タイミング例外として、他のフリップフロップを介さずに接続された１対のフリップフロップのうちの一方の出力端子から他方の入力端子への信号伝播経路が、信号伝播に複数クロックサイクルを要することが許容される伝播経路であることを示すマルチサイクルパス指定が含まれる。また、各マルチサイクルパスにおいて信号伝播に要する時間が何クロックサイクルまで許容されるかを示す条件（以下、「マルチサイクル数」と呼ぶ。）も含まれる。論理合成ツールでは、上記のようなマルチサイクルパスの指定（やフォルスパス指定などのタイミング例外指定）がない場合には、順序回路間の信号伝播が１サイクルになるように論理合成される。一方、マルチサイクルパスの指定があった場合、指定されているパスについては、信号伝播にかかる時間が指定されたマルチサイクル数よりも短くなるように論理合成される。【０００４】  上記マルチサイクルパスに関する論理合成制約条件の取得は、通常、機能仕様に基づいて人手で行われているため、往々にして誤った条件で論理合成が行われる。このような場合、生成される論理回路が適切に動作しなかったり、適切に動作しても、過剰なタイミング調整のために回路規模が大きくなったりする。【０００５】  そこで、ＲＴＬ記述に遅延情報を埋め込み、これを解析することによって、マルチサイクルパス候補を抽出し、別途作成されたマルチサイクルパス指定と突き合わせることによって検証する手法が提案されている（例えば、特許文献１参照。）。【０００６】  また、例えば各素子の名称、端子への信号の意味や関係に対応して対象回路の分析を行い、自動的にマルチサイクルパスを検出する技術も提案されている（例えば、特許文献２参照。）。【特許文献１】特開２００１−２７３３５１号公報
【特許文献２】特開２００４−１７１１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】  しかしながら、ＲＴＬ記述に遅延情報を埋め込んで解析する手法では、埋め込む遅延情報自体に誤りがあると適切な検証が行われないうえ、遅延情報を埋め込むための手間も要する。【０００８】  また、上記特許文献２には、具体的にどのような情報を用いてどのような処理を行うのかは明記されていないが、各素子の名称、端子への信号の意味や関係に対応して対象回路の分析を行い、自動的にマルチサイクルパスを検出する旨の記載からすると、機能仕様とＲＴＬ記述とに基づいてマルチサイクルパスが検出されると考えられる。したがって、ＲＴＬ記述自体に誤りがある場合には、不適切なマルチサイクルパス指定が得られることになる。【０００９】  本発明は、かかる点に鑑みてなされたものであり、マルチサイクルパスに関する正確な情報を容易に取得することを目的としている。
【課題を解決するための手段】
【００１０】  上記の課題を解決するため、本発明の第１の実施態様は、  第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング、  上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの入力信号が変化する第２のタイミング、および、  上記第２のフリップフロップの入力信号が変化する第１のタイミングと上記入力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング  のいずれか１対のタイミングを抽出する抽出部と、  上記抽出部の抽出結果に基づいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報を出力する出力部を備えていることを特徴とする。【００１１】  これにより、論理合成制約条件として用いるのに適したマルチサイクル数の取得、または論理合成制約条件としてあらかじめ準備されたマルチサイクル数が論理合成に用いるのに適切であるかの検証を容易に行える。【００１２】  ここで、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報とは、そのクロックサイクル数を示す情報、そのクロックサイクル数を求めるための情報、またはそのクロックサイクル数に基づく情報である。【００１３】  クロックサイクル数を求めるための情報は、この情報によってそのクロックサイクル数を求めることが可能であれば、どのような情報であってもよい。このような情報の例としては、上記第１のタイミングと上記第２のタイミングとが示された信号の波形図がある。【００１４】  また、クロックサイクル数に基づく情報とは、クロックサイクル数に基づいて得ることが可能な情報である。例えば、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数が、あらかじめ指定された指定クロックサイクル数よりも少なくなる場合があるかどうかを示す情報、または複数のクロックサイクル数のうちの最小のクロックサイクル数を示す情報である。【００１５】  また、本発明の第２の実施態様は、  第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  第１のフリップフロップの出力信号が変化するタイミングから、あらかじめ指定されたマルチサイクルパスの指定クロックサイクル数より１クロックサイクル短い期間、第１のフリップフロップの出力信号、または第２のフリップフロップの入力信号を、ハイレベルでもローレベルでもない状���であることを示す特定信号にする特定信号代入部と、  上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とする。【００１６】  また、本発明の第３の実施態様は、  第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される複数の第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、  上記シミュレーションにおいて、  上記第１のフリップフロップから出力され、各第２のフリップフロップに入力される信号のパス毎に、上記第１のフリップフロップの出力信号を別個の信号として扱い、  上記第１のフリップフロップの各出力信号を、上記第１のフリップフロップの出力信号が変化するタイミングから、上記パス毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、ハイレベルでもローレベルでもない特定信号にする特定信号代入部と、  上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とする。【００１７】  ここで、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報とは、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを判定するための情報、または上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づく情報である。【００１８】  これらにより、論理合成制約条件として用いるのに適したマルチサイクル数の取得、または論理合成制約条件としてあらかじめ準備されたマルチサイクル数が論理合成に用いるのに適切であるかの検証を容易に行える。【００１９】  上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを判定するための情報は、あらかじめ指定された箇所の信号が上記特定信号になるかどうかをこの情報によって判定できれば、どのような情報であってもよい。このような情報の例としては、あらかじめ指定された箇所の信号の波形がある。【００２０】  上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づく情報とは、あらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づいて得ることが可能な情報である。例えば、あらかじめ指定された複数種類の指定クロックサイクル数のうち、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報である。
【発明の効果】
【００２１】  本発明によると、マルチサイクルパスに関する正確な情報を容易に取得できる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の実施形態１のシミュレーション装置の構成を示すブロック図である。
【図２】図２は、本発明の実施形態１、２のシミュレーション装置によるシミュレーションの対象となる論理回路の一部を示す回路図である。
【図３】図３は、本発明の実施形態１のシミュレーション装置によって出力されるシミュレーション波形図である。
【図４】図４は、本発明の実施形態２のシミュレーション装置の構成を示すブロック図である。
【図５】図５は、本発明の実施形態２のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図６】図６は、本発明の実施形態２のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図７】図７は、本発明の実施形態３のシミュレーション装置の構成を示すブロック図である。
【図８】図８は、本発明の実施形態３のシミュレーション装置によるシミュレーションの対象となる論理回路の一部を示す回路図である。
【図９】図９は、本発明の実施形態３のシミュレーション装置に入力されるＲＴＬ記述の例を示す説明図である。
【図１０】図１０は、本発明の実施形態３のシミュレーション装置の回路情報変換部３０１によって出力されるＲＴＬ記述の例を示す説明図である。
【図１１】図１１は、本発明の実施形態３のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図１２】図１２は、本発明の実施形態３のシミュレーション装置によって出力されるシミュレーション波形の例である。
【符号の説明】
【００２３】  １０１    シミュレーション部  １０２    抽出部  １０３    出力部  ２０１    特定信号代入部  ２０２    出力部  ３０１    回路情報変換部  ３０２    特定信号代入部
【発明を実施するための最良の形態】
【００２４】  以下、本発明の実施形態について、図面を参照して説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。【００２５】  《発明の実施形態１》  本実施形態のシミュレーション装置は、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図１に示すように、シミュレーション部１０１、抽出部１０２、および出力部１０３を備えている。【００２６】  シミュレーション部１０１には、シミュレーション対象の回路の回路構成を示すＲＴＬ記述とテストベンチとが入力される。抽出部１０２には、評価対象の信号伝播経路を指定する評価対象パス指定情報が入力される。評価対象パス指定情報は、より具体的には、第１のフリップフロップのデータ出力端子と第２のフリップフロップのデータ出力端子とを指定する情報である。【００２７】  シミュレーション部１０１は、シミュレーション対象の回路のＲＴＬ記述とテストベンチとを用いて、回路動作のシミュレーションを行い、回路上の各ノードにおける各タイミングでの信号レベルを出力するようになっている。ここでのシミュレーションは、組合せ論理回路に遅延は生じない場合の回路動作のシミュレーションである。【００２８】  抽出部１０２は、シミュレーション結果のうち、第１のフリップフロップのデータ出力端子から出力される出力信号（第１のフリップフロップの出力信号）の各タイミングでの信号レベルと、第２のフリップフロップのデータ出力端子から出力される出力信号（第２のフリップフロップの出力信号）の各タイミングでの信号レベルとを参照するようになっている。そして、シミュレーションにおける第１のフリップフロップの出力信号の変化毎に、当該出力信号が変化する第１のタイミングと、当該出力信号の変化に起因して第２のフリップフロップの出力信号が変化する第２のタイミングとを抽出するようになっている。具体的には、例えば、第１のタイミングの後で最初に第２のフリップフロップの出力信号が変化するタイミングを、第２のタイミングとして抽出するようになっている。【００２９】  出力部１０３は、抽出部１０２によって抽出された第１のタイミングと第２のタイミングとが示された信号のシミュレーション波形図をディスプレイに表示するようになっている。より具体的には、シミュレーション波形図において、第１のタイミングにおける第１のフリップフロップの出力信号の波形と、第２のタイミングにおける第２のフリップフロップの出力信号の波形とが太線で示される。【００３０】  ここで、本実施形態のシミュレーション装置が、図２の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。【００３１】  まず、シミュレーション部１０１は、図２の回路を含むシミュレーション対象の回路を示すＲＴＬ記述とテストベンチとを用いて、シミュレーションを行う。この例では、抽出部１０２に、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力されるとする。そして、抽出部１０２は、シミュレーション結果のうち、フリップフロップＦＦ１の出力端子Ｑにおける信号Ｑ１の各タイミングでの信号レベルと、フリップフロップＦＦ２の出力端子Ｑにおける信号Ｑ２の各タイミングでの信号レベルとを参照し、信号Ｑ１が変化する第１のタイミングと、第１のタイミングの後で最初に信号Ｑ２が変化する第２のタイミングとを抽出する。そして、出力部１０３は、図３に示すような信号の波形をディスプレイに表示する。オペレータは、この表示された波形を視認することによって、第１のタイミングから第２のタイミングまでに何クロックサイクル経過したかを容易に知ることができる。つまり、フリップフロップＦＦ１の出力端子ＱからフリップフロップＦＦ２の出力端子Ｑまでの信号伝播経路の遅延が、何クロックサイクル以内に収まるように合成すべきかを示す値を得ることができる。【００３２】  なお、図３の波形は、信号Ｑ１が１回しか変化しない場合の例であるが、信号Ｑ１が複数回変化した場合、出力部は、複数対の第１および第２のタイミングとを示す波形をディスプレイに表示する。【００３３】  本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００３４】  《発明の実施形態１の変形例１》  次に、実施形態１の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切かどうかを示す情報を出力するシミュレーション装置について説明する。【００３５】  本変形例のシミュレーション装置は、上記実施形態１の出力部１０３に代えて、あらかじめ指定された指定クロックサイクル数が入力され、第１のタイミングから第２のタイミングまでのクロックサイクル数が、この指定クロックサイクル数よりも少なくなる場合があるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００３６】  例えば、評価対象の信号伝播経路が、図２の回路を含む回路における、フリップフロップＦＦ１の出力端子ＱからフリップフロップＦＦ２の出力端子Ｑまでの信号伝播経路であり、シミュレーション部１０１によって得られた各タイミングにおける各端子の信号のレベルが図３のようであるとする。この場合、本変形例の出力部は、抽出部１０２によって抽出された第１と第２のタイミングに基づいて、第１のタイミングから第２のタイミングまでのクロックサイクル数が３であるという情報を取得し、指定クロックサイクル数が３以上であるかどうかを示す情報を出力する。【００３７】  なお、図３では信号Ｑ１が１回しか変化せず、抽出される第１および第２のタイミングは１対であ���が、複数対の場合、出力部は、複数対の第１および第２のタイミングのうちで、第１のタイミングから第２のタイミングまでのクロックサイクル数が、指定クロックサイクル数よりも少なくなるものがあるかどうかを示す情報を出力する。【００３８】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを示す確実な情報を得ることができる。第１のタイミングから第２のタイミングまでのクロックサイクル数が、指定クロックサイクル数よりも小さくなる場合があることを示す情報が出力されれば、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断し、小さくなる場合がないことを示す情報が出力されれば、適切であると判断できる。なお、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００３９】  《発明の実施形態１の変形例２》  次に、実施形態１の変形例２として、上記実施形態１の出力部１０３に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を出力する出力部を備えたシミュレーション装置について説明する。【００４０】  本変形例の出力部は、抽出部が複数対の第１と第２のタイミングを抽出した場合、それらのうちでタイミングの差が最小である対における第１のタイミングから第２のタイミングまでのクロックサイクル数を示す情報を出力するようになっている。また、抽出部によって抽出された第１および第２のタイミングが１対の場合には、その１対のタイミングの差に対応するクロックサイクル数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００４１】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００４２】  《発明の実施形態１のその他の変形例》  実施形態１とその変形例１、２においては、第１のフリップフロップの出力信号の変化するタイミングと第２のフリップフロップの出力信号の変化するタイミングとが、第１と第２のタイミングとして抽出されるようになっていた。しかし、第１のフリップフロップの出力信号の変化するタイミングと第２のフリップフロップの入力信号の変化するタイミングとが、第１と第２のタイミングとして抽出されるようにしてもよい。また、第２のフリップフロップの入力信号の変化するタイミングと第２のフリップフロップの出力信号��変化するタイミングとが、第１と第２のタイミングとして抽出されるようにしてもよい。【００４３】  《発明の実施形態２》  本実施形態のシミュレーション装置も、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図４に示すように、シミュレーション部１０１、特定信号代入部２０１、および出力部２０２を備えている。【００４４】  特定信号代入部２０１には、評価対象の信号伝播経路を指定する評価対象パス指定情報、およびあらかじめ指定された指定クロックサイクル数が入力される。評価対象パス指定情報は、より具体的には、第１のフリップフロップのデータ出力端子と第２のフリップフロップのデータ出力端子とを指定する情報である。【００４５】  特定信号代入部２０１は、シミュレーション部１０１でのシミュレーションにおいて、第１のフリップフロップのデータ出力端子から出力される出力信号（第１のフリップフロップの出力信号）が変化する毎に、変化したタイミングから指定クロックサイクル数よりも１少ないクロックサイクルの期間、第２のフリップフロップの入力信号を不定信号（ハイレベルでもローレベルでもない状態であることを示す特定信号）にするようになっている。【００４６】  出力部２０２は、各信号のシミュレーション波形をディスプレイに表示するようになっている。【００４７】  ここで、本実施形態のシミュレーション装置が、図２の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。この例では、特定信号代入部２０１には、指定クロックサイクル数として３が入力され、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力されているとする。【００４８】  まず、シミュレーション部１０１は、図２の回路を含むシミュレーション対象の回路を示すＲＴＬ記述とテストベンチとを用いて、シミュレーションを行う。この間、特定信号代入部２０１は、シミュレーションにおいて、フリップフロップＦＦ１の出力信号Ｑ１が変化する毎に、変化したタイミングから、指定クロックサイクル数の３より１少ない２クロックサイクルの期間、フリップフロップＦＦ２の入力信号Ｄ２を不定信号にする。そして、出力部２０２は、例えば、図５に示すようなシミュレーション波形をディスプレイに表示する。【００４９】  なお、図５の波形は、信号Ｑ１が１回しか変化しない場合の例であるが、信号Ｑ１が複数回変化した場合、出力部は、信号Ｑ１が複数回不定信号になっているシミュレーション波形をディスプレイに表示する。【００５０】  オペレータは、この表示された波形を視認し、フリップフロップＦＦ２の出力信号Ｑ２が不定信号になるかどうかを確認することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを容易に判断できる。出力信号Ｑ２が一度も不定信号にならなければ、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに適切��あると判断され、出力信号Ｑ２が一度でも不定信号になれば不適切であると判断される。例えば、図５のシミュレーション波形では、出力信号Ｑ２が不定信号になっていないので、指定クロックサイクル数の３は、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。【００５１】  一方、特定信号代入部２０１に、指定クロックサイクル数として４が入力され、出力部２０２が図６に示すようなシミュレーション波形をディスプレイに表示した場合、出力信号Ｑ２が不定信号になっているので、指定クロックサイクル数の４は、論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断される。【００５２】  本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００５３】  《発明の実施形態２の変形例１》  次に、実施形態２の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを示す情報を出力するシミュレーション装置について説明する。【００５４】  本変形例のシミュレーション装置は、上記実施形態２の出力部２０２に代えて、シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になるかどうかを判定し、シミュレーション波形ではなく、第２のフリップフロップの出力信号が不定信号になるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００５５】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件マルチサイクル数として用いるのに適切であるかどうかを示す確実な情報を得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００５６】  《発明の実施形態２の変形例２》  次に、実施形態２の変形例２として、上記実施形態２の出力部２０２に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を示す情報を出力する出力部を備えたシミュレーション装置について説明する。【００５７】  本変形例のシミュレーション装置では、特定信号代入部２０１に複数種類の指定クロックサイクル数が入力され、シミュレーション部１０１が、指定クロックサイクル数毎に、その指定クロックサイクル数よりも１少ないクロックサイクルの期間だけの不��信号が第２のフリップフロップの入力信号に代入されたシミュレーションを行うようになっている。【００５８】  本変形例の出力部は、各シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になる場合があるかどうかを判定するようになっている。そして、第２のフリップフロップの出力信号が不定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００５９】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００６０】  《発明の実施形態２のその他の変形例》  実施形態２とその変形例１、２においては、特定信号代入部２０１によって、第２のフリップフロップの入力信号が不定信号にされるようになっていたが、第１のフリップフロップの出力信号が不定信号にされるようにしてもよい。【００６１】  《発明の実施形態３》  本実施形態のシミュレーション装置も、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図７に示すように、回路情報変換部３０１、シミュレーション部１０１、特定信号代入部３０２、および出力部２０２を備えている。【００６２】  回路情報変換部３０１は、入力されるＲＴＬ記述に、第１のフリップフロップのデータ出力端子から分岐して複数の第２のフリップフロップのデータ入力端子に接続される信号配線が示されている場合、この信号配線が、第１のフリップフロップのデータ出力端子から各第２のフリップフロップのデータ入力端子に接続される互いに独立した独立信号配線として示されるように、ＲＴＬ記述を変換するようになっている。【００６３】  本実施形態のシミュレーション部１０１は、変換されたＲＴＬ記述で示される回路について、独立信号配線毎にシミュレーションを行うようになっている。【００６４】  特定信号代入部３０２は、各独立信号配線に対応するシミュレーションにおいて、第１のフリップフロップの出力信号が変化する毎に、その変化のタイミングから、その独立信号配線にあらかじめ指定されたマルチサイクルパスのサイクル数に対応する期間、第１のフリップフロップからその独立信号配線に出力される出力信号を不定信号にするようになっている。【００６５】  ここで、本実施形態のシミュレーション装置が、図８の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。この例では、特定信号代入部３０２には、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力され、当該信号伝播経路の指定クロックサイクル数として３が入力されているとする。【００６６】  まず、回路情報変換部３０１には、図８の回路を含むシミュレーション対象の回路の回路構成を示すＲＴＬ記述が入力される。入力されるＲＴＬ記述には、図８の回路構成を示す図９のＲＴＬ記述が含まれている。したがって、回路情報変換部３０１は、図９のＲＴＬ記述を、フリップフロップＦＦ１からフリップフロップＦＦ２およびフリップフロップＦＦ３に分岐するパスが、互いに独立した信号配線として示された図１０のＲＴＬ記述に変換する。シミュレーション対象の回路のうちの図８の回路以外の部分のＲＴＬ記述についても同様の処理を行い、変換後のＲＴＬ記述を出力する。そして、シミュレーション部１０１は、テストベンチと変換後のＲＴＬ記述とを用いて、シミュレーションを行う。この間、特定信号代入部３０２は、シミュレーションにおいて、指定クロックサイクル数の３より１少ない２クロックサイクルの期間、図１０のＲＴＬ記述においてＱ１Ａで示されている信号を不定信号にする。そして、出力部２０２は、例えば、図１１に示すようなシミュレーション波形をディスプレイに表示する。【００６７】  なお、図１１の波形は、フリップフロップＦＦ１の出力信号が１回しか変化しない場合の例であるが、複数回変化した場合、出力部は、信号Ｑ１Ａが複数回不定信号にされているシミュレーション波形をディスプレイに表示する。【００６８】  オペレータは、この表示された波形を視認し、フリップフロップＦＦ２の出力信号Ｑ２が不定信号になるかどうかを確認することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを容易に判断できる。出力信号Ｑ２が不定信号にならなければ、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに適切であると判断され、出力信号Ｑ２が不定信号になれば不適切であると判断される。例えば、図１１のシミュレーション波形では、出力信号Ｑ２が不定信号になっていないので、指定クロックサイクル数の３は、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。【００６９】  一方、特定信号代入部３０２に、指定クロックサイクル数として４が入力され、出力部２０２が図１２に示すようなシミュレーション波形をディスプレイに表示した場合、出力信号Ｑ２が不定信号になっているので、指定クロックサイクル数の４は、論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断される。【００７０】  本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい��【００７１】  《発明の実施形態３の変形例１》  次に、実施形態３の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを示す情報を出力するシミュレーション装置について説明する。【００７２】  本変形例のシミュレーション装置は、上記実施形態３の出力部２０２に代えて、シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になるかどうかを判定し、シミュレーション波形ではなく、第２のフリップフロップの出力信号が不定信号になるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００７３】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００７４】  《発明の実施形態３の変形例２》  次に、実施形態３の変形例２として、上記実施形態３の出力部２０２に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を出力する出力部を備えたシミュレーション装置について説明する。【００７５】  本変形例のシミュレーション装置では、特定信号代入部３０２に、各独立信号配線を評価するために複数種類の指定クロックサイクル数が入力される。【００７６】  シミュレーション部１０１は、指定クロックサイクル数毎に、シミュレーションを行うようになっている。各シミュレーションでは、その指定クロックサイクル数よりも１少ないクロックサイクルの期間だけの不定信号が、第１のフリップフロップから評価対象の独立信号配線に出力される出力信号に代入される。【００７７】  本変形例の出力部は、各シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になる場合があるかどうかを判定するようになっている。そして、第２のフリップフロップの出力信号が不定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。【００７８】  このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。【００７９】  《その他の実施形態》  実施形態２、３では、図５、図６、図１１、および図１２に示すように、出力信号Ｑ２のシミュレーション波形がディスプレイに表示されるようになっている。しかし、フリップフロップＦＦ２の出力端子より出力側のノードにおける信号のシミュレーション波形が表示されるようにしてもよい。つまり、フリップフロップＦＦ２の出力端子以降のノードにおける信号のシミュレーション波形が表示されるようにすればよい。例えば、シミュレーション対象の回路の外部端子から出力される信号のシミュレーション波形が表示されるようにしてもよい。【００８０】  実施形態２、３の変形例１、２の出力部は、第２のフリップフロップの出力信号が不定信号になるかどうかを判定するようになっている。しかし、第２のフリップフロップの出力端子より出力側のノードにおける信号が不定信号になるかどうかを判定するようにしてもよい。つまり、第２のフリップフロップの出力端子以降のノードにおける信号が不定信号になるかどうかを判定すればよい。例えば、シミュレーション対象の回路の外部端子から出力される信号が不定信号になるかどうかを判定し、判定結果に応じた情報を出力するようにしてもよい。【００８１】  また、実施形態２、およびその変形例１、２のシミュレーション装置の特定信号代入部２０１が、第２のフリップフロップの入力信号ではなく、第１のフリップフロップの出力信号を不定信号にする場合にも、第２のフリップフロップの出力端子より出力側のノードにおける信号のシミュレーション波形や、当該ノードにおける信号が不定信号になるか否かの判定結果に応じた情報が、出力部によって出力されるようにしてもよい。ただし、この場合、評価対象の信号伝播経路が複数のフリップフロップに分岐しているときに、以下のような問題が生じる。例えば、図８の回路を含む回路がシミュレーション対象であり、評価対象の信号伝播経路が図８におけるフリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ２の入力端子Ｄまでの経路であるとき、特定信号代入部２０１によってフリップフロップＦＦ１の出力信号が不定信号にされると、フリップフロップＦＦ３にも不定信号が伝播する。したがって、フリップフロップＦＦ２の出力端子Ｑにおける信号Ｑ２が不定信号にならない場合でも、フリップフロップＦＦ３の出力端子Ｑにおける信号Ｑ３が不定信号になり、この信号Ｑ３の影響によって、上記ノードにおける信号が不定信号となってしまう可能性がある。この結果、論理合成制約条件のマルチサイクル数として用いるのに適切な指定クロックサイクル数が、上記ノードにおける信号のシミュレーション波形を視認したオペレータによって不適切であると判断されたり、出力部によって、適切な指定クロックサイクル数を不適切であると示す情報が出力されたり、または、最適ではないクロックサイクル数を示す情報が、最適なクロックサイクル数を示すものとして出力されたりする。【００８２】  これに対し、実施形態３、およびその変形例１、２のシミュレーション装置は、評価対象の信号伝播経路が、フリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ２の入力端子Ｄまでの経路である場合、シミュレ��ションにおいて、この経路を、フリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ３の入力端子Ｄまでの経路とは独立した独立信号配線として扱う。したがって、特定信号代入部２０１によってフリップフロップＦＦ１の出力信号が不定信号にされても、フリップフロップＦＦ３に不定信号は伝播せず、上記のような問題は生じない。【００８３】  つまり、実施形態３のシミュレーション装置によると、評価対象の信号伝播経路が複数のフリップフロップに分岐している場合に、第２のフリップフロップの出力端子より出力側のノードにおける信号のシミュレーション波形が表示されるようにしても、オペレータは、このシミュレーション波形を視認することによって、指定クロックサイクル数が適切であるかどうかを精度良く判断できる。同様に、実施形態３の変形例１、２のシミュレーション装置は、評価対象の信号伝播経路が複数のフリップフロップに分岐している場合でも、第２のフリップフロップの出力端子より出力側のノードにおける信号が不定信号になるか否かの判定結果に応じて、精度良く、あらかじめ指定された指定クロックサイクル数が適切かどうかを示す情報や、最適なクロックサイクル数を示す情報を出力できる。【００８４】  実施形態２、３等で用いられる不定信号は、ＡＮＤ回路の一方の入力端子がローレベルになっている時に他方の入力端子に入力されても、ＡＮＤ回路の出力端子以降には伝播しない。また、不定信号は、ＯＲ回路の一方の入力端子がハイレベルになっている時に他方の入力端子に入力されても、ＯＲ回路の出力端子以降には伝播しない。したがって、不定信号が、信号が不定信号になるかどうかの判定が行われるノードに到達するまでに、このようなＡＮＤ回路やＯＲ回路によってマスクされる場合には、そのノードにおける信号は不定信号とはならず、そのときの不定信号の長さに対応する指定クロックサイクル数が、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。
【産業上の利用可能性】
【００８５】  以上説明したように、本発明に係るシミュレーション装置は、マルチサイクルパスに関する正確な情報を容易に取得できるという効果を有し、例えば、回路の機能仕様（動作仕様、設計仕様）に基づいて設計されたディジタル回路における、マルチサイクルパスに関する情報を得るためのシミュレーション装置等として有用である。
【図１】
2008050505.tif 000003
【図２】
2008050505.tif 000004
【図３】
2008050505.tif 000005
【図４】
2008050505.tif 000006
【図５】
2008050505.tif 000007
【図６】
2008050505.tif 000008
【図７】
2008050505.tif 000009
【図８】
2008050505.tif 000010
【図９】
2008050505.tif 000011
【図１０】
2008050505.tif 000012
【図１１】
2008050505.tif 000013
【図１２】
2008050505.tif 000014
【手続補正書】
【提出日】平成19年11月13日(2007.11.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング、
上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの入力信号が変化する第２のタイミング、および、
上記第２のフリップフロップの入力信号が変化する第１のタイミングと上記入力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング
のいずれか１対のタイミングを抽出する抽出部と、
上記抽出部の抽出結果に基づいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報を出力する出力部を備えていることを特徴とするシミュレーション装置。
【請求項２】
請求項１のシミュレーション装置であって、
上記出力部は、上記抽出部によって抽出されたタイミングが示された信号の波形図をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項３】
請求項１のシミュレーション装置であって、
上記出力部は、
上記シミュレーションにおいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数が、あらかじめ指定されたマルチサイクルパスのサイクル数よりも少なくなる場合があるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項４】
請求項１のシミュレーション装置であって、
上記シミュレーションにおいて、
上記抽出部は、複数対の第１および第２のタイミングを抽出し、
上記出力部は、上記抽出部が抽出した複数対のタイミングのうちでタイミングの差が最小である対における第１のタイミングから第２のタイミングまでのクロックサイクル数を出力することを特徴とするシミュレーション装置。
【請求項５】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
第１のフリップフロップの出力信号が変化するタイミングから、あらかじめ指定されたマルチサイクルパスの指定クロックサイクル数より１クロックサイクル短い期間、第１のフリップフロップの出力信号、または第２のフリップフロップの入力信号を、ハイレベルでもローレベルでもない状態であることを示す特定信号にする特定信号代入部と、
上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とするシミュレーション装置。
【請求項６】
請求項５のシミュレーション装置であって、
上記出力部は、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号の波形をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項７】
請求項５のシミュレーション装置であって、
上記出力部は、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項８】
請求項５のシミュレーション装置であって、
上記出力部は、
あらかじめ指定された複数種類の指定クロックサイクル数のうち、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項９】
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される複数の第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
上記第１のフリップフロップから出力され、各第２のフリップフロップに入力される信号のパス毎に、上記第１のフリップフロップの出力信号を別個の信号として扱い、
上記第１のフリップフロップの各出力信号を、上記第１のフリップフロップの出力信号が変化するタイミングから、上記パス毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、ハイレベルでもローレベルでもない特定信号にする特定信号代入部と、
上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とするシミュレーション装置。
【請求項１０】
請求項９のシミュレーション装置であって、
シミュレーション対象の回路における、第１のフリップフロップのデータ出力端子から分岐して各第２のフリップフロップのデータ入力端子に接続される信号配線を示す回路情報を、互いに独立した信号配線を示す回路情報に変換する回路情報変換部を備え、
上記特定信号代入部は、
上記変換された回路情報の回路のシミュレーションにおいて、
第１のフリップフロップの出力信号が変化するタイミングから、上記独立した信号配線毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、上記第１のフリップフロップの各出力信号を、上記特定信号にするように構成されていることを特徴とするシミュレーション装置。
【請求項１１】
請求項９のシミュレーション装置であって、
上記出力部は、上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号の波形をディスプレイに表示するように構成されていることを特徴とするシミュレーション装置。
【請求項１２】
請求項９のシミュレーション装置であって、
上記出力部は、上記第１のフリップフロップの各出力信号について、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【請求項１３】
請求項９のシミュレーション装置であって、
上記出力部は、
上記第１のフリップフロップの各出力信号について、上記パス毎にあらかじめ指定された複数種類の指定クロックサイクル数のうち、上記シミュレーションにおいて、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するように構成されていることを特徴とするシミュレーション装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路の機能仕様（動作仕様、設計仕様）に基づいて設計されたディジタル回路における、マルチサイクルパスに関する情報を得るためのシミュレーション装置に関するものである。
【背景技術】
【０００２】
一般に、ディジタル回路は、機能仕様に基づいて設計され、レジスタトランスファレベル（ＲＴＬ ，Register Transfer Level ）のＲＴＬ記述等が作成される。また、機能仕様に基づいて、タイミング制約を考慮した論理合成制約条件が作成される。上記ＲＴＬ記述および論理合成制約条件は、論理合成ツールに入力されて、タイミング制約（タイミング仕様）を満足するゲートレベルのネットリストが生成される。
【０００３】
上記論理合成制約条件には、タイミング例外として、他のフリップフロップを介さずに接続された１対のフリップフロップのうちの一方の出力端子から他方の入力端子への信号伝播経路が、信号伝播に複数クロックサイクルを要することが許容される伝播経路であることを示すマルチサイクルパス指定が含まれる。また、各マルチサイクルパスにおいて信号伝播に要する時間が何クロックサイクルまで許容されるかを示す条件（以下、「マルチサイクル数」と呼ぶ。）も含まれる。論理合成ツールでは、上記のようなマルチサイクルパスの指定（やフォルスパス指定などのタイミング例外指定）がない場合には、順序回路間の信号伝播が１サイクルになるように論理合成される。一方、マルチサイクルパスの指定があった場合、指定されているパスについては、信号伝播にかかる時間が指定されたマルチサイクル数よりも短くなるように論理合成される。
【０００４】
上記マルチサイクルパスに関する論理合成制約条件の取得は、通常、機能仕様に基づいて人手で行われているため、往々にして誤った条件で論理合成が行われる。このような場合、生成される論理回路が適切に動作しなかったり、適切に動作しても、過剰なタイミング調整のために回路規模が大きくなったりする。
【０００５】
そこで、ＲＴＬ記述に遅延情報を埋め込み、これを解析することによって、マルチサイクルパス候補を抽出し、別途作成されたマルチサイクルパス指定と突き合わせることによって検証する手法が提案されている（例えば、特許文献１参照。）。
【０００６】
また、例えば各素子の名称、端子への信号の意味や関係に対応して対象回路の分析を行い、自動的にマルチサイクルパスを検出する技術も提案されている（例えば、特許文献２参照。）。
【特許文献１】特開２００１−２７３３５１号公報
【特許文献２】特開２００４−１７１１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＲＴＬ記述に遅延情報を埋め込んで解析する手法では、埋め込む遅延情報自体に誤りがあると適切な検証が行われないうえ、遅延情報を埋め込むための手間も要する。
【０００８】
また、上記特許文献２には、具体的にどのような情報を用いてどのような処理を行うのかは明記されていないが、各素子の名称、端子への信号の意味や関係に対応して対象回路の分析を行い、自動的にマルチサイクルパスを検出する旨の記載からすると、機能仕様とＲＴＬ記述とに基づいてマルチサイクルパスが検出されると考えられる。したがって、ＲＴＬ記述自体に誤りがある場合には、不適切なマルチサイクルパス指定が得られることになる。
【０００９】
本発明は、かかる点に鑑みてなされたものであり、マルチサイクルパスに関する正確な情報を容易に取得することを目的としている。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明の第１の実施態様は、
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング、
上記第１のフリップフロップの出力信号が変化する第１のタイミングと上記出力信号の変化に起因して上記第２のフリップフロップの入力信号が変化する第２のタイミング、および、
上記第２のフリップフロップの入力信号が変化する第１のタイミングと上記入力信号の変化に起因して上記第２のフリップフロップの出力信号が変化する第２のタイミング
のいずれか１対のタイミングを抽出する抽出部と、
上記抽出部の抽出結果に基づいて、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報を出力する出力部を備えていることを特徴とする。
【００１１】
これにより、論理合成制約条件として用いるのに適したマルチサイクル数の取得、または論理合成制約条件としてあらかじめ準備されたマルチサイクル数が論理合成に用いるのに適切であるかの検証を容易に行える。
【００１２】
ここで、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数に対応する情報とは、そのクロックサイクル数を示す情報、そのクロックサイクル数を求めるための情報、またはそのクロックサイクル数に基づく情報である。
【００１３】
クロックサイクル数を求めるための情報は、この情報によってそのクロックサイクル数を求めることが可能であれば、どのような情報であってもよい。このような情報の例としては、上記第１のタイミングと上記第２のタイミングとが示された信号の波形図がある。
【００１４】
また、クロックサイクル数に基づく情報とは、クロックサイクル数に基づいて得ることが可能な情報である。例えば、上記第１のタイミングから上記第２のタイミングまでのクロックサイクル数が、あらかじめ指定された指定クロックサイクル数よりも少なくなる場合があるかどうかを示す情報、または複数のクロックサイクル数のうちの最小のクロックサイクル数を示す情報である。  
【００１５】
また、本発明の第２の実施態様は、
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
第１のフリップフロップの出力信号が変化するタイミングから、あらかじめ指定されたマルチサイクルパスの指定クロックサイクル数より１クロックサイクル短い期間、第１のフリップフロップの出力信号、または第２のフリップフロップの入力信号を、ハイレベルでもローレベルでもない状態であることを示す特定信号にする特定信号代入部と、
上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とする。
【００１６】
また、本発明の第３の実施態様は、
第１のフリップフロップと、上記第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される複数の第２のフリップフロップとを含んだ回路の回路構成を示す回路情報に基づいて、組合せ論理回路に遅延が生じないとした場合の動作のシミュレーションを行うシミュレーション装置であって、
上記シミュレーションにおいて、
上記第１のフリップフロップから出力され、各第２のフリップフロップに入力される信号のパス毎に、上記第１のフリップフロップの出力信号を別個の信号として扱い、
上記第１のフリップフロップの各出力信号を、上記第１のフリップフロップの出力信号が変化するタイミングから、上記パス毎にあらかじめ指定された指定クロックサイクル数より１クロックサイクル短い期間、ハイレベルでもローレベルでもない特定信号にする特定信号代入部と、
上記第１のフリップフロップの各出力信号について、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報を出力する出力部とを備えていることを特徴とする。
【００１７】
ここで、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに対応する情報とは、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを示す情報、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを判定するための情報、または上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づく情報である。
【００１８】
これらにより、論理合成制約条件として用いるのに適したマルチサイクル数の取得、または論理合成制約条件としてあらかじめ準備されたマルチサイクル数が論理合成に用いるのに適切であるかの検証を容易に行える。
【００１９】
上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかを判定するための情報は、あらかじめ指定された箇所の信号が上記特定信号になるかどうかをこの情報によって判定できれば、どのような情報であってもよい。このような情報の例としては、あらかじめ指定された箇所の信号の波形がある。
【００２０】
上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づく情報とは、あらかじめ指定された箇所の信号が上記特定信号になるかどうかに基づいて得ることが可能な情報である。例えば、あらかじめ指定された複数種類の指定クロックサイクル数のうち、上記第２のフリップフロップの出力端子以降のあらかじめ指定された箇所の信号が上記特定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報である。
【発明の効果】
【００２１】
本発明によると、マルチサイクルパスに関する正確な情報を容易に取得できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００２３】
《発明の実施形態１》
本実施形態のシミュレーション装置は、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図１に示すように、シミュレーション部１０１、抽出部１０２、および出力部１０３を備えている。
【００２４】
シミュレーション部１０１には、シミュレーション対象の回路の回路構成を示すＲＴＬ記述とテストベンチとが入力される。抽出部１０２には、評価対象の信号伝播経路を指定する評価対象パス指定情報が入力される。評価対象パス指定情報は、より具体的には、第１のフリップフロップのデータ出力端子と第２のフリップフロップのデータ出力端子とを指定する情報である。
【００２５】
シミュレーション部１０１は、シミュレーション対象の回路のＲＴＬ記述とテストベンチとを用いて、回路動作のシミュレーションを行い、回路上の各ノードにおける各タイミングでの信号レベルを出力するようになっている。ここでのシミュレーションは、組合せ論理回路に遅延は生じない場合の回路動作のシミュレーションである。
【００２６】
抽出部１０２は、シミュレーション結果のうち、第１のフリップフロップのデータ出力端子から出力される出力信号（第１のフリップフロップの出力信号）の各タイミングでの信号レベルと、第２のフリップフロップのデータ出力端子から出力される出力信号（第２のフリップフロップの出力信号）の各タイミングでの信号レベルとを参照するようになっている。そして、シミュレーションにおける第１のフリップフロップの出力信号の変化毎に、当該出力信号が変化する第１のタイミングと、当該出力信号の変化に起因して第２のフリップフロップの出力信号が変化する第２のタイミングとを抽出するようになっている。具体的には、例えば、第１のタイミングの後で最初に第２のフリップフロップの出力信号が変化するタイミングを、第２のタイミングとして抽出するようになっている。
【００２７】
出力部１０３は、抽出部１０２によって抽出された第１のタイミングと第２のタイミングとが示された信号のシミュレーション波形図をディスプレイに表示するようになっている。より具体的には、シミュレーション波形図において、第１のタイミングにおける第１のフリップフロップの出力信号の波形と、第２のタイミングにおける第２のフリップフロップの出力信号の波形とが太線で示される。
【００２８】
ここで、本実施形態のシミュレーション装置が、図２の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。
【００２９】
まず、シミュレーション部１０１は、図２の回路を含むシミュレーション対象の回路を示すＲＴＬ記述とテストベンチとを用いて、シミュレーションを行う。この例では、抽出部１０２に、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力されるとする。そして、抽出部１０２は、シミュレーション結果のうち、フリップフロップＦＦ１の出力端子Ｑにおける信号Ｑ１の各タイミングでの信号レベルと、フリップフロップＦＦ２の出力端子Ｑにおける信号Ｑ２の各タイミングでの信号レベルとを参照し、信号Ｑ１が変化する第１のタイミングと、第１のタイミングの後で最初に信号Ｑ２が変化する第２のタイミングとを抽出する。そして、出力部１０３は、図３に示すような信号の波形をディスプレイに表示する。オペレータは、この表示された波形を視認することによって、第１のタイミングから第２のタイミングまでに何クロックサイクル経過したかを容易に知ることができる。つまり、フリップフロップＦＦ１の出力端子ＱからフリップフロップＦＦ２の出力端子Ｑまでの信号伝播経路の遅延が、何クロックサイクル以内に収まるように合成すべきかを示す値を得ることができる。
【００３０】
なお、図３の波形は、信号Ｑ１が１回しか変化しない場合の例であるが、信号Ｑ１が複数回変化した場合、出力部は、複数対の第１および第２のタイミングとを示す波形をディスプレイに表示する。
【００３１】
本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００３２】
《発明の実施形態１の変形例１》
次に、実施形態１の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切かどうかを示す情報を出力するシミュレーション装置について説明する。
【００３３】
本変形例のシミュレーション装置は、上記実施形態１の出力部１０３に代えて、あらかじめ指定された指定クロックサイクル数が入力され、第１のタイミングから第２のタイミングまでのクロックサイクル数が、この指定クロックサイクル数よりも少なくなる場合があるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００３４】
例えば、評価対象の信号伝播経路が、図２の回路を含む回路における、フリップフロップＦＦ１の出力端子ＱからフリップフロップＦＦ２の出力端子Ｑまでの信号伝播経路であり、シミュレーション部１０１によって得られた各タイミングにおける各端子の信号のレベルが図３のようであるとする。この場合、本変形例の出力部は、抽出部１０２によって抽出された第１と第２のタイミングに基づいて、第１のタイミングから第２のタイミングまでのクロックサイクル数が３であるという情報を取得し、指定クロックサイクル数が３以上であるかどうかを示す情報を出力する。
【００３５】
なお、図３では信号Ｑ１が１回しか変化せず、抽出される第１および第２のタイミングは１対であるが、複数対の場合、出力部は、複数対の第１および第２のタイミングのうちで、第１のタイミングから第２のタイミングまでのクロックサイクル数が、指定クロックサイクル数よりも少なくなるものがあるかどうかを示す情報を出力する。
【００３６】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを示す確実な情報を得ることができる。第１のタイミングから第２のタイミングまでのクロックサイクル数が、指定クロックサイクル数よりも小さくなる場合があることを示す情報が出力されれば、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断し、小さくなる場合がないことを示す情報が出力されれば、適切であると判断できる。なお、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００３７】
《発明の実施形態１の変形例２》
次に、実施形態１の変形例２として、上記実施形態１の出力部１０３に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を出力する出力部を備えたシミュレーション装置について説明する。
【００３８】
本変形例の出力部は、抽出部が複数対の第１と第２のタイミングを抽出した場合、それらのうちでタイミングの差が最小である対における第１のタイミングから第２のタイミングまでのクロックサイクル数を示す情報を出力するようになっている。また、抽出部によって抽出された第１および第２のタイミングが１対の場合には、その１対のタイミングの差に対応するクロックサイクル数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００３９】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００４０】
《発明の実施形態１のその他の変形例》
実施形態１とその変形例１、２においては、第１のフリップフロップの出力信号の変化するタイミングと第２のフリップフロップの出力信号の変化するタイミングとが、第１と第２のタイミングとして抽出されるようになっていた。しかし、第１のフリップフロップの出力信号の変化するタイミングと第２のフリップフロップの入力信号の変化するタイミングとが、第１と第２のタイミングとして抽出されるようにしてもよい。また、第２のフリップフロップの入力信号の変化するタイミングと第２のフリップフロップの出力信号の変化するタイミングとが、第１と第２のタイミングとして抽出されるようにしてもよい。
【００４１】
《発明の実施形態２》
本実施形態のシミュレーション装置も、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図４に示すように、シミュレーション部１０１、特定信号代入部２０１、および出力部２０２を備えている。
【００４２】
特定信号代入部２０１には、評価対象の信号伝播経路を指定する評価対象パス指定情報、およびあらかじめ指定された指定クロックサイクル数が入力される。評価対象パス指定情報は、より具体的には、第１のフリップフロップのデータ出力端子と第２のフリップフロップのデータ出力端子とを指定する情報である。
【００４３】
特定信号代入部２０１は、シミュレーション部１０１でのシミュレーションにおいて、第１のフリップフロップのデータ出力端子から出力される出力信号（第１のフリップフロップの出力信号）が変化する毎に、変化したタイミングから指定クロックサイクル数よりも１少ないクロックサイクルの期間、第２のフリップフロップの入力信号を不定信号（ハイレベルでもローレベルでもない状態であることを示す特定信号）にするようになっている。
【００４４】
出力部２０２は、各信号のシミュレーション波形をディスプレイに表示するようになっている。
【００４５】
ここで、本実施形態のシミュレーション装置が、図２の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。この例では、特定信号代入部２０１には、指定クロックサイクル数として３が入力され、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力されているとする。
【００４６】
まず、シミュレーション部１０１は、図２の回路を含むシミュレーション対象の回路を示すＲＴＬ記述とテストベンチとを用いて、シミュレーションを行う。この間、特定信号代入部２０１は、シミュレーションにおいて、フリップフロップＦＦ１の出力信号Ｑ１が変化する毎に、変化したタイミングから、指定クロックサイクル数の３より１少ない２クロックサイクルの期間、フリップフロップＦＦ２の入力信号Ｄ２を不定信号にする。そして、出力部２０２は、例えば、図５に示すようなシミュレーション波形をディスプレイに表示する。
【００４７】
なお、図５の波形は、信号Ｑ１が１回しか変化しない場合の例であるが、信号Ｑ１が複数回変化した場合、出力部は、信号Ｑ１が複数回不定信号になっているシミュレーション波形をディスプレイに表示する。
【００４８】
オペレータは、この表示された波形を視認し、フリップフロップＦＦ２の出力信号Ｑ２が不定信号になるかどうかを確認することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを容易に判断できる。出力信号Ｑ２が一度も不定信号にならなければ、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに適切であると判断され、出力信号Ｑ２が一度でも不定信号になれば不適切であると判断される。例えば、図５のシミュレーション波形では、出力信号Ｑ２が不定信号になっていないので、指定クロックサイクル数の３は、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。
【００４９】
一方、特定信号代入部２０１に、指定クロックサイクル数として４が入力され、出力部２０２が図６に示すようなシミュレーション波形をディスプレイに表示した場合、出力信号Ｑ２が不定信号になっているので、指定クロックサイクル数の４は、論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断される。
【００５０】
本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００５１】
《発明の実施形態２の変形例１》
次に、実施形態２の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを示す情報を出力するシミュレーション装置について説明する。
【００５２】
本変形例のシミュレーション装置は、上記実施形態２の出力部２０２に代えて、シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になるかどうかを判定し、シミュレーション波形ではなく、第２のフリップフロップの出力信号が不定信号になるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００５３】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件マルチサイクル数として用いるのに適切であるかどうかを示す確実な情報を得ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００５４】
《発明の実施形態２の変形例２》
次に、実施形態２の変形例２として、上記実施形態２の出力部２０２に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を示す情報を出力する出力部を備えたシミュレーション装置について説明する。
【００５５】
本変形例のシミュレーション装置では、特定信号代入部２０１に複数種類の指定クロックサイクル数が入力され、シミュレーション部１０１が、指定クロックサイクル数毎に、その指定クロックサイクル数よりも１少ないクロックサイクルの期間だけの不定信号が第２のフリップフロップの入力信号に代入されたシミュレーションを行うようになっている。
【００５６】
本変形例の出力部は、各シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になる場合があるかどうかを判定するようになっている。そして、第２のフリップフロップの出力信号が不定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００５７】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００５８】
《発明の実施形態２のその他の変形例》
実施形態２とその変形例１、２においては、特定信号代入部２０１によって、第２のフリップフロップの入力信号が不定信号にされるようになっていたが、第１のフリップフロップの出力信号が不定信号にされるようにしてもよい。
【００５９】
《発明の実施形態３》
本実施形態のシミュレーション装置も、第１のフリップフロップと、第１のフリップフロップの出力信号が他のフリップフロップを介さずに入力される第２のフリップフロップとを含んだ回路の回路構成を示すＲＴＬ記述に基づいて、回路動作のシミュレーションを行うものである。具体的には、図７に示すように、回路情報変換部３０１、シミュレーション部１０１、特定信号代入部３０２、および出力部２０２を備えている。
【００６０】
回路情報変換部３０１は、入力されるＲＴＬ記述に、第１のフリップフロップのデータ出力端子から分岐して複数の第２のフリップフロップのデータ入力端子に接続される信号配線が示されている場合、この信号配線が、第１のフリップフロップのデータ出力端子から各第２のフリップフロップのデータ入力端子に接続される互いに独立した独立信号配線として示されるように、ＲＴＬ記述を変換するようになっている。
【００６１】
本実施形態のシミュレーション部１０１は、変換されたＲＴＬ記述で示される回路について、独立信号配線毎にシミュレーションを行うようになっている。
【００６２】
特定信号代入部３０２は、各独立信号配線に対応するシミュレーションにおいて、第１のフリップフロップの出力信号が変化する毎に、その変化のタイミングから、その独立信号配線にあらかじめ指定されたマルチサイクルパスのサイクル数に対応する期間、第１のフリップフロップからその独立信号配線に出力される出力信号を不定信号にするようになっている。
【００６３】
ここで、本実施形態のシミュレーション装置が、図８の回路を含む回路のシミュレーションを行う場合の動作の例について説明する。この例では、特定信号代入部３０２には、評価対象パス指定情報として、フリップフロップＦＦ１の出力端子ＱとフリップフロップＦＦ２の出力端子Ｑとを指定する情報が入力され、当該信号伝播経路の指定クロックサイクル数として３が入力されているとする。
【００６４】
まず、回路情報変換部３０１には、図８の回路を含むシミュレーション対象の回路の回路構成を示すＲＴＬ記述が入力される。入力されるＲＴＬ記述には、図８の回路構成を示す図９のＲＴＬ記述が含まれている。したがって、回路情報変換部３０１は、図９のＲＴＬ記述を、フリップフロップＦＦ１からフリップフロップＦＦ２およびフリップフロップＦＦ３に分岐するパスが、互いに独立した信号配線として示された図１０のＲＴＬ記述に変換する。シミュレーション対象の回路のうちの図８の回路以外の部分のＲＴＬ記述についても同様の処理を行い、変換後のＲＴＬ記述を出力する。そして、シミュレーション部１０１は、テストベンチと変換後のＲＴＬ記述とを用いて、シミュレーションを行う。この間、特定信号代入部３０２は、シミュレーションにおいて、指定クロックサイクル数の３より１少ない２クロックサイクルの期間、図１０のＲＴＬ記述においてＱ１Ａで示されている信号を不定信号にする。そして、出力部２０２は、例えば、図１１に示すようなシミュレーション波形をディスプレイに表示する。
【００６５】
なお、図１１の波形は、フリップフロップＦＦ１の出力信号が１回しか変化しない場合の例であるが、複数回変化した場合、出力部は、信号Ｑ１Ａが複数回不定信号にされているシミュレーション波形をディスプレイに表示する。
【００６６】
オペレータは、この表示された波形を視認し、フリップフロップＦＦ２の出力信号Ｑ２が不定信号になるかどうかを確認することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを容易に判断できる。出力信号Ｑ２が不定信号にならなければ、当該指定クロックサイクル数は論理合成制約条件のマルチサイクル数として用いるのに適切であると判断され、出力信号Ｑ２が不定信号になれば不適切であると判断される。例えば、図１１のシミュレーション波形では、出力信号Ｑ２が不定信号になっていないので、指定クロックサイクル数の３は、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。
【００６７】
一方、特定信号代入部３０２に、指定クロックサイクル数として４が入力され、出力部２０２が図１２に示すようなシミュレーション波形をディスプレイに表示した場合、出力信号Ｑ２が不定信号になっているので、指定クロックサイクル数の４は、論理合成制約条件のマルチサイクル数として用いるのに不適切であると判断される。
【００６８】
本実施形態のシミュレーション装置によると、オペレータは、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００６９】
《発明の実施形態３の変形例１》
次に、実施形態３の変形例１として、あらかじめ指定された指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切なものであるかどうかを示す情報を出力するシミュレーション装置について説明する。
【００７０】
本変形例のシミュレーション装置は、上記実施形態３の出力部２０２に代えて、シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になるかどうかを判定し、シミュレーション波形ではなく、第２のフリップフロップの出力信号が不定信号になるかどうかを示す情報を出力する出力部を備えている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００７１】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、指定クロックサイクル数が論理合成制約条件のマルチサイクル数として用いるのに適切であるかどうかを確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００７２】
《発明の実施形態３の変形例２》
次に、実施形態３の変形例２として、上記実施形態３の出力部２０２に代えて、論理合成制約条件のマルチサイクル数として用いるのに適切なクロックサイクル数を出力する出力部を備えたシミュレーション装置について説明する。
【００７３】
本変形例のシミュレーション装置では、特定信号代入部３０２に、各独立信号配線を評価するために複数種類の指定クロックサイクル数が入力される。
【００７４】
シミュレーション部１０１は、指定クロックサイクル数毎に、シミュレーションを行うようになっている。各シミュレーションでは、その指定クロックサイクル数よりも１少ないクロックサイクルの期間だけの不定信号が、第１のフリップフロップから評価対象の独立信号配線に出力される出力信号に代入される。
【００７５】
本変形例の出力部は、各シミュレーションにおいて、第２のフリップフロップの出力信号が不定信号になる場合があるかどうかを判定するようになっている。そして、第２のフリップフロップの出力信号が不定信号になる場合がない指定サイクルクロック数のうちの最大の指定サイクルクロック数を示す情報を出力するようになっている。出力の形式としては、この情報をディスプレイに表示することに限らず、この情報が他の装置によって認識されるように、この情報を示す信号を出力するようにしてもよい。
【００７６】
このような出力部を備えたシミュレーション装置によると、シミュレーション部１０１に、シミュレーション対象の回路の入力にすべての組合せパターンが入力されるシミュレーションのテストベンチを入力することによって、最適なマルチサイクル数を確実に知ることができる。また、すべての組合せパターンのうち、実際に想定される組合せパターンだけが入力されるシミュレーションが行われるようにしてもよい。
【００７７】
《その他の実施形態》
実施形態２、３では、図５、図６、図１１、および図１２に示すように、出力信号Ｑ２のシミュレーション波形がディスプレイに表示されるようになっている。しかし、フリップフロップＦＦ２の出力端子より出力側のノードにおける信号のシミュレーション波形が表示されるようにしてもよい。つまり、フリップフロップＦＦ２の出力端子以降のノードにおける信号のシミュレーション波形が表示されるようにすればよい。例えば、シミュレーション対象の回路の外部端子から出力される信号のシミュレーション波形が表示されるようにしてもよい。
【００７８】
実施形態２、３の変形例１、２の出力部は、第２のフリップフロップの出力信号が不定信号になるかどうかを判定するようになっている。しかし、第２のフリップフロップの出力端子より出力側のノードにおける信号が不定信号になるかどうかを判定するようにしてもよい。つまり、第２のフリップフロップの出力端子以降のノードにおける信号が不定信号になるかどうかを判定すればよい。例えば、シミュレーション対象の回路の外部端子から出力される信号が不定信号になるかどうかを判定し、判定結果に応じた情報を出力するようにしてもよい。
【００７９】
また、実施形態２、およびその変形例１、２のシミュレーション装置の特定信号代入部２０１が、第２のフリップフロップの入力信号ではなく、第１のフリップフロップの出力信号を不定信号にする場合にも、第２のフリップフロップの出力端子より出力側のノードにおける信号のシミュレーション波形や、当該ノードにおける信号が不定信号になるか否かの判定結果に応じた情報が、出力部によって出力されるようにしてもよい。ただし、この場合、評価対象の信号伝播経路が複数のフリップフロップに分岐しているときに、以下のような問題が生じる。例えば、図８の回路を含む回路がシミュレーション対象であり、評価対象の信号伝播経路が図８におけるフリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ２の入力端子Ｄまでの経路であるとき、特定信号代入部２０１によってフリップフロップＦＦ１の出力信号が不定信号にされると、フリップフロップＦＦ３にも不定信号が伝播する。したがって、フリップフロップＦＦ２の出力端子Ｑにおける信号Ｑ２が不定信号にならない場合でも、フリップフロップＦＦ３の出力端子Ｑにおける信号Ｑ３が不定信号になり、この信号Ｑ３の影響によって、上記ノードにおける信号が不定信号となってしまう可能性がある。この結果、論理合成制約条件のマルチサイクル数として用いるのに適切な指定クロックサイクル数が、上記ノードにおける信号のシミュレーション波形を視認したオペレータによって不適切であると判断されたり、出力部によって、適切な指定クロックサイクル数を不適切であると示す情報が出力されたり、または、最適ではないクロックサイクル数を示す情報が、最適なクロックサイクル数を示すものとして出力されたりする。
【００８０】
これに対し、実施形態３、およびその変形例１、２のシミュレーション装置は、評価対象の信号伝播経路が、フリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ２の入力端子Ｄまでの経路である場合、シミュレーションにおいて、この経路を、フリップフロップＦＦ１の出力端子Ｑ１からフリップフロップＦＦ３の入力端子Ｄまでの経路とは独立した独立信号配線として扱う。したがって、特定信号代入部２０１によってフリップフロップＦＦ１の出力信号が不定信号にされても、フリップフロップＦＦ３に不定信号は伝播せず、上記のような問題は生じない。
【００８１】
つまり、実施形態３のシミュレーション装置によると、評価対象の信号伝播経路が複数のフリップフロップに分岐している場合に、第２のフリップフロップの出力端子より出力側のノードにおける信号のシミュレーション波形が表示されるようにしても、オペレータは、このシミュレーション波形を視認することによって、指定クロックサイクル数が適切であるかどうかを精度良く判断できる。同様に、実施形態３の変形例１、２のシミュレーション装置は、評価対象の信号伝播経路が複数のフリップフロップに分岐している場合でも、第２のフリップフロップの出力端子より出力側のノードにおける信号が不定信号になるか否かの判定結果に応じて、精度良く、あらかじめ指定された指定クロックサイクル数が適切かどうかを示す情報や、最適なクロックサイクル数を示す情報を出力できる。
【００８２】
実施形態２、３等で用いられる不定信号は、ＡＮＤ回路の一方の入力端子がローレベルになっている時に他方の入力端子に入力されても、ＡＮＤ回路の出力端子以降には伝播しない。また、不定信号は、ＯＲ回路の一方の入力端子がハイレベルになっている時に他方の入力端子に入力されても、ＯＲ回路の出力端子以降には伝播しない。したがって、不定信号が、信号が不定信号になるかどうかの判定が行われるノードに到達するまでに、このようなＡＮＤ回路やＯＲ回路によってマスクされる場合には、そのノードにおける信号は不定信号とはならず、そのときの不定信号の長さに対応する指定クロックサイクル数が、論理合成制約条件のマルチサイクル数として用いるのに適切であると判断される。
【産業上の利用可能性】
【００８３】
以上説明したように、本発明に係るシミュレーション装置は、マルチサイクルパスに関する正確な情報を容易に取得できるという効果を有し、例えば、回路の機能仕様（動作仕様、設計仕様）に基づいて設計されたディジタル回路における、マルチサイクルパスに関する情報を得るためのシミュレーション装置等として有用である。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態１のシミュレーション装置の構成を示すブロック図である。
【図２】本発明の実施形態１、２のシミュレーション装置によるシミュレーションの対象となる論理回路の一部を示す回路図である。
【図３】本発明の実施形態１のシミュレーション装置によって出力されるシミュレーション波形図である。
【図４】本発明の実施形態２のシミュレーション装置の構成を示すブロック図である。
【図５】本発明の実施形態２のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図６】本発明の実施形態２のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図７】本発明の実施形態３のシミュレーション装置の構成を示すブロック図である。
【図８】本発明の実施形態３のシミュレーション装置によるシミュレーションの対象となる論理回路の一部を示す回路図である。
【図９】本発明の実施形態３のシミュレーション装置に入力されるＲＴＬ記述の例を示す説明図である。
【図１０】本発明の実施形態３のシミュレーション装置の回路情報変換部３０１によって出力されるＲＴＬ記述の例を示す説明図である。
【図１１】本発明の実施形態３のシミュレーション装置によって出力されるシミュレーション波形の例である。
【図１２】本発明の実施形態３のシミュレーション装置によって出力されるシミュレーション波形の例である。
【符号の説明】
【００８５】
１０１      シミュレーション部
１０２      抽出部
１０３      出力部
２０１      特定信号代入部
２０２      出力部
３０１      回路情報変換部
３０２      特定信号代入部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008050505.tif 000015
【図２】
2008050505.tif 000016
【図３】
2008050505.tif 000017
【図４】
2008050505.tif 000018
【図５】
2008050505.tif 000019
【図６】
2008050505.tif 000020
【図７】
2008050505.tif 000021
【図８】
2008050505.tif 000022
【図９】
2008050505.tif 000023
【図１０】
2008050505.tif 000024
【図１１】
2008050505.tif 000025
【図１２】
2008050505.tif 000026
【国際調査報告】
2008050505.tif 000027
2008050505.tif 000028