Documentation of ddr_buffer registers

This document is a specification for the register interface of the FPGA module ddr_buffer.

This file is automatically generated by tsfpga. Generated 2021-09-18 04:04 from file regs_ddr_buffer.toml at commit a2df45bca2daecbc.

Register modes

The following register modes are available.

Mode Description
Read Bus can read a value that fabric provides.
Write Bus can write a value that is available for fabric usage.
Read, Write Bus can write a value and read it back. The written value is available for fabric usage.
Write-pulse Bus can write a value that is asserted for one clock cycle in fabric.
Read, Write-pulse Bus can read a value that fabric provides. Bus can write a value that is asserted for one clock cycle in fabric.

Registers

The following registers make up the register map.

Name Index Address Mode Default value Description
config 0 0x0000 Read, Write 0x0 Configuration register.
command 1 0x0004 Write-pulse 0x0
  start   0 0b0 Start a read and write cycle.
status 2 0x0008 Read 0x0
  idle   0 0b0 '1' when the module is inactive and a new run can be launched.

'0' when the module is working.
  counter   8:1 0b00000000 Number of AXI bursts that have finished.
irq_status 3 0x000C Read, Write-pulse 0x0 Reading a '1' in this register means the corresponding interrupt has triggered. Writing to this register will clear the interrupts where there is a '1' in the written word.
irq_mask 4 0x0010 Read, Write 0x0 A '1' in this register means that the corresponding interrupt is enabled.
version 5 0x0014 Read 0x3 Version number for this module
  version   7:0 0b00000011 Version field.
Register array addrs, repeated 2 times. Iterator i ∈ [0, 1].
read_addr 6 + i × 2 0x0018 + i × 0x0008 Read, Write 0x0 Where to read data from.
write_addr 7 + i × 2 0x001C + i × 0x0008 Read, Write 0x0 Where to write data.

Constants

The following constants are part of the register interface.

Name Value (decimal) Value (hexadecimal) Description
axi_data_width 64 0x00000040 Data width of the AXI port used by this module.
burst_length_beats 16 0x00000010 The burst length, in number of beats, that will be used by this module. This value, in conjunction with axi_data_width gives the size of the memory buffer that will be used.
version 3 0x00000003 Version number for the ddr_buffer module.