axi cal dac ip - ComPair/ComPair-tracker-FPGA GitHub Wiki

Notes on the AXI Calibration DAC IP

AXI registers

The peripheral is set up with 8x32-bit registers that are all used as write registers.

Register assignments:

  • Register 0: Testing state.
    • reg0(0) = calibration pulse enable
    • reg0(1) = vata trigger enable
    • reg0(2) = vata fast-or trigger disable
  • Register 1: Initiate pulses on rising edge of reg1(0)
  • Register 2: Calibration pulse width
  • Register 3: Vata trigger out delay
  • Register 4: Number of pulses to generate. If 0, then send out pulses as long as reg1(0) is high
  • Register 5: Delay between pulses
  • Register 6: Cal Dac send trigger (on rising edge of reg6(0))
  • Register 7: Cal Dac value

Previous allocation:

Write register

For initiating calibration pulses:

  • register 0: set to 0x1 to initiate pulse sending. Needs to be set back to zero when done (this will need a fix once the ability to send multiple pulses has been implemented).
  • register 1: set to the pulse width in AXI clock cycles.
  • register 2: set the VATA trigger out delay. Can be no longer than the pulse width set by register 1.
  • register 3: set to the number of pulses to generate. Note that this functionality is not yet implemented. Note to Sean: Maybe implement this in the AXI_s00 instantiation rather than the core hdl itself?

For controlling the calibration DAC:

  • register 4: set to 0x1 to transmit SPI data to the DAC after setting the pulse height value. A rising edge is required to initiate transfer, so make sure you set it back to zero when done.
  • register 5: First 12 bits (0xFFF) set the calibration DAC height.

Currently unused:

  • register 6
  • register 7

Read register

N/A