With the evolving technology in CMOS integration, new classes of 2D-imaging detectors have recently become available. In particular, single photon avalanche diode (SPAD) arrays allow detection of single photons at high acquisition rates (≥ 100kfps), which is about two orders of magnitude higher than with currently available cameras. Here we demonstrate the use of a SPAD array for imaging fluorescence correlation spectroscopy (imFCS), a tool to create 2D maps of the dynamics of fluorescent molecules inside living cells. Time-dependent fluorescence fluctuations, due to fluorophores entering and leaving the observed pixels, are evaluated by means of autocorrelation analysis. The multi-τ correlation algorithm is an appropriate choice, as it does not rely on the full data set to be held in memory. Thus, this algorithm can be efficiently implemented in custom logic. We describe a new implementation for massively parallel multi-τ correlation hardware. Our current implementation can calculate 1024 correlation functions at a resolution of 10μs in real-time and therefore correlate real-time image streams from high speed single photon cameras with thousands of pixels.
© 2012 Optical Society of America
Fluorescence correlation spectroscopy (FCS) [1, 2] is a powerful experimental technique for measuring the dynamics of fluorescently labeled molecules in solution and also inside living cells. It allows one to determine the particle number, the diffusion coefficient, flow speeds and also photophysical and chemical reaction rates (for an overview, see Ref. ). In FCS the time trace of the fluorescence intensity fluctuations I(t) inside a small observation volume (usually around 10−15 l = 1μm3) is monitored. The fluctuations originate from particles entering and leaving the focus, or transitions between states having different quantum yields. Faster dynamics of the fluorescing particles also lead to faster fluctuations, which can be quantified by means of a temporal first-order autocorrelation function (ACF):
The standard FCS setup uses a confocal microscope in combination with single-photon sensitive detectors to acquire the fluorescence time trace I(t) from one focal volume. Then the data is fed into a “correlator” (hardware or software component), which estimates the ACF over a certain dynamic range.
Several hard- and software implementations for correlators (especially for the application in confocal FCS and dynamic light scattering) have been proposed. On the one hand, there are custom hardware based approaches (e.g. [4–6]). On the other hand, highly optimized software algorithms have been invented which mostly rely on photon arrival times [7–9], or commercial event counter cards [10,11]. Parallelized implementations of the multi-τ algorithm are available also [12,13]. More and more reconfigurable logic chip (FPGA – field programmable gate array) based approaches have been developed [14–19] lately. Most of them can only deal with a limited number of up to 32 input channels. Particularly, the software implementations achieve good (near-realtime) performance only for a very limited number of input channels, if implemented on a standard PC.
In recent years, the availability of fast cameras has triggered the development of different spacially resolved modalities for FCS: these modalities are based on single-spot confocal microscopy , multi-spot confocal microscopy [21, 22], line-confocal microscopy [23, 24], spinning-disk microscopy , total internal reflection microscopy  and selective plane illumination microscopy [27,28]. All these techniques map the diffusion coefficients and other dynamic properties by calculating an ACF for each of potentially many pixels in software. Also the commercially available fast cameras are limited in frame rate to about 1kfps if a substantial number of pixels needs to be measured, although they can achieve frame rates up to 25kfps for single lines (see e.g. ).
Here we describe a hardware-based correlation system that can process the data stream from all pixels of an imaging device in real time. We extend the idea of hardware reuse, as presented in Refs. [14, 19], for imaging FCS applications with hundreds of input signals. Our FPGA-based hardware correlator system can calculate 1024 autocorrelation functions in parallel and in real time. The dynamic range of the ACFs is τmin ...τmax = 10μs...1s. The design could easily be adapted to different kinds of image sensors such as single photon avalanche diode (SPAD) arrays, customized scientific complementary metal oxide semiconductor (sCMOS) or electron multiplying charge-coupled device (EMCCD) cameras.
To overcome the limited temporal resolution of currently available cameras, we use the 32× 32 pixel SPAD array detector Radhard2 as image sensor, which can be read at frame rates of 100kfps and above (for a detailed description of this sensor, please refer to section 2 and Ref. ). Smaller SPAD arrays have already been used for parallelized FCS on multi-focus confocal microscopes [30, 31]. Also a subregion of a SPAD array with the same size, but with very different pixel architecture has been used for FCS . In all those cases the readout was done either using commercial correlator cards for up to four inputs or FPGA-based time-tagged readout of the photon streams that were subsequently processed by software correlators. There are also larger arrays available, for example , but with additional circuitry per pixel and a smaller fill factor.
2. Radhard2 SPAD array detector
We use a Radhard2 single photon avalanche diode array with 32 × 32 pixels as detector for our experiments . The pixels are 30 × 30μm2 of which only about 1.4% is active area (circular SPAD with 4μm diameter). The photon detection probability is ≈ 30% at a wavelength of 500nm. At room temperature the dark count rate is approximately 140Hz. After-pulsing probability is negligible at the used integration time of Δtframe = 10μs . The pixels are row addressable and the readout of an entire frame can be done in 2.66μs. The design of the detector also allows the readout of subregions at higher speeds, e.g. a single line every 2.66μs/32 = 83ns. Frames read from the sensor contain 1bit of information per pixel (no photon or at least one photon in the last Δtframe).
3. Multi-τ hardware correlators
A hardware correlator estimates the ACF in Eq. (1) from a finite sequence of intensity measurementsEq. (1) with this intensity sequence, care has to be taken not to bias the normalization . A viable choice is the “symmetric normalization” introduced in Ref. : Eq. (3) may be evaluated directly for an arbitrary (also logarithmically spaced) set of lags τk in software. This gives an unbiased estimation of the ACF (“direct correlation”). To implement our hardware correlator, we use the multi-τ scheme introduced in Reference , which is also illustrated and compared to a linear implementation in Fig. 1. For the special case of linearly spaced lags τk = k, a simple hardware implementation exists, which is shown in Fig. 1(a). Each of the Δτ-blocks represents a delay of Δτ = τmin, which can be implemented using a flip-flop  clocked with a frequency of 1/τmin. Thus, in the final design the series of delay elements are structured as a shift register. After n time-steps the input In−k has propagated to the k-th delay element (signal in Fig. 1(a)), whereas the “undelayed signal” or “global signal” ( in Fig. 1(a)) carries the current input In. So the k-th channel accumulates which is Gk (see Eq. (3)). For the normalization additional components that accumulate the input signal In and In−k at different lags k (usually called monitor channels, M0 and Mk in Eq. (3)) are implemented.
The multi-τ scheme uses a set of S of these linear correlator blocks (Fig. 1(b,c)), with s = 0,...,S − 1. The input samples Is,n (n is the same index as in Eq. (2)) are summed over increasingly long periods Δn = ms, with m = 2 being the factor between the delay times of two subsequent blocks:
Each of the linear correlators estimates the ACF at P linearly spaced lags
In summary, this results in a quasi-logarithmic spacing of estimates ĝsym,multi-τ (τs,p). The advantage of this multi-τ scheme is its simple implementation in hardware and a large dynamic time range with a reasonable number of channels. Its disadvantage is a systematic error introduced by averaging: As shown in Ref.  the estimator ĝsym,multi-τ (τs,p) equals the ideal correlation function g(τs,p · τmin) (see Eq. (3)) convolved with a triangular kernel with width ms:
4. Hardware design
Here we describe a scheme to reuse the available hardware efficiently to accommodate up to 1024 input channels. We employed a low-level hardware description language (VHDL – very high speed hardware description language) to gain speed and flexibility. This enables us to fine-tune many parameters of the final design, e.g. operational speed, memory usage, logic resource consumption and routing between logic cells.
4.1. Single-pixel correlator
As shown in Fig. 1, a typical correlator is made up from channels, each corresponding to a certain lag time, and consists of a multiplier, an accumulator and a delay element.
The idea of our implementation is to use one single channel circuit to calculate all channels within one multi-τ correlator. This is possible by serial processing of the lag time channels, since the hardware in each channel is identical.
The basic arithmetic operation of one channel is to multiply and accumulate (MAC). Therefore we can map its functionality onto a MAC unit which can be found on most FPGA architectures and which is considerably faster than using generic FPGA logic cells. Only about 100 of these can be found on typical FPGAs, precluding any approach with blocks consisting of several lag channels.
As only one circuit is used to process all channels, we use an internal memory block (block random access memory, BRAM) to store their state (i.e., the content of the accumulator and the delayed signal). We implement this circuit by decomposing it into five steps:
- Load accumulator and delayed value of a channel from memory
- Wait for memory access to complete
- Multiply delayed with global signal
- Add multiplication result to channel’s accumulator
- Store counter and new delayed value to memory
From one block to the next the delay time is doubled (m = 2) in the multi-τ scheme, making the input data rate of block s+1 half that of block s. Hence we need to execute each block only half as often as its predecessor. Thus, a complete multi-τ correlator can be executed in only twice the run-time Δtlin of a single linear correlator block:
A scheduler guarantees that a linear correlator block s is only executed after its predecessor s − 1 has been executed twice. A counter c = 0, 1,... is incremented with every execution of any linear correlator block. The scheduler uses the following relations to determine which linear correlator block s has to be executed at a given counter value c (details see appendix):Figure 2(a) shows the solution of this relation for c values from 0 to 31. In the binary representation of c for a linear correlator block s patterns are evident that can be used to implement the scheduler efficiently. As shown in Table 2 (for S = 8 linear correlators), correlator block s = 0 is executed whenever the last bit of c is 0b, correlator s = 1 is executed when the last two bits are 11b and so forth. This scheme uses only simple comparison operations.
Between two consecutive blocks s − 1 and s, adder circuitry is inserted to sum up two subsequent input signal values Is−1,n−1 and Is−1,n. This is done for both the delayed/local as well as the undelayed/global signal, while they are processed in the pipeline.
The linear correlator as implemented here, together with its scheduler and the summation logic, is called correlation processing element (CorrPE). All channel data and intermediate summation results, the so-called pixel context, are stored in a dual-port BRAM which is associated with the CorrPE.
4.2. Multi-pixel correlator
The CorrPE described above is much faster than required to calculate the ACF for a single pixel in the SPAD array. Hence, we can reuse a single CorrPE for multiple pixels by switching between pixel contexts. This “pixel scheduler” uses a double-buffering strategy. While a CorrPE operates on the current context, the previous context is exchanged with the next context to be processed. The pixel contexts are stored in external background memory (SRAM), because they exceed the capacity of the internal memory. In Fig. 3 we illustrate how we reuse one CorrPE for several pixels in comparison to a naïve implementation using one CorrPE per pixel.
In addition to the channel data, the cycle counter c and an accumulator for the local and the global input signals have to be saved. The latter are used for normalization and cross-correlation.
A single CorrPE is used to process an entire column (ACFs of ny = 32 pixels) of our SPAD array. To handle the full nx × ny array of pixels, we instantiate nx = 32 CorrPEs in parallel. An overview of this scheme is shown in Fig. 4. A “data acquisition” circuit communicates with the SPAD array and provides the image data for the correlators. As the image data is streamed out row by row, and each of the nx CorrPEs is only processing data from one specific context (i.e. a specific row), the remaining pixels have to be buffered row wise in 32 FIFOs (first-in first-out memory buffer) localized in external RAM.
In addition, our design contains two USB 2.0 interfaces. One is used to send the raw data stream from the SPAD array to the computer, which allows further data processing. We also use these raw data to verify our correlator design. Via the second interface, intermediate and final results from the correlators are transferred to the host computer. The intermediate results allow implementing a live view of the ongoing calculation of the ACFs.
4.3. ACF normalization
The intensity values in the denominator of Eq. (3) are typically obtained from monitor channels Mτk, which accumulate the total photon count at a given lag time τk. In contrast to other implementations, we use only one monitor M0 (input signal accumulator) per multi-τ correlator. Symmetric normalization (see also Eq. (3)) yields the following:37] the data is loaded and correlated on the host computer, which for a measurement of typically 10s takes a couple of minutes for 1024 pixels at the frame rate of our sensor.
To show that the estimation in Eq. (10) yields good results, we simulated different correlator types in software. The results for a direct estimation of the ACF using Eq. (3) (green), a multi-τ correlator with a monitor channel per lag (blue) and our estimation (magenta) can be seen in Fig. 5, where the data in (a) and (b) were obtained by correlating the input signal I(t) = 1 + sin(2πt/(1.51 · 10−4)) for which the exact ACF is known to be g(theoretical)(τ) = 1 + cos(2πτ/(1.51·10−4)) (time t and lags τ are unit free). The data in Fig. 5(c) was created by simulating a Tsim = 1s long FCS experiment with one diffusing species . It was computed with our FCS simulation software described in Ref. . Further details on the simulation code are shown in the appendix.
For short lags the estimated ACFs resemble the theoretical curves quite well. Multi-τ correlators have an increased absolute error for longer lags, which is due to the averaging described in Eq. (6). This can be seen especially in the case of the sine wave signal. The multi-τ estimates can still be used for FCS experiments, as here the ACFs usually decay to 1 (white noise) for large lag times, and thus the systematic error drops to zero again (for a detailed discussion of this, see e.g. Ref. ). For τ ≳ Tsim/10, multi-τ correlators show additional systematic deviations from the theoretical curve and from the direct estimation, because the channels are not averaged over sufficiently many samples to yield reliable results. Here the multi-τ implementation with multiple monitor channels performs better due to the better estimation of the normalization factor Mτs,p.
4.4. Crosscorrelation (CCF)
Our design can also calculate cross-correlation:Fig. 1 where both signals are tied to I(t) for ACF calculation). This changes the multi-τ estimator Eq. (9) to:
5. Performance & implementation details
The complete design is implemented in two Virtex-II Pro FPGAs (XC2VP40, Xilinx, http://www.xilinx.com/, San Jose, USA), on a LASP development board . The first FPGA is used for data acquisition and line reordering, while the other one is used to implement the correlators. The total resource consumption within the second FPGA is around 40%. Using this hardware platform, there are currently P = 8 channels within each of the S = 14 linear correlator blocks.
In Eq. (7) we showed that the complete multi-τ correlator can be executed within twice the time needed for the first linear correlator block, so we devote half of the execution time to the first linear correlator and the rest to the remaining blocks. Therefore a new input sample can be accepted only once every 2Δtlin. Here Δtlin = 2P + 3cycles is the time needed to process a new input sample In in the first linear correlator block. The 3 additional cycles are used for data hand over to the next block.
The CorrPEs run with a clock frequency of 144MHz, which corresponds to an execution time of 264ns = 2Δtlin for a single input signal. This is the minimum timespan between two subsequent samples, if no pixel multiplexing is used. Hence, our current FPGA platform can calculate 32 different ACFs or CCFs with a minimum lag time of 264ns, which is comparable to the 100ns designs presented in Ref.  and more recently in Ref. . Trading time resolution for more correlation functions, we can process all 1024 pixels of the SPAD array at a frame rate of 100kfps in real time or regions of interest with < 32 lines with even higher frame rates.
To estimate the memory consumption of our design, we first look at the pixel context, which consists of 128 words of 64 bits each. Table 3 shows a detailed memory layout. Sixteen of the upper 32bits of the raw accumulators store the current value of the delay registers . The lower 32bits contain the accumulator Gτs,p. The monitor channels are 32bits each. Data handover between consecutive blocks (accumulated local and global signals) is done via 16bit-wide memory areas, which is sufficient for S ≤ 16. Since in the later linear correlators the accumulated input signals Is,n are multiplied, the sums Gτs,p and also the Is,n can get relatively large and may not fit in the 32bit memory locations available. However, due to constant streaming of intermediate results to the host computer, counter overflows can be detected and corrected.
For our 32 × 32 pixel SPAD array the pixel contexts are stored in 32 · 32 · 128 · 64bits = 512KBytes of external SRAM. A second SRAM stores the 256KBytes used for the FIFOs (2048 entries each) that hold the pixel data until they are processed.
The correlator design is implemented in VHDL (very high speed integrated circuit hardware description language). It can be configured via generics (a VHDL feature). Thus we can reuse our design for different needs (e.g. for different sensor sizes and frame rates). We expect our design to show a significant increase in performance when implemented on newer FPGA generations (e.g. Virtex 5 or Virtex 6 from Xilinx).
6. Benchmark experiments
To ensure the functional correctness of the designed correlator, a simulation of the hardware was tested using random input data. The outcome was compared to the results of a software implementation of the multi-τ correlator using the same data set. Both yielded exactly the same results. The comparison was also done using real experimental data from the SPAD array. Again, both results were identical.
To demonstrate the functionality of the whole system, we tested the design using the SPAD array to record an LED connected to a sine wave generator set to 2.5kHz. Figure 6 shows the results of this measurement. A fit to the data recovered the chosen frequency.
Finally we tested our system in a custom selective plane illumination microscope (SPIM), comparable to the setup described in . A 491nm beam from a DPSS laser (Calypso, Cobolt AB, Solna, Sweden) is formed into a light sheet of 1.25μm width (1/e2 half-width) by a Nikon Plan Fluor 10x/NA0.3 microscope objective and cylindrical lens of focal length f = 100mm (CKX18-C, Newport Spectra-Physics GmbH, Darmstadt). A Nikon CFI Apo-W NIR 60x/NA1.0 water dipping objective and an achromatic lens with f = 100mm (AC254-100-A-ML, Thorlabs GmbH, Dachau, Germany) are used to image the acquired fluorescence onto the SPAD array Radhard2, with a 30× magnification. A 500nm long-pass filter (Edge Basic 488LP, Semrock, Rochester, USA) suppresses scattered light by about a factor of 10−6 at 491nm. Figure 7 shows the results of an experiment with fluorescent microspheres of diameter 40nm (Invitrogen FluoSpheres YG carboxyl-modified, Life Technologies GmbH, Darmstadt). According to the manufacturer, each bead has a brightness which is equivalent to 350 fluorescein molecules. They were dissolved in water (1 : 1000 dilution from stock concentration cstock ≈ 2.4μM) and were mounted in a small sample bag made from 25μm thin transparent foil matching the refractive index of water (LUMOX FOLIE 25 M, SARSTEDT AG & Co, Nümbrecht). The sample was illuminated with a laser power of about 2.33mW, as measured behind the projection objective. This power is distributed over the light sheet of height 4mm and center 1/e2-width of 2.5μm, which amounts to an intensity in the focus of about 23.3W/cm2.
For each ACF a fit to the standard FCS model function for 3-dimensional free diffusion was perfromed:42], implemented in our FCS data evaluation package QuickFit 3.0. ). The model Eq. (12) is justified for a SPAD array and the described SPIM setup, as each SPAD effectively operates as a single pinhole. The longitudinal and lateral size of the point-spread function were measured by scanning beads, embedded in a clear and low-scattering, but stiff gel (0.5% Phytagel, Sigma-Aldrich, Seelze, Germany), through the image plane in respective directions. From this measurement we obtained a lateral 1/e2 half-width of wxy = (0.5 ± 0.2)μm and longitudinal half-width of wz = (0.8 ± 0.1)μm and therefore an aspect ratio of about γ = (1.60 ± 0.72), which was fixed in the fits. The lateral and longitudinal widths fit the theoretically expected values for the setup, if the depth-selection due to the pinhole is taken into account. Also we assume a Gaussian detection probability distribution, as usually done in SPIM-FCS [27, 28].
The average diffusion time was estimated from the median of the distribution of all diffusion times (see Fig. 7(e)) to be τD = 10.2ms. From this we can calculate a diffusion coefficient of , which compares well to the value of (5.9 ± 1.5)μm2/s measured with confocal FCS for the same sample. Due to the Gaussian nature of the light sheet, its width increases with the distance to the focal line. This leads to an increased number of detected particles N at the edges of the field of view (see Fig. 7(f)). The average count rate during the measurement was 〈I〉 = 2400Hz (see also Fig. 7(b) and (c)), which is well above the dark count rate (DCR) of the Radhard2 sensor of about 140Hz . The overall background countrate (including the DCR) was Ibackground ≈ 300Hz during the measurement, which leads to a correction of the measured particle number (as shown in Fig. 7) of Nreal = Nmeasured/(1 + Ibackground/ 〈I〉)2 = 0.79·Nmeasured . Thus from the corrected median particle number of median(Nreal) = 13.0 we get a molecular brightness of about 184Hz/particle, which is about a factor of 530 less than in the measurement on our confocal setup (NA = 1.2), where the average excitation intensity in the focus was about a factor of 250 higher than in our SPIM setup. The difference can be explained by the higher NA, quantum efficiency and larger pinhole size of the confocal setup.
In Fig. 8 we compare measurements for particles of different sizes (Invitrogen FluoSpheres YG carboxyl-modified, 40nm and 100nm diameter, also diluted in water). These examples were selected to show the functionality of our correlator and readout system. A more detailed characterization of SPAD arrays for SPIM-FCS applications will be the topic of a follow up publication. Our current SPAD array is limited in its applicability to high intensity samples, due to its small fill factor. We will address this problem with next generation sensors that are equipped with microlenses.
In this paper we presented the implementation of an FPGA-based multi-τ correlator design that can calculate 1024 correlation functions in real time at a minimum lag time of 10μs. To our knowledge this is the largest number of real time multi-τ correlators implemented so far in a single device. The minimum lag time of 10μs in our design is longer than that of currently available hardware correlators (e.g. from ALV GmbH, Langen, Germany or correlator.com, Bridgewater, USA and Reference ), but those are limited to at most 32 auto-correlators.
Recently, Mocsár et. al. proposed a hardware correlator implementation with four input channels, comparable to commercially available multi-channel correlators (e.g. from ALV GmbH, Langen, Germany) using an FPGA card from National Instruments, with a minimal sampling time of 400ns . That approach reuses a single linear correlator core for different blocks within the multi-τ correlation scheme and for the multiplexed processing of all four input signals. Due to the utilization of a high level description of the hardware using the well established LabView software (National Instruments), their system is easy to adapt to different experimental requirements even for non-experts. But this approach also limits the overall performance in terms of resource consumption and speed of execution. Jakob et. al. proposed to use a single multiply-accumulate cell (MAC), to calculate all correlation channels in serial manner , the so called “virtual correlator architecture”. Our design further extends and optimizes both of these hardware reuse schemes: Only a single MAC per correlator is used, which allows us to implement 32 parallel correlators within a single Virtex-2 FPGA. These can then process up to 1024 pixels or input signals, using an advanced multiplexing scheme.
We use our design to correlate the output of a single-photon avalanche diode (SPAD) array used as image sensor in a selective plane illumination microscope (SPIM). This combination allows us to perform imaging fluorescence correlation spectroscopy at the 10μs time scale, which covers the range of motion of small molecules in solution and living cells. We presented several benchmark experiments that show the applicability and functionality of our correlator system. The low photon detection probability due to the small fill factor of our SPAD array will be addressed with next-generation sensors equipped with microlenses.
Our correlator design is flexible and extensible: besides estimating temporal autocorrelation functions, also cross-correlation functions between different pixels or multiple colors (using spectrally resolved detectors) can be calculated. To achieve a larger dynamic range (e.g. for long measurements of T̃ ≫ 1s) it is possible to output the accumulated global and delayed values after the last block. As the data rate is reduced by a factor of 214, then the correlation can easily be processed on the host computer.
The entire hardware correlator is limited to process input values at a rate of 1024·100kHz = 102.4MHz. Hence, if the whole array is read, we can achieve a minimal lag time of 10μs. For a region of interest containing 64 pixels (2 lines), a frame rate of 102.4MHz/64 = 1.6MHz and therefore a minimal lag time of τmin = 0.625μs can be achieved. As our current implementation accepts up to 16bit wide inputs, we can overcome the clipping due to the one bit counters within our sensor: The data acquisition logic will be extended to accumulate consecutive frames. A valid choice are 2bit counters, that allow the sum of three subsequent images. This results in a possible full frame integration time of 3.33μs, which is slightly above the sensor’s limit of (2.66μs). Newer FPGAs in combination with next-generation sensors, will allow us to increase the processing speed even further.
The project was supported by a NUS-BW (National University of Singapore / Baden-Württemberg) joint grant to J.L., a doctoral fellowship of the Helmholtz International Graduate School for Cancer Research to J.B., a doctoral fellowship of the Heidelberg Graduate School of Mathematical and Computational Methods for the Sciences to J.W.K. We thank Xilinx, San Jose, USA for donating the FPGAs on the LASP development board. G.V. receives support by the German-Hungarian program for the exchange of researchers by the German Academic Exchange Service and the Hungarian Scholarship Board (MÖB-47-1/2010) OTKA K77600 and TAMOP 4.2.1/B-09/1/KONV-2010-007.
References and links
1. D. Magde, E. L. Elson, and W. W. Webb, “Fluorescence correlation spectroscopy i: conceptual basis and theory,” Biopolymers 13, 1–27 (1974). [CrossRef]
3. O. Krichevsky and G. Bonnet, “Fluorescence correlation spectroscopy: the technique and its applications,” Rep. Prog. Phys. 65, 251–297 (2002). [CrossRef]
4. M. Engels, B. Hoppe, H. Meuth, and R. Peters, “A single chip 200 MHz digital correlation system for laser spectroscopy with 512 correlation channels,” in “ISCAS’99. Proceedings of the 1999 IEEE International Symposium on Circuits and Systems, 1999,”, vol. 5 (IEEE , 1999), vol. 5, pp. 160–163.
5. B. Hoppe, H. Meuth, M. Engels, and R. Peters, “Design of digital correlation systems for low-intensity precision photon spectroscopic measurements,” in “IEEE Proceedings Circuits, Devices and Systems ,”, vol. 148 (IET, 2001), vol. 148, pp. 267–271.
6. M. Engels, B. Hoppe, H. Meuth, and R. Peters, “Fast digital photon correlation system with high dynamic range,” in “Proceedings of the 13th Annual IEEE International ASIC/SOC Conference, 2000,” (IEEE, 2000), pp. 18–22.
7. M. Wahl, I. Gregor, M. Patting, and J. Enderlein, “Fast calculation of fluorescence correlation data with asynchronous time-correlated single-photon counting,” Opt. Express 11, 3583–3591 (2003). [CrossRef] [PubMed]
10. D. Magatti and F. Ferri, “Fast multi-tau real-time software correlator for dynamic light scattering,” Appl. Opt. 40, 4011–4021 (2001). [CrossRef]
11. D. Magatti and F. Ferri, “25 ns software correlator for photon and fluorescence correlation spectroscopy,” Rev. Sci. Instrum. 74, 1135–1144 (2003). [CrossRef]
13. B. Tieman, S. Narayanan, A. Sandy, and M. Sikorski, “Mpicorrelator: a parallel code for performing time correlations,” Nucl. Inst. Meth. A 649, 240–242 (2011). [CrossRef]
14. C. Jakob, A. Schwarzbacher, B. Hoppe, and R. Peters, “The development of a digital multichannel correlator system for light scattering experiments,” in “Irish Signals and Systems Conference, 2006. IET,” (IET, 2006), pp. 99–103.
15. C. Jakob, A. T. Schwarzbacher, B. Hoppe, and R. Peters, “A FPGA optimised digital real-time mutichannel correlator architecture,” in “10th Euromicro Conference on Digital System Design Architectures, Methods and Tools, 2007. DSD 2007,” (IEEE, 2007).
16. C. Jakob, A. Schwarzbacher, B. Hoppe, and R. Peters, “A multichannel digital real-time correlator as single FPGA implementation,” in “15th International Conference on Digital Signal Processing, 2007,” (2007), pp. 276–279.
17. Y. Yang, J. Shen, W. Liu, and Y. Cheng, “Digital real-time correlator implemented by field programmable gate array,” in “CISP’08. Congress on Image and Signal Processing, 2008,”, vol. 1 (IEEE, 2008), vol. 1, pp. 149–151.
18. W. Liu, J. Shen, and X. Sun, “Design of multiple-tau photon correlation system implemented by FPGA,” in “ICESS’08. International Conference on Embedded Software and Systems, 2008,” (IEEE, 2008), pp. 410–414.
19. G. Mocsar, B. Kreith, J. Buchholz, J. W. Krieger, J. Langowski, and G. Vamosi, “Note: multiplexed multiple-tau auto- and cross-correlators on a single field programmable gate array,” Rev. Sci. Instrum. 83, 046101 (2012). [CrossRef] [PubMed]
21. R. A. Colyer, G. Scalia, I. Rech, A. Gulinatti, M. Ghioni, S. Cova, S. Weiss, and X. Michalet, “High-throughput FCS using an LCOS spatial light modulator and an 8 × 1 SPAD array,” Biomed. Opt. Express 1, 1408–1431 (2010). [CrossRef]
22. R. Colyer, G. Scalia, F. Villa, F. Guerrieri, S. Tisa, F. Zappa, S. Cova, S. Weiss, and X. Michalet, “Ultra high-throughput single molecule spectroscopy with a 1024 pixel SPAD,” in “Proc. SPIE ,” 7905, 790503–1 (2011).
23. G. Heuvelman, F. Erdel, M. Wachsmuth, and K. Rippe, “Analysis of protein mobilities and interactions in living cells by multifocal fluorescence fluctuation microscopy,” Eur. Biophys. J. 38, 813–828 (2009). [CrossRef] [PubMed]
24. F. Bestvater, Z. Seghiri, M. S. Kang, N. Gröner, J. Y. Lee, I. Kang-Bin, and M. Wachsmuth, “EMCCD-based spectrally resolved fluorescence correlation spectroscopy,” Opt. Express 18, 23818–23828 (2010). [CrossRef] [PubMed]
26. B. Kannan, L. Guo, T. Sudhaharan, S. Ahmed, I. Maruyama, and T. Wohland, “Spatially resolved total internal reflection fluorescence correlation microscopy using an electron multiplying charge-coupled device camera,” Anal. Chem. 79, 4463–4470 (2007). [CrossRef] [PubMed]
27. T. Wohland, X. Shi, J. Sankaran, and E. H. K. Stelzer, “Single plane illumination fluorescence correlation spectroscopy (SPIM-FCS) probes inhomogeneous three-dimensional environments,” Opt. Express 10, 10627–10641 (2010). [CrossRef]
28. J. Capoulade, M. Wachsmuth, L. Hufnagel, and M. Knop, “Quantitative fluorescence imaging of protein diffusion and interaction in living cells,” Nat. Biotechnol. 29, 835–839 (2011). [CrossRef] [PubMed]
29. L. Carrara, C. Niclass, N. Scheidegger, H. Shea, and E. Charbon, “A gamma, x-ray and high energy proton radiationtolerant CMOS image sensor for space applications,” in “ISSCC, IEEE International Solid-State Circuits Conference,” (2009), pp. 40–41.
30. M. Gösch, A. Serov, T. Anhut, T. Lasser, A. Rochas, P. Besse, R. Popovic, H. Blom, and R. Rigler, “Parallel single molecule detection with a fully integrated single-photon 2 × 2 CMOS detector array,” J. Biomed. Opt. 9, 913 (2004). [CrossRef] [PubMed]
31. R. Colyer, G. Scalia, T. Kim, I. Rech, D. Resnati, S. Marangoni, M. Ghioni, S. Cova, S. Weiss, and X. Michalet, “High-throughput multispot single-molecule spectroscopy,” in “Proceedings-Society of Photo-Optical Instrumentation Engineers,”, vol. 7571 (NIH Public Access, 2010), vol. 7571, p. 75710G.
32. C. Veerappan, J. A. Richardson, R. J. Walker, D.-U. Li, M. W. Fishburn, Y. Maruyama, D. Stoppa, F. Borghetti, M. Gersbach, R. K. Henderson, and E. Charbon, “A 160x128 single-photon image sensor with on-pixel 55ps 10b time-to-digital converter.” in “ISSCC, IEEE International Solid-State Circuits Conference,” (IEEE, 2011), pp. 312–314.
33. C. Niclass, M. Sergio, and E. Charbon, “A single photon avalanche diode array fabricated in 0.35-μm CMOS and based on an event-driven readout for TCSPC experiments,” in “Proc. SPIE ,” 6372, 63720S (2006). [CrossRef]
34. K. Schätzel, “Noise on photon correlation data: I. autocorrelation functions,” Quantum Opt. 2, 287–305 (1990). [CrossRef]
35. K. Schätzel, “New concepts in correlator design,” Inst. Phys. Conf. Ser. 77, 175–184 (1985).
36. Z. Kojro, A. Riede, M. Schubert, and W. Grill, “Systematic and statistical errors in correlation estimators obtained from various digital correlators,” Rev. Sci. Instrum. 70, 4487–4496 (1999). [CrossRef]
38. The diffusion coefficient was D = 20μm2/s (corresponding to an intermediately sized protein in water), the simulation timestep of the random walk, as well as the minimum lag time were Δtsim = τmin = 1μs. There were around 1.2 particles in the effective measurement volume Veff ≈ 0.4μm3 on average.
39. T. Wocjan, J. Krieger, O. Krichevsky, and J. Langowski, “Dynamics of a fluorophore attached to superhelical DNA: FCS experiments simulated by brownian dynamics,” Phys. Chem. Chem. Phys. 11, 10671–10681 (2009). [CrossRef]
40. C. Niclass, C. Favi, T. Kluter, M. Gersbach, and E. Charbon, “A 128 × 128 single-photon imager with on-chip column-level 10b time-to-digital converter array capable of 97ps resolution,” in “ISSCC, IEEE International Solid-State Circuits Conference,” (IEEE, 2008), pp. 44–594.
42. Joachim Wuttke: lmfit - a C/C++ routine for Levenberg-Marquardt minimization with wrapper for least-squares curve fitting, based on work by B. S. Garbow, K. E. Hillstrom, J. J. Moré, and S. Moshier. Version 3.2, retrieved on 2011-08-31 from http://www.messen-und-deuten.de/lmfit/.
43. QuickFit 3.0 can be downloaded free of charge from http://www.dkfz.de/Macromol/quickfit/. In addition to the fitting capabilities, it also contains software implementations of the correlators described in here.