[go: up one dir, main page]

JP5233924B2 - 論理検証装置、論理検証方法 - Google Patents

論理検証装置、論理検証方法 Download PDF

Info

Publication number
JP5233924B2
JP5233924B2 JP2009208464A JP2009208464A JP5233924B2 JP 5233924 B2 JP5233924 B2 JP 5233924B2 JP 2009208464 A JP2009208464 A JP 2009208464A JP 2009208464 A JP2009208464 A JP 2009208464A JP 5233924 B2 JP5233924 B2 JP 5233924B2
Authority
JP
Japan
Prior art keywords
command
memory
address
expected value
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009208464A
Other languages
English (en)
Other versions
JP2011059953A (ja
Inventor
明文 佐塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009208464A priority Critical patent/JP5233924B2/ja
Publication of JP2011059953A publication Critical patent/JP2011059953A/ja
Application granted granted Critical
Publication of JP5233924B2 publication Critical patent/JP5233924B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、DDR等のメモリにアクセスするメモリコントローラを検証する論理検証装置及び論理検証方法に関する。
各種の情報処理装置に搭載されるメモリチップにアクセスするには、CPUから発生したメモリへのアクセス要求(メモリへの書き込み又は読出し)を、当該メモリ回路に適応したアクセス要求(アドレスの指定、アクセス単位等)に変換する必要がある。この変換を行うのがメモリコントローラである。このメモリコントローラは、アドレス等のアクセス要求を変換する論理演算を行うので、設計時や設計を検証するテスト時においては、論理演算が適切に行われているかを検証する論理検証を行なう必要がある(例えば、特許文献1参照。)。
特許文献1には、CPUが要求したアクセスによってシステムバス上に発生するトランザクションと、メモリモデルがメモリ制御回路からのアクセスに応答して発生したトランザクションとを用いてメモリ制御回路を論理検証する技術が開示されている。
しかしながら、DDR−SDRAM(Double Date Rate Synchronous Dynamic Random Access)のような大容量のメモリのメモリコントローラの論理検証は、内部的には大容量のアドレスとコマンドを組み合わせて実行することや、外部的には様々なDDR-SDRAMの種類及びDDR-SDRAMの周波数等との組み合わせにて実行すること、が必要で論理検証項目が膨大となり論理検証の内容も大規模になっている。
また、従来は論理検証環境、論理検証シナリオが検証対象(DUT:Design Under Test)の中身(処理内容、ロジックパス等)に依存する傾向が強かった。つまり、DUTの構造からあるアドレスの境界を検証するというように、論理検証シナリオがDUTの作り方に依存することが多い。このため、例えば、DUTの中身をそのまま期待値(DUTが正常である場合に出力されるであろうデータ)の生成に使用することになり(期待値とテスト結果が一致することが当然になる)、本来の不具合が検出できないという問題があった。
論理検証シナリオでは、ユーザ側コマンドを入力(アクセス要求)した際のDUTの出力が正しいか否かを検証するが、ユーザ側コマンドのパラメータの中で、特にアドレスに関しては、膨大なアドレスから単純にランダムに実施していても、十分な検証は困難である。例えば、各メモリの各モード(周波数、バーストモード等)において、メモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)に対して、抜けなくユーザ側コマンドを生成することは困難になっている。
また、特許文献1に記載された検証手法では、ユーザ側コマンドとメモリ側コマンドは一対一であることが前提である。しかし、一般的にはバーストアクセスをメモリコントローラが持っていることが主流であること、また、メモリ側コマンド数はユーザ側とメモリコントローラ間のバス幅と、メモリバス幅との関係によって変わる可能性があるため、ユーザ側コマンドと、メモリ側コマンドは一対一であるとは限らない。この場合、メモリコントローラが出力したアドレスだけでは、ユーザ側コマンドが、複数のメモリ側コマンドに正しく変換されたか否かの判断は困難である。
本発明は、種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供することを目的とする。
上記課題に鑑み、本発明は、CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリ107に供給するメモリコントローラ106の論理を検証する論理検証装置100であって、メモリ107の規格情報を記憶したメモリ規格情報記憶手段103と、規格情報が有するアドレス対応情報に従い、第1のコマンドから変換される第2のコマンドの期待値を生成する期待値生成手段108と、第1のコマンドをメモリコントローラ106に発行するコマンド発行手段101と、メモリコントローラ106が第1のコマンドから変換した第2のコマンドを監視し、期待値と比較する監視手段104と、を有することを特徴とする。
種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供すること。
論理検証装置の全体構成図の一例である。 期待値の生成を模式的に示す図の一例である。 アドレステーブルの一例を模式的に説明する図である。 期待値生成モデルがユーザ側コマンドをメモリ側コマンドに変換して期待値を生成する手順を示すフローチャート図の一例である。 モニタモデルによる検証を模式的に示す図の一例である。 シナリオ(ユーザ側コマンド)の生成を模式的に示す図の一例である。 コマンド生成モデルが境界付近のアドレスを網羅したユーザ側コマンドを生成する手順を示すフローチャート図の一例である。 論理検証装置が論理検証する手順を示すフローチャート図の一例を示す。
以下、本発明を実施するための形態について説明する。
本実施形態の論理検証装置100は、DUT(Design Under Test)が正常である場合に出力されるであろう期待値を、メモリ規格から自動生成することで、期待値生成の負荷を少なくする。また、メモリ規格から自動生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、種々のメモリ規格のメモリに対応した論理検証が可能となる。また、膨大なアドレスからランダムに選定したアドレスを入力しても、論理検証が可能となる。すなわち、指定したユーザ側コマンドから期待値を自動生成するだけでなく、ランダムシナリオでの論理検証が可能になる。
また、論理検証シナリオ及びその結果に対する期待値も、メモリの規格を元に作成することで、DUTの中身に左右されることがなく、検証目標を明確にし、仕様の勘違いによる不具合を減らすことができる。
また、本実施形態の論理検証装置100は、メモリ規格からメモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)を自動的に抽出し、区切り位置に対応するユーザ側コマンドを網羅的に生成する。これにより、論理検証項目のコーナーケース(見落としがちな検証項目)を重点的に論理検証できるので、抜けのない論理検証が可能になる。
そして、自動生成されたコーナーケースに対応したユーザ側コマンドと、ランダムに生成したユーザ側コマンドとを用いて、論理検証を並行して行うことで、短期間でより多くの論理検証シナリオを実施し、DUTの品質を向上させることができる。
図1は、論理検証装置100の全体構成図の一例を示す。論理検証装置100は、シナリオ記憶部105、メモリ規格パラメータ記憶部103、コマンド送信・制御モデル101、コマンド生成モデル102、期待値生成モデル108、検証対象(DUT)106、DDR−SDRAM対向モデル107、及び、モニタモデル104を有する。シナリオ記憶部105は、コマンド送信・制御モデル101、メモリ規格パラメータ記憶部103、期待値生成モデル108及びコマンド生成モデル102と接続されている。コマンド送信・制御モデル101は、検証対象106、コマンド生成モデル102、期待値生成モデル108及び、モニタモデル104と接続されている。コマンド生成モデル102と期待値生成モデル108は、モニタモデル104と接続されている。検証対象106はモニタモデル104及びDDR−SDRAM対向モデル107と接続されている。
論理検証装置100はコンピュータを実体とし、不図示のCPU、RAM、ROM、HDD、ASIC、バス等を有する。また、論理検証装置100は、マウスやキーボードなどの入力装置、論理検証の結果を表示するディスプレイ、インターネットやLANなどのネットワークに接続するNIC(Network Interface Card)を有する。また、ROM又はHDDにはCPUが実行するためのプログラムが記憶されている。このプログラムは、メモリカード等の記憶媒体に記憶して配布されたり、NICを介して不図示のサーバから配布される。
シナリオ記憶部105及びメモリ規格パラメータ記憶部103は、コンピュータのRAMやHDD等に実装されている。また、コマンド送信・制御モデル101、コマンド生成モデル102、期待値生成モデル108、モニタモデル104、DDR−SDRAM対向モデル107は、例えば、エミュレータにより生成された機能ブロック又はCPUがプログラムを実行して提供される機能ブロックである。検証対象106は好ましくは実機であるが、同様にエミュレータ又はCPUがプログラムを実行することで提供されていてもよい。
検証対象106は例えばメモリ制御回路やメモリコントローラである。検証対象106は、ユーザ側コマンドからメモリ側コマンドを生成してDDR−SDRAM対向モデル107に供給し、DDR−SDRAM対向モデル107からメモリ側コマンドに応じた応答を受け取る。
検証対象106の検証について簡単に説明する。コマンド送信・制御モデル101はユーザ側コマンドを検証対象106に送信する。検証対象106は、ユーザ側コマンドによって要求されたDDR−SDRAM対向モデル107のアドレス空間に対してアクセス(データの書き込み、読み出し)を行うため、ユーザ側コマンドをメモリ側コマンドに変換する。DDR−SDRAM対向モデル107はメモリ側コマンドに応じた応答(例えば、読み出したデータ、書き込み結果等)を検証対象106に返す。
モニタモデル104には、期待値生成モデル108から、後述する期待値が送出される。また、モニタモデル104は、検証対象106がDDR−SDRAM対向モデル107に出力したメモリ側コマンドをモニタリングしている。モニタモデル104は、期待値とメモリ側コマンドを比較して一致するか否かを判定する。一致すれば、検証対象106は仕様通りに動作していることになる。本実施形態では、この期待値をメモリ規格から生成することが1つの特徴である。
シナリオ記憶部105には少なくとも1つ以上のユーザ側コマンドが記憶されている。また、メモリ規格パラメータ記憶部103には、DDR−SDRAM対向モデル107のメモリ規格パラメータが記憶されている。なお、メモリ規格は、例えばDDR1、DDR2、DDR3等であり、メモリ規格パラメータ記憶部103には各メモリ規格のメモリ規格パラメータが記憶されている。
メモリ規格パラメータは、例えば、アドレステーブル1031、メモリバス幅1032がある。アドレステーブル1031は、DDR−SDRAM対向モデル107のメモリアドレス空間と、システム側(=ユーザ側コマンド。アプリケーション側、CPU側のアドレス)のアドレス空間を対応づけるテーブルである。また、メモリバス幅1032は、8ビット、16ビット、32ビット、64ビット等、メモリバスのビット数である。
〔期待値の生成〕
期待値の生成について説明する。まず、コマンド送信・制御モデル101は、シナリオ記憶部105からユーザ側コマンドを1つずつ読み出し、検証対象106に送出する。このユーザ側コマンドは、コマンド送信・制御モデル101が例えばランダムに生成したものである。また、コマンド送信・制御モデル101は、同じユーザ側コマンドを期待値生成モデル108にも送出する。なお、後述するように、シナリオ記憶部105にはアドレステーブル1031とメモリバス幅1032から生成されたユーザ側コマンドも含まれる。
期待値生成モデル108は、コマンド送信・制御モデル101からのユーザ側コマンドを受けると、同時または前後してメモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読みだす。コマンド生成モデル102は、アドレステーブル1031とメモリバス幅1032に基づき、ユーザ側コマンドからメモリ側コマンドを生成する。
図2は、期待値の生成を模式的に示す図の一例である。図2において図1と同一部には同一の符号を付しその説明は省略する。ユーザ側コマンド(シナリオ)には、リード/ライト信号、アドレス、バースト数、バイトイネーブルが含まれる。リード/ライト信号は、DDR−SDRAM対向モデル107からデータを読み出すのか書き込むのかを指定する。アドレスはCPUやOSなどシステム側のアドレス空間のアドレスである。
バースト数は、1度の読み出し/書き込みで連続して読み出し/書き込まれるデータのバイト数である。例えば、バースト数が8でアドレスバスの幅が16ビットなら、16bit×8=16バイトが1回のバーストで読み出し/書き込まれる。バイトイネーブルは、全データバス(例えば16ビット)のうち有効なデータ(例えば上位8ビット、下位8ビット)を指定する。
まず、期待値生成モデル108は、リード/ライト信号に基づきメモリ側コマンドのリード/ライトを決定する。次に、期待値生成モデル108は、アドレステーブル1031を参照して、ユーザ側コマンドのアドレスからメモリ側コマンドのアドレス(ROWアドレス、Columnアドレス、又は、BANKアドレス)を決定する。
図3は、アドレステーブル1031の一例を模式的に説明する図である。図3の行方向はDDR−SDRAM対向モデル107のメモリアドレス空間を、列方向はメモリデバイス(メモリの種類)を意味する。また、図3において、「Rxx」はROWアドレスを、「Cxx」はColumnアドレスを、「Bxx」はBANKアドレスを、それぞれ意味する。「na」はNonAvairable(使用不可)を意味する。
なお、列方向の「メモリサイズ×8」「メモリサイズ×16」の「×8」「×16」はメモリバス幅1032を示す。このように、メモリの種類によって同じシステム側のアドレスに対し、DDR−SDRAM対向モデル107のアドレスは異なる。アドレステーブル1031は規格と言うよりも仕様に近いので、アドレステーブル1031が変われば、当然、各ROW/Column/BANKアドレスが変わる。
一方、メモリの種類が決まっていて、DDR−SDRAM対向モデル107のアドレスが既知であれば、システム側のアドレスも一意に定まる。
図3に示すように、メモリバス幅1032が「×8」と「×16」ではそれぞれ、システム側のアドレスが同じでもDDR−SDRAM対向モデル107側に指定するアドレスは変わる。したがって、アドレステーブル1031を参照することで、期待値生成モデル108は、メモリバス幅1032に応じた調整も行ったことになる。
なお、ユーザ側コマンドのバイトイネーブルが変われば、メモリ側コマンドのアドレスのスタートアドレス(始点)が変わる。
このように、ユーザ側コマンドがメモリ側コマンドにどのように変換されるかはメモリ規格に依存するが、換言すれば、メモリ規格に応じて、メモリ側コマンドはユーザ側コマンドから一意に定まる。
また、DDR−SDRAM対向モデル107には、アクセス要求が有効か否かを指定するCS(チップセレクト)信号の端子がある。1つの検証装置には複数のDDR−SDRAM対向モデル107が搭載されることも少なくないためである。DDR−SDRAM対向モデル107はCS信号が「Low」の場合に、読み込み又は書き込みが許可される。
検証対象106は複数のDDR−SDRAM対向モデル107からアクセス対象を特定するため複数のCS端子を備える。このため、メモリ側コマンドにはCS端子を特定するCS情報が必要になる。期待値生成モデル108は、アドレステーブル1031等に基づき、アクセス対象のチップを選択するCS情報を生成する。
以上の3つのアドレスとCS情報が、1つのメモリ側コマンドである。バースト数に応じて、複数のメモリ側コマンドがDDR−SDRAM対向モデル107に送信されるので、一つのユーザ側コマンドに対し、コマンド生成モデル102はその全て(バースト回数分)を期待値として生成する。この期待値はモニタモデル104に送出され、モニタモデル104はキュー構造(FIFO方式)の記憶領域(以下、単に「キュー配列」という)に期待値を記憶する。
後述するように、コマンド生成モデル102はメモリ規格からユーザ側コマンドを生成するので、期待値生成モデル108は、コマンド生成モデル102が生成したユーザ側コマンドからも期待値を生成しておく。こうすることで、モニタモデル104は、コーナーケースのユーザ側コマンドに対しても、ランダムにアドレスを指定するユーザ側コマンドに対しても検証可能になる。
なお、ユーザ側コマンドがDDR−SDRAM対向モデル107のメモリ領域外へのアクセスを要求する場合は、検証対象106はDDR−SDRAM対向モデル107からエラー信号を受け取るはずである。したがって、ユーザ側コマンドがDDR−SDRAM対向モデル107のメモリ領域外へのアクセスを要求する場合、期待値生成モデル108は、アドレステーブル1031を参照して、エラー信号(例えば割り込みを受けること等)を期待値として生成する。
図4は、期待値生成モデル108が、ユーザ側コマンドをメモリ側コマンドに変換して期待値を生成する手順を示すフローチャート図の一例である。
まず、期待値生成モデル108は、受け取ったユーザ側コマンドに対し、メモリ領域外へのアクセスか否かを判定する(S10)。すなわち、期待値生成モデル108は、アドレステーブル1031を参照してユーザ側コマンドのアドレスをメモリ側コマンドのアドレスに変換し、変換後のアドレスがDDR−SDRAM対向モデル107のアドレス空間に含まれるか否かを判定する。メモリ領域外へのアクセスの場合(S10のYes)、期待値生成モデル108は「割り込みの種類」などを期待値として生成する(S50)。
メモリ領域外へのアクセスでない場合(S10のNo)、期待値生成モデル108は、メモリ側コマンドの発行数nを決定する(S20)。上記のように、メモリ側コマンドの発行数nはバースト数の関数である。図2ではn=3個の発行数となっている。
ついで、期待値生成モデル108は、n個のメモリ側コマンドを生成する。すなわち、n=1からn=3になるまで(S30)、メモリ側コマンドを生成する(S40)。
上記のように期待値生成モデル108は、ユーザ側コマンドのアドレスからCS情報、メモリ側コマンドのアドレス、を生成する。CS情報は、複数のDDR−SDRAM対向モデル107から1つのDDR−SDRAM対向モデル107を選択するものなので、ユーザ側コマンドのアドレスとアドレステーブル1031から生成できる。メモリ側コマンドのアドレスは、ユーザ側コマンドのアドレスと、図3のアドレステーブル1031(及び、これに含まれる及びメモリバス幅1032)から生成される。
また、期待値生成モデル108はデータマスクを生成する。データマスクは、バイトイネーブルに指定される有効なデータのみを指定する信号を生成するものである。なお、データマスクは、DDR−SDRAM対向モデル107から読み出したデータに対し施されるマスクなので、図示した期待値には含まないこととした。
期待値生成モデル108は、n個のメモリ側コマンドを生成すると(S30のYes)、モニタモデル104に送出する。モニタモデル104は複数のメモリ側コマンドを期待値として、キュー配列に記憶する(S50)。
〔モニタモデル104による検証〕
図5は、モニタモデル104による検証を模式的に示す図の一例である。図5において図1と同一部には同一の符号を付しその説明は省略する。図4の処理により、モニタモデル104のキュー配列には、期待値が記憶されている。
検証対象106は、コマンド生成モデル102と同じメモリ側コマンドを生成することが期待されている。このため、モニタモデル104は、検証対象106とメモリモデルとのインターフェースをモニタリングし、検証対象106により生成されたメモリ側コマンドが、期待値と同じか否かを判定する。
モニタモデル104は、コマンド送信・制御モデル101から送出されたユーザ側コマンドと、期待値生成モデル108から送出された期待値を対応づけながらキュー構造のリストに格納する。したがって、検証対象106に入力されたユーザ側コマンドに対応するメモリ側コマンドが、入力順に検証対象106から出力されない場合でも、モニタモデル104は期待値とメモリ側コマンドとを比較して、正しいか否かを確認することができる。
また、キュー構造で格納していることより、論理検証の(シミュレーション)終了時に、メモリ側コマンドに発行されるべきコマンドが全て発行されたか否かを確認することができる。
〔ユーザ側コマンドのパラメータ組み合わせリストの生成〕
検証対象106であるメモリコントローラによる、アドレスの検証に関して重要になってくるのは、メモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)のアドレスを検証したか否かである。そこで、コマンド生成モデル102が、これらの境界又は境界付近の境界アドレスをアドレステーブル1031より生成し、DDR−SDRAM対向モデル107の境界アドレスとして取得しておく。これをユーザ側コマンドのアドレスに変換することで、論理検証時のコーナーケースに対応したユーザ側コマンドのアドレスを生成することができる。
また、ユーザ側コマンドのアドレス以外のパラメータ(リード/ライト信号、バースト数、バイトイネーブル)を、境界アドレスに対応したユーザ側コマンドのアドレスと組み合わせることで、コーナーケースを網羅的に検証するユーザパラメータを生成できる。したがって、複数の境界アドレスに対応したユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブル、がユーザ側コマンドのパラメータ組み合わせリストである。
図6は、シナリオ(ユーザ側コマンド)の生成を模式的に示す図の一例である。コマンド生成モデル102は、メモリ規格パラメータ記憶部103からアドレステーブル1031を読み出して、メモリの区切り位置に対応する境界アドレスを決定する。
コマンド生成モデル102は、まずDDR−SDRAM対向モデル107のアドレステーブル1031とメモリバス幅1032より、アドレス(ROW/Column/BANK)境界付近と、1つのチップ(DDR−SDRAM対向モデル107)の境界付近のアドレスを抽出する。
図3の「512M×8」を例にすれば、naとR12の境界、R11とC8の境界、C8とB2の境界、B0とC7の境界、C9とnaの境界、がそれぞれアドレス境界付近の境界アドレスである。また、最上部と最下部のnaがチップの境界付近の境界アドレスである。
これらアドレス境界付近の境界アドレスと、チップの境界付近の境界アドレスは、DDR−SDRAM対向モデル107のアドレスである。一方、生成したいのはユーザ側コマンド(システム側)のアドレスである。このため、コマンド生成モデル102は、アドレス境界付近とチップの境界付近の境界アドレスに変換される、ユーザ側コマンドのアドレスを生成する。上記のように、ユーザ側コマンドは、アドレステーブル1031とメモリバス幅1032に基づきメモリ側コマンドに変換されるので、メモリ側コマンドから、アドレステーブル1031とメモリバス幅1032に基づきユーザ側コマンドに逆に変換することで、ユーザ側コマンドのアドレスを生成できる。
図3の例では、naとR12の境界のユーザ側コマンドのアドレスは「A28、A27」、R11とC8の境界のユーザ側コマンドのアドレスは「A15、A14」、C8とB22の境界の境界のユーザ側コマンドのアドレスは「A14、A13」、B0とC7の境界のユーザ側コマンドのアドレスは「A11、A10」、C9とnaの境界のユーザ側コマンドのアドレスは「A5、A4」である。同様に、最上部と最下部のnaの境界のユーザ側コマンドのアドレスは「A31」「a」である。
また、ユーザ側コマンドのパラメータ組み合わせリストのうち、リード/ライト信号はリードとライトの2種類、バースト数は1〜8程度の8種類、バイトイネーブルは4〜8種類程度を、想定すればよい。これらは予めシナリオ記憶部105等に記憶しておくことができる。
コマンド生成モデル102は、複数のユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブルから、それぞれ1つづつ取り出しそれらを組み合わせることで、ユーザ側コマンドを生成する。ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを生成することで、コーナーケースのアドレスを網羅的に検証するユーザ側コマンドを生成できる。
コマンド生成モデル102は、生成したユーザ側コマンドのパラメータ組み合わせリストをシナリオ記憶部105に記憶する。予め組み合わせてユーザ側コマンドとして記憶してもよい。検証時には、コマンド送信・制御モデル101又はコマンド生成モデル102が、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを実行して、ユーザ側コマンドを生成を生成する。
図7は、コマンド生成モデル102が境界アドレスを網羅したユーザ側コマンドを生成する手順を示すフローチャート図の一例である。図7のフローチャート図は、例えば、ユーザが論理検証装置100にユーザ側コマンドの生成を指示することでスタートする。
まず、コマンド生成モデル102は、メモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読み出す(S110)。
次いで、コマンド生成モデル102は、DDR−SDRAM対向モデル107の境界アドレスを生成する(S120)。コマンド生成モデル102は、メモリ規格パラメータに基づき、アドレス(ROW/Column/BANK)境界付近と、チップの境界付近の境界アドレスを抽出する。
次いで、コマンド生成モデル102は、境界アドレスを、アドレステーブル1031に基づきユーザ側コマンドのアドレスに逆変換する(S130)。ユーザ側コマンドのアドレスは複数個生成される。
コマンド生成モデル102はこのアドレスに、リード/ライト信号、種々のバースト数、種々のバイトイネーブルを添付して、ユーザ側コマンドのパラメータ組み合わせリストを生成する(S140)。
なお、期待値生成モデル108は、このパラメータ組み合わせリストを組み合わせて、期待値を生成しておく。
〔ユーザ側コマンドのパラメータ組み合わせリストを組み合わせた論理検証、ランダムに生成したユーザ側コマンドによる論理検証〕
ユーザ側コマンドのパラメータ組み合わせリストを用いてユーザ側コマンドを生成することでコーナーケースを網羅的に論理検証でき、さらに、ランダムにユーザ側コマンドを生成することで膨大なアドレスに対し論理検証できる。
図8は、本実施形態の論理検証装置100が論理検証する手順を示すフローチャート図の一例を示す。図8のフローチャート図は、例えば、ユーザが論理検証の開始を指示するとスタートする。図7のフローチャート図に続いて自動的にスタートしてもよい。
まず、コマンド送信・制御モデル101は、次のいずれかの終了条件を判定する(S210)。
(a)指定回数だけユーザ側コマンドを発行したか
(b)ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせでユーザ側コマンドを発行し、かつ、十分な数のユーザ側コマンドをランダムに発行したか
(a)を終了条件とする場合、ユーザは論理検証装置100に指定回数を入力装置を介して入力する。論理検証装置100は、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせに必要な回数に、ユーザ側コマンドのランダムな発行のためのマージンを見込んで、入力可能な最低の回数以上の指定回数を受け付ける。
終了条件が成立しない場合(S210のNo)、コマンド送信・制御モデル101は、カウンタmが要素数になったか否かを判定する(S220)。要素数は、ユーザ側コマンドのパラメータの数であるので「4」である。また、カウンタmは1,2,3、4の値を取る。
カウンタmが要素数に到達していない場合(S220のNo)、コマンド送信・制御モデル101は、「組み合わせ読み出し」か「ランダム読み出し」かを判定する(S230)。コマンド送信・制御モデル101は、「組み合わせ読み出し」と「ランダム読み出し」を自動的に切り替える。例えば、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせによりユーザ側コマンドの発行が終了すると、ランダム読み出しに移行する。
「組み合わせ読み出しの場合」、コマンド送信・制御モデル101は、シナリオ記憶部105に記憶されたパラメータ組み合わせリストの各要素を1つ読み出す(S240)。したがって、これを4回繰り返す。
「ランダム読み出しの場合」、コマンド送信・制御モデル101は、ユーザ側コマンドの各要素の1つから、適当な値を決定する(S250)。コマンド送信・制御モデル101は、システム側のアドレスから任意のアドレスを、リード/ライト信号から任意にいずれかを、任意のバースト数を、また、任意のバイトイネーブルをランダムに決定する。取り得る任意の上限と下限は予め定められている。これを4回繰り返すことで、任意のユーザ側コマンドを生成できる。
ステップS220において、カウンタmが要素数になった場合(S220のYes)、コマンド送信・制御モデル101は、ユーザ側コマンドを発行するためのコマンド発行関数を実行する(S260)。
その後、コマンド送信・制御モデル101が、コマンド間に間隔を設けるため待機時間だけ待機する(S270)。待機時間はDDR−SDRAM対向モデル107の応答時間(リード時間/ライト時間)等により定まる。また、ユーザが入力装置から設定してもよい。
論理検証装置100は、ステップS210〜S270を繰り返し、上記の終了条件が終了すると論理検証を終了する。
以上説明したように、本実施形態の論理検証装置100は、メモリ規格パラメータに基づき期待値を生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、膨大なアドレスからのランダムの入力パラメータに対しても、論理検証が可能となる。
また、本実施形態の論理検証装置100は、メモリ規格パラメータからユーザ側コマンドのパラメータを生成することで、論理検証項目のコーナーケースを抜けなく論理検証できる。メモリのコーナーケースのパラメータを自動的に発生できるため、抜けが減ることになり、回路品質が向上する。例えば、DDR1、DDR2、DDR3に対して、すべて同じ環境で論理検証を実施することができる。今後の新しい規格のメモリに対しても、メモリ規格パラメータを追加・更新することで、同じ環境で論理検証を実施することができる。
また、アドレス領域外にも対応しているため、どのような組み合わせのユーザコマンドに対しても論理検証を実施することができる。ユーザ側コマンドに何ら入力制約を与えることなくランダムな入力を許容して、様々なパラメータの論理検証を実施することができ、回路品質が向上する。
また、期待値の作成時間が短縮でき、論理検証工程の短縮につながる。また、検証目標を明確にし、個人差や仕様の勘違いによる不具合を減らすことができる。
100 論理検証装置
101 コマンド送信・制御モデル
102 コマンド生成モデル
103 メモリ規格パラメータ記憶部
104 モニタモデル
105 シナリオ記憶部
106 検証対象(DUT)
107 DDR−SDRAM対向モデル
108 期待値生成モデル
特開2002−312416号公報

