ADM-XRC SDK 2.8.1 User Guide (Linux)
© Copyright 2001-2009 Alpha Data


MEMORY sample application

Model support

ModelSupported
ADM-XRC
ADM-XRC-P
ADM-XRC-II-Lite
ADM-XRC-II
ADM-XPL
ADM-XP
ADP-WRC-II 
ADP-DRC-II 
ADP-XPI 
ADM-XRC-4LX
ADM-XRC-4SX
ADM-XRC-4FX
ADPE-XRC-4FX
ADM-XRC-5LX
ADM-XRC-5T1
ADM-XRC-5T2
ADM-XRC-5T2-ADV
ADM-XRC-5TZ
ADM-XRC-5T-DA1

Overview

The Memory sample application is a host-driven memory test that verifies the memories on a reconfigurable computing card.

Syntax
memory [options ...]
Options

Option Type Meaning
-banks hexadecimal integer Bitmask of banks to test (default 0xFFFFFFFF)
-card base 10 integer ID of card to open
-index base 10 integer Index of card to open
-lclk real number Local bus clock frequency to use, in MHz (default depends upon type of card)
-mask Hexadecimal integer Specifies optional mask to be applied during memory tests (default all ones)
-mclk real number Memory clock frequency to use, in MHz (default depends upon type of card)
-perf   Do not measure host memory acess throughput
+perf   Measure host memory acess throughput (default)
-refclk220   Do not enable Virtex-5 IDELAYCTRL reference clock workaround (default)
+refclk220   Enable Virtex-5 IDELAYCTRL reference clock workaround
-repeat base 10 integer Number of times to perform tests (default 1)
-retry   Do not retry reads if data verification errors occur (default)
+retry   Retry reads if data verification errors occur; can be used to gather evidence about whether errors are occurring when reading or when writing
-usedma   Do not perform tests using DMA transfers
+usedma   Perform tests using DMA transfers (default)
-usepio   Do not perform tests using programmed I/O transfers (default)
+usepio   Perform tests using programmed I/O transfers
-64   Operate local bus in 32 bit mode (default)
+64   Operate local bus in 64 bit mode

Description

The Memory sample application tests all banks of on-board memory on a reconfigurable computing card. Unlike the Memtest application that it supersedes, the Memory sample application tests all banks of memory on a card regardless of the type of memory and whether or not a mixture of memory types are present.

When run, the Memory sample application performs a memory test consisting of the following phases:

  1. 0x55 / 0xAA pattern written to memory, for detecting data bits stuck at 0, 1 or shorted to other signals. The pattern is designed to result in all of the data lines for a given bank toggling at the maximum possible frequency during a burst of memory accesses.
  2. Own address pattern written to memory, for detecting address bits stuck at 0, 1 or shorted to other signals.
  3. Bit-reversed own address pattern written to memory, for detecting address bits stuck at 0, 1 or shorted to other signals.
  4. Random data written to memory, for detecting pattern-sensitive failures.
  5. DMA throughput between each on-board memory bank and CPU memory is measured the two directions: (i) CPU memory to on-board memory and (ii) on-board memory to CPU memory.

The +64 option causes the application to operate the local bus in 64-bit mode. This is valid only for models that support a 64-bit local bus. Using the local bus in 64-bit mode increases the available bandwidth for data transfer, generally resulting in higher measured throughput in phase 5 (above).

A subset of the memory banks on a card can be tested by passing a bitmask of banks to test via the -banks option. For example, -banks 0xD would specify that only banks 0, 2 and 3 should be tested.

The local bus clock frequency used for the memory test can be specified on the command-line using the -lclk option. For example, -lclk 45 specifies a local bus clock frequency of 45 MHz. If the -lclk option is not specified on the command-line, the Memory application programs a sensible default frequency (for the model on which the application is run) into the local bus clock generator. For example, the default LCLK frequency when running Memory on an ADM-XRC-II is 66 MHz.

The -mask option enables a specific set of bits within a logical memory word to be tested. The mask defaults to all ones, but can be overridden on the command-line. For example, to test bits 0 to 29 inclusive while ignoring bits 30 and 31 of the data on an ADM-XRC-4SX card, the following would suffice: -mask 3fffffff. The mask is applied to all banks tested on a given run of Memory, so if different masks must be applied to different banks, use the -banks option and test each bank separately.

By default, the Memory application programs the MCLK clock generator to an appropriate frequency for the memory clock domain. This may be changed on the command-line using the -mclk option, although it is advisable that the user understands the relationship between the freqency at the target FPGA's MCLK pin (i.e. what is programmed into the clock generator) and the frequency of the internal clock within the FPGA. For example, with an ADM-XRC-4FX card, passing the option -mclk 210 on the command-line would result in the DDR-II SDRAM devices on the card operating at 210 MHz (DDR 420) and the memory clock domain within the target FPGA operating at 105 MHz. With an ADM-XRC-4LX card, passing the option -mclk 140 on the command-line would result in the ZBT SSRAM devices on the card operating at 140 MHz and the memory clock domain within the target FPGA also operating at 140 MHz.

FPGA Design

The Memory sample application normally uses the Memory sample FPGA design (VHDL), but when the +64 option is specified, it uses the Memory64 sample FPGA design (VHDL).

 


 Top of page