This repository has been archived by the owner on Mar 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
vata axi peripheral
lucasparker edited this page Jan 24, 2020
·
35 revisions
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:
- 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
- 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
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