39
1 Sistema de detección de coincidencias para aplicaciones en óptica cuántica Presentado por: Nicolás Perdomo Madrid Asesor: Mauricio Guerrero Hurtado Coasesor: David Alfonso Guzmán Rincón Universidad de Los Andes Bogotá, Colombia Junio de 2010

Sistema de detección de coincidencias para aplicaciones en

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistema de detección de coincidencias para aplicaciones en

1

Sistema de detección de coincidencias para aplicaciones en

óptica cuántica

Presentado por: Nicolás Perdomo Madrid Asesor: Mauricio Guerrero Hurtado

Coasesor: David Alfonso Guzmán Rincón

Universidad de Los Andes

Bogotá, Colombia Junio de 2010

Page 2: Sistema de detección de coincidencias para aplicaciones en

2

Índice de Tablas Tabla 1 Componentes físicos de la FPGA empleada ............................................................................ 9 Tabla 2 Prueba de velocidad y estabilidad del reloj a 276MHz comparado con el reloj de 48MHz .. 16 Tabla 3 Prueba de velocidad y estabilidad de la señal de salida de la compuerta Xor contra los conteos de la señal del reloj original de prueba ............................................................................... 16 Tabla 4 Tabla de verdad de la compuerta lógica Xor ......................................................................... 17 Tabla 5 Número de registro de cada uno de los datos de conteos de coincidencias y los canales a los que corresponde .......................................................................................................................... 28 Tabla 6 Codificación de los periodos de medición ............................................................................ 29 Índice de Figuras Figura 1 Esquemático RTL del módulo de conteo de eventos ........................................................... 12 Figura 2 . Tabla de estados y caja negra del sistema de detección de coincidencias síncrono. Tomado de [6], Tmax corresponde al tiempo de la ventana de coincidencia, mientras Tactual corresponde al tiempo transcurrido hasta el momento de detección del evento. .......................... 14 Figura 3 Duplicación de la frecuencia utilizando una compuerta Xor. Las entradas P y N son dos señales de reloj que tienen la misma frecuencia pero que están desfasadas 90 grados entre si. .... 17 Figura 4 Implementación con multiplexores de FF-D sensible a ambos flancos del reloj, tomado de [5] ...................................................................................................................................................... 20 Figura 5 Esquemático RTL del Pseudo contador sensible a ambos flancos de reloj multiplexado. El bloque del lado derecho del esquemático corresponde a un multiplexor programado como un módulo aparte. .................................................................................................................................. 22 Figura 6 Esquemático RTL del contador de doble flanco implementado con sumador .................... 23 Figura 7 Esquemático RTL del módulo de corrección de retrasos, compuesto por dos bloques de contadores pseudo DET, flip flops D .................................................................................................. 24 Figura 8 . Medición en el osciloscopio de la señal original “1”, y tres copias de la misma “2, 3, 4”,

desfasadas en la misma medida que son sacadas por diferentes caminos de la FPGA, las tres señales

simultáneas aparecen desfasadas debido a las diferencias en los caminos eléctricos ....................... 25 Figura 9 Medición en el osciloscopio de la señal original “1”, y tres copias de la misma “2, 3, 4”, desfasadas hasta alcanzar de nuevo la simultaneidad de los eventos hasta un error de 1.7ns. ...... 26 Figura 10 Interfaz en Labview desarrollada para el control de la FPGA, muestra los conteos cada diez milisegundos del reloj de 48 MHz por cada canal y todas las posibles combinaciones de coincidencias entre los mismos. ........................................................................................................ 30 Figura 11 Montaje experimental de medición de coincidencias del haz de un láser HeNe, BS: Beam Splitter. Tomado de [9]. ..................................................................................................................... 32 Figura 12 Gráfica de los conteos individuales por segundo contra el retraso por canal ................... 33 Figura 13 Gráfica de coincidencias por segundo contra retrasos por canal de la medición del láser HeNe .................................................................................................................................................. 34 Figura 14 Gráfica de los conteos individuales por segundo contra los retrasos por canal de SPDC . 35 Figura 15 Gráfica de coincidencias por segundo contra retrasos por canal del experimento de SPDC ........................................................................................................................................................... 35

Page 3: Sistema de detección de coincidencias para aplicaciones en

3

Contenido 1 Introducción ................................................................................................................................ 5

1.1 Objetivos ................................................................................................................................. 5

1.2 Descripción de la problemática ............................................................................................... 5

2. Definición y especificación de la solución ................................................................................... 7

2.1 Definición de la solución ......................................................................................................... 7

2.2 Especificaciones....................................................................................................................... 7

2.2.1 Especificaciones de resolución .................................................................................... 7

2.2.2 Especificaciones de funcionamiento ........................................................................... 8

3 Componentes Hardware ............................................................................................................. 9

3.1 La FPGA.................................................................................................................................... 9

3.1.1 DCMs ......................................................................................................................... 10

3.2 Tarjeta ZestSC2 ...................................................................................................................... 10

3.3 Detectores de fotones ........................................................................................................... 11

4 Conteo de eventos individuales y coincidentes ........................................................................ 12

4.1 Conteos Individuales ............................................................................................................. 12

4.2 Arquitectura del bloque de detección de coincidencias ....................................................... 13

5 Desarrollo del problema de la resolución. Cómo funcionar a mayor velocidad. ...................... 15

5.1 Máxima frecuencia sintetizable ............................................................................................. 15

5.2 Duplicación de la velocidad del reloj mediante compuerta Xor. ........................................... 16

6 El problema del retraso ............................................................................................................. 19

6.1 Pseudo DET flip flop D ........................................................................................................... 19

6.2 Pseudo contador DET. ............................................................................................................ 21

6.2.1 Contador multiplexado .............................................................................................. 21

6.2.2 Contador sumado ...................................................................................................... 22

6.3 Arquitectura final y resultados del módulo ........................................................................... 23

7 Interfaz e implementación de la comunicación entre el PC y la FPGA ...................................... 27

7.1 Almacenamiento de datos .................................................................................................... 27

7.1.1 Registros de almacenamiento de conteos individuales por canal ............................ 27

7.1.2 Registros de almacenamiento de coincidencias entre canales ................................. 28

7.2 Registros de instrucciones ..................................................................................................... 28

7.2.1 Registro de periodo de medición .............................................................................. 28

7.2.2 Registro de duración de ventana de coincidencias ................................................... 29

7.2.3 Registro de valor de retraso por canal ...................................................................... 29

