External Memory Interfaces Stratix® 10 FPGA IP User Guide

ID 683741
Date 4/01/2024
Public
Document Table of Contents

13.9.4. Configuration and Status Registers

You can configure the user traffic pattern by writing to configuration registers that influence the resulting traffic pattern.

Configuration registers that govern the resulting traffic pattern affect one of the following aspects of the pattern:

  • Test duration / Instruction pattern
  • Address pattern
  • Data pattern
Note: This section describes the registers that configure a traffic pattern as seen on the ctrl_amm interface.
Table 358.  Configuration and Status Registers
Symbol Address Register Name Register Width Number of Registers Readable or Writeable Register Section Register Description
0x0 TG_VERSION 32 1 Readable N/A Version number of the traffic generator address map.
0x4 TG_START 1 1 Writeable N/A Perform a write to this register to start the traffic generator (any value).
0x8 TG_LOOP_COUNT 32 1 Readable and Writeable Test Duration/Instruction Pattern The number of read/write loops to run. A loop is defined as a block of writes followed by a block of reads.

If this value is set to 0, the traffic generator will run infinite loops.

0xC TG_WRITE_COUNT 12 1 Readable and Writeable Test Duration/Instruction Pattern The number of unique writes to perform in each loop.
0x10 TG_READ_COUNT 12 1 Readable and Writeable Test Duration/Instruction Pattern Number of unique reads to perform in each loop.
0x14 TG_WRITE_REPEAT_COUNT 16 1 Readable and Writeable Test Duration/Instruction Pattern Number of times to repeat each write operation.
0x18 TG_READ_REPEAT_COUNT 16 1 Readable and Writeable Test Duration/Instruction Pattern Number of times to repeat each read operation.
0x20 TG_CLEAR 4 1 Readable and Writeable Status Clears the failure status registers. Allows clearing these registers independently from one another by writing a 1 to the following bits.

BIT0 - Clears the recorded PNF data.

BIT1 - Clears the recorded number of Avalon reads.

BIT2 - Clears the recorded data of the first failure (address, expected data, and actual data).

BIT3 - Clears the recorded data of address overflow due to burst length (last address written to, failure status).

0x1C TG_BURST_LENGTH 7 1 Readable and Writeable Test Duration/Instruction Pattern Avalon burst length.
0x38 TG_RW_GEN_IDLE_COUNT 16 1 Readable and Writeable Test Duration/Instruction Pattern Number of cycles for which the traffic generator remains idle between a write block and the next read block.
0x3C TG_RW_GEN_LOOP_IDLE_COUNT 16 1 Readable and Writeable Test Duration/Instruction Pattern Number of cycles for which the traffic generator remains idle between a read block and the next write block.
0x40 TG_SEQ_START_ADDR_WR 32 12 Readable and Writeable Address Pattern Start address for writes; used as a seed address in Random and Fixed Modes. Consists of 12 registers, 2 for each address field.[CS1] Each pair of adjacent registers represents the lower 32 bits and upper 32 bits of a start address for the corresponding field. For example:
TG_SEQ_START_ADDR_WR = start_addr_field0[31:0]
TG_SEQ_START_ADDR_WR+1 = start_addr_field0[63:32]
…
TG_SEQ_START_ADDR_WR+10=start_addr_field_5[31:0]
TG_SEQ_START_ADDR_WR+11=start_addr_field_5[63:32]
0x80 TG_ADDR_MODE_WR 2 6 Readable and Writeable Address Pattern

Address mode for writes. Consists of 6 registers, where each register specifies the write address mode for the corresponding address field. Available address modes include (see Address Generator Modes for details):

TG_ADDR_MODE == 0: Fixed
TG_ADDR_MODE == 1: Random
TG_ADDR_MODE == 2: Sequential
TG_ADDR_MODE == 3: Unused Field
0xC0 TG_RETURN_TO_START_ADDR 1 1 Readable and Writable Address Pattern

If set to 1, specifies to return to start address in each loop. If set to 0, specifies to resume the address pattern from where the previous loop left off.

0x84 TG_RAND_SEQ_ADDRS_RD     Readable and Writeable Address Pattern Number of times to increment sequentially on the random base address before generating a new random write address for reads.
0x88 TG_PASS 1 1 Read Only Status A value of 1 indicates that the traffic generator passed at the end of all test stages.
0x8C TG_FAIL 1 1 Read Only Status A value of 1 indicates that the traffic generator failed at the end of all test stages.
0x90 TG_FAIL_COUNT_L 32 1 Read Only Status The number of failed reads (lower 32 bits).
0x94 TG_FAIL_COUNT_H 32 1 Read Only Status The number of failed reads (upper 32 bits).
0x98 TG_FIRST_FAIL_ADDR_L 32 1 Read Only Status The address of the first failed read (lower 32 bits).
0x9C TG_FIRST_FAIL_ADDR_H 32 1 Read Only Status The address of the first failed read (upper 32 bits).
0xA0 TG_TOTAL_READ_COUNT_L 32 1 Read Only Status The number of read operations executed - sent and received (lower 32 bits).
0xA4 TG_TOTAL_READ_COUNT_H 32 1 Read Only Status The number of read operations executed - sent and received (upper 32 bits).
0xA8 TG_TEST_COMPLETE 1 1 Read Only Status A value of 1 indicates that the traffic generator run has completed.
0xAC TG_INVERT_BYTEEN 1 1 Readable and Writeable Data/Byte-Enable Pattern If set to 1, specifies to invert byte-enable values and write_data.
0xB4 TG_USER_WORM_EN 1 1 Readable and Writeable Test Duration/Instruction Pattern If set to 1, enables WORM mode.
0xB8 TG_TEST_BYTEEN 1 1 Readable and Writeable Data/Byte-Enable Pattern If set to 1, specifies to change the comparison pass/fail condition, such that for each byte:
  • If byte-enable is high, compare readdata with writedata at this byte.
  • If byte-enable is low, compare readdata with inverted writedata at this byte.
