SciELO - Scientific Electronic Library Online

 
vol.34 número1Curva maestra para la cristalización de aleaciones amorfas Sb70Te30 índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Anales (Asociación Física Argentina)

versión impresa ISSN 0327-358Xversión On-line ISSN 1850-1168

An. AFA vol.34 no.1 Buenos Aires mayo 2023

http://dx.doi.org/10.31527/analesafa.2023.34.1.27 

ARTÍCULOS INVITADOS PREMIADOS "JUAN JOSÉ GIAMBIAGI"

Desarrollo de un sistema para el conteo de múltiples señales en coincidencia basado en tecnología FPGA

Development of an FPGA-based coincidence counting system for multiple signals

M. Bolaños1  * 

A. Boette2 

F. Videla1  3 

L. Rebón2 

1 Centro de Investigaciones Ópticas (CIOp) - Universidad Nacional de La Plata - CIC - CONICET - Argentina

2 Instituto de Física de La Plata (IFLP), Universidad Nacional de La Plata - CONICET - Argentina

3 Departamento Ciencias Básicas, Facultad de Ingeniería UNLP Avenida 1 y 47, La Plata, Argentina

Resumen

La detección de señales en coincidencia desempeña un rol importante en distintas aplicaciones tecnológicas de metrología o comunicación, y en particular en el campo de la óptica cuántica. En este sentido, la detección simultánea de dos o más fotones permite explotar las características no clásicas de la luz, las cuales se manifiestan mediante correlaciones que no son posibles en una descripción clásica. Presentamos aquí el desarrollo de módulos programables, basados en tecnología FPGA, que componen el sistema de detección y conteo de pulsos en coincidencias. La arquitectura implementada en una placa de desarrollo de la firma Xilinx, permite determinar cuándo dos o más pulsos coinciden dentro de una ventana temporal, cuyo ancho puede configurarse entre 1 y 255 ns para compensar posibles diferencias de camino. Como producto de las medidas de pulsos individuales y en coincidencias, se obtuvieron y compararon las estadísticas de detección con las predichas teóricamente. Adicionalmente, se emularon las señales correspondientes a diferentes fuentes de fotones a través de un divisor de haz, y se obtuvieron las estadísticas de fotodetección a partir de las cuales se determinó, para cada caso, la función de correlación de segundo orden g (2)(τ).

Palabras clave: FPGA; Estadística de Fotodetección; Medidas de Correlación

Abstract

The detection of temporally coincident signals plays an important role in different technological applications for metrology and communication, and particularlly, in the area of quantum optics. In this sense, the simultaneous detection of two or more photons allows one to take advantage of the nonclassical features of light that manifest themselves in certain types of correlations that cannot be described classically. We present here the development of programmable modules, by using FPGA technology, which are part of the coincident pulse detection and counting system. Our implementation, in a development board from Xilinx, allows to determine when two or more pulses overlap within a temporal window, with a configurable width in the range of 1 and 255 ns to compensate for possible path differences. We obtained the photodetection statistics result of the single and coincident pulse measurements, and compared them with that predicted by a theoretical analysis. In addition, we have emulated the signals corresponding to different photon sources through a beam splitter, and obtained the photodetection statistics from which we determine, for each case, the second order correlation function g (2)(τ).

Keywords: Field Programmable Gate Array (FPGA); Photodetection Statistics; Correlation Measurements

1. INTRODUCCIÓN

El desarrollo de las tecnologías cuánticas, y en particular los avances en el campo de la óptica cuántica [1], nos permiten en la actualidad generar, manipular y detectar fotones de a uno. En este contexto, el desarrollo de módulos contadores de coincidencias resulta fundamental para explotar las características no clásicas de ciertos estados de la luz, entre las que se destaca el fenómeno de entrelazamiento [2]. Este tipo de dispositivos permite realizar medidas de detección simultánea de dos o más fotones, requerimiento para muchas aplicaciones de la óptica cuántica, como por ejemplo en criptografía cuántica [3] o metrología cuántica [4].

En este trabajo, presentamos el diseño y desarrollo de un módulo para el conteo de señales en coincidencia en un circuito integrado FPGA (Field Programmable Gate Arrays), que consiste de un arreglo matricial de bloques lógicos programables e interconectados [5]. El funcionamiento de nuestra implementación está asociado al de fotodetectores basados en fotodiodos de avalancha (APDs) o fotodiodos de avalancha para fotones individuales (SPADs), los que permiten detectar señales de muy baja intensidad, del orden del pW/cm2 [6,7], y en particular pueden emplearse para detectar fotones de a uno al ser operados en modo Geiger.

