High-level description of PulseNet

The front-end flash converters latch on both edges of the clock for 1 GHz sampling. At each edge and for each of thirty-two samplers, seven Strongarm latches compare the input to seven reference voltages. The output of this flash converter is in thermometer code, and is encoded to 3-bit Gray code on the next clock. This data is delayed for 8 clock cycles in a shift register array while other computations take place. Meanwhile, particular levels in the thermometer code (which say if the input exceed the reference on the clock) are passed to separate logic blocks that look for coincident pulses (an AND array) and that count the number of times that the level was exceeded (more on this astronomy module later). If a coincidence is detected, the data from the coincident pair (including a few clocks worth from before the coincidence) are routed into a 512-bit deep shift register memory. Both shift register memories use two-phase non-overlapping clocks (which are derived from the sampler/encoder clock). After a coincident pulse event is stored, PulseNet raises an external flag and waits for the outside world (an 8051 microcontoller) to clock the data out. In addition the sample data, PulseNet will pass the address of the coincident pixels and some diagnostic data.

The other function of PulseNet is to monitor particular levels from a particular pixel pair. By quickly cycling through the various pairs (16 per chip), one can get a map of the single photon count rates on each pixel, and thus obtain an image of the sky as it drifts by. At the heart of this rather simple module are two 32-bit counters which count the number of times that the threshold was exceed between user-specified start and stop times. This module also has a serial interface and will talk to a microcontroller.