7.2.4 Registro de instrucción de reset ................................................................................ 29

Page 4: Sistema de detección de coincidencias para aplicaciones en

4

7.3 Interfaz .................................................................................................................................. 30

8 Resultados experimentales del dispositivo ............................................................................... 32

8.1 Estadísticas de un láser ......................................................................................................... 32

8.2 Estadísticas de los fotones enredados .................................................................................. 34

9 Perspectivas de desarrollo......................................................................................................... 37

10 Conclusiones.......................................................................................................................... 38

11 Referencias ................................................................................................................................ 39

Page 5: Sistema de detección de coincidencias para aplicaciones en

5

1 Introducción

1.1 Objetivos Desarrollar un sistema de detección de coincidencias para ser utilizado en experimentos del área

de óptica cuántica, con capacidad de corrección de retardos diferentes entre los canales, y la

medición multicanal, así como el control del tamaño de las ventanas de coincidencias. La

implementación incluye una interfaz con Labview para el monitoreo y procesamiento de los datos

en vivo, así como el control de los diferentes parámetros como los retardos de las señales, las

ventanas de coincidencias, el tiempo de muestreo y la cantidad de muestras a tomar.

1.2 Descripción de la problemática

El sistema se desarrolló para dar solución a la necesidad del laboratorio de Óptica Cuántica del

departamento de física de la universidad, donde se requiere un módulo que automatice la

medición y la recolección de datos para diferentes experimentos en la materia. Dicho sistema debe

ser capaz de realizar la medición de coincidencias por lo menos entre 4 canales simultáneamente,

así como poseer una ventana de coincidencia del orden de 2 a 4 nanosegundos, corrección de los

retrasos generados por los componentes intrínsecos del montaje electrónico y algunas posibles

diferencias en el montaje óptico y de cableado eléctrico.

La detección de coincidencias es crucial en la realización de experimentos en óptica cuántica [1],

donde la detección de fotones enredados, que son creados al mismo tiempo pero que no

necesariamente recorren el mismo camino o la misma distancia, es importante para la

materialización de aplicaciones de los mismos, como es el caso de criptografía cuántica,

teleportación de un estado cuántico, y la posible aplicación en computación cuántica que utiliza

fotones enredados como registros de datos.[2,3,4]

El sistema desarrollado utiliza una FPGA (Field Programmable Gate Array) como núcleo del proceso

de detección de eventos individuales, realiza la detección de coincidencias en el mismo dispositivo

realizando un conteo de los mismos y permitiendo una ventana de coincidencia variable, es capaz

de corregir retrasos de las señales de los eventos de detección, ya sea debido a diferencias en el

camino óptico o en el camino eléctrico que pueden causar falsas coincidencias o la no detección de

Page 6: Sistema de detección de coincidencias para aplicaciones en

6

coincidencias debido a que recorren distancias diferentes.

El uso de detección externa por medio de componentes comerciales no permite la flexibilidad

deseada para la aplicación del mismo, no solo para la tarea de contar coincidencias sino de

enviarlas a un computador para su procesamiento, y la expansión del módulo a varios canales sin

que esto signifique una multiplicación de esfuerzo y costo de la misma. La FPGA permite una

segmentación y replicación simple en términos de módulos codificados, que permiten construir

otro canal instanciando un componente de código y no fabricando un circuito completo.

A continuación se describe de manera detallada tanto los dispositivos utilizados, los diseños

propuestos para la soluciones de los problemas del retraso variable y de la ventana de coincidencia

variable, la necesidad de capacidad multicanal para la detección simultánea para muchos

experimentos, el diseño y funcionamiento de la interfaz, y una descripción de las pruebas

realizadas para la verificación del funcionamiento del proceso.

Page 7: Sistema de detección de coincidencias para aplicaciones en

7

2. Definición y especificación de la solución

2.1 Definición de la solución

Se plantea la utilización de un dispositivo de funcionamiento síncrono que permite suplir las

funciones necesarias para el desarrollo satisfactorio de experimentos en el área de óptica cuántica,

así como la aplicación del mismo en cualquier ambiente que requiera la detección y conteos de

eventos individuales o coincidencias. El dispositivo desarrollado cuenta con interfaz para usuarios y

comunicación constante con el PC que permite su fácil manipulación y el procesamiento posterior

de los datos obtenidos por el mismo.

2.2 Especificaciones

Las características del dispositivo, definidas por petición del director actual del laboratorio de

óptica cuántica y en conocimiento de las necesidades básicas y deseables de los procedimientos y

experimentos a realizar en el mismo, son categorizadas en: especificaciones de resolución,

especificaciones funcionales, y especificaciones de interfaz de usuario.

2.2.1 Especificaciones de resolución Comprende las especificaciones en tiempos y velocidades claves para garantizar la realización de

los experimentos, estos son los valores mínimos exigidos para considerar el experimento como

válido desde el punto de vista físico.

a) Corrección de retrasos: Se define una capacidad de corrección de retrasos mínima del orden de

4ns, los motivos técnicos para la misma son explicados en la sección 7 correspondiente al

problema del retraso.

b) Ventana de Coincidencias: Se define una capacidad de resolución en discernimiento de

coincidencias de por lo menos 4ns.

Page 8: Sistema de detección de coincidencias para aplicaciones en

8

2.2.2 Especificaciones de funcionamiento Comprende las especificaciones en cantidad y variabilidad de los procesos básicos de conteo y

coincidencias en términos de los alcances del dispositivo para manejar múltiples señales de forma

simultánea y de realizar cambios en las variables de las mediciones en términos de ventana de

coincidencias, retraso generado, entre otros.

a) Múltiples canales: Se define una capacidad mínima de 4 canales, requeridos en el montaje

básico para la comprobación de enredamiento de fotones.

Page 9: Sistema de detección de coincidencias para aplicaciones en

9

3 Componentes Hardware La siguiente sección describe los componentes Hardware en los que se realizó la implementación

de la solución, su descripción en términos de sus componentes y algunas de sus capacidades

relevantes para el diseño de la solución.

3.1 La FPGA

La FPGA empleada en el sistema es una Spartan3 XCS2000-4 FG676 de Xilinx, donde Spartan3 es la

familia de la FPGA, -4 es el grado de velocidad y FG676 es el tipo de empaque.

Tradicionalmente, una FPGA contiene los siguientes componentes:

• Configurable Logic Blocks (CLB) que se encargan de las implementaciones lógicas y

