Lastly, the FPGA controls three interrupts to the DSP, the first indicating that a pulse transfer is completed, the second indicating that at least 12 missed pulses have occurred since the last time the counter was read and the third indicating that the instrument is in an overrange condition. These were the only signal processing algorithms incorporated in the first revision of the FPGA, but it performed other functions too. The actual radiation pulse samples were stored in four external FIFO buffers, one pulse per buffer. The pulses were transferred to the DSP from the FIFO buffers through a DMA port under FPGA control. The DSP would then calculate an energy value by performing a trapezoidal integration algorithm and increment the proper channel in an energy spectrum.
Dead time is calculated in terms missed counts versus total counts.
The dead time in the first version of the FPGA system is attributed to two factors. First, the DSP performs the energy calculation and second, the DMA transfer method takes 4 clock cycles per sample. Migrating the trapezoidal integration algorithm to the FPGA eases the DSP processing requirements, and changing the data stored in the FIFO buffers removes the bottleneck of slow data transfer via the DMA port. The implementation of the trapezoidal integration algorithm is simply an accumulator that sums all the samples in a given pulse. To increase speed, the accumulator is implemented in 4-bit slices.