Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica"

Transcripción

1 Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica Procedimiento de diseño e implementación de circuitos digitales utilizando herramientas EDA de código abierto Por: Gerardo Castro Jiménez Ciudad Universitaria Rodrigo Facio Junio del 2008

2 Procedimiento de diseño e implementación de circuitos digitales utilizando herramientas EDA de código abierto Por: Gerardo Castro Jiménez Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: LICENCIADO EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: Ing. Enrique Coen Alfaro, M.Sc. Representante del Director, Escuela de Ingeniería Eléctrica Ing. Randolph Steinvorth Fernández, PhD. Director, Comité Asesor Ing. Jorge Romero Chacón, PhD. Miembro, Comité Asesor Director, Escuela de Ingeniería Eléctrica Lic. Roberto Rodríguez Rodríguez Miembro, Comité Asesor Ing. José Luis López Sauma, M.Sc. Miembro del Tribunal ii

3 DEDICATORIA A Dios por guiarme y por ser la luz de mi camino. A mi familia por estar siempre conmigo, por su apoyo y ser incondicionales. A mis amigos por las experiencias que hemos vivido. Creo más en la imaginación que en el conocimiento iii

4 RECONOCIMIENTOS A todos los educadores y personas que invirtieron tiempo valioso de sus vidas para transmitirme sus conocimientos y experiencias. Este trabajo es el reflejo de todo lo que me enseñaron. Que Dios los bendiga. iv

5 ÍNDICE GENERAL ÍNDICE DE FIGURAS... viii ÍNDICE DE TABLAS...x NOMENCLATURA...xi RESUMEN... xiii CAPÍTULO 1: Introducción Alcances Objetivos Objetivo general Objetivos específicos Justificación Planteamiento del problema Metodología...3 CAPÍTULO 2: Desarrollo teórico Historia y estado del arte de los FPGAs Antecedentes en la UCR FPGAs Flujo de diseño mediante FPGAs utilizando las herramientas de Xilinx Introducción a la codificación de predicción lineal (LPC) de la voz humana...14 CAPÍTULO 3: Planteamiento de un procedimiento basado en herramientas de código abierto...17 CAPÍTULO 4: Diseño del codificador/decodificador de voz Descripción general Componentes Diagrama de estados general Descripción de los circuitos digitales Arquitectura de las máquinas de estado y de la asignación de registros Protocolo de comunicación entre circuitos Protocolo de cambio de estado y asignación de estado...29 CAPÍTULO 5: Compilación y Simulación Funcional Descripción en Verilog Etapa de Compilación y Simulación Funcional Simulación funcional...32 v

6 CAPÍTULO 6: Síntesis en Icarus Verilog Descripción del proceso de síntesis con Icarus Verilog Descripción del proceso de síntesis para la arquitectura Virtex Características del sintetizador de Icarus Verilog Verilog sintetizable para la arquitectura Virtex Adición de parámetros y restricciones en el proceso de síntesis para la arquitectura Virtex...47 CAPÍTULO 7: Implementación, Programación y Simulaciones postimplementación Proceso de implementación...50 Proceso de Traducción: Translate Proceso de Mapeo: Map Proceso de Posicionamiento y Enrutamiento: Place and Route Programación del FPGA y pruebas en circuito...55 CAPÍTULO 8: Conclusiones y recomendaciones...56 BIBLIOGRAFÍA...58 APÉNDICE A: Diagrama de estados de los circuitos...60 A.1 Controlador A/D...60 A.1.1 Registros:...60 A.1.2 Diagrama de Estado:...60 A.2 Controlador D/A...61 A.2.1 Registros:...61 A.2.2 Diagrama de Estado:...61 A.3 Controlador de Memoria...62 A.3.1 Registros:...62 A.3.2 Diagrama de Estado:...63 A.4 Controlador de Reproducción...64 A.4.1 Registros...64 A.4.2 Diagrama de Estado...64 A.5 Controlador de Codificación...66 A.5.1 Registros...66 A.5.2 Diagrama de Estado...67 A.6 Sonido con/sin Voz...69 A.6.1 Registros...69 A.6.2 Diagrama de Estado...70 A.7 Detección del Pitch...71 A.7.1 Registros...72 A.7.2 Diagrama de Estado...72 A.8 Coeficientes R...74 vi

7 A.8.1 Registros...74 A.8.2 Diagrama de Estado...75 A.9 Coeficientes LPC...76 A.9.1 Registros...76 A.9.2 Diagrama de Estado...77 A.10 Filtro de Análisis...79 A.10.1 Registros...79 A.10.2 Diagrama de Estado...80 A.11 Filtro de Síntesis...82 A.11.1 Registros...82 A.11.2 Diagrama de Estado...83 A.12 Sumador/Restador...85 A.12.1 Registros...85 A.12.2 Diagrama de Estado...85 A.13 Multiplicador...87 A.13.1 Registros...87 A.13.2 Diagrama de Estado...87 A.14 Divisor...88 A.14.1 Registros...88 A.14.2 Diagrama de Estado...88 A.15 Raíz Cuadrada...89 A.15.1 Registros...89 A.15.2 Diagrama de Estado...90 APÉNDICE B: Modelos Matemáticos y Algoritmos de LPC...92 APÉNDICE C: Código en Matlab, equivalente en Software del circuito diseñado...96 APÉNDICE D: Problemas de temporización durante la etapa de implementación D.1 Problema de convergencia de la arquitectura microprogramada D.2 Problema de alineación entre relojes APÉNDICE E: Guía del procedimiento de diseño e implementación de circuitos digitales utilizando herramientas EDA de código abierto vii

8 ÍNDICE DE FIGURAS Figura 1.1: Flujo de diseño e implementación mediante FPGAs [8]...3 Figura 1.2: Metodología de diseño...4 Figura 2.1: Diagrama de un FPGA [8]...7 Figura 2.2: Estructuras de FPGAS [8]...8 Figura 2.3: Estructuras de CLB [8]...8 Figura 2.4: Líneas de interconexión [9]...9 Figura 2.5: Fabricantes de FPGAs [8]...10 Figura 2.6: Flujo de diseño mediante FPGAs [8]...11 Figura 2.7: Modelo del tracto vocal [3]...14 Figura 2.9: Esquema de decodificación LPC [3]...16 Figura 3.1 Flujo de diseño basado en herramientas EDA de código abierto...18 Figura 4.1 Diagrama de bloques del diseño...23 Figura 4.2 Diagrama de estado general del diseño...24 Figura 4.3 Arquitectura de la asignación de registros...28 Figura 4.4 Protocolo de comunicación entre los circuitos...29 Figura 4.5 Protocolo de cambio de estado y asignación de estado...29 Figura 5.1 Estructura de la descripción en Verilog para los circuitos diseñados...30 Figura 5.2 Estructura jerárquica establecida para el proyecto...31 Figura 5.3 Esquema jerárquico para simulación funcional...32 Figura 5.4 Simulación funcional del controlador de memoria DRAM en GTKWave...33 Figura 5.5 Simulación funcional del divisor de 32bits...34 Figura 5.6 Simulación funcional del codificador/decodificador de voz en GTKWave...35 Figura 6.1 Proceso de Síntesis con Icarus Verilog...36 Figura 6.2 Archivo EDIF para multiplexor 4 a 1 (if-else)...43 Figura 6.3 Esquemático del archivo de síntesis para multiplexor 4 a 1 (if-else)...43 Figura 6.4 Archivo EDIF, sección para multiplexor 4 a1 (case)...44 viii

9 Figura 6.5 Esquemático del archivo de síntesis para multiplexor 4 a 1 (case)...44 Figura 6.6 Esquemático de celdas de tipo PAD en la arquitectura Virtex...48 Figura 7.1 Resumen de recursos utilizados en el FPGA, circuito completo...54 Figura 7.2 Reporte final de relojes del WebPack, circuito completo...54 Figura 6. Filtro de análisis de voz...94 Figura 7. Filtro IIR todo polos para síntesis de voz...94 Figura D.1 Arquitectura microprogramada Figura D.2 Arquitectura one-hot Figura D.3 Diagrama temporal, problema de alineación de relojes Figura D.4 Diagrama temporal, solución al problema de alineación de relojes ix

10 ÍNDICE DE TABLAS Tabla 4.1 Circuitos diseñados para el codificador/decodificador de voz...22 Tabla 5.1 Nombre de los módulos en Verilog para cada circuito...31 Tabla 6.1 Celdas de la librería Virtex que maneja Icarus Verilog...40 Tabla A.1 Diagrama de Estado del Controlador A/D...61 Tabla A.2 Diagrama de Estado del Controlador D/A...62 Tabla A.3 Diagrama de Estado del Controlador de Memoria...64 Tabla A.4 Diagrama de Estado del Controlador de Reproducción...66 Tabla A.5 Diagrama de Estado del Controlador de Codificación...69 Tabla A.6 Diagrama de Estado de Sonido con/sin Voz...71 Tabla A.7 Diagrama de Estado de Detección del Pitch...74 Tabla A.8 Diagrama de Estado de Coeficientes R...76 Tabla A.9 Diagrama de Estado de Coeficientes LPC...79 Tabla A.10 Diagrama de Estado del Filtro de Análisis...82 Tabla A.11 Diagrama de Estado del Filtro de Síntesis...85 Tabla A.12 Diagrama de Estado del Sumador/Restador...87 Tabla A.13 Diagrama de Estado del Multiplicador...88 Tabla A.14 Diagrama de Estado del Divisor...89 Tabla A.15 Diagrama de Estado de la Raíz Cuadrada...91 x

