JP2011059953A - Logic verification device and logic verification method - Google Patents

Logic verification device and logic verification method Download PDF

Info

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
Application number
JP2009208464A
Other languages
Japanese (ja)
Other versions
JP5233924B2 (en
Inventor
Akifumi Sazuka
明文 佐塚
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/en
Publication of JP2011059953A publication Critical patent/JP2011059953A/en
Application granted granted Critical
Publication of JP5233924B2 publication Critical patent/JP5233924B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a logic verification device verifying a logic in accordance with memories of various specifications, without omitting a corner case. <P>SOLUTION: The logic verification device 100 is configured to verify a logic of a memory controller 106 which converts a first command issued by a CPU into a second command, and supplies it to a memory 107. The logic verification device 10 is provided with: a memory specification information storage means 103 for storing specification information of the memory 107; an expected value generation means 108 for generating an expected value of the second command converted from the first command according to address association information in the specification information; a command issuing means 101 for issuing the first command to the memory controller 106; and a monitoring means 104 for monitoring the second command converted from the first command by the memory controller 106, and for comparing it with the expected value. <P>COPYRIGHT: (C)2011,JPO&INPIT

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 Patent Document 1, it is assumed that the user side command and the memory side command are one-to-one. However, generally the memory controller has burst access, and the number of commands on the memory side may vary depending on the bus width between the user side and the memory controller and the relationship between the memory bus width. Therefore, the user side command and the memory side command are not necessarily one-to-one. In this case, it is difficult to determine whether or not the user-side command is correctly converted into a plurality of memory-side commands using only the address output from the memory controller.

本発明は、種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供することを目的とする。   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 logic verification device 100 that verifies the logic of the memory controller 106 that converts the first command issued by the CPU into the second command and supplies the second command to the memory 107. A memory standard information storage unit 103 that stores the standard information, an expected value generation unit 108 that generates an expected value of the second command converted from the first command according to the address correspondence information included in the standard information, A command issuing unit 101 for issuing the command to the memory controller 106, and a monitoring unit 104 that monitors the second command converted from the first command by the memory controller 106 and compares it with an expected value. To do.

種々のメモリ規格のメモリに対応して論理検証を可能とし、コーナーケースを抜けなく論理検証できる論理検証装置及び論理検証方法を提供すること。   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.

論理検証装置の全体構成図の一例である。It is an example of the whole block diagram of a logic verification apparatus. 期待値の生成を模式的に示す図の一例である。It is an example of the figure which shows the production | generation of an expected value typically. アドレステーブルの一例を模式的に説明する図である。It is a figure which illustrates an example of an address table typically. 期待値生成モデルがユーザ側コマンドをメモリ側コマンドに変換して期待値を生成する手順を示すフローチャート図の一例である。It is an example of the flowchart figure which shows the procedure in which an expected value production | generation model produces | generates an expected value by converting a user side command into a memory side command. モニタモデルによる検証を模式的に示す図の一例である。It is an example of the figure which shows the verification by a monitor model typically. シナリオ(ユーザ側コマンド)の生成を模式的に示す図の一例である。It is an example of the figure which shows the production | generation of a scenario (user side command) typically. コマンド生成モデルが境界付近のアドレスを網羅したユーザ側コマンドを生成する手順を示すフローチャート図の一例である。It is an example of the flowchart figure which shows the procedure in which the command generation model produces | generates the user side command which covered the address near a boundary. 論理検証装置が論理検証する手順を示すフローチャート図の一例を示す。An example of the flowchart figure which shows the procedure in which a logic verification apparatus performs logic verification is shown.

以下、本発明を実施するための形態について説明する。
本実施形態の論理検証装置100は、DUT(Design Under Test)が正常である場合に出力されるであろう期待値を、メモリ規格から自動生成することで、期待値生成の負荷を少なくする。また、メモリ規格から自動生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、種々のメモリ規格のメモリに対応した論理検証が可能となる。また、膨大なアドレスからランダムに選定したアドレスを入力しても、論理検証が可能となる。すなわち、指定したユーザ側コマンドから期待値を自動生成するだけでなく、ランダムシナリオでの論理検証が可能になる。
Hereinafter, modes for carrying out the present invention will be described.
The logic verification apparatus 100 of this embodiment reduces the load of expected value generation by automatically generating an expected value that will be output when the DUT (Design Under Test) is normal from the memory standard. In addition, by automatically generating from the memory standard, the range of logic verification that can cover the expected value is wider than generating the expected value depending on the contents of the DUT, and logic verification corresponding to memories of various memory standards can be performed. It becomes possible. Further, even if an address randomly selected from a large number of addresses is input, logic verification can be performed. That is, not only the expected value is automatically generated from the specified user side command, but also logic verification in a random scenario becomes possible.

また、論理検証シナリオ及びその結果に対する期待値も、メモリの規格を元に作成することで、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 logic verification device 100 according to the present embodiment automatically extracts memory delimiter positions (address boundary, CS boundary, BANK boundary, etc.) from the memory standard, and comprehensively includes user-side commands corresponding to the delimiter positions. To generate. As a result, the corner verification of the logic verification items (verification items that tend to be overlooked) can be logically focused, so that logic verification without omission becomes possible.

そして、自動生成されたコーナーケースに対応したユーザ側コマンドと、ランダムに生成したユーザ側コマンドとを用いて、論理検証を並行して行うことで、短期間でより多くの論理検証シナリオを実施し、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 logic verification device 100. The logic verification device 100 includes a scenario storage unit 105, a memory standard parameter storage unit 103, a command transmission / control model 101, a command generation model 102, an expected value generation model 108, a verification target (DUT) 106, a DDR-SDRAM opposing model 107, And a monitor model 104. The scenario storage unit 105 is connected to the command transmission / control model 101, the memory standard parameter storage unit 103, the expected value generation model 108, and the command generation model 102. The command transmission / control model 101 is connected to the verification target 106, the command generation model 102, the expected value generation model 108, and the monitor model 104. The command generation model 102 and the expected value generation model 108 are connected to the monitor model 104. The verification target 106 is connected to the monitor model 104 and the DDR-SDRAM opposing model 107.

論理検証装置100はコンピュータを実体とし、不図示のCPU、RAM、ROM、HDD、ASIC、バス等を有する。また、論理検証装置100は、マウスやキーボードなどの入力装置、論理検証の結果を表示するディスプレイ、インターネットやLANなどのネットワークに接続するNIC(Network Interface Card)を有する。また、ROM又はHDDにはCPUが実行するためのプログラムが記憶されている。このプログラムは、メモリカード等の記憶媒体に記憶して配布されたり、NICを介して不図示のサーバから配布される。   The logic verification apparatus 100 is a computer, and includes a CPU, RAM, ROM, HDD, ASIC, bus, and the like (not shown). The logic verification device 100 includes an input device such as a mouse and a keyboard, a display for displaying the result of logic verification, and a NIC (Network Interface Card) connected to a network such as the Internet or a LAN. In addition, a program to be executed by the CPU is stored in the ROM or the HDD. This program is stored in a storage medium such as a memory card and distributed, or distributed from a server (not shown) via the NIC.

シナリオ記憶部105及びメモリ規格パラメータ記憶部103は、コンピュータのRAMやHDD等に実装されている。また、コマンド送信・制御モデル101、コマンド生成モデル102、期待値生成モデル108、モニタモデル104、DDR−SDRAM対向モデル107は、例えば、エミュレータにより生成された機能ブロック又はCPUがプログラムを実行して提供される機能ブロックである。検証対象106は好ましくは実機であるが、同様にエミュレータ又はCPUがプログラムを実行することで提供されていてもよい。   The scenario storage unit 105 and the memory standard parameter storage unit 103 are mounted on a computer RAM, HDD, or the like. The command transmission / control model 101, the command generation model 102, the expected value generation model 108, the monitor model 104, and the DDR-SDRAM opposite model 107 are provided by, for example, a function block generated by an emulator or a CPU executing a program. Function block. The verification target 106 is preferably a real machine, but may also be provided by an emulator or CPU executing a program in the same manner.

検証対象106は例えばメモリ制御回路やメモリコントローラである。検証対象106は、ユーザ側コマンドからメモリ側コマンドを生成してDDR−SDRAM対向モデル107に供給し、DDR−SDRAM対向モデル107からメモリ側コマンドに応じた応答を受け取る。   The verification target 106 is, for example, a memory control circuit or a memory controller. The verification target 106 generates a memory side command from the user side command and supplies the memory side command to the DDR-SDRAM opposing model 107, and receives a response corresponding to the memory side command from the DDR-SDRAM opposing model 107.

検証対象106の検証について簡単に説明する。コマンド送信・制御モデル101はユーザ側コマンドを検証対象106に送信する。検証対象106は、ユーザ側コマンドによって要求されたDDR−SDRAM対向モデル107のアドレス空間に対してアクセス(データの書き込み、読み出し)を行うため、ユーザ側コマンドをメモリ側コマンドに変換する。DDR−SDRAM対向モデル107はメモリ側コマンドに応じた応答(例えば、読み出したデータ、書き込み結果等)を検証対象106に返す。   The verification of the verification target 106 will be briefly described. The command transmission / control model 101 transmits a user side command to the verification target 106. The verification target 106 converts the user side command into a memory side command in order to access (write and read data) the address space of the DDR-SDRAM opposite model 107 requested by the user side command. The DDR-SDRAM opposing model 107 returns a response (for example, read data, write result, etc.) according to the memory side command to the verification target 106.

モニタモデル104には、期待値生成モデル108から、後述する期待値が送出される。また、モニタモデル104は、検証対象106がDDR−SDRAM対向モデル107に出力したメモリ側コマンドをモニタリングしている。モニタモデル104は、期待値とメモリ側コマンドを比較して一致するか否かを判定する。一致すれば、検証対象106は仕様通りに動作していることになる。本実施形態では、この期待値をメモリ規格から生成することが1つの特徴である。   An expected value, which will be described later, is sent from the expected value generation model 108 to the monitor model 104. The monitor model 104 monitors the memory side command output from the verification target 106 to the DDR-SDRAM opposing model 107. The monitor model 104 compares the expected value with the memory side command and determines whether or not they match. If they match, the verification target 106 is operating as specified. In this embodiment, one feature is that the expected value is generated from the memory standard.

シナリオ記憶部105には少なくとも1つ以上のユーザ側コマンドが記憶されている。また、メモリ規格パラメータ記憶部103には、DDR−SDRAM対向モデル107のメモリ規格パラメータが記憶されている。なお、メモリ規格は、例えばDDR1、DDR2、DDR3等であり、メモリ規格パラメータ記憶部103には各メモリ規格のメモリ規格パラメータが記憶されている。   The scenario storage unit 105 stores at least one user side command. The memory standard parameter storage unit 103 stores memory standard parameters of the DDR-SDRAM opposing model 107. The memory standards are, for example, DDR1, DDR2, DDR3, and the like, and the memory standard parameter storage unit 103 stores memory standard parameters for each memory standard.

メモリ規格パラメータは、例えば、アドレステーブル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 memory bus width 1032. The address table 1031 is a table that associates the memory address space of the DDR-SDRAM opposite model 107 with the address space on the system side (= user side command, application side, CPU side address). The memory bus width 1032 is the number of bits of the memory bus such as 8 bits, 16 bits, 32 bits, 64 bits, and the like.

〔期待値の生成〕
期待値の生成について説明する。まず、コマンド送信・制御モデル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 / control model 101 reads user-side commands one by one from the scenario storage unit 105 and sends them to the verification target 106. This user side command is generated randomly by the command transmission / control model 101, for example. The command transmission / control model 101 also sends the same user-side command to the expected value generation model 108. As will be described later, the scenario storage unit 105 also includes a user-side command generated from the address table 1031 and the memory bus width 1032.

期待値生成モデル108は、コマンド送信・制御モデル101からのユーザ側コマンドを受けると、同時または前後してメモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読みだす。コマンド生成モデル102は、アドレステーブル1031とメモリバス幅1032に基づき、ユーザ側コマンドからメモリ側コマンドを生成する。   When the expected value generation model 108 receives a user side command from the command transmission / control model 101, the expected value generation model 108 reads the address table 1031 and the memory bus width 1032 from the memory standard parameter storage unit 103 simultaneously or before and after. The command generation model 102 generates a memory side command from a user side command based on the address table 1031 and the memory bus width 1032.

図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 opposite model 107. The address is an address in an address space on the system side such as a CPU or OS.

バースト数は、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 value generation model 108 determines the read / write of the memory side command based on the read / write signal. Next, the expected value generation model 108 refers to the address table 1031 and determines the address of the memory side command (ROW address, Column address, or BANK address) from the address of the user side command.

図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-SDRAM opposing model 107, and the column direction means the memory device (memory type). In FIG. 3, “Rxx” means a ROW address, “Cxx” means a Column address, and “Bxx” means a BANK address. “Na” means NonAvailable (unusable).

なお、列方向の「メモリサイズ×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 memory bus width 1032. As described above, the address of the DDR-SDRAM opposing model 107 differs with respect to the same system side address depending on the type of memory. Since the address table 1031 is closer to the specification than the standard, each ROW / Column / BANK address naturally changes when the address table 1031 changes.

一方、メモリの種類が決まっていて、DDR−SDRAM対向モデル107のアドレスが既知であれば、システム側のアドレスも一意に定まる。   On the other hand, if the type of memory is determined and the address of the DDR-SDRAM opposite model 107 is known, the address on the system side is also uniquely determined.

図3に示すように、メモリバス幅1032が「×8」と「×16」ではそれぞれ、システム側のアドレスが同じでもDDR−SDRAM対向モデル107側に指定するアドレスは変わる。したがって、アドレステーブル1031を参照することで、期待値生成モデル108は、メモリバス幅1032に応じた調整も行ったことになる。   As shown in FIG. 3, when the memory bus width 1032 is “× 8” and “× 16”, the addresses specified on the DDR-SDRAM opposite model 107 side change even if the addresses on the system side are the same. Therefore, by referring to the address table 1031, the expected value generation model 108 has also adjusted according to the memory bus width 1032.

なお、ユーザ側コマンドのバイトイネーブルが変われば、メモリ側コマンドのアドレスのスタートアドレス(始点)が変わる。   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 opposite model 107 has a CS (chip select) signal terminal for designating whether or not the access request is valid. This is because a plurality of DDR-SDRAM opposing models 107 are often mounted on one verification device. The DDR-SDRAM opposite model 107 is allowed to read or write when the CS signal is “Low”.

検証対象106は複数のDDR−SDRAM対向モデル107からアクセス対象を特定するため複数のCS端子を備える。このため、メモリ側コマンドにはCS端子を特定するCS情報が必要になる。期待値生成モデル108は、アドレステーブル1031等に基づき、アクセス対象のチップを選択するCS情報を生成する。   The verification target 106 includes a plurality of CS terminals for specifying an access target from the plurality of DDR-SDRAM opposing models 107. For this reason, CS information specifying the CS terminal is required for the memory side command. The expected value generation model 108 generates CS information for selecting a chip to be accessed based on the address table 1031 and the like.

以上の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-SDRAM opposing model 107 according to the number of bursts, the command generation model 102 generates all of them (for the number of bursts) as expected values for one user side command. . This expected value is sent to the monitor model 104, and the monitor model 104 stores the expected value in a storage area (hereinafter simply referred to as “queue array”) of a queue structure (FIFO method).

後述するように、コマンド生成モデル102はメモリ規格からユーザ側コマンドを生成するので、期待値生成モデル108は、コマンド生成モデル102が生成したユーザ側コマンドからも期待値を生成しておく。こうすることで、モニタモデル104は、コーナーケースのユーザ側コマンドに対しても、ランダムにアドレスを指定するユーザ側コマンドに対しても検証可能になる。   As will be described later, since the command generation model 102 generates a user side command from the memory standard, the expected value generation model 108 also generates an expected value from the user side command generated by the command generation model 102. By doing so, the monitor model 104 can be verified not only for the user command in the corner case but also for the user side command for designating an address at random.

なお、ユーザ側コマンドが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-SDRAM opposing model 107, the verification target 106 should receive an error signal from the DDR-SDRAM opposing model 107. Therefore, when the user side command requests access to the outside of the memory area of the DDR-SDRAM opposing model 107, the expected value generation model 108 refers to the address table 1031 and sends an error signal (for example, receiving an interrupt). Generate as expected value.

図4は、期待値生成モデル108が、ユーザ側コマンドをメモリ側コマンドに変換して期待値を生成する手順を示すフローチャート図の一例である。   FIG. 4 is an example of a flowchart illustrating a procedure in which the expected value generation model 108 generates an expected value by converting a user side command into a memory side command.

まず、期待値生成モデル108は、受け取ったユーザ側コマンドに対し、メモリ領域外へのアクセスか否かを判定する(S10)。すなわち、期待値生成モデル108は、アドレステーブル1031を参照してユーザ側コマンドのアドレスをメモリ側コマンドのアドレスに変換し、変換後のアドレスがDDR−SDRAM対向モデル107のアドレス空間に含まれるか否かを判定する。メモリ領域外へのアクセスの場合(S10のYes)、期待値生成モデル108は「割り込みの種類」などを期待値として生成する(S50)。   First, the expected value generation model 108 determines whether or not the received user-side command is an access outside the memory area (S10). That is, the expected value generation model 108 converts the address of the user side command into the address of the memory side command with reference to the address table 1031, and whether or not the converted address is included in the address space of the DDR-SDRAM facing model 107. Determine whether. In the case of access outside the memory area (Yes in S10), the expected value generation model 108 generates “interrupt type” or the like as an expected value (S50).

メモリ領域外へのアクセスでない場合(S10のNo)、期待値生成モデル108は、メモリ側コマンドの発行数nを決定する(S20)。上記のように、メモリ側コマンドの発行数nはバースト数の関数である。図2ではn=3個の発行数となっている。   When the access is not outside the memory area (No in S10), the expected value generation model 108 determines the number n of memory side commands issued (S20). As described above, the number n of memory-side commands issued is a function of the number of bursts. In FIG. 2, n = 3 issuance numbers.

ついで、期待値生成モデル108は、n個のメモリ側コマンドを生成する。すなわち、n=1からn=3になるまで(S30)、メモリ側コマンドを生成する(S40)。   Next, the expected value generation model 108 generates n memory side commands. That is, until n = 1 to n = 3 (S30), memory side commands are generated (S40).

上記のように期待値生成モデル108は、ユーザ側コマンドのアドレスからCS情報、メモリ側コマンドのアドレス、を生成する。CS情報は、複数のDDR−SDRAM対向モデル107から1つのDDR−SDRAM対向モデル107を選択するものなので、ユーザ側コマンドのアドレスとアドレステーブル1031から生成できる。メモリ側コマンドのアドレスは、ユーザ側コマンドのアドレスと、図3のアドレステーブル1031(及び、これに含まれる及びメモリバス幅1032)から生成される。   As described above, the expected value generation model 108 generates CS information and memory-side command addresses from user-side command addresses. Since CS information selects one DDR-SDRAM opposing model 107 from a plurality of DDR-SDRAM opposing models 107, it can be generated from the address of the user side command and the address table 1031. The address of the memory side command is generated from the address of the user side command and the address table 1031 (and the memory bus width 1032 included therein) of FIG.

また、期待値生成モデル108はデータマスクを生成する。データマスクは、バイトイネーブルに指定される有効なデータのみを指定する信号を生成するものである。なお、データマスクは、DDR−SDRAM対向モデル107から読み出したデータに対し施されるマスクなので、図示した期待値には含まないこととした。   The expected value generation model 108 generates a data mask. The data mask is for generating a signal that designates only valid data designated as byte enable. Since the data mask is a mask applied to data read from the DDR-SDRAM opposite model 107, it is not included in the illustrated expected value.

期待値生成モデル108は、n個のメモリ側コマンドを生成すると(S30のYes)、モニタモデル104に送出する。モニタモデル104は複数のメモリ側コマンドを期待値として、キュー配列に記憶する(S50)。   When the expected value generation model 108 generates n memory side commands (Yes in S30), the expected value generation model 108 sends the command to the monitor model 104. The monitor model 104 stores a plurality of memory side commands as expected values in the queue array (S50).

〔モニタモデル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 monitor model 104. In FIG. 5, the same parts as those in FIG. With the processing in FIG. 4, the expected values are stored in the queue array of the monitor model 104.

検証対象106は、コマンド生成モデル102と同じメモリ側コマンドを生成することが期待されている。このため、モニタモデル104は、検証対象106とメモリモデルとのインターフェースをモニタリングし、検証対象106により生成されたメモリ側コマンドが、期待値と同じか否かを判定する。   The verification target 106 is expected to generate the same memory side command as the command generation model 102. For this reason, the monitor model 104 monitors the interface between the verification target 106 and the memory model, and determines whether or not the memory-side command generated by the verification target 106 is the same as the expected value.

モニタモデル104は、コマンド送信・制御モデル101から送出されたユーザ側コマンドと、期待値生成モデル108から送出された期待値を対応づけながらキュー構造のリストに格納する。したがって、検証対象106に入力されたユーザ側コマンドに対応するメモリ側コマンドが、入力順に検証対象106から出力されない場合でも、モニタモデル104は期待値とメモリ側コマンドとを比較して、正しいか否かを確認することができる。   The monitor model 104 stores the user side command sent from the command transmission / control model 101 and the expected value sent from the expected value generation model 108 in a queue structure list in association with each other. Therefore, even when the memory-side command corresponding to the user-side command input to the verification target 106 is not output from the verification target 106 in the input order, the monitor model 104 compares the expected value with the memory-side command to determine whether it is correct. Can be confirmed.

また、キュー構造で格納していることより、論理検証の(シミュレーション)終了時に、メモリ側コマンドに発行されるべきコマンドが全て発行されたか否かを確認することができる。   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 verification target 106 is whether or not the address of the memory delimiter (address boundary, CS boundary, BANK boundary, etc.) has been verified. Therefore, the command generation model 102 generates boundary addresses of these boundaries or near the boundaries from the address table 1031 and acquires them as boundary addresses of the DDR-SDRAM opposing model 107. By converting this into the address of the user side command, the address of the user side command corresponding to the corner case at the time of logic verification can be generated.

また、ユーザ側コマンドのアドレス以外のパラメータ(リード/ライト信号、バースト数、バイトイネーブル)を、境界アドレスに対応したユーザ側コマンドのアドレスと組み合わせることで、コーナーケースを網羅的に検証するユーザパラメータを生成できる。したがって、複数の境界アドレスに対応したユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブル、がユーザ側コマンドのパラメータ組み合わせリストである。   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 command generation model 102 reads the address table 1031 from the memory standard parameter storage unit 103 and determines the boundary address corresponding to the memory delimiter position.

コマンド生成モデル102は、まずDDR−SDRAM対向モデル107のアドレステーブル1031とメモリバス幅1032より、アドレス(ROW/Column/BANK)境界付近と、1つのチップ(DDR−SDRAM対向モデル107)の境界付近のアドレスを抽出する。   First, the command generation model 102 is based on the address table 1031 and the memory bus width 1032 of the DDR-SDRAM facing model 107 and near the boundary of the address (ROW / Column / BANK) and the boundary of one chip (DDR-SDRAM facing model 107). Extract the address.

図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-SDRAM facing model 107. On the other hand, what is desired to be generated is the address of the user side command (system side). For this reason, the command generation model 102 generates an address of a user-side command that is converted into a boundary address near the address boundary and near the chip boundary. As described above, since the user side command is converted into the memory side command based on the address table 1031 and the memory bus width 1032, the memory side command is reversed to the user side command based on the address table 1031 and the memory bus width 1032. By converting, the address of the user side command can be generated.

図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 scenario storage unit 105 or the like.

コマンド生成モデル102は、複数のユーザ側コマンドのアドレス、リード信号又はライト信号、種々のバースト数、種々のバイトイネーブルから、それぞれ1つづつ取り出しそれらを組み合わせることで、ユーザ側コマンドを生成する。ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを生成することで、コーナーケースのアドレスを網羅的に検証するユーザ側コマンドを生成できる。   The command generation model 102 generates a user-side command by taking out one from each of a plurality of user-side command addresses, read signals or write signals, various burst numbers, and various byte enables and combining them. By generating all combinations in the parameter combination list of user-side commands, it is possible to generate user-side commands that comprehensively verify the corner case addresses.

コマンド生成モデル102は、生成したユーザ側コマンドのパラメータ組み合わせリストをシナリオ記憶部105に記憶する。予め組み合わせてユーザ側コマンドとして記憶してもよい。検証時には、コマンド送信・制御モデル101又はコマンド生成モデル102が、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせを実行して、ユーザ側コマンドを生成を生成する。   The command generation model 102 stores the parameter combination list of the generated user side commands in the scenario storage unit 105. You may memorize | store as a user side command combining beforehand. At the time of verification, the command transmission / control model 101 or the command generation model 102 executes all combinations in the parameter combination list of the user side command to generate a user side command.

図7は、コマンド生成モデル102が境界アドレスを網羅したユーザ側コマンドを生成する手順を示すフローチャート図の一例である。図7のフローチャート図は、例えば、ユーザが論理検証装置100にユーザ側コマンドの生成を指示することでスタートする。   FIG. 7 is an example of a flowchart illustrating a procedure in which the command generation model 102 generates a user-side command that covers the boundary address. The flowchart in FIG. 7 starts when, for example, the user instructs the logic verification apparatus 100 to generate a user-side command.

まず、コマンド生成モデル102は、メモリ規格パラメータ記憶部103からアドレステーブル1031とメモリバス幅1032を読み出す(S110)。   First, the command generation model 102 reads the address table 1031 and the memory bus width 1032 from the memory standard parameter storage unit 103 (S110).

次いで、コマンド生成モデル102は、DDR−SDRAM対向モデル107の境界アドレスを生成する(S120)。コマンド生成モデル102は、メモリ規格パラメータに基づき、アドレス(ROW/Column/BANK)境界付近と、チップの境界付近の境界アドレスを抽出する。   Next, the command generation model 102 generates a boundary address of the DDR-SDRAM facing model 107 (S120). The command generation model 102 extracts boundary addresses near the address (ROW / Column / BANK) boundary and the boundary of the chip based on the memory standard parameters.

次いで、コマンド生成モデル102は、境界アドレスを、アドレステーブル1031に基づきユーザ側コマンドのアドレスに逆変換する(S130)。ユーザ側コマンドのアドレスは複数個生成される。   Next, the command generation model 102 converts the boundary address back to the address of the user side command based on the address table 1031 (S130). A plurality of user-side command addresses are generated.

コマンド生成モデル102はこのアドレスに、リード/ライト信号、種々のバースト数、種々のバイトイネーブルを添付して、ユーザ側コマンドのパラメータ組み合わせリストを生成する(S140)。   The command generation model 102 attaches a read / write signal, various burst numbers, and various byte enables to this address, and generates a parameter combination list of the user side command (S140).

なお、期待値生成モデル108は、このパラメータ組み合わせリストを組み合わせて、期待値を生成しておく。   Note that the expected value generation model 108 generates expected values by combining the parameter combination lists.

〔ユーザ側コマンドのパラメータ組み合わせリストを組み合わせた論理検証、ランダムに生成したユーザ側コマンドによる論理検証〕
ユーザ側コマンドのパラメータ組み合わせリストを用いてユーザ側コマンドを生成することでコーナーケースを網羅的に論理検証でき、さらに、ランダムにユーザ側コマンドを生成することで膨大なアドレスに対し論理検証できる。
[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 logical verification apparatus 100 of the present embodiment. The flowchart of FIG. 8 starts when, for example, the user instructs the start of logic verification. You may start automatically following the flowchart of FIG.

まず、コマンド送信・制御モデル101は、次のいずれかの終了条件を判定する(S210)。
(a)指定回数だけユーザ側コマンドを発行したか
(b)ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせでユーザ側コマンドを発行し、かつ、十分な数のユーザ側コマンドをランダムに発行したか
(a)を終了条件とする場合、ユーザは論理検証装置100に指定回数を入力装置を介して入力する。論理検証装置100は、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせに必要な回数に、ユーザ側コマンドのランダムな発行のためのマージンを見込んで、入力可能な最低の回数以上の指定回数を受け付ける。
First, the command transmission / control model 101 determines one of the following termination conditions (S210).
(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 logic verification device 100 via the input device. The logic verification apparatus 100 accepts a specified number of times that is greater than the minimum number of times that can be input, considering a margin for random issuance of user-side commands to the number of times required for all combinations of parameter combination lists of user-side commands. .

終了条件が成立しない場合(S210のNo)、コマンド送信・制御モデル101は、カウンタmが要素数になったか否かを判定する(S220)。要素数は、ユーザ側コマンドのパラメータの数であるので「4」である。また、カウンタmは1,2,3、4の値を取る。   If the end condition is not satisfied (No in S210), the command transmission / control model 101 determines whether the counter m has reached the number of elements (S220). The number of elements is “4” because it is the number of parameters of the user side command. The counter m takes values 1, 2, 3, and 4.

カウンタmが要素数に到達していない場合(S220のNo)、コマンド送信・制御モデル101は、「組み合わせ読み出し」か「ランダム読み出し」かを判定する(S230)。コマンド送信・制御モデル101は、「組み合わせ読み出し」と「ランダム読み出し」を自動的に切り替える。例えば、ユーザ側コマンドのパラメータ組み合わせリストの全ての組み合わせによりユーザ側コマンドの発行が終了すると、ランダム読み出しに移行する。   When the counter m has not reached the number of elements (No in S220), the command transmission / control model 101 determines whether it is “combination reading” or “random reading” (S230). The command transmission / control model 101 automatically switches between “combination reading” and “random reading”. For example, when the issuance of the user side command is completed by all the combinations in the parameter combination list of the user side command, the process proceeds to random reading.

「組み合わせ読み出しの場合」、コマンド送信・制御モデル101は、シナリオ記憶部105に記憶されたパラメータ組み合わせリストの各要素を1つ読み出す(S240)。したがって、これを4回繰り返す。   In the case of “read combination”, the command transmission / control model 101 reads one element of each parameter combination list stored in the scenario storage unit 105 (S240). Therefore, this is repeated four times.

「ランダム読み出しの場合」、コマンド送信・制御モデル101は、ユーザ側コマンドの各要素の1つから、適当な値を決定する(S250)。コマンド送信・制御モデル101は、システム側のアドレスから任意のアドレスを、リード/ライト信号から任意にいずれかを、任意のバースト数を、また、任意のバイトイネーブルをランダムに決定する。取り得る任意の上限と下限は予め定められている。これを4回繰り返すことで、任意のユーザ側コマンドを生成できる。   In the case of “random reading”, the command transmission / control model 101 determines an appropriate value from one of the elements of the user side command (S250). The command transmission / control model 101 randomly determines an arbitrary address from an address on the system side, an arbitrary one from a read / write signal, an arbitrary burst number, and an arbitrary byte enable. Arbitrary upper and lower limits that can be taken are predetermined. By repeating this four times, an arbitrary user side command can be generated.

ステップS220において、カウンタmが要素数になった場合(S220のYes)、コマンド送信・制御モデル101は、ユーザ側コマンドを発行するためのコマンド発行関数を実行する(S260)。   In step S220, when the counter m reaches the number of elements (Yes in S220), the command transmission / control model 101 executes a command issuing function for issuing a user side command (S260).

その後、コマンド送信・制御モデル101が、コマンド間に間隔を設けるため待機時間だけ待機する(S270)。待機時間はDDR−SDRAM対向モデル107の応答時間(リード時間/ライト時間)等により定まる。また、ユーザが入力装置から設定してもよい。   Thereafter, the command transmission / control model 101 waits for a waiting time to provide an interval between commands (S270). The standby time is determined by the response time (read time / write time) of the DDR-SDRAM opposing model 107. Further, the user may set from the input device.

論理検証装置100は、ステップS210〜S270を繰り返し、上記の終了条件が終了すると論理検証を終了する。   The logic verification device 100 repeats steps S210 to S270, and ends the logic verification when the above end condition ends.

以上説明したように、本実施形態の論理検証装置100は、メモリ規格パラメータに基づき期待値を生成することで、DUTの中身に依存して期待値を生成するよりも期待値がカバーできる論理検証の範囲が広くなり、膨大なアドレスからのランダムの入力パラメータに対しても、論理検証が可能となる。   As described above, the logic verification apparatus 100 according to the present embodiment generates the expected value based on the memory standard parameter, so that the logic value can cover the expected value rather than generating the expected value depending on the contents of the DUT. This makes it possible to verify the logic even for random input parameters from a large number of addresses.

また、本実施形態の論理検証装置100は、メモリ規格パラメータからユーザ側コマンドのパラメータを生成することで、論理検証項目のコーナーケースを抜けなく論理検証できる。メモリのコーナーケースのパラメータを自動的に発生できるため、抜けが減ることになり、回路品質が向上する。例えば、DDR1、DDR2、DDR3に対して、すべて同じ環境で論理検証を実施することができる。今後の新しい規格のメモリに対しても、メモリ規格パラメータを追加・更新することで、同じ環境で論理検証を実施することができる。   In addition, the logic verification device 100 according to the present embodiment can perform the logic verification without missing the corner case of the logic verification item by generating the parameter of the user side command from the memory standard parameter. Since the memory corner case parameters can be automatically generated, the number of omissions is reduced and the circuit quality is improved. For example, logic verification can be performed for DDR1, DDR2, and DDR3 in the same environment. Logic verification can be performed in the same environment by adding / updating memory standard parameters to memory of new standards in the future.

また、アドレス領域外にも対応しているため、どのような組み合わせのユーザコマンドに対しても論理検証を実施することができる。ユーザ側コマンドに何ら入力制約を与えることなくランダムな入力を許容して、様々なパラメータの論理検証を実施することができ、回路品質が向上する。   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 SYMBOLS 100 Logic verification apparatus 101 Command transmission and control model 102 Command generation model 103 Memory standard parameter memory | storage part 104 Monitor model 105 Scenario memory | storage part 106 Verification object (DUT)
107 DDR-SDRAM opposite model 108 Expected value generation model

特開2002−312416号公報JP 2002-31416 A

Claims (5)

CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリに供給するメモリコントローラの論理を検証する論理検証装置であって、
前記メモリの規格情報を記憶したメモリ規格情報記憶手段と、
前記規格情報が有する規格毎のアドレス対応情報に従い、第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:
前記メモリの特定の第2アドレスを前記規格情報を参照して特定し、前記アドレス対応情報に基づき、該第2アドレスから、第1のコマンドに含まれる第1アドレスを決定するコマンド生成手段、
を有することを特徴とする請求項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:
前記コマンド発行手段は、前記コマンド生成手段が生成した第1アドレスと、第1のコマンドのその他のパラメータが取り得る値を組み合わせて、第1のコマンドを生成する、
ことを特徴とする請求項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アドレスは、前記メモリの物理的な構造の境界付近のアドレスである、
ことを特徴とする請求項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
CPUが発行する第1のコマンドを、第2のコマンドに変換してメモリに供給するメモリコントローラの論理を検証する論理検証方法であって、
メモリ規格情報記憶手段に記憶された前記メモリの規格情報が有するアドレス対応情報に従い、期待値生成手段が、第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:
JP2009208464A 2009-09-09 2009-09-09 Logic verification device and logic verification method Expired - Fee Related JP5233924B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
DE102011089889A1 (en) A method of booting an information handling system and information handling system
US11461028B2 (en) Memory writing operations with consideration for thermal thresholds
KR101456976B1 (en) Memory test device and testing method for memory
US20120096218A1 (en) Apparatus and methods for tuning a memory interface
US5727182A (en) Method and apparatus for adjusting output current values for expansion memories
JPH03269376A (en) Testing device for semiconductor device
JP5233924B2 (en) Logic verification device and logic verification method
TWI652676B (en) Memory, memory controller and training method for memory system
US7886205B2 (en) Verification of a data processing system using overlapping address ranges
CN105183398A (en) Storage device, electronic device and data processing method
JP2007102940A (en) Testing device and testing method
US9543043B2 (en) Method for testing array fuse of semiconductor apparatus
KR20210103069A (en) Memory test device and operation method thereof
JP2009301612A (en) Semiconductor memory device
JP2011034214A (en) Memory controller
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
US9971860B2 (en) Allocating plurality of RAMs to FPGA block RAM
US11120851B1 (en) Memory apparatus and burst read and burst write method thereof
US10192634B2 (en) Wire order testing method and associated apparatus
JPH10221410A (en) Automatic logic verification system for lsi
JP2012033091A (en) Semiconductor circuit and test method for the same
JP2008009564A (en) Memory access device, memory access method, memory manufacturing method and program
CN118034991A (en) Memory data access method and device, electronic equipment and readable storage medium

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