Dado un conjunto de señales de entrada (por defecto cuatro), nuestro módulo es capaz de contar el número de arribos de dos o más de estas señales en coincidencia (y al mismo tiempo los arribos individuales) dentro de ventanas temporales cuyos anchos pueden ser ajustados entre 1 y 255 ns. Con el objetivo de caracterizar el sistema se implementó, en la misma placa de desarrollo, un generador de pulsos de período configurable. Se generaron trenes de pulsos con distintos períodos y se midieron cuentas en coincidencia utilizando el módulo desarrollado, observándose que los resultados están en acuerdo con lo esperado. En segunda instancia, se implementaron trenes de pulsos aleatorios que simulan el decaimiento de una muestra radiactiva y se analizó el registro de las cuentas individuales y en coincidencia, donde se encontró también que los resultados coinciden con lo esperado para este tipo de fuentes. Finalmente, se implementó un sistema capaz de, dado un estado inicial configurable por computadora e ingresado como parámetro, realizar una simulación del experimento de HanburyBrown-Twiss (o HBT) para calcular la función de correlación de segundo orden g (2)(τ) [8]. Este último módulo se utilizó para simular el comportamiento de una fuente láser y de una fuente de estados de fotones individuales.

2. DISEÑO DEL CIRCUITO

El objetivo de este trabajo fue el diseño de un sistema capaz de contar la cantidad de veces que un conjunto de señales de entrada coinciden en un intervalo de tiempo determinado (ventana de coincidencias). La detección de coincidencias implica la introducción de retardos configurables en el orden de los nanosegundos o menor, por lo que empleamos el retardo propio de los elementos básicos de la tecnología Xilinx. En general, en los circuitos digitales se implementan retardos basados en cadenas de flip-flops y su fiabilidad reposa en el empleo de relojes generados por cristales considerados estables. Sin embargo los retardos de estas compuertas, a pesar de su naturaleza analógica, puede verificarse que son controlables. Así, partiendo de estas consideraciones generales, se deducen los criterios de diseño y las posibilidades de VHDL como lenguaje descriptor de esta implementación, un poco apartada de los diseños estándar. Otros módulos que componen este desarrollo siguen los criterios usuales (contadores, memorias, UART’s) aunque el desarrollo de los protocolos de comunicación con la interfase de usuario está diseñado con un formato ad-hoc.

El sistema considerado tiene antecedentes en los trabajos [9-11], y su diagrama de bloques se muestra en la Fig. 1. Su funcionamiento puede describirse según las siguientes etapas:

- Los pulsos de las N entradas, que pueden provenir de un fotodetector o un generador de señales, ingresan a un conformador de pulsos, que transforma los pulsos entrantes en unos rectangulares con ancho temporal configurable.

- Un módulo detector a dónde ingresan los pulsos ya conformados. El mismo está basado en un conjunto de compuertas AND que permiten registrar la superposición temporal de las señales. La ocurrencia de solapamiento implica la detección de una coincidencia entre el subconjunto de señales seleccionado. Como resultado de la coincidencia el circuito emite un pulso. Agrupando las entradas se dispone de M configuraciones de coincidencias dando lugar a M salidas, asociadas a las diferentes configuraciones.

- El bloque de contadores independientes cuenta los pulsos registrados en una ventana temporal de ancho programable. Los pulsos a contar provienen de los N canales de entrada, y de las M salidas en coincidencia. Esta información es luego enviada a una PC por medio de una interfaz implementada en un módulo UART que se incorporó en la propia FPGA.

FIG. 1: Diagrama en bloques del módulo contador de coincidencias. Las N señales ingresan por los canales de entrada, son retardadas individualmente, y los pulsos son conformados a un mismo ancho configurable. 

Implementación en FPGA

Estos sistemas se implementaron sobre un chip FPGA ubicado en una placa de desarrollo de prototipos Xilinx Spartan-3A. Un chip FPGA puede ser programado utilizando lenguajes de descripción de hardware como VHDL (utilizado en este trabajo) o Verilog. Para facilitar el desarrollo, el sistema completo se dividió en un conjunto de submódulos individuales o componentes, que luego se conectaron a través de un código integrador. Todos los componentes fueron desarrollados en función de parámetros globales como la cantidad de canales de entrada (N) y la cantidad de canales de salida (M) para facilitar la escalabilidad y adaptabilidad del diseño. Todos los archivos de código se encuentran en [12], requiriendo petición de acceso.

Retardador