11 NOMENCLATURA CLB Configurable Logic Block Bloque Lógico Configurable CMOS Complementary Metal Oxide Semiconductor Semiconductor de Óxido Metálico Complementario EDA Electronic Design Automation - Automatización del Diseño Electrónico EDIF Electronic Design Interchange Format - Formato de Intercambio de Diseño Electrónico EEPROM Electric Erasable Programmable Read Only Memory - Memoria de Solo Lectura Eléctricamente Borrable EPROM Erasable Programmable Read Only Memory Memoria de Solo Lectura Borrable FPGA Field Programmable Gate Array - Arreglo de Puertas Programables por Campo FPLA Field Programmable Logic Array Arreglo de Lógica Programable por Campo GAL Gate Array Logic Arreglo de Puertas Lógicas HDL Hardware Description Language Lenguaje de Descripción de Hardware IIR Infinite Impulse Response Respuesta Infinita al Impulso IOB Input/Output Block - Bloque Entrada/Salida LPC Linear Prediction Coding Codificación por Predicción Lineal LPM Library of Parameterized Modules Librería de Módulos Parametrizable PAL Programmable Array Logic Arreglo de Lógica Programable PCM Pulse Code Modulation Codificación por modulación de pulsos xi

12 PEEL Programmable Electric Erasable Logic Lógica Programable Eléctricamente Borrable PLD Programmable Logic Device Dispositivo Lógico Programable RAM Random Access Memory Memoria de Acceso Aleatorio VLSI Very Large Scale Integration Integración a Escala Muy Alta xii

13 RESUMEN Este trabajo presenta un procedimiento de diseño e implementación de circuitos digitales utilizando herramientas de código abierto. Para su desarrollo se utilizó el diseño de un codificador/decodificador de voz. Como herramientas de código abierto se emplearon Icarus Verilog como simulador y sintetizador en HDL Verilog y GTKWave como visor de ondas en combinación con la herramienta propietaria WebPack de Xilinx. Se describieron en Verilog un conjunto de circuitos digitales de forma conductual y jerárquica que utilizaban codificación predictiva lineal para codificar y decodificar la voz. Se realizaron simulaciones funcionales y con Icarus Verilog se sintetizó el circuito completo para la arquitectura Virtex de Xilinx. La implementación se realizó para un FPGA SPARTAN3E de Xilinx. Se programó físicamente el circuito diseñado con resultados de funcionamiento exitosos. Durante este proceso se revelaron las capacidades y limitaciones de las herramientas de código abierto. Como resultado se obtiene una guía detallada del procedimiento para que sea utilizada en trabajos futuros y en cursos en la Universidad. Se concluye que el procedimiento y las herramientas tienen la capacidad suficiente para el desarrollo de circuitos digitales, pero se recomienda completar y mejorarlas para que el procedimiento sea más robusto. xiii

14 CAPÍTULO 1: Introducción 1.1 Alcances En este proyecto se presenta un procedimiento de diseño e implementación de circuitos digitales utilizando herramientas EDA de código abierto. El procedimiento se desarrolló a través de una aplicación de procesamiento digital de señales. La aplicación que se seleccionó fue un codificador/decodificador de voz, cuyo diseño parte del modelo teórico de predicción lineal de la voz humana. No constituyó un objetivo de este proyecto el analizar u optimizar el algoritmo utilizado ya que este fue únicamente un vehículo para demostrar el procedimiento de diseño que se presenta. Se utiliza Verilog, como lenguaje de descripción de hardware estándar, para describir la arquitectura del circuito digital. Las etapas de compilación, simulación y síntesis se realizaron mediante herramientas EDA de código abierto y con formatos estándar que permiten intercambiar la información con otras herramientas disponibles en la industria. Las herramientas EDA de código abierto están disponibles al público en general sin costo alguno. Esto constituye la base del procedimiento y su principal distinción. Se obtuvo un circuito digital en el FPGA: SPARTAN3E de Xilinx como resultado final del procedimiento desarrollado. 1

15 1.2 Objetivos Objetivo general Desarrollar un procedimiento de diseño e implementación de circuitos digitales basado en herramientas EDA de código abierto, utilizando como ejemplo un codificador/decodificador de voz Objetivos específicos Diseñar la arquitectura de un circuito digital que realice en hardware el algoritmo de codificación/decodificación de voz a partir del método de codificación de predicción lineal de la voz humana. Describir el circuito digital del codificador/decodificador de voz mediante el lenguaje de descripción de hardware Verilog. Utilizar herramientas de código abierto de uso general que permitan construir el circuito digital en cualquier dispositivo independientemente del fabricante del mismo. Establecer la etapa de síntesis del procedimiento de diseño para que se pueda programar en el FPGA SPARTAN3E de Xilinx. Verificar mediante pruebas cualitativas que el circuito programado en el FPGA realiza el algoritmo de codificación de voz utilizado. Documentar el procedimiento de diseño propuesto para que pueda ser utilizado ampliamente y permita profundizar en el estudio de los dispositivos lógicos programables. 1.3 Justificación El proyecto surgió a partir de la dependencia que tiene el flujo de diseño e implementación en FPGAs de Xilinx. El flujo actual utiliza herramientas y formatos propietarios del fabricante limitando así la portabilidad de los diseños a otras plataformas. Esto motivó a buscar un procedimiento que utilice herramientas EDA de có- 1

16 2 digo abierto y formatos estándar de la industria que lograra obtener mayor flexibilidad. Con el uso de herramientas EDA de código abierto se obtiene independencia del fabricante y libertad para modificar y mejorar sus capacidades por parte de la Universidad de Costa Rica. Los formatos estándar, que no dependen del fabricante, permiten que el diseño se pueda transportar a otras marcas o tipos de dispositivos programables y hasta a VLSI. Está claro que existen etapas del flujo que siempre van a depender de la marca del dispositivo pero lograr una independencia en la mayoría de las fases es el principio para diseñar e implementar en cualquier tipo y marca de dispositivo programable. Por otro lado, las ventajas que presentan los FPGAs en el diseño de circuitos digitales y su potencial a nivel académico, se ve limitado por los pocos proyectos realizados en la Universidad de Costa Rica. Esta situación genera la necesidad de ampliar la documentación y profundizar en este campo. La documentación de este procedimiento dará una mayor referencia y podría ser de utilidad para futuros proyectos de graduación y cursos en la Universidad en esta área. 1.4 Planteamiento del problema El flujo de diseño e implementación general de un circuito digital FPGA consiste del diagrama de bloques mostrado a continuación [8] :

17 3 Figura 1.1: Flujo de diseño e implementación mediante FPGAs [8] Actualmente todas las etapas del proceso se realizan mediante el conjunto de herramientas EDA de Xilinx conocidas como: ISE Webpack (versión gratuita con limitaciones) o ISE Foundation (versión completa). Estas herramientas están orientadas hacia dispositivos FPGA de esta marca por lo que no son útiles para otras plataformas, esto hace que el flujo sea poco flexible. Durante el proceso se crean y se utilizan archivos con formatos propietarios de Xilinx, lo cual impide se puedan utilizar en otro tipo de herramientas o aplicaciones. Es decir que etapas ya realizadas se volverán a repetir si se cambia de plataforma. Por otro lado, la poca documentación que se encuentra acerca de la utilización de FPGAs como método para implementar circuitos digitales, provoca que los dispositivos no se puedan utilizar en los cursos impartidos en la Universidad ya que no se tiene la suficiente experiencia en el uso de ellos. 1.5 Metodología

18 4 Para cumplir con los objetivos planteados, se contó con las herramientas de código libre Icarus Verilog y GTK Wave. Icarus Verilog es un simulador de Verilog y sintetizador [17] y GTK Wave se utilizó para análisis temporal [16]. La metodología constó de 7 etapas que se enuncian a continuación: 1. A partir del método de predicción lineal para codificación de la voz, se extrajo las especificaciones arquitectónicas y elementos básicos para el diseño del codificador/decodificador de voz. 2. Con base en las fórmulas del modelo matemático se construyeron los módulos en Verilog que describían el circuito digital. Se utilizó la metodología que se muestra en la figura 2, donde se define el circuito completo y dentro de este se encuentran circuitos complejos que a su vez contienen circuitos sencillos. Figura 1.2: Metodología de diseño 3. Cada circuito simple pasó por una simulación funcional en Icarus Verilog y un análisis temporal mediante GTKWave. 4. Obtenida una descripción funcional en Verilog de los circuitos simples, estos se sintetizaron en el formato estándar EDIF mediante Icarus Verilog y se implementaron mediante la herramienta ISE Webpack de Xilinx. 5. Al finalizar este proceso para cada circuito simple, se continuó con los circuitos complejos que pasaron por las etapas 3 y 4. De esta forma el procedimiento se ejercitó en cada iteración.

19 5 6. Finalmente, el circuito completo formado por los circuitos complejos y sencillos se sometió a las etapas 3 y 4, donde se obtuvo una síntesis general del circuito. 7. Seguidamente, se hizo la programación del circuito completo en el FPGA, donde se realizaron las pruebas en circuito. SPARTAN3E de Xilinx fue el FPGA utilizado el cual se encontraba disponible en la bodega de la Escuela de Ingeniería Eléctrica. 8. Finalmente, se documentó el procedimiento en forma de guía, donde se detalla cada etapa.