dependiendo de la necesidad otras aplicaciones combinacionales.

• Input/Output blocks (IOBs) que se encargan de regular el flujo de datos desde y hacia la

FPGA.

• Digital Clock Managers (DCMs) que controlan la generación de señales de reloj.

Específicamente la FPGA utilizada contiene los componentes enunciados en la tabla 1. Vale la pena

resaltar la presencia de 4 DCMs, cuyo uso y relevancia se presentan a continuación.

Componentes Cantidad

Compuertas del sistema

2M

Celdas Lógicas

46080

CLBs

5120

Bloques RAM

40

DCMs

4

Multiplicadores dedicados de 18 bits x 18 bits 40

I/O de Usuario

489

Pares I/O diferenciales 221

Tabla 1 Componentes físicos de la FPGA empleada

Page 10: Sistema de detección de coincidencias para aplicaciones en

10

3.1.1 DCMs

Bloques dedicados a la síntesis de señales de reloj. En esta implementación utiliza una señal

original de reloj de 48MHz para sintetizar diferentes señales cuadradas determinadas por fórmula

matemática mostrada en la ecuación 1. Poseen además la capacidad de generar señales

desfasadas de 90,180 y 270 grados, dependiendo del modo de funcionamiento.

Ecuación 1 Fórmula de generación de frecuencia de los DCMs

En la ecuación 1 las variables M y D representan números naturales adimensionales para

multiplicidad y las variables fclkin y fclkfx los valores de frecuencia para las señales de entrada y de

salida; donde M puede alcanzar un valor máximo de 35, y D divide este número para alcanzar la

frecuencia deseada.

Los DCMs funcionan en dos modos: alta y baja frecuencia. En modo de baja frecuencia el DCM

puede recibir una frecuencia máxima de 280MHz, pudiendo emitir señales en el rango de 18 a 210

MHz. En el caso del modo de alta frecuencia recibe señales de hasta 280 MHz y emite señales en el

rango de 210 hasta 280MHz, con la restricción que no puede hacer corrimientos en fase de 90 y

270 grados como si es posible en el modo de baja frecuencia.

3.2 Tarjeta ZestSC2 Se utiliza para el desarrollo del dispositivo una tarjeta ZestSC2 de Orange Tree Technologies, que

incorpora la comunicación a través de un puerto USB entre la FPGA y un PC. El software que viene

con la tarjeta contiene una librería en lenguaje de programación C, que permite la

implementación de rutinas de comunicación en tiempo real desde el PC con la FPGA. Para mayor

información acerca de la tarjeta ver [7].

Page 11: Sistema de detección de coincidencias para aplicaciones en

11

3.3 Detectores de fotones

El montaje experimental descrito en la sección 9 de resultados experimentales, y que

corresponden al tipo de experimentos para los que el dispositivo es desarrollado, utiliza un

fotodetector de avalancha SPCM-AQRH de Perkin Elmer para hacer los conteos de eventos por

canal. Las características funcionales de los detectores se muestran a continuación:

Detección de fotones en el espectro de 400nm a 1060nm.

Efectividad pico de detección de más de 65% a longitud de onda de 650nm.

Conteos de algo más de 20 millones por segundo.

Pulso TTL de 2.5 V con una duración de 15ns y un tiempo muerto de 35ns.

Page 12: Sistema de detección de coincidencias para aplicaciones en

12

4 Conteo de eventos individuales y coincidentes

4.1 Conteos Individuales

La primera función necesaria para la implementación de la solución es el conteo de eventos

individuales, que permite conocer la cantidad total de fotones recibidos en un periodo de tiempo

determinado. Este número es comparado después con el conteo de coincidencias para determinar

el porcentaje total de las mismas. El bloque dedicado al conteo de eventos individuales es utilizado

tanto para la medición de los eventos por canal, como para las coincidencias. El bloque de conteo

de eventos está constituido por dos contadores; uno, dedicado a contar el tiempo hasta la

culminación de un ciclo determinado, y otro dedicado al conteo de los eventos externos, el bloque

de conteos es el utilizado en [6].

Figura 1 Esquemático RTL del módulo de conteo de eventos

Estos contadores temporizados se implementan en cada uno de los canales en funcionamiento, y

permiten el conteo de eventos determinados por una entrada “Ins” durante un periodo de tiempo

determinado por la entrada “cycles”. El módulo detecta flancos de subida de las señales

producidas a lo largo de los procesos del dispositivo y por cada flanco suma uno al conteo de

eventos. Mayor información sobre el diseño de este módulo se encuentra en [6].

Page 13: Sistema de detección de coincidencias para aplicaciones en

13

Se realizó la comprobación del funcionamiento de los contadores haciéndolos medir los flancos del

reloj principal de 48 MHz durante diferentes periodos de tiempo, así la medición de un segundo

daba 48 millones, la de 100 milisegundos mostraba 480 mil, y así en cada una de los periodos

disponibles.

La detección de coincidencias es fundamental para la realización y validación de los experimentos

de óptica cuántica, la precisión y resolución de los sistemas utilizados para detectar estas

coincidencias deben estar dentro del orden de nanosegundos, más específicamente entre 1 y 10

nanosegundos fueron valores encontrados en algunas de las referencias utilizadas [9] para que los

eventos coincidentes contengan conteos accidentales controlables y diferenciables de los conteos

reales. Lograr las resoluciones necesarias requiere del funcionamiento a mayor velocidad del

dispositivo. Para el caso del sistema de coincidencias se utiliza el bloque desarrollado en [6],

modificando su funcionamiento para permitir la variabilidad de la ventana de coincidencias y

utilizando un reloj sintetizado a alrededor de cinco veces mayor velocidad (de 48MHz a 276MHz)

para mejorar su adaptabilidad y resolución.

4.2 Arquitectura del bloque de detección de coincidencias

El sistema de detección de coincidencias se plantea mediante la construcción de bloques sensibles

a la llegada de un pulso de cualquiera de los detectores, y mediante temporizadores para el control

de la ventana de coincidencias. La figura 2 muestra la arquitectura generalizada de la solución,

teniendo en cuenta que la implementación de los temporizadores puede realizarse de diferentes

maneras, pero todas funcionando de manera síncrona.

Page 14: Sistema de detección de coincidencias para aplicaciones en

14

Estado anterior Estado siguiente Condición en el temporizador Resultado

0 0 1 1 Sin condición Coincidencia

