(57)【要約】【課題】半導体装置のＳＴＡを行う場合に、マルチサイクルパス回路のタイミング検証を確実に行えるシミュレーション装置の実現。【解決手段】原クロック信号CLK0を分周することにより第１および第２クロック信号CLK1,CLK2を生成すると共に、論理回路により周期データ信号EN12を生成するクロック生成部20と、CLK1,CLK2に同期して動作すると共に、EN12に応じてマルチサイクルパスの動作を行う回路40と、を含む半導体装置10の動作をシミュレーションするシミュレーション装置であって、EN12の動作周期および動作タイミングをタイミング制約に加えた、半導体装置の設計データを生成する設計データ生成手段と、設計データに基づいて、周期データ信号の波形情報を半導体装置内に伝搬させ、半導体装置の動作を静的タイミング解析によりシミュレーションするシミュレーション手段と、を備有するシミュレーション装置。【選択図】図１４
2015219645.tif 000002
【特許請求の範囲】
【請求項１】
原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により前記原クロック信号、前記第１クロック信号および前記第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成するクロック生成部と、
前記第１クロック信号または前記第２クロック信号に同期して動作すると共に、前記周期データ信号に応じてマルチサイクルパスの動作を行う回路と、を含む半導体装置の動作をシミュレーションする、コンピュータにより実現されるシミュレーション装置であって、
前記周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、前記半導体装置の設計データを生成する設計データ生成手段と、
前記設計データに基づいて、前記周期データ信号の波形情報を前記半導体装置内に伝搬させ、前記半導体装置の動作を静的タイミング解析によりシミュレーションするシミュレーション手段と、を備えることを特徴とするシミュレーション装置。
【請求項２】
前記マルチサイクルパスの動作を行う回路は、前記第１クロック信号または前記第２クロック信号がクロック信号端子に入力され、前記周期データ信号により動作状態が制御されるフリップフロップ回路である請求項１に記載のシミュレーション装置。
【請求項３】
原クロック信号を分周した第１クロック信号および前記原クロック信号を分周した第２クロック信号に基づいて制御信号を生成する制御信号生成回路と、前記第１クロック信号と前記制御信号に基づく第１制御信号とで動作制御される第１回路と、前記第２クロック信号と前記制御信号に基づく第２制御信号とで動作制御され、前記第１回路からの出力データを受け取る第２回路とを、前記制御信号生成回路、前記第１回路、および前記第２回路を含む半導体装置からネットリストに基づいて抽出する抽出手段と、
前記第１制御信号と前記第２制御信号とに基づいて第１時間を算出し、前記第１制御信号、前記第２制御信号、および前記第１時間に基づいて第２時間を算出する算出手段と、
前記出力データが前記第１回路から前記第２回路へ伝搬するまでのデータ伝搬時間、前記第１時間、および第１所定時間に基づいて、前記出力データを前記第２回路が受け取るタイミングに関する第１の解析を行い、前記データ伝搬時間、前記第２時間、および第２所定時間に基づいて、前記出力データを前記第２回路が受け取るタイミングに関する第２の解析を行う、シミュレーション手段と、を備えることを特徴とするシミュレーション装置。
【請求項４】
前記半導体装置は更に第３回路を含み、前記第１制御信号または前記第２制御信号の少なくとも一方は、前記制御信号と前記第３回路の出力信号に基づいて生成されることを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記第１回路は第１フリップフロップ回路であり、前記第２回路は第２フリップフロップ回路であり、前記第１所定時間は前記第２フリップフロップ回路のセットアップ時間であり、前記第２所定時間は前記第２フリップフロップ回路のホールド時間であることを特徴とする請求項３または４に記載のシミュレーション装置。
【請求項６】
原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により前記原クロック信号、前記第１クロック信号および前記第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成するクロック生成部と、
前記第１クロック信号または前記第２クロック信号に同期して動作すると共に、前記周期データ信号に応じてマルチサイクルパスの動作を行う回路と、を含む半導体装置の動作を、コンピュータによりシミュレーションするシミュレーション方法であって、
前記周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、前記半導体装置の設計データを生成し、
前記設計データに基づいて、前記周期データ信号の波形情報を前記半導体装置内に伝搬させ、前記半導体装置の動作を静的タイミング解析によりシミュレーションする、ことを特徴とするシミュレーション方法。
【請求項７】
原クロック信号を分周した第１クロック信号および前記原クロック信号を分周した第２クロック信号に基づいて制御信号を生成する制御信号生成回路と、前記第１クロック信号と前記制御信号に基づく第１制御信号とで動作制御される第１回路と、前記第２クロック信号と前記制御信号に基づく第２制御信号とで動作制御され、前記第１回路からの出力データを受け取る第２回路とを、前記制御信号生成回路、前記第１回路、および前記第２回路を含む半導体装置からネットリストに基づいて抽出し、
前記第１制御信号と前記第２制御信号とに基づいて第１時間を算出し、
前記第１制御信号、前記第２制御信号、および前記第１時間に基づいて第２時間を算出し、
前記出力データが前記第１回路から前記第２回路へ伝搬するまでのデータ伝搬時間、前記第１時間、および第１所定時間に基づいて、前記出力データを前記第２回路が受け取るタイミングに関する第１の解析を行い、
前記データ伝搬時間、前記第２時間、および第２所定時間に基づいて、前記出力データを前記第２回路が受け取るタイミングに関する第２の解析を行う、ことを特徴とするシミュレーション方法。
【請求項８】
前記半導体装置は更に第３回路を含み、前記第１制御信号または前記第２制御信号の少なくとも一方は、前記制御信号と前記第３回路の出力信号に基づいて生成されることを特徴とする請求項７に記載のシミュレーション方法。
【請求項９】
前記第１回路は第１フリップフロップ回路であり、前記第２回路は第２フリップフロップ回路であり、前記第１所定時間は前記第２フリップフロップ回路のセットアップ時間であり、前記第２所定時間は前記第２フリップフロップ回路のホールド時間であることを特徴とする請求項７または８に記載のシミュレーション方法。
【請求項１０】
原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により前記原クロック信号、前記第１クロック信号および前記第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成するクロック生成部と、
前記第１クロック信号または前記第２クロック信号に同期して動作すると共に、前記周期データ信号に応じてマルチサイクルパスの動作を行う回路と、を含む半導体装置の動作を、シミュレーションするようにコンピュータを動作させるプログラムであって、コンピュータに、
前記周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、前記半導体装置の設計データを生成させ、
前記設計データに基づいて、前記周期データ信号の波形情報を前記半導体装置内に伝搬させ、前記半導体装置の動作を静的タイミング解析によりシミュレーションさせる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置のシミュレーション装置、シミュレーション方法およびプログラムに関する。
【背景技術】
【０００２】
クロック信号に同期して動作する半導体装置は、シングルサイクルパス回路と、マルチサイクルパス回路と、を有する。シングルサイクルパス回路は、シングルサイクルパス回路に入力するデータが、他の回路から出力されてからクロック信号の０サイクル以上１サイクル以内に到達することが求められる回路であり、遅延が１サイクル以上になると誤動作が発生する。マルチサイクルパス回路は、マルチサイクルパス回路に入力するデータが、他の回路から出力されてからクロック信号の２サイクル以上遅延してもよい回路である。例えば、所定サイクルの間ディスイネーブルとなり、その間クロック信号が変化しても入力データを受け付けない回路は、マルチサイクルパス回路である。
【０００３】
半導体装置に形成される集積回路の動作をシミュレーションするシミュレーション装置が知られている。シミュレーション装置は、コンピュータ上にプログラムで実現され、シミュレーション対象の回路の動作を設計データに基づいて解析する。論理回路を対象として厳密な解析を行う場合には、論理値を考慮したタイミング解析を行う。
【０００４】
しかし、回路規模が大きくなると、シミュレーションに要する時間は幾何級数的に増加する。近年、半導体装置は集積度が向上し、論理回路は規模が増大しており、論理回路全体を厳密にシミュレーションするのは難しいのが現状である。そこで、大規模な論理回路については、回路を動作させるための検証パターンが不要で短時間に解析が行える静的タイミング解析(STA: Static Timing Analysis)により、論理値を考慮せずにタイミング検証を行うのが一般的である。実施形態のシミュレーション装置は、静的タイミング解析（ＳＴＡ）を行う装置である。
【０００５】
マルチサイクルパス回路を含む半導体装置のＳＴＡシミュレーションを行う場合、上記のように論理値を考慮せずにタイミング検証を行うために、シングルサイクルパス回路と同様に、入力データが１サイクル以内に到達するか否かを判定する。そのため、実際の回路動作よりも厳しい条件でタイミング検証が行われることになり、実際には問題なく動作するマルチサイクルパス回路が誤動作すると判定されることになり、非効率なシミュレーションになっていた。
【０００６】
上記のようなマルチサイクルパス回路についての厳しいタイミング検証を回避するため、設計者が、マルチサイクル制約を所望の解析サイクルに設定することが行われている。これにより、マルチサイクルパス回路のタイミング検証は、実際の制約に即して行われることになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−９３３８０号公報
【特許文献２】特開２００７−２４１８３６号公報
【特許文献３】特開平１１−８５８１０号公報
【特許文献４】特開２００９−２３０３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記のマルチサイクル制約の設定は、設計者が回路構成や設計仕様からマルチサイクルパス回路であることを判断した上で実施しており、大規模化した回路の場合、人為的な誤りが避けられない。例えば、マルチサイクルパス回路でないにもかかわらず、設計者が思い込みなどによりマルチサイクルパス回路であると誤って判断した場合や、マルチサイクルパス回路であるにもかかわらず、設計者が見落とした場合などである。マルチサイクルパス回路であると誤って判断した場合には、最終的に半導体装置の製造後に動作不具合という形で誤った判断が発見される。これにより半導体装置の再設計・製造費用やスケジュール遅延による機会損失が発生する。また、マルチサイクルパス回路を見落としてタイミング制約を設定しなかった場合には、その部分は必要以上に厳しい条件でタイミング解析が行われることになり、回路設計が進まないことになる。
【０００９】
以上のことから、設計者自身がマルチサイクルパス回路であることを回路構成や設計仕様から判断するのではなく、マルチサイクルパス回路のタイミング検証を行える手法が望まれている。以下に説明する実施形態では、半導体装置のＳＴＡを行う場合に、設計者の主観(思い込み)によらず、マルチサイクルパス回路のタイミング検証を確実に行えるシミュレーション装置、シミュレーション方法およびプログラムが実現される。
【課題を解決するための手段】
【００１０】
実施形態の第１の態様のシミュレーション装置は、コンピュータにより実現され、半導体装置の動作をシミュレーションする。シミュレーション対象の半導体装置は、クロック生成部と、マルチサイクルパスの動作を行う回路と、を含む。クロック生成部は、原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により原クロック信号、第１クロック信号および第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成する。マルチサイクルパスの動作を行う回路は、第１クロック信号または第２クロック信号に同期して動作すると共に、周期データ信号に応じてマルチサイクルパスの動作を行う。シミュレーション装置は、設計データ生成手段と、シミュレーション手段と、を有する。設計データ生成手段は、周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、半導体装置の設計データを生成する。シミュレーション手段は、設計データに基づいて、周期データ信号の波形情報を半導体装置内に伝搬させ、半導体装置の動作を静的タイミング解析によりシミュレーションする。
【００１１】
実施形態の第２の態様のシミュレーション方法は、半導体装置の動作を、コンピュータによりシミュレーションする。シミュレーション対象の半導体装置は、クロック生成部と、マルチサイクルパスの動作を行う回路と、を含む。クロック生成部は、原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により原クロック信号、第１クロック信号および第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成する。マルチサイクルパスの動作を行う回路は、第１クロック信号または第２クロック信号に同期して動作すると共に、周期データ信号に応じてマルチサイクルパスの動作を行う。シミュレーション方法によれば、周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、半導体装置の設計データを生成する。次に、設計データに基づいて、周期データ信号の波形情報を半導体装置内に伝搬させ、半導体装置の動作を静的タイミング解析によりシミュレーションする。
【００１２】
実施形態の第３の態様のプログラムは、半導体装置の動作を、シミュレーションするようにコンピュータを動作させる。シミュレーション対象の半導体装置は、クロック生成部と、マルチサイクルパスの動作を行う回路と、を含む。クロック生成部は、原クロック信号を分周することにより第１クロック信号および第２クロック信号を生成すると共に、論理回路により原クロック信号、第１クロック信号および第２クロック信号の少なくとも１つから周期的に変化する周期データ信号を生成する。マルチサイクルパスの動作を行う回路は、第１クロック信号または第２クロック信号に同期して動作すると共に、周期データ信号に応じてマルチサイクルパスの動作を行う。プログラムによれば、コンピュータに、周期データ信号の動作周期および動作タイミングをタイミング制約に加えた、半導体装置の設計データを生成させる。次に、設計データに基づいて、周期データ信号の波形情報を半導体装置内に伝搬させ、半導体装置の動作を静的タイミング解析によりシミュレーションさせる。
【発明の効果】
【００１３】
シミュレーション対象の半導体装置では、クロック生成部において、原クロック信号から生成した第１クロック信号および第２クロック信号から、周期的に変化する周期データ信号が生成され、半導体装置内の各マルチサイクルパス回路に供給される。実施形態のシミュレーション装置によれば、クロック生成部において生成された周期データ信号について、クロック生成部において発生された段階で、周期データ信号の動作周期および動作タイミングをタイミング制約に加える。これにより、見落とし無しに、周期データ信号に正しくタイミング制約に加えることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、マルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【図２】図２は、図１のＳｏＣの回路の動作を示すタイムチャートを示す図である。
【図３】図３は、図１の回路を対象とした一般的なＳＴＡの処理を示すフローチャートである。
【図４】図４は、動作タイミング定義として動作波形（クロック周期）を定義した例を示す図である。
【図５】図５は、２つのクロック信号の波形から得られる回路動作パターンの組合せ例を示す図である。
【図６】図６は、図５の並び替えを行った結果を示す図である。
【図７】図７は、タイミングチェックの条件を示す図である。
【図８】図８は、設計者が入力するマルチサイクル制約のコマンド例を示す図である。
【図９】図９は、２つのクロック信号の波形から得られる回路動作パターンの組合せをタイミング解析時間（Ｔｐｄ）の短い順に並べ替えた図６の表を利用してタイミング解析周期を決定する方法の例を示す図である。
【図１０】図１０は、設計者がマルチサイクルタイミング制約を設定する場合の図１の回路を対象としたＳＴＡの処理を示すフローチャートである。
【図１１】図１１は、第１実施形態のシミュレーション装置を形成するコンピュータのハードウェア構成の例を示すブロック図である。
【図１２】図１２は、処理対象のマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【図１３】図１３は、周期データタイミング制約の定義例を示す図である。
【図１４】図１４は、第１実施形態のシミュレーション装置における、図１２の回路を対象としたＳＴＡの処理を示すフローチャートである。
【図１５】図１５は、図１２の組合せ回路の回路例を示す図であり、（Ａ）がＡＮＤゲートでゲーティングする場合を、（Ｂ）がＯＲゲートでゲーティングする場合を、示す。
【図１６】図１６は、図１２の回路で、周期データ信号の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【図１７】図１７は、第２実施形態のシミュレーション装置が処理対象とするマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【図１８】図１８は、第２実施形態で、図１７の回路について、周期データ信号の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【図１９】図１９は、第３実施形態のシミュレーション装置が処理対象とするマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【図２０】図２０は、第３実施形態の解析が適用できる回路例を示す図であり、（Ａ）がＥＮ１２＝０で伝搬する例を、（Ｂ）がＥＮ１２＝１で伝搬する例を示す。
【図２１】図２１は、第３実施形態で、図１９の回路について、周期データ信号ＥＮ１２の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【発明を実施するための形態】
【００１５】
実施形態を説明する前に、一般的なマルチサイクルパス回路、およびマルチサイクルパス回路のタイミング解析手法について説明する。以下、ＳｏＣ(System On Chip)が対象半導体装置である場合を例として説明を行う。
【００１６】
図１は、マルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
ＳｏＣ１０は、クロック生成部２０と、第１モジュール３０と、第２モジュール４０と、を有し、外部から原クロックＣＬＫ０が供給される。なお、ＳｏＣ１０が、原クロックＣＬＫ０を発生するようにしてもよい。
【００１７】
クロック生成部２０は、ＣＬＫ０から分周クロックであるＣＬＫ１およびＣＬＫ２を生成している。ダウンカウンタ２１、フリップフロップ（ＦＦ）２２、ＡＮＤゲート２３およびインバータ２４は、ＣＬＫ０を３分周してＣＬＫ１を生成する分周回路を形成する。ダウンカウンタ２５、ＦＦ２６、ＡＮＤゲート２７およびインバータ２８は、ＣＬＫ０を２分周してＣＬＫ２を生成する分周回路を形成する。ＡＮＤゲート２９は、ＣＬＫ１およびＣＬＫ２から周期データＥＮ１２を生成する。
【００１８】
ＣＬＫ１およびＣＬＫ２を生成する分周回路では、ダウンカウンタ２１および２５は、カウント値ＣＮＴ１，ＣＮＴ２が０となるときに、ＦＦ２２および２６に、Ｈｉｇｈ（＝１）を供給する。これに応じて、ＦＦ２２および２６の出力は、次のＣＬＫ０のサイクルで１に変化し、さらに次のサイクルで０に戻る。ダウンカウンタ２１および２５が０に戻るカウント値を設定することにより、任意の分周比で分周が行える。例えば、ダウンカウンタ２１のカウント値は、０になると、次のサイクルで２になるダウンカウントを繰り返す。同様に、ダウンカウンタ２５のカウント値は、０になると、次のサイクルで１になるダウンカウントを繰り返す。このような分周回路は広く知られているのでこれ以上の説明は省略する。
【００１９】
ＣＬＫ１は第１モジュール３０に供給され、ＣＬＫ２は第２モジュール４０に供給される。さらに、クロック生成部２０では、ＡＮＤゲート２９が、ダウンカウンタ２１および２５のカウント値が共に０になった場合に１を出力する周期データ信号ＥＮ１２を生成する。したがって、ＥＮ１２は、ＣＬＫ１とＣＬＫ２の位相が揃うことを示す信号である。ＥＮ１２は、第１モジュール３０および第２モジュール４０に供給される。
【００２０】
第１モジュール３０は、イネーブル端子にＥＮ１２が印加されるＦＦ１を有し、ＦＦ１は、ＥＮ１２が１の時に、他の回路部分からのデータをＣＬＫ１に同期してラッチし、出力を第２モジュール４０に供給する。
【００２１】
第２モジュール４０は、組合せ回路４１と、組合せ回路４２と、ＦＦ２と、を有する。組合せ回路４１は、ＦＦ１からの出力に対して論理演算を行い、出力をＦＦ２のデータ端子に供給する。組合せ回路４２は、ＥＮ１２に対して論理演算を行い、出力をＦＦ２のイネーブル端子ＥＮに供給する。ＦＦ２は、組合せ回路４２の出力が１の時に、組合せ回路４１からのデータをＣＬＫ２に同期してラッチし、出力を他の回路部分に供給する。
【００２２】
図２は、図１のＳｏＣの回路の動作を示すタイムチャートを示す図である。図２では、ＣＬＫ０の変化エッジ（立ち上りエッジおよび立下りエッジ）に順番に１−１３の数字を付して時間ｔを表している。この場合、ＣＬＫ０の周期は２で表され、ＣＬＫ１の周期は６で表され、ＣＬＫ２の周期は４で表される。
【００２３】
クロック生成部２０では、ＣＮＴ１が２から０へのダウンカウントを繰り返し、ＣＮＴ２が１から０へのダウンカウントを繰り返す。原クロック信号ＣＬＫ０から３分周クロックＣＬＫ１、２分周クロックＣＬＫ２、およびＣＬＫ１とＣＬＫ２の位相が揃うとＣＬＫ０の１周期分１になり、それ以外は０である周期データ信号ＥＮ１２が生成される。
【００２４】
第１モジュール３０のＦＦ１は、クロック信号ＦＦ１．ＣＫとしてＣＬＫ１が供給され、イネーブル信号ＦＦ１．ＥＮとしてＥＮ１２が供給され、ＦＦ１．ＥＮが１の時に、ＣＬＫ１の立ち上りに同期してデータをラッチし、出力ＦＦ１．Ｑを変化させる。したがって、ＦＦ１．Ｑは、ｔ＝１およびｔ＝１３で変化する。
【００２５】
第２モジュール４０では、組合せ回路４１が、ＦＦ１．Ｑを受け、ＦＦ１．Ｑに論理演算を施した結果をＦＦ２に出力する。組合せ回路４２は、ＥＮ１２を受けて論理演算を行い、ＥＮ１２に類似の信号をイネーブル信号ＦＦ２．ＥＮとしてＦＦ４３に供給する。ＦＦ２は、クロック信号ＦＦ２．ＣＫとしてＣＬＫ２が供給され、ＦＦ２．ＥＮが１の時に、ＣＬＫ２の立ち上りに同期してデータをラッチする。したがって、ＦＦ２．Ｑは、ｔ＝１およびｔ＝１３で変化する。
【００２６】
ＦＦ１とＦＦ２３は、異なるクロック周期をもつクロックＣＬＫ１とＣＬＫ２に同期して動作している。ＦＦ１は、ＥＮ１２がＦＦ１．ＥＮに供給されているため、ＦＦ１．Ｑはｔ＝１およびｔ＝１３で変化する。同様に、ＦＦ２は、ＥＮ１２がＦＦ２．ＥＮに供給されており、ＦＦ２．Ｄはｔ＝１およびｔ＝１３のみで受け取ることが可能である。
【００２７】
図１に示す回路構成において、ＦＦ３１から組合せ回路４１を介してＦＦ４３へ接続されるパスは、ＣＬＫ１の周期（Ｔｐｄ（ＣＬＫ１）＝６およびＣＬＫ２の周期（Ｔｐｄ（ＣＬＫ２）＝４）よりも長い周期（ｔ＝１２）で動作している。したがって、ｔ＝１で変化したＦＦ１．Ｑは、組合せ回路４１の処理が終了してｔ＝１３までにＦＦ２．Ｄに到達すれば問題なく動作する。
【００２８】
このような、ＦＦ１およびＦＦ２の動作クロック周期に対して複数サイクルの動作を許容する回路構成のことをマルチサイクルパスと呼び、ここでは、マルチサイクルパスのデータを受けるＦＦ２をマルチサイクルパス回路と呼ぶ。
【００２９】
前述のように、図１のような回路構成におけるタイミング検証には一般的には静的タイミング検証（ＳＴＡ）が用いられる。ＳＴＡについては広く知られているので説明は省略する。
【００３０】
図３は、図１の回路を対象とした一般的なＳＴＡの処理を示すフローチャートである。
ＳＴＡにおいては、入力データとして、ネットリストとして、論理情報（回路情報）およびＳＤＦ（遅延値情報）を入力する。また、タイミング制約として、ＣＬＫ１およびＣＬＫ２の動作タイミング定義である動作波形（クロック周期）を入力する。
【００３１】
図４は、動作タイミング定義として動作波形（クロック周期）を定義した例を示す図である。
図４では、ＣＬＫ１が、周期（ｐｅｒｉｏｄ）が６で、動作波形として、立ち上りエッジがｔ＝１、立下りエッジがｔ＝３、次の立ち上りエッジがｔ＝７にあることを示す。また、ＣＬＫ２が、周期（ｐｅｒｉｏｄ）が４で、動作波形として、立ち上りエッジがｔ＝１、立下りエッジがｔ＝３、次の立ち上りエッジがｔ＝５にあることを示す。この定義は、図２の波形に対応している。
【００３２】
次に、入力したデータ（情報）に基づき、タイミング解析を行う際のセットアップ/ホールドタイミングチェックの一般的な手法を説明する。
ステップ１（ＳＴＥＰ１）では、ネットリストおよびタイミング制約に基づき、ＦＦ３１とＦＦ４３を含む回路を抽出する。
【００３３】
ステップ２では、回路動作時間の組み合わせをリストアップする。具体的には、ＣＬＫ１の波形情報とＣＬＫ２の波形情報の組み合わせから、ＣＬＫ１とＣＬＫ２の立ち上りエッジの時間差ＴｐｄがＣＬＫ生成パターンの組合せを全て抽出する。
【００３４】
図５は、２つのクロック信号の波形から得られる回路動作パターンの組合せ例を示す図である。ここでは、ＦＦがクロック信号の立ち上りエッジ(rise edge)に同期して動作するため、立ち上りエッジの組合せを抽出する。また、ＦＦ２は、ＦＦ１の出力を受けるため、ＣＬＫ１を開始点(Startpoint)、ＣＬＫ２を終了点(Endpoint)としている。
【００３５】
ステップ２では、さらに図５の組合せをタイミング解析時間（Ｔｐｄ）の短い順に並べ替える。
【００３６】
図６は、図５の組合せの並び替えを行った結果を示す図である。
ステップ３では、図６の組合せから、セットアップ解析時間（Ｔｐｄ（ｓｅｔｕｐ））およびホールド解析時間（Ｔｐｄ（ｈｏｌｄ））を決定する。具体的な方法としては、以下のルールで決定する。
【００３７】
（１）Ｔｐｄ＞０で最小サイクルをＴｐｄ（ｓｅｔｕｐ）とする。
（２）Ｔｐｄ＜Ｔｐｄ（ｓｅｔｕｐ）での最大サイクルをＴｐｄ（ｈｏｌｄ）とする。
【００３８】
図６の組合せでは、ＦＦ１．ＣＫのｔ＝７を開始点とし、ＦＦ２．ＣＫのｔ＝９を終了点とする組合せをＴｐｄ（ｓｅｔｕｐ）＝２とする。さらに、ＦＦ１．ＣＫのｔ＝１（１３）を開始点とし、ＦＦ２．ＣＫのｔ＝１（１３）を終了点とする組合せをＴｐｄ（ｈｏｌｄ）＝０とする。
【００３９】
ステップ４では、ＦＦ１のデータ出力がＦＦ２へ入力するまでの第１時間と、Ｔｐｄ（ｓｅｔｕｐ）と、ＦＦ２のセットアップ時間と、ＣＬＫ２と、に基づいて、ＦＦ２のセットアップ時間が基準を満たする否かを判定する。
【００４０】
ステップ５では、ＦＦ１のデータ出力がＦＦ２へ入力するまでの第１時間と、Ｔｐｄ（ｈｏｌｄ）と、ＦＦ２のホールド時間と、ＣＬＫ２と、に基づいて、ＦＦ２のホールド時間が基準を満たすか否かを判定する。
【００４１】
図７は、ステップ４および５におけるタイミングチェックの条件を示す図である。
図７に示した式で、左側の第１項はＣＬＫ０がＦＦ１．ＣＫに到達するまでの時間を、第２項はＦＦ１でＦＦ１．ＣＫが立ち上がってから出力ＦＦ１．Ｑが変化するまでの時間を、第３項はＦＦ１．Ｑが変化してからＦＦ２．Ｄに到達するまでの時間を、示す。右側の第１項はＣＬＫ０がＦＦ２．ＣＫに到達するまでの時間を示す。セットアップタイミングチェックの第２項は、上記のＴｐｄ（ｓｅｔｕｐ）であり、ホールドタイミングチェックの第２項は、上記のＴｐｄ（ｈｏｌｄ）である。セットアップタイミングチェックの第３項は、ＦＦ２でＦＦ２．ＣＫが立ち上がる前にデータが確定している時間（セットアップタイム）を示す。ホールドタイミングチェックの第３項は、ＦＦ２でＦＦ２．ＣＫが立ち上がってからデータが維持される時間（ホールドタイム）を示す。
【００４２】
図７の式の各時間を、図１の回路図で説明すると、以下のようになる。左側の第１項は、外部からのＣＬＫ０がＦＦ２２のクロック端子に到達する遅延時間、ＦＦ２２でクロックが立ち上がり出力が変化するまでの遅延時間、およびＦＦ２２の出力からＦＦ１．ＣＫまでの遅延時間の合計である。左側の第２項は、ＦＦ１でＦＦ１．ＣＫが立ち上がってから出力ＦＦ１．Ｑが変化するまでの遅延時間である。左側の第３項は、ＦＦ１．Ｑが変化してから、組合せ回路４１までの遅延時間、組合せ回路４１内部での処理時間、組合せ回路４１からＦＦ２．Ｄに到達するまでの遅延時間の合計である。右側の第１項は、外部からのＣＬＫ０がＦＦ２６のクロック端子に到達する遅延時間、ＦＦ２６でクロックが立ち上がり出力が変化するまでの遅延時間、およびＦＦ２６の出力からＦＦ２．ＣＫまでの遅延時間の合計である。右側の第２項および第３項は、上記の通りである。
【００４３】
以上説明したＳＴＡ手法は、一般的な論理回路には適用できるが、図１のような回路構成においては、実際の回路は遅延値１２を有していても動作可能であるのに対して、タイミング検証はＴｐｄ（ｓｅｔｕｐ）＝２のサイクルで実施されており、実際の回路動作よりも、より厳しい(悲観的な)条件でタイミング検証を行っていることになる。そのため、あまり効率的な解析ではない。
【００４４】
以上説明した通り、一般的なマルチサイクルパス回路、およびマルチサイクルパス回路のタイミング解析手法は、「実際の回路動作よりも、より厳しい(悲観的な)条件でタイミング検証を行っている」という状況にある。このような状況を回避するために、現在一般的に行われているマルチサイクルのタイミング解析手法を次に説明する。
【００４５】
このマルチサイクルのタイミング解析手法は、図３のタイミング解析フローと同じであるが、ステップ３におけるセットアップ解析時間（Ｔｄ（ｓｅｔｕｐ））およびホールド解析時間（Ｔｐｄ（ｈｏｌｄ））の決定方法が異なる。具体的には、設計者がマルチサイクル制約をＳＴＡ実行時に入力することで、所望の解析サイクルに設定する作業を行う点が異なる。
【００４６】
図８は、設計者が入力するマルチサイクル制約のコマンド例を示す図である。
図８に示した制約は、終了点(Endpoint)側（ＦＦ２側）のクロックを基準に、３サイクル分、セットアップの遅延値を延長してよい、ということを意味する。また、終了点(Endpoint)側（ＦＦ２側）のクロックを基準に、２サイクル分、ホールドの遅延値を延長してよい、との意味である。このようなコマンドはＥＤＡ(Electronic Design Automation)ツールでは、ＳＤＣ(Synopsys Design Constraints)などというコマンドで実装されることが多い。
【００４７】
図９は、２つのクロック信号の波形から得られる回路動作パターンの組合せをタイミング解析時間（Ｔｐｄ）の短い順に並べ替えた図６の表を利用してタイミング解析周期を決定する方法の例を示す図である。
【００４８】
この例では、設計者が図１の回路構成を理解した上で、図６のＴｄ（ｓｅｔｕｐ）＝２およびＴｄ（ｈｏｌｄ）＝０を、Ｔｄ（ｓｅｔｕｐ）＝１２およびＴｄ（ｈｏｌｄ）＝０に変更している。この値に従って、ステップ４および５として、図７の計算式に従いタイミングチェックを行う。
【００４９】
図１０は、設計者がマルチサイクルタイミング制約を設定する場合の図１の回路を対象としたＳＴＡの処理を示すフローチャートである。
【００５０】
上記のように、このマルチサイクルパスの検証手法によれば、入力データとして、ネットリスト（回路情報）およびＳＤＦ（遅延値情報）と共に、設計者自身が、マルチサイクルタイミング制約を入力する。マルチサイクルタイミング制約は、設計者が、「ＦＦ１からＦＦ２へのパスをマルチサイクルパス」とすることを回路構成や設計仕様から判断した上で、所望のタイミング解析周期（Ｔｐｄ（ｓｅｔｕｐ））およびＴｐｄ（ｈｏｌｄ））に設定する。ステップ１およびステップ２は、図３と同じである。
【００５１】
ステップ３では、並び替えた組合せから、マルチサイクルタイミング制約で設定された情報に従い、セットアップ解析時間（Ｔｐｄ（ｓｅｔｕｐ））およびホールド解析時間（Ｔｐｄ（ｈｏｌｄ））を設定する。
【００５２】
ステップ４およびステップ５は、図３と同じである。
この方法によれば、所望の部分に所望のタイミング解析周期を設定できるので、タイミング検証を実際の回路動作に応じた条件で行える。
【００５３】
しかし、ＳｏＣ１０が大規模化し複雑化している現状では、設計者自身の思い込みなどにより、マルチサイクルパスとして扱うことができない回路構成であるにもかかわらず、設計者が誤ってマルチサイクル制約を与えてしまう場合が発生する。このようなケースでは、タイミング解析は「設計者の思い込み」のタイミング制約に従ってタイミング解析をすることとなり、最終的にＳｏＣ製造後に動作不具合という形でタイミング制約のミスが発見されるケースが多い。これによりＳｏＣの再設計・製造費用やスケジュール遅延による機会損失が発生する。また、マルチサイクルパス回路を見落としてタイミング制約を設定しなかった場合には、その部分は必要以上に厳しい条件でタイミング解析が行われることになり、回路設計が進まないことになる。
【００５４】
このような背景から、設計者自身がマルチサイクルパスであることを回路構成や設計仕様から判断する現在の手法ではなく、設計者の思い込みによらずに、マルチサイクルパスのタイミング検証を正確に行える手法が望まれている。以下に説明する実施形態のシミュレーション装置では、正確なマルチサイクルパスのタイミング検証が自動的に行えるようになる。
【００５５】
図１１は、第１実施形態のシミュレーション装置を形成するコンピュータのハードウェア構成の例を示すブロック図である。このコンピュータは、ＣＡＤ（computer-aided design）により、ＲＴＬ設計データ及びネットリスト設計データを生成し、シミュレーションを行うことができる。
【００５６】
バス１０１には、中央処理装置（ＣＰＵ）１０２、ＲＯＭ１０３、ＲＡＭ１０４、ネットワークインターフェース１０５、入力装置１０６、出力装置１０７及び外部記憶装置１０８が接続されている。
【００５７】
ＣＰＵ１０２は、データの処理及び演算を行うと共に、バス１０１を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ１０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ１０２が実行することにより、コンピュータが起動する。外部記憶装置１０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ１０４にコピーされ、ＣＰＵ１０２により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述するシミュレーション及びマルチサイクル検証を行うことができる。
【００５８】
外部記憶装置１０８は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置１０８は、コンピュータプログラム、ＲＴＬ設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
【００５９】
ネットワークインターフェース１０５は、ネットワークに対してコンピュータプログラム及びＲＴＬ設計データ等を入出力することができる。入力装置１０６は、例えばキーボード及びポインティングデバイス（マウス）等であり、各種指定又は入力等を行うことができる。出力装置１０７は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
【００６０】
本実施形態のシミュレーション装置は、コンピュータがプログラムを実行することにより実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６１】
本実施形態のシミュレーション装置は、半導体装置の設計データを生成する設計データ生成手段と、設計データに基づいて、半導体装置の動作を静的タイミング解析によりシミュレーションするシミュレーション手段と、を有する。設計データ生成手段は、半導体装置の設計データに加えて、周期データ信号の動作周期および動作タイミングをタイミング制約として生成する。シミュレーション手段は、さらに周期データ信号の波形情報を半導体装置内に伝搬させて、半導体装置の動作を静的タイミング解析を行う。
【００６２】
図１２は、処理対象のマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。図１２に示した回路例は、図１に示した回路例と同じ構成を有する。図１２に示した回路例は、第１実施形態のシミュレーション装置の処理を説明するための回路例であり、第１実施形態のシミュレーション装置の処理対象は図１２の回路に限定されず、マルチサイクルパス回路を有する回路であれば処理対象となり得る。図１２の処理対象の回路例の説明は、図１で説明したので省略する。
【００６３】
第１実施形態のシミュレーション装置は、クロック生成部２０において生成されＳｏＣ１０の各部に供給される周期データ信号ＥＮ１２を検出し、周期データ信号の動作周期および動作タイミングを、周期データタイミング制約の定義を設計データに加える。そして、第１実施形態のシミュレーション装置は、設計データに基づいて、周期データ信号ＥＮ１２の波形情報をＳｏＣ１０内に伝搬させ、ＳｏＣ１０の回路の動作を静的タイミング解析によりシミュレーションする。
【００６４】
図１３は、周期データタイミング制約の定義例を示す図である。
図１３では、図２に示すように、周期データ信号ＥＮ１２が、周期１２を有し、１１−１３の間１（ｈｉｇｈ）になり、１−１１の間０（ｌｏｗ）になる信号であることを定義している。以下、このタイミング制約定義を行う場合を例として説明する。
【００６５】
これまで、静的タイミング解析（ＳＴＡ）では、原クロックを分周することにより発生される分周クロック信号を定義することは行われていた。しかし、ダウンカウンタ２１および２５の出力データを入力とするＡＮＤゲート２９のような、ＣＬＫ０、ＣＬＫ１およびＣＬＫ２の少なくとも１つから論理回路により生成した周期的に変化する周期データ信号について定義することは行われていなかった。
【００６６】
周期データ信号の検出および定義は、シミュレーション装置の設計データ生成手段が自動的に行うことが望ましい。しかし、設計者がクロック生成部２０の回路構成を理解した上で、周期データ信号を指示し、それに応じて、設計データ生成手段が定義を生成してもよい。いずれの場合も、クロック生成部２０という比較的小さな回路範囲で生成される周期データ信号を見つければよいので、周期データ信号を確実に定義できる。
【００６７】
図１４は、第１実施形態のシミュレーション装置における、図１２の回路を対象としたＳＴＡの処理を示すフローチャートである。
【００６８】
設計データ生成手段は、ネットリストとして、論理情報（回路情報）およびＳＤＦ（遅延値情報）を、タイミング制約として、ＣＬＫ１およびＣＬＫ２の動作タイミング定義である動作波形（クロック周期）を、生成する。さらに、設計データ生成手段は、タイミング制約として、図１３に示したような周期データタイミング制約定義を生成する。これらの情報は、入力データとしてシミュレーション手段に入力される。ネットリスト、ＣＬＫ１およびＣＬＫ２などの分周信号に関するタイミング制約およびそれらによるタイミング解析については、既に説明した通りであるので、説明は省略し、周期データタイミング制約について説明する。
【００６９】
ステップ１（ＳＴＥＰ１）では、ネットリストおよびタイミング制約に基づき、ＦＦ３１とＦＦ４３を含む回路を抽出する。
【００７０】
ステップ２では、回路動作時間の組み合わせをリストアップする。具体的には、ＣＬＫ１の波形情報とＣＬＫ２の波形情報の組み合わせから、ＣＬＫ１とＣＬＫ２の立ち上りエッジの時間差ＴｐｄがＣＬＫ生成パターンの組合せを全て抽出する。これにより、図５に示したような２つのクロック信号の波形から得られる回路動作パターンの組合せ例が得られる。ステップ２では、さらに図５の組合せをタイミング解析時間（Ｔｐｄ）の短い順に並べ替え、図６に示した並び替え結果を得る。
【００７１】
以上の通り、図１４のステップ１および２は、図３で説明した処理と同じである。
ステップ３では、図６の組合せから、セットアップ解析時間（Ｔｐｄ（ｓｅｔｕｐ））およびホールド解析時間（Ｔｐｄ（ｈｏｌｄ））を、前述のルールに基づいて決定するが、以下のような確認を行う。
【００７２】
Ｔｐｄ＞０でかつＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（２）がともに０でない最小サイクルをＴｐｄ（ｓｅｔｕｐ）とする。
Ｔｐｄ＜Ｔｐｄ（ｓｅｔｕｐ）でＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）が０でない最大のサイクルをＴｐｄ（ｈｏｌｄ）とする。
【００７３】
ここで、ＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）の値は、予め定義しておいた周期データ信号ＥＮ１２の動作周期および動作波形を回路内部に伝搬させてＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）が０となるかどうかを計算することにより求める。
【００７４】
図１５は、図１２の組合せ回路４２の回路例を示す図であり、（Ａ）がＡＮＤゲートでゲーティングする場合を、（Ｂ）がＯＲゲートでゲーティングする場合を、示す。
【００７５】
図１５の（Ａ）に示す構成では、組合せ回路４２は、他の論理回路４３からの出力とＥＮ１２を入力とする２入力ＡＮＤゲートを有する。２入力ＡＮＤゲートの出力は、ＦＦ２のイネーブル端子に供給される。図１５の（Ａ）に示す構成の場合、ＥＮ１２を伝搬させれば少なくともＥＮ１２＝０のときには、ＡＮＤゲートの性質によりＦＦ２．ＥＮ＝０に伝搬するためＦＦ２．ＥＮ＝０になり得る。
【００７６】
一方、図１５の（Ｂ）に示す構成では、組合せ回路４２は、他の論理回路４３からの出力とＥＮ１２を入力とする２入力ＯＲゲートを有する。２入力ＯＲゲートの出力は、ＦＦ２のイネーブル端子に供給される。図１５の（Ｂ）に示す構成の場合、ＥＮ１２＝０の信号は、いかなるサイクルにおいてもＦＦ２．ＥＮに伝搬しない。なぜならば、他方の論理が１になってしまうとＦＦ２．ＥＮ＝１となるからである。
【００７７】
このような伝播するか否かを判定しながら、周期データ信号ＥＮ１２の動作周期および動作波形を回路内部に伝搬させてＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）が０となるかどうかを計算する。このような計算方法で、各時間ｔにおけるＦＦ１．ＥＮ（ｔ）およびＦＦ２．ＥＮ（ｔ）の値を付加して、タイミング解析周期を決定する。
【００７８】
図１６は、図１２の回路で、周期データ信号ＥＮ１２の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【００７９】
図１６で、ＦＦ２．ＥＮ（ｔ）の“？”は、ＦＦ２．ＥＮ（ｔ）がその時点で１または０（Ｈｉｇｈ／Ｌｏｗ）に確定できないことを意味する。第１実施形態では、図１６の結果から、“？”のＦＦ２．ＥＮ（ｔ）は“１”であるとみなす。
【００８０】
（１）Ｔｐｄ＞０でかつＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）がともに０でない最小サイクルはＴｐｄ（ｓｅｔｕｐ）＝１２、および
（２）Ｔｐｄ＜Ｔｐｄ（ｓｅｔｕｐ）でＦＦ１．ＥＮ（ｔ）とＦＦ２．ＥＮ（ｔ）がともに０でない最大のサイクルはＴｐｄ（ｈｏｌｄ）＝０、であると決定される。
【００８１】
以上の結果に基づき、図１４のステップ４および５では、図７に示したタイミングチェックの条件に従い、セットアップ/ホールドタイミング解析を行うことで、静的タイミング解析（ＳＴＡ）を実行する。
【００８２】
前述のとおり、図８から図１０で説明した設計者がマルチサイクルパスであるか判定して定義を行う場合、設計者の思い込みにより、間違ったパスをマルチサイクルパスとして指定して、動作不具合を生じさせていた。
【００８３】
これに対して、第１実施形態の処理では、動作タイミングが明らかになっている信号のデータ信号の動作周期および動作波形情報（例ではＥＮ１２）を生成し、信号波形の伝搬を計算した上で、タイミング解析を行う周期（Ｔｐｄ（ｓｅｔｕｐ））および（Ｔｐｄ（ｈｏｌｄ））を決定している。そのため、より客観的に、設計者の思い込みによらず、かつ、実際の回路動作にあった動作サイクルで、マルチサイクルパスのタイミング検証が可能となる。
【００８４】
第１実施形態では、図１２に示した周期データ信号ＥＮ１２がＦＦ２のイネーブル端子に供給され、ＦＦ２が周期データ信号ＥＮ１２に応じて動作状態を変化させる回路が対象であった。しかし、このような回路に限定されず、周期データ信号ＥＮ１２に応じた周期で動作が規定される回路であれば、どのような回路も実施形態で説明した解析処理の対象となり得る。以下、実施形態で説明した解析処理の対象となり得る回路について説明する。
【００８５】
図１７は、第２実施形態のシミュレーション装置が処理対象とするマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【００８６】
図１７の回路例では、第１モジュール３０において、ＣＬＫ１のＦＦ１．ＣＫへの入力をゲーティングするクロックゲーティング（ＣＧ１）回路３１が設けられている。さらに、第２モジュール４０において、ＣＬＫ２のＦＦ２．ＣＫへの入力をゲーティングするクロックゲーティング（ＣＧ２）回路４５と、組合せ回路４４と、が設けられ、組合せ回路４２が除かれている。他の部分は、第１実施形態と同じである。第２実施形態においても、周期データ信号ＥＮ１２が同様に定義される。
【００８７】
図１７の回路例でも、第１実施形態のＦＦ１．ＥＮおよびＦＦ２．ＥＮをＣＧ１．ＥＮおよびＣＧ２．ＥＮと置き換えることで同様に扱うことができる。すなわち、第１実施形態では、図１６のＴｐｄ（ｓｅｔｕｐ）およびＴｐｄ（ｈｏｌｄ）を決めるのに、ＦＦ１．ＥＮおよびＦＦ２．ＥＮの値を評価していた。これに対して、第２実施形態では、ＣＧ１．ＥＮおよびＣＧ２．ＥＮの値を確認することにより行う。
【００８８】
図１８は、第２実施形態で、図１７の回路について、周期データ信号ＥＮ１２の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【００８９】
図１８の組合せから、Ｔｐｄ（ｓｅｔｕｐ）およびＴｐｄ（ｈｏｌｄ）を決定する。後は、第１実施形態と同じである。
【００９０】
図１９は、第３実施形態のシミュレーション装置が処理対象とするマルチサイクルパス回路を有するＳｏＣの回路例を示す図である。
【００９１】
図１９の回路例では、第１モジュール３０において、組合せ回路３２が設けられ、組合せ回路３２は、他の部分からのデータ信号とＥＮ１２を入力する２入力ＡＮＤゲートを有し、２入力ＡＮＤゲートの出力がＦＦ１．Ｄへ入力する。言い換えれば、ＦＦ１．Ｄへの入力が、ＥＮ１２でゲーティングされている。さらに、第２モジュール４０において、組合せ回路４６が設けられ、組合せ回路４６は、ＦＦ１からの出力とＥＮ１２を入力する２入力ＡＮＤゲートを有し、２入力ＡＮＤゲートの出力がＦＦ２．Ｄへ入力する。言い換えれば、ＦＦ２．Ｄへの入力が、ＥＮ１２でゲーティングされている。他の部分は、第１実施形態と同じである。第３実施形態においても、周期データ信号ＥＮ１２が同様に定義される。
【００９２】
図１９に示すように、図１２に示した組合せ回路４２にＡＮＤゲートが設けられ、その出力がＦＦ２．Ｄに入力されることにより、第１実施形態と同様な解析が可能になる。
【００９３】
図２０は、第３実施形態の解析が適用できる回路例を示す図であり、（Ａ）がＥＮ１２＝０で伝搬する例を、（Ｂ）がＥＮ１２＝１で伝搬する例を示す。
【００９４】
図２０の（Ａ）の例では、組合せ回路４６は、ＦＦ１からの出力を受ける他の論理回路４８と、他の論理回路４８の出力とＥＮ１２を入力する２入力ＡＮＤゲート（ＡＮＤ１）４７を有し、２入力ＡＮＤゲート４７の出力がＦＦ２．Ｄへ入力する。このように、ＥＮ１２が入力するゲートがＡＮＤゲートの場合、ＥＮ１２＝０のサイクルではＦＦ１．ＤＯの値はＦＦ２．ＤＩに伝搬せず、ＥＮ１２＝１のサイクルでのみ伝搬する。
【００９５】
また、図２０の（Ｂ）の例では、組合せ回路４６は、ＦＦ１からの出力を受ける他の論理回路５０と、他の論理回路５０の出力とＥＮ１２を入力する２入力ＯＲゲート４９を有し、２入力ＯＲゲート４９の出力がＦＦ２．Ｄへ入力する。このように、ＥＮ１２が入力するゲートがＯＲゲートの場合、ＥＮ１２＝１のサイクルではＦＦ１．ＤＯの値はＦＦ２．ＤＩに伝搬せず、ＥＮ１２＝０のサイクルでのみ伝搬する。第３実施形態では、この情報を用いて、全てのＥＮ１２の伝搬先で、ＡＮＤ１．Ｂ（ｔ）の値を確認することにより、Ｔｐｄ（ｓｅｔｕｐ）／Ｔｐｄ（ｈｏｌｄ）を求めることができる。
【００９６】
図２１は、第３実施形態で、図１９の回路について、周期データ信号ＥＮ１２の動作周期および動作波形を考慮して計算し、タイミング解析時間（Ｔｐｄ）の短い順に並べ替えた組合せを示す図である。
【００９７】
図２１の組合せから、Ｔｐｄ（ｓｅｔｕｐ）およびＴｐｄ（ｈｏｌｄ）を決定する。後は、第１実施形態と同じである。
【００９８】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００９９】
１    フリップフロップ（ＦＦ１）
２    フリップフロップ（ＦＦ２）
１０    ＳｏＣ（半導体装置）
２０    クロック生成部
２９    論理回路（ＡＮＤゲート）
３０    第１モジュール
４０    第２モジュール
４１−４６    組合せ回路
【図１】
2015219645.tif 000003
【図２】
2015219645.tif 000004
【図３】
2015219645.tif 000005
【図４】
2015219645.tif 000006
【図５】
2015219645.tif 000007
【図６】
2015219645.tif 000008
【図７】
2015219645.tif 000009
【図８】
2015219645.tif 000010
【図９】
2015219645.tif 000011
【図１０】
2015219645.tif 000012
【図１１】
2015219645.tif 000013
【図１２】
2015219645.tif 000014
【図１３】
2015219645.tif 000015
【図１４】
2015219645.tif 000016
【図１５】
2015219645.tif 000017
【図１６】
2015219645.tif 000018
【図１７】
2015219645.tif 000019
【図１８】
2015219645.tif 000020
【図１９】
2015219645.tif 000021
【図２０】
2015219645.tif 000022
【図２１】
2015219645.tif 000023