20 CAPÍTULO 2: Desarrollo teórico 2.1 Historia y estado del arte de los FPGAs En 1984, Ross Freeman funda Xilinx y crea el circuito del tipo FPGA, distinto de otros dispositivos lógicos programables (PLD). Estos circuitos tuvieron un gran éxito en el mercado y permitieron el desarrollo de la que hoy es empresa líder del sector de FPGAs [7]. Por otra parte, en esta época se fundaron otras dos empresas. Atmel se fundó en 1984, fabricando PLDs y FPGAs [7]. Actel se fundó en 1985, desarrollando FPGAs con tecnología basada en antifusibles y convirtiéndose en los líderes de esta tecnología desde 1994, presentando además la segunda cuota más grande del mercado de FPGAs [7]. Por su parte, Altera también introdujo circuitos del tipo FPGA, de arquitectura cuadrícula, siendo actualmente el tercer fabricante en cuota de mercado [7]. Actualmente, los fabricantes introducen mejoras en las nuevas FPGAs como [7] : Reconfiguración parcial en el sistema ( Field partial reconfiguration ), es decir, de sólo una parte de la FPGA, en lugar de su totalidad como es habitual actualmente. Incremento de la capacidad lógica, es decir, mayor número de puertas lógicas equivalentes. Incremento de la capacidad de interconexión y disminución de los retardos de propagación, con el fin de alcanzar un mayor aprovechamiento de la capacidad de lógica y aumento en la velocidad del FPGA. 2.2 Antecedentes en la UCR Los trabajos realizados en la Universidad de Costa Rica en el área de los dispositivos lógicos programables no son muchos. Se ha sintetizado e implementado la CPUCR [2] [5], un filtro digital [4] y un probador de escaneo controlado por una PC para realizar pruebas estructurales a microprocesadores [1]. Para el desarrollo de todas estas aplicaciones se han utilizado PLD s de la marca Xilinx modelo SPARTAN2E. Como herramienta principal EDA 6

21 7 se ha utilizado ISE Webpack del fabricante en combinación con algunas otras herramientas propietarias como Verilogger y ModelSim. 2.3 FPGAs Un FPGA es un dispositivo lógico programable o PLD ( Programmable Logic Device ), cuyas características pueden ser modificadas y almacenadas mediante programación [9]. Poseen una estructura interna formada por: matriz de bloques lógicos configurables CLB ( Configurable Logic Block ) que se comunican entre sí y con los bloques de Entrada/Salida I/OB ( Input/Output Block ) a través de canales de ruteo horizontal. Figura 2.1: Diagrama de un FPGA [8] Estructura de una FPGA Dependiendo del fabricante se pueden encontrar diferentes soluciones. Las FPGAs que existen actualmente en el mercado, dependiendo de la estructura que adoptan los bloques lógicos que tengan definidos, se pueden clasificar como pertenecientes a cuatro grandes familias [9] : 1. Matriz Simétrica ( Symmetrical Array ). 2. Basada en Filas ( Row Based ). 3. Mar de puertas ( Sea-of-Gates ). 4. PLDs Jerárquicos (Hierarchical PLD).

22 8 Figura 2.2: Estructuras de FPGAS [8] CLBs: Bloques Lógicos Configurables Cada CLB presenta una sección de lógica combinacional programable y registros de almacenamiento: Figura 2.3: Estructuras de CLB [8] Los registros de almacenamiento sirven como herramientas en la creación de lógica secuencial. La sección de lógica combinacional suele consistir en una LUT ( Look Up Table ), que permite implementar cualquier función booleana a partir de sus variables de entrada. Se presentan también multiplexores y conmutadores, como elementos adicionales de direccionamiento de los datos del CLB, los cuales permiten variar el tipo de salidas (com-

23 9 binacionales o registradas), facilitan caminos de realimentación, o permiten cambiar las entradas de los biestables. Bloques entrada/salida (I/OBs) La periferia del FPGA está constituida por bloques de entrada/salida configurables por el usuario. Cada bloque puede ser configurado independientemente para funcionar como entrada, salida o bidireccional, admitiendo también la posibilidad de control triestado. Los IOBs pueden configurarse para trabajar con diferentes niveles lógicos (TTL, CMOS, ). Además, cada IOB incluye flip-flops que pueden utilizarse para registrar tanto las entradas como las salidas. Líneas de interconexión Constituyen un conjunto de caminos que permiten conectar las entradas y salidas de los diferentes bloques. Están constituidas por líneas metálicas de dos capas que recorren horizontal y verticalmente las filas y columnas existentes entre los CLBs. Dos elementos adicionales participan activamente en el proceso de conexión: Puntos de Interconexión Programable PIP ( Programmable Interconnection Point ) que permiten la conexión de CLBs e IOBs a líneas metálicas cercanas. Matrices de interconexión SW ( Switch Matrix o Magic Box ) que son dispositivos de conmutación distribuidos de forma uniforme por la FPGA. Figura 2.4: Líneas de interconexión [9] Los diferentes modelos comerciales se diferencian en [8] : Arquitectura: Gate Array (Filas), Mar de puertas, Matriz simétrica. Tipo de CLB: Puertas lógicas, multiplexores, tabla de búsqueda (LUT).

24 10 Arquitectura de las interconexiones: Canales de routing, red de interconexión. Tecnología de la programación: antifusibles, memoria no volátil (EPROM, EEPROM), memoria FLASH (RAM, FLASH). A continuación se presentan una tabla con los principales fabricantes de FPGAs y sus características [8] : Figura 2.5: Fabricantes de FPGAs [8] Ventajas y Desventajas de los FPGAs con respecto a otras tecnologías Las ventajas que poseen los FPGAs en el área de diseño de circuito digital son las siguientes [15] : Reducción del tiempo de introducción al mercado de productos. Habilidad de ser reprogramados después de haber salido al mercado a fin de corregir posibles errores, y reducir los costos de investigación, diseño y pruebas de un nuevo producto. Facilidad de diseño, en la mayoría de las FPGAs se pueden encontrar funciones de alto nivel (como sumadores y multiplicadores) embebidas en la propia matriz de interconexiones, así como bloques de memoria. Mayor densidad de los elementos lógicos programables en puertas lógicas equivalentes, en el orden de cientos de miles hasta millones de ellas, que otras tecnologías. Mayor flexibilidad debido a su arquitectura y la enorme libertad disponible en la interconexión.

25 11 Las desventajas que poseen los FPGAs en el área de diseño de circuito digital son las siguientes [15] : Son generalmente más lentos. No pueden soportar diseños muy complejos. Consumen más energía. 2.4 Flujo de diseño mediante FPGAs utilizando las herramientas de Xilinx La figura muestra el diagrama de flujo para el diseño de sistemas implementados sobre FPGAs de Xilinx. El proceso de diseño se divide en cuatro fases: descripción del modelo, síntesis, implementación y programación [8]. Figura 2.6: Flujo de diseño mediante FPGAs [8] Al finalizar cada una de las fases es preciso comprobar la validez del diseño mediante simulación, utilizando distintos tipos de simulación en cada una de ellas [11] : Simulación funcional RTL para validar el modelo creado. Simulación funcional post-síntesis a nivel de puertas para validar el modelo sintetizado. Simulación temporal post-implementación para validar la implementación del modelo implementado.

26 12 Verificación en circuito. El banco de pruebas creado para validar el modelo es único, siendo utilizado en todos los tipos de simulación mencionados. Las dos últimas son simulaciones a nivel de puertas, ya que el diseño esta expresado como una descripción estructural HDL en términos de las celdas de la tecnología destino para la que se va a implementar. Creación del modelo El primer paso consiste en crear un modelo RTL del diseño que se pretende realizar. Para ello se puede utilizar: Un lenguaje de descripción de Hardware HDL ( Hardware Description Language ) como: Verilog, VHDL y ABEL. Un esquemático. El diseño puede contener: Código HDL genérico que describe lógica independiente de la tecnología donde se va a implementar. Componentes con instancias propias de la arquitectura del dispositivo en el que se va a implementar. Para el caso de utilización de componentes propios de la arquitectura del dispositivo el sintetizador obtiene la descripción de dichos componentes de la biblioteca de celdas de la tecnología destino. El formato de esta biblioteca dependerá de la herramienta de síntesis utilizada. Antes de proceder a la síntesis del diseño es preciso verificar el modelo creado mediante una simulación funcional la cual se puede construir con Test Bench Wave Form Editor (Editor de Formas de Onda de Prueba) de Xilinx. También se pueden crear archivos con restricciones temporales o espaciales para la síntesis. Síntesis del modelo

27 13 Una vez validado el modelo creado se procede a la síntesis de éste para lo cual se utiliza la herramienta de síntesis de Xilinx: XST [18]. El resultado de la síntesis es una lista de conexiones en formato NGC propio de Xilinx (anteriormente XNF). Si en el proceso de síntesis se fijan restricciones de diseño (topológicas o temporales) que afectan al proceso de implementación éstas se exportan en la propia lista de conexiones. Para comprobar los resultados de la síntesis es preciso realizar una simulación funcional (retardos unitarios) a nivel de puertas. El procedimiento a seguir es similar a la simulación funcional RTL. Implementación del modelo Una vez sintetizado el diseño se procede a su implementación. La implementación en Xilinx consta de cuatro pasos [18] : 1. Traslate Traducción: En esta fase, se enlazan los ficheros de lista de conexiones (EDIF, NGC, XNF) creando un único fichero de salida en el que queda reflejada la jerarquía citada. El formato de este fichero de salida se denomina: NGD (Native Generic Design) y contiene componentes lógicos: puertas lógicas, biestables, RAMs, etc. 2. Map Mapeo: En esta etapa se mapean los componentes lógicos en los componentes físicos de que dispone la FPGA: tablas LUT, biestables, buffers triestado, etc. A continuación se encapsulan estos componentes físicos en bloques configurables (CLBs e IOBs), creando un fichero de salida en formato NCD (Native Circuit Design). 3. Place and Route Posicionamiento y Ruteo: En esta etapa se pasa a realizar el posicionamiento e interconexión de los bloques configurables en el FPGA y se genera un fichero de lista de conexiones en formato NCD. Una vez finalizado este proceso se dispone de toda la información de retardos internos (elementos activos e interconexiones) y se puede realizar de nuevo un análisis estático de tiempos esta vez con todos los datos de retardos internos. Después de realizar estas fases se obtiene la información para realizar simulaciones temporales del diseño completo y se puede