0 1 1 1 Tactual<Tmax Coincidencia

1 0 1 1 Tactual<Tmax Coincidencia

0 0 0 1 Activar temporizador

0 0 1 0 Activar temporizador

X X 0 0 Sin condición Reset

Figura 2 . Tabla de estados y caja negra del sistema de detección de coincidencias síncrono. Tomado de [6], Tmax corresponde al tiempo de la ventana de coincidencia, mientras Tactual corresponde al tiempo transcurrido hasta el

momento de detección del evento.

Page 15: Sistema de detección de coincidencias para aplicaciones en

15

5 Desarrollo del problema de la resolución. Cómo funcionar a mayor velocidad.

La dificultad de la implementación radica en la imposibilidad de lograr procesos que sucedan a

mayores velocidades pero que sean todavía controlados de manera síncrona, la capacidad de

síntesis de los DCMs limitan la velocidad de las implementaciones síncronas. La búsqueda de una

solución a este problema y las diferentes pruebas e implementaciones de las soluciones es el tema

que se trata a continuación y corresponde a la actividad de mayor tiempo invertido en el

laboratorio y con la FPGA.

5.1 Máxima frecuencia sintetizable La máxima frecuencia realizable con los DCMs de las FPGA de la familia Spartan 3 es de 280MHz lo

que equivale a un periodo aproximado de 3.57ns. La tabla 2 muestra los conteos de los flancos por

segundo del reloj a la máxima velocidad conseguida 276 MHz, comparados con los conteos de

flancos por segundo del reloj principal de 48 MHz. Es de notar la estabilidad del reloj de alta

velocidad, donde la desviación de los datos es cero (ver tabla 2). La razón por la cual el número de

conteos por segundo no son 48 millones y 276 millones respectivamente es que los conteos

individuales son guardados en tres registros de un byte cada uno, lo que equivale a un número

máximo representable de 16.777.215, los números vistos, son los equivalentes a 48 millones y a

276 millones si sólo se toman los tres bytes menos significativos de los mismos. La elección de tres

bytes para almacenar los datos de los conteos se debe a que cada detector puede ver máximo 20

millones de conteos por segundo, y un segundo corresponde al máximo periodo de medición

implementado. La utilización de los detectores en zonas de altos conteos (superior a 1 millón por

segundo) va acompañada de la pérdida de linealidad [10] de los valores de conteos de eventos con

la cantidad real de fotones existentes.

Page 16: Sistema de detección de coincidencias para aplicaciones en

16

Reloj a 48Mhz Reloj a 276Mhz

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

14445568 7564544

Tabla 2 Prueba de velocidad y estabilidad del reloj a 276MHz comparado con el reloj de 48MHz

5.2 Duplicación de la velocidad del reloj mediante compuerta Xor.

Se plantea la utilización de dos señales de reloj desfasadas 90° entre ellas, y después utilizar una

compuerta XOR para generar una señal con el doble de velocidad. La tabla de verdad de la

compuerta XOR es mostrada en la tabla 4 y la forma en la que la misma duplica la frecuencia del

reloj es mostrada en la figura 3. La implementación es realizada en lenguaje VHDL utilizando la

capacidad de desfasar de los DCMs de la FPGA. Al probarla se observa una duplicación de la

velocidad del reloj, a costa de la integridad de la señal a la salida, debido a la reducción del duty

cycle y a la deformación de la onda cuadrada de la señal.

CLK de 156Mhz

Conteos Xor Conteos CLK

3718657 5005056

10010112 5005056

6864385 5005056

572929 5005056

4767233 5005056

6340097 5005056

572929 5005056

7912961 5005056

5815809 5005056

1097217 5005056

1621504 5005056

2670081 5005056

572929 5005056

Tabla 3 Prueba de velocidad y estabilidad de la señal de salida de la compuerta Xor contra los conteos de la señal del reloj original de prueba

Page 17: Sistema de detección de coincidencias para aplicaciones en

17

A B Salida

0 0 0

0 1 1

1 0 1

1 1 0

Tabla 4 Tabla de verdad de la compuerta lógica Xor

Figura 3 Duplicación de la frecuencia utilizando una compuerta Xor. Las entradas P y N son dos señales de reloj que tienen la misma frecuencia pero que están desfasadas 90 grados entre si.

Como se ve en la tabla 4 la compuerta XOR emite un uno lógico cuando las señales de entrada son

diferentes, así como el desfase es de 90° las señales se alternan entre diferentes e iguales cada

cuarto de periodo, logrando una nueva resolución y una nueva señal al doble de velocidad.

Sin embargo se encuentra al hacer pruebas que el concepto funciona a pequeñas velocidades del

reloj. En la tabla 3 se muestran las mediciones tomadas del módulo de conteo de eventos con el

reloj a 156 MHz que es la mínima resolución a la cual la duplicación de la misma traería beneficios

considerables en el desempeño en velocidad, es decir mayor a 280MHz. La primera columna

muestra los conteos de eventos del reloj después de la Xor, donde la inestabilidad de las lecturas

muestra que a esa velocidad la señal de salida de la compuerta Xor es demasiado inestable, y por

lo tanto inutilizable. Reducir la velocidad hasta alcanzar la integridad de la señal elimina el

beneficio de duplicar la señal en primer lugar. En consecuencia la idea fue descartada.

Dada la imposibilidad de hacer más rápida la señal del reloj por este método, los esfuerzos se

deben enfocar en buscar alternativas para alcanzar la máxima resolución para el módulo de

corrección de retrasos. La diferencia intrínseca de caminos tomados dentro de la FPGA y en las

líneas circundantes de la tarjeta desde y hacia la FPGA hace difícil la definición de un retraso de

Page 18: Sistema de detección de coincidencias para aplicaciones en

18

propagación que pueda ser corregido mediante la implementación de un módulo de corrección

fijo, además la incertidumbre con la que el compilador implementa los diferentes diseños en la

FPGA hace que los caminos cambien con facilidad y así mismo los retrasos de las diferentes señales

de los detectores.

Se considera que para mantener siempre el control de los tiempos de funcionamiento de todos los

bloques de la FPGA sin importar su ubicación, la implementación de todos los módulos debe ser

síncrona, se busca entonces una solución síncrona a lo que se denomina en este documento el

problema del retraso.

Page 19: Sistema de detección de coincidencias para aplicaciones en

19

6 El problema del retraso

En las aplicaciones más comunes de los sistemas electrónicos, los diferentes caminos eléctricos

