(57)【要約】【課題】アドレスのセットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロックのイベントに対して発生した場合に、アドレスのタイミング違反が発生しても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定する。【解決手段】イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置において、クロック信号にイベントが発生した場合、当該ランダムアクセスメモリのアドレス違反処理用レジスタに現状のアドレス情報を格納する。また、アドレスのタイミング違反を確認する。また、タイミング違反を確認した結果に基づき、タイミング違反時にアドレス違反処理用レジスタの値を不定値にする。また、タイミング違反レジスタの値に基づき、違反アドレスをチェックする。【選択図】図３
2012103771.tif 000002
【特許請求の範囲】
【請求項１】
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段と
を具備する
タイミング検証装置。
【請求項２】
請求項１に記載のタイミング検証装置であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にするタイミング違反レジスタ不定更新手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込む該当アドレス不定書込み手段と
を更に具備する
タイミング検証装置。
【請求項３】
請求項１又は２に記載のタイミング検証装置であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行う論理動作定義手段と
を更に具備する
タイミング検証装置。
【請求項４】
計算機により実施されるタイミング検証方法であって、
イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出することと、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納することと、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認することと、
イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認することと
を含む
タイミング検証方法。
【請求項５】
請求項４に記載のタイミング検証方法であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込むことと
を更に含む
タイミング検証方法。
【請求項６】
請求項４又は５に記載のタイミング検証方法であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行うことと
を更に含む
タイミング検証方法。
【請求項７】
請求項４乃至６のいずれか一項に記載のタイミング検証方法を、計算機に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイミング検証装置に関し、特にイベントドリブン方式の論理シミュレーションにおけるタイミング検証を行うタイミング検証装置に関する。
【背景技術】
【０００２】
半導体装置における内部回路の論理回路設計時に、その論理動作及びタイミング検証のツールとして論理シミュレーション装置が用いられている。この論理動作を検証するための論理シミュレーション装置における一方式として、イベントドリブン方式と呼ばれるものがある。
【０００３】
イベントドリブン方式の論理シミュレーションにおいて、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＲＡＭ）では、アドレスのタイミング違反が発生した場合に、全てのメモリ領域を不定にして後段回路に不定値“Ｘ”を伝播させ、タイミング違反後に後段回路の動作ができないようにすることで、論理動作の保証をしている。
【０００４】
近年、論理シミュレーションを行う回路規模が大きくなり、論理シミュレーションに要する時間も増加の一途を辿っている。そこで、アドレスのタイミング違反が発生した際にもタイミング違反のないメモリ領域で検証できる手法が望まれている。
【０００５】
関連する技術として、特許文献１（特開２００１−０６７３８５号公報）では、半導体装置に内蔵されたランダムアクセスメモリのタイミング検証方法が開示されている。この関連技術では、アドレス信号とクロック信号間のタイミング違反発生時に、不定値“Ｘ”を書込むというタイミング違反処理を全アドレスに実行することなく、違反対象アドレスにのみ違反処理を実行することで、シミュレーション時間短縮及びシミュレーション回数の減少による回路検証時間の短縮を図る。
【０００６】
図１は、上記のタイミング検証方法における処理のフローチャートを示す。図２は、図１の第２ステップＡ２のタイミングチェック処理の詳細なフローチャートを示す。図２を参照して、上記のタイミング検証方法について説明する。
【０００７】
上記のタイミング検証方法では、ステップＡ２０６に示すように、ＲＡＭブロックの入力端子がタイミングチェック対象端子であれば、クロック信号の変化イベント発生に合わせて仮想イベントをスケジュールする。
【０００８】
また、ステップＡ２０７に示すように、端子毎に異なった時刻に変化するアドレス端子の変化イベント発生とクロック信号の変化イベント発生との時間差を算出する。
【０００９】
また、ステップＡ２１０に示すように、算出した時間差と予め定めたタイミングスペックとを比較し、比較結果の値がタイミングスペックよりも小さければ、タイミング違反と判定し、違反アドレス端子として記憶する。
【００１０】
また、ステップＡ２１１に示すように、仮想イベントが発生した際のアドレス信号と記憶した違反アドレス端子からタイミング違反に関わったタイミングチェック対象端子の対象アドレスを求める。
【００１１】
また、ステップＡ２１２に示すように、対象アドレスにのみタイミング違反処理を行う。
【００１２】
しかし、上記の関連技術では、アドレスのセットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロックのイベントに対して発生した場合に、対象の違反アドレスを正しく判定できない問題がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００１−０６７３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
図２を参照して、対象の違反アドレスを正しく判定できない理由について説明する。
【００１５】
セットアップ（Ｓｅｔｕｐ）違反は、クロックの変化イベントで発生する。しかし、クロックの変化イベントで処理されるフローにはタイミング違反をチェックするステップが存在しておらず、タイミング違反の発生した違反端子を記憶（ステップＡ２１０）するステップはクロックの変化ではないイベントに限定（ステップＡ２０３）されている。
【００１６】
したがって、アドレスのセットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロックのイベントに対して発生した場合に、仮想イベントによってタイミング違反処理が行われる際に記憶された違反端子の情報には、セットアップ（Ｓｅｔｕｐ）違反の違反端子情報が含まれないため、対象の違反アドレスを正しく判定することができない。
【課題を解決するための手段】
【００１７】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段とを具備する。
【００１８】
本発明のタイミング検証方法では、イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出する。また、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納する。また、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認する。また、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認する。
【００１９】
本発明のプログラムは、上記のタイミング検証方法における処理を、計算機に実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【００２０】
アドレスのセットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロックのイベントに対して発生した場合に、アドレスのタイミング違反が発生しても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【図面の簡単な説明】
【００２１】
【図１】ランダムアクセスメモリのタイミング検証処理のフローチャートである。
【図２】上記のタイミング検証処理におけるタイミングチェック処理の詳細を示すフローチャートである。
【図３】本発明に係るシステムの構成例を示す概念図である。
【図４】本発明に係るランダムアクセスメモリの構成例を示すシンボル図である。
【図５】本発明に係るタイミング検証処理のフローチャートである。
【図６】本発明に係るランダムアクセスメモリのアドレス違反処理用レジスタにアドレス値を格納するイメージ図である。
【図７】本発明に係るタイミング検証時のタイミング違反チェック処理の詳細を示すフローチャートである。
【図８】本発明に係るアドレス違反処理の詳細を示すフローチャートである。
【図９】アドレスのタイミング違反が発生した場合のタイミングチャートである。
【図１０】上記のタイミングチャートの時刻Ｔ１でタイミング違反により不定値“Ｘ”が書込まれるアドレスを示す図である。
【図１１】上記のタイミングチャートの時刻Ｔ２でタイミング違反により不定値“Ｘ”が書込まれるアドレスを示す図である。
【発明を実施するための形態】
【００２２】
＜実施形態＞
以下に、本発明の実施形態について添付図面を参照して説明する。
図３に示すように、本発明に係るシステムは、論理シミュレーション装置１０と、ランダムアクセスメモリ（ＲＡＭ）２０と、タイミング検証装置３０を備える。
【００２３】
［論理シミュレーション装置］
論理シミュレーション装置１０は、ネットワークを介して、サーバに格納されている実行プログラムをダウンロードし、この実行プログラムに従って論理シミュレーションの実行処理を行う。なお、実際には、論理シミュレーション装置１０は、実行プログラムを予め保持していても良い。
【００２４】
ここでは、論理シミュレーション装置１０は、実行プログラムに従ってイベントドリブン方式の論理シミュレーションを行い、ランダムアクセスメモリ２０に対して各種の信号を入力し、ランダムアクセスメモリ２０から出力された信号を確認する。
【００２５】
［ランダムアクセスメモリ］
ランダムアクセスメモリ２０は、論理シミュレーションにおいて使用されるランダムアクセスメモリであり、論理シミュレーションの対象の半導体装置に内蔵されたランダムアクセスメモリに相当する。
【００２６】
ランダムアクセスメモリ２０は、論理シミュレーション装置１０に接続／内蔵された物理的なメモリでも良いし、論理シミュレーションの際に論理シミュレーション装置１０上に構築された仮想的なメモリでも良い。
【００２７】
［ランダムアクセスメモリの構成例］
図４は、本発明に係るランダムアクセスメモリの具体的な構成例を示すシンボル図である。
【００２８】
ランダムアクセスメモリ２０は、クロック信号ＣＬＫ、ライトイネーブル信号ＷＥ、データ入力信号ＤＩ、及びアドレス信号ＡＤＤ［３：０］を入力し、データ出力信号ＤＯを出力する。
【００２９】
また、ランダムアクセスメモリ２０は、内部にメモリ領域ＭＥＭ［１５：０］と、アドレス違反処理用レジスタｃｈｋＡ［３：０］を内蔵する。
【００３０】
アドレス信号ＡＤＤ［３：０］は、４ビットで構成されている。なお、アドレス信号ＡＤＤ［３：０］は、４ビットのうち、０ビット目をアドレス信号ＡＤＤ［０］、１ビット目をアドレス信号ＡＤＤ［１］、２ビット目をアドレス信号ＡＤＤ［２］、３ビット目をアドレス信号ＡＤＤ［３］とする。
【００３１】
アドレス違反処理用レジスタｃｈｋＡ［３：０］は、アドレス信号ＡＤＤ［３：０］と同様に４ビットで構成されている。なお、アドレス違反処理用レジスタｃｈｋＡ［３：０］は、アドレス信号ＡＤＤ［３：０］に対応して、４ビットのうち、０ビット目をアドレス違反処理用レジスタｃｈｋＡ［０］、１ビット目をアドレス違反処理用レジスタｃｈｋＡ［１］、２ビット目をアドレス違反処理用レジスタｃｈｋＡ［２］、３ビット目をアドレス違反処理用レジスタｃｈｋＡ［３］とする。
【００３２】
［タイミング検証装置］
タイミング検証装置３０は、本発明に係るタイミング検証処理を実施するための装置である。
【００３３】
なお、実際には、タイミング検証装置３０は、論理シミュレーション装置１０と一体化していても良い。すなわち、論理シミュレーション装置１０とタイミング検証装置３０は、同一の装置でも良い。
【００３４】
タイミング検証装置３０は、イベント抽出部３１と、クロックイベント処理部３２と、タイミング違反レジスタ更新部３３と、論理動作定義部３４と、タイミング違反チェック部３５と、結果出力部３６を備える。
【００３５】
［タイミング検証処理］
図５に示すフローチャートを使用して、タイミング検証装置によるランダムアクセスメモリのタイミング検証処理について説明する。
【００３６】
（１）ステップＳ１
イベント抽出部３１は、ランダムアクセスメモリ２０に入力される信号のイベントを抽出する。
【００３７】
（２）ステップＳ２
クロックイベント処理部３２は、クロック信号ＣＬＫにイベントが発生すると、タイミングチェックを行う。クロックイベント処理部３２は、タイミングチェックの結果、クロック信号ＣＬＫのイベントが“０”から“１”の変化である場合、タイミング違反レジスタ更新部３３に対して実行要求を行う。それ以外の場合、タイミング違反チェック部３５に対して実行要求を行う。
【００３８】
（３）ステップＳ３
タイミング違反レジスタ更新部３３は、アドレス違反処理用レジスタｃｈｋＡ［３：０］にアドレス信号ＡＤＤ［３：０］の値を格納する。
【００３９】
ここでは、図６で示すように、タイミング違反レジスタ更新部３３は、アドレス信号ＡＤＤ［０］の値をアドレス違反処理用レジスタｃｈｋＡ［０］に格納する。また、タイミング違反レジスタ更新部３３は、アドレス信号ＡＤＤ［１］の値をアドレス違反処理用レジスタｃｈｋＡ［１］に格納する。
【００４０】
（４）ステップＳ４
論理動作定義部３４は、ライトイネーブル信号ＷＥに応じて、論理動作を定義し実行する。
【００４１】
ここでは、論理動作定義部３４は、ライトイネーブル信号ＷＥが“１”の場合には、アドレス信号ＡＤＤ［３：０］にて示されるメモリ領域ＭＥＭ［１５：０］に、データ入力信号ＤＩの値を書込む。以降、この動作をライト（Ｗｒｉｔｅ）動作と定義する。
【００４２】
また、論理動作定義部３４は、ライトイネーブル信号ＷＥが“０”の場合には、アドレス信号ＡＤＤ［３：０］にて示されるアドレスに書込まれたデータの値を読み出して、当該データの値を示すデータ出力信号ＤＯを出力する。以降、この動作をリード（Ｒｅａｄ）動作と定義する。
【００４３】
（５）ステップＳ５
タイミング違反チェック部３５は、タイミング違反チェック処理を実施し、イベントが発生した信号に対して、タイミング違反の有無を確認する。
【００４４】
（６）ステップＳ６
結果出力部３６は、結果を出力する。
【００４５】
［タイミング違反チェック処理］
図７に示すフローチャートを参照して、タイミング違反チェック部によるタイミング違反チェック処理（ステップＳ５）の詳細について説明する。
【００４６】
（１）ステップＳ５１
タイミング違反チェック部３５は、アドレス信号以外の信号にイベントが発生した場合、アドレス信号以外の信号にタイミング違反がないか確認を行う。
【００４７】
（２）ステップＳ５２
タイミング違反チェック部３５は、タイミング違反がある場合には、アドレス信号以外の信号のタイミング違反処理を実施する。
【００４８】
（３）ステップＳ５３
タイミング違反チェック部３５は、アドレス信号ＡＤＤ［３：０］にイベントが発生した場合、アドレス信号ＡＤＤ［３：０］にタイミング違反がないか確認を行う。
【００４９】
（４）ステップＳ５４
タイミング違反チェック部３５は、アドレス信号ＡＤＤ［３：０］にタイミング違反がある場合には、アドレスのタイミング違反処理を実施する。アドレスのタイミング違反処理の詳細な説明については、後述する。
【００５０】
なお、タイミング違反チェック部３５は、クロック信号ＣＬＫにイベントが発生した場合にもチェックする。
【００５１】
［アドレスのタイミング違反処理］
図８に示すフローチャートを参照して、アドレスのタイミング違反処理（ステップＳ５４）の詳細について説明する。
【００５２】
ここでは、図３に示すように、タイミング違反チェック部３５は、タイミング違反レジスタ不定更新部３５１と、タイミング違反アドレスチェック部３５２と、該当アドレス不定書込み部３５３を備える。
【００５３】
（１）ステップＳ５４１
タイミング違反レジスタ不定更新部３５１は、アドレス信号ＡＤＤ［３：０］にタイミング違反が発生すると、タイミング違反となったアドレスに該当するアドレス違反処理用レジスタｃｈｋＡ［３：０］の値を不定値“Ｘ”に更新する。
【００５４】
（２）ステップＳ５４２
タイミング違反アドレスチェック部３５２は、アドレス違反処理用レジスタｃｈｋＡ［３：０］の何ｂｉｔ目に不定値“Ｘ”があるか、いくつ不定値“Ｘ”があるかをチェックする。すなわち、タイミング違反アドレスチェック部３５２は、アドレス違反処理用レジスタｃｈｋＡ［３：０］内における不定値“Ｘ”の位置及び個数をチェックする。
【００５５】
（３）ステップＳ５４３
該当アドレス不定書込み部３５３は、タイミング違反アドレスチェック部３５２でチェックした不定値“Ｘ”の情報に従って、アドレス違反処理用レジスタｃｈｋＡ［３：０］の不定値“Ｘ”の箇所を“０”、“１”に置換えたアドレス値で、メモリ領域ＭＥＭ［１５：０］に不定値“Ｘ”を書込む。例えば、該当アドレス不定書込み部３５３は、アドレス違反処理用レジスタｃｈｋＡ［３：０］に、ｎ個の不定値“Ｘ”があったとすると、２のｎ乗個のアドレスに不定値“Ｘ”を書込む。
【００５６】
［アドレス信号のタイミングチャート］
次に、図９のタイミングチャートを用いて、アドレス信号ＡＤＤ［３：０］のタイミング違反が発生した場合の動作について説明する。
【００５７】
図９において、アドレス信号ＡＤＤ［３：０］は、時刻Ｔ０で“０００１”から“００００”に変化し、時刻Ｔ２で“００００”から“０１００”と変化するとし、時刻Ｔ０−時刻Ｔ１間、及び時刻Ｔ１−時刻Ｔ２間は、アドレスのタイミング違反となるものとする。
【００５８】
時刻Ｔ０にて、アドレス信号ＡＤＤ［３：０］にイベントが発生すると、イベント抽出部３１は、アドレス信号ＡＤＤ［０］が“１”から“０”に変化したことを確認する（ステップＳ１）。
【００５９】
この時点では、アドレス信号のタイミング違反は発生しないため、タイミング違反チェック部３５は、アドレスのタイミング違反がないことを確認する（ステップＳ５３）。
【００６０】
その後、結果出力部３６は、結果を出力する（ステップＳ６）。
【００６１】
時刻Ｔ１にて、クロック信号ＣＬＫにイベントが発生すると、イベント抽出部３１は、クロック信号ＣＬＫに変化があったことを確認する（ステップＳ１）。
【００６２】
クロックイベント処理部３２は、クロック信号ＣＬＫが“０”から“１”に変化したことを確認すると、タイミング違反レジスタ更新部３３に対して実行要求を行う（ステップＳ２）。
【００６３】
タイミング違反レジスタ更新部３３は、アドレス違反処理用レジスタｃｈｋＡ［３：０］にアドレス信号ＡＤＤ［３：０］の値である“００００”を格納する（ステップＳ３）。
【００６４】
論理動作定義部３４は、ライト動作、若しくはリード動作を実行する（ステップＳ４）。
【００６５】
時刻Ｔ０−時刻Ｔ１間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部３５は、時刻Ｔ０でイベントが発生したアドレス信号ＡＤＤ［０］が違反であると判断し（ステップＳ５３）、アドレスのタイミング違反処理を実施する（ステップＳ５４）。
【００６６】
時刻Ｔ１では、タイミング違反レジスタ不定更新部３５１は、アドレス信号ＡＤＤ［０］が違反であると判断されるため、アドレス違反処理用レジスタｃｈｋＡ［０］を不定値“Ｘ”に更新する（ステップＳ５４１）。
【００６７】
時刻Ｔ１では、タイミング違反アドレスチェック部３５２は、アドレス違反処理用レジスタｃｈｋＡ［３：０］の０ｂｉｔ目に不定値“Ｘ”が１個あると判断する（ステップＳ５４２）。
【００６８】
時刻Ｔ１では、該当アドレス不定書込み部３５３は、不定値“Ｘ”がアドレス違反処理用レジスタｃｈｋＡ［０］に１個あるため、アドレス違反処理用レジスタｃｈｋＡ［０］を“０”、“１”に置換えたアドレス値でメモリ領域ＭＥＭ［１５：０］に不定値“Ｘ”を書込む（ステップＳ５４３）。
【００６９】
ここでは、図１０に示すように、不定値“Ｘ”が書込まれるアドレスは、時刻Ｔ１でタイミング違反により不定値“Ｘ”が書込まれるアドレスとなる。
【００７０】
その後、結果出力部３６は、結果を出力する（ステップＳ６）。
【００７１】
次に、時刻Ｔ２にて、アドレス信号ＡＤＤ［３：０］にイベントが発生すると、イベント抽出部３１は、アドレス信号のＡＤＤ［２］が“０”から“１”に変化したことを確認する（ステップＳ１）。
【００７２】
イベントは、アドレス信号ＡＤＤ［３：０］であるため、タイミング違反チェック部３５は、タイミング違反チェック処理を実施する（ステップＳ５）。
【００７３】
時刻Ｔ１−時刻Ｔ２間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部３５は、時刻Ｔ２でイベントが発生したアドレス信号ＡＤＤ［２］が違反であると判断し（ステップＳ５３）、アドレスのタイミング違反処理を実施する（ステップＳ５４）。
【００７４】
時刻Ｔ２では、タイミング違反レジスタ不定更新部３５１は、アドレス信号のＡＤＤ［２］が違反であると判断し、アドレス違反処理用レジスタｃｈｋＡ［２］を不定値“Ｘ”に更新する（ステップＳ５４１）。
【００７５】
これにより、アドレス違反処理用レジスタｃｈｋＡ［３：０］は、“０Ｘ０Ｘ”となる。
【００７６】
時刻Ｔ２では、タイミング違反アドレスチェック部３５２は、アドレス違反処理用レジスタｃｈｋＡ［０］とアドレス違反処理用レジスタｃｈｋＡ［２］の２箇所に不定値“Ｘ”があると判断する（ステップＳ５４２）。
【００７７】
該当アドレス不定書込み部３５３は、タイミング違反アドレスチェック部３５２でチェックした不定値“Ｘ”の情報に従って、アドレス違反処理用レジスタｃｈｋＡ［０］とアドレス違反処理用レジスタｃｈｋＡ［２］を“０”、“１”に置換えたアドレス値でメモリ領域ＭＥＭ［１５：０］に不定値“Ｘ”を書込む（ステップＳ５４３）。
【００７８】
該当アドレス不定書込み部３５３は、図１１に示すように、時刻Ｔ２でタイミング違反により不定値“Ｘ”が書込まれるアドレス４箇所のメモリ領域ＭＥＭ［１５：０］に不定値“Ｘ”を書込む。
【００７９】
その後、結果出力部３６は、結果を出力する（ステップＳ６）。
【００８０】
［まとめ］
以上のように、本発明では、セットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロック信号のイベントに対して発生した場合に、対象となる違反アドレスに対して不定値“Ｘ”を書込むことが可能である。
【００８１】
その理由は、アドレス違反処理用レジスタｃｈｋＡ［３：０］にクロック信号のイベントが発生した時のアドレス信号の情報を格納し、タイミング違反が発生すると、アドレス違反処理用レジスタｃｈｋＡ［３：０］の値を不定値“Ｘ”に更新し、アドレス違反処理用レジスタｃｈｋＡ［３：０］の不定値“Ｘ”の情報を用いることにより、タイミング違反が発生したアドレスで想定されるアドレスにのみ不定を書きこむことが可能であるためである。
【００８２】
また、本発明では、違反の発生していないメモリ領域のアドレスを対象にして後段の回路の論理検証が可能となる。
【００８３】
その理由は、アドレスのタイミング違反が発生した場合に不定値“Ｘ”が書込まれるのは、タイミング違反が発生したアドレスで想定されるアドレスに限定されるためである。
【００８４】
また、本発明では、論理シミュレーション実行回数が削減され、回路検証時間の短縮が可能となる。
【００８５】
その理由は、アドレスのタイミング違反が発生した場合にも違反の発生していないメモリ領域のアドレスを対象として後段の回路の論理検証が可能であるからである。
【００８６】
［ハードウェアの例示］
論理シミュレーション装置１０やタイミング検証装置３０の例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、シンクライアント端末／サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、論理シミュレーション装置１０やタイミング検証装置３０は、物理マシン上に構築された仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））でも良い。
【００８７】
また、イベント抽出部３１、クロックイベント処理部３２、タイミング違反レジスタ更新部３３、論理動作定義部３４、タイミング違反チェック部３５、及び結果出力部３６は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリとによって実現される。
【００８８】
上記のプロセッサの例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。
【００８９】
上記のメモリの例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。
【００９０】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の１チップ化が進んでいる。したがって、タイミング検証装置３０に搭載される１チップマイコンが、プロセッサ及びメモリを備えている事例が考えられる。
【００９１】
更に、結果出力部３６のハードウェアの例として、外部の表示装置や記憶装置に情報を出力するためのインターフェース（Ｉ／Ｆ：ｉｎｔｅｒｆａｃｅ）が考えられる。出力先の例として、計算機やストレージ装置を始め、ＬＣＤ（液晶ディスプレイ）やＰＤＰ（プラズマディスプレイ）、有機ＥＬディスプレイ（ｏｒｇａｎｉｃ  ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ  ｄｉｓｐｌａｙ）等の表示装置、出力内容を用紙等に印刷するプリンタ等の印刷装置、又は、出力内容を壁やスクリーンに投影するプロジェクタ等の映写装置等が考えられる。
【００９２】
但し、実際には、これらの例に限定されない。
【００９３】
＜本発明の特徴＞
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証方法において、アドレスのタイミング違反があった場合、従来は、全アドレスに不定書込み（Ｗｒｉｔｅ）していたが、本発明では、違反のあったアドレスのみの違反にすることで、違反のないアドレス空間のＣｅｌｌデータの読出しを可能とする。
【００９４】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置であって、クロック信号にイベントが発生した場合、アドレス違反処理用レジスタに現状のアドレス情報を格納するタイミング違反レジスタ更新手段と、前記アドレスのタイミング違反を確認するタイミング違反チェック手段と、前記タイミング違反チェック手段の結果に基づき、タイミング違反時にアドレス違反処理用レジスタのアドレス値を不定にするタイミング違反レジスタ不定更新手段と、タイミング違反レジスタ不定更新手段の結果に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段とを備える。
【００９５】
これにより、アドレスのセットアップ（Ｓｅｔｕｐ）違反とホールド（Ｈｏｌｄ）違反が同じクロックのイベントに対して発生した状況で、アドレスのタイミング違反が発生した場合においても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【００９６】
また、タイミング違反アドレスチェック手段によるチェック結果に基づき、該当する違反アドレスのメモリ領域に不定データ書込みを行う該当アドレス不定書込み手段を備える。
【００９７】
これにより、タイミング違反が発生したアドレスで想定されるメモリ領域のアドレスにのみ不定書込みを行うことが可能となる。
【００９８】
更に、タイミング違反の発生していないメモリ領域のアドレスを対象にして後段回路の論理検証が可能となる。
【００９９】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【０１００】
１０…  論理シミュレーション装置
２０…  ランダムアクセスメモリ（ＲＡＭ）
３０…  タイミング検証装置
３１…  イベント抽出部
３２…  クロックイベント処理部
３３…  タイミング違反レジスタ更新部
３４…  論理動作定義部
３５…  タイミング違反チェック部
３５１…  タイミング違反レジスタ不定更新部
３５２…  タイミング違反アドレスチェック部
３５３…  該当アドレス不定書込み部
３６…  結果出力部
【図１】
2012103771.tif 000003
【図２】
2012103771.tif 000004
【図３】
2012103771.tif 000005
【図４】
2012103771.tif 000006
【図５】
2012103771.tif 000007
【図６】
2012103771.tif 000008
【図７】
2012103771.tif 000009
【図８】
2012103771.tif 000010
【図９】
2012103771.tif 000011
【図１０】
2012103771.tif 000012
【図１１】
2012103771.tif 000013