Se utilizaron dos tarjetas FPGA de desarrollo id´enticas (Spartan-3E), ambas progra- madas con la misma implementaci´on del m´odem y conectadas a un computador utilizando un emulador de SPI maestro a trav´es un puerto USB. El emulador utilizado es el Bus Pi- rate v3 de Dangerous Prototypes (Dangerous Prototypes, 2012). As´ı, el computador hace las veces el microcontrolador.
Para programar las FPGA se utiliz´o elsoftwareAdept 2 System. (Digilent Inc., 2010). Para la conexi´on entre el PC y el Bus Pirate se utiliz´o elsoftwareCoolTerm (Meier, 2011) y se emul´o un terminal SPI maestro con unclock de 1 MHz (equivalente a 128 kb/s).
Como es virtualmente imposible medir todas las variables internas del m´odem direc- tamente desde la FPGA, se seleccionaron las variables de inter´es y se program´o un m´odulo adicional para observarlas en tiempo real a trav´es del visualizador de 7 segmentos incluido en la FPGA de desarrollo.
La Figura 5.12 muestra un diagrama de bloques de la implementaci´on en FPGA. La combinaci´on del PC con el Bus Pirate reemplaza al microcontrolador con un puerto SPI maestro. Esta combinaci´on se comunica con una FPGA que contiene el m´odem configu- rado en modo de transmisi´on. De manera an´aloga, la segunda FPGA contiene el m´odem configurado en modo de recepci´on, que se conecta al mismo computador a trav´es de otro Bus Pirate.
La FPGA Spartan-3E cuenta con cuatro puertos deinput/outputdigitales (ver detalle en la Figura 5.13). El puerto JA1 se utiliz´o para la interfaz SPI esclavo, los puertos JB1 y JC1 se utilizan para la transmisi´on y recepci´on respectivamente, y el puerto JD1 queda libre.
La conexi´on entre ambas FPGA se hace a trav´es de un cable Ethernet de par trenzado (adaptado para conectarse a los puertos de la FPGA). Cada cable Ethernet contiene cuatro
FIGURA5.12. Diagrama de conexiones correspondiente a la implementaci´on del m´odem en FPGA. El n´umero a la derecha de cada etiqueta indica el ancho de los buses (no considera conexiones de alimentaci´on y tierra).
pares de cables, suficientes para conectar la fase y la cuadratura de la transmisi´on en banda base.
FIGURA5.13. Diagrama de conexi´on de los cuatro puertos PMOD de la FPGA de desarrollo utilizada. Cada puerto contiene 12 conexiones, 4 de alimentaci´on y 8 de datos.
La Figura 5.14 muestra una fotograf´ıa de ambas FPGAs conectadas a trav´es de dos cables Ethernet entre s´ı. Cada FPGA est´a conectada a un emulador Bus Pirate y ambos emuladores se conectan al mismo computador.
FIGURA5.14. Fotograf´ıa de la implementaci´on en FPGA. Cada FPGA contiene la implementaci´on del m´odem y se conecta a un computador a trav´es de un Bus Pirate que emula un puerto SPI maestro. Ver Figura 5.12.
El objetivo de esta prueba es replicar la simulaci´on de la secci´on 5.1, es decir, trans- mitir los n´umeros del 1 al 8 desde el PC A utilizando la FPGA A como dispositivo de comunicaci´on, hasta el PC B a trav´es de la FPGA B.
La Figura 5.15 muestra las instrucciones enviadas desde el computador hacia ambas FPGA. A la izquierda se muestra la comunicaci´on con la FPGA A transmisora (ver Figura 5.15A) y a la derecha la comunicaci´on con la FPGA B receptora. Esta ´ultima est´a divi- dida en dos partes: 5.15B ocurre antes de la transmisi´on y 5.15C ocurre despu´es de la transmisi´on.
En la Figura 5.15A se muestra la configuraci´on de la FPGA A en modo de transmisi´on y el mensaje que se va a enviar hacia la FPGA B (la secuencia de n´umeros del 1 al 8). En la Figura 5.15B se muestra la configuraci´on de la FPGA B en modo de recepci´on. Una vez ocurrida la comunicaci´on, se accede a la FIFO de recepci´on de la FPGA B (ver Figura 5.15C) y se lee la misma secuencia de n´umeros que se introdujo en la FPGA A.
(A) (B)
(C)
FIGURA 5.15. Resultados de la implementaci´on en FPGA. A la izquierda se muestran los est´ımulos para el m´odem transmisor y a la derecha se muestran los est´ımulos del m´odem receptor. (A) y (B) ocurren en forma simult´anea. (C) se eje- cuta una vez finalizada la transmisi´on.
Una vez finalizada la transmisi´on, se verific´o que el mensaje recibido fuera igual al mensaje enviado. De este modo se comprueba la correspondencia entre la simulaci´on y la implementaci´on del m´odem.
Testbenchping-pong
Una vez replicada la simulaci´on de la Secci´on 5.1, se procedi´o a automatizar este proceso. El experimento consisti´o en transmitir una secuencia de datos aleatoria desde un m´odem a otro, y luego enviar de vuelta el mismo paquete utilizando otro esquema de modulaci´on. El objetivo de esta prueba es comprobar que el m´odem pueda cambiar entre los modos de transmisi´on y recepci´on utilizando distintas modulaciones sin errores.
El paquete de prueba se escogi´o al azar y consiste de 16 n´umeros en el rango entre 0 y 255. Cada n´umero se representa en binario utilizando 8 bits, por lo tanto la secuencia de datos corresponde a 128 bits.
Se utiliz´o la misma configuraci´on de la figura 5.12, pero en esta ocasi´on, los m´odems A y B asumen los roles de transmisi´on y recepci´on e intercambian roles seg´un sea nece- sario.
Para esta prueba se utiliz´o el software Buccaneer’s Den (Roy, 2011), este software esta dise˜nado para operar el Bus Pirate V3 y es capaz de ejecutar macros. Las macros uti- lizados en este experimento se encuentran en el Anexo D y la secuencia de datos aleatorios utilizada es:
54 106 21 56 79 102 72 95 87 45 3 78 120 98 111 23
En la Tabla 5.2 se muestran el orden y los resultados de este experimento. Adem´as se muestra la configuraci´on en ambas FPGA y el mensaje recibido en la FPGA receptora.