tomados por las señales medidas y los retrasos generados por los mismos no constituyen un

problema, la mayoría de las veces porque se utilizan protocolos de comunicación para controlar el

flujo de información de un lugar a otro del sistema de procesamiento de datos; pero en el caso

específico tratado en este trabajo, reconocer si dos eventos suceden dentro de una ventana de

tiempo de alrededor de 4ns es crucial, de manera que diferencias de caminos eléctricos adquieren

gran importancia. Muchos de los módulos de coincidencia desarrollados en la actualidad no tienen

en cuenta el tema de la corrección de retrasos y se enfocan más en alcanzar un retraso total

generado por la aplicación de corta duración para minimizar los errores generados por los mismos

[8]. El proceso de diseño que condujo a la construcción del módulo final que hace posible la

corrección, es explicado a continuación.

6.1 Pseudo DET flip flop D

La implementación de un flip flop D sensible a ambos flancos del reloj [5] es una de las soluciones

propuestas para mejorar el desempeño del sistema en las diferentes tareas a realizar. Sin embargo

las dificultades que presenta la implementación de la misma con las herramientas de síntesis

utilizadas genera la necesidad de realizar una implementación más evidente en términos de la

codificación VHDL de la misma. En el caso de este trabajo, se presenta el diseño de un flip flop con

esas características a partir de multiplexores como el que se muestra en la figura 4.

Page 20: Sistema de detección de coincidencias para aplicaciones en

20

Figura 4 Implementación con multiplexores de FF-D sensible a ambos flancos del reloj, tomado de [5]

El dispositivo no funciona realmente con los flancos sino con los niveles del reloj, así cuando el

reloj esta en cero lógico, el multiplexor superior repite el dato ya guardado mientras que el inferior

recibe el nuevo dato y el multiplexor de salida muestra el dato guardado por el multiplexor

superior, cuando el reloj alcanza el uno lógico, el multiplexor final muestra el dato guardado en el

paso anterior por multiplexor inferior, mientras que el multiplexor superior recibe un nuevo dato.

El ciclo se repite para la consecución de un FF tipo Data que funciona al doble de la velocidad que

la del reloj que lo controla.

El diseño comprende la construcción de cadenas de retraso a partir de FF- D pseudo sensibles a

ambos flancos para corregir los retrasos que posiblemente existan entre las señales medidas. Este

mismo módulo se utiliza para controlar la amplitud de la ventana de coincidencias, generando un

retraso variable con factor de ½ del periodo del reloj, para luego detener la posibilidad de

coincidencia actuando así como el temporizador de la arquitectura propuesta en la Figura 4.

La arquitectura anteriormente expuesta, es dejada como último recurso debido al tamaño de la

implementación de multiplexación necesaria para obtener el amplio rango de retrasos planteados.

Page 21: Sistema de detección de coincidencias para aplicaciones en

21

6.2 Pseudo contador DET.

Se propone en este trabajo la implementación de un pseudo contador sensible a ambos flancos del

reloj que en términos efectivos cuente el doble de rápido, la idea surgió de la búsqueda de

aprovechar al máximo las los componentes de la FPGA en términos de velocidad, y de poder

sortear las dificultades de utilización de dobles sensibilidades impuestas por el compilador.

6.2.1 Contador multiplexado

Se compone de dos contadores ascendentes que cuentan de dos en dos, uno sensible al flanco

positivo del reloj y el otro sensible al flanco negativo. La salida de los contadores va a un

multiplexor cuyo selector es controlado por la señal de reloj. Uno de los contadores se dedica a

contar los números pares iniciando por ejemplo por el cero, y el complementario cuenta los

números impares comenzando para alinearse con el 1. La figura 5 muestra el diagrama RTL

implementado en VHDL.

Page 22: Sistema de detección de coincidencias para aplicaciones en

22

Figura 5 Esquemático RTL del Pseudo contador sensible a ambos flancos de reloj multiplexado. El bloque del lado derecho del esquemático corresponde a un multiplexor programado como un módulo aparte.

6.2.2 Contador sumado La segunda implementación propone la utilización de dos contadores sencillos inicializados en

ceros, sensibles a flancos opuestos del reloj, cuyas salidas son sumadas y cuyo resultado es la

salida del contador. Así por ejemplo en el primer flanco de subida la suma da 0 + 1 = 1, en el primer

flanco de bajada la suma da 1 + 1 = 2, en el segundo flanco de subida la suma resulta 1 + 2 = 3, y

así sucesivamente. El cuello de botella del desempeño de esta arquitectura está en la capacidad

del sumador de realizar la tarea en menos tiempo que el que toma hasta el próximo flanco, sea

este de subida o bajada, es decir el sumador debe tener la capacidad de sumar al doble de la

velocidad del reloj. La figura 6 muestra el esquemático RTL implementado en VHDL del contador

sumado.

Page 23: Sistema de detección de coincidencias para aplicaciones en

23

Figura 6 Esquemático RTL del contador de doble flanco implementado con sumador

6.3 Arquitectura final y resultados del módulo

El módulo de corrección de coincidencias permite corregir los retrasos sufridos por las señales de

los diferentes detectores en una resolución que varía entre 1.8ns y 2.2ns. El módulo utiliza dos

contadores de arquitecturas especiales, denominados pseudo contadores DET (por Double Edge

Triggered) descritos en la sección 7.2, permitiendo así una mayor resolución en el momento de

corregir las diferencias en los retrasos. La figura 7 muestra la arquitectura RTL del módulo de

corrección de retrasos. El primer contador es el encargado de generar el retraso deseado, mientras

el segundo se encarga de acortar la duración del pulso del detector a un ciclo del contador DET,

para prevenir coincidencias accidentales que sucederían mientras ambas señales permanecen

activas.

Page 24: Sistema de detección de coincidencias para aplicaciones en

24

Figura 7 Esquemático RTL del módulo de corrección de retrasos, compuesto por dos bloques de contadores pseudo DET, flip flops D

En la figura 8, se muestran tres señales, programadas para ser simultáneas, saliendo de puertos

diferentes de la FPGA. La simple diferencia en los caminos eléctricos tomados por las señales

desde la FPGA hacia el osciloscopio, y dentro de la misma FPGA son suficientes para generar

diferencias entre los flancos de hasta 5.7 ns. Esto puede ser visto en la figura 8, esquina inferior

