In this section, basic usage and programming of the ATG is covered.
The ATG is programmed and controlled using the VIO interface. Instruction table programming options are listed in the following table.
Name | Bit Width | Description |
---|---|---|
Instruction Number | 5 | Instruction select. From 0 to 31. |
Addr Mode | 4 |
Address mode to be programmed. 0 = LINEAR; (with user-defined start address) 1 = PRBS; (PRBS supported range from 8 to 34 based on address width.) 2 = WALKING1 3 = WALKING0 4-15 = Reserved |
Data Mode | 4 |
Data mode to be programmed. 0 = LINEAR 1 = PRBS (PRBS supported 8, 10, 23) 2 = WALKING1 3 = WALKING0 4 = HAMMER1 5 = HAMMER0 6 = Block RAM 7 = CAL_CPLX 8-15 = Reserved |
Read/Write Mode | 4 |
0 = Read Only (No data check) 1 = Write Only (No data check) 2 = Write/Read (Read performs after Write and data value is checked against expected write data.) 3 = Write once and Read forever (Data check on Read data) 4-15 = Reserved |
Read/Write Submode | 2 |
Read/Write submode to be programmed. This is a submode option when 00 = WRITE_READ (Send all Write commands followed by Read commands defined in the instruction.) 01 = WRITE_READ_SIMULTANEOUSLY (Send Write and Read commands
pseudo-randomly.)
Note: Write is always ahead of
Read.
2 and 3 = Reserved |
Victim Mode | 3 |
Victim mode to be programmed. One victim bit could be programmed using global register
The following program options define aggressor behavior: 0 = NO_VICTIM 1 = HELD1 (All aggressor signals held at 1.) 2 = HELD0 (All aggressor signals held at 0.) 3 = NONINV_AGGR (All aggressor signals are same as victim.) 4 = INV_AGGR (All aggressor signals are inversion of victim.) 5 = DELAYED_AGGR (All aggressor signals are delayed version of
victim. Num of cycle of delay is programmed at
6 = DELAYED_VICTIM (Victim signal is delayed version of all aggressors.) 7 = CAL_CPLX (Complex Calibration pattern) |
Victim Aggressor Delay | 5 |
Define aggressor/victim pattern to be N-delay cycle of victim/aggressor, where 0 ≤ N ≤ 24. It is used when victim mode "DELAY_AGGR" or "DELAY VICTIM" mode is used in traffic pattern. |
Victim Select | 3 |
Victim bit behavior to be programmed. 0 = VICTIM_EXTERNAL (Use Victim bit provided in
1 = VICTIM_ROTATE4 (Victim bit rotates from Bits[3:0] for every Nibble.) 2 = VICTIM_ROTATE8 (Victim bit rotates from Bits[7:0] for every Byte.) 3 = VICTIM_ROTATE_ALL (Victim bit rotates through all bits.) 4-7 = RESERVED |
Number of instruction iteration | 32 |
Number of Read and/or Write commands to be sent. N = APP_ADDR_WIDTH – 3
Note: APP_ADDR_WIDTH is defined in
example_top.sv.
Linear Address Space Calculation: Max No. of iterations = 2N PRBS Address Space Calculation: Max No. of iterations = 2N – 1 Walking1/0 Address Space Calculation: Max No. of iterations = N |
Insert M NOPs between N-burst (M) | 10 | M = Number of NOP cycles in between Read/Write commands at user interface at general interconnect clock, where M ≥ 1. |
Insert M NOPs between N-burst (N) | 32 | N = Number of Read/Write commands before NOP cycle insertion at user interface at general interconnect clock, where N ≥ 1. |
Next Instruction | 6 |
Next instruction to run. To end traffic, next instruction should point at EXIT instruction. 6’b000000-6’b011111 – valid instruction 6’b1????? – EXIT instruction |