0xC4 TG_NUM_DATA_GEN 5 1 Read Only Data/Byte-Enable Pattern Number of data generators in the design.
0xC8 TG_NUM_BYTEEN_GEN 5 1 Read Only Data/Byte-Enable Pattern Number of byte-enable generators in the design.
0xDC TG_RDATA_WIDTH 32 1 Read Only Data/Byte-Enable Pattern Width of read_data, write_data, and PNF signals.
0xEC TG_ERROR_REPORT 32 1 Read Only Status Reports illegal configurations of the traffic generator. Value is 0 when no error is present. (Details about error codes can be found below.)
0xF0 TG_DATA_RATE_WIDTH_RATIO 4 1 Read Only Data/Byte-Enable Pattern Data rate width ratio is the ratio between the data width at the ctrl_amm interface and the data width at the memory interface.
0x100 TG_SEQ_ADDR_INCR 8 6 Readable and Writeable Address Pattern Sequential address increment for both the read and write addresses. This value is only used if the field mode is set to Sequential. Consists of 6 registers, where each register specifies the sequential address increment for both the read and write address generators of the corresponding address field. For field 0 this value must be greater than or equal to the value of TG_BURST_LENGTH.
0x140 TG_SEQ_START_ADDR_RD 32 12 Readable and Writeable Address Pattern

Start address for reads; used as a

seed address in Random and Fixed modes. Organized as 2*6=12 registers to reserve space for 64-bit start addresses across all address fields. The start addresses are organized such that each pair of 2 adjacent start addresses represent the lower 32 bits and upper 32 bits of a start address.
0x180 TG_ADDR_MODE_RD 2 6 Readable and Writeable Address Pattern

Address mode for reads. Consists of 6 registers, where each register specifies the read address mode for the corresponding address field. Available address modes include (see Address Generator Modes for details):

TG_ADDR_MODE == 0: Fixed
TG_ADDR_MODE == 1: Random
TG_ADDR_MODE == 2: Sequential
TG_ADDR_MODE == 3: Unused Field
0x1C0 TG_PASS 1 1 Read Only Status

A value of 1 indicates that the traffic generator passed at the end of all test stages

0x1C4 TG_FAIL 1 1 Read Only Status A value of 1 indicates that the traffic generator failed at the end of all test stages.
0x1C8 TG_FAIL_COUNT_L 32 1 Read Only Status The number of failed reads (lower 32 bits).
0x1CC TG_FAIL_COUNT_H 32 1 Read Only Status The number of failed reads (upper 32 bits).
0x1D0 TG_FIRST_FAIL_ADDR_L 32 1 Read Only Status The address of the first failed read (lower 32 bits).
0x1D4 TG_FIRST_FAIL_ADDR_H 32 1 Read Only Status

The address of the first failed read (upper 32 bits).

0x1D8 TG_TOTAL_READ_COUNT_L 32 1 Read Only Status

The number of read operations executed - sent and received (lower 32 bits).

0x1DC TG_TOTAL_READ_COUNT_H 32 1 Read Only Status

The number of read operations executed - sent and received (upper 32 bits).

0x1E0 TG_TEST_COMPLETE 1 1 Read Only Status A value of 1 indicates that the traffic generator run has completed.
0x1E4 TG_INVERT_BYTEEN 1 1 Readable and Writable Data/Byte-Enable Pattern If set to 1, specifies to invert byteenable values and write_data.
0x1EC TG_USER_WORM_EN 1 1 Readable and Writable Test Duration/ Instruction Pattern If set to 1, enables WORM mode.
0x1F0 TG_TEST_BYTEEN 1 1 Readable and Writable Data/Byte-Enable Pattern If set to 1, specifies to change the comparison pass/fail condition, such that for each byte:
  • If byte-enable is high, compare readdata with writedata at this byte.
  • If byte-enable is low, compare readdata with inverted writedata at this byte.