izquierda, donde se muestra el valor medido entre los flancos de subida de los canales 2 y 3. El

módulo implementado tiene la capacidad de corregir estos desfases en una resolución de hasta 1.8

ns, reunificando los flancos de subida de las señales que aparecían separadas pero que por

definición sucedían al mismo tiempo. La figura 9 muestra el resultado de la corrección con los tres

flancos de subida de las señales 2, 3 y 4 corregidas a un desfase que en el peor caso es de 1.7ns;

este tipo de desempeño permite al usuario el incluir o excluir eventos de la ventana de

coincidencia con mucha precisión.

Page 25: Sistema de detección de coincidencias para aplicaciones en

25

Figura 8 . Medición en el osciloscopio de la señal original “1”, y tres copias de la misma “2, 3, 4”, desfasadas en la

misma medida que son sacadas por diferentes caminos de la FPGA, las tres señales simultáneas aparecen

desfasadas debido a las diferencias en los caminos eléctricos

Page 26: Sistema de detección de coincidencias para aplicaciones en

26

Figura 9 Medición en el osciloscopio de la señal original “1”, y tres copias de la misma “2, 3, 4”, desfasadas hasta alcanzar de nuevo la simultaneidad de los eventos hasta un error de 1.7ns.

Page 27: Sistema de detección de coincidencias para aplicaciones en

27

7 Interfaz e implementación de la comunicación entre el PC y la FPGA La solución desarrollada en este documento comprende también un desarrollo de software para la

adquisición y almacenamiento de los datos recogidos por la FPGA, así como para permitir el

control sobre las variables claves para la flexibilidad del dispositivo, como son la amplitud de la

ventana de coincidencias, el periodo de medición y los retrasos específicos de cada canal. A

continuación se presenta la interfaz de usuario construida para el control de la implementación, la

arquitectura del almacenamiento de datos diseñada en la FPGA, y la forma en que se manipulan

las variables antes mencionadas.

7.1 Almacenamiento de datos Se implementa un sistema de registros en la FPGA para el almacenamiento de los datos de conteos

de eventos individuales. Las direcciones de los registros están en hexadecimal con 4 bytes de largo.

Cada registro tiene la capacidad de almacenar 8 bits, por lo que los 32 bits utilizados para

almacenar el número total de eventos se reparte en tres registros. Los registros se enumeran

dependiendo de su función; existen registros de almacenamiento de conteos de eventos por canal,

registros de almacenamiento de coincidencias entre canales, y existen registros especiales que

almacenan algunas de las variables de medición de los contadores y módulos de coincidencias y

retrasos. Estos son revisados en la sección 8.2.

7.1.1 Registros de almacenamiento de conteos individuales por canal Estos registros almacenan la información sobre los conteos de eventos por canal, existe uno por

cada canal y sus direcciones se constituyen en hexadecimal con el primer byte con el número 2,

que en la arquitectura de datos diseñada significa lectura, seguido del 0, que significa conteos por

canal, a continuación un número del 0 al 3 que simboliza qué canal registra, y después tres

registros consecutivos con los números 1, 2 y 3 donde se divide el número completo de 32 bits.

Así, los conteos individuales del canal 0 se almacenan en los registros x2001, x2002 y x2003.

Page 28: Sistema de detección de coincidencias para aplicaciones en

28

7.1.2 Registros de almacenamiento de coincidencias entre canales Estos registros almacenan la información de los conteos de coincidencias entre canales, en la

actual implementación existen 6 registros, debido a las combinaciones posibles de coincidencias

entre 4 canales. Hay que notar que el orden de entrada al módulo de coincidencia es irrelevante,

por lo que las coincidencias entre el canal 0 y 1 son las mismas que entre el canal 1 y 0. Los

registros de coincidencias se escriben en hexadecimal primero con un 2 por lectura, un 1 por

registros de coincidencias, les sigue un número del 0 al 5 que representa una de las posibles

combinaciones entre canales para contar coincidencias, las mismas son mostradas en la tabla 5; el

último número de la dirección tiene la misma función que en el caso de los registros de conteos

individuales.

Número de registro Combinación de canales

0 0 y 1

1 0 y 2

2 0 y 3

3 1 y 2

4 1 y 3

5 2 y 3 Tabla 5 Número de registro de cada uno de los datos de conteos de coincidencias y los canales a los que corresponde

7.2 Registros de instrucciones

La implementación de la solución incluye la posibilidad de cambiar determinadas variables que

utiliza la FPGA para las mediciones que realiza, estos parámetros incluyen la duración de la ventana

de coincidencia, el periodo de medición, y los retrasos de cada canal. A continuación se describe la

composición de las direcciones y la utilización de los diferentes registros de instrucciones y

variables.

7.2.1 Registro de periodo de medición Estos registros se encargan de comunicar información a la FPGA sobre el periodo de las mediciones

y la dirección es la x3010, donde el 3 significa registro de escritura, y el resto de números fueron

escogidos sólo para diferenciarlo fácilmente. El usuario escoge una de las posibilidades de periodo

en la interfaz y esta transcribe la selección a un código que interpreta la FPGA para cambiar el

periodo. La codificación es mostrada en la tabla 6.

Page 29: Sistema de detección de coincidencias para aplicaciones en

29

Código Periodo

0 1 segundo

1 100 milisegundos

2 10 milisegundos

3 1 milisegundo

4 100 microsegundos

5 10 microsegundos

6 1 microsegundo Tabla 6 Codificación de los periodos de medición

7.2.2 Registro de duración de ventana de coincidencias Responsable de la duración de la ventana de coincidencias para todos los módulos de

coincidencias. Tiene la dirección x3100 con el 3 de escritura. La interfaz envía un número que

corresponde a la cantidad de ciclos del reloj de 276MHz que el módulo de coincidencias espera

hasta que la llegada de un evento ya no sea considerada una coincidencia. Así el número 1

corresponde a aproximadamente 3.7ns en ventana de coincidencias, el 2 a aproximadamente

7.4ns y así sucesivamente.

7.2.3 Registro de valor de retraso por canal Responsables de los retrasos introducidos a cada uno de los canales del sistema, existen 4

registros, uno para cada canal, y sus direcciones van de la x3000 hasta la x3003, donde el primer 3

corresponde a escritura, los siguientes dos dígitos son ceros, y el último dígito representa el canal

al cual se aplica el retraso.

El usuario envía un número entero positivo a través de la interfaz, el número representa la

cantidad de ciclos del reloj que el módulo de retraso tardará en emitir la señal recibida. Cada ciclo

equivale aproximadamente a 2ns que corresponde al promedio de corrimientos observados que

varían entre 1.8ns y 2.2ns.

7.2.4 Registro de instrucción de reset

Necesario para que una vez leídos los valores de los registros de eventos los contadores reinicien

Page 30: Sistema de detección de coincidencias para aplicaciones en

30

sus tareas, la señal de reset es la señal de control universal sobre todos los contadores de eventos

del dispositivo, es activada mediante la lectura del registro x4000 desde el PC. Esta instrucción es

realizada automáticamente por el programa implementado en la interfaz al final de cada periodo

de medición.

7.3 Interfaz Para la utilización, almacenamiento, y control del dispositivo se plantea el diseño de una interfaz

en Labview. La figura 10 muestra la interfaz implementada, las gráficas de la parte superior

corresponden a los conteos individuales por canal, y las de la parte inferior a las de coincidencias.

A la derecha están los controles de retrasos por canal y de periodo de medición.

Figura 10 Interfaz en Labview desarrollada para el control de la FPGA, muestra los conteos cada diez milisegundos del

reloj de 48 MHz por cada canal y todas las posibles combinaciones de coincidencias entre los mismos.

Page 31: Sistema de detección de coincidencias para aplicaciones en

31

La Interfaz implementada permite la visualización de los valores medidos por la FPGA así como la

visualización de sus variaciones para facilitar el seguimiento de los cambios en los experimentos. La

interfaz permite el cambio en tiempo real del periodo de medición entre las opciones 1 segundo,

100 milisegundos, 10 milisegundos, 1 milisegundo, 100 microsegundos, 10 microsegundos, y 1

microsegundo. Permite cambiar también los retrasos por canal independientemente, y el tamaño

de la ventana de coincidencias para todos los conteos de coincidencias. La interfaz permite guardar

los datos en Spreadsheet de todos los conteos y las coincidencias quedando registro de los

retrasos de cada canal, el periodo de medición y la amplitud de la ventana de coincidencias.

Page 32: Sistema de detección de coincidencias para aplicaciones en

32

8 Resultados experimentales del dispositivo Se presentan dos conjuntos de mediciones realizadas con el dispositivo en busca de probar el

desempeño y la validez de los datos tomados por el mismo. El primer conjunto de mediciones se

realiza con un láser de HeNe, realizando un barrido en los retrasos por canal y buscando las

variaciones en la cantidad de coincidencias entre canales. El segundo conjunto de mediciones

comprende el mismo procedimiento que el primero, pero el objeto de estudio es el haz

proveniente de un cristal no lineal que produce fotones enredados.

8.1 Estadísticas de un láser Se realizan mediciones de eventos individuales y coincidencias del haz dividido y atenuado de un

láser de HeNe. El haz es atenuado mediante polarizadores y es luego dividido en dos por un beam

splitter, al final de cada una de las ramas está un detector de fotones, montaje que se muestra en

la figura 11. Los conteos de coincidencias de un láser son eventos aleatorios que no son afectados

por la inclusión de retrasos en las señales de detección de los mismos, esto debido a que lo que se

mide como coincidencia es en realidad un par de fotones que llegan en un periodo de tiempo

bastante corto tal que el dispositivo los detecte como coincidencia pero que en realidad no son

simultáneos. Por la naturaleza del láser, la cantidad de coincidencias es idéntica a la generada por

un proceso aleatorio, donde tales conteos se consideran accidentales [9].

Figura 11 Montaje experimental de medición de coincidencias del haz de un láser HeNe, BS: Beam Splitter. Tomado de [9].

La figura 13 muestra los resultados de las mediciones de coincidencias entre canales y la figura 12

muestra las estadísticas de las mediciones individuales por canal; se tomaron 100 datos por

segundo en cada paso del barrido de retardos. En el eje x se presentan los retrasos relativos entre

Page 33: Sistema de detección de coincidencias para aplicaciones en

33

los canales tomando el canal uno como referencia, así dar un retraso de 1 unidad en el canal 1 y un

retraso de 3 unidades en el canal 2 corresponden al punto marcado como 2 unidades de diferencia

en el eje x. Es de notar que estos valores de retardo corresponden al número de ciclos de reloj que

el módulo de retrasos cuenta hasta dejar pasar la señal recibida, es decir cuánto la retrasa, cada

ciclo del reloj es de aproximadamente 2ns. Las figuras 12 y 13 muestran que tanto los conteos

individuales como las coincidencias son independientes del valor del retraso. Es de notar que las

fluctuaciones en los valores de conteos individuales son vistas también en los conteos de

coincidencias lo que explicaría las fluctuaciones que se ven de las mismas. Estos resultados

coherentes con la teoría validan el desempeño del dispositivo.

Figura 12 Gráfica de los conteos individuales por segundo contra el retraso por canal

260000

270000

280000

290000

300000

310000

320000

330000

-15 -10 -5 0 5 10 15

Foto

ne

s (c

ps)

Retardo CH2-CH1 (x 2ns)

Canal 1

Canal 2

Page 34: Sistema de detección de coincidencias para aplicaciones en

34

Figura 13 Gráfica de coincidencias por segundo contra retrasos por canal de la medición del láser HeNe

8.2 Estadísticas de los fotones enredados La características físicas del montaje y el fenómeno óptico de spontaneous parametric down

conversion (SPDC) son discutidos con mayor profundidad en [4], [6] y [9]. Lo relevante del

experimento para este trabajo es que dicho fenómeno genera de forma espontánea pares de

fotones enredados en un cristal no lineal. Dado que los fotones que conforman cada par son

producidos en el mismo instante de tiempo y en el mismo lugar, hay un número de conteo de

coincidencias mayor al producido por un proceso aleatorio, consecuencia de la simultaneidad en la

creación de los fotones enredados. Es decir, los conteos son máximos si los caminos que recorre

cada fotón del par enredado son comparativamente iguales hasta un máximo de la amplitud de la

ventana de coincidencias. Se realiza entonces un barrido en retrasos entre canales similar al

realizado en la sección 9.1 con el láser de HeNe, se toman 120 datos por cada paso del barrido.

0

100

200

300

400

500

600

700

800

900

1000

-15 -10 -5 0 5 10 15

Co

inci

de

nci

as d

e f

oto

ne

s (c

ps)

Retraso CH2-CH1 (x 2.0ns)

Coincidencias

Page 35: Sistema de detección de coincidencias para aplicaciones en

35

Figura 14 Gráfica de los conteos individuales por segundo contra los retrasos por canal de SPDC

Figura 15 Gráfica de coincidencias por segundo contra retrasos por canal del experimento de SPDC

11800

12000

12200

12400

12600

12800

13000

13200

13400

-10 -5 0 5 10

Foto

ne

s (c

ps)

Retardo CH2-CH1 (x 2ns)

Canal 1

Canal 2

0

100

200

300

400

500

600

-10 -5 0 5 10

Co

inci

de

nci

as d

e f

oto

ne

s (c

ps)

Retraso CH2-CH1 (x 2.0ns)

Coincidencias

Page 36: Sistema de detección de coincidencias para aplicaciones en

36

La figura 14 muestra que los conteos individuales siguen siendo independientes del retraso para

este experimento, pero que como era esperado, la figura 15 muestra que existe una fuerte

dependencia entre las coincidencias y los retrasos por canal. El hecho de que las coincidencias

varíen en tal medida cuando los conteos individuales se mantienen relativamente estables es

coherente con la teoría y valida el desempeño del dispositivo.

En suma ambos experimentos prueban el buen desempeño del dispositivo, el variar los retrasos

entre canal sí genera un cambio real en las detecciones de coincidencias, y se muestra que estos

cambios son consistentes con el corrimiento de la señal en el tiempo y no con la introducción de

valores aleatorios en los contadores de coincidencias.

Page 37: Sistema de detección de coincidencias para aplicaciones en

37

9 Perspectivas de desarrollo El desarrollo de la solución comprende un trabajo de diseño, prueba, refinamiento, integración y

caracterización de múltiples aspectos tanto en Hardware como en Software. La primera línea de

desarrollo comprende la ampliación de la capacidad del dispositivo en términos de la cantidad de

canales que pueden funcionar simultáneamente, así como la implementación de coincidencias

triples o cuádruples que se podría realizar utilizando bloques de coincidencias dobles, cuidándose

de utilizar un bloque con la misma señal para mantener los retrasos de circuitos parejos, y la de

una solución de retrasos de larga duración, que permita sobrepasar el límite actual de la

arquitectura de 50ns; el diseño sería a mi juicio mejor iniciado mediante cadenas de flip-flops data

cuyas señales intermedias son multiplexadas para lograr variabilidad en el valor del retraso.

Otra rama se presenta en el desarrollo de un software que permita el apilamiento de instrucciones

secuenciales para la automatización de mediciones experimentales de variaciones simples, como

por ejemplo un barrido de diferentes retrasos por canal y las mediciones de conteos individuales y

coincidencias tras cada cambio de los mismos.

La tercera rama de desarrollo se enfoca en el control del ambiente experimental a través del

sistema, con actuadores de varios tipos. Movimientos del montaje experimental a través de

actuadores y controlados por el usuario en una interfaz de PC, permitiría la fácil y precisa

manipulación de los diferentes componentes típicos en los experimentos de un laboratorio de

óptica.

Una cuarta y última rama consiste en la experimentación de arquitecturas pseudo sensibles a

doble flanco. Retomar el concepto de la implementación de la Xor para obtener una serie de

estados que varían más rápidamente que el reloj original permitiría experimentar con la

implementación de un contador 4 veces más rápido que el reloj que lo controla. Si se introdujera

en un módulo de conteo dos señales del reloj desfasadas 90 grados entre ellas crea una situación

de 4 estados en un periodo del reloj (como en la figura 3).

Page 38: Sistema de detección de coincidencias para aplicaciones en

38

10 Conclusiones Se desarrolló un sistema de detección de coincidencias capaz de detectar coincidencias con

ventana variable de coincidencias desde 4ns a 28ns, con posibilidad de revisar las combinaciones

de coincidencias de cuatro canales simultáneamente. El sistema tiene la capacidad de corregir o

producir retrasos independientemente para cada canal a elección del usuario, ya sea para corregir

retrasos generados por los caminos de las señales, o para simular retrasos sin la necesidad de

incluir objetos en el montaje experimental. El sistema es fácilmente expandible a 8, 16 o más

canales de entrada. El dispositivo cuenta con 7 diferentes periodos de medición, desde 1 segundo

hasta 1 microsegundo; la inclusión de más periodos puede realizarse fácilmente dentro de la

arquitectura en VHDL. La interfaz gráfica y el sistema en general permiten hacer cambios de los

parámetros en tiempo real, de tal forma que se puede observar inmediatamente los efectos de

estos cambios, cumpliendo así con el requerimiento de monitoreo y procesamiento de los datos en

vivo.

Page 39: Sistema de detección de coincidencias para aplicaciones en

39

11 Referencias

[1] C. H. Holbrow, E. Galvez, y M. E. Parks. “Photon Quantum mechanics and beam splitters”, Am. J. Phys. 70 (3), March 2002. [2] D. Deutsch y R. Jozsa. “Rapid solution of problems by Quantum computation”. Proc. R. Soc. London, Ser. A 439 (1907), 553-558 (1992). [3] C. H. Bennett, S. J. Wiesner. “Communication via one particle and two-particle operators on Einstein-Podolsky-Rosen states,” Phys. Rev. Lett. 84(20), 4729-4732(2000). [4] D. Delinger y M. W. Mitchell. ”Entangled photon apparatus for the undergraduate laboratory”, Am. J. Phys. 70 (9), September 2002. [5] M. Pedram, Q. Wu, y X. Wu, “A new design for Double Edge Triggered Flip Flops”. Work was supported in part by DARPA under contract # F33615-95-C-1627 and Project No.69773034 of NSFC. [6] D. A. Guzmán, “Control systems for experiments in quantum communication and computing: an electronic system for optical fibre implementations”. LAP Lambert Academic Publishing, 2009. [7] C. Sweeney y M. Bowen. “ZestSC2 User Guide” Orange tree Technologies, 2007.

*8+ T. Kim, M. Fiorentino, P. V, Gorelik y F. N. C. Wong, “Low cost nanosecond electronic coincidence detector” arXiv:physics/0501141v1 [physics.ins-det].

*9+ B. J. Pearson y D. P. Jackson, “A hands-on introduction to single photons and quantum mechanics for undergraduates”, Am. J. Phys. 78 (5), September 2010. *10+ “Datasheet SPCM ARQH”, Perkin Elmer Optoelectronics.