タイミング検証装置、及びタイミング検証方法
【課題】アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、アドレスのタイミング違反が発生しても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定する。
【解決手段】イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置において、クロック信号にイベントが発生した場合、当該ランダムアクセスメモリのアドレス違反処理用レジスタに現状のアドレス情報を格納する。また、アドレスのタイミング違反を確認する。また、タイミング違反を確認した結果に基づき、タイミング違反時にアドレス違反処理用レジスタの値を不定値にする。また、タイミング違反レジスタの値に基づき、違反アドレスをチェックする。
【解決手段】イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置において、クロック信号にイベントが発生した場合、当該ランダムアクセスメモリのアドレス違反処理用レジスタに現状のアドレス情報を格納する。また、アドレスのタイミング違反を確認する。また、タイミング違反を確認した結果に基づき、タイミング違反時にアドレス違反処理用レジスタの値を不定値にする。また、タイミング違反レジスタの値に基づき、違反アドレスをチェックする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイミング検証装置に関し、特にイベントドリブン方式の論理シミュレーションにおけるタイミング検証を行うタイミング検証装置に関する。
【背景技術】
【0002】
半導体装置における内部回路の論理回路設計時に、その論理動作及びタイミング検証のツールとして論理シミュレーション装置が用いられている。この論理動作を検証するための論理シミュレーション装置における一方式として、イベントドリブン方式と呼ばれるものがある。
【0003】
イベントドリブン方式の論理シミュレーションにおいて、ランダムアクセスメモリ(Random Access Memory:RAM)では、アドレスのタイミング違反が発生した場合に、全てのメモリ領域を不定にして後段回路に不定値“X”を伝播させ、タイミング違反後に後段回路の動作ができないようにすることで、論理動作の保証をしている。
【0004】
近年、論理シミュレーションを行う回路規模が大きくなり、論理シミュレーションに要する時間も増加の一途を辿っている。そこで、アドレスのタイミング違反が発生した際にもタイミング違反のないメモリ領域で検証できる手法が望まれている。
【0005】
関連する技術として、特許文献1(特開2001−067385号公報)では、半導体装置に内蔵されたランダムアクセスメモリのタイミング検証方法が開示されている。この関連技術では、アドレス信号とクロック信号間のタイミング違反発生時に、不定値“X”を書込むというタイミング違反処理を全アドレスに実行することなく、違反対象アドレスにのみ違反処理を実行することで、シミュレーション時間短縮及びシミュレーション回数の減少による回路検証時間の短縮を図る。
【0006】
図1は、上記のタイミング検証方法における処理のフローチャートを示す。図2は、図1の第2ステップA2のタイミングチェック処理の詳細なフローチャートを示す。図2を参照して、上記のタイミング検証方法について説明する。
【0007】
上記のタイミング検証方法では、ステップA206に示すように、RAMブロックの入力端子がタイミングチェック対象端子であれば、クロック信号の変化イベント発生に合わせて仮想イベントをスケジュールする。
【0008】
また、ステップA207に示すように、端子毎に異なった時刻に変化するアドレス端子の変化イベント発生とクロック信号の変化イベント発生との時間差を算出する。
【0009】
また、ステップA210に示すように、算出した時間差と予め定めたタイミングスペックとを比較し、比較結果の値がタイミングスペックよりも小さければ、タイミング違反と判定し、違反アドレス端子として記憶する。
【0010】
また、ステップA211に示すように、仮想イベントが発生した際のアドレス信号と記憶した違反アドレス端子からタイミング違反に関わったタイミングチェック対象端子の対象アドレスを求める。
【0011】
また、ステップA212に示すように、対象アドレスにのみタイミング違反処理を行う。
【0012】
しかし、上記の関連技術では、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、対象の違反アドレスを正しく判定できない問題がある。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2001−067385号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
図2を参照して、対象の違反アドレスを正しく判定できない理由について説明する。
【0015】
セットアップ(Setup)違反は、クロックの変化イベントで発生する。しかし、クロックの変化イベントで処理されるフローにはタイミング違反をチェックするステップが存在しておらず、タイミング違反の発生した違反端子を記憶(ステップA210)するステップはクロックの変化ではないイベントに限定(ステップA203)されている。
【0016】
したがって、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、仮想イベントによってタイミング違反処理が行われる際に記憶された違反端子の情報には、セットアップ(Setup)違反の違反端子情報が含まれないため、対象の違反アドレスを正しく判定することができない。
【課題を解決するための手段】
【0017】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段とを具備する。
【0018】
本発明のタイミング検証方法では、イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出する。また、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納する。また、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認する。また、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認する。
【0019】
本発明のプログラムは、上記のタイミング検証方法における処理を、計算機に実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【0020】
アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、アドレスのタイミング違反が発生しても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【図面の簡単な説明】
【0021】
【図1】ランダムアクセスメモリのタイミング検証処理のフローチャートである。
【図2】上記のタイミング検証処理におけるタイミングチェック処理の詳細を示すフローチャートである。
【図3】本発明に係るシステムの構成例を示す概念図である。
【図4】本発明に係るランダムアクセスメモリの構成例を示すシンボル図である。
【図5】本発明に係るタイミング検証処理のフローチャートである。
【図6】本発明に係るランダムアクセスメモリのアドレス違反処理用レジスタにアドレス値を格納するイメージ図である。
【図7】本発明に係るタイミング検証時のタイミング違反チェック処理の詳細を示すフローチャートである。
【図8】本発明に係るアドレス違反処理の詳細を示すフローチャートである。
【図9】アドレスのタイミング違反が発生した場合のタイミングチャートである。
【図10】上記のタイミングチャートの時刻T1でタイミング違反により不定値“X”が書込まれるアドレスを示す図である。
【図11】上記のタイミングチャートの時刻T2でタイミング違反により不定値“X”が書込まれるアドレスを示す図である。
【発明を実施するための形態】
【0022】
<実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
図3に示すように、本発明に係るシステムは、論理シミュレーション装置10と、ランダムアクセスメモリ(RAM)20と、タイミング検証装置30を備える。
【0023】
[論理シミュレーション装置]
論理シミュレーション装置10は、ネットワークを介して、サーバに格納されている実行プログラムをダウンロードし、この実行プログラムに従って論理シミュレーションの実行処理を行う。なお、実際には、論理シミュレーション装置10は、実行プログラムを予め保持していても良い。
【0024】
ここでは、論理シミュレーション装置10は、実行プログラムに従ってイベントドリブン方式の論理シミュレーションを行い、ランダムアクセスメモリ20に対して各種の信号を入力し、ランダムアクセスメモリ20から出力された信号を確認する。
【0025】
[ランダムアクセスメモリ]
ランダムアクセスメモリ20は、論理シミュレーションにおいて使用されるランダムアクセスメモリであり、論理シミュレーションの対象の半導体装置に内蔵されたランダムアクセスメモリに相当する。
【0026】
ランダムアクセスメモリ20は、論理シミュレーション装置10に接続/内蔵された物理的なメモリでも良いし、論理シミュレーションの際に論理シミュレーション装置10上に構築された仮想的なメモリでも良い。
【0027】
[ランダムアクセスメモリの構成例]
図4は、本発明に係るランダムアクセスメモリの具体的な構成例を示すシンボル図である。
【0028】
ランダムアクセスメモリ20は、クロック信号CLK、ライトイネーブル信号WE、データ入力信号DI、及びアドレス信号ADD[3:0]を入力し、データ出力信号DOを出力する。
【0029】
また、ランダムアクセスメモリ20は、内部にメモリ領域MEM[15:0]と、アドレス違反処理用レジスタchkA[3:0]を内蔵する。
【0030】
アドレス信号ADD[3:0]は、4ビットで構成されている。なお、アドレス信号ADD[3:0]は、4ビットのうち、0ビット目をアドレス信号ADD[0]、1ビット目をアドレス信号ADD[1]、2ビット目をアドレス信号ADD[2]、3ビット目をアドレス信号ADD[3]とする。
【0031】
アドレス違反処理用レジスタchkA[3:0]は、アドレス信号ADD[3:0]と同様に4ビットで構成されている。なお、アドレス違反処理用レジスタchkA[3:0]は、アドレス信号ADD[3:0]に対応して、4ビットのうち、0ビット目をアドレス違反処理用レジスタchkA[0]、1ビット目をアドレス違反処理用レジスタchkA[1]、2ビット目をアドレス違反処理用レジスタchkA[2]、3ビット目をアドレス違反処理用レジスタchkA[3]とする。
【0032】
[タイミング検証装置]
タイミング検証装置30は、本発明に係るタイミング検証処理を実施するための装置である。
【0033】
なお、実際には、タイミング検証装置30は、論理シミュレーション装置10と一体化していても良い。すなわち、論理シミュレーション装置10とタイミング検証装置30は、同一の装置でも良い。
【0034】
タイミング検証装置30は、イベント抽出部31と、クロックイベント処理部32と、タイミング違反レジスタ更新部33と、論理動作定義部34と、タイミング違反チェック部35と、結果出力部36を備える。
【0035】
[タイミング検証処理]
図5に示すフローチャートを使用して、タイミング検証装置によるランダムアクセスメモリのタイミング検証処理について説明する。
【0036】
(1)ステップS1
イベント抽出部31は、ランダムアクセスメモリ20に入力される信号のイベントを抽出する。
【0037】
(2)ステップS2
クロックイベント処理部32は、クロック信号CLKにイベントが発生すると、タイミングチェックを行う。クロックイベント処理部32は、タイミングチェックの結果、クロック信号CLKのイベントが“0”から“1”の変化である場合、タイミング違反レジスタ更新部33に対して実行要求を行う。それ以外の場合、タイミング違反チェック部35に対して実行要求を行う。
【0038】
(3)ステップS3
タイミング違反レジスタ更新部33は、アドレス違反処理用レジスタchkA[3:0]にアドレス信号ADD[3:0]の値を格納する。
【0039】
ここでは、図6で示すように、タイミング違反レジスタ更新部33は、アドレス信号ADD[0]の値をアドレス違反処理用レジスタchkA[0]に格納する。また、タイミング違反レジスタ更新部33は、アドレス信号ADD[1]の値をアドレス違反処理用レジスタchkA[1]に格納する。
【0040】
(4)ステップS4
論理動作定義部34は、ライトイネーブル信号WEに応じて、論理動作を定義し実行する。
【0041】
ここでは、論理動作定義部34は、ライトイネーブル信号WEが“1”の場合には、アドレス信号ADD[3:0]にて示されるメモリ領域MEM[15:0]に、データ入力信号DIの値を書込む。以降、この動作をライト(Write)動作と定義する。
【0042】
また、論理動作定義部34は、ライトイネーブル信号WEが“0”の場合には、アドレス信号ADD[3:0]にて示されるアドレスに書込まれたデータの値を読み出して、当該データの値を示すデータ出力信号DOを出力する。以降、この動作をリード(Read)動作と定義する。
【0043】
(5)ステップS5
タイミング違反チェック部35は、タイミング違反チェック処理を実施し、イベントが発生した信号に対して、タイミング違反の有無を確認する。
【0044】
(6)ステップS6
結果出力部36は、結果を出力する。
【0045】
[タイミング違反チェック処理]
図7に示すフローチャートを参照して、タイミング違反チェック部によるタイミング違反チェック処理(ステップS5)の詳細について説明する。
【0046】
(1)ステップS51
タイミング違反チェック部35は、アドレス信号以外の信号にイベントが発生した場合、アドレス信号以外の信号にタイミング違反がないか確認を行う。
【0047】
(2)ステップS52
タイミング違反チェック部35は、タイミング違反がある場合には、アドレス信号以外の信号のタイミング違反処理を実施する。
【0048】
(3)ステップS53
タイミング違反チェック部35は、アドレス信号ADD[3:0]にイベントが発生した場合、アドレス信号ADD[3:0]にタイミング違反がないか確認を行う。
【0049】
(4)ステップS54
タイミング違反チェック部35は、アドレス信号ADD[3:0]にタイミング違反がある場合には、アドレスのタイミング違反処理を実施する。アドレスのタイミング違反処理の詳細な説明については、後述する。
【0050】
なお、タイミング違反チェック部35は、クロック信号CLKにイベントが発生した場合にもチェックする。
【0051】
[アドレスのタイミング違反処理]
図8に示すフローチャートを参照して、アドレスのタイミング違反処理(ステップS54)の詳細について説明する。
【0052】
ここでは、図3に示すように、タイミング違反チェック部35は、タイミング違反レジスタ不定更新部351と、タイミング違反アドレスチェック部352と、該当アドレス不定書込み部353を備える。
【0053】
(1)ステップS541
タイミング違反レジスタ不定更新部351は、アドレス信号ADD[3:0]にタイミング違反が発生すると、タイミング違反となったアドレスに該当するアドレス違反処理用レジスタchkA[3:0]の値を不定値“X”に更新する。
【0054】
(2)ステップS542
タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]の何bit目に不定値“X”があるか、いくつ不定値“X”があるかをチェックする。すなわち、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]内における不定値“X”の位置及び個数をチェックする。
【0055】
(3)ステップS543
該当アドレス不定書込み部353は、タイミング違反アドレスチェック部352でチェックした不定値“X”の情報に従って、アドレス違反処理用レジスタchkA[3:0]の不定値“X”の箇所を“0”、“1”に置換えたアドレス値で、メモリ領域MEM[15:0]に不定値“X”を書込む。例えば、該当アドレス不定書込み部353は、アドレス違反処理用レジスタchkA[3:0]に、n個の不定値“X”があったとすると、2のn乗個のアドレスに不定値“X”を書込む。
【0056】
[アドレス信号のタイミングチャート]
次に、図9のタイミングチャートを用いて、アドレス信号ADD[3:0]のタイミング違反が発生した場合の動作について説明する。
【0057】
図9において、アドレス信号ADD[3:0]は、時刻T0で“0001”から“0000”に変化し、時刻T2で“0000”から“0100”と変化するとし、時刻T0−時刻T1間、及び時刻T1−時刻T2間は、アドレスのタイミング違反となるものとする。
【0058】
時刻T0にて、アドレス信号ADD[3:0]にイベントが発生すると、イベント抽出部31は、アドレス信号ADD[0]が“1”から“0”に変化したことを確認する(ステップS1)。
【0059】
この時点では、アドレス信号のタイミング違反は発生しないため、タイミング違反チェック部35は、アドレスのタイミング違反がないことを確認する(ステップS53)。
【0060】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0061】
時刻T1にて、クロック信号CLKにイベントが発生すると、イベント抽出部31は、クロック信号CLKに変化があったことを確認する(ステップS1)。
【0062】
クロックイベント処理部32は、クロック信号CLKが“0”から“1”に変化したことを確認すると、タイミング違反レジスタ更新部33に対して実行要求を行う(ステップS2)。
【0063】
タイミング違反レジスタ更新部33は、アドレス違反処理用レジスタchkA[3:0]にアドレス信号ADD[3:0]の値である“0000”を格納する(ステップS3)。
【0064】
論理動作定義部34は、ライト動作、若しくはリード動作を実行する(ステップS4)。
【0065】
時刻T0−時刻T1間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部35は、時刻T0でイベントが発生したアドレス信号ADD[0]が違反であると判断し(ステップS53)、アドレスのタイミング違反処理を実施する(ステップS54)。
【0066】
時刻T1では、タイミング違反レジスタ不定更新部351は、アドレス信号ADD[0]が違反であると判断されるため、アドレス違反処理用レジスタchkA[0]を不定値“X”に更新する(ステップS541)。
【0067】
時刻T1では、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]の0bit目に不定値“X”が1個あると判断する(ステップS542)。
【0068】
時刻T1では、該当アドレス不定書込み部353は、不定値“X”がアドレス違反処理用レジスタchkA[0]に1個あるため、アドレス違反処理用レジスタchkA[0]を“0”、“1”に置換えたアドレス値でメモリ領域MEM[15:0]に不定値“X”を書込む(ステップS543)。
【0069】
ここでは、図10に示すように、不定値“X”が書込まれるアドレスは、時刻T1でタイミング違反により不定値“X”が書込まれるアドレスとなる。
【0070】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0071】
次に、時刻T2にて、アドレス信号ADD[3:0]にイベントが発生すると、イベント抽出部31は、アドレス信号のADD[2]が“0”から“1”に変化したことを確認する(ステップS1)。
【0072】
イベントは、アドレス信号ADD[3:0]であるため、タイミング違反チェック部35は、タイミング違反チェック処理を実施する(ステップS5)。
【0073】
時刻T1−時刻T2間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部35は、時刻T2でイベントが発生したアドレス信号ADD[2]が違反であると判断し(ステップS53)、アドレスのタイミング違反処理を実施する(ステップS54)。
【0074】
時刻T2では、タイミング違反レジスタ不定更新部351は、アドレス信号のADD[2]が違反であると判断し、アドレス違反処理用レジスタchkA[2]を不定値“X”に更新する(ステップS541)。
【0075】
これにより、アドレス違反処理用レジスタchkA[3:0]は、“0X0X”となる。
【0076】
時刻T2では、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[0]とアドレス違反処理用レジスタchkA[2]の2箇所に不定値“X”があると判断する(ステップS542)。
【0077】
該当アドレス不定書込み部353は、タイミング違反アドレスチェック部352でチェックした不定値“X”の情報に従って、アドレス違反処理用レジスタchkA[0]とアドレス違反処理用レジスタchkA[2]を“0”、“1”に置換えたアドレス値でメモリ領域MEM[15:0]に不定値“X”を書込む(ステップS543)。
【0078】
該当アドレス不定書込み部353は、図11に示すように、時刻T2でタイミング違反により不定値“X”が書込まれるアドレス4箇所のメモリ領域MEM[15:0]に不定値“X”を書込む。
【0079】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0080】
[まとめ]
以上のように、本発明では、セットアップ(Setup)違反とホールド(Hold)違反が同じクロック信号のイベントに対して発生した場合に、対象となる違反アドレスに対して不定値“X”を書込むことが可能である。
【0081】
その理由は、アドレス違反処理用レジスタchkA[3:0]にクロック信号のイベントが発生した時のアドレス信号の情報を格納し、タイミング違反が発生すると、アドレス違反処理用レジスタchkA[3:0]の値を不定値“X”に更新し、アドレス違反処理用レジスタchkA[3:0]の不定値“X”の情報を用いることにより、タイミング違反が発生したアドレスで想定されるアドレスにのみ不定を書きこむことが可能であるためである。
【0082】
また、本発明では、違反の発生していないメモリ領域のアドレスを対象にして後段の回路の論理検証が可能となる。
【0083】
その理由は、アドレスのタイミング違反が発生した場合に不定値“X”が書込まれるのは、タイミング違反が発生したアドレスで想定されるアドレスに限定されるためである。
【0084】
また、本発明では、論理シミュレーション実行回数が削減され、回路検証時間の短縮が可能となる。
【0085】
その理由は、アドレスのタイミング違反が発生した場合にも違反の発生していないメモリ領域のアドレスを対象として後段の回路の論理検証が可能であるからである。
【0086】
[ハードウェアの例示]
論理シミュレーション装置10やタイミング検証装置30の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、論理シミュレーション装置10やタイミング検証装置30は、物理マシン上に構築された仮想マシン(Virtual Machine(VM))でも良い。
【0087】
また、イベント抽出部31、クロックイベント処理部32、タイミング違反レジスタ更新部33、論理動作定義部34、タイミング違反チェック部35、及び結果出力部36は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリとによって実現される。
【0088】
上記のプロセッサの例として、CPU(Central Processing Unit)、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。
【0089】
上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。
【0090】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。したがって、タイミング検証装置30に搭載される1チップマイコンが、プロセッサ及びメモリを備えている事例が考えられる。
【0091】
更に、結果出力部36のハードウェアの例として、外部の表示装置や記憶装置に情報を出力するためのインターフェース(I/F:interface)が考えられる。出力先の例として、計算機やストレージ装置を始め、LCD(液晶ディスプレイ)やPDP(プラズマディスプレイ)、有機ELディスプレイ(organic electroluminescence display)等の表示装置、出力内容を用紙等に印刷するプリンタ等の印刷装置、又は、出力内容を壁やスクリーンに投影するプロジェクタ等の映写装置等が考えられる。
【0092】
但し、実際には、これらの例に限定されない。
【0093】
<本発明の特徴>
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証方法において、アドレスのタイミング違反があった場合、従来は、全アドレスに不定書込み(Write)していたが、本発明では、違反のあったアドレスのみの違反にすることで、違反のないアドレス空間のCellデータの読出しを可能とする。
【0094】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置であって、クロック信号にイベントが発生した場合、アドレス違反処理用レジスタに現状のアドレス情報を格納するタイミング違反レジスタ更新手段と、前記アドレスのタイミング違反を確認するタイミング違反チェック手段と、前記タイミング違反チェック手段の結果に基づき、タイミング違反時にアドレス違反処理用レジスタのアドレス値を不定にするタイミング違反レジスタ不定更新手段と、タイミング違反レジスタ不定更新手段の結果に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段とを備える。
【0095】
これにより、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した状況で、アドレスのタイミング違反が発生した場合においても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【0096】
また、タイミング違反アドレスチェック手段によるチェック結果に基づき、該当する違反アドレスのメモリ領域に不定データ書込みを行う該当アドレス不定書込み手段を備える。
【0097】
これにより、タイミング違反が発生したアドレスで想定されるメモリ領域のアドレスにのみ不定書込みを行うことが可能となる。
【0098】
更に、タイミング違反の発生していないメモリ領域のアドレスを対象にして後段回路の論理検証が可能となる。
【0099】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【0100】
10… 論理シミュレーション装置
20… ランダムアクセスメモリ(RAM)
30… タイミング検証装置
31… イベント抽出部
32… クロックイベント処理部
33… タイミング違反レジスタ更新部
34… 論理動作定義部
35… タイミング違反チェック部
351… タイミング違反レジスタ不定更新部
352… タイミング違反アドレスチェック部
353… 該当アドレス不定書込み部
36… 結果出力部
【技術分野】
【0001】
本発明は、タイミング検証装置に関し、特にイベントドリブン方式の論理シミュレーションにおけるタイミング検証を行うタイミング検証装置に関する。
【背景技術】
【0002】
半導体装置における内部回路の論理回路設計時に、その論理動作及びタイミング検証のツールとして論理シミュレーション装置が用いられている。この論理動作を検証するための論理シミュレーション装置における一方式として、イベントドリブン方式と呼ばれるものがある。
【0003】
イベントドリブン方式の論理シミュレーションにおいて、ランダムアクセスメモリ(Random Access Memory:RAM)では、アドレスのタイミング違反が発生した場合に、全てのメモリ領域を不定にして後段回路に不定値“X”を伝播させ、タイミング違反後に後段回路の動作ができないようにすることで、論理動作の保証をしている。
【0004】
近年、論理シミュレーションを行う回路規模が大きくなり、論理シミュレーションに要する時間も増加の一途を辿っている。そこで、アドレスのタイミング違反が発生した際にもタイミング違反のないメモリ領域で検証できる手法が望まれている。
【0005】
関連する技術として、特許文献1(特開2001−067385号公報)では、半導体装置に内蔵されたランダムアクセスメモリのタイミング検証方法が開示されている。この関連技術では、アドレス信号とクロック信号間のタイミング違反発生時に、不定値“X”を書込むというタイミング違反処理を全アドレスに実行することなく、違反対象アドレスにのみ違反処理を実行することで、シミュレーション時間短縮及びシミュレーション回数の減少による回路検証時間の短縮を図る。
【0006】
図1は、上記のタイミング検証方法における処理のフローチャートを示す。図2は、図1の第2ステップA2のタイミングチェック処理の詳細なフローチャートを示す。図2を参照して、上記のタイミング検証方法について説明する。
【0007】
上記のタイミング検証方法では、ステップA206に示すように、RAMブロックの入力端子がタイミングチェック対象端子であれば、クロック信号の変化イベント発生に合わせて仮想イベントをスケジュールする。
【0008】
また、ステップA207に示すように、端子毎に異なった時刻に変化するアドレス端子の変化イベント発生とクロック信号の変化イベント発生との時間差を算出する。
【0009】
また、ステップA210に示すように、算出した時間差と予め定めたタイミングスペックとを比較し、比較結果の値がタイミングスペックよりも小さければ、タイミング違反と判定し、違反アドレス端子として記憶する。
【0010】
また、ステップA211に示すように、仮想イベントが発生した際のアドレス信号と記憶した違反アドレス端子からタイミング違反に関わったタイミングチェック対象端子の対象アドレスを求める。
【0011】
また、ステップA212に示すように、対象アドレスにのみタイミング違反処理を行う。
【0012】
しかし、上記の関連技術では、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、対象の違反アドレスを正しく判定できない問題がある。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2001−067385号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
図2を参照して、対象の違反アドレスを正しく判定できない理由について説明する。
【0015】
セットアップ(Setup)違反は、クロックの変化イベントで発生する。しかし、クロックの変化イベントで処理されるフローにはタイミング違反をチェックするステップが存在しておらず、タイミング違反の発生した違反端子を記憶(ステップA210)するステップはクロックの変化ではないイベントに限定(ステップA203)されている。
【0016】
したがって、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、仮想イベントによってタイミング違反処理が行われる際に記憶された違反端子の情報には、セットアップ(Setup)違反の違反端子情報が含まれないため、対象の違反アドレスを正しく判定することができない。
【課題を解決するための手段】
【0017】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段とを具備する。
【0018】
本発明のタイミング検証方法では、イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出する。また、クロック信号にイベントが発生した場合、ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納する。また、イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認する。また、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認する。
【0019】
本発明のプログラムは、上記のタイミング検証方法における処理を、計算機に実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【0020】
アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した場合に、アドレスのタイミング違反が発生しても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【図面の簡単な説明】
【0021】
【図1】ランダムアクセスメモリのタイミング検証処理のフローチャートである。
【図2】上記のタイミング検証処理におけるタイミングチェック処理の詳細を示すフローチャートである。
【図3】本発明に係るシステムの構成例を示す概念図である。
【図4】本発明に係るランダムアクセスメモリの構成例を示すシンボル図である。
【図5】本発明に係るタイミング検証処理のフローチャートである。
【図6】本発明に係るランダムアクセスメモリのアドレス違反処理用レジスタにアドレス値を格納するイメージ図である。
【図7】本発明に係るタイミング検証時のタイミング違反チェック処理の詳細を示すフローチャートである。
【図8】本発明に係るアドレス違反処理の詳細を示すフローチャートである。
【図9】アドレスのタイミング違反が発生した場合のタイミングチャートである。
【図10】上記のタイミングチャートの時刻T1でタイミング違反により不定値“X”が書込まれるアドレスを示す図である。
【図11】上記のタイミングチャートの時刻T2でタイミング違反により不定値“X”が書込まれるアドレスを示す図である。
【発明を実施するための形態】
【0022】
<実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
図3に示すように、本発明に係るシステムは、論理シミュレーション装置10と、ランダムアクセスメモリ(RAM)20と、タイミング検証装置30を備える。
【0023】
[論理シミュレーション装置]
論理シミュレーション装置10は、ネットワークを介して、サーバに格納されている実行プログラムをダウンロードし、この実行プログラムに従って論理シミュレーションの実行処理を行う。なお、実際には、論理シミュレーション装置10は、実行プログラムを予め保持していても良い。
【0024】
ここでは、論理シミュレーション装置10は、実行プログラムに従ってイベントドリブン方式の論理シミュレーションを行い、ランダムアクセスメモリ20に対して各種の信号を入力し、ランダムアクセスメモリ20から出力された信号を確認する。
【0025】
[ランダムアクセスメモリ]
ランダムアクセスメモリ20は、論理シミュレーションにおいて使用されるランダムアクセスメモリであり、論理シミュレーションの対象の半導体装置に内蔵されたランダムアクセスメモリに相当する。
【0026】
ランダムアクセスメモリ20は、論理シミュレーション装置10に接続/内蔵された物理的なメモリでも良いし、論理シミュレーションの際に論理シミュレーション装置10上に構築された仮想的なメモリでも良い。
【0027】
[ランダムアクセスメモリの構成例]
図4は、本発明に係るランダムアクセスメモリの具体的な構成例を示すシンボル図である。
【0028】
ランダムアクセスメモリ20は、クロック信号CLK、ライトイネーブル信号WE、データ入力信号DI、及びアドレス信号ADD[3:0]を入力し、データ出力信号DOを出力する。
【0029】
また、ランダムアクセスメモリ20は、内部にメモリ領域MEM[15:0]と、アドレス違反処理用レジスタchkA[3:0]を内蔵する。
【0030】
アドレス信号ADD[3:0]は、4ビットで構成されている。なお、アドレス信号ADD[3:0]は、4ビットのうち、0ビット目をアドレス信号ADD[0]、1ビット目をアドレス信号ADD[1]、2ビット目をアドレス信号ADD[2]、3ビット目をアドレス信号ADD[3]とする。
【0031】
アドレス違反処理用レジスタchkA[3:0]は、アドレス信号ADD[3:0]と同様に4ビットで構成されている。なお、アドレス違反処理用レジスタchkA[3:0]は、アドレス信号ADD[3:0]に対応して、4ビットのうち、0ビット目をアドレス違反処理用レジスタchkA[0]、1ビット目をアドレス違反処理用レジスタchkA[1]、2ビット目をアドレス違反処理用レジスタchkA[2]、3ビット目をアドレス違反処理用レジスタchkA[3]とする。
【0032】
[タイミング検証装置]
タイミング検証装置30は、本発明に係るタイミング検証処理を実施するための装置である。
【0033】
なお、実際には、タイミング検証装置30は、論理シミュレーション装置10と一体化していても良い。すなわち、論理シミュレーション装置10とタイミング検証装置30は、同一の装置でも良い。
【0034】
タイミング検証装置30は、イベント抽出部31と、クロックイベント処理部32と、タイミング違反レジスタ更新部33と、論理動作定義部34と、タイミング違反チェック部35と、結果出力部36を備える。
【0035】
[タイミング検証処理]
図5に示すフローチャートを使用して、タイミング検証装置によるランダムアクセスメモリのタイミング検証処理について説明する。
【0036】
(1)ステップS1
イベント抽出部31は、ランダムアクセスメモリ20に入力される信号のイベントを抽出する。
【0037】
(2)ステップS2
クロックイベント処理部32は、クロック信号CLKにイベントが発生すると、タイミングチェックを行う。クロックイベント処理部32は、タイミングチェックの結果、クロック信号CLKのイベントが“0”から“1”の変化である場合、タイミング違反レジスタ更新部33に対して実行要求を行う。それ以外の場合、タイミング違反チェック部35に対して実行要求を行う。
【0038】
(3)ステップS3
タイミング違反レジスタ更新部33は、アドレス違反処理用レジスタchkA[3:0]にアドレス信号ADD[3:0]の値を格納する。
【0039】
ここでは、図6で示すように、タイミング違反レジスタ更新部33は、アドレス信号ADD[0]の値をアドレス違反処理用レジスタchkA[0]に格納する。また、タイミング違反レジスタ更新部33は、アドレス信号ADD[1]の値をアドレス違反処理用レジスタchkA[1]に格納する。
【0040】
(4)ステップS4
論理動作定義部34は、ライトイネーブル信号WEに応じて、論理動作を定義し実行する。
【0041】
ここでは、論理動作定義部34は、ライトイネーブル信号WEが“1”の場合には、アドレス信号ADD[3:0]にて示されるメモリ領域MEM[15:0]に、データ入力信号DIの値を書込む。以降、この動作をライト(Write)動作と定義する。
【0042】
また、論理動作定義部34は、ライトイネーブル信号WEが“0”の場合には、アドレス信号ADD[3:0]にて示されるアドレスに書込まれたデータの値を読み出して、当該データの値を示すデータ出力信号DOを出力する。以降、この動作をリード(Read)動作と定義する。
【0043】
(5)ステップS5
タイミング違反チェック部35は、タイミング違反チェック処理を実施し、イベントが発生した信号に対して、タイミング違反の有無を確認する。
【0044】
(6)ステップS6
結果出力部36は、結果を出力する。
【0045】
[タイミング違反チェック処理]
図7に示すフローチャートを参照して、タイミング違反チェック部によるタイミング違反チェック処理(ステップS5)の詳細について説明する。
【0046】
(1)ステップS51
タイミング違反チェック部35は、アドレス信号以外の信号にイベントが発生した場合、アドレス信号以外の信号にタイミング違反がないか確認を行う。
【0047】
(2)ステップS52
タイミング違反チェック部35は、タイミング違反がある場合には、アドレス信号以外の信号のタイミング違反処理を実施する。
【0048】
(3)ステップS53
タイミング違反チェック部35は、アドレス信号ADD[3:0]にイベントが発生した場合、アドレス信号ADD[3:0]にタイミング違反がないか確認を行う。
【0049】
(4)ステップS54
タイミング違反チェック部35は、アドレス信号ADD[3:0]にタイミング違反がある場合には、アドレスのタイミング違反処理を実施する。アドレスのタイミング違反処理の詳細な説明については、後述する。
【0050】
なお、タイミング違反チェック部35は、クロック信号CLKにイベントが発生した場合にもチェックする。
【0051】
[アドレスのタイミング違反処理]
図8に示すフローチャートを参照して、アドレスのタイミング違反処理(ステップS54)の詳細について説明する。
【0052】
ここでは、図3に示すように、タイミング違反チェック部35は、タイミング違反レジスタ不定更新部351と、タイミング違反アドレスチェック部352と、該当アドレス不定書込み部353を備える。
【0053】
(1)ステップS541
タイミング違反レジスタ不定更新部351は、アドレス信号ADD[3:0]にタイミング違反が発生すると、タイミング違反となったアドレスに該当するアドレス違反処理用レジスタchkA[3:0]の値を不定値“X”に更新する。
【0054】
(2)ステップS542
タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]の何bit目に不定値“X”があるか、いくつ不定値“X”があるかをチェックする。すなわち、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]内における不定値“X”の位置及び個数をチェックする。
【0055】
(3)ステップS543
該当アドレス不定書込み部353は、タイミング違反アドレスチェック部352でチェックした不定値“X”の情報に従って、アドレス違反処理用レジスタchkA[3:0]の不定値“X”の箇所を“0”、“1”に置換えたアドレス値で、メモリ領域MEM[15:0]に不定値“X”を書込む。例えば、該当アドレス不定書込み部353は、アドレス違反処理用レジスタchkA[3:0]に、n個の不定値“X”があったとすると、2のn乗個のアドレスに不定値“X”を書込む。
【0056】
[アドレス信号のタイミングチャート]
次に、図9のタイミングチャートを用いて、アドレス信号ADD[3:0]のタイミング違反が発生した場合の動作について説明する。
【0057】
図9において、アドレス信号ADD[3:0]は、時刻T0で“0001”から“0000”に変化し、時刻T2で“0000”から“0100”と変化するとし、時刻T0−時刻T1間、及び時刻T1−時刻T2間は、アドレスのタイミング違反となるものとする。
【0058】
時刻T0にて、アドレス信号ADD[3:0]にイベントが発生すると、イベント抽出部31は、アドレス信号ADD[0]が“1”から“0”に変化したことを確認する(ステップS1)。
【0059】
この時点では、アドレス信号のタイミング違反は発生しないため、タイミング違反チェック部35は、アドレスのタイミング違反がないことを確認する(ステップS53)。
【0060】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0061】
時刻T1にて、クロック信号CLKにイベントが発生すると、イベント抽出部31は、クロック信号CLKに変化があったことを確認する(ステップS1)。
【0062】
クロックイベント処理部32は、クロック信号CLKが“0”から“1”に変化したことを確認すると、タイミング違反レジスタ更新部33に対して実行要求を行う(ステップS2)。
【0063】
タイミング違反レジスタ更新部33は、アドレス違反処理用レジスタchkA[3:0]にアドレス信号ADD[3:0]の値である“0000”を格納する(ステップS3)。
【0064】
論理動作定義部34は、ライト動作、若しくはリード動作を実行する(ステップS4)。
【0065】
時刻T0−時刻T1間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部35は、時刻T0でイベントが発生したアドレス信号ADD[0]が違反であると判断し(ステップS53)、アドレスのタイミング違反処理を実施する(ステップS54)。
【0066】
時刻T1では、タイミング違反レジスタ不定更新部351は、アドレス信号ADD[0]が違反であると判断されるため、アドレス違反処理用レジスタchkA[0]を不定値“X”に更新する(ステップS541)。
【0067】
時刻T1では、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[3:0]の0bit目に不定値“X”が1個あると判断する(ステップS542)。
【0068】
時刻T1では、該当アドレス不定書込み部353は、不定値“X”がアドレス違反処理用レジスタchkA[0]に1個あるため、アドレス違反処理用レジスタchkA[0]を“0”、“1”に置換えたアドレス値でメモリ領域MEM[15:0]に不定値“X”を書込む(ステップS543)。
【0069】
ここでは、図10に示すように、不定値“X”が書込まれるアドレスは、時刻T1でタイミング違反により不定値“X”が書込まれるアドレスとなる。
【0070】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0071】
次に、時刻T2にて、アドレス信号ADD[3:0]にイベントが発生すると、イベント抽出部31は、アドレス信号のADD[2]が“0”から“1”に変化したことを確認する(ステップS1)。
【0072】
イベントは、アドレス信号ADD[3:0]であるため、タイミング違反チェック部35は、タイミング違反チェック処理を実施する(ステップS5)。
【0073】
時刻T1−時刻T2間は、アドレスのタイミング違反が発生するため、タイミング違反チェック部35は、時刻T2でイベントが発生したアドレス信号ADD[2]が違反であると判断し(ステップS53)、アドレスのタイミング違反処理を実施する(ステップS54)。
【0074】
時刻T2では、タイミング違反レジスタ不定更新部351は、アドレス信号のADD[2]が違反であると判断し、アドレス違反処理用レジスタchkA[2]を不定値“X”に更新する(ステップS541)。
【0075】
これにより、アドレス違反処理用レジスタchkA[3:0]は、“0X0X”となる。
【0076】
時刻T2では、タイミング違反アドレスチェック部352は、アドレス違反処理用レジスタchkA[0]とアドレス違反処理用レジスタchkA[2]の2箇所に不定値“X”があると判断する(ステップS542)。
【0077】
該当アドレス不定書込み部353は、タイミング違反アドレスチェック部352でチェックした不定値“X”の情報に従って、アドレス違反処理用レジスタchkA[0]とアドレス違反処理用レジスタchkA[2]を“0”、“1”に置換えたアドレス値でメモリ領域MEM[15:0]に不定値“X”を書込む(ステップS543)。
【0078】
該当アドレス不定書込み部353は、図11に示すように、時刻T2でタイミング違反により不定値“X”が書込まれるアドレス4箇所のメモリ領域MEM[15:0]に不定値“X”を書込む。
【0079】
その後、結果出力部36は、結果を出力する(ステップS6)。
【0080】
[まとめ]
以上のように、本発明では、セットアップ(Setup)違反とホールド(Hold)違反が同じクロック信号のイベントに対して発生した場合に、対象となる違反アドレスに対して不定値“X”を書込むことが可能である。
【0081】
その理由は、アドレス違反処理用レジスタchkA[3:0]にクロック信号のイベントが発生した時のアドレス信号の情報を格納し、タイミング違反が発生すると、アドレス違反処理用レジスタchkA[3:0]の値を不定値“X”に更新し、アドレス違反処理用レジスタchkA[3:0]の不定値“X”の情報を用いることにより、タイミング違反が発生したアドレスで想定されるアドレスにのみ不定を書きこむことが可能であるためである。
【0082】
また、本発明では、違反の発生していないメモリ領域のアドレスを対象にして後段の回路の論理検証が可能となる。
【0083】
その理由は、アドレスのタイミング違反が発生した場合に不定値“X”が書込まれるのは、タイミング違反が発生したアドレスで想定されるアドレスに限定されるためである。
【0084】
また、本発明では、論理シミュレーション実行回数が削減され、回路検証時間の短縮が可能となる。
【0085】
その理由は、アドレスのタイミング違反が発生した場合にも違反の発生していないメモリ領域のアドレスを対象として後段の回路の論理検証が可能であるからである。
【0086】
[ハードウェアの例示]
論理シミュレーション装置10やタイミング検証装置30の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、論理シミュレーション装置10やタイミング検証装置30は、物理マシン上に構築された仮想マシン(Virtual Machine(VM))でも良い。
【0087】
また、イベント抽出部31、クロックイベント処理部32、タイミング違反レジスタ更新部33、論理動作定義部34、タイミング違反チェック部35、及び結果出力部36は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリとによって実現される。
【0088】
上記のプロセッサの例として、CPU(Central Processing Unit)、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。
【0089】
上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。
【0090】
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。したがって、タイミング検証装置30に搭載される1チップマイコンが、プロセッサ及びメモリを備えている事例が考えられる。
【0091】
更に、結果出力部36のハードウェアの例として、外部の表示装置や記憶装置に情報を出力するためのインターフェース(I/F:interface)が考えられる。出力先の例として、計算機やストレージ装置を始め、LCD(液晶ディスプレイ)やPDP(プラズマディスプレイ)、有機ELディスプレイ(organic electroluminescence display)等の表示装置、出力内容を用紙等に印刷するプリンタ等の印刷装置、又は、出力内容を壁やスクリーンに投影するプロジェクタ等の映写装置等が考えられる。
【0092】
但し、実際には、これらの例に限定されない。
【0093】
<本発明の特徴>
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証方法において、アドレスのタイミング違反があった場合、従来は、全アドレスに不定書込み(Write)していたが、本発明では、違反のあったアドレスのみの違反にすることで、違反のないアドレス空間のCellデータの読出しを可能とする。
【0094】
本発明のタイミング検証装置は、イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置内蔵ランダムアクセスメモリのタイミング検証装置であって、クロック信号にイベントが発生した場合、アドレス違反処理用レジスタに現状のアドレス情報を格納するタイミング違反レジスタ更新手段と、前記アドレスのタイミング違反を確認するタイミング違反チェック手段と、前記タイミング違反チェック手段の結果に基づき、タイミング違反時にアドレス違反処理用レジスタのアドレス値を不定にするタイミング違反レジスタ不定更新手段と、タイミング違反レジスタ不定更新手段の結果に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段とを備える。
【0095】
これにより、アドレスのセットアップ(Setup)違反とホールド(Hold)違反が同じクロックのイベントに対して発生した状況で、アドレスのタイミング違反が発生した場合においても、仮想イベントを発生させることなく、対象の違反アドレスを正しく判定することができる。
【0096】
また、タイミング違反アドレスチェック手段によるチェック結果に基づき、該当する違反アドレスのメモリ領域に不定データ書込みを行う該当アドレス不定書込み手段を備える。
【0097】
これにより、タイミング違反が発生したアドレスで想定されるメモリ領域のアドレスにのみ不定書込みを行うことが可能となる。
【0098】
更に、タイミング違反の発生していないメモリ領域のアドレスを対象にして後段回路の論理検証が可能となる。
【0099】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【0100】
10… 論理シミュレーション装置
20… ランダムアクセスメモリ(RAM)
30… タイミング検証装置
31… イベント抽出部
32… クロックイベント処理部
33… タイミング違反レジスタ更新部
34… 論理動作定義部
35… タイミング違反チェック部
351… タイミング違反レジスタ不定更新部
352… タイミング違反アドレスチェック部
353… 該当アドレス不定書込み部
36… 結果出力部
【特許請求の範囲】
【請求項1】
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段と
を具備する
タイミング検証装置。
【請求項2】
請求項1に記載のタイミング検証装置であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にするタイミング違反レジスタ不定更新手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込む該当アドレス不定書込み手段と
を更に具備する
タイミング検証装置。
【請求項3】
請求項1又は2に記載のタイミング検証装置であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行う論理動作定義手段と
を更に具備する
タイミング検証装置。
【請求項4】
計算機により実施されるタイミング検証方法であって、
イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出することと、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納することと、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認することと、
イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認することと
を含む
タイミング検証方法。
【請求項5】
請求項4に記載のタイミング検証方法であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込むことと
を更に含む
タイミング検証方法。
【請求項6】
請求項4又は5に記載のタイミング検証方法であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行うことと
を更に含む
タイミング検証方法。
【請求項7】
請求項4乃至6のいずれか一項に記載のタイミング検証方法を、計算機に実行させるためのプログラム。
【請求項1】
イベントドリブン方式を用いた論理シミュレーションに適用される半導体装置に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出するイベント抽出手段と、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納するタイミング違反レジスタ更新手段と、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認し、イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認するタイミング違反チェック手段と
を具備する
タイミング検証装置。
【請求項2】
請求項1に記載のタイミング検証装置であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にするタイミング違反レジスタ不定更新手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックするタイミング違反アドレスチェック手段と、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込む該当アドレス不定書込み手段と
を更に具備する
タイミング検証装置。
【請求項3】
請求項1又は2に記載のタイミング検証装置であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行う論理動作定義手段と
を更に具備する
タイミング検証装置。
【請求項4】
計算機により実施されるタイミング検証方法であって、
イベントドリブン方式を用いた論理シミュレーションに適用される半導体方法に内蔵されたランダムアクセスメモリに入力される信号のイベントを抽出することと、
クロック信号にイベントが発生した場合、前記ランダムアクセスメモリに設けられたアドレス違反処理用レジスタに現状のアドレス信号の値を格納することと、
イベントが発生した信号がアドレス信号でない場合、当該イベントが発生した信号のタイミング違反の有無を確認することと、
イベントが発生した信号がアドレス信号である場合、アドレスのタイミング違反の有無を確認することと
を含む
タイミング検証方法。
【請求項5】
請求項4に記載のタイミング検証方法であって、
アドレスのタイミング違反を確認した時に、前記アドレス違反処理用レジスタのアドレス値を不定値にすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、違反アドレスをチェックすることと、
前記アドレス違反処理用レジスタのアドレス値に基づき、該当する違反アドレスのメモリ領域に不定値を書込むことと
を更に含む
タイミング検証方法。
【請求項6】
請求項4又は5に記載のタイミング検証方法であって、
前記クロック信号にイベントが発生した場合、ライトイネーブル信号の値に応じて、アドレス信号にて示されるメモリ領域にデータ入力信号の値を書込むライト動作と、アドレス信号にて示されるアドレスに書込まれたデータの値を読み出してデータ出力信号を出力するリード動作とのいずれかを行うことと
を更に含む
タイミング検証方法。
【請求項7】
請求項4乃至6のいずれか一項に記載のタイミング検証方法を、計算機に実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−103771(P2012−103771A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−249544(P2010−249544)
【出願日】平成22年11月8日(2010.11.8)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月8日(2010.11.8)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]