28 14 crear un archivo HDL estructural con base en los componentes físicos de la FPGA y un fichero SDF con los retardos internos del FPGA. Utilizando estos ficheros se puede realizar la verificación del diseño final mediante una simulación temporal HDL post-síntesis. 4. Programming File Generation Generación del archivo de programación: Finalmente en esta fase se genera el fichero BIT de configuración de la FPGA. Programación Una vez que se genera el archivo BIT se procede a configurar el dispositivo. Durante la configuración se descargan los archivos de programación desde una computadora anfitriona al dispositivo FPGA de Xilinx. 2.5 Introducción a la codificación de predicción lineal (LPC) de la voz humana Este método de predicción lineal se utiliza para el análisis y síntesis de la voz humana. Este modelo supone que el tracto vocal se puede describir de la siguiente forma [3] : Frecuencia del Pitch Generador de pulsos periódicos Selector de voz con o sin sonido Filtro IIR todo polos Señal de voz Generador de Ruido Blanco Figura 2.7: Modelo del tracto vocal [3] El filtro lineal IIR todo polos, tiene la siguiente función de transferencia: H ( z) = G M (1) i 1 a z i i= 1

29 15 Donde i es el número de polos, G la ganancia del filtro y a i son los parámetros de los polos. A este filtro se le conoce también como filtro LPC (Lineal Predictive Coding) [18]. Existen dos funciones de excitación mutuamente exclusivas que modelan los sonidos con voz (periódica con periodo igual al pitch) y los sonidos sin voz (ruido blanco). Se supone que cada muestra es una combinación lineal de las muestras anteriores. Los coeficientes del filtro se calculan para minimizar el error cuadrático entre la muestra actual y su predicción. Se trabaja sobre bloques de 20 ms de voz, sobre lo que se conoce como modelo corto, donde las características de la voz se suponen que no varían con el tiempo en intervalos pequeños. Esos bloques se analizan para determinar los coeficientes de predicción. Estos se cuantifican y se envían al receptor junto con otros parámetros. Los parámetros que se envían son: los coeficientes del filtro (coeficientes de predicción y ganancia), la intensidad de la excitación, un bit que indica si la excitación es un sonido sin voz ó un sonido con voz, y, en caso de ser este último, la frecuencia de la excitación del formante (pitch) [3]. Figura 2.8: Esquema de codificación LPC [3] Con esta información el decodificador puede reconstruir la señal fuente, la cual hace pasar por el filtro, obteniéndose la voz sintetizada. En el decodificador, los sonidos con voz se obtienen al pasar una serie de impulsos periódicos con la misma frecuencia e intensidad de la formante por el filtro (caracterizado por los coeficientes de predicción). Los sonidos sin voz se obtienen al pasar por el filtro ruido aleatorio con la amplitud de la excitación [3].

30 16 Figura 2.9: Esquema de decodificación LPC [3] Típicamente, el periodo del pitch requiere 6 bits y el parámetro de la ganancia se puede representar con 5 bits. Los coeficientes de predicción requieren entre 8 y 10 bits por coeficiente para una representación precisa. Si se utiliza un modelo de décimo orden el número de bits asignado por segmento es 82, con segmentos de 20ms se obtiene un bit rate de 4,6 kbps que es muy bajo con respecto a PCM (64Kbps), donde se observa la compresión que se obtiene con este procesamiento [3]. Hoy día se puede codificar la voz con LPC a velocidades entre 2.4 y 4.8 kbps con una señal de voz reconstruida con una calidad razonable. LPC basa su funcionamiento en dos tipos de sonidos: con voz y sin voz, sin embargo otros tipos de sonidos existentes no se pueden reproducir con este método, resultando esto en la producción de una voz artificial y es imposible reconocer, a partir de la voz sintetizada, a la persona que la origina [10].

31 CAPÍTULO 3: Planteamiento de un procedimiento basado en herramientas de código abierto En la sección 1.4, se presentó el flujo de diseño de los FPGA de Xilinx. Este procedimiento presenta ciertamente varias ventajas: Estabilidad: las herramientas que se utilizan han sido ampliamente probadas y se encuentran en una etapa estable donde es difícil encontrar un error de programación y el fabricante provee soporte en caso de encontrar alguna falla. Optimización: las herramientas fueron diseñadas por el fabricante para obtener el máximo provecho de las capacidades del FPGA. Sin embargo, está claro que el procedimiento fue concebido para FPGAs de la marca Xilinx, de donde surgen las siguientes desventajas: Falta de compatibilidad y portabilidad: las herramientas se diseñaron específicamente para FPGAs de Xilinx, durante las diferentes etapas del flujo se generan archivos con formatos propietarios, esto impide que los resultados se puedan utilizar con otras herramientas EDA de otro fabricante y que los diseños no se puedan redireccionar a otras marcas o tecnologías. Falta de flexibilidad: no es posible modificar las herramientas para obtener nuevos resultados durante el flujo de diseño. Desde el punto de vista académico no permite que la Universidad desarrolle y aporte conocimientos en esta área. El estudiante aprende solo a desarrollar circuitos digitales para FPGAs de Xilinx. A partir de estas desventajas se plantea un procedimiento para diseño e implementación de circuitos digitales concebido en forma generalizada, en el cual sea posible seleccionar la tecnología en la cual se va a implementar el diseño y que los resultados obtenidos durante el proceso sean estándares de la industria que provean de portabilidad y flexibilidad. Además este procedimiento debe permitir que el estudiante pueda realizar modificaciones y mejoras a las herramientas. Bajo estas ideas se presenta el siguiente flujo de diseño: 17

32 18 Creación del Diseño Compilación (Icarus Verilog) Simulación Funcional (Icarus Verilog - GTK Wave) Síntesis (Icarus Verilog) VLSI ASIC s CPLD FPGA Simulación Lógica (Icarus Verilog / GTK Wave) Verificación Temporal (GTK Wave) Xilinx Implementación (Xilinx WebPack) Programación (Xilinx WebPack) Altera, Amtel, Actel,Lattice, otros Verificación en circuito Figura 3.1 Flujo de diseño basado en herramientas EDA de código abierto El flujo se inicia con una etapa de diseño, compilación y simulación funcional. Se crea un modelo ideal independiente de la tecnología donde vaya a implementar el circuito digital. En la etapa de síntesis se presenta la principal característica del flujo, donde es posible seleccionar la tecnología para implementar el proyecto. En esta etapa de síntesis se decide la tecnología en la que se va a implementar el proyecto y se realiza el proceso mediante las especificaciones de la tecnología seleccionada. Una vez que se obtenga la síntesis del diseño, se continuará con los pasos necesarios para la implementación física que dependerá de la tecnología seleccionada.

33 19 Como se observa en la figura 3.1, se seleccionaron dos herramientas EDA para el desarrollo de este flujo: Icarus Verilog y GTKWave. Estas herramientas se seleccionaron ya que satisfacían las necesidades del procedimiento planteado. Icarus Verilog es una herramienta de simulación y síntesis de Verilog, lenguaje de HDL estándar (IEEE-1364). Para el proceso de síntesis utiliza un formato estándar llamado EDIF independiente de la tecnología. También permite la generación de archivos VCD, un formato estándar especificado en IEEE-1364 para análisis de modelos de simulación de Verilog. GTKWave es un analizador de formas de ondas. Permite visualizar las formas de ondas de simulaciones en diferentes formatos, como el formato VCD. Esta herramienta complementa a Icarus Verilog para simulaciones funcionales, lógicas y temporales. Ambas herramientas son de código abierto y están asociadas al proyecto de herramientas EDA open source: geda. Está condición da la libertad a la UCR para modificar y mejorar las herramientas con el fin de conseguir una mayor eficiencia y aportar en la automatización del desarrollo de circuitos digitales. Ambas herramientas, se encuentran disponibles para: Windows, Linux y otras plataformas. Sin embargo estas herramientas poseen ciertas debilidades como toda herramienta de código abierto: Estas herramientas no poseen soporte y se utilizan bajo propio riesgo. No están completamente terminadas y es posible encontrar errores de programación. Este proyecto utiliza las herramientas de forma exhaustiva para verificar que tienen la capacidad para desarrollar circuitos digitales de cualquier tipo y tamaño. Para cumplir con este propósito se seleccionó el desarrollo de un codificador/decodificador de voz que utiliza el modelo de predicción lineal de la voz humana. Esta aplicación contaba con las condiciones necesarias de tamaño y complejidad para estresar las herramientas y revelar sus limitaciones.

34 20 Como primer paso, en este proyecto se utilizó este procedimiento y las herramientas para la tecnología FPGA de Xilinx para comprobar que se puede llegar a resultados equivalente a los obtenidos con las herramientas propias del fabricante. En lo posterior, se presentan los resultados obtenidos en cada etapa del procedimiento y que permitieron elaborar la guía presentada en el apéndice E. Esta guía documenta con detalle cada paso del flujo y el uso de las herramientas Icarus Verilog y GTKWave. Además se explican las limitaciones y las soluciones a los errores que se pueden presentar durante el proceso.

35 CAPÍTULO 4: Diseño del codificador/decodificador de voz En este capítulo se presenta en alto nivel la arquitectura del codificador/decodificador de voz que se diseñó para ejecutar el procedimiento planteado. Se revisan las características, los componentes y los flujos principales del diseño. Para mayor detalle se puede revisar el apéndice A y los archivos de Verilog adjuntados. 4.1 Descripción general Se diseñó un codificador/decodificador de voz, que permite realizar grabaciones de voz por ocho minutos y hacer reproducciones mediante dos tipos de codificaciones: PCM y codificación predictiva lineal (LPC). La voz es filtrada mediante un filtro pasivo RC de un polo para limitar el ancho de banda y muestreada de forma uniforme a una frecuencia de muestreo de 8kHz (satisface el teorema de Nyquist). Se utilizaron 14 bits para la conversión analógica-digital y las muestras se almacenaron en una memoria RAM dinámica. Para realizar la codificación predictiva lineal se utilizaron tramas de voz de 20 milisegundos y diez coeficientes de predicción lineal. Todos los cálculos se realizan en punto flotante en precisión simple (32bits) bajo el estándar IEEE 754. Para la reproducción se utilizaron 12 bits para la conversión digital-analógica y un retenedor de orden cero. 4.2 Componentes El codificador/decodificador de voz posee los siguientes componentes: Pre-amplificador programable, modelo LTC6912-1, marca Linear Technology. Convertidor analógico-digital, modelo LTC1407A-1, marca Linear Technology. Convertidor digital-analógico, modelo LTC2624, marca Linear Technology. Memoria RAM dinámica, modelo MT46V32M16, marca Micron. Oscilador de reloj, modelo SG-8002JF, marca EPSON. FPGA, modelo XC3S1600E-FG320-4, marca Xilinx 21