Claims (5)

  1. CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリに供給するメモリコントローラの論理を検証する論理検証装置であって、
    前記メモリの規格情報を記憶したメモリ規格情報記憶手段と、
    前記規格情報が有する規格毎のアドレス対応情報に従い、第1のコマンドから変換される第2のコマンドの期待値を生成する期待値生成手段と、
    第1のコマンドをメモリコントローラに発行するコマンド発行手段と、
    メモリコントローラが第1のコマンドから変換した第2のコマンドを監視し、前記期待値と比較する監視手段と、
    を有することを特徴とする論理検証装置。
  2. 前記メモリの特定の第2アドレスを前記規格情報を参照して特定し、前記アドレス対応情報に基づき、該第2アドレスから、第1のコマンドに含まれる第1アドレスを決定するコマンド生成手段、
    を有することを特徴とする請求項1記載の論理検証装置。
  3. 前記コマンド発行手段は、前記コマンド生成手段が生成した第1アドレスと、第1のコマンドのその他のパラメータが取り得る値を組み合わせて、第1のコマンドを生成する、
    ことを特徴とする請求項2記載の論理検証装置。
  4. 前記第2アドレスは、前記メモリの物理的な構造の境界付近のアドレスである、
    ことを特徴とする請求項2又は3記載の論理検証装置。
  5. CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリに供給するメモリコントローラの論理を検証する論理検証方法であって、
    メモリ規格情報記憶手段に記憶された前記メモリの規格情報が有するアドレス対応情報に従い、期待値生成手段が、第1のコマンドから変換される第2のコマンドの期待値を生成するステップと、
    コマンド発行手段が、第1のコマンドをメモリコントローラに発行するステップと、
    監視手段が、メモリコントローラが第1のコマンドから変換した第2のコマンドを監視し、前記期待値と比較するステップと、
    を有することを特徴とする論理検証方法。
