READ - 1.0 English

AXI High Bandwidth Memory Controller v1.0 LogiCORE IP Product Guide (PG276)

Document ID
PG276
Release Date
2021-08-06
Version
1.0 English

Issues a Read command. The following table describes the READ command input fields and options:

Table 1. READ Command Input Fields and Options
Command Input Field Options
txn_count
  • <value in dec> – Repeat the current command n times.
  • <value in dec>KB – Amount of data to be transferred in KB. For example, 50 KB, 100 KB, etc.
  • <value in dec>MB – Amount of data to be transferred in MB. For example, 5 MB, 10 MB, etc.
  • <value in dec>GB – Amount of data to be transferred in GB. For example, 1 GB, 2 GB, etc.
start_delay
  • <value in no of clks (dec)> – Issue transaction after specified number of clks.
  • <bandwidth in dec>Mb/s –Bandwidth for Read transactions. For example, 12,500 Mb/s.
data_integrity
  • enabled – Data integrity checks are enabled for the Write txn. For example, this particslar txn details are stored in memory by the AXI-TG for data checks later when Read occurs to this location.
  • disabled – Data integrity checks are disabled.
addr_incr_by
  • <value in hex> – Field value is used when axi_addr is set to start_addr value. If txn_count>0, for each axi_transaction issued, increment the addr by the specified value. If add_incr_by = 0, all transactions are issues with same axi_addr.
  • <seed_value in hex> – Field value is used as the seed for the RNG to generate random addresses when axi_addr field is set any one of the following options: random, random_aligned, random_unaligned, random_uniform, random_uniform_aligned, or random_uniform_unaligned.
  • auto_incr – First transactions start address is picked from axi_addr field. And then each subsequent transaction start addresses are calculated by using this expression: start_address (from second txn) = previous_start_address + ((1<<axi_size) × (axi_len+1)).
  • For example, txn_count 3, axi_addr 0000_0000, axi_size 6, and axi_len 0. The start address of all three transactions are: First txn start address: 0000_0000, Second txn start address: 0000_0000 + ((1<<6) × (0+1)) = 0000_0040, Third txn start address: 0000_0040 + ((1<<6) × (0+1)) = 0000_0080.
dest_id
  • <value in hex> – Targeted slave ID value can be given in this field for the transaction.
  • <Parameters> – Targeted slave ID can be given as parameters such SLAVE_DST_ID0, SLAVE_DST_ID1,.. These parameters hold the slave ID value in adv_axi_tg top.
base_addr
  • <value in hex>
  • The base_addr can be specified in this field. The incremented address for the transactions are looped back to the base address when the high_addr boundary is reached.
high_addr
  • <value in hex>
  • The high addr can be specified here. The TG increments up to this value. After the incremented address reaches the high_addr boundary, the next transaction start address is the base_addr.
axi_addr
  • <value in hex> – AXI transaction start address value. If txn_count > 0, the next transaction address is calculated based on addr_incr_by.
  • random – Any random address is generated between base_addr and high_addr. addr_incr_by value is set as the seed to the RNG.
  • random_aligned – Any random aligned address is generated between base_addr and high_addr. addr_incr_by field value is set as the seed to the RNG.
  • random_unaligned – Any random unaligned address is generated between base_addr and high_addr. addr_incr_by field value is set as the seed to the RNG.
  • random_uniform – A uniformly distributed random address is generated between base_addr and high_addr. addr_incr_by field value is set as the seed to the RNG.
  • random_uniform_aligned – A uniformly distributed random aligned address is generated between base_addr and high_addr. addr_incr_by value is set as the seed to the RNG.
  • random_uniform_unaligned – A uniformly distributed random unaligned addr is generated between base_addr and high_addr. addr_incr_by value is set as the seed to the RNG.
axi_len
  • This value passes to the AXI_xx_ARLEN port.
axi_size
  • This value passes to the AXI_xx_ARSIZE port.
axi_id
  • <value in hex> – All the Read transactions are sent with this ID.
  • auto_incr – The first Read transaction is sent out with ID of 0 and the each consecutive transaction ID is incremented by 1.
axi_burst
  • <value in hex> – 0x1, 0x2.
  • INCR, WRAP.
axi_lock
  • Set to 0, this AXI port is not used in the HBM IP.
axi_cache
  • Set to 0, this AXI port is not used in the HBM IP.
axi_prot
  • Set to 0, this AXI port is not used in the HBM IP.
axi_qos
  • Set to 0, this AXI port is not used in the HBM IP.
axi_region
  • Set to 0, this AXI port is not used in the HBM IP.
axi_user
  • Set to 0, this AXI port is not used in the HBM IP.

The following table shows the reset values for the Read command.

Table 2. Reset Values for the Read Command
Command Input Field READ (Reset Value)
txn_count 100
start_delay 0
inter_beat_delay N/A
wdata_pattern N/A
wdata_pat_value N/A
data_integrity Disabled
dest_id SLAVE_DST_ID0 (TG Parameter)
base_addr C_AXI_RD_BASEADDR (TG Parameter)
high_addr C_AXI_RD_HIGHADDR (TG Parameter)
addr_incr_by auto_incr
axi_addr 0
axi_len 0
axi_size

C_AXI_READ_MAX_SIZE

(TG Parameter)

axi_id auto_incr
axi_burst 1
axi_lock 0
axi_cache 2
axi_prot 0
axi_qos 0
axi_region 0
axi_user 0