36 22 Todos estos elementos se encuentran interconectados en la tarjeta de desarrollo: Spartan-3E Starter-kit de Xilinx. Dentro del FPGA se desarrollaron los siguientes circuitos digitales que permitieron verificar el procedimiento planteado: Para control de interfaces y almacenamiento Controlador A/D Controlador Controlador de Controlador de Reproducciótica 160X32 Memoria RAM está- D/A Memoria Para codificación/decodificación predictiva lineal Controlador de Codificación voz pitch Sonido con/sin Detección del Coeficientes R Coeficientes LPC Filtro de análisis Filtro de síntesis Para cálculo en punto flotante en 32 bits (FPU) Sumador/Restador Multiplicador Divisor Raíz Cuadrada Tabla 4.1 Circuitos diseñados para el codificador/decodificador de voz A continuación se presenta un diagrama de bloques del diseño:

37 Diagrama de estados general Figura 4.1 Diagrama de bloques del diseño A continuación se presenta el diagrama estado general del codificador/decodificador de voz:

38 24 Reset S0 S1 S0: Estado Inicialización S1: Estado Listo S2: Estado Grabando S3: Estado Codificacion/Decodificación Automática S4: Estado Reproducción PCM Rotativa S5: Estado Reproducción LPC Rotativa S3 Listo si no Grabar? si S2 Memoria Llena? no Continuar? no si Reproducir? si Codificar? si no no S4 S5 Continuar? si Continuar? si no no Figura 4.2 Diagrama de estado general del diseño La señal Reset inicializa el sistema y se entra al estado S0 donde se inicializan las máquinas de estado y se configuran los dispositivos externos al FPGA. Cuando se termina esta fase se pasa en forma incondicional al S1 donde el sistema se encuentra listo para operar y se indica con la señal Listo. En este estado se revisan las señales Grabar y Reproducir. Si la señal Grabar está en alto, se pasa al estado S2 donde se graba y almacena las muestras de voz hasta que se llene la memoria o que se finalice la grabación bajando la señal Grabar. Inmediatamente se continúa al estado S3 donde se realiza una codificación predictiva lineal de las muestras, seguidamente se decodifican y se almacenan listas para reproducirse. Si la señal Reproducir está en alto, se revisa la señal Codificar. Si la señal Codificar esta en bajo, se pasa al estado S4 donde se reproduce la voz con la codificación PCM hasta que la señal Reproducir baje. Si la señal Codificar está en alto, se pasa al estado S5 donde

39 25 se reproduce la voz con la codificación LPC hasta que la señal Reproducir baje. Se reproduce en forma repetida hasta que la señal Reproducir baje. La señal Grabar tiene prioridad sobre la señal Reproducir si ambas están en alto al mismo tiempo. No es posible grabar y reproducir al mismo tiempo. 4.4 Descripción de los circuitos digitales A continuación se describen los circuitos digitales que se diseñaron: Para control de interfaces y almacenamiento: Controlador del convertidor analógico-digital Consiste en una máquina de estado y una asignación de registros, que inicializa y configura el pre-amplificador programable y el convertidor analógico-digital. Controla la frecuencia de muestreo a 8kHz de la señal de voz entrante y posee la interfaz para introducir las muestras de voz de 14 bits del convertidor A/D al FPGA. Controlador del convertidor digital-analógico Consiste en una máquina de estado y una asignación de registros, que inicializa y configura el convertidor digital-analógico. Controla la frecuencia de reproducción a 8kHz de la voz saliente y posee la interfaz para llevar las muestras de voz de 12 bits del FPGA al convertidor D/A. Controlador de memoria RAM dinámica Consiste en una máquina de estado y una asignación de registros, que inicializa y configura la memoria RAM dinámica para el almacenamiento de muestras de voz. Realiza el proceso de inicialización de la memoria. Controla los periodos de refrescamiento de la memoria. Permite realizar escrituras y lecturas de datos, solo un dato a la vez. Controlador de reproducción Consiste en una máquina de estado y una asignación de registros, posee la interfaz con las señales de control disponibles para el usuario. Se encarga de almacenar las muestras que provee el controlador de convertidor A/D en el banco 1 de la memoria RAM a través del controlador de memoria durante la grabación. Controla el controlador de codificación

40 26 para que se ejecute el procedimiento de predicción lineal. Durante la reproducción según la codificación seleccionada lleva las muestras del banco 1 (PCM) o 2 (LPC) de la DRAM al controlador de convertidor D/A. Memoria RAM estática 160X32 Consiste en una memoria Ram estática de 160x32, que permite el almacenamiento temporal de 160 muestras de voz en 32 bits, que corresponde a la trama de voz que es analizada. Posee una escritura sincrónica y una lectura asincrónica. Para codificación/descodificación predictiva lineal: Controlador de codificación. Consiste en una máquina de estado y una asignación de registros, que convierte tramas de voz de 20 ms (160 muestras a 8kHz) almacenadas en la memoria DRAM en 14 bits, al formato de punto flotante en 32 bits. Se encarga de mover cada trama de voz convertida a la memoria RAM estática para aplicarle el procedimiento LPC. Controla las máquinas de estado para realizar el procedimiento de codificación predictiva lineal, tanto la codificación como la decodificación. Sonido con/sin voz Consiste en una máquina de estado y una asignación de registros, que analiza la trama de voz en la memoria RAM estática con el procedimiento llamado Cruce por cero para determinar si la muestra de voz se caracteriza como un sonido con voz o sin voz. Se utiliza un umbral de 25 cruces para su identificación. Si el resultado es un sonido con voz, controla la máquina de estado Detección del pitch. Detección del pitch Consiste en una máquina de estado y una asignación de registros, que analiza la trama de voz en la memoria RAM estática con el procedimiento llamado AMDF (Average Magnitude Difference Function) para determinar el periodo del pitch de la muestra de voz. Coeficientes R: Cálculo de los coeficientes de autocorrelación

41 27 Consiste en una máquina de estado y una asignación de registros, que analiza la trama de voz en la memoria RAM estática y calcula los coeficientes de autocorrelación. Se obtienen 11 coeficientes. Esta máquina controla la máquina de estado Coeficientes LPC. Coeficientes LPC: Cálculo de los coeficientes de predicción lineal Consiste en una máquina de estado y una asignación de registros, que utiliza los coeficientes R de autocorrelación y calcula los 10 coeficientes de predicción lineal mediante el método Levinson-Durbin. Filtro de análisis Consiste en una máquina de estado y una asignación de registros, constituye el filtro de análisis del método LPC. Filtra la trama de voz en la memoria RAM estática y obtiene el error y la ganancia a partir de los coeficientes de predicción lineal. Filtro de síntesis Consiste en una máquina de estado y una asignación de registros, constituye el filtro de síntesis del método LPC. Utiliza los parámetros obtenidos para decodificar la trama de voz que fue analizada. Se construye el filtro mediante los coeficientes LPC y la ganancia. La entrada del filtro puede consistir en ruido gaussiano que se encuentra pre-almacenado en una ROM o una señal de pulsos con la frecuencia del pitch. La selección de la entrada se realiza con la detección de un sonido con/sin voz. Convierte los resultados obtenidos de 32 bits a 14 bits y lo almacenada en el banco 2 de la DRAM para reproducción. Para cálculo en punto flotante en 32 bits: Sumador/Restador/Multiplicador/Divisor/Raíz Cuadrada Consisten en una máquina de estado y una asignación de registros por cada operación aritmética, que ejecuta la operación correspondiente de dos operandos en 32 bits, excepto la raíz cuadrada que ocupa solo un operando de 32 bits. Se utiliza el estándar IEEE754 de precisión simple para realizar el cálculo de los resultados. El resultado es truncado y se da en el mismo formato que los operandos. Se puede ejecutar una operación a la vez. Las operaciones que generan overflows o los underflows se resuelven dando como resultado el numero más grande y el numero más pequeño respectivamente que permite el estándar. En el

42 caso de la división por cero se resuelve dando como resultado el número más grande posible Arquitectura de las máquinas de estado y de la asignación de registros Para el diseño de las máquinas de estado se utilizaron dos tipos de arquitectura: un flip-flop por estado ( One-hot ) y microprogramación. La arquitectura micro-programada se utilizó para los circuitos cuya frecuencia de reloj no era importante como el controlador A/D y D/A ya que la frecuencia de muestreo es muy baja. Para los demás circuitos se utilizó la arquitectura one-hot para obtener una frecuencia de reloj alta para el procedimiento de predicción lineal a cambio de más flip-flops por máquina y mayor consumo de potencia. Para la asignación de registros (datapath), se usó la siguiente arquitectura: Estado 0 Entrada 0 Estado 1 Entrada 1 Estado n Entrada n Figura 4.3 Arquitectura de la asignación de registros Protocolo de comunicación entre circuitos Para la comunicación entre circuitos digitales se utilizó un Full Handshake completamente sincrónico con el reloj de referencia como se muestra a continuación:

43 29 Figura 4.4 Protocolo de comunicación entre los circuitos Las máquinas se pueden utilizar si la señal listo está en alto. Se inician con la señal inicio. La máquina iniciada indica su estado ocupado bajando la señal listo y la máquina que la controla puede bajar la señal inicio. Cuando la máquina termina lo indica subiendo listo, todos los cambios se realizan en los flancos negativos del reloj de referencia Protocolo de cambio de estado y asignación de estado Se definió la siguiente convención: Todas las máquinas de estado cambian de estado en los flancos positivos del reloj de referencia y las asignaciones de los registros se realizan en los flancos negativos de reloj. A continuación se muestra la convención definida: Figura 4.5 Protocolo de cambio de estado y asignación de estado

44 CAPÍTULO 5: Compilación y Simulación Funcional En este capítulo se explica la forma en que se realizó la compilación y simulación funcional de los circuitos digitales descritos en Verilog por separado y después en conjunto. 5.1 Descripción en Verilog El diseño del codificador/decodificador de voz se describió en Verilog. La descripción se realizó en forma conductual y de forma jerárquica. Cada circuito se describió, en general, utilizando dos módulos de la siguiente forma: Figura 5.1 Estructura de la descripción en Verilog para los circuitos diseñados El primer módulo consiste en la máquina de estados con la arquitectura correspondiente y el segundo con la asignación de registros. A continuación se presenta los nombres de módulos en Verilog: Nombre del Circuito Módulos en Verilog Controlador A/D AD_controlador.v AD_registros.v Controlador D/A DA_controlador.v DA_registros.v Controlador de Memoria mem_controlador.v mem_registros.v Controlador de Reproducción repro_controladorv2.v repro_registros.v Controlador de Codificación CODE_controlador.v CODE_registros.v Sonido con/sin Voz Cruce_controlador.v Cruce_registros.v Detección del Pitch Pitch_controlador.v Pitch_registros.v Coeficientes R R_controlador.v R_registros.v Coeficientes LPC C_controlador.v C_registros.v Filtro de Análisis FG_controlador.v FG_registros.v Filtro de Síntesis FPR_controlador.v FPR_registros.v Sumador/Restador microcontrolador.v asignacion_registros.v Multiplicador multiplicador_controlador.v multiplicador_registros.v Divisor divisor_controlador.v divisor_registros.v 30

45 31 Raíz Cuadrada raiz_controlador.v raiz_registros.v ROM de Ruido ruido.v Memoria RAM Estática 160x32 ram.v Tabla 5.1 Nombre de los módulos en Verilog para cada circuito La estructura jerárquica que se estableció fue la siguiente: Controlador A/D Controlador D/A Controlador de Memoria Controlador de Memoria Controlador de Reproducción Controlador de Codificación Filtro de análisis Módulo principal Módulo FPU Módulo Coeficientes R y LPC Módulo Sonido y Pitch Filtro de síntesis Sumador/ Restador Multiplicador Divisor Raíz Cuadrada Coeficientes R Coeficientes LPC Sonido con/sin Voz Detección del Pitch ROM Ruido Figura 5.2 Estructura jerárquica establecida para el proyecto En un principio la descripción en Verilog se realizó con las reglas básicas que se deben respetar para cualquier proceso de síntesis en Verilog. A continuación se mencionan [6] : No modificar una variable en dos procesos diferentes. En una asignación procedural, todas las variables de las que dependa la asignación deben aparecer en la lista de sensibilidad, para evitar inferencia equivocada de latches. No realizar asignaciones al mismo tiempo donde una depende de la otra. No se admiten procesos initial. No se admiten algunos operadores como la división. En esta etapa se utilizaron estas reglas con el fin de asegurar una síntesis exitosa. Posteriormente se encontraron problemas con el sintetizador de Icarus Verilog donde se tuvo que modificar la descripción en Verilog y el diseño para resolverlos. La estructura jerárquica establecida permitió aislar fácilmente los problemas.

46 En el capítulo 6, se hace una caracterización del sintetizador en Icarus Verilog y se discute las limitaciones y problemas que se encontraron en la herramienta Etapa de Compilación y Simulación Funcional En esta etapa se comprobó en forma individual y grupal que los módulos en Verilog no tuvieran ningún error de sintaxis y alguna directiva no soportada por Icarus Verilog. Para este proyecto se utilizó la versión 8.6 para Windows. Todos los comandos se ejecutaron en la consola, como por ejemplo para la compilación del circuito completo: %iverilog o REP.vvp c REP.prj Donde iverilog invoca a la herramienta Icarus Verilog, REP.prj es el nombre del archivo con las direcciones a los archivos fuente.v y la opción -o define el nombre del archivo que va a contener el ejecutable de simulación que este caso se va a llamar REP.vvp Simulación funcional La simulación funcional verifica que la descripción en Verilog del circuito digital sea la correcta y que su comportamiento funcional satisface las especificaciones. Para realizar las simulaciones funcionales se utilizó el siguiente esquema: Figura 5.3 Esquema jerárquico para simulación funcional Se creó un módulo llamado banco de pruebas para cada circuito diseñado. De esta forma todas las sentencias que tenían que ver con la simulación quedaron definidas dentro de este módulo y posteriormente se utilizó solo el módulo con el diseño para el proceso de síntesis. Cada banco de pruebas posee un conjunto de estímulos que simula el entorno alrededor del circuito. Se ejercitó cada circuito por separado para comprobar su funcionalidad de

47 33 forma ideal ya que no emplearon retardos temporales, esto para que las simulaciones durante la implementación coincidieran. Para los circuitos de control de interfaces y almacenamiento, los bancos de pruebas se desarrollaron de forma tal que simularan el comportamiento del dispositivo externo. En el caso de la memoria DRAM se utilizaron las descripciones en Verilog que provee el fabricante, Micron, que facilitó y aseguró la simulación funcional del controlador de memoria. Para cada circuito se obtuvo un archivo VCD y se utilizó para comprobar que los cambios de estados y las asignaciones a registros fueran correctos en la simulación. Figura 5.4 Simulación funcional del controlador de memoria DRAM en GTKWave Para los circuitos de cálculo en punto flotante en 32 bits (FPU) se emplearon pruebas para ejecutar operaciones con casos esquinas básicas y conjuntos de operaciones aleatorias. No se hizo una validación exhaustiva puesto que se salía de los objetivos del proyecto. Para las pruebas con operaciones aleatorias se utilizó Matlab para generar los archivos binarios en precisión simple y se consideró como el resultado ideal. Sin embargo los resultados de Matlab eran redondeados a diferencia de los circuitos diseñados cuyo resultado es truncado. Por lo que en los resultados de las simulaciones se aceptaron errores por redondeo con respecto al resultado ideal (Matlab). A continuación se muestra los resultados de las simulaciones para el divisor:

48 34 Figura 5.5 Simulación funcional del divisor de 32bits Similarmente, para los circuitos de codificación/decodificación predictiva lineal se desarrollaron bancos de pruebas que utilizaban tramas de 20ms de señales senoidales. Además de las simulaciones individuales, se desarrollaron dos simulaciones intermedias: Los circuitos de predicción predictiva lineal en conjunto para comprobar el algoritmo LPC. Los circuitos de interfaz y almacenamiento en conjunto para comprobar la grabación, almacenamiento y reproducción. Finalmente se realizó una simulación del circuito completo para comprobar el funcionamiento global del sistema. Para este tipo de simulaciones se tuvo que limitar los niveles en las jerarquías de los módulos que se iban a acceder para la creación del archivo VCD, ya que el archivo se volvía muy grande debido a la duración de la simulación y la cantidad de señales por jerarquía. También, para disminuir el tiempo y tamaño de la simulación se utilizaron tramas de voz pequeñas, se aumentó la frecuencia de muestreo y solo se simuló una trama a la vez por simulación. Según el tamaño del archivo VCD (entre 0.5 y 1 GB), así duraba la aplicación GTKWave en abrirlo y se veía limitado por la memoria de la computadora donde se corría la aplicación (para el proyecto se utilizó una computadora portátil con 1 GB de memoria RAM, un procesador Pentium M de 1.8 GHz).

Laboratorio de Diseño de Sistemas Digitales

Laboratorio de Diseño de Sistemas Digitales Proceso de Diseño Laboratorio de Diseño de Sistemas Digitales I Semestre 2008 Ing. Gabriela Ortiz L. Diseño Implementación Depuración Diseño: Concepto inicial. Cuál es la función que lleva a cabo el objeto?

Más detalles

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE Los FPGA fueron introducidos por Xilinx en la mitad de 1980. Ellos difieren de los CPLDs en la arquitectura, por su tecnología de almacenamiento, número

Más detalles

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas. Que es una FPGA? Las FPGA s (Field Programmable Gate Array) Son dispositivos lógicos de propósito general programable por los usuarios, compuesto de bloques lógicos comunicados por conexiones programables.

Más detalles

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES ANTECEDENTES En los últimos diez años la industria electrónica ha tenido una gran evolución en el desarrollo de sistemas digitales; desde computadoras personales, sistemas de audio y vídeo hasta dispositivos

Más detalles

Metodologías de diseño de hardware

Metodologías de diseño de hardware Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción

Más detalles

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Clase 4: FPGAs Por: Nelson Acosta & Daniel Simonelli UNICEN - Tandil - 1999 1 Implementación de Sistemas Procesador convencional. Economico, conjunto

Más detalles

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. Filtros Digitales Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. En electrónica, ciencias computacionales y matemáticas, un filtro

Más detalles

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones Introducción Simple PLDs Complex PLDs FPGAs Diseño tradicional: basado en CIs estándar SSI/MSI Obtención de la función lógica Reducción a términos producto Minimización: Número de integrados Retardo de

Más detalles

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar Temario Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación Ejemplos

Más detalles

Laboratorio 4: Uso de una FPGA

Laboratorio 4: Uso de una FPGA Laboratorio 4: Uso de una FPGA Objetivos: Conocer y comprender la estructura interna de una FPGA y su tarjeta de desarrollo que será usada en el laboratorio, y los cuidados y recomendaciones para evitar