0x1F8 TG_NUM_DATA_GEN 5 1 Read Only Data/Byte-Enable Pattern Number of data generators in the design.
0x1FC TG_NUM_BYTEEN_GEN 5 1 Read Only Data/Byte-Enable Pattern Number of byte-enable generators in the design.
0x200 TG_RDATA_WIDTH 32 1 Read Only Data/Byte-Enable Pattern Width of read_data, write_data, and PNF signals.
0x204 TG_ERROR_REPORT 32 1 Read Only Status Reports illegal configurations of the traffic generator. Value is 0 when no error is present. (See details about error codes below.)
0x208 TG_DATA_RATE_WIDTH_RATIO 4 1 Read Only Data/Byte-Enable Pattern Data rate width ratio is the ratio between the data width at the ctrl_amm interface and the data width at the memory interface.
0x240 TG_PNF 32 ceil(TG_RDATA_WIDTH/32) Read Only Status Persistent Pass Not Fail (PNF) signal. Bus Width = TG_RDATA_WIDTH.
0x340 TG_FAIL_EXPECTED_DATA 32 ceil(TG_RDATA_WIDTH/32) Read Only Status The expected data on the first failure. Bus Width = TG_RDATA_WIDTH. (See details below.)
0x440 TG_FAIL_READ_DATA 32 ceil(TG_RDATA_WIDTH/32) Read Only Status The received data on the first failure. Bus Width = TG_RDATA_WIDTH. (See details below.)
0x540 TG_DATA_SEED 32 TG_NUM_DATA_GEN Readable and Writeable Data/Byte-Enable Pattern Seed or starting value for each data generator (DG). This consists of TG_NUM_DATA_GEN entries.

To set the seed value for the first DG[0], use the specified symbol address. For DG[1], increment the symbol address by 4. For DG[2], increment it by 8, etc.

0x580 TG_BYTEEN_SEED 32 TG_NUM_BYTEEN_GEN Readable and Writeable Data/Byte-Enable Pattern Seed or starting value for each byte-enable generator (BEG). This consists of TG_NUM_BYTEEN_GEN entries.

To set the seed value for the first BEG[0], use the specified symbol address. For BEG[1], increment the symbol address by 4. For BEG[2], increment it by 8, etc.

0x5C0 TG_PPPG_SEL 6 TG_NUM_DATA_GEN Readable and Writeable Data/Byte-Enable Pattern Select pattern for a Data Generator. This consists of TG_NUM_DATA_GEN entries. Select from the available pattern modes:

0: Fixed.

1: PRBS7

2: PRBS15

3: PRBS31

4: Rotating

0x600 TG_BYTEEN_SEL 6 TG_NUM_BYTEEN_GEN Readable and Writeable Data/Byte-Enable Pattern Select pattern for a Byte-Enable Generator. This consists of TG_NUM_BYTEEN_GEN. Select from the available pattern modes:

0: Fixed.

1: PRBS7

2: PRBS15

3: PRBS31

4: Rotating

0x640 TG_ADDR_FIELD_RELATIVE_FREQ 16 6 Readable and Writeable Address Pattern Frequency setting for both reads and writes. Consists of 6 registers, where each register specifies after how many read or write operations an address field generates a new address. To understand relative frequencies of address fields, refer to Address Generator Relative Frequencies.
0x680 TG_ADDR_FIELD_MSB_INDEX 6 5 Readable and Writeable Address Pattern Most significant bit (MSB) position setting for both reads and writes. Consists of 5 registers, where each register specifies the index of the MSB of the corresponding field. This ties each of the 6 address generators to a bit range of the generated address. Field number 5 is implied to have an MSB index of AMM_WORD_ADDRESS_WIDTH-1 and need not be specified. The width of an address field is derived from these MSB indices. To understand MSB indices of address fields, refer to Address Generator MSB Indices.
0x6C0 TG_BURSTLENGTH_OVERFLOW_OCCURRED 1 1 Read Only Status A value of 1 indicates that an attempt was made to write outside of the address space. This occurs when the current address plus the burst length is greater than the total address space. This is an invalid operation and the burst length is clipped to prevent an invalid operation on the Avalon® interface.
0x700 TG_BURSTLENGTH_FAIL_ADDR_L 32 1 Read Only Status The address at which the burst length overflow was attempted (lower 32 bits). The value at this register is valid only if TG_BURSTLENGTH_OVERFLOW_OCCURED is 1.
0x704 TG_BURSTLENGTH_FAIL_ADDR_H 32 1 Read Only Status The address at which the burst length overflow was attempted (upper 32 bits). The value at this register is valid only if TG_BURSTLENGTH_OVERFLOW_OCCURED is 1.
0x740 TG_WORM_MODE_TARGETTED_DATA 32 ceil(TG_RDATA_WIDTH/32) Readable Status Checker Received data from the targeted read. Targeted read data is set when WORM mode is enabled and the result of the second read to the first fail address occurs. Bus Width = TG_RDATA_WIDTH.

In the table above, some configuration settings and status information can fit within one 32-bit register, while others are broken into several registers. The Starting Address column indicates the address of the first register in the set while the Number of Registers column indicates the number of registers located after the start address.

For example: TG_PPPG_SEL occupies 8 registers when TG_NUM_DATA_GEN=8, so the data can be accessed by reading from addresses 0x5C0, 0x5C4, … 0x5E0.