El módulo retardador es el encargado de adicionar un desfasaje temporal a una o más señales de entrada. Esto se vuelve necesario cuando las señales que arriban al circuito han experimentado una diferencia de caminos y se necesita compensarla, o cuando se requiere un desfasaje temporal particular entre ellas, por ejemplo para obtener medidas de correlación temporal. La implementación de los retardos en FPGA puede realizarse mediante recursos analógicos, con una cadena de compuertas AND, o digitales, utilizando cadenas de flip-flops disparados secuencialmente por flancos de la señal de reloj. La cadena de compuertas AND provoca un retardo efectivo, igual a la suma de los retardos individuales inherentes a toda implementación circuital, el cual depende de parámetros de diseño geométricos y tecnológicos. Estos retardos individuales producidos por cada compuerta, se pueden considerar despreciables para aplicaciones generales, pero son apreciables en el caso de conteo de fotones.

Para implementar el módulo retardador, se implementó una combinación de ajustes gruesos, utilizando cadenas de flip-flops controladas por la señal de reloj, y finos, utilizando una cadena de compuertas AND.

Conformador de pulsos

El módulo conformador de pulsos tiene la finalidad de reducir el ancho de un pulso entrante. Ese ancho se puede reducir en forma gradual por medio de un parámetro de configuración cuyo valor representa el tiempo en que la señal será retardada. Esta señal es luego invertida, y enviada junto a la señal original a una compuerta AND (Fig. 2). Para implementar el retardo de la señal, con resoluciones de hasta algunos nanosegundos, se utilizó una cadena de compuertas AND como la propuesta en la sección anterior. La máxima longitud de esta cadena se fijó en 255 compuertas.

FIG. 2: Circuito reducido (solo 16 compuertas) implementado para conformar un pulso de entrada a un ancho configurable. 

La señal ingresa a una cadena de compuertas AND en cuyas entradas, en el nivel i, se tiene una señal de 3 V y la señal saliente de la compuerta i−1. En la compuerta 1 ingresará la señal original. Las salidas de las 255 compuertas, junto con una señal conectada a tierra, son enviadas a un multiplexor 256 a 1. La salida se selecciona con una palabra de 8 bits. A la entrada seleccionada en el multiplexor se le aplica una compuerta NOT, y se la ingresa a una compuerta AND junto con la señal original y luego de haberle aplicado dos compuertas NOT (Algoritmo 2.1.2). En el Inserto de la Fig. 2 se detalla el diagrama de tiempos y se esquematiza cómo actúa el circuito sobre un dado pulso. La señal original es retardada e invertida. Al ingresar junto con la señal original a una compuerta AND, se obtiene una versión del mismo pulso con igual flanco de subida que la señal original, pero acortado.

3. CARACTERIZACIÓN Y RESULTADOS

Para ensayar y analizar el correcto funcionamiento del sistema, en primera instancia se implementó un módulo generador de pulsos periódicos de período configurable y 20 ns de ancho. De esta forma, se utilizaron pulsos de 40, 60, 100 y 140 ns para los canales de entrada A, B, C y D respectivamente, y se registraron las cuentas en coincidencia para todas las combinaciones de dos canales, en un tiempo de integración igual a 5 ms. En la Tabla 1 se reportan el número de cuentas individuales registradas en cada canal y el número de cuentas en coincidencia, y se comparan con las esperadas idealmente.

TABLA 1: Comparación de las cuentas por segundo esperadas y las registradas para los cuatro canales de entrada y para todas las coincidencias dobles entre estos canales. 

En segunda instancia, se implementó un generador de pulsos tal que los intervalos de tiempo entre pulsos sean aleatorios, lo que simula, por ejemplo, el decaimiento de una muestra radiactiva (Algoritmo 2).

La inspección de un histograma de cuentas registradas para un canal revela que el mismo sigue una distribución de Poisson (Fig. 3), como se espera para este tipo de fenómenos [1]. Luego, se utilizaron dos de estos trenes de pulsos aleatorios independientes como entradas para los canales A y B, y se midieron las cuentas en coincidencia entre ambos. Siendo que ambos eventos son, en teoría , independientes, si ocurre una detección en coincidencias será de origen casual. La tasa de detección en coincidencia entre los canales independientes A y B viene dada por

P AB = P A P B t,

donde ∆t es la ventana de coincidencias, y P A y P B son las tasas de generación de pulsos. Siendo que los pulsos generados por el algoritmo 3 lo hacen cada 60 ns, para estas entradas la ventana de coincidencias efectiva es de ∆t ef f = 60 ns, con un número medio de cuentas por segundo N. Con los parámetros utilizados, se esperan obtener N = 12500 cuentas por segundo en cada canal individual, por lo que se espera obtener P AB = 9.38 cuentas/s. Para una medida de 1 minuto de duración, se obtuvo una tasa de detección en coincidencias de P AB = 9.87(82) cuentas/s, que se encuentra dentro de lo esperado.