Más detalles

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) ELECTRÓNICA DIGITAL Tema 16 LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) IMPORTANCIA DE LOS ESQUEMAS Los circuitos y sistemas electrónicos digitales cuya complejidad es limitada, se pueden

Más detalles

5. Metodologías de diseño de un ASIC

5. Metodologías de diseño de un ASIC 5. Metodologías de diseño de un ASIC 5.1. Introducción 5.2. Gate Arrays 5.3. Standard Cells 5.4. Seas of Gates 5.5. Dispositivos programables FPGAs Dispositivos programables El diseño de circuitos integrados

Más detalles

Introducción a FPGAs. Contenido

Introducción a FPGAs. Contenido Introducción a FPGAs Dra. Claudia Feregrino cferegrino@inaoep.mx Contenido 1. FPGA 2. Arquitectura genérica 3. Celda lógica 4. Field Programmable 5. Cómo se programa un FPGA 6. Herramientas de diseño 7.

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

18. Camino de datos y unidad de control

18. Camino de datos y unidad de control Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los

Más detalles

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL N. E. Chávez Rodríguez*, A. M. Vázquez Vargas** *Departamento de Computación **Departamento de Procesamiento Digital de Señales

Más detalles

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción SISTEMAS ELECTRÓNICOS DIGITALES OQUE 2 CIRCUITOS DIGITALES CONFIGURAES (PARTE 3: Tema 1) CONJUNTO CONFIGURAE DE PUERTAS Clasificación y descripción Enrique Mandado Pérez María José Moure Rodríguez Circuito

Más detalles

TRANSMISION DIGITAL. PCM, Modulación por Codificación de Pulsos

TRANSMISION DIGITAL. PCM, Modulación por Codificación de Pulsos MODULACIÓN TRANSMISION DIGITAL La amplia naturaleza de las señales analógicas es evidente, cualquier forma de onda está disponible con toda seguridad en el ámbito analógico, nos encontramos con una onda

Más detalles

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006 Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006 Qué son los FPGAs? Matriz de bloques lógicos configurables (CLB) y una matriz de interconexión. Los bloques lógicos

Más detalles

Plan de estudios ISTQB: Nivel Fundamentos

Plan de estudios ISTQB: Nivel Fundamentos Plan de estudios ISTQB: Nivel Fundamentos Temario 1. INTRODUCCIÓN 2. FUNDAMENTOS DE PRUEBAS 3. PRUEBAS A TRAVÉS DEL CICLO DE VIDA DEL 4. TÉCNICAS ESTÁTICAS 5. TÉCNICAS DE DISEÑO DE PRUEBAS 6. GESTIÓN DE

Más detalles

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica) CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS 40 horas (15 horas teoría + 25 horas práctica) OBJETIVOS Aprendizaje del lenguaje VHDL para el diseño de sistemas digitales

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

1. Representación de la información en los sistemas digitales

1. Representación de la información en los sistemas digitales Oliverio J. SantanaJaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2005 2006 1. Representación de la información en los sistemas digitales Durante Hoy Los digital tipo muchos

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción Anexo A: FPGA Introducción Cuando se requiere del diseño de un sistema electrónico y surge la necesidad de implementar una parte con hardware dedicado son varias las posibilidades que hay. Una es un diseño

Más detalles

Reprogramación de módulos de control

Reprogramación de módulos de control Reprogramación de módulos de control Componentes de un computador. 1)Bloque de Entrada: Se denomina bloque de entrada a todos los circuitos que se encuentran como receptores de las diferentes señales que

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Curso Completo de Electrónica Digital

Curso Completo de Electrónica Digital CURSO Curso Completo de Electrónica Digital Departamento de Electronica y Comunicaciones Universidad Pontifica de Salamanca en Madrid Prof. Juan González Gómez Capítulo 4 CIRCUITOS COMBINACIONALES 4.1.

Más detalles

NANO GRABADOR OCULTO EXTENDED TS9680

NANO GRABADOR OCULTO EXTENDED TS9680 www.tacticalsecurity.net E-mail: info@tacticalsecurity.net NANO GRABADOR OCULTO EXTENDED TS9680 C CONTENIDO Página 1 El dispositivo... 2-3 2 Características técnicas... 4-5-6 3 Trabajando con el dispositivo...

Más detalles

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN Procesamiento de Vídeo en Tiempo Real Utilizando FPGA J. G. Velásquez-Aguilar, A. Zamudio-Lara Centro de Investigación en Ingeniería y Ciencias Aplicadas, Universidad Autónoma del Estado de Morelos, Cuernavaca,

Más detalles

DESCRIPCION DEL SITEMA MASTER.

DESCRIPCION DEL SITEMA MASTER. DESCRIPCION DEL SITEMA MASTER. ESTRUCTURA. El sistema MASTER (Sistema Modular para Control Adaptativo en Tiempo Real) se ha implementado en base a un computador compatible PC-AT, dotado de una tarjeta

Más detalles

Encuesta sobre utilización de la microelectrónica en la Argentina

Encuesta sobre utilización de la microelectrónica en la Argentina Encuesta sobre utilización de la microelectrónica en la Argentina Los dispositivos microelectrónicos forman el corazón de todo sistema electrónico de nuestros días. En ellos los circuitos alcanzan las

Más detalles

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software. ARQUITECTURA DE LAS COMPUTADORAS QUE ES UNA COMPUTADORA (UN ORDENADOR)? Existen numerosas definiciones de una computadora, entre ellas las siguientes: 1) Una computadora es un dispositivo capaz de realizar

Más detalles

GUÍA DE ADMINISTRACIÓN SALA DE SISTEMAS

GUÍA DE ADMINISTRACIÓN SALA DE SISTEMAS 2013 GUÍA DE ADMINISTRACIÓN SALA DE SISTEMAS Universidad del Valle Sede Yumbo GA 02 REGYU V 02-2013 Elaborado por: Tecnología Sistemas Sede Yumbo Revisado por: José Luis López Marín Jesús Alberto González

Más detalles

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Qué es una Red? Es un grupo de computadores conectados mediante cables o algún otro medio. Para que? compartir recursos. software

Más detalles

Figura 1: Símbolo lógico de un flip-flop SR

Figura 1: Símbolo lógico de un flip-flop SR FLIP-FLOPS Los circuitos lógicos se clasifican en dos categorías. Los grupos de puertas descritos hasta ahora, y los que se denominan circuitos lógicos secuenciales. Los bloques básicos para construir

Más detalles

Tarjeta de aplicación para circuito de voz de 60 seg

Tarjeta de aplicación para circuito de voz de 60 seg .mx Tarjeta de aplicación para circuito de voz de 60 seg Dispositivo: APR9600, PCB-744 Nota de Aplicación numero 5 Documentos asociados: RESUMEN. En la actualidad el manejo de los circuitos de APLUS se

Más detalles

Informe final Proyecto de Innovación Docente ID11/129. Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital

Informe final Proyecto de Innovación Docente ID11/129. Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital Informe final Proyecto de Innovación Docente ID11/129 Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital Participantes: Beatriz García Vasallo Raúl Rengel Estévez Miguel Ángel

Más detalles

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática. 6.002 Circuitos electrónicos Otoño 2000

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática. 6.002 Circuitos electrónicos Otoño 2000 Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática 6.002 Circuitos electrónicos Otoño 2000 Tarea para casa 11 Boletín F00-057 Fecha de entrega: 6/12/00 Introducción

Más detalles

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT)

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT) COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT) Centro CFP/ES COMUNICACIÓN I2C 1 VENTAJAS DE LA COMUNICACIÓN I2C COMPARATIVA ESTANDAR DE TRANSMISIÓN 2 DISPOSITIVOS I2C DISPOSITIVOS I2C MAX518 3 DISPOSITIVOS

Más detalles

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC. TESIS DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC. DIRECTOR DE TESIS.- Ing. Francisco Novillo AUTOR Walter Mestanza Vera. Egresado

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa SUMADOR BINARIO INITE, S.C. no es responsable del contenido, de la veracidad de los datos, opiniones y acontecimientos vertidos en el presente caso práctico. La finalidad del presente es el desarrollo

Más detalles

Electrónica Digital II

Electrónica Digital II Electrónica Digital II M. C. Felipe Santiago Espinosa Aplicaciones de los FPLDs Octubre / 2014 Aplicaciones de los FPLDs Los primeros FPLDs se usaron para hacer partes de diseños que no correspondían a

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Capitulo I. Introducción

Capitulo I. Introducción Capitulo I. Introducción 1.1 Descripción del trabajo El ser humano, como todos sabemos tiene la necesidad de comunicarse, de ser escuchado y sobretodo interactuar con los demás seres vivos que lo rodean.

Más detalles

MEMORIAS DE SEMICONDUCTORES

MEMORIAS DE SEMICONDUCTORES MEMORIAS DE SEMICONDUCTORES Se ha visto anteriormente que un registro (latch o flip-flop) puede almacenar un bit. Para almacenar una gran cantidad de bits, se recurre al uso de memorias. Una memoria, en

Más detalles

Fundamentos del diseño 3ª edición (2002)

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

Más detalles

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM Breve Curso de VHDL M. C. Felipe Santiago Espinosa Profesor Investigador UTM Noviembre de 2007 1 Orden del curso 1. Introducción al diseño con VHDL. 2. Unidades de diseño en VHDL. 3. Señales. 4. Especificación

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo es Internet: se trata

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño Introducción Fabricantes Elevada complejidad Facilitar tareas de diseño Herramientas CAD DESCRIPCIÓN GRÁFICA DEL MODELO DE DISEÑO DE SISTEMAS COMPLEJOS Proceso de diseño Simplificado Antes de realizar

Más detalles

CELERINET ENERO-JUNIO 2013 ESPECIAL

