Skip to content
This repository has been archived by the owner on Mar 31, 2021. It is now read-only.

vata axi peripheral

lucasparker edited this page Jan 24, 2020 · 35 revisions

Notes on the VATA AXI peripheral

AXI registers

The peripheral is setup with 64 x 32 bit wide registers. The first 32 registers are primarily registers that are written to. The second 32 are registers to read out, containing information from the PL. "Write" registers can of course be read, however writing data to the "wead" registers is meaningless and does nothing.

How the AXI registers are allocated:

Write registers

  • register 0: control register
  • register 1 - 17 : configuration register to send to ASIC
  • register 18: hold time (lowest 16 bits). True value in seconds is set value * 10 ns. Set at any point to change hold time delay.
  • register 19: power cycle delay
  • registers 20: trigger ack timeout

Read registers

  • register 31-47: read-only, configuration register output from ASIC
  • register 48-49: running counter out
  • register 50-51: live-time counter out
  • register 52: Event counter out

The Control Register

Upon writing to the 0th register, some action will happen depending on what is written.

  • Writing 0: set the ASIC configuation register with what is currently in AXI registers 1-17
  • Writing 1: read out the current ASIC configuation register, save to AXI reg's 32-48
  • Writing 2: set the calibration DAC value with what is currently in AXI register 2
  • Writing 3: Trigger the external calibration pulse
  • Writing 4: Trigger internal calibration pulse.
  • Writing 5: power cycle the asic for power cycle delay (register 3 value) number of clock cycles
  • Writing 6: Reset the running/live clocks
  • Writing 7: Reset the event counter
  • Writing 8 (or anything else): shouldn't do anything
Clone this wiki locally