FIG. 3: Histograma de las cuentas registradas en 5 ms para el generador de pulsos aleatorios. En naranja, el ajuste correspondiente es consistente con la distribución Poissoniana esperada. 

Simulación del experimento de Hanbury-Brown-Twiss

El experimento de HBT (esquematizado en la Fig. 4) permite obtener información sobre la naturaleza de la luz, a partir de la función de correlación de segundo orden g (2)(τ) definida como

(1)

donde los promedios se realizan sobre un modo en el tiempo. Para disponer de un sistema controlable y fácilmente configurable que permita, por un lado, probar el funcionamiento del módulo contador de coincidencias con señales realistas, y por otro lado, obtener datos compatibles con un experimento óptico, se optó por implementar una simulación del proceso de detección de una fuente de luz arbitraria en la propia FPGA, de este modo se pueden generar señales para enviar a los distintos puertos de entrada que son compatibles con una medición realista. La simulación para este experimento particular recibe una serie de parámetros calculados mediante software desde una computadora que describen las probabilidades de detectar fotones en alguno o ambos de los detectores.

FIG. 4: Esquema del experimento de Handbury-Brown y Twiss, utilizado para determinar g(2)(τ) mediante las cuentas en coincidencias en los detectores T y R, donde el pulso medido en R es retardado un tiempo τ configurable. 

Con la intención de mantener esta simulación en una escala realizable con el espacio disponible dentro del chip, se limitó el espacio de la base utilizada a aquel en el que como máximo solo puedo tener 10 fotones entre ambas entradas/salidas del divisor de haz. De esta forma, un estado puro arbitrario se representa de la forma

mientras que para un estado mixto arbitrario

(3)

donde i n representa un estado de i fotones en la entrada/salida n. Utilizando esta representación para los estados de entrada y salida del divisor de haz, se programó dentro del software de la interfaz gráfica el comportamiento del estado de salida a partir de la matriz del divisor de haz.

Dado un estado de entrada i, j, la acción del operador divisor de haz Uˆ BS es tal que

Donde

y el estado entrante i, j representa el estado con i fotones en la entrada 1 y j fotones en la entrada 2, y el estado resultante l+k 1 il+ jk 2 representa el estado con l +k fotones en la salida 1 e il+ jk fotones en la salida 2.

Para definir los parámetros que se ingresan al sistema desde la computadora, dado un estado inicial (puro o mixto) definido por el usuario, se le aplica el operador Uˆ BS , y se obtiene un vector de elementos p i,j , que representan la probabilidad de detectar i fotones en el detector T y j fotones en el detector R en un dado instante de tiempo. De esta forma, para simular el proceso de detección, una vez teniendo los parámetros, se utiliza un generador de números aleatorios integrado en el chip para decidir aleatoriamente en que detectores se detecta un pulso.

Utilizando el algoritmo 3, se realizó una simulación del experimento de HBT dentro del chip FPGA. La simulación se realizó utilizando una estadística de fuente láser (descrita por un estado puro coherente), y de fotón individual (descrita por el estado puro 1). Para ello, se ingresaron al chip los parámetros que contienen la estadística de fotodetección post-divisor de haz de ambas fuentes, y se utilizó el módulo retardador de pulsos para retardar uno de ellos respecto del otro una cantidad τ múltiplo de 60 ns. De esta forma, se obtuvo la función de correlación de segundo orden g (2)(τ) para ambas fuentes (Fig. 5 y 6).

FIG. 5: Valores de g(2)(τ) obtenidos simulando una fuente tipo láser. Inserto: Ampliación en el eje de g(2)(τ)− 1, mostrando que se obtuvo g(2)(τ)= 1.0002(2). 

FIG. 6: Valores de g(2)(τ) obtenidos simulando una fuente de estados de Fock de un solo fotón. 

Para ambas fuentes simuladas, los resultados son los esperados. Para el caso de la fuente láser, g (2)(τ) = 1.0002(2) ∀τ, que contiene el valor esperado de g (2)(τ) = 1 ∀τ. Por otro lado, para la fuente de estados de un solo fotón se observa que para τ = 0, g (2)(0)= 0, pero crece rápidamente a 1 para cualquier otro valor, que coincide con los resultados esperados. Usualmente, se esperaría obtener una caída continua entre g (2) = 1 y g (2) = 0, pero al ser la fuente simulada en múltiplos enteros de 60 ns, esta continuidad no se observa, y la caída es abrupta.