CELERINET ENERO-JUNIO 2013 ESPECIAL 70 Seguridad en Voz sobre Redes de Datos Juan Carlos Flores García UANL-FCFM Universidad Autónoma de Nuevo León Facultad de Ciencias Físico Matemáticas San Nicolás de los Garza, Nuevo León, México Resumen:

Más detalles

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL Capítulo 3 Codificadores Codificadores binarios y codificadores de prioridad. Codificadores de 3 a 2 líneas y de 4 a dos líneas. Detector

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

REGISTROS DE DESPLAZAMIENTO

REGISTROS DE DESPLAZAMIENTO REGISTROS DE DESPLAZAMIENTO Es un circuito digital que acepta datos binarios de una fuente de entrada y luego los desplaza, un bit a la vez, a través de una cadena de flip-flops. Este sistema secuencial

Más detalles

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS Fundamentos de Computadores. Sistemas Secuenciales. T7-1 INDICE: Tema 7. SISTEMAS SECUENCIALES INTRODUCCIÓN SISTEMAS SECUENCIALES SÍNCRONOS TIPOS DE BIESTABLES o TABLAS DE ECITACIÓN DE LOS BIESTABLES o

Más detalles

TEMA 4. Unidades Funcionales del Computador

TEMA 4. Unidades Funcionales del Computador TEMA 4 Unidades Funcionales del Computador Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción El elemento físico, electrónico o hardware de un sistema

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA Experimental III: Introducción a la Microfabricación y FPGA - Instituto Balseiro Mauricio Tosi Diciembre de 2013 Resumen

Más detalles

Nociones básicas sobre adquisición de señales

Nociones básicas sobre adquisición de señales Electrónica ENTREGA 1 Nociones básicas sobre adquisición de señales Elaborado por Juan Antonio Rubia Mena Introducción Con este documento pretendemos dar unas nociones básicas sobre las técnicas de medida

Más detalles

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP Visual Sale posee módulos especializados para el método de ventas transaccional, donde el pedido de parte de un nuevo cliente

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Conmutación. Conmutación telefónica. Justificación y definición.

Conmutación. Conmutación telefónica. Justificación y definición. telefónica Justificación y definición de circuitos de mensajes de paquetes Comparación de las técnicas de conmutación Justificación y definición. Si se atiende a las arquitecturas y técnicas utilizadas

Más detalles

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León Programa. Introducción. 2. Elementos de almacenamiento. 3. Elementos de proceso. 4. Elementos de interconexión.

Más detalles

Memoria de actividades: Participación en actividades concernientes al proyecto. Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico

Memoria de actividades: Participación en actividades concernientes al proyecto. Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico Memoria de actividades: Participación en actividades concernientes al proyecto Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico Rábade García, Manuel Rodrigo Ingeniería en Computación Facultad

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Tema 11: Instrumentación virtual

Tema 11: Instrumentación virtual Tema 11: Instrumentación virtual Solicitado: Tarea 09: Mapa conceptual: Instrumentación Virtual M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

IV. Implantación del sistema.

IV. Implantación del sistema. IV. Implantación del sistema. Para hablar sobre el proceso de desarrollo del sistema de Recuperación de Información Visual propuesto, empezaremos hablando del hardware utilizado, las herramientas de software

Más detalles

320098 - ED - Electrónica Digital

320098 - ED - Electrónica Digital Unidad responsable: 320 - EET - Escuela de Ingeniería de Terrassa Unidad que imparte: 710 - EEL - Departamento de Ingeniería Electrónica Curso: Titulación: 2015 GRADO EN INGENIERÍA DE SISTEMAS AUDIOVISUALES

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

INTRODUCCION A LOS SISTEMAS R.F.I.D.

INTRODUCCION A LOS SISTEMAS R.F.I.D. INTRODUCCION A LOS SISTEMAS RFID INTRODUCCION A LOS SISTEMAS R.F.I.D. Servicios Informáticos KIFER, S.L. Antxota Kalea, Nº. 1, Of. 2B. 20160 LASARTE - ORIA (GIPUZKOA) 1/8 www.kifer.es - kifer@kifer.es

Más detalles

punto, es que los criterios de evaluación de las medidas antes citadas se ajustan a las medidas señaladas para la toma del indicador VTD.

punto, es que los criterios de evaluación de las medidas antes citadas se ajustan a las medidas señaladas para la toma del indicador VTD. CONSULTA Para esta Comisión es muy importante conocer los comentarios sectoriales relacionados con el contenido del entregable presentado por la firma Iteco en el marco del Contrato 038 de 2014, para avanzar

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ ELECTRÓNICA DIGITAL DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ IES TRINIDAD ARROYO DPTO. DE ELECTRÓNICA ÍNDICE ÍNDICE... 1 1. LIMITACIONES DE LOS CONTADORES ASÍNCRONOS... 2 2. CONTADORES SÍNCRONOS...

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria Típica. Los datos almacenados en memoria tienen que pasar, en un momento

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

Sistemas Electrónicos Digitales. Práctica 1 Multiplicador de 8 bits secuencial con desplazamiento hacia la derecha

Sistemas Electrónicos Digitales. Práctica 1 Multiplicador de 8 bits secuencial con desplazamiento hacia la derecha Sistemas Electrónicos igitales Práctica de 8 bits secuencial con desplazamiento hacia la derecha Javier Toledo Moreo pto. Electrónica, Tecnología de Computadoras y Proyectos Universidad Politécnica de

Más detalles

PROCEDIMIENTO PARA PRUEBAS DE VALIDACION DE MODELOS MATEMATICOS DE UNIDADES GENERADORAS

PROCEDIMIENTO PARA PRUEBAS DE VALIDACION DE MODELOS MATEMATICOS DE UNIDADES GENERADORAS PROCEDIMIENTO PARA PRUEBAS DE VALIDACION DE MODELOS MATEMATICOS DE UNIDADES GENERADORAS 1. OBJETIVO Verificar la validez del modelo matemático de los sistema de control de las unidades generadoras del

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Autómatas Programables (PLC)

Autómatas Programables (PLC) Autómatas Programables (PLC) 1 Automatización industrial Utilización de técnicas y equipos para el gobierno de un proceso industrial, de tal forma que ese sistema funcione de forma autónoma, con poca o

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO SÍLABO ASIGNATURA: MICROELECTRÓNICA CÓDIGO: 8F0108 1. DATOS GENERALES 1.1. DEPARTAMENTO ACADÉMICO : Ing. Electrónica e Informática 1.2. ESCUELA PROFESIONAL : Ingeniería de Mecatrónica 1.3. CICLO DE ESTUDIOS

Más detalles

El Modelo de Referencia OSI

El Modelo de Referencia OSI El Modelo de Referencia OSI Tabla de Contenidos 2. El Modelo de Referencia OSI... 2 2.1 Nivel físico...4 2.2 Nivel de enlace... 4 2.3 Nivel de red... 5 2.4 Nivel de transporte...5 2.5 Nivel de sesión...

Más detalles

MODEMS y Telefonía. Función de una Central Analógica. Que es una Central telefónica

MODEMS y Telefonía. Función de una Central Analógica. Que es una Central telefónica MODEMS y Telefonía Preparado por Ing. Oscar Molina Loría Módems Instalación Típica. Voltaje de línea. Conexiones. Tramo interno Tramo externo Paralelos. Instalaciones Que es una Central telefónica Una

Más detalles

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica) Folleto de presentación Simulín Simulín Simulador de circuitos digitales para uso docente v5.60 (Julio 2014) Características Circuitos Combinacionales Puertas lógicas básicas (NOT, AND, OR, XOR, NAND,

Más detalles

Capítulo 1. 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado. Presentation_ID 2

Capítulo 1. 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado. Presentation_ID 2 Capítulo 1: Introducción a redes conmutadas Routing y switching Presentation_ID 1 Capítulo 1 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado 1.3 Resumen Presentation_ID 2 Capítulo 1: Objetivos

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

Capas del Modelo ISO/OSI

Capas del Modelo ISO/OSI Modelo ISO/OSI Fue desarrollado en 1984 por la Organización Internacional de Estándares (ISO), una federación global de organizaciones que representa aproximadamente a 130 países. El núcleo de este estándar

Más detalles

DISPOSITIVOS DE LÓGICA PROGRAMABLES EN CAMPO (FPGA)

DISPOSITIVOS DE LÓGICA PROGRAMABLES EN CAMPO (FPGA) DISPOSITIVOS DE LÓGICA PROGRAMABLES EN CAMPO (FPGA) DIGITAL II ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Preguntas a responder sobre FPGA Qué innovación

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE LOS COMPUTADORES I. TEMA 5 Introducción n a los Sistemas Digitales

ESTRUCTURA Y TECNOLOGÍA A DE LOS COMPUTADORES I. TEMA 5 Introducción n a los Sistemas Digitales ESTRUCTURA Y TECNOLOGÍA A DE LOS COMPUTADORES I TEMA 5 Introducción n a los Sistemas Digitales TEMA 5. Introducción n a los Sistemas Digitales 5.1 Sistemas Digitales 5.2 Sistemas Combinacionales 5.3 Sistemas

Más detalles

CAPITULO I El Problema

CAPITULO I El Problema CAPITULO I El Problema 1. CAPITULO I EL PROBLEMA. 1.1. PLANTEAMIENTO DEL PROBLEMA. Desde su nacimiento la Facultad de Administración, Finanzas e Informática dispone del departamento de la biblioteca, con

Más detalles

Tema 1: Sistemas de comunicación digital. Transmisión digital (I.T.T. Telemática)

Tema 1: Sistemas de comunicación digital. Transmisión digital (I.T.T. Telemática) Tema 1: Sistemas de comunicación digital Transmisión digital (I.T.T. Telemática) Introducción Se entiende por comunicación al proceso por el cual se transfiere información desde un punto llamado fuente

Más detalles