JP2009208464A 2009-09-09 2009-09-09 論理検証装置、論理検証方法 Expired - Fee Related JP5233924B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009208464A JP5233924B2 (ja) 2009-09-09 2009-09-09 論理検証装置、論理検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009208464A JP5233924B2 (ja) 2009-09-09 2009-09-09 論理検証装置、論理検証方法

Publications (2)

Publication Number Publication Date
JP2011059953A JP2011059953A (ja) 2011-03-24
JP5233924B2 true JP5233924B2 (ja) 2013-07-10

Family

ID=43947513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009208464A Expired - Fee Related JP5233924B2 (ja) 2009-09-09 2009-09-09 論理検証装置、論理検証方法

Country Status (1)

Country Link
JP (1) JP5233924B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5975811B2 (ja) 2012-09-12 2016-08-23 レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド 計測した信号トレースデータのインテグリティ・チェック
TWI715162B (zh) * 2019-08-26 2021-01-01 點序科技股份有限公司 記憶體驗證方法及記憶體驗證系統

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4475621B2 (ja) * 2001-04-18 2010-06-09 キヤノン株式会社 メモリ制御回路の論理検証装置及び方法
JP2006227668A (ja) * 2005-02-15 2006-08-31 Ricoh Co Ltd メモリモデルとプログラムと論理回路検証方法

