Implementación en una FPGA de un modulador y demodulador QPSK en banda base
Texto completo
(2) ESCUELA POLITÉCNICA NACIONAL. FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA. IMPLEMENTACIÓN EN UNA FPGA DE UN MODULADOR Y UN DEMODULADOR QPSK EN BANDA BASE. PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN ELECTRÓNICA Y TELECOMUNICACIONES. NELSON BLADIMIR SOLANO YUNGA [email protected]. DIRECTOR: Ph.D. PABLO ANIBAL LUPERA MORILLO [email protected]. CODIRECTOR: M.Sc. JORGE EDUARDO CARVAJAL RODRIGUEZ [email protected]. Quito, mayo 2016.
(3) i. DECLARACIÓN. Yo , Nelson Bladimir Solano Yunga, declaro bajo juramento que el trabajo aquı́ descrito es de mi autorı́a; que no ha sido previamente presentado para ningún grado o calificación profesional; y, que he consultado las referencias bibliográficas que se incluyen en este documento. A través de la presente declaración cedo mis derechos de propiedad intelectual correspondientes a este trabajo, a la Escuela Politécnica Nacional, según lo establecido por la Ley de Propiedad Intelectual, por su Reglamento y por la normativa institucional vigente.. Nelson Bladimir Solano Yunga.
(4) ii. CERTIFICACIÓN. Certificamos que el presente trabajo fue desarrollado por Nelson Bladimir Solano Yunga, bajo nuestra supervisión.. Ph.D. Pablo Anı́bal Lupera Morillo DIRECTOR DEL PROYECTO. M.Sc. Jorge Eduardo Carvajal Rodrı́guez CODIRECTOR DEL PROYECTO.
(5) iii. AGRADECIMIENTO. Agradezco profundamente a mi familia, por todo el apoyo brindado a lo largo de esto años y sus consejos que me han servido de provecho para culminar esta etapa en mi vida.. Al Doctor Pablo Lupera por su paciencia, dedicación, apoyo y orientación en la realización de este proyecto.. Al Ingeniero Jorge Carvajal por el interés puesto en el proyecto.. Al Doctor Robin Álvarez por las facilidades brindadas para el uso de la tarjeta de entrenamiento, sin la cual no se hubiese podido culminar este proyecto.. A mis amigos y personas que de alguna manera me han acompañado durante esta etapa de mi vida..
(6) iv. DEDICATORIA. ”Después de escalar una montaña muy alta, descubrimos que hay muchas otras montañas por escalar”. Nelson Mandela.. A mis queridos padres, hermana y sobrina..
(7) v. ÍNDICE. 1 CAPÍTULO 1. 1. 1.1 INTRODUCCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.2 MODULACIÓN DIGITAL . . . . . . . . . . . . . . . . . . . . . . . . .. 2. 1.2.1 MODULACIÓN ASK . . . . . . . . . . . . . . . . . . . . . . .. 3. 1.2.2 MODULACIÓN FSK . . . . . . . . . . . . . . . . . . . . . . .. 5. 1.2.3 MODULACIÓN PSK . . . . . . . . . . . . . . . . . . . . . . .. 7. 1.3 MODULACIÓN QPSK . . . . . . . . . . . . . . . . . . . . . . . . . .. 10. 1.3.1 TÉCNICAS DE TENDENCIA CENTRAL . . . . . . . . . . . .. 15. 1.3.1.1 Media aritmética . . . . . . . . . . . . . . . . . . . .. 16. 1.3.1.2 Media geométrica . . . . . . . . . . . . . . . . . . .. 17. 1.3.1.3 Media armónica . . . . . . . . . . . . . . . . . . . .. 17. 1.3.1.4 Mediana . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 1.3.1.5 Moda . . . . . . . . . . . . . . . . . . . . . . . . . .. 19. 1.3.1.6 Media truncada . . . . . . . . . . . . . . . . . . . . .. 19. 1.3.2 VARIANTES DE LA MODULACIÓN QPSK. . . . . . . . . . .. 19. 1.3.2.1 OQPSK . . . . . . . . . . . . . . . . . . . . . . . . .. 20. 1.3.2.2. π 4. QPSK . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 1.3.2.3 FQPSK . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 1.3.2.4 SOQPSK . . . . . . . . . . . . . . . . . . . . . . . .. 22. 1.3.3 VENTAJAS Y DESVENTAJAS DE LA MODULACIÓN QPSK .. 23. 2 CAPÍTULO 2. 28. 2.1 FPGA (FIELD-PROGRAMMABLE GATE ARRAY) . . . . . . . . . . .. 28. 2.2 LENGUAJES PARA LA DESCRIPCIÓN DE HARDWARE . . . . . .. 30. 2.2.1 VERILOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 31. 2.2.2 VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 33.
(8) vi 2.3 ELEMENTOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL MODULADOR Y DEMODULADOR QPSK . . . . . . . . . . . . . . . . . . .. 35. 2.3.1 TARJETA FPGA DISPONIBLE . . . . . . . . . . . . . . . . .. 35. 2.3.2 AMBIENTE INTEGRADO DE SÍNTESIS ISE . . . . . . . . .. 36. 2.4 MODULADOR QPSK . . . . . . . . . . . . . . . . . . . . . . . . . .. 38. 2.4.1 DISEÑO CON LA TÉCNICA DDS . . . . . . . . . . . . . . . .. 38. 2.4.1.1 Bloque Conversor Serial a Paralelo . . . . . . . . . .. 39. 2.4.1.2 Bloque DDS . . . . . . . . . . . . . . . . . . . . . .. 43. 2.4.1.3 Integración de los bloques del Modulador . . . . . .. 50. 2.4.2 DISEÑO CON EL USO DE MEMORIAS . . . . . . . . . . . .. 53. 2.4.2.1 Bloque Generador de las señales con la Fases Requeridas . . . . . . . . . . . . . . . . . . . . . . . . . . .. 54. 2.4.2.2 Integración de los bloques del Modulador . . . . . .. 58. 2.5 COMPARACIÓN DE LOS MODULADORES . . . . . . . . . . . . . .. 60. 2.5.1 PARÁMETROS DE COMPARACIÓN . . . . . . . . . . . . . .. 60. 2.5.2 REPORTE DE LOS ELEMENTOS EMPLEADOS . . . . . . .. 61. 2.5.3 REPORTE DE LA POTENCIA USADA . . . . . . . . . . . . .. 63. 2.5.4 REPORTE DE SINCRONISMO . . . . . . . . . . . . . . . . .. 63. 2.5.5 SELECCIÓN DEL MODULADOR A IMPLEMENTARSE . . .. 64. 2.6 DEMODULADOR QPSK . . . . . . . . . . . . . . . . . . . . . . . . .. 65. 2.6.1 BLOQUE MULTIPLICADOR . . . . . . . . . . . . . . . . . . .. 65. 2.6.2 BLOQUE DE DECISIÓN . . . . . . . . . . . . . . . . . . . . .. 69. 2.6.3 BLOQUE CONVERSOR PARALELO A SERIAL . . . . . . . .. 74. 2.6.4 INTEGRACIÓN DE LOS BLOQUES PARA EL DEMODULADOR. 76. 2.7 DESARROLLO DE LAS PRUEBAS DIDÁCTICAS . . . . . . . . . .. 77. 2.7.1 PRUEBA DEL MODULADOR . . . . . . . . . . . . . . . . . .. 79. 2.7.2 PRUEBA DEL DEMODULADOR . . . . . . . . . . . . . . . .. 79. 2.7.3 PRUEBA DEL MÓDEM . . . . . . . . . . . . . . . . . . . . .. 80. 3 CAPÍTULO 3. 82. 3.1 DISEÑO DE LA INTERFAZ GRÁFICA . . . . . . . . . . . . . . . . .. 82. 3.1.1 COMUNICACIÓN SERIAL . . . . . . . . . . . . . . . . . . . .. 82.
(9) vii 3.1.2 VELOCIDAD DE TRANSMISIÓN Y FRECUENCIA DE PORTADORA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 85. 3.1.3 FUNCIÓN DE MODULACIÓN EN LA INTERFAZ . . . . . . .. 86. 3.1.4 FUNCIÓN DE DEMODULACIÓN EN LA INTERFAZ . . . . .. 87. 3.1.5 FUNCIÓN DEL MÓDEM EN LA INTERFAZ . . . . . . . . . .. 88. 3.2 DISEÑO DE LAS INTERFACES EN LA TARJETA FPGA . . . . . . .. 89. 3.2.1 INTERFAZ DEL MODULADOR . . . . . . . . . . . . . . . . .. 89. 3.2.1.1 Bloque Generador de la señal de reloj para la recepción. 89. 3.2.1.2 Bloque de Lectura . . . . . . . . . . . . . . . . . . .. 91. 3.2.1.3 Bloque de Procesamiento de los datos recibidos . .. 94. 3.2.1.4 Integración de los bloques para la interfaz del modulador . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 100. 3.2.2 INTERFAZ DEL DEMODULADOR . . . . . . . . . . . . . . .. 101. 3.2.2.1 Bloque de Procesamiento . . . . . . . . . . . . . . .. 102. 3.2.2.2 Integración de los bloques para la interfaz del demodulador . . . . . . . . . . . . . . . . . . . . . . . . . . .. 106. 3.2.3 INTERFAZ DEL MÓDEM . . . . . . . . . . . . . . . . . . . .. 107. 3.2.3.1 Bloque Generador de la señal de reloj para la transmisión . . . . . . . . . . . . . . . . . . . . . . . . . . .. 107. 3.2.3.2 Bloque de Procesamiento . . . . . . . . . . . . . . .. 108. 3.2.3.3 Bloque de Transmisión . . . . . . . . . . . . . . . . .. 112. 3.2.4 MÓDULO DE CONVERSIÓN DIGITAL ANALÓGICO . . . . .. 115. 3.2.4.1 Conversor DAC 0800 . . . . . . . . . . . . . . . . .. 115. 3.2.4.2 Circuito de Operación . . . . . . . . . . . . . . . . .. 116. 3.3 IMPLEMENTACIÓN DE LAS PRUEBAS PARA EL MODULADOR . .. 116. 3.3.1 PUERTOS EMPLEADOS . . . . . . . . . . . . . . . . . . . .. 116. 3.3.2 GENERACIÓN DE LA SEÑAL DEL RELOJ PARA LA RECEPCIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 118. 3.3.3 LECTURA DE LOS BITS RECIBIDOS . . . . . . . . . . . . .. 118. 3.3.4 PROCESAMIENTO DE LOS DATOS LEÍDOS . . . . . . . . .. 119. 3.3.5 CONVERSOR SERIAL A PARALELO . . . . . . . . . . . . .. 121. 3.3.6 GENERADOR DE LAS FASES . . . . . . . . . . . . . . . . .. 123.
(10) viii 3.4 IMPLEMENTACIÓN DE LAS PRUEBAS PARA EL DEMODULADOR. 126. 3.4.1 PROCESAMIENTO DE LOS DATOS LEÍDOS . . . . . . . . .. 126. 3.4.2 MULTIPLICADOR . . . . . . . . . . . . . . . . . . . . . . . .. 128. 3.4.3 DECISIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 129. 3.4.4 CONVERSOR PARALELO A SERIAL . . . . . . . . . . . . .. 131. 3.5 IMPLEMENTACIÓN DE LAS PRUEBAS PARA EL MÓDEM . . . . .. 135. 3.5.1 GENERACIÓN DE LA SEÑAL DEL RELOJ PARA LA TRANSMISIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 135. 3.5.2 PROCESAMIENTO DE LOS DATOS LEÍDOS . . . . . . . . .. 136. 3.5.3 TRANSMISIÓN DE LOS BITS DEMODULADOS . . . . . . .. 140. 3.5.4 MANEJO DE ARCHIVOS . . . . . . . . . . . . . . . . . . . .. 140. 3.6 ANÁLISIS DE RESULTADOS OBTENIDOS . . . . . . . . . . . . . .. 142. 4 CONCLUSIONES Y RECOMENDACIONES. 146. 4.1 CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 146. 4.2 RECOMENDACIONES . . . . . . . . . . . . . . . . . . . . . . . . . .. 147. ANEXOS A CÓDIGO EN VHDL. A-1. B ELEMENTOS EMPLEADOS PARA EL PRESENTE PROYECTO. B-1. B.1 TIPOS DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B-1. B.2 LIBRERÍAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B-1. B.3 CONTROL DE FLUJO . . . . . . . . . . . . . . . . . . . . . . . . . .. B-3. C CÓDIGO DE LA INTERFAZ GRÁFICA EN PYTHON. C-1.
(11) ix. ÍNDICE DE FIGURAS. Figura 1.1. Espectro de una señal con modulación ASK. . . . . . . . .. 4. Figura 1.2. Modulación ASK con una señal binaria (OOK). . . . . . . .. 4. Figura 1.3. Modulación FSK de una señal binaria . . . . . . . . . . . . .. 5. Figura 1.4. Espectro de una señal FSK de dos tonos. . . . . . . . . . .. 6. Figura 1.5. Tasas de error para sistemas 2-FSK coherente y no coherente. 7. Figura 1.6. Modulación PSK con una señal binaria (BPSK). . . . . . . .. 8. Figura 1.7. Espectro de una señal BPSK. . . . . . . . . . . . . . . . . .. 8. Figura 1.8. Comparación de tasas de error para sistemas ASK, FSK y PSK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Figura 1.9. Constelación de una señal modulada QPSK.. 9. . . . . . . . .. 11. Figura 1.10 Diagrama de bloques de un modulador QPSK. . . . . . . .. 12. Figura 1.11 Sı́mbolos posibles de la modulación QPSK. . . . . . . . . .. 13. Figura 1.12 Espectro de una señal QPSK y BPSK. . . . . . . . . . . . .. 13. Figura 1.13 Diagrama de bloques de un demodulador QPSK. . . . . . .. 15. Figura 1.14 Tendencia central en los sı́mbolos QPSK. . . . . . . . . . .. 16. Figura 1.15 Cambios de las fases de una señal QPSK y OQPSK. . . . .. 20. π 4. QPSK. . . . . . . . .. 21. Figura 1.17 Diagrama de bloques para el modulador FQPSK. . . . . . .. 22. Figura 1.18 Diagrama de bloques para el modulador SOQPSK. . . . . .. 23. Figura 1.16 Constelación dual en la modulación. Figura 1.19 Densidad espectral de potencia para varios esquemas de modulación QPSK. . . . . . . . . . . . . . . . . . . . . . . . . .. 23. Figura 1.20 Tasas de error para algunos esquemas de modulación. . . .. 24. Figura 2.1. Estructura de PAL y PLA.. . . . . . . . . . . . . . . . . . . .. 28. Figura 2.2. Arquitectura de los CPLD’s. . . . . . . . . . . . . . . . . . .. 29. Figura 2.3. Arquitectura de las FPGA’s. 30. . . . . . . . . . . . . . . . . . ..
(12) x Figura 2.4. Xilinx Virtex R -5 XC5VLX110T . . . . . . . . . . . . . . . . .. 35. Figura 2.5. Interfaz gráfica de la herramienta ISE versión 10.1. . . . . .. 37. Figura 2.6. Esquema básico de un sistema DDS. . . . . . . . . . . . . .. 38. Figura 2.7. Esquema del Conversor Serial a Paralelo. . . . . . . . . . .. 39. Figura 2.8. Diagrama RTL de la entidad ser2par. . . . . . . . . . . . . .. 39. Figura 2.9. Diagrama de flujo del proceso Serial a Paralelo. . . . . . . .. 41. Figura 2.10 Simulación del bloque Conversor Paralelo a Serial . . . . .. 42. Figura 2.11 Esquema del bloque DDS. . . . . . . . . . . . . . . . . . . .. 43. Figura 2.12 Señal seno construida con diferente número de muestras. .. 44. Figura 2.13 Proceso de digitalización de una señal sinusoidal. . . . . . .. 45. Figura 2.14 Diagrama RTL de la entidad DDS.. . . . . . . . . . . . . . .. 46. Figura 2.15 Proceso del bloque DDS. . . . . . . . . . . . . . . . . . . . .. 48. Figura 2.16 Simulación del bloque DDS. . . . . . . . . . . . . . . . . . .. 49. Figura 2.17 Simulación del bloque DDS con una relación 256 : 1. . . . .. 50. Figura 2.18 Diagrama RTL de la entidad MAIN. . . . . . . . . . . . . . .. 51. Figura 2.19 Simulación del modulador QPSK con la técnica DDS. . . . .. 52. Figura 2.20 Señal QPSK obtenida con la técnica DDS. . . . . . . . . . .. 52. Figura 2.21 Esquema del modulador usando memorias. . . . . . . . . .. 53. Figura 2.22 Diagrama RTL del bloque de la entidad phases. . . . . . . .. 54. Figura 2.23 Fases de la señal QPSK muestreadas. . . . . . . . . . . . .. 55. Figura 2.24 Proceso del bloque de Selección de las Fases. . . . . . . .. 57. Figura 2.25 Simulación del bloque de Selección las Fases . . . . . . . .. 57. Figura 2.26 Diagrama RTL de la entidad Modulator. . . . . . . . . . . . .. 59. Figura 2.27 Simulación del modulador QPSK con el uso de memorias. .. 59. Figura 2.28 Señal QPSK obtenida con el uso de las memorias. . . . . .. 60. Figura 2.29 Esquema del bloque Multiplicador. . . . . . . . . . . . . . .. 65. Figura 2.30 Diagrama RTL de la entidad multiplicator. . . . . . . . . . .. 66. Figura 2.31 Algoritmo del bloque Multiplicador . . . . . . . . . . . . . . .. 67. Figura 2.32 Simulación del bloque Multiplicador. . . . . . . . . . . . . . .. 69. Figura 2.33 Señales de los canales Q e I obtenidas. . . . . . . . . . . .. 69. Figura 2.34 Diagrama RTL de la entidad bits channels I Q. . . . . . . .. 70. Figura 2.35 Proceso del bloque de Decisión. . . . . . . . . . . . . . . . .. 72.
(13) xi Figura 2.36 Simulación del bloque de Decisión. . . . . . . . . . . . . . .. 73. Figura 2.37 Esquema del bloque Conversor Paralelo a Serial. . . . . . .. 74. Figura 2.38 Diagrama RTL de la entidad par2ser. . . . . . . . . . . . . .. 74. Figura 2.39 Diagrama de flujo del Bloque Conversor Paralelo a Serial. .. 75. Figura 2.40 Simulación del bloque de Conversor Paralelo a Serial. . . .. 76. Figura 2.41 Diagrama RTL de la entidad Demodulator. . . . . . . . . . .. 76. Figura 2.42 Simulación del Demodulador. . . . . . . . . . . . . . . . . .. 78. Figura 2.43 Esquema de conexión para las pruebas del modulador. . . .. 79. Figura 2.44 Esquema de conexión para las pruebas del demodulador. .. 79. Figura 2.45 Esquema de conexión para las pruebas del módem. . . . .. 80. Figura 3.1. Transmisión de datos sobre RS-232. . . . . . . . . . . . . .. 83. Figura 3.2. Configuración del puerto serial en la GUI. . . . . . . . . . .. 83. Figura 3.3. Organización de los bits. . . . . . . . . . . . . . . . . . . . .. 84. Figura 3.4. Entradas de configuración en la GUI. . . . . . . . . . . . . .. 85. Figura 3.5. Ejemplo de configuración. . . . . . . . . . . . . . . . . . . .. 86. Figura 3.6. Pestaña del Modulador de la interfaz. . . . . . . . . . . . . .. 87. Figura 3.7. Pestaña del Demodulador de la interfaz. . . . . . . . . . . .. 88. Figura 3.8. Pestaña del Módem de la interfaz. . . . . . . . . . . . . . . .. 88. Figura 3.9. Diagrama RTL de la entidad BAUD GEN RX. . . . . . . . .. 89. Figura 3.10 Diagrama de flujo del bloque Generador del Reloj de recepción.. 90. Figura 3.11 Simulación del bloque Generador del Reloj para la recepción.. 91. Figura 3.12 Diagrama RTL de la entidad rs232 RX. . . . . . . . . . . . .. 92. Figura 3.13 Diagrama de flujo del bloque de Lectura. . . . . . . . . . . .. 93. Figura 3.14 Simulación del bloque de Lectura. . . . . . . . . . . . . . . .. 94. Figura 3.15 Diagrama RTL de la entidad CTRL MOD. . . . . . . . . . .. 95. Figura 3.16 Diagrama de flujo para el bloque de Procesamiento. . . . .. 98. Figura 3.17 Simulación del bloque de procesamiento del modulador. . .. 100. Figura 3.18 Diagrama RTL de la entidad MAIN CTRL. . . . . . . . . . .. 101. Figura 3.19 Simulación de la Interfaz del Modulador. . . . . . . . . . . .. 101. Figura 3.20 Diagrama RTL de la entidad CTRL DEM. . . . . . . . . . . .. 102. Figura 3.21 Diagrama de flujo para el bloque de Procesamiento. . . . .. 104.
(14) xii Figura 3.22 Simulación del Bloque de Procesamiento. . . . . . . . . . .. 106. Figura 3.23 Diagrama RTL de la entidad MAIN CTRL. . . . . . . . . . .. 106. Figura 3.24 Simulación de la Interfaz del Demodulador. . . . . . . . . .. 107. Figura 3.25 Diagrama RTL de la entidad BAUD GEN TX. . . . . . . . .. 108. Figura 3.26 Simulación del bloque Generador del Reloj para la transmisión. 108 Figura 3.27 Diagrama RTL de la entidad CTRL MOD. . . . . . . . . . .. 109. Figura 3.28 Simulación del bloque de Procesamiento para el módem. .. 112. Figura 3.29 Diagrama RTL de la entidad rs232 TX. . . . . . . . . . . . .. 113. Figura 3.30 Simulación del bloque de Transmisión. . . . . . . . . . . . .. 114. Figura 3.31 Chip del DAC 0800. . . . . . . . . . . . . . . . . . . . . . . .. 115. Figura 3.32 Circuito de operación para el DAC 0800. . . . . . . . . . . .. 116. Figura 3.33 Interfaz RS-232 de la tarjeta FPGA. . . . . . . . . . . . . . .. 117. Figura 3.34 Puertos de salida usados en la tarjeta FPGA. . . . . . . . .. 117. Figura 3.35 Generación del reloj para la recepción en la interfaz RS-232.. 118. Figura 3.36 Frecuencia del reloj para la recepción en la interfaz RS-232.. 118. Figura 3.37 Señal de lectura con un bit leı́do. . . . . . . . . . . . . . . .. 119. Figura 3.38 Datos enviados para el bloque de procesamiento. . . . . . .. 119. Figura 3.39 Reloj para los bits de datos. . . . . . . . . . . . . . . . . . .. 120. Figura 3.40 Reloj para las muestras. . . . . . . . . . . . . . . . . . . . .. 120. Figura 3.41 Señales de habilitación. . . . . . . . . . . . . . . . . . . . .. 121. Figura 3.42 Secuencia a modularse. . . . . . . . . . . . . . . . . . . . .. 121. Figura 3.43 Datos enviados para el conversor serial a paralelo. . . . . .. 122. Figura 3.44 Secuencia con la variable de selección. . . . . . . . . . . .. 122. Figura 3.45 Canal I.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 123. Figura 3.46 Canal Q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 123. Figura 3.47 Primera secuencia. . . . . . . . . . . . . . . . . . . . . . . .. 124. Figura 3.48 Primera secuencia modulada. . . . . . . . . . . . . . . . . .. 124. Figura 3.49 Cambios en la fase de la señal modulada. . . . . . . . . . .. 125. Figura 3.50 Segunda secuencia. . . . . . . . . . . . . . . . . . . . . . .. 125. Figura 3.51 Segunda secuencia modulada. . . . . . . . . . . . . . . . .. 126. Figura 3.52 Fase seleccionada. . . . . . . . . . . . . . . . . . . . . . . .. 126. Figura 3.53 Reloj de para las muestras y señal QPSK. . . . . . . . . . .. 127.
(15) xiii Figura 3.54 Señales de habilitación. . . . . . . . . . . . . . . . . . . . .. 127. Figura 3.55 Fase seleccionada para el bloque multiplicador. . . . . . . .. 128. Figura 3.56 Resultado para el canal I . . . . . . . . . . . . . . . . . . . .. 128. Figura 3.57 Resultado para el canal Q . . . . . . . . . . . . . . . . . . .. 129. Figura 3.58 Configuración para el bloque de decisión. . . . . . . . . . .. 129. Figura 3.59 Sı́mbolo 11. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 130. Figura 3.60 Sı́mbolo 00. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 130. Figura 3.61 Sı́mbolo 01. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 131. Figura 3.62 Sı́mbolo 10. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 131. Figura 3.63 Configuración para el demodulador. . . . . . . . . . . . . . .. 132. Figura 3.64 Reloj para los bits demodulados. . . . . . . . . . . . . . . .. 132. Figura 3.65 Sı́mbolo 11. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 133. Figura 3.66 Sı́mbolo 00. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 133. Figura 3.67 Sı́mbolo 01. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 134. Figura 3.68 Sı́mbolo 10. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 134. Figura 3.69 Frecuencia de la portadora. . . . . . . . . . . . . . . . . . .. 134. Figura 3.70 Generación del reloj para la transmisión en la interfaz RS-232. 135 Figura 3.71 Frecuencia del reloj en la transmisión en la interfaz RS-232.. 135. Figura 3.72 Configuración para el bloque de procesamiento. . . . . . . .. 136. Figura 3.73 Relojes generados. . . . . . . . . . . . . . . . . . . . . . . .. 136. Figura 3.74 Frecuencias de los relojes generados. . . . . . . . . . . . .. 137. Figura 3.75 Habilitación del bloque conversor serial a paralelo. . . . . .. 137. Figura 3.76 Habilitación del bloque generador de las fases. . . . . . . .. 138. Figura 3.77 Habilitación de los bloques multiplicador y decisión. . . . . .. 138. Figura 3.78 Habilitación del conversor paralelo a serial. . . . . . . . . .. 139. Figura 3.79 Sincronización del reloj para la lectura de los bits demodulados. 139 Figura 3.80 Envı́o del caracter z al computador. . . . . . . . . . . . . . .. 140. Figura 3.81 Envı́o de un archivo. . . . . . . . . . . . . . . . . . . . . . .. 141. Figura 3.82 Recepción de un archivo.. 141. . . . . . . . . . . . . . . . . . . .. Figura 3.83 Procesamiento de un caracter.. . . . . . . . . . . . . . . . .. 142. Figura 3.84 Retardo en el procesamiento del DAC . . . . . . . . . . . .. 143.
(16) xiv. ÍNDICE DE TABLAS. Tabla 1.1. Expresiones para el cálculo de tasas de error para sistemas FSK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6. Tabla 1.2. Cálculo de tasas de error para sistemas ASK, FSK y PSK . .. 9. Tabla 1.3. Valores obtenidos al aplicar la técnica de la media. . . . . . .. 17. Tabla 1.4. Muestras ordenadas de los canales I y Q para un sı́mbolo modulado de 11. . . . . . . . . . . . . . . . . . . . . . . . . .. 18. Tabla 1.5. Valores obtenidos al aplicar la técnica de la mediana. . . . .. 18. Tabla 1.6. Valores obtenidos al aplicar la técnica de la moda. . . . . . .. 19. Tabla 1.7. Valores obtenidos al aplicar la técnica de la media truncada.. 19. Tabla 1.8. Cálculo de tasas de error para esquemas M-PSK y M-QAM.. 25. Tabla 2.1. Caracterı́sticas técnicas de la tarjeta Virtex R -5 XC5VLX110T. 36. Tabla 2.2. Requerimientos del Sistema para ISE 10.1. . . . . . . . . . .. 38. Tabla 2.3. Puertos, señales y variables para la entidad ser2par.. . . . .. 42. Tabla 2.4. Digitalización de una señal sinusoidal. . . . . . . . . . . . . .. 46. Tabla 2.5. Relación de los ı́ndices con la señal sinusoidal. . . . . . . . .. 48. Tabla 2.6. Puertos, señales y variables para la entidad DDS. . . . . . .. 49. Tabla 2.7. Puertos, señales y variables de la entidad phases. . . . . . .. 58. Tabla 2.8. Elementos usados en el modulador QPSK con las dos técnicas.. 62. Tabla 2.9. Parámetros de potencia usada en los moduladores QPSK. .. 63. Tabla 2.10 Sincronismo en los moduladores QPSK.. . . . . . . . . . . .. 63. Tabla 2.11 Puertos, señales y variables para la entidad multiplicator. . .. 68. Tabla 2.12 Puertos, señales y variables para la entidad bits channels I Q.. 73. Tabla 2.13 Puertos, señales y variables para la entidad par2ser.. . . . .. 75. Tabla 3.1. Combinaciones de los bits asignados al tipo de dato. . . . .. 84. Tabla 3.2. Puertos, Señales y Variables para la entidad BAUD GEN RX.. 91.
(17) xv Tabla 3.3. Puertos, señales y variables para la entidad rs232 RX. . . .. 94. Tabla 3.4. Puertos, señales y variables para la entidad CTRL MOD. . .. 99. Tabla 3.5. Puertos, señales y variables para la entidad CTRL MOD. . .. 105. Tabla 3.6. Comparación de resultados con el proyecto de referencia . .. 143. Tabla B.1. Tipos de datos empleados. . . . . . . . . . . . . . . . . . . .. B-1. Tabla B.2. Valores de datos basados en std logic. . . . . . . . . . . . .. B-2.
(18) xvi. ÍNDICE DE CÓDIGOS. Código 2.1. Ejemplo de un Código en Verilog. . . . . . . . . . . . . . . . . .. 32. Código 2.2. Ejemplo de un Código en VHDL. . . . . . . . . . . . . . . . . .. 34. Código 2.3. Variables para la selección y almacenamiento de los datos . . .. 40. Código 2.4. Creación de una memoria para almacenar las muestras de la. portadora en fase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Código 2.5. Entidad MAIN correspondiente al módulo superior del modulador. Código 2.6. Creación de las memorias de lectura y almacenamiento de las. fases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Código 2.7. Creación de la entidad Modulator . . . . . . . . . . . . . . . . .. Código 2.8. Declaración de la memoria de lectura y de los procesos para el. bloque multiplicador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Código 2.9. 47 50. 55 58. 66. Algoritmo para el ordenamiento de las muestras del canal I. . .. 70. Código 2.10 Declaración de la entidad Demodulator. . . . . . . . . . . . . .. 77. Código 3.1. Detección del bit de inicio. . . . . . . . . . . . . . . . . . . . . .. 92. Código 3.2. Lectura de los bits de la interfaz RS-232. . . . . . . . . . . . . .. 92. Código 3.3. Tratamiento de los bits leı́dos en el bloque de procesamiento. .. 95. Código 3.4. Generación de los Relojes para los bits de datos y muestras. .. 96. Código 3.5. Tratamiento de los bits leı́dos. . . . . . . . . . . . . . . . . . . .. 102. Código 3.6. Proceso para la generación de las señales para la habilitación del. demodulador. Código 3.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 103. Diferencia con el código para generación del reloj para la recep-. ción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Código 3.8. Generación de las señales para el control del modulador. . . .. Código 3.9. Generación de las señales para la habilitación del bloque multipli-. cador y de decisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Código 3.10 Sincronización del reloj con la señal de habilitación.. . . . . . .. 108 109. 110 110.
(19) xvii Código 3.11 Sincronización del reloj con la señal de habilitación.. . . . . . .. 111. Código 3.12 Lectura de la secuencia demodulada. . . . . . . . . . . . . . . .. 113. Código 3.13 Lectura de la secuencia demodulada. . . . . . . . . . . . . . . .. 114. Código B.1. Escritura de los datos en un archivo de texto. . . . . . . . . . .. B-2. Código B.2. Operador IF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B-3. Código B.3. Operador CASE. . . . . . . . . . . . . . . . . . . . . . . . . . .. B-4. Código B.4. Operador FOR. . . . . . . . . . . . . . . . . . . . . . . . . . . .. B-4.
(20) xviii. RESUMEN. En el presente proyecto se desarrollaron los diseños para un modulador y un demodulador QPSK en banda base, los cuales fueron realizados enteramente con el lenguaje VHDL utilizando el ambiente de desarrollo ISE que ofrece el fabricante XILINX. Para el desarrollo del modulador se emplearon dos técnicas: sı́ntesis digital directa (DDS) y uso de memorias, para posteriormente elegir la técnica más eficaz en términos de elementos empleados, potencia consumida y sincronismo. Además con la técnica DDS también se realizó el diseño del demodulador.. Sobre una tarjeta FPGA se implementó el modulador con la técnica más eficaz y también el demodulador. Para evaluar su funcionamiento se desarrollaron un conjunto de pruebas didácticas que permiten variar la velocidad de transmisión, frecuencia de portadora y amplitud de la señal modulada. Fue necesario el diseño de interfaces que hicieron posible la comunicación entre la persona y la tarjeta FPGA, además se desarrolló un módulo de conversión digital analógica para la visualización de la señal modulada. Este trabajo se divide en cuatro capı́tulos y tres anexos, que presentan los elementos del lenguaje VHDL empleados y los programas que se han diseñado.. En el capı́tulo 1 se aborda el marco teórico de la modulación QPSK, partiendo desde el análisis de las modulaciones digitales básicas.. En el capı́tulo 2 se presenta el diseño de los moduladores y el demodulador, luego se escoge la técnica más eficaz y por último se desarrollan las pruebas didácticas.. En el capı́tulo 3 se implementa la técnica más efectiva en la tarjeta FPGA junto con el demodulador para posteriormente realizar las pruebas y efectuar un análisis de los resultados obtenidos.. El capı́tulo 4 contiene las conclusiones y recomendaciones obtenidas en el desarrollo del proyecto..
(21) xix. PRESENTACIÓN. El presente Proyecto de Titulación destaca el diseño de hardware para comunicación de datos utilizando dispositivos digitales programables, como es el caso de las tarjetas FPGA.. Este tipo de diseños presentan una gran versatilidad para su adaptación a los diferentes estándares que se tienen en las comunicaciones digitales. Dicha versatilidad es debida a la caracterı́stica de reconfiguración de acuerdo a las exigencias en la operación.. El trabajo realizado se desarrolló teniendo como objetivo la generación de tecnologı́a propia del Ecuador, para una futura aplicación en los distintos sistemas de comunicación digital que se usan en el paı́s..
(22) 1. CAPÍTULO 1 PRINCIPIOS TEÓRICOS DE LA MODULACIÓN QPSK. 1.1 INTRODUCCIÓN Las telecomunicaciones son de suma importancia para el ser humano, puesto que se tiene la necesidad de enviar y recibir mensajes a través de largas distancias. Los primeros sistemas de comunicación fueron pedestres1 , y posteriormente apareció la necesidad de tener sistemas rápidos de comunicación, por lo que estos sistemas fueron evolucionando desde caballos hasta sistemas visuales, como señales de humo y espejos, que se podı́an observar desde la lejanı́a.. Los sistemas de comunicación transmiten información desde el transmisor hacia el receptor a través de un medio que los separa. En los sistemas de comunicación la tecnologı́a que se emplea para transmitir la información ha estado en procesos constantes de cambio y mejoramiento.. Los sistemas visuales de épocas antiguas permitı́an transmitir poca información, y podı́an operarse en condiciones climáticas favorables por personas entrenadas especialmente. Si se hace la analogı́a con los sistemas digitales actuales, las comunicaciones con sistemas visuales solo transmitı́an unos pocos bits2 por hora. Con la invención del telégrafo eléctrico se desecharon en gran medida los sistemas visuales y al mismo tiempo se dio paso a la era de las telecomunicaciones modernas.. Con el estudio detallado del electromagnetismo, se acentuaron las bases para las comunicaciones inalámbricas, además permitió la transmisión y recepción de señales 1 2. Pedestre: A pie. Bit: Acrónimo de Binary Digit. Unidad digital que puede tener un valor de uno o cero..
(23) 2 analógicas en vivo. Inicialmente las comunicaciones digitales se vieron estancadas en su aplicación, debido a la escasa tecnologı́a desarrollada [1]. A inicios del siglo XX se inventó la tecnologı́a AM3 , marcando el inicio de la radiodifusión y poco después se desarrollaron los sistemas de transmisión FM4 , los cuales años más tarde permitieron potenciar las comunicaciones inalámbricas. Para la mitad de este siglo se dio el renacimiento de las tecnologı́as digitales aprovechando la capacidad del canal y estableciendo su relación con la tasa de información. La invención del primer transistor de semiconductor permitió la fabricación de circuitos electrónicos más poderosos y compactos, los cuales permitieron poner los conceptos de la teorı́a de la información en uso práctico.. A partir de la primera mitad del siglo XX inició un crecimiento asombroso de las tecnologı́as digitales permitiendo el desarrollo de nuevas aplicaciones. Ha sido posible la migración de los sistemas de comunicación analógica hacia sistemas de comunicación digital debido al superior desempeño de estos sistemas. El abandono de las formas tradicionales de modulación ha permitido la evolución hasta formas modernas que posibilitan aprovechar de mejor manera las capacidades de los nuevos sistemas de comunicación. Con los avances en la electrónica cada vez se tienen dispositivos de mejores caracterı́sticas y menores costos que ofrecen una implementación masiva de las nuevas tecnologı́as digitales.. 1.2 MODULACIÓN DIGITAL La modulación consiste en un proceso que adecua la información o señal en banda base5 , mediante la modificación de los parámetros de una señal portadora para obtener una señal que sea resistente ante los efectos adversos propios del canal y ası́ lograr una adecuada utilización del mismo. En la modulación digital la señal en banda base es de naturaleza digital [2] [3].. 3. AM: Amplitud Modulada. FM: Frecuencia Modulada 5 Banda base : Es una señal cuyo espectro se extiende desde cero hasta una frecuencia baja máxima 4.
(24) 3 En la ecuación (1.1) se tiene la forma general de una onda portadora: c(t) = Ac cos[ωc t + φ]. (1.1). Donde Ac es la amplitud, ωc es la frecuencia y φ es la fase, estos parámetros permiten obtener las formas básicas de modulación digital: 1. Conmutación por corrimiento de amplitud (ASK).6 2. Conmutación por corrimiento de fase (PSK).7 3. Conmutación por corrimiento de frecuencia (FSK).8 1.2.1 MODULACIÓN ASK En este tipo de modulación se varı́a la amplitud de la portadora de acuerdo con la señal digital de entrada, entonces se pueden tener diferentes valores de amplitud si se usa una señal digital de varios estados [2]. La ecuación (1.2) tiene la forma general de una onda ASK: Φ(t) = [1 + kbn (t)] cos ωc t. (1.2). Donde bn (t) es la señal digital de entrada, k es el ı́ndice de modulación y Φ(t) la señal modulada. En la figura 1.1 se observa el espectro de una señal modulación ASK con portadora a 1 KHz y con una velocidad de transmisión de 200 Bps. Para este tipo de modulación se requieren de transmisores y receptores muy simples de construir. Una variante de la modulación ASK es OOK9 (véase la figura 1.2), con la que no se transmite potencia cuando no se envı́an datos. No es conveniente tener gran cantidad de estados de amplitud debido a que se pueden confundir dichos estados y la potencia debe ser grande para obtener una tasa de error pequeña [7].. 6. ASK: Amplitude Shift Keying. PSK: Phase Shift Keying. 8 FSK: Frecuency Shift Keying. 9 OOK: On-Off Keying. 7.
(25) 4 La modulación ASK se aplica en sistemas de telemetrı́a sencillos y en transmisores led debido a su simplicidad. [5].. Figura 1.1 Espectro de una señal con modulación ASK [7].. Figura 1.2 Modulación ASK con una señal binaria (OOK)..
(26) 5 1.2.2 MODULACIÓN FSK Se trata de una modulación angular,10 en la cual cada estado es representado por un tono o frecuencia en particular. En la ecuación 1.3 se observa que su representación matemática es similar a una señal FM, salvo que la señal moduladora es una señal digital. [bn (t)∆ω] t Φ(t) = cos ωc + 2. (1.3). Donde ∆ω representa la desviación de frecuencia de la señal FSK y corresponde a la máxima variación que puede tener la frecuencia de la señal portadora. En la figura 1.3 se muestra un ejemplo de la modulación FSK de una señal binaria, y en la figura 1.4 se observa el espectro para una señal FSK de una señal binaria con una portadora de 1 KHz y una desviación de frecuencia de 400 Hz.. Figura 1.3 Modulación FSK de una señal binaria. 10. Modulación Angular: Modulación no lineal en la que se varı́a la frecuencia o la fase de la señal portadora..
(27) 6. Figura 1.4 Espectro de una señal FSK de dos tonos.. Los sistemas de comunicación FSK varı́an su complejidad de acuerdo con el método de modulación (coherente o no coherente). En la modulación FSK coherente se debe mantener la fase de la señal portadora. La modulación FSK no coherente no tiene una sincronización ni en la fase ni en la frecuencia, obteniéndose una probabilidad de error más alta que en la modulación FSK coherente para un mismo nivel de energı́a [7] (véase figura 1.5 y tabla 1.1). Tı́picamente a la modulación FSK se la emplea en transmisión de datos a velocidades bajas como por ejemplo en los módems de lı́nea telefónica que fueron ampliamente ocupados. [5] Modulación. Tasas de error q Eb 2FSK coherente P (ǫ) = 12 erfc 2N0 Eb 2FSK no coherente P (ǫ) = 12 exp − 2N 0. Tabla 1.1 Expresiones para el cálculo de tasas de error para sistemas FSK [6].. Donde Eb /N0 representa la relación señal ruido, el operador erfc es la función de error complementaria11 y exp es el operador exponencial e.. 11. Erfc: Es usada en los campos de la estadı́stica y probabilidad como una medida de los errores..
(28) 7. Figura 1.5 Tasas de error para sistemas 2-FSK coherente y no coherente. [6]. 1.2.3 MODULACIÓN PSK Es una modulación de ángulo, en la cual se varı́a la fase de la señal portadora de acuerdo a los datos de entrada. La ecuación 1.4a es la expresión la forma general de una señal PSK, cabe señalar que la variación de la fase corresponde a un conjunto de valores discretos, que son entregados por la señal a modularse de acuerdo a sus estados, esto se aprecia en la ecuación 1.4b. [bn (t)∆θ] Φ(t) = cos ωc t + 2 ∆θ =. 2π M. (1.4a). (1.4b). Donde ∆θ representa la separación entre las fases adyacentes y M son los estados de la señal digital. En la figura 1.6 se muestra la modulación BPSK (PSK Binaria), se puede notar que el cambio de la fase es de 180o , y en la figura 1.7 se indica la forma del espectro de una señal PSK con una portadora de 1 KHz y una velocidad de transmisión de 200 bps..
(29) 8. Figura 1.6 Modulación PSK con una señal binaria (BPSK).. Figura 1.7 Espectro de una señal BPSK [7].. Los sistemas PSK convencionales ofrecen un buen desempeño en contra de los efectos del canal, pero necesitan de una detección coherente12 , lo que implica un aumento en la complejidad de los receptores, sin embargo se puede obtener una 12 Detección coherente: Requiere de información de la frecuencia y la fase para la detección de una señal modulada..
(30) 9 detección no coherente mediante el uso de la variante PSK diferencial (DPSK13 ) cuya referencia de fase es proporcionada por la misma onda modulada.. Si se compara la modulación PSK con las otras formas básicas de modulación digital (véase en la figura 1.8 y tabla 1.2), se encuentra que el consumo de potencia para una misma tasa de error es menor, por lo que este tipo de modulación es muy usada para las comunicaciones inalámbricas como por ejemplo es redes WLAN14 [5] [7].. Figura 1.8 Comparación de tasas de error para sistemas ASK, FSK y PSK. [6]. Modulación. Tasas de error q Eb 2ASK/2FSK coherente P (ǫ) = 12 erfc 2N0 Eb 2FSK no coherente P (ǫ) = 12 exp − 2N 0 q Eb BPSK P (ǫ) = erfc N0. Tabla 1.2 Cálculo de tasas de error para sistemas ASK, FSK y PSK [6].. 13. DPSK: Forma de moulación PSK diferencial, en donde la información se contiene en la diferencia de la fase de dos sı́mbolo sucesivos. 14 WLAN: Redes de área local inalámbricas..
(31) 10. 1.3 MODULACIÓN QPSK Los sistemas de comunicación son óptimos si se logran transmitir más bits por segundo y por hertz, obteniéndose una mayor eficiencia espectral15 . Con las técnicas de modulación que usan más niveles para transmitir más bits por sı́mbolo, se pueden lograr altas tasas de transmisión en anchos de banda fijos.. La modulación QPSK16 se obtiene si la señal de entrada tiene cuatro estados, reemplazando la señal digital de entrada por una señal cuaternaria en la ecuación 1.5 se tiene: Bπ ; B ǫ {−3, −1, 1, 3} Φ(t) = cos ωc t + 4. (1.5). Como se puede apreciar en la ecuación 1.5 hay cuatro posibles estados de la señal, los cuales representan una fase, siendo π4 ,. 3π 5π , 4 4. y. 7π 4. respectivamente.. Si se observa la expresión matemática de la modulación QPSK, se puede notar que es de la forma: f (t) = cos(ωc t + θi ). Aplicando la identidad trigonométrica del coseno de una suma se tiene: f (t) = cos θi cos ωc t−sin θi sin ωc t. Lo expuesto anteriormente se puede generalizar puesto que si la señal (t) es real se puede definir su preenvolvente. Dicha preenvolvente es una señal compleja de la forma: ψ(t) = x(t) + j x̂(t), en donde la parte compleja es obtenida mediante la transformada de Hilbert17 [7].. La caracterı́stica más importante de la preenvolvente es la carencia de contenido espectral para frecuencias negativas. Se puede representar, con la ayuda de la identidad de Euler, de la siguiente forma: ψ(t) = ψ̃(t)ej2πfc t . El término ψ̃(t) representa a la envolvente compleja, la señal real x(t) se puede hallar obteniendo la parte real de la preenvolvente R{ψ̃(t)ej2πfc t }, dando como resultado la representación de una señal pasabanda en la forma canónica mostrada en la ecuación 1.6, con sus componentes 15. Eficiencia espectral: Relación que indica cuantos bits por segundo se transmiten por hertz. QPSK: Quadriphase Shift Keying. 1 17 . En Transformada de Hilbert: Se entiende como la respuesta de un sistema ante un impulso πt o el dominio de la frecuencia se comporta como un defasador de 90 ideal. 16.
(32) 11 en fase y cuadratura (véase ecuación 1.7). Finalmente se puede deducir que cualquier señal que sea real puede representarse en términos de sus componentes de fase y cuadratura [7]. x(t) = xI (t) cos 2πfc t + xQ (t) sin 2πfc t. (1.6). ψ̃(t) = xI (t) + jxQ (t). (1.7). donde. Al analizar el resultado obtenido para el caso particular de la una señal QPSK se puede inferir que la modulación QPSK se compone de dos señales ASK en cuadratura [6], las cuales se pueden representar mediante el uso del diagrama de constelación18 (véase figura 1.9).. Figura 1.9 Constelación de una señal modulada QPSK [2].. La estructura del modulador QPSK usa la combinación de dos señales moduladas en amplitud que se encuentran en cuadratura, este principio también da origen a un tipo de modulación llamada QAM19 , en la cual se usa una combinación de las modulaciones ASK con PSK. Básicamente, el modulador usado para las modulaciones QAM y QPSK es el mismo, salvo que en la modulación QPSK se mantiene una envolvente constante.. En la figura 1.10 se tiene la estructura de un modulador QPSK, el mismo consta de un 18. Diagrama de constelación: Representación geométrica de señales donde se visualizan los sı́mbolos de salida posibles que puede generar un modulador [10]. 19 QAM: Quadrature Amplitude Modulation..
(33) 12 conversor serial a paralelo que separa los canales Q e I, el bloque codificador NRZ20 cambia la polaridad de los canales para poder efectuar la modulación en cuadratura de una forma correcta.. Figura 1.10 Diagrama de bloques de un modulador QPSK [2].. El oscilador genera la señal portadora en fase y el defasador genera la señal en cuadratura que son combinadas con los canales I y Q respectivamente para luego combinarse y ası́ obtener la señal modulada QPSK. Se pueden adicionar filtros pasabajo al modulador para limitar el ancho de banda.. En la figura 1.13 se pueden ver los cuatro posibles sı́mbolos para transmitirse. Los datos a la entrada del modulador ingresan con una tasa de. 1 Tb. bits por segundo (Tb. corresponde a el tiempo de bit), después de la conversión de serie a paralelo se entregan dos corrientes con una tasa de. 1 Ts. baudios por segundo (Ts corresponde a. el tiempo de sı́mbolo), en donde cada intervalo de la señal QPSK es el doble que la duración de bit Ts = 2Tb .. Se concluye que para una tasa de datos dada. 1 , Tb. un sistema QPSK requiere la mitad. de ancho de banda que un sistema BPSK (fs =. fb 2. [6]). La figura 1.12 muestra la. forma del espectro de dos señales BPSK y QPSK con una tasa de bits 200 bps, se puede corroborar lo concluido anteriormente.. 20. -1.. NRZ: Non Return to Zero. El 1 lógico se representa con un nivel de +1 y el 0 lógico con un nivel de.
(34) 13. Figura 1.11 Sı́mbolos posibles de la modulación QPSK.. Figura 1.12 Espectro de una señal QPSK y BPSK [7]..
(35) 14 Un modulador QPSK puede ser visto como la unión en paralelo de dos moduladores BPSK, y para la demodulación los canales Q e I son independientemente demodulados. Tomando esto en cuenta la tasa de bits errados (BER) de un sistema QPSK es la misma que para un sistema BPSK.. Al tener el mismo BER, pero al doblar la tasa de datos transmitidos, la modulación QPSK aprovecha de mejor manera el ancho de banda del canal que la modulación PSK binaria. Sin embargo para mantener el mismo BER, con respecto a la modulación BPSK, la potencia se dobla porque se transmiten dos bits simultáneamente.. Para la recepción de una señal QPSK se requiere recuperar las componentes Q e I, como se puede apreciar en la figura 1.13. Para ello se multiplica la señal QPSK con una portadora en fase y otra en cuadratura con el fin de obtener dichas componentes. Sea la señal QPSK recibida s(t) = I(t) cos ωc t − Q(t) sin ωc t, para el canal I se multiplica dicha señal por la portadora en fase (véase la ecuación 1.8). Si al resultado de la multiplicación se aplica identidades trigonométricas (véase ecuación 1.9) se tiene recuperada la componente del canal I más unos términos de alta frecuencia. Para el canal Q ocurre exactamente lo mismo. sI (t) =s(t) cos ωc t. (1.8). =I(t)cos2 ωc t− Q(t) sin ωc t cos ωc t 1 1 sI (t) = I(t) + {I(t) cos 2ωc t − Q(t) sin 2ωc t} 2 2. (1.9). Posteriormente las componentes recuperadas son enviadas a bloques de decisión, en donde se efectúan técnicas como filtrado, correlación u otras, que permiten recuperar los datos digitales contenidos en los canales Q e I. Finalmente los datos obtenidos deben ser unidos mediante un conversor paralelo a serial..
(36) 15. Figura 1.13 Diagrama de bloques de un demodulador QPSK [2].. 1.3.1 TÉCNICAS DE TENDENCIA CENTRAL Existen técnicas que permiten obtener la tendencia central de un conjunto de muestras para entender el comportamiento de dichos datos. Las componentes recuperadas en los canales Q e I consisten de un conjunto de muestras finitas en las cuales se podrı́an aplicar las técnicas de tendencia central. Dichas técnicas son: 1: Media aritmética 2: Media geométrica 3: Media armónica 4: Mediana 5: Moda 6: Media truncada. En la figura 1.14 se pueden apreciar las proyecciones de los sı́mbolos de esta modulación sobre los ejes, si se aplica alguna técnica mencionada anteriormente las muestras que conforman cada sı́mbolo QPSK pueden adquirir una tendencia central. Para recuperar los bits se deberá tener un umbral de comparación..
(37) 16. Figura 1.14 Tendencia central en los sı́mbolos QPSK.. 1.3.1.1 Media aritmética Es el promedio de un conjunto de muestras (ecuación 1.10). El valor arrojado por la media no siempre refleja la tendencia de los datos, debido a los errores (valores externos al conjunto de datos)que pueden haber en dichas muestras [8]. n. 1X xi X̄ = n i=1. (1.10). Junto con la media aritmética de la señal QPSK se aumenta el umbral de decisión para recuperar los bits de datos. Si el resultado de la media es mayor que cero entonces el bit correspondiente es uno, de lo contrario es cero.. En la tabla 1.3 se muestran los valores obtenidos al aplicar la técnica de la media sobre las cuatro fases de la señal QPSK, dicha señal tiene un conjunto de 16 muestras. Las columnas med I y med Q muestran el resultado de la media en los canales Q e I en cada sı́mbolo QPSK; además las columnas B(I) y B(Q) corresponden a los bits recuperados después de comparar la media con el umbral..
(38) 17. Tabla 1.3 Valores obtenidos al aplicar la técnica de la media.. 1.3.1.2 Media geométrica Es definida como la raı́z n-ésima del producto de un conjunto de n datos (ecuación 1.11). Tiene una menor afectación ante valores externos que la media aritmética [8].. X̄ =. ". n Y. xi. i=1. # n1. (1.11). Puede notarse que si se tiene un valor igual a cero o el resultado del producto es negativo, la media geométrica no está definida. Por lo que no serı́a útil su aplicación para en la recuperación de los bits de datos en la modulación QPSK. 1.3.1.3 Media armónica Es la inversa de la media aritmética de los valores recı́procos (ecuación 1.12) [8]. n X̄ = Pn. (1.12). 1 i=1 xi. Al igual que con la media geométrica, su aplicación para recuperar los bits de datos no es factible. 1.3.1.4 Mediana Representa el valor central de un conjunto de datos que han sido ordenados de menor a mayor, es decir, divide en dos partes iguales al conjunto de datos. La mediana es más resistente ante valores externos que la media aritmética [8]. Para el cálculo de la mediana se toman en cuenta dos condiciones: 1. Datos Pares: En un conjunto de n muestras ordenadas crecientemente, el resultado es la muestra que ocupe la posición. n+1 . 2.
(39) 18 2. Datos Impares: En un conjunto de n muestras ordenadas crecientemente, el promedio de las muestras que ocupen las posiciones. n 2. y. n 2. + 1 (muestras que. están en el centro) es la mediana. En la tabla 1.4 se muestra el proceso de cálculo de la mediana para una señal QPSK que contiene el sı́mbolo 11, al ser un número par de muestras se debe calcular el promedio de las muestras sombreadas. RX es la señal QPSK recibida, OSC y OS CUAD corresponden a las portadoras. Q e I son los canales recuperados, I ORD y Q ORD corresponden a los canales Q e I ordenados.. En la tabla 1.5 se muestran los valores obtenidos al aplicar la técnica de la mediana en los cuatro sı́mbolos de una señal QPSK que contiene un conjunto de 16 muestras. Se usa el mismo umbral que para la media aritmética.. Tabla 1.4 Muestras ordenadas de los canales I y Q para un sı́mbolo modulado de 11.. Tabla 1.5 Valores obtenidos al aplicar la técnica de la mediana..
(40) 19 1.3.1.5 Moda Es el dato que se repite más veces o tiene una mayor frecuencia dentro de un conjunto [8]. Para la comparación de los datos obtenidos con un umbral resulta complicado discernir el bit cuando la moda cae justo en el lı́mite de comparación. En la tabla 1.6 se muestra estos resultados para cada una de las fases de una señal QPSK con un conjunto de 16 datos, por lo que no serı́a útil al recuperar los bits de datos.. Tabla 1.6 Valores obtenidos al aplicar la técnica de la moda.. 1.3.1.6 Media truncada Es la media aritmética pero con la diferencia de que se elimina un porcentaje de datos en los extremos. De esta manera se asegura un poco más de robustez ante valores atı́picos que la media aritmética [8]. En la tabla 1.7 se muestra los resultados de aplicar esta técnica con un porcentaje del 20 %, puede notarse que estos resultados se acercan a los de la mediana.. Tabla 1.7 Valores obtenidos al aplicar la técnica de la media truncada.. 1.3.2 VARIANTES DE LA MODULACIÓN QPSK Las señales digitales de los canales I y Q varı́an simultáneamente, originando un cambio de fase de 180o en la señal QPSK. Lo común es aplicar técnicas de filtrado a.
(41) 20 la salida del transmisor para limitar el ancho de banda de la señal modulada, con el filtrado y los cambios de fase de 180o se inducen fluctuaciones en la amplitud de la señal a la salida de los filtros. [5]. Resultando que en la demodulación al muestrear las señales en los bloques de decisión, se introduce el fenómeno de diafonı́a21 entre los canales I y Q. Dicho fenómeno ocasiona bit errados al momento de pasar pa la recuperación de los datos originales [9]. Es por esto que se han creado variantes que adicionan técnicas que permiten explotar de mejor manera el potencial de la modulación QPSK. Para el proyecto s desarrolla la modulación QPSK convencional. 1.3.2.1 OQPSK. Figura 1.15 Cambios de las fases de una señal QPSK y OQPSK.. La variante Offset QPSK (OQPSK) usa un retraso de un bit en el canal Q haciendo que solo se cambie un bit a la vez, esto hace que el cambio máximo en la fase sea de 90o mitigando las fluctuaciones en la amplitud de la señal QPSK. En la figura 1.15 se muestra la transición en las fases de las señales QPSK y OQPSK, con respecto 21. Diafonı́a: Fenómeno en el cual una señal en un canal de comunicaciones introduce una perturbación no deseada en otro canal.
(42) 21 a una señal binaria aleatoria de datos en la entrada. Con la variación de un bit a la vez en los canales Q e I, se logra reducir la diafonı́a en la demodulación. Este tipo de variante es usada en las redes dispersas como ZigBee22 . [6] 1.3.2.2. π 4. QPSK. La variante. π 4. QPSK también reduce las transiciones en la fase de la señal QPSK,. siendo la transición máxima de 135o . Esta variante usa dos constelaciones que se encuentran desfasadas 45o una con respecto a la otra. En la figura 1.16 se muestran los posibles estados que puede tener la señal. π 4. QPSK, la cual se obtiene. seleccionando los sı́mbolos alternadamente de las constelaciones QPSK. Esto da origen a corrimientos de fase de 45o y 135o . [6]. Figura 1.16 Constelación dual en la modulación. π 4. QPSK [2].. Una ventaja frente a la variante OQPSK es que las señales. π 4. QPSK pueden ser. detectadas mediante receptores no coherentes, reduciendo ası́ su complejidad. Esto se logra mediante la adición de una técnica de codificación diferencial a la variante. π 4. QPSK, en donde la información está compuesta por la diferencia de fase de elementos sucesivos de la señal y no por la fase absoluta. Con la codificación diferencial se da origen a la variante. π 4. QPSK diferencial (. π 4. DQPSK), la cual provee un buen. desempeño en ambientes con redes de área personal, como Bluetooth. [11] 1.3.2.3 FQPSK La variante Feher-patented QPSK (FQPSK) fue desarrollada con la idea de mantener una operación robusta y eficiente en ambientes, en donde se presenta 22. Zigbee: Especificación basada en el estándar IEE802.15.14, trabaja a bajas tasas de datos y consume poca energı́a. Se aplica en la domótica.
(43) 22 desvanecimiento selectivo23 . Como se puede apreciar en la figura 1.17, al modulador OQPSK se le añaden un dos bloques de codificación libre de interferencia y jitter24 (JIF), que dan forma a las señales de datos de manera que disminuyen el ancho de banda usado, pero esto origina que la amplitud no se mantenga constante.. Figura 1.17 Diagrama de bloques para el modulador FQPSK [12].. Para mitigar la fluctuación en la amplitud se añade un bloque de correlación cruzada25 , el mismo que ajusta las señales procesadas de los canales I y Q conforme a los datos de entrada para lograr una señal QPSK con envolvente cuasi-constante y con un ancho de banda angosto. La modulación FQPSK alcanza mayor eficiencia en el uso de la potencia que la modulación QPSK convencional y no necesita de amplificadores lineales, por lo que la manufacturación de los transmisores es más simple. Esta variante es usada en los sistemas de telemetrı́a aeronáuticos y espaciales [12] [13]. 1.3.2.4 SOQPSK La variante Shaped Offset QPSK (SOQPSK) se basa en la modulación de fase continua (CPM) y en la modulación OQPSK. La caracterı́stica que diferencia a esta variante es la ausencia de discontinuidades en la fase, por lo que puede alcanzar una alta eficiencia espectral y además ocupa un ancho de banda más angosto que la variante OQPSK. El análisis matemático de esta variante demuestra que se trata de una modulación de tres estados (+1, 0, -1), los cuales determinan los correspondientes ! estados de la fase, por ejemplo π2 , 0, − π2 . Para la transmisión se necesita transformar los datos de entrada en datos ternarios, 23. Desvanecimiento selectivo: Atenuación de la señal en algunos componentes de frecuencia. Jitter: Se refiere a las variaciones en la exactitud de las señales de reloj. 25 Correlación cruzada: Es una medida de cuan similares son dos señales, se la realiza con el producto escalar desplazado. 24.
(44) 23 para esto se usa un precodificador como se puede apreciar en la figura 1.18. Posteriormente se envı́an los datos ternarios a un bloque de correlación para obtener la forma de onda CPM, y finalmente se modula en cuadratura la onda CPM para tener una señal SOQPSK. Esta variante es usada en las comunicaciones espaciales [13].. Figura 1.18 Diagrama de bloques para el modulador SOQPSK [13].. En la figura 1.19 [13] se muestra la densidad espectral de potencia para las modulaciones OQPSK, FQPSK y SOQPSK.. Figura 1.19 Densidad espectral de potencia para varios esquemas de modulación QPSK [13].. 1.3.3 VENTAJAS Y DESVENTAJAS DE LA MODULACIÓN QPSK En la sección 1.2.3 se hizo una comparación de los esquemas básicos de la modulación digital, obteniéndose para la modulación BPSK el menor requerimiento en energı́a para una probabilidad de error dada. En el caso de la modulación QPSK o.
(45) 24 QAM teóricamente la probabilidad de bit errado resulta la misma que en la modulación BPSK, en la figura 1.20 se observa la probabilidad de sı́mbolo errado en varios esquemas de modulación PSK y QAM.. La figura 1.20 muestra que al comparar la modulación QPSK con otro tipo de modulación multinivel, resulta que es más robusta ante la presencia de factores que pueden alterar la señal y necesita menor potencia para la transmisión de los sı́mbolos, pero tiene una menor eficiencia espectral. Entonces, mientras más niveles se aumenten en los esquemas de modulación, se tendrá una probabilidad de error más grande. A pesar de que con pocos niveles se tiene una probabilidad de error más baja, no se consigue aprovechar de una buena manera el canal de comunicaciones, ya que se estarı́an enviando pocos sı́mbolos en un ancho de banda dado, es por esto que se debe buscar un balance entre cantidad de sı́mbolos enviados y probabilidad de error. En la tabla 1.8 se sumarizan las fórmulas para el cálculo del sı́mbolo errado en algunos esquemas de modulación M-PSK y M-QAM [5].. Figura 1.20 Tasas de error para algunos esquemas de modulación [6].. La modulación QPSK, como se abordó en la sección 1.3.1, presenta problemas de fluctuación de amplitud después de ocupar técnicas de filtrado para limitar el.
(46) 25 Modulación QPSK/QAM M-PSK M-QAM. Tasas de error q Es P (ǫ) = erfc N0 q ! π Es P (ǫ) = erfc sin N0 M Es P (ǫ) = log4 M 1 − √1M erfc 2N 0 2. Tabla 1.8 Cálculo de tasas de error para esquemas M-PSK y M-QAM [6].. ancho de banda, debido a las variaciones que se presentan en la fase en el orden de 180o , las cuales originan bits errados en la demodulación. Para solucionar estos problemas se deben adicionar otras técnicas que dan origen a nuevas variantes de la modulación QPSK, haciendo que el hardware para generar y recibir las señales moduladas sea más complejo. Pero actualmente la complejidad del hardware se mitiga con los avances que se tienen en la tecnologı́a, por esto se podrı́an realizar estudios futuros para mejorar el desempeño del modulador QPSK desarrollado en este proyecto.. Como se mencionó antes, la modulación QPSK es susceptible a cambios en la fase, para la recepción esto puede generar errores al momento de decidir que dato demodulado se debe entregar. Por lo que se debe enviar constantemente patrones que permitan sincronizar el transmisor y el receptor..
(47) 26 REFERENCIAS BIBLIOGRÁFICAS [1] Science.jrank.org, (2016). Electronics - History. [en lı́nea] Disponible en: http:// science.jrank.org/pages/2376/Electronics-History.html [Accesado 1 Feb. 2016]. [2] Hidalgo P. (2013). Apuntes de Comunicación Digital, Ecuador: EPN. [3] Lathi B. P., y Zhiling D.(2011). Modern Digital and Analog Communication Systems, Inglaterra: Oxford. [4] Couch W. L. (2007). Modern and Analog Communication Systems, Inglaterra: Pearson. [5] Stremler F. G. (2004). Sistemas de Comunciación, España: Pearson. [6] Haykin S., Moltev M. (2011). Communication Systems, USA: Prentice Hall. [7] Franks I. (1975). Teorı́a de la señal, USA: Bell Telephone Laboratories.[en lı́nea] Disponible en: http://tinyurl.com/hesnahw [Accesado 1 Feb. 2016] [8] Álvarez R. (2008). Curso de Estadı́stica Aplicada a Telecomunicaciones, Ecuador: EPN. [9] Miller M., y Branka V., Less B. (1993). Satellite Communications: mobile and fixed services, Library of Congress.[en lı́nea] Disponible en: http://www.springer. com/us/book/9780792393337 [Accesado 1 Feb. 2016]. [10] Bateman A. (2003). Comunicaciones Digitales: Diseño para el Mundo Real, España: Pearson. [11] Zhao L. (2010) QPSK and DQPSK Modulation, Inphi Corporation. [12] Feher K. (1993). FQPSK: A modulation-power efficient RF amplification proposal for increased spectral efficiency and capacity GMSK and 7rl4-QPSK compatible PHY standard. IEEE. [en lı́nea] Disponible en: http://www.ieee802.org/11/ Documents/DocumentArchives/1993_docs/1193097_scan.pdf [Accesado 1 Feb. 2016]..
(48) 27 [13] Yoghzao L., y Xuewen L. (2006). Two Classes of Schemes for Deep Space en:. Communications.. Xi’Dian. University.. [en. lı́nea]. Disponible. http://web.archive.org/web/20071108223006/http://www.china-. cic.org.cn/english/digital%20library/200612/12.pdf [Accesado 1 Feb. 2016]..
(49) 28. CAPÍTULO 2 TÉCNICAS PARA LA MODULACIÓN Y DEMODULACIÓN QPSK. 2.1 FPGA (FIELD-PROGRAMMABLE GATE ARRAY) Las FPGA son dispositivos constituidos de bloques lógicos cuyas interconexiones se pueden programar para lograr una funcionalidad o comportamiento deseado. Desde los años ochenta se han desarrollado los dispositivos lógicos programables que permiten tener la flexibilidad de diseño que no ofrecen los circuitos de propósito especı́fico. Los dispositivos más simples son conocidos como PAL1 y PLA2 que poseen una estructura interna compuesta de un arreglo de compuertas AND y OR programables, en el caso de las PAL sólo las compuertas AND se pueden programar. En la figura 2.1 se puede apreciar la estructura interna de los PAL y PLA. [1]. Figura 2.1 Estructura de PAL y PLA. 1 2. PAL: Programmable Array Logic PLA: Programmable Logic Array.
(50) 29 Al combinar los dispositivos lógicos programables simples se obtienen los dispositivos lógicos programables complejos (CPLD). Los bloques PAL o PLA se comunican entre sı́ y con los bloques de entrada/salida, mediante una matriz programable de interconexiones (PIM), permitiendo un diseño de circuitos más complejos con un mejor aprovechamiento de los elementos que constituyen a estos bloques. En la figura 2.2 se presenta la arquitectura genérica de los CPLD’s. [1]. Figura 2.2 Arquitectura de los CPLD’s.. La estructura de los CPLD’s depende de los componentes que tenga la PMI, por lo general la PMI consta de arreglos lógicos que contienen suma de productos o multiplexores que de cierta manera limitan las conexiones entre los bloques lógicos PAL o PLA [1].. Las FPGA’s (Field-Programmable Gate Array) fueron desarrolladas paralelamente a los CPLD’s. Pero la arquitectura de las FPGA’s difiere de la arquitectura de los CPLD’s, ya que carecen de bloques lógicos PAL o PLA y de la PMI, como se puede apreciar en la figura 2.3, las FPGA constan de celdas lógicas que pueden realizar operaciones complejas o comportarse como compuertas lógicas simples. La interconexión de las celdas lógicas se encuentra distribuida en canales de enrutamiento horizontales y verticales [1]..
(51) 30. Figura 2.3 Arquitectura de las FPGA’s. Debido a la arquitectura distribuida de las conexiones en las FPGA’s, se puede aumentar la densidad de elementos lógicos en una misma área con respecto a los CPLD’s. Esto elimina las limitaciones que se tienen en las CPLD’s en cuanto a las interconexiones, sin embargo, si se realizan diseños muy complejos en las FPGA’s pueden haber retrasos impredecibles como consecuencia de los caminos largos que se generan al conectar las celdas lógicas [2].. Al comparar las arquitecturas de las FPGA’s y CPLD’s, se concluye que con las FPGA’s se pueden implementar funcionalidades mucho más complejas que con los CPLD’s debido a su alta escala de integración, pero se reduce la velocidad de funcionamiento. A pesar de ello las FPGA’s actualmente son herramientas útiles para el modelado y prototipado de diseños digitales complejos, además en los últimos años los fabricantes como XILINX y ALTERA han desarrollado FPGA’s que permiten reducir los retardos al optimizar los enrutamientos entre las celdas lógicas.. 2.2 LENGUAJES PARA LA DESCRIPCIÓN DE HARDWARE Con la aparición de los dispositivos lógicos programables, también surgió la necesidad de poseer herramientas de automatización para el diseño electrónico.
(52) 31 (EDA). Inicialmente se desarrollaron lenguajes que estaban orientados a la conexión entre los componentes diseñados por las herramientas EDA. Aunque estos lenguajes eran simples permitı́an describir el hardware, pero carecı́an de la capacidad para modelar el hardware antes de su implementación [1] [2].. Ante la creciente demanda de diseños de alto grado de complejidad, fue necesaria la aparición de lenguajes que permiten diseños con un alto nivel de abstracción3 En foque en la funcionalidad del diseño y no en los elementos de básicos.. Estos lenguajes de alto nivel describen los diseños con un enfoque en su funcionalidad, permitiendo ası́ el desarrollo de circuitos complejos y el modelado de los mismos antes de su implementación.. A fines de 1980 emergieron varios lenguajes HDL4 de alto nivel5 , pero los más usados en la industria y que se mantienen vigentes en los estándares hasta la actualidad son: Verilog y VHDL. [2] 2.2.1 VERILOG Es un lenguaje HDL de alto nivel que se encuentra en el estándar IEEE1364-2005. Fue originado en 1985 por la empresa Automated Integrated Design Systems, aunque en su inicio fue lenguaje propietario, más tarde se transformó a lenguaje abierto para su estandarización.. Fue diseñado con una estructura sintáctica parecida al lenguaje C, sin embargo la diferencia radica en que está orientado al hardware y no al software. Este lenguaje es de naturaleza concurrente, es decir que no existe un orden definido para la ejecución de instrucciones. La compilación de Verilog, llamada sintetización, se traduce en el mapeo de compuertas en el hardware [2].. Los diseños en este lenguaje se los realizan de forma modular. Admite descripciones 3. Alto nivel de abstración: HDL: Hardware Description Language. 5 Lenguajes de alto nivel: Lenguajes de programación adecuados a la capacidad de entendimiento humano. 4.
(53) 32 del tipo funcional, procedimental y estructural. La descripción funcional se basa en la programación concurrente, permitiendo modelar el comportamiento de los circuitos digitales. La descripción procedimental se basa en programación secuencial o algorı́tmica, se emplean estructuras para el control de flujo al igual que en C . La descripción estructural también se basa en la programación concurrente, pero se la usa para unir módulos y dar una estructura jerárquica al diseño [2].. 1. // - - - - - - - - - - - - - - - DECLARACI ÓN - - - - - - - - - - - - - - - - - -. 2. // --------- Lista de Puertos - - - - - - - - - - - - - - - - -. 3. module up_counter (. 4. cnt. ,. // Salida del contador. 5. enable. ,. // Entrada de Habilitación. 6. clk. ,. // Entrada del Reloj. 7. reset. 8. );. 9. // ---------- Puertos de Salida - - - - - - - - - - - - - - - -. // Entrada del Reset. 10. output [7:0] cnt ;. 11. // ---------- Puertos de Entrada - - - - - - - - - - - - - - -. 12. input enable , clk , reset ;. 13. // - -- - - - -- - - - - Tipos de Puertos - - - - - - - - - - - - - - -. 14. wire enable , clk , reset ; // Cable. 15. reg [7:0] cnt ; // Bus. 16. // - - - - - - - - - - - - - - - PROGRAMACI ÓN - - - - - - - - - - - - - - -. 17. always @ ( posedge clk ) // Bloque Procedimental. 18 19 20 21 22 23. if ( reset ) begin cnt <= 8 ’ b0 ; end else if ( enable ) begin cnt <= cnt + 1; end endmodule Código 2.1 Ejemplo de un Código en Verilog.. En el código 2.1 [3] se muestra un diseño de un contador de 8 bits realizado en Verilog, en el cual se ha utilizado una descripción procedimental. La estructura genérica de los códigos en este lenguaje se compone de una parte declarativa, en donde se establecen las entradas, salidas y tipos de puertos del módulo. En la otra parte se.
(54) 33 encuentra el comienzo de la programación, es aquı́ en donde se reflejan los estilos para la descripción del diseño.. La estructura del lenguaje Verilog permite diseñar fácilmente a nivel de compuertas y de transistores, pudiéndose crear nuevas primitivas en las FPGA’s. Pero con diseños de alto nivel y alto grado de complejidad, Verilog también se vuelve complicado debido a que tiene pocos constructores6 para el modelado de alto nivel [2].. Verilog posee tipos de datos simples y es bastante intuitivo, por lo que resulta relativamente fácil aprender a programar. 2.2.2 VHDL VHSIC7 HDL (VHDL) es un lenguaje de descripción de hardware de alto nivel que se encuentra en el estándar ANSI/IEEE 1076-1993. Fue creado en 1980 por el Departamento de Defensa de los Estados Unidos dentro del programa VHSIC, para crear metodologı́as de diseño en las nuevas tecnologı́as. En 1987 fue estandarizado e inmediatamente ocupado en aplicaciones militares y cientı́ficas, debido a la gran capacidad que tiene para el modelado de circuitos y fenómenos fı́sicos [1].. Inicialmente fue diseñado solo para el modelado, pero luego se requierieron desarrollar herramientas para su implementación en el hardware. Actualmente es muy utilizado para desarrollar aplicaciones sobre los dispositivos lógicos programables. Su estructura se basa en el lenguaje ADA,8 por lo que no permite violaciones del tipo de datos, es decir, VHDL es fuertemente tipado9 [1]. Al igual que Verilog, también se pueden realizar descripciones de los diseños en forma estructural, procedimental o funcional.. Con VHDL los diseños de alto nivel son más fáciles de realizar debido a que vienen incorporados constructores que permiten replicar y configurar el diseño de las 6. Constructores: Son subrutinas que inicializan objetos creados. VHSIC: Very High Speed Integrated Circuit. 8 ADA: Lenguaje concurrente y orientado a objetos, basado en Pascal. 9 Tipado: Tiene tipos de datos bien definidos. 7.
(55) 34 estructuras, además tiene modelos genéricos que pueden ser caracterizados individualmente. Pero a bajo nivel no se pueden manejar las primitivas10 de las FPGA’s directamente, para esto se deben incorporar otros constructores como VITAL11 [2]. 1. library IEEE ;. 2. -- - - - - - - - - - - - - - - - - - - - - DECLARACI ÓN - - - - - - - - - - - - - - - - - - - - -. 3. -- - -- - - - -- - - - - Declaración de Librerı́as - - - - - - - - - - - - - - -. 4. use IEEE . STD_LOGIC_1164 . ALL ;. 5. use IEEE . STD_LOGIC_ARITH . ALL ;. 6. -- - -- - - - -- - - - - Declaración de los puertos - - - - - - - - - - - - -. 7. entity cnt is. 8. Port (. 9. clock. : in. STD_LOGIC ; -- Entrada del reloj. 10. enable : in STD_LOGIC ; -- Entrada de Habilitación. 11. result : out INTEGER RANGE 0 TO 255; -- Salida del contador. 12. );. 13. end cnt ;. 14. -- - - - - - - - - - - - - - - - Descripción del circuito - - - - - - - - - - - - -. 15. architecture Behavioral of cnt is. 16. begin. 17. -- - - - - - - - - - - - - - - - - - - - - PROGRAMACI ÓN - - - - - - - - - - - - - - - - - - - -. 18. process ( clock , enable ) -- Bloque Procedimental. 19. variable count : integer range 0 to 255 := 0;. 20. begin. 21. result <= count ;. 22. if ( rising_edge ( clock ) ) then. 23. count := count. + 1;. 24. if ( count = 255) then. 25. count := 0;. 26. end if ;. 27. elsif ( enable = 0). 28. count := 0;. 29. end if ;. 30. end process ;. 31. end Behavioral ;. then. Código 2.2 Ejemplo de un Código en VHDL. 10. Primitivas: Instrucciones básicas. VITAL: VHDL Initiative Towards ASIC Libraries (definido en IEEE 1076.4), permite el modelado de las primitivas de las FPGA’s y ASIC’s. 11.
(56) 35 En el código 2.2 se muestra un ejemplo de un contador de 8 bits realizado en VHDL. Se observa que la estructura de los programas en VHDL se compone de una parte denominada ENTITY, en donde se declaran las entradas y salidas del diseño, y otra parte denominada ARCHITECTURE en donde se describe el diseño.. VHDL tiene librerı́as que contienen operaciones y diferentes tipos de datos, además se pueden crear otros tipos partiendo de los ya existentes. Esto hace más fácil crear diseños de alto grado de abstracción, que para un usuario sin experiencia le llevarı́a bastante tiempo aprender a manejar los constructores de alto nivel [1].. 2.3 ELEMENTOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL MODULADOR Y DEMODULADOR QPSK 2.3.1 TARJETA FPGA DISPONIBLE Se dispone una tarjeta FPGA de evaluación del fabricante XILINX, pertenece a la familia VIRTEX 5 y con la serie LX110T. En la figura 2.4 se muestra la tarjeta disponible.. Figura 2.4 Xilinx Virtex R -5 XC5VLX110T. En la tabla 2.1 se muestran las caracterı́sticas ténicas principales proporcionadas por la hoja de datos del fabricante [4]..
Outline
Documento similar
Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los
En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el
Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),
The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,
Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria.. Células de origen humano o sus derivados que
Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de