JP2011059953A - Logic verification device and logic verification method - Google Patents
Logic verification device and logic verification method Download PDFInfo
- Publication number
- JP2011059953A JP2011059953A JP2009208464A JP2009208464A JP2011059953A JP 2011059953 A JP2011059953 A JP 2011059953A JP 2009208464 A JP2009208464 A JP 2009208464A JP 2009208464 A JP2009208464 A JP 2009208464A JP 2011059953 A JP2011059953 A JP 2011059953A
- Authority
- JP
- Japan
- Prior art keywords
- command
- memory
- address
- expected value
- logic verification
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、DDR等のメモリにアクセスするメモリコントローラを検証する論理検証装置及び論理検証方法に関する。 The present invention relates to a logic verification apparatus and a logic verification method for verifying a memory controller that accesses a memory such as DDR.
各種の情報処理装置に搭載されるメモリチップにアクセスするには、CPUから発生したメモリへのアクセス要求(メモリへの書き込み又は読出し)を、当該メモリ回路に適応したアクセス要求(アドレスの指定、アクセス単位等)に変換する必要がある。この変換を行うのがメモリコントローラである。このメモリコントローラは、アドレス等のアクセス要求を変換する論理演算を行うので、設計時や設計を検証するテスト時においては、論理演算が適切に行われているかを検証する論理検証を行なう必要がある(例えば、特許文献1参照。)。 In order to access memory chips mounted on various information processing apparatuses, an access request (writing or reading to the memory) to the memory generated from the CPU is made an access request (address designation, access) adapted to the memory circuit. Unit). The memory controller performs this conversion. Since this memory controller performs a logical operation for converting an access request such as an address, it is necessary to perform a logical verification for verifying whether the logical operation is properly performed at the time of designing or testing for verifying the design. (For example, refer to Patent Document 1).
特許文献1には、CPUが要求したアクセスによってシステムバス上に発生するトランザクションと、メモリモデルがメモリ制御回路からのアクセスに応答して発生したトランザクションとを用いてメモリ制御回路を論理検証する技術が開示されている。 Japanese Patent Application Laid-Open No. 2004-133867 discloses a technique for logically verifying a memory control circuit using a transaction generated on a system bus by an access requested by a CPU and a transaction generated by a memory model in response to an access from the memory control circuit. It is disclosed.
しかしながら、DDR−SDRAM(Double Date Rate Synchronous Dynamic Random Access)のような大容量のメモリのメモリコントローラの論理検証は、内部的には大容量のアドレスとコマンドを組み合わせて実行することや、外部的には様々なDDR-SDRAMの種類及びDDR-SDRAMの周波数等との組み合わせにて実行すること、が必要で論理検証項目が膨大となり論理検証の内容も大規模になっている。 However, logic verification of a memory controller of a large capacity memory such as DDR-SDRAM (Double Date Rate Synchronous Dynamic Random Access) is performed internally by combining a large capacity address and command, or externally. Needs to be executed in combination with various DDR-SDRAM types and DDR-SDRAM frequencies, etc., and the number of logic verification items is enormous, and the contents of logic verification are large.
また、従来は論理検証環境、論理検証シナリオが検証対象(DUT:Design Under Test)の中身(処理内容、ロジックパス等)に依存する傾向が強かった。つまり、DUTの構造からあるアドレスの境界を検証するというように、論理検証シナリオがDUTの作り方に依存することが多い。このため、例えば、DUTの中身をそのまま期待値(DUTが正常である場合に出力されるであろうデータ)の生成に使用することになり(期待値とテスト結果が一致することが当然になる)、本来の不具合が検出できないという問題があった。 Conventionally, the logic verification environment and the logic verification scenario tend to depend on the contents (processing contents, logic path, etc.) of the verification target (DUT: Design Under Test). In other words, the logic verification scenario often depends on how the DUT is created, such as verifying the boundary of a certain address from the structure of the DUT. For this reason, for example, the contents of the DUT are used as they are for the generation of expected values (data that will be output when the DUT is normal) (it is natural that the expected values match the test results). ), There was a problem that the original failure could not be detected.
論理検証シナリオでは、ユーザ側コマンドを入力(アクセス要求)した際のDUTの出力が正しいか否かを検証するが、ユーザ側コマンドのパラメータの中で、特にアドレスに関しては、膨大なアドレスから単純にランダムに実施していても、十分な検証は困難である。例えば、各メモリの各モード(周波数、バーストモード等)において、メモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)に対して、抜けなくユーザ側コマンドを生成することは困難になっている。 In the logic verification scenario, it is verified whether or not the output of the DUT when the user side command is input (access request) is correct. Even if it is carried out randomly, it is difficult to verify sufficiently. For example, in each mode (frequency, burst mode, etc.) of each memory, it becomes difficult to generate user-side commands without omissions for memory delimiters (address boundaries, CS boundaries, BANK boundaries, etc.). ing.
また、特許文献1に記載された検証手法では、ユーザ側コマンドとメモリ側コマンドは一対一であることが前提である。しかし、一般的にはバーストアクセスをメモリコントローラが持っていることが主流であること、また、メモリ側コマンド数はユーザ側とメモリコントローラ間のバス幅と、メモリバス幅との関係によって変わる可能性があるため、ユーザ側コマンドと、メモリ側コマンドは一対一であるとは限らない。この場合、メモリコントローラが出力したアドレスだけでは、ユーザ側コマンドが、複数のメモリ側コマンドに正しく変換されたか否かの判断は困難である。
In the verification method described in
本発明は、種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供することを目的とする。 It is an object of the present invention to provide a logic verification apparatus and a logic verification method that enable logic verification corresponding to memories of various memory standards and that can perform logic verification without leaving a corner case.
上記課題に鑑み、本発明は、CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリ107に供給するメモリコントローラ106の論理を検証する論理検証装置100であって、メモリ107の規格情報を記憶したメモリ規格情報記憶手段103と、規格情報が有するアドレス対応情報に従い、第1のコマンドから変換される第2のコマンドの期待値を生成する期待値生成手段108と、第1のコマンドをメモリコントローラ106に発行するコマンド発行手段101と、メモリコントローラ106が第1のコマンドから変換した第2のコマンドを監視し、期待値と比較する監視手段104と、を有することを特徴とする。
In view of the above problems, the present invention is a
種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供すること。 To provide a logic verification device and a logic verification method that enable logic verification corresponding to memories of various memory standards and that can perform logic verification without leaving a corner case.
以下、本発明を実施するための形態について説明する。
本実施形態の論理検証装置100は、DUT(Design Under Test)が正常である場合に出力されるであろう期待値を、メモリ規格から自動生成することで、期待値生成の負荷を少なくする。また、メモリ規格から自動生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、種々のメモリ規格のメモリに対応した論理検証が可能となる。また、膨大なアドレスからランダムに選定したアドレスを入力しても、論理検証が可能となる。すなわち、指定したユーザ側コマンドから期待値を自動生成するだけでなく、ランダムシナリオでの論理検証が可能になる。
Hereinafter, modes for carrying out the present invention will be described.
The
また、論理検証シナリオ及びその結果に対する期待値も、メモリの規格を元に作成することで、DUTの中身に左右されることがなく、検証目標を明確にし、仕様の勘違いによる不具合を減らすことができる。 In addition, by creating the logic verification scenario and the expected value for the result based on the memory standard, the verification target can be clarified and defects caused by misunderstanding of specifications can be reduced without being influenced by the contents of the DUT. it can.
また、本実施形態の論理検証装置100は、メモリ規格からメモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)を自動的に抽出し、区切り位置に対応するユーザ側コマンドを網羅的に生成する。これにより、論理検証項目のコーナーケース(見落としがちな検証項目)を重点的に論理検証できるので、抜けのない論理検証が可能になる。
In addition, the
そして、自動生成されたコーナーケースに対応したユーザ側コマンドと、ランダムに生成したユーザ側コマンドとを用いて、論理検証を並行して行うことで、短期間でより多くの論理検証シナリオを実施し、DUTの品質を向上させることができる。 And, by performing logic verification in parallel using user-side commands corresponding to automatically generated corner cases and randomly generated user-side commands, more logic verification scenarios can be implemented in a short period of time. , DUT quality can be improved.
図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と接続されている。
FIG. 1 shows an example of an overall configuration diagram of the
論理検証装置100はコンピュータを実体とし、不図示のCPU、RAM、ROM、HDD、ASIC、バス等を有する。また、論理検証装置100は、マウスやキーボードなどの入力装置、論理検証の結果を表示するディスプレイ、インターネットやLANなどのネットワークに接続するNIC(Network Interface Card)を有する。また、ROM又はHDDにはCPUが実行するためのプログラムが記憶されている。このプログラムは、メモリカード等の記憶媒体に記憶して配布されたり、NICを介して不図示のサーバから配布される。
The
シナリオ記憶部105及びメモリ規格パラメータ記憶部103は、コンピュータのRAMやHDD等に実装されている。また、コマンド送信・制御モデル101、コマンド生成モデル102、期待値生成モデル108、モニタモデル104、DDR−SDRAM対向モデル107は、例えば、エミュレータにより生成された機能ブロック又はCPUがプログラムを実行して提供される機能ブロックである。検証対象106は好ましくは実機であるが、同様にエミュレータ又はCPUがプログラムを実行することで提供されていてもよい。
The
検証対象106は例えばメモリ制御回路やメモリコントローラである。検証対象106は、ユーザ側コマンドからメモリ側コマンドを生成してDDR−SDRAM対向モデル107に供給し、DDR−SDRAM対向モデル107からメモリ側コマンドに応じた応答を受け取る。
The
検証対象106の検証について簡単に説明する。コマンド送信・制御モデル101はユーザ側コマンドを検証対象106に送信する。検証対象106は、ユーザ側コマンドによって要求されたDDR−SDRAM対向モデル107のアドレス空間に対してアクセス(データの書き込み、読み出し)を行うため、ユーザ側コマンドをメモリ側コマンドに変換する。DDR−SDRAM対向モデル107はメモリ側コマンドに応じた応答(例えば、読み出したデータ、書き込み結果等)を検証対象106に返す。
The verification of the
モニタモデル104には、期待値生成モデル108から、後述する期待値が送出される。また、モニタモデル104は、検証対象106がDDR−SDRAM対向モデル107に出力したメモリ側コマンドをモニタリングしている。モニタモデル104は、期待値とメモリ側コマンドを比較して一致するか否かを判定する。一致すれば、検証対象106は仕様通りに動作していることになる。本実施形態では、この期待値をメモリ規格から生成することが1つの特徴である。
An expected value, which will be described later, is sent from the expected
シナリオ記憶部105には少なくとも1つ以上のユーザ側コマンドが記憶されている。また、メモリ規格パラメータ記憶部103には、DDR−SDRAM対向モデル107のメモリ規格パラメータが記憶されている。なお、メモリ規格は、例えばDDR1、DDR2、DDR3等であり、メモリ規格パラメータ記憶部103には各メモリ規格のメモリ規格パラメータが記憶されている。
The
メモリ規格パラメータは、例えば、アドレステーブル1031、メモリバス幅1032がある。アドレステーブル1031は、DDR−SDRAM対向モデル107のメモリアドレス空間と、システム側(=ユーザ側コマンド。アプリケーション側、CPU側のアドレス)のアドレス空間を対応づけるテーブルである。また、メモリバス幅1032は、8ビット、16ビット、32ビット、64ビット等、メモリバスのビット数である。
The memory standard parameters include, for example, an address table 1031 and a
〔期待値の生成〕
期待値の生成について説明する。まず、コマンド送信・制御モデル101は、シナリオ記憶部105からユーザ側コマンドを1つずつ読み出し、検証対象106に送出する。このユーザ側コマンドは、コマンド送信・制御モデル101が例えばランダムに生成したものである。また、コマンド送信・制御モデル101は、同じユーザ側コマンドを期待値生成モデル108にも送出する。なお、後述するように、シナリオ記憶部105にはアドレステーブル1031とメモリバス幅1032から生成されたユーザ側コマンドも含まれる。
[Generation of expected values]
The generation of the expected value will be described. First, the command transmission /
期待値生成モデル108は、コマンド送信・制御モデル101からのユーザ側コマンドを受けると、同時または前後してメモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読みだす。コマンド生成モデル102は、アドレステーブル1031とメモリバス幅1032に基づき、ユーザ側コマンドからメモリ側コマンドを生成する。
When the expected
図2は、期待値の生成を模式的に示す図の一例である。図2において図1と同一部には同一の符号を付しその説明は省略する。ユーザ側コマンド(シナリオ)には、リード/ライト信号、アドレス、バースト数、バイトイネーブルが含まれる。リード/ライト信号は、DDR−SDRAM対向モデル107からデータを読み出すのか書き込むのかを指定する。アドレスはCPUやOSなどシステム側のアドレス空間のアドレスである。
FIG. 2 is an example of a diagram schematically illustrating generation of an expected value. 2, the same parts as those in FIG. 1 are denoted by the same reference numerals, and the description thereof is omitted. The user side command (scenario) includes a read / write signal, an address, the number of bursts, and a byte enable. The read / write signal specifies whether to read or write data from the DDR-SDRAM
バースト数は、1度の読み出し/書き込みで連続して読み出し/書き込まれるデータのバイト数である。例えば、バースト数が8でアドレスバスの幅が16ビットなら、16bit×8=16バイトが1回のバーストで読み出し/書き込まれる。バイトイネーブルは、全データバス(例えば16ビット)のうち有効なデータ(例えば上位8ビット、下位8ビット)を指定する。 The number of bursts is the number of bytes of data that are read / written continuously by one read / write. For example, if the number of bursts is 8 and the width of the address bus is 16 bits, 16 bits × 8 = 16 bytes are read / written in one burst. The byte enable specifies valid data (for example, upper 8 bits and lower 8 bits) out of all data buses (for example, 16 bits).
まず、期待値生成モデル108は、リード/ライト信号に基づきメモリ側コマンドのリード/ライトを決定する。次に、期待値生成モデル108は、アドレステーブル1031を参照して、ユーザ側コマンドのアドレスからメモリ側コマンドのアドレス(ROWアドレス、Columnアドレス、又は、BANKアドレス)を決定する。
First, the expected
図3は、アドレステーブル1031の一例を模式的に説明する図である。図3の行方向はDDR−SDRAM対向モデル107のメモリアドレス空間を、列方向はメモリデバイス(メモリの種類)を意味する。また、図3において、「Rxx」はROWアドレスを、「Cxx」はColumnアドレスを、「Bxx」はBANKアドレスを、それぞれ意味する。「na」はNonAvairable(使用不可)を意味する。
FIG. 3 is a diagram schematically illustrating an example of the address table 1031. The row direction in FIG. 3 means the memory address space of the DDR-
なお、列方向の「メモリサイズ×8」「メモリサイズ×16」の「×8」「×16」はメモリバス幅1032を示す。このように、メモリの種類によって同じシステム側のアドレスに対し、DDR−SDRAM対向モデル107のアドレスは異なる。アドレステーブル1031は規格と言うよりも仕様に近いので、アドレステーブル1031が変われば、当然、各ROW/Column/BANKアドレスが変わる。
Note that “× 8” and “× 16” of “memory size × 8” and “memory size × 16” in the column direction indicate the
一方、メモリの種類が決まっていて、DDR−SDRAM対向モデル107のアドレスが既知であれば、システム側のアドレスも一意に定まる。
On the other hand, if the type of memory is determined and the address of the DDR-SDRAM
図3に示すように、メモリバス幅1032が「×8」と「×16」ではそれぞれ、システム側のアドレスが同じでもDDR−SDRAM対向モデル107側に指定するアドレスは変わる。したがって、アドレステーブル1031を参照することで、期待値生成モデル108は、メモリバス幅1032に応じた調整も行ったことになる。
As shown in FIG. 3, when the
なお、ユーザ側コマンドのバイトイネーブルが変われば、メモリ側コマンドのアドレスのスタートアドレス(始点)が変わる。 If the byte enable of the user side command is changed, the start address (start point) of the address of the memory side command is changed.
このように、ユーザ側コマンドがメモリ側コマンドにどのように変換されるかはメモリ規格に依存するが、換言すれば、メモリ規格に応じて、メモリ側コマンドはユーザ側コマンドから一意に定まる。 As described above, how the user-side command is converted into the memory-side command depends on the memory standard. In other words, the memory-side command is uniquely determined from the user-side command according to the memory standard.
また、DDR−SDRAM対向モデル107には、アクセス要求が有効か否かを指定するCS(チップセレクト)信号の端子がある。1つの検証装置には複数のDDR−SDRAM対向モデル107が搭載されることも少なくないためである。DDR−SDRAM対向モデル107はCS信号が「Low」の場合に、読み込み又は書き込みが許可される。
The DDR-SDRAM
検証対象106は複数のDDR−SDRAM対向モデル107からアクセス対象を特定するため複数のCS端子を備える。このため、メモリ側コマンドにはCS端子を特定するCS情報が必要になる。期待値生成モデル108は、アドレステーブル1031等に基づき、アクセス対象のチップを選択するCS情報を生成する。
The
以上の3つのアドレスとCS情報が、1つのメモリ側コマンドである。バースト数に応じて、複数のメモリ側コマンドがDDR−SDRAM対向モデル107に送信されるので、一つのユーザ側コマンドに対し、コマンド生成モデル102はその全て(バースト回数分)を期待値として生成する。この期待値はモニタモデル104に送出され、モニタモデル104はキュー構造(FIFO方式)の記憶領域(以下、単に「キュー配列」という)に期待値を記憶する。
The above three addresses and CS information are one memory side command. Since a plurality of memory side commands are transmitted to the DDR-
後述するように、コマンド生成モデル102はメモリ規格からユーザ側コマンドを生成するので、期待値生成モデル108は、コマンド生成モデル102が生成したユーザ側コマンドからも期待値を生成しておく。こうすることで、モニタモデル104は、コーナーケースのユーザ側コマンドに対しても、ランダムにアドレスを指定するユーザ側コマンドに対しても検証可能になる。
As will be described later, since the
なお、ユーザ側コマンドがDDR−SDRAM対向モデル107のメモリ領域外へのアクセスを要求する場合は、検証対象106はDDR−SDRAM対向モデル107からエラー信号を受け取るはずである。したがって、ユーザ側コマンドがDDR−SDRAM対向モデル107のメモリ領域外へのアクセスを要求する場合、期待値生成モデル108は、アドレステーブル1031を参照して、エラー信号(例えば割り込みを受けること等)を期待値として生成する。
When the user side command requests access to the outside of the memory area of the DDR-
図4は、期待値生成モデル108が、ユーザ側コマンドをメモリ側コマンドに変換して期待値を生成する手順を示すフローチャート図の一例である。
FIG. 4 is an example of a flowchart illustrating a procedure in which the expected
まず、期待値生成モデル108は、受け取ったユーザ側コマンドに対し、メモリ領域外へのアクセスか否かを判定する(S10)。すなわち、期待値生成モデル108は、アドレステーブル1031を参照してユーザ側コマンドのアドレスをメモリ側コマンドのアドレスに変換し、変換後のアドレスがDDR−SDRAM対向モデル107のアドレス空間に含まれるか否かを判定する。メモリ領域外へのアクセスの場合(S10のYes)、期待値生成モデル108は「割り込みの種類」などを期待値として生成する(S50)。
First, the expected
メモリ領域外へのアクセスでない場合(S10のNo)、期待値生成モデル108は、メモリ側コマンドの発行数nを決定する(S20)。上記のように、メモリ側コマンドの発行数nはバースト数の関数である。図2ではn=3個の発行数となっている。
When the access is not outside the memory area (No in S10), the expected
ついで、期待値生成モデル108は、n個のメモリ側コマンドを生成する。すなわち、n=1からn=3になるまで(S30)、メモリ側コマンドを生成する(S40)。
Next, the expected
上記のように期待値生成モデル108は、ユーザ側コマンドのアドレスからCS情報、メモリ側コマンドのアドレス、を生成する。CS情報は、複数のDDR−SDRAM対向モデル107から1つのDDR−SDRAM対向モデル107を選択するものなので、ユーザ側コマンドのアドレスとアドレステーブル1031から生成できる。メモリ側コマンドのアドレスは、ユーザ側コマンドのアドレスと、図3のアドレステーブル1031(及び、これに含まれる及びメモリバス幅1032)から生成される。
As described above, the expected
また、期待値生成モデル108はデータマスクを生成する。データマスクは、バイトイネーブルに指定される有効なデータのみを指定する信号を生成するものである。なお、データマスクは、DDR−SDRAM対向モデル107から読み出したデータに対し施されるマスクなので、図示した期待値には含まないこととした。
The expected
期待値生成モデル108は、n個のメモリ側コマンドを生成すると(S30のYes)、モニタモデル104に送出する。モニタモデル104は複数のメモリ側コマンドを期待値として、キュー配列に記憶する(S50)。
When the expected
〔モニタモデル104による検証〕
図5は、モニタモデル104による検証を模式的に示す図の一例である。図5において図1と同一部には同一の符号を付しその説明は省略する。図4の処理により、モニタモデル104のキュー配列には、期待値が記憶されている。
[Verification by monitor model 104]
FIG. 5 is an example of a diagram schematically showing verification by the
検証対象106は、コマンド生成モデル102と同じメモリ側コマンドを生成することが期待されている。このため、モニタモデル104は、検証対象106とメモリモデルとのインターフェースをモニタリングし、検証対象106により生成されたメモリ側コマンドが、期待値と同じか否かを判定する。
The
モニタモデル104は、コマンド送信・制御モデル101から送出されたユーザ側コマンドと、期待値生成モデル108から送出された期待値を対応づけながらキュー構造のリストに格納する。したがって、検証対象106に入力されたユーザ側コマンドに対応するメモリ側コマンドが、入力順に検証対象106から出力されない場合でも、モニタモデル104は期待値とメモリ側コマンドとを比較して、正しいか否かを確認することができる。
The
また、キュー構造で格納していることより、論理検証の(シミュレーション)終了時に、メモリ側コマンドに発行されるべきコマンドが全て発行されたか否かを確認することができる。 Further, since the queue structure is stored, it is possible to confirm whether or not all commands that should be issued to the memory side command have been issued at the end of logic verification (simulation).
〔ユーザ側コマンドのパラメータ組み合わせリストの生成〕
検証対象106であるメモリコントローラによる、アドレスの検証に関して重要になってくるのは、メモリの区切り位置(アドレス境界、CS境界、または、BANK境界等)のアドレスを検証したか否かである。そこで、コマンド生成モデル102が、これらの境界又は境界付近の境界アドレスをアドレステーブル1031より生成し、DDR−SDRAM対向モデル107の境界アドレスとして取得しておく。これをユーザ側コマンドのアドレスに変換することで、論理検証時のコーナーケースに対応したユーザ側コマンドのアドレスを生成することができる。
[Generate parameter combination list for user command]
What becomes important regarding the verification of the address by the memory controller that is the
また、ユーザ側コマンドのアドレス以外のパラメータ(リード/ライト信号、バースト数、バイトイネーブル)を、境界アドレスに対応したユーザ側コマンドのアドレスと組み合わせることで、コーナーケースを網羅的に検証するユーザパラメータを生成できる。したがって、複数の境界アドレスに対応したユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブル、がユーザ側コマンドのパラメータ組み合わせリストである。 Also, by combining parameters other than the user side command address (read / write signal, burst count, byte enable) with the user side command address corresponding to the boundary address, user parameters for comprehensive verification of the corner case Can be generated. Therefore, the user side command address corresponding to a plurality of boundary addresses, the read signal or write signal, various burst numbers, and various byte enables are the parameter combination list of the user side command.
図6は、シナリオ(ユーザ側コマンド)の生成を模式的に示す図の一例である。コマンド生成モデル102は、メモリ規格パラメータ記憶部103からアドレステーブル1031を読み出して、メモリの区切り位置に対応する境界アドレスを決定する。
FIG. 6 is an example of a diagram schematically illustrating generation of a scenario (user side command). The
コマンド生成モデル102は、まずDDR−SDRAM対向モデル107のアドレステーブル1031とメモリバス幅1032より、アドレス(ROW/Column/BANK)境界付近と、1つのチップ(DDR−SDRAM対向モデル107)の境界付近のアドレスを抽出する。
First, the
図3の「512M×8」を例にすれば、naとR12の境界、R11とC8の境界、C8とB2の境界、B0とC7の境界、C9とnaの境界、がそれぞれアドレス境界付近の境界アドレスである。また、最上部と最下部のnaがチップの境界付近の境界アドレスである。 Taking “512M × 8” in FIG. 3 as an example, the boundary between na and R12, the boundary between R11 and C8, the boundary between C8 and B2, the boundary between B0 and C7, and the boundary between C9 and na are respectively near the address boundary. A boundary address. Also, the uppermost and lowermost na are boundary addresses near the chip boundary.
これらアドレス境界付近の境界アドレスと、チップの境界付近の境界アドレスは、DDR−SDRAM対向モデル107のアドレスである。一方、生成したいのはユーザ側コマンド(システム側)のアドレスである。このため、コマンド生成モデル102は、アドレス境界付近とチップの境界付近の境界アドレスに変換される、ユーザ側コマンドのアドレスを生成する。上記のように、ユーザ側コマンドは、アドレステーブル1031とメモリバス幅1032に基づきメモリ側コマンドに変換されるので、メモリ側コマンドから、アドレステーブル1031とメモリバス幅1032に基づきユーザ側コマンドに逆に変換することで、ユーザ側コマンドのアドレスを生成できる。
These boundary addresses near the address boundary and the boundary addresses near the chip boundary are the addresses of the DDR-
図3の例では、naとR12の境界のユーザ側コマンドのアドレスは「A28、A27」、R11とC8の境界のユーザ側コマンドのアドレスは「A15、A14」、C8とB22の境界の境界のユーザ側コマンドのアドレスは「A14、A13」、B0とC7の境界のユーザ側コマンドのアドレスは「A11、A10」、C9とnaの境界のユーザ側コマンドのアドレスは「A5、A4」である。同様に、最上部と最下部のnaの境界のユーザ側コマンドのアドレスは「A31」「a」である。 In the example of FIG. 3, the address of the user side command at the boundary between na and R12 is “A28, A27”, the address of the user side command at the boundary between R11 and C8 is “A15, A14”, and the boundary of the boundary between C8 and B22 The address of the user side command is “A14, A13”, the address of the user side command at the boundary between B0 and C7 is “A11, A10”, and the address of the user side command at the boundary between C9 and na is “A5, A4”. Similarly, the addresses of the user side commands at the boundary between the top and bottom na are “A31” and “a”.
また、ユーザ側コマンドのパラメータ組み合わせリストのうち、リード/ライト信号はリードとライトの2種類、バースト数は1〜8程度の8種類、バイトイネーブルは4〜8種類程度を、想定すればよい。これらは予めシナリオ記憶部105等に記憶しておくことができる。
Further, in the parameter combination list of the user side command, two types of read / write signals, read and write, eight types of bursts of about 1 to 8, and byte enable of about 4 to 8 types may be assumed. These can be stored in advance in the
コマンド生成モデル102は、複数のユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブルから、それぞれ1つづつ取り出しそれらを組み合わせることで、ユーザ側コマンドを生成する。ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを生成することで、コーナーケースのアドレスを網羅的に検証するユーザ側コマンドを生成できる。
The
コマンド生成モデル102は、生成したユーザ側コマンドのパラメータ組み合わせリストをシナリオ記憶部105に記憶する。予め組み合わせてユーザ側コマンドとして記憶してもよい。検証時には、コマンド送信・制御モデル101又はコマンド生成モデル102が、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを実行して、ユーザ側コマンドを生成を生成する。
The
図7は、コマンド生成モデル102が境界アドレスを網羅したユーザ側コマンドを生成する手順を示すフローチャート図の一例である。図7のフローチャート図は、例えば、ユーザが論理検証装置100にユーザ側コマンドの生成を指示することでスタートする。
FIG. 7 is an example of a flowchart illustrating a procedure in which the
まず、コマンド生成モデル102は、メモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読み出す(S110)。
First, the
次いで、コマンド生成モデル102は、DDR−SDRAM対向モデル107の境界アドレスを生成する(S120)。コマンド生成モデル102は、メモリ規格パラメータに基づき、アドレス(ROW/Column/BANK)境界付近と、チップの境界付近の境界アドレスを抽出する。
Next, the
次いで、コマンド生成モデル102は、境界アドレスを、アドレステーブル1031に基づきユーザ側コマンドのアドレスに逆変換する(S130)。ユーザ側コマンドのアドレスは複数個生成される。
Next, the
コマンド生成モデル102はこのアドレスに、リード/ライト信号、種々のバースト数、種々のバイトイネーブルを添付して、ユーザ側コマンドのパラメータ組み合わせリストを生成する(S140)。
The
なお、期待値生成モデル108は、このパラメータ組み合わせリストを組み合わせて、期待値を生成しておく。
Note that the expected
〔ユーザ側コマンドのパラメータ組み合わせリストを組み合わせた論理検証、ランダムに生成したユーザ側コマンドによる論理検証〕
ユーザ側コマンドのパラメータ組み合わせリストを用いてユーザ側コマンドを生成することでコーナーケースを網羅的に論理検証でき、さらに、ランダムにユーザ側コマンドを生成することで膨大なアドレスに対し論理検証できる。
[Logic verification by combining parameter combinations of user side commands, logical verification by randomly generated user side commands]
By generating the user side command using the parameter combination list of the user side command, the corner case can be comprehensively verified, and further, by randomly generating the user side command, the logical verification can be performed for a large number of addresses.
図8は、本実施形態の論理検証装置100が論理検証する手順を示すフローチャート図の一例を示す。図8のフローチャート図は、例えば、ユーザが論理検証の開始を指示するとスタートする。図7のフローチャート図に続いて自動的にスタートしてもよい。
FIG. 8 shows an example of a flowchart showing a procedure of logical verification performed by the
まず、コマンド送信・制御モデル101は、次のいずれかの終了条件を判定する(S210)。
(a)指定回数だけユーザ側コマンドを発行したか
(b)ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせでユーザ側コマンドを発行し、かつ、十分な数のユーザ側コマンドをランダムに発行したか
(a)を終了条件とする場合、ユーザは論理検証装置100に指定回数を入力装置を介して入力する。論理検証装置100は、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせに必要な回数に、ユーザ側コマンドのランダムな発行のためのマージンを見込んで、入力可能な最低の回数以上の指定回数を受け付ける。
First, the command transmission /
(A) Is the user-side command issued a specified number of times? (B) Is the user-side command issued for all combinations in the parameter combination list of the user-side command and whether a sufficient number of user-side commands have been issued at random? When (a) is set as the end condition, the user inputs the specified number of times to the
終了条件が成立しない場合(S210のNo)、コマンド送信・制御モデル101は、カウンタmが要素数になったか否かを判定する(S220)。要素数は、ユーザ側コマンドのパラメータの数であるので「4」である。また、カウンタmは1,2,3、4の値を取る。
If the end condition is not satisfied (No in S210), the command transmission /
カウンタmが要素数に到達していない場合(S220のNo)、コマンド送信・制御モデル101は、「組み合わせ読み出し」か「ランダム読み出し」かを判定する(S230)。コマンド送信・制御モデル101は、「組み合わせ読み出し」と「ランダム読み出し」を自動的に切り替える。例えば、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせによりユーザ側コマンドの発行が終了すると、ランダム読み出しに移行する。
When the counter m has not reached the number of elements (No in S220), the command transmission /
「組み合わせ読み出しの場合」、コマンド送信・制御モデル101は、シナリオ記憶部105に記憶されたパラメータ組み合わせリストの各要素を1つ読み出す(S240)。したがって、これを4回繰り返す。
In the case of “read combination”, the command transmission /
「ランダム読み出しの場合」、コマンド送信・制御モデル101は、ユーザ側コマンドの各要素の1つから、適当な値を決定する(S250)。コマンド送信・制御モデル101は、システム側のアドレスから任意のアドレスを、リード/ライト信号から任意にいずれかを、任意のバースト数を、また、任意のバイトイネーブルをランダムに決定する。取り得る任意の上限と下限は予め定められている。これを4回繰り返すことで、任意のユーザ側コマンドを生成できる。
In the case of “random reading”, the command transmission /
ステップS220において、カウンタmが要素数になった場合(S220のYes)、コマンド送信・制御モデル101は、ユーザ側コマンドを発行するためのコマンド発行関数を実行する(S260)。
In step S220, when the counter m reaches the number of elements (Yes in S220), the command transmission /
その後、コマンド送信・制御モデル101が、コマンド間に間隔を設けるため待機時間だけ待機する(S270)。待機時間はDDR−SDRAM対向モデル107の応答時間(リード時間/ライト時間)等により定まる。また、ユーザが入力装置から設定してもよい。
Thereafter, the command transmission /
論理検証装置100は、ステップS210〜S270を繰り返し、上記の終了条件が終了すると論理検証を終了する。
The
以上説明したように、本実施形態の論理検証装置100は、メモリ規格パラメータに基づき期待値を生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、膨大なアドレスからのランダムの入力パラメータに対しても、論理検証が可能となる。
As described above, the
また、本実施形態の論理検証装置100は、メモリ規格パラメータからユーザ側コマンドのパラメータを生成することで、論理検証項目のコーナーケースを抜けなく論理検証できる。メモリのコーナーケースのパラメータを自動的に発生できるため、抜けが減ることになり、回路品質が向上する。例えば、DDR1、DDR2、DDR3に対して、すべて同じ環境で論理検証を実施することができる。今後の新しい規格のメモリに対しても、メモリ規格パラメータを追加・更新することで、同じ環境で論理検証を実施することができる。
In addition, the
また、アドレス領域外にも対応しているため、どのような組み合わせのユーザコマンドに対しても論理検証を実施することができる。ユーザ側コマンドに何ら入力制約を与えることなくランダムな入力を許容して、様々なパラメータの論理検証を実施することができ、回路品質が向上する。 In addition, since it supports outside the address area, logic verification can be performed for any combination of user commands. It is possible to perform logic verification of various parameters by allowing random input without giving any input restriction to the user side command, thereby improving circuit quality.
また、期待値の作成時間が短縮でき、論理検証工程の短縮につながる。また、検証目標を明確にし、個人差や仕様の勘違いによる不具合を減らすことができる。 In addition, the creation time of expected values can be shortened, leading to shortening of the logic verification process. In addition, the verification target can be clarified and defects caused by individual differences and misunderstanding of specifications can be reduced.
100 論理検証装置
101 コマンド送信・制御モデル
102 コマンド生成モデル
103 メモリ規格パラメータ記憶部
104 モニタモデル
105 シナリオ記憶部
106 検証対象(DUT)
107 DDR−SDRAM対向モデル
108 期待値生成モデル
DESCRIPTION OF
107 DDR-SDRAM
Claims (5)
前記メモリの規格情報を記憶したメモリ規格情報記憶手段と、
前記規格情報が有する規格毎のアドレス対応情報に従い、第1のコマンドから変換される第2のコマンドの期待値を生成する期待値生成手段と、
第1のコマンドをメモリコントローラに発行するコマンド発行手段と、
メモリコントローラが第1のコマンドから変換した第2のコマンドを監視し、前記期待値と比較する監視手段と、
を有することを特徴とする論理検証装置。 A logic verification device that verifies the logic of a memory controller that converts a first command issued by a CPU into a second command and supplies the converted command to a memory,
Memory standard information storage means for storing the standard information of the memory;
Expected value generating means for generating an expected value of the second command converted from the first command according to the address correspondence information for each standard included in the standard information;
Command issuing means for issuing a first command to the memory controller;
Monitoring means for monitoring a second command converted from the first command by the memory controller and comparing with the expected value;
A logic verification device comprising:
を有することを特徴とする請求項1記載の論理検証装置。 Command generating means for specifying a specific second address of the memory with reference to the standard information, and determining a first address included in the first command from the second address based on the address correspondence information;
The logic verification device according to claim 1, further comprising:
ことを特徴とする請求項2記載の論理検証装置。 The command issuing means generates a first command by combining the first address generated by the command generating means and values that other parameters of the first command can take.
The logic verification device according to claim 2, wherein:
ことを特徴とする請求項2又は3記載の論理検証装置。 The second address is an address near a boundary of a physical structure of the memory.
The logic verification apparatus according to claim 2 or 3, wherein
メモリ規格情報記憶手段に記憶された前記メモリの規格情報が有するアドレス対応情報に従い、期待値生成手段が、第1のコマンドから変換される第2のコマンドの期待値を生成するステップと、
コマンド発行手段が、第1のコマンドをメモリコントローラに発行するステップと、
監視手段が、メモリコントローラが第1のコマンドから変換した第2のコマンドを監視し、前記期待値と比較するステップと、
を有することを特徴とする論理検証方法。 A logic verification method for verifying a logic of a memory controller that converts a first command issued by a CPU into a second command and supplies the converted command to a memory,
In accordance with address correspondence information included in the memory standard information stored in the memory standard information storage unit, the expected value generation unit generates an expected value of the second command converted from the first command;
Command issuing means for issuing a first command to the memory controller;
Monitoring means for monitoring a second command converted from the first command by the memory controller and comparing with the expected value;
A logic verification method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009208464A JP5233924B2 (en) | 2009-09-09 | 2009-09-09 | Logic verification device and logic verification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009208464A JP5233924B2 (en) | 2009-09-09 | 2009-09-09 | Logic verification device and logic verification method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011059953A true JP2011059953A (en) | 2011-03-24 |
JP5233924B2 JP5233924B2 (en) | 2013-07-10 |
Family
ID=43947513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009208464A Expired - Fee Related JP5233924B2 (en) | 2009-09-09 | 2009-09-09 | Logic verification device and logic verification method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5233924B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902694B2 (en) | 2012-09-12 | 2014-12-02 | International Business Machines Corporation | Integrity check of measured signal trace data |
CN112433892A (en) * | 2019-08-26 | 2021-03-02 | 点序科技股份有限公司 | Memory verification method and memory verification system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312416A (en) * | 2001-04-18 | 2002-10-25 | Canon Inc | Logic verification device and method of memory control circuit |
JP2006227668A (en) * | 2005-02-15 | 2006-08-31 | Ricoh Co Ltd | Memory model, program and logic circuit verification method |
-
2009
- 2009-09-09 JP JP2009208464A patent/JP5233924B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312416A (en) * | 2001-04-18 | 2002-10-25 | Canon Inc | Logic verification device and method of memory control circuit |
JP2006227668A (en) * | 2005-02-15 | 2006-08-31 | Ricoh Co Ltd | Memory model, program and logic circuit verification method |
Non-Patent Citations (2)
Title |
---|
CSNJ200610054004; 濱川洋平、外3名: '画像処理用LSIのメモリコントローラにおけるランダム機能検証適用事例' 第67回(平成17年)全国大会講演論文集(1) , 20050302, pp.1-7〜1-8, 社団法人情報処理学会 * |
JPN6013008505; 濱川洋平、外3名: '画像処理用LSIのメモリコントローラにおけるランダム機能検証適用事例' 第67回(平成17年)全国大会講演論文集(1) , 20050302, pp.1-7〜1-8, 社団法人情報処理学会 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902694B2 (en) | 2012-09-12 | 2014-12-02 | International Business Machines Corporation | Integrity check of measured signal trace data |
US8913458B2 (en) | 2012-09-12 | 2014-12-16 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Integrity check of measured signal trace data |
CN112433892A (en) * | 2019-08-26 | 2021-03-02 | 点序科技股份有限公司 | Memory verification method and memory verification system |
Also Published As
Publication number | Publication date |
---|---|
JP5233924B2 (en) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108491B2 (en) | Control circuit, memory device including the same, and method | |
DE102011089889A1 (en) | A method of booting an information handling system and information handling system | |
KR101456976B1 (en) | Memory test device and testing method for memory | |
US5727182A (en) | Method and apparatus for adjusting output current values for expansion memories | |
US20120096218A1 (en) | Apparatus and methods for tuning a memory interface | |
JP2016136292A (en) | Semiconductor device, log acquisition method, and electronic apparatus | |
JP5233924B2 (en) | Logic verification device and logic verification method | |
TWI652676B (en) | Memory, memory controller and training method for memory system | |
JP2010160724A (en) | System, method and program for controlling memory and recording medium | |
US20030159102A1 (en) | Method for testing a universal serial bus host controller | |
US9971860B2 (en) | Allocating plurality of RAMs to FPGA block RAM | |
JP2017215732A (en) | Memory and information processing device | |
KR20030055150A (en) | Microprocessor and processing method of microprocessor | |
KR20210103069A (en) | Memory test device and operation method thereof | |
JP2009301612A (en) | Semiconductor memory device | |
JP2011034214A (en) | Memory controller | |
CN118034991B (en) | Memory data access method and device, electronic equipment and readable storage medium | |
KR20160005988A (en) | Method for testing array fuse of semiconductor apparatus | |
CN112286468B (en) | Access control method and device of storage device and electronic equipment | |
JP5751628B2 (en) | Storage device and storage device control method | |
JP2006039843A (en) | Ram test circuit, information processing apparatus, and ram testing method | |
US11120851B1 (en) | Memory apparatus and burst read and burst write method thereof | |
CN118152311B (en) | Data processing method, device, system, electronic equipment and storage medium | |
US10192634B2 (en) | Wire order testing method and associated apparatus | |
JPH10221410A (en) | Automatic logic verification system for lsi |
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 |