CONCLUSIONES

Se ha diseñado e implementado un sistema basado en tecnología FPGA y programado en lenguaje VHDL para registrar cuentas simples y/o en coincidencias múltiples de pulsos que ingresan al módulo de conteo por un conjunto de 4 entradas independientes. Además se ha desarrollado una interfaz gráfica que habilita el monitoreo del conteo de pulsos en tiempo real, y la reconfiguración de los parámetros de medida.

Una caracterización preliminar, usando los propios recursos de diseño de los que hemos provisto al sistema, proporciona resultados aceptables en cuanto a detección de cuentas simples y en coincidencias. Se implementaron generadores de pulsos periódicos y con secuencias aleatorias cuya estadística de fotodetección verifica la esperada teóricamente. Finalmente, se implementó un módulo capaz de simular el proceso de fotodetección para fuentes con estadísticas arbitrarias configurables al interactuar con un divisor de haz 50/50. Utilizando este sistema, se simuló el experimento de HanburyBrown-Twiss para fuentes tipo láser y de estados de un solo fotón. Los resultados obtenidos con esta simulación son coherentes con lo esperado, constituyendo un indicador de su buen rendimiento para el análisis de las señales típicas en un experimento de óptica cuántica.

El desarrollo de este módulo forma parte de un primer prototipo para un sistema autónomo de comunicaciones cuánticas a grandes distancias. En particular, se prevé implementarlo en forma integrada a un nanosatélite, luego de modificaciones de diseño y construcción para cumplir con los requerimientos propios a la misión. Como actividad futura se continuará con la adaptación de este desarrollo a geometrías y materiales aptos para las exigencias mecánicas, térmicas y electromagnéticas inherentes a su funcionamiento en una órbita baja (LEO).

REFERENCIAS

1. A. M. Fox, M. Fox et al. Quantum optics: an introduction (Oxford university press, 2006). [ Links ]

2. A. K. Ekert. en Quantum Measurements in Optics 413-418 (Springer, 1992). [ Links ]

3. C. H. Bennett y G. Brassard. Quantum cryptography: Public key distribution and coin tossing. arXiv preprintarXiv :2003.06557 (2020). [ Links ]

4. E. Polino, M. Valeri, N. Spagnolo y F. Sciarrino. Photonic quantum metrology. AVS Quantum Science 2, 024703 (2020). [ Links ]

5. P. Dillien. And the winner of best FPGA of 2016 is. EE Times 33 (2017). [ Links ]

6. S. A. Bordakevich, A. Kielbowicz, I. H. López Grande y M. A. Larotonda. Módulo de conteo de fotones basado en fotodiodos de avalancha. Anales AFA 28, 99-105 (2018). [ Links ]

7. M. Stipcevic, B. G. Christensen, P. G. Kwiat y D. J. Gauthier. Advanced active quenching circuit for´ ultra-fast quantum cryptography. Opt. Express 25, 21861-21876 (2017). [ Links ]

8. Y. Bromberg, Y. Lahini, E. Small e Y. Silberberg. Hanbury-Brown and Twiss Interferometry with Interacting Photons. Nat. Photonics 4 (ago. de 2010). [ Links ]

9. D. Branning y M. Beck. An FPGA-based module for multiphoton coincidence counting en Advanced Photon Counting Techniques VI 8375 (2012), 97-106. [ Links ]

10. B. K. Park, Y.-S. Kim, O. Kwon, S.-W. Han y S. Moon. High-performance reconfigurable coincidence counting unit based on a field programmable gate array. Appl. Opt. 54, 4727-4731 (2015). [ Links ]

11. D. Branning, S. Bhandari y M. Beck. Low-cost coincidence-counting electronics for undergraduate quantum optics. Am. J. Phys. 77, 667-670 (2009). [ Links ]

12. M. Bolaños. Photon Coincidence Counterhttps://github.com/bmatiasruben/Deteccion-y-conteo-defotones. 2020. [ Links ]

13. Australian National University. ANU QRNGhttps://qrng.anu.edu.au/. [ Links ]

Notas

1 Se asume que los numeros generados por el RNG implementado en la FPGA son independientes al modificar la semilla inicial. Para garantizar la falta de sesgos, se utilizo un generador cuantico de numeros aleatorios para generar las semillas [13].

Recibido: 07 de Julio de 2022; Aprobado: 12 de Enero de 2023

*Autor para correspondencia: matiasruben.bolanoswagner@studenti.unipd.it

Creative Commons License Este es un artículo publicado en acceso abierto bajo una licencia Creative Commons