Also Published As

Publication number Publication date
JP2011059953A (ja) 2011-03-24

Similar Documents

Publication Publication Date Title
DE102011089889A1 (de) Verfahren zum Booten eines Informationshandhabungssystems und Informationshandhabungssystem
CN101916593B (zh) 一种内存测试系统
CN111951842B (zh) 同时存取动态随机存取存储器的方法及存储器控制器
US11461028B2 (en) Memory writing operations with consideration for thermal thresholds
KR101456976B1 (ko) 메모리 테스트 디바이스 및 메모리 테스트 방법
US20120096218A1 (en) Apparatus and methods for tuning a memory interface
US8423842B2 (en) Test apparatus and test method for testing a memory device
JP5233924B2 (ja) 論理検証装置、論理検証方法
US7886205B2 (en) Verification of a data processing system using overlapping address ranges
CN112000591B (zh) 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质
CN114090499A (zh) 访存单元验证系统、设备及存储介质
CN114610557B (zh) 设备驱动单元的测试方法及装置
JP2017215732A (ja) メモリおよび情報処理装置
US11120851B1 (en) Memory apparatus and burst read and burst write method thereof
US9971860B2 (en) Allocating plurality of RAMs to FPGA block RAM
JP2009301612A (ja) 半導体記憶装置
CN102141967B (zh) 总线时序参数配置方法和装置
CN117407299B (zh) 模型测试方法和系统
CN118034991B (zh) 内存数据的访问方法、装置、电子设备及可读存储介质
JP4461934B2 (ja) キャッシュメモリ試験システム、試験方法、試験プログラム
KR20210103069A (ko) 메모리 테스트 장치 및 이의 동작 방법
CN112286468B (zh) 一种存储器件的访问控制方法、装置及电子设备
JP5751628B2 (ja) 記憶装置および記憶装置制御方法
JP2006039843A (ja) Ramテスト回路、情報処理装置、及びramテスト方法
CN118152311B (zh) 数据处理方法、装置、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130311

R151 Written notification of patent or utility model registration

Ref document number: 5233924

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees