sistema de detección de coincidencias para aplicaciones en
TRANSCRIPT
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
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
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
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
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
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.
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.
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.
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
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].
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.
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].
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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
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
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
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
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.
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).
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.
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.