(57)【要約】【課題】ＤＭＡＣ（ＤｉｒｅｃｔＭｅｍｏｒｙＡｃｃｅｓｓＣｏｎｔｒｏｌｌｅｒ）回路のメモリーへの書き込み機能の検証において、書き込んだデータの値が正しい事と共に、余計な書き込みを行っていない事をより短時間で、ヒューマンエラーが介在する事無く検証できる事。【解決手段】ＤＭＡＣを含む検証対象回路と、メモリーモデルと、ＤＭＡＣ回路がメモリーに書き込んだデータをメモリーから読み出す手段と、この読み出されたデータと期待値とを比較する手段と、ＤＭＡＣ回路とメモリーの間のＢｕｓを監視し、ＤＭＡＣ回路が書き込みを行ったデータ数を数える手段を持つＢｕｓモニターと、これにより数えたデータ数と期待するデータ数とを比較する手段をもつ。【選択図】        図１
2004355430.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡＣ回路のメモリーへの書き込み機能の検証において、ＤＭＡＣ回路がメモリーに書き込んだデータをメモリーから読み出す手段をもち、この読み出されたデータと期待値とを比較する手段によって書き込んだ値が正しい事を確認すると共に、ＤＭＡＣ回路とメモリーの間のＢｕｓを監視するＢｕｓモニターを持ち、このＢｕｓモニターにＤＭＡＣ回路が書き込みを行ったデータ数を数える手段を持ち、これにより数えたデータ数が期待するデータ数と等しい事を合わせて確認する事を特徴とした検証手法。
【請求項２】
前記ＤＭＡＣ回路がメモリーに書き込んだデータをメモリーから読み出す手段において、メモリーバスからのアクセスによらず、ソフト的に読み出す手法を用いる事を特徴とする、請求項１に記載した検証手法。
【請求項３】
前記期待値の生成方法においてＤＭＡＣ回路へ入力するバスを監視する手段を持ち、これにより前記期待値、及び期待するデータ数を作成する事を特徴とする、請求項１に記載した検証手法。
【請求項４】
前記ＤＭＡＣ回路とメモリーの間のＢｕｓを監視するＢｕｓモニターにおいて、データの値を監視する事を特徴とした、請求項１に記載した検証手法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）回路を論理検証する検証手法に関するものである。
【０００２】
【従来の技術】
近年、半導体の集積度が飛躍的に向上し、１チップに搭載できる論理回路が膨大になっている。これに伴い、この論理回路の検証に要する期間が非常に長期化し、開発期間の短縮の観点から、検証期間の短縮に対する要求が高まっている。また、検証項目が膨大になる事によるヒューマンエラーが起こりやすくなっており、検証の自動化への要求が高まっている。
【０００３】
図２にＤＭＡＣ回路を検証する、従来手法の実施例を示す。
【０００４】
図２において、１０は検証対象ブロックのＤＭＡＣ回路である。メモリーに書くべきデータはＬｏｇｉｃ  Ｂｌｏｃｋ３０から出力され、Ｂｕｓ５０を介してＤＭＡＣ回路１０に入力される。ＤＭＡＣ回路がＭｅｍｏｒｙに書くべきアドレスは、ＤＭＡＣ回路内で計算される。ＤＭＡＣ回路はこれらの情報を元にＢｕｓ６０を介してＭｅｍｏｒｙ  Ｍｏｄｅｌ２０にアクセスし、データを書き込む。４０はＤＭＡＣ回路１０を含むＣｈｉｐのイメージであるが、ＤＭＡＣ回路１０に関連するブロック以外は省略している。
【０００５】
ＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０にデータを書き込む間、Ｅｘｐｅｃｔ  Ｄａｔａ  Ｅｘｔｒａｃｔｏｒ１００は、Ｂｕｓ５０を監視し、Ｍａｉｎ  Ｍｅｍｏｒｙに書き込むべき期待値データ（Ｅｘｐｅｃｔｅｄ  Ｄａｔａ）２００を作成する。
【０００６】
ＤＭＡＣ回路１０が全てのデータを書き終わるとＢａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０が起動される。
【０００７】
Ｂａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０は、例えば通常のＢｕｓアクセスではなく、ソフト的にＭａｉｎ  Ｍｅｍｏｒｙ  Ｍｏｄｅｌ２０からデータを読み出せるようなものである。これはシミュレーション時間０で行う事ができ、シミュレーション時間を短縮する手法として知られている。
【０００８】
Ｂａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０はＭｅｍｏｒｙ  Ｍｏｄｅｌ２０より、書かれたデータを読み出し、実際にＤＭＡＣ回路１０によって書かれたデータ（Ａｃｔｕａｌ  Ｄａｔａ）２１０を作成する。
【０００９】
Ｃｏｍｐａｒｅｔｅｒ  Ｍｏｄｅｌ１２０はこのＡｃｔｕａｌ  Ｄａｔａ２１０と前述のＥｘｐｅｃｔｅｄ  Ｄａｔａ２００を比較し、ＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０に書いたデータの値が正しい事を確認する。
【００１０】
また、ＤＭＡＣ回路の競合の検証を行なうものも考案されている（例えば、特許文献１を参照）。
【００１１】
【特許文献１】
特開平６−１８０６５８号公報
【００１２】
【発明が解決しようとする課題】
しかしこのような方法では、期待するメモリーアドレスの範囲に正しい値が書かれている事は確認できるが、それ以外のメモリーアドレスに誤って書かれていないかどうかを確認する事が出来ないという問題があった。
【００１３】
これを確認する為には、予めメモリーの全ての領域に任意の値を書き込んでおき、シミュレーション後にこれらが書き換わってない事を確認しなければならない。ただし、これには非常に多くの手間と時間を必要とするという問題があった。
【００１４】
また、たまたま予め任意に書き込んだデータと一致したデータをＤＭＡＣ回路が書き込んでしまった様な場合には、これをエラーとして判断できないという問題があった。前述の任意の値を”Ａｌｌ  ０”や”Ａｌｌ  １”とした場合にはこのような事が起こりやすい。また、任意の値をｒａｎｄｏｍな値とした場合には、Ｍｅｍｏｒｙ容量分の全てのデータをシミュレーションが終了するまで保持しなければならず、検証を行うために大きなメモリーをのせたコンピューターを必要とし、コストがかかるという問題があった。
【００１５】
また、このような方法を用いたとしても、例えばＤＭＡＣ回路の書き込みが冗長であり、同じデータを同じアドレスに複数回書き込むような事をしていた場合、その結果としては、期待するメモリーアドレスに期待する値が書かれている為、この冗長性を見付ける事が出来ないという問題があった。このような冗長性はＤＭＡＣ回路の転送速度を低下させるため、検証においてエラーとして発見されなければならないが、従来の方法では発見できないという問題があった。
【００１６】
また、これら全てを解決する方法として波形ツールなどを用いて、目視によりメモリーに書かれた全てのデータ、アドレスを確認する方法も考えられるが、回路の規模から考えると非常に多くの時間がかかり、また、ヒューマンエラーが介在する可能性が多くなるという問題があった。
【００１７】
【課題を解決するための手段】
上記問題点を解決するための本発明の検証手法は、ＤＭＡＣ回路がメモリーに書き込んだ値と期待値とを比較する従来の方法とともに、ＤＭＡＣ回路とメモリーをつなぐＢｕｓを監視するＢｕｓモニターを設け、このＢｕｓモニターにメモリー書き込みに必要なＢｕｓ情報を監視させる事を特徴とするものである。
【００１８】
（作用）
本発明の検証手法による作用は、ＤＭＡＣ回路のメモリーへの書き込み機能の検証において、書き込んだデータの値が正しい事と共に、余計な書き込みを行っていない事を、より短時間で、ヒューマンエラーが介在することなく検証出来ることである。また、冗長な書込みについても発見する事が出来、ＤＭＡＣ回路の最高速度を保証する事ができることである。
【００１９】
【発明の実施の形態】
（実施例１）
図１は本発明に係わる検証手法の一実施形態を示すものである。図１において図２（従来の実施例）と同一の構成要素には同一符号を付した。
【００２０】
図１において、１０は検証対象ブロックのＤＭＡＣ回路である。メモリーに書くべきデータはＬｏｇｉｃ  Ｂｌｏｃｋ３０から出力され、Ｂｕｓ５０を介してＤＭＡＣ回路１０に入力される。ＤＭＡＣ回路がＭｅｍｏｒｙに書くべきアドレスは、ＤＭＡＣ回路内で計算される。ＤＭＡＣはこれらの情報を元にＢｕｓ６０を介してＭｅｍｏｒｙ  Ｍｏｄｅｌ２０にアクセスし、データの書き込みを行う。４０はＤＭＡＣ回路１０を含むＣｈｉｐのイメージであるが、ＤＭＡＣ回路１０に関連するブロック以外は省略している。
【００２１】
ＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０にデータを書き込む間、Ｅｘｐｅｃｔ  Ｄａｔａ  Ｅｘｔｒａｃｔｏｒ１００は、Ｂｕｓ５０を監視し、Ｍａｉｎ  Ｍｅｍｏｒｙに書き込むべき期待値データ（Ｅｘｐｅｃｔｅｄ  Ｄａｔａ）２００を作成する。
【００２２】
またこの間、Ｂｕｓ  Ｍｏｎｉｔｏｒ１３０はＢｕｓ６０を監視する。Ｍｅｍｏｒｙ  Ｍｏｄｅｌ２０が例えばＳＤＲＡＭである場合のＢｕｓ６０の書き込みプロトコルを図３に示す。ＳＤＲＡＭはそのアクセス方法として様々なデータ転送長を選択できるが、ここでは４バーストの場合の例を示している。ＤＱ［３１：０］信号のサイクルｃ，ｄ，ｅ，ｆがその様子を示している。Ｂｕｓ  Ｍｏｎｉｔｏｒ１３０は、図３のＣＳｎ、ＲＡＳｎ、ＣＡＳｎ、及びＷＥｎ信号を監視する事により書き込みトランザクションが発生した事を知る事が出来る。サイクルｃは書き込みトランザクションがスタートするサイクルである。また、ＤＱＭ［３：０］信号を監視する事により、この１トランザクションで書き込んだデータサイズを知る事が出来る。ＤＱＭ［３：０］信号の１ビットはＤＱ［３１：０］信号の１バイト（８ビット）を制御し、ＤＱＭ［０］に１が立っている時には、これが制御する１バイト分ＤＱ［７：０］の書き込みがマスクされる。すなわちサイクルｃ，ｄでは全てのバイトの書き込みがイネーブル、サイクルｅでは１バイトの書き込みがマスク、サイクルｆでは全てのバイト、４バイトの書き込みがマスクされ、このトランザクションでは合計４＋４＋３＋０＝１１バイトの書き込みが行われている。この様にＢｕｓ  Ｍｏｎｉｔｏｒ１３０はＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０に書き込んだデータ数をカウントする。
【００２３】
ＤＭＡＣ回路１０が全てのデータを書き終わるとＢａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０が起動される。
【００２４】
Ｂａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０は、例えば通常のＢｕｓ６０からのアクセスではなく、ソフト的にＭａｉｎ  Ｍｅｍｏｒｙ  Ｍｏｄｅｌ２０から直接データを読み出せるようなものである。これはシミュレーション時間「０」で読み出す事ができ、シミュレーション時間を短縮する手法として知られている。
【００２５】
Ｂａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ１１０はＭａｉｎ  Ｍｅｍｏｒｙ  Ｍｏｄｅｌ２０より、ＤＭＡＣ回路１０によって書かれたデータを読み出し、実際に書かれたデータ（Ａｃｔｕａｌ  Ｄａｔａ）２１０を作成する。
【００２６】
Ｃｏｍｐａｒｅｔｅｒ  Ｍｏｄｅｌ１２０はこのＡｃｔｕａｌ  Ｄａｔａ２１０と前述のＥｘｐｅｃｔｅｄ  Ｄａｔａ２００を比較し、ＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０に書いたデータの値が正しい事を確認する。
【００２７】
また、この時、Ｂｕｓ  Ｍｏｎｉｔｏｒ１３０によってカウントされたデータ数をＥｘｐｅｃｔｅｄ  Ｄａｔａ１１０のデータ数と比較し、これらが一致する事を確認する。Ｂｕｓ  Ｍｏｎｉｔｏｒ１３０によってカウントされたデータ数の方が多い場合は、必要以上の書き込みが起きており、書き込むべきでないところにアクセスしてメモリー上のデータを壊してしまっている、もしくは冗長な書き込みを行っている事が検出できる。少ない場合は上記Ｃｏｍｐａｒｅｔｅｒ  Ｍｏｄｅｌ１２０による期待値比較においてもエラーとなるため、従来の方法のみで検出できる。
【００２８】
以上、メモリーに書かれたデータの値が正しい事、及びメモリーに書き込んだデータ数が正しい事を合わせて検証する事により、メモリー上の書くべきでないところに誤って書き込みを行なっていない事、及び同じアドレスに２回以上書き込むような冗長な書込みを行なっていない事を検証できる。
【００２９】
この方法では予め作成したモデルやモニターを使用して検証を自動化しており、シミュレーション結果の波形を目で追う事などをする必要が無く、ヒューマンエラーが介在しない。また、予めメモリー上に任意のデータを書き込んで置き、ＤＭＡＣ回路の書き込み終了後にこれらが書き換わってない事を確認する作業も発生しない。
【００３０】
ここで、Ｍｅｍｏｒｙ  Ｍｏｄｅｌ２０はＳＤＲＡＭ以外のどんなメモリーでも構わない。その場合、メモリーアクセスのＢｕｓプロトコルが変わるが、これにあわせてＢｕｓ  Ｍｏｎｉｔｏｒ１２０を変更すれば良い。また、本実施例ではＤＭＡＣ回路とメモリーは別チップとしたが、同一チップ上にあっても問題ない。また検証対象のＤＭＡＣ回路１０は書き込み専用ではなく、読み出し機能を持っていても問題無い。
【００３１】
（実施例２）
実施例１において、Ｂｕｓ  Ｍｏｎｉｔｏｒ１０にデータの数をカウントするだけでなく、データの値がイリーガルな値である場合に検出する機能を持たせる。イリーガルな値とは、例えば”Ｘ（ｕｎｋｎｏｗｎ）”や”Ｚ（ｈｉｇｈ  ｉｍｐｅｄａｎｃｅ）”等である。
【００３２】
この機能を持たせる事により、ＤＭＡＣ回路１０がＭｅｍｏｒｙ  Ｍｏｄｅｌ２０に全てのデータを書き終わってからＣｏｍｐａｒｅｔｏｒ  Ｍｏｄｅｌ１２０によって期待値エラーとなる前に、Ｂｕｓ６０にＤＭＡＣ回路１０がデータを出力した時点でエラーとして発見する事が出来る。この事はＢｕｇの早期発見につながり、ＴＡＴ（Ｔｕｒｎａｒｏｕｎｄ  Ｔｉｍｅ）を短縮する事が出来る。
【００３３】
【発明の効果】
以上のように本発明によれば、ＤＭＡＣ回路が、正しい値が正しい数だけＭｅｍｏｒｙに書き込めたかどうかを、人手を介することなく、自動的により短時間で検証する事が出来る。
【００３４】
また、冗長な書き込みを行っていない事を確認する事ができるため、ＤＭＡＣ回路の最高速度を保証する事ができる。
【図面の簡単な説明】
【図１】本発明の検証手法の一実施例の構成図
【図２】従来の検証手法の構成図
【図３】本発明の検証対象であるＤＭＡＣ回路とＭｅｍｏｒｙをつなぐＢｕｓのＢｕｓ転送プロトコルを示す図である
【符号の説明】
１０  ＤＭＡＣ回路
２０  Ｍｅｍｏｒｙ  Ｍｏｄｅｌ
３０  Ｌｏｇｉｃ  Ｂｌｏｃｋ
４０  Ｃｈｉｐ
５０  内部Ｂｕｓ
６０  Ｍｅｍｏｒｙ  Ｂｕｓ
１００  Ｅｘｐｅｃｔ  Ｄａｔａ  Ｅｘｔｒａｃｔｏｒ
１１０  Ｂａｃｋ  Ｄｏｏｒ  Ｍｅｍｏｒｙ  Ｒｅａｄｅｒ
１２０  Ｃｏｍｐａｒｅｔｏｒ  Ｍｏｄｅｌ
１３０  Ｂｕｓ  Ｍｏｎｉｔｏｒ
２００  Ｅｘｐｅｃｔｅｄ  Ｄａｔａ
２１０  Ａｃｔｕａｌ  Ｄａｔａ
【図１】
2004355430.tif 000003
【図２】
2004355430.tif 000004
【図３】
2004355430.tif 000005