(57)【要約】【課題】膨大な容量の記憶領域を必要としない論理シミュレーションシステムを実現する。【解決手段】論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおいて、前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を格納する。前記監視した前記論理回路の状態を保持する。前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する。【選択図】図１
2010218229.tif 000002
【特許請求の範囲】
【請求項１】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおいて、
前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視手段と、
前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段と、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索手段と、
を備えることを特徴とする論理シミュレーションシステム。
【請求項２】
請求項１に記載の論理シミュレーションシステムにおいて、
前記論理回路状態探索手段は、前記第１の状態から前記第２の状態に向かっての状態遷移の探索である「後方探索」に加え、前記第２の状態から前記第１の状態に向かっての状態遷移の探索である「前方探索」を行い、
前記後方探索と前記前方探索は交互に行われることを特徴とする論理シミュレーションシステム。
【請求項３】
請求項１又は２に記載の論理シミュレーションシステムにおいて、前記状態探索は、有界モデル検査による状態探索であることを特徴とする論理シミュレーションシステム。
【請求項４】
請求項１乃至３の何れか１項に記載の論理シミュレーションシステムにおいて、前記論理回路状態監視手段における前記格納は、毎クロック行われるのではなく、間隔を空けて行われることを特徴とする論理シミュレーションシステム。
【請求項５】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索回路において、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作することを特徴とする論理回路状態探索回路。
【請求項６】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーション方法において、
前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視ステップと、
前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段を用意するステップと、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索ステップと、
を備えることを特徴とする論理シミュレーション方法。
【請求項７】
請求項６に記載の論理シミュレーション方法において、
前記論理回路状態探索ステップにおいて、前記第１の状態から前記第２の状態に向かっての状態遷移の探索である「後方探索」に加え、前記第２の状態から前記第１の状態に向かっての状態遷移の探索である「前方探索」を行い、
前記後方探索と前記前方探索は交互に行われることを特徴とする論理シミュレーション方法。
【請求項８】
請求項６又は７に記載の論理シミュレーション方法において、前記状態探索は、有界モデル検査による状態探索であることを特徴とする論理シミュレーション方法。
【請求項９】
請求項６乃至８の何れか１項に記載の論理シミュレーション方法において、前記論理回路状態監視ステップにおける前記格納は、毎クロック行われるのではなく、間隔を空けて行われることを特徴とする論理シミュレーション方法。
【請求項１０】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索方法において、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索することを特徴とする論理回路状態探索方法。
【請求項１１】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける論理シミュレーションプログラムであって、
前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視手段と、
前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段と、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索手段と、
を備える論理シミュレーションシステムとしてコンピュータを機能させることを特徴とする論理シミュレーションプログラム。
【請求項１２】
請求項１１に記載の論理シミュレーションプログラムにおいて、
前記論理回路状態探索手段は、前記第１の状態から前記第２の状態に向かっての状態遷移の探索である「後方探索」に加え、前記第２の状態から前記第１の状態に向かっての状態遷移の探索である「前方探索」を行い、
前記後方探索と前記前方探索は交互に行われることを特徴とする論理シミュレーションプログラム。
【請求項１３】
請求項１１又は１２に記載の論理シミュレーションプログラムにおいて、前記状態探索は、有界モデル検査による状態探索であることを特徴とする論理シミュレーションプログラム。
【請求項１４】
請求項１１乃至１３の何れか１項に記載の論理シミュレーションプログラムにおいて、前記論理回路状態監視手段における前記格納は、毎クロック行われるのではなく、間隔を空けて行われることを特徴とする論理シミュレーションプログラム。
【請求項１５】
論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索プログラムにおいて、
前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作することを特徴とする論理回路状態探索回路としてコンピュータを機能させることを特徴とする論理回路状態探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の論理検証を行うシミュレーション技術に関する。
【背景技術】
【０００２】
論理回路の論理的動作の検証を行うために論理シミュレーションが利用されている。ここで、論理シミュレーションとは、論理回路に与えられた入力信号のパタンに応じて論理回路を模擬的に動作させ、意図した通りに動作するかどうかを検査するものである。そして論理シミュレーションの結果、意図したとおりに動作しない場合にはその原因の解析を行うことを目的とするものである。このような作業が容易に行えるように、論理シミュレーションを実施する論理シミュレータは、任意の信号の値を表示したり、論理回路の状態を記録したり、任意のタイミングでシミュレーションを一時停止させたりするといった機能を提供するものが多い。
【０００３】
例えば、特許文献１には、データ入力をクロックでサンプリングしてクロック毎にメモリに記憶する旨が記載されている。
【０００４】
また、特許文献２には、論理回路のシミュレーションを行い、シミュレーション時刻を戻す要求があった場合は、変化前の状態値に遡り変更する旨が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６３−２５７８４６号公報
【特許文献２】特開平０５−１５１３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献２の記載のように、論理シミュレーションによる検証や問題の原因解析を効率良く行うためには、任意のタイミングから過去の時刻に遡って動作を確認できることが望ましい。しかし、過去の時刻に遡った動作確認を可能とするためには、当然のことながら過去の任意の時刻における論理回路の状態を再現できる必要がある。過去の任意の時刻における論理回路の状態を再現するためには、過去の全ての時刻における論理回路の状態を記録しておけば良い。しかし実際には、全ての時刻における論理回路の状態の記録のために膨大な容量の記憶領域が必要となり、実現することは困難であるという問題があった。
【０００７】
そこで本発明は、膨大な容量の記憶領域を必要としない、論理シミュレーションシステム、論理シミュレーション方法及び論理シミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおいて、前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視手段と、前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段と、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索手段と、を備えることを特徴とする論理シミュレーションシステムが提供される。
【０００９】
本発明の第２の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索回路において、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作することを特徴とする論理回路状態探索回路が提供される。
【００１０】
本発明の第３の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーション方法において、前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視ステップと、前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段を用意するステップと、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索ステップと、を備えることを特徴とする論理シミュレーション方法が提供される。
【００１１】
本発明の第４の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索方法において、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索することを特徴とする論理回路状態探索方法が提供される。
【００１２】
本発明の第５の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける論理シミュレーションプログラムであって、前記論理回路が模擬的に動作している際の前記論理回路の状態の変化を監視し、当該監視した論理回路の状態を論理状態記憶手段に格納する論理回路状態監視手段と、前記論理回路状態監視手段が監視した前記論理回路の状態を保持する前記論理状態記憶手段と、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前に前記論理状態記憶手段に記録された前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作する論理回路状態探索手段と、を備える論理シミュレーションシステムとしてコンピュータを機能させることを特徴とする論理シミュレーションプログラムが提供される。
【００１３】
本発明の第６の観点によれば、論理回路に接続され、前記論理回路の論理検証を行う論理シミュレーションシステムにおける、論理回路状態探索プログラムにおいて、前記論理回路の模擬的な動作が一時停止された際に、該一時停止時の前記論理回路の状態である「第１の状態」から、該一時停止時の直前の前記論理回路の状態である「第２の状態」に向かって状態遷移を探索するように動作することを特徴とする論理回路状態探索回路としてコンピュータを機能させることを特徴とする論理回路状態探索プログラムが提供される。
【発明の効果】
【００１４】
本発明によれば、計算機の記憶領域が小規模である場合でも、論理シミュレーションにおいて一時停止した状態から過去の時刻に遡って動作の確認を行うことが可能となる。
【００１５】
その理由は、全ての時刻における論理回路の状態を記憶することなく、一部の時刻の論理回路状態を記憶するだけで任意の時刻における論理回路状態を再現することができ、小規模の記憶領域しか使用しないためである。
【図面の簡単な説明】
【００１６】
【図１】本発明の発明を実施するための最良の形態の構成を示すブロック図である。
【図２】本発明の発明を実施するための最良の形態の動作を示すフローチャートである。
【図３】発明の実施例における論理回路１００の具体例について示す図である。
【図４】発明の実施例における論理回路１００の状態遷移の具体例について示す図である。
【図５】発明の実施例における論理回路１００に対するシミュレーションパスの具体例について示す図である。
【図６】発明の実施例における論理回路１００に対する状態探索実施の具体例について示す図である。
【図７】発明の実施例における論理回路１００に対する状態探索実施の具体例について示す図である。
【図８】発明の実施例における論理回路１００に対する状態探索実施の具体例について示す図である。
【発明を実施するための形態】
【００１７】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【００１８】
本発明の実施形態は、論理回路１００及び論理シミュレーションシステム２００を有している。
【００１９】
ここで、論理回路１００は、論理シミュレーションシステム２００による論理的動作の検証の対象となる回路である。論理回路１００は、指示に従って模擬的に動作する。なお、この指示は、論理シミュレーションシステム２００が与えてもよいし、図示しない他の装置から与えてもよい。
【００２０】
また、論理シミュレーションシステム２００は、論理回路１００を模擬的に動作させ、意図した通りに動作するかどうかを検査するためのシステムである。
【００２１】
ここで、論理シミュレーションシステム２００は、論理回路状態監視部２１０、論理回路状態記録部２２０及び論理回路状態探索部２３０を有している。
【００２２】
論理回路状態監視部２１０は、論理回路１００の状態を監視する部分である。そして、論理回路状態監視部２１０は、監視した論理回路１００の状態を論理回路状態記録部２２０に記録する。
【００２３】
論理回路状態記録部２２０は、論理回路状態監視部２１０が、監視した論理回路１００の状態を記憶する部分である。
【００２４】
論理回路状態探索部２３０は、論理回路状態監視部２１０に記憶されている過去の論理回路１００の状態を用いて論理回路１００の状態遷移を探索する部分である。
【００２５】
次に、本発明の実施形態である論理シミュレーションシステム２００の概略を説明する。
【００２６】
論理シミュレーションシステム２００の、論理回路状態監視部２１０は、論理回路状態記録部２２０に、シミュレーションの実行中に適当なクロック間隔で論理回路状態を記録する。そして、論理回路状態探索部２３０は、シミュレーションが一時停止された状態から直前の記録された論理回路状態に向かって状態遷移を探索するように動作する。このように動作することによって、シミュレーションが一時停止された状態に至る過去の任意の状態を再現させることが可能となり、問題の原因解析が容易に可能となる。というものである。
【００２７】
次に、図面を用いて図２のフローチャートを参照して本発明の実施形態の動作について詳細に説明する。
【００２８】
今回は、図３に示すような論理回路１００に対して論理シミュレーションを行う場合を考える。なお、今回図３に示した論理回路１００は、あくまで例示であり他の構成をとる論理回路にも本実施形態を当然に適用可能である。
【００２９】
続いて、具体的動作について説明する。まず、論理回路１００がリセット状態から模擬的な動作（シミュレーション）を開始する（ステップＳ１０）。
【００３０】
次に、論理回路状態監視部２１０が論理回路１００の状態を監視し、適当なクロック間隔で論理回路状態を論理回路状態記録部２２０に記録する（ステップＳ１１）。
【００３１】
この動作をシミュレーションが一時停止するまで継続する（ステップＳ１２においてＮＯ）。
【００３２】
ここで、図４はこの論理回路のリセット状態から５クロック目までの状態をクロックサイクルごとに示したものである。
【００３３】
加えて、図５の太線矢印と網掛けの状態で示したパスは、入力信号が１クロック目から順番に「i=0, i=1, i=0, i=1, i=1」と入力された場合のシミュレーションパスを示したものである。
【００３４】
このシミュレーションにおいて、1クロック目の状態（図５の３０１）で状態が記録され、他の状態では記録されることがないまま、５クロック目の状態（図５の３０２）でシミュレーションを一時停止したとする（ステップＳ１２においてＹＥＳ）。
【００３５】
この場合は、論理回路状態探索部２３０が、シミュレーションが一時停止された状態から状態遷移を探索するように動作する（ステップＳ１３）。今回は、上述したように５クロック目で一時停止した状態から、過去に遡って状態を探索する場合について考える。なお、今回の説明では、５クロック目の状態から状態遷移状態遷移を探索するが、本実施形態は何クロック目からであっても状態遷移状態遷移を探索することが可能である。
【００３６】
ステップＳ１３における５クロック目の状態から過去に遡った状態探索は、５クロック目の状態から後方に向かった有界モデル検査による状態探索と、５クロック目の直前に記録した状態、すなわち１クロック目の状態から前方に向かった有界モデル検査による状態探索を交互に実施することによって行う。この過去に遡った状態探索について以下詳細に説明する。
【００３７】
まず、５クロック目の状態（図５の３０２）から過去に１クロック分の有界モデル検査による状態探索を実施すると、図６の４０２に示す状態遷移が算出される。次に、１クロック目の状態（図５の３０１）から前方に１クロック分の有界モデル検査による状態探索を実施すると、図６の４０１に示す状態遷移が算出される。
【００３８】
つぎに、５クロック目の状態から過去に１クロック分の状態遷移が算出された状態（図６の４０２）からさらに１クロック分の有界モデル検査による状態探索を実施すると、図７の５０２に示す状態遷移が算出される。同様に、１クロック目の状態から前方に１クロック分の状態遷移が算出された状態（図６の４０１）からさらに１クロック分の有界モデル検査による状態探索を実施すると、図７の５０１に示す状態遷移が算出される。ここで、５クロック目の状態からの後方探索と１クロック目の状態からの前方探索が重なりあうため、探索を停止し、５クロック目の状態からの後方探索で算出された状態遷移（図７の５０２）と１クロック目の状態からの前方探索で算出された状態遷移（図７の５０１）を結合し、双方を満たす状態遷移を算出すると、図８の太線矢印で示す状態遷移が算出される。
【００３９】
以上のようにして、一時停止した状態（図８の６０２）から１クロック目で記録された状態（図８の６０１）まで遡った状態の遷移が求められる。この状態遷移を解析することにより、一時停止した状態に至る原因の解析が可能となる。
【００４０】
以上説明した本発明の実施形態は、以下の効果を奏する。
【００４１】
本実施形態の効果は、計算機の記憶領域が小規模である場合でも、論理シミュレーションにおいて一時停止した状態から過去の時刻に遡って動作の確認が可能となることである。
【００４２】
その理由は、全ての時刻における論理回路の状態を記憶することなく、小規模の記憶領域に一部の時刻の論理回路状態を記憶するだけで任意の時刻における論理回路状態を再現することができ、小規模の記憶領域しか使用しないためである。
【００４３】
なお、本発明の実施形態である論理回路１００及び論理シミュレーションシステム２００は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【００４４】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【符号の説明】
【００４５】
１００  論理回路
２００  論理シミュレーションシステム
２１０  論理回路状態監視部
２２０  論理回路状態記録部
２３０  論理回路状態探索部２３０
３０１  本発明の実施形態における論理回路状態を記録された状態の具体例
３０２  本発明の実施形態におけるシミュレーション一時停止状態の具体例
４０１  本発明の実施形態における一時停止状態からの後方状態探索の具体例
４０２  本発明の実施形態における記録状態からの前方状態探索の具体例
５０１  本発明の実施形態における一時停止状態からの後方状態探索の具体例
５０２  本発明の実施形態における記録状態からの前方状態探索の具体例
６０１  本発明の実施形態における論理回路状態を記録された状態の具体例
６０２  本発明の実施形態におけるシミュレーション一時停止状態の具体例
【図１】
2010218229.tif 000003
【図２】
2010218229.tif 000004
【図３】
2010218229.tif 000005
【図４】
2010218229.tif 000006
【図５】
2010218229.tif 000007
【図６】
2010218229.tif 000008
【図７】
2010218229.tif 000009
【図８】
2010218229.tif 000010