Modulo_Microelectronica_Versión1.pdf

August 30, 2017 | Author: Marisol Contreras Plazas | Category: Field Programmable Gate Array, Cmos, Electronics, Vhdl, Logic Gate
Share Embed Donate


Short Description

Download Modulo_Microelectronica_Versión1.pdf...

Description

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

   

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA

299008 - MICROELECTRÓNICA FAIBER ROBAYO BETANCOURT (Director Nacional)

PEDRO TORRES SILVA Acreditador

BOGOTÁ D.C Julio de 2009

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO

El presente módulo fue diseñado en el año 2009 por el Ing. Faiber Robayo Betancourt, tutor de la UNAD, y ubicado en el CEAD de Neiva, el Ing. Robayo es Ingeniero Electrónico, y maestrante en Ingeniería de Control Industrial, se ha desempeñado como tutor de la UNAD desde el 2005. Esta es la primera versión del módulo retroalimentándolo constantemente para mejorarlo.

y

se

espera

continuar

Este mismo año el Ing. PEDRO TORRES SILVA, Coordinador Nacional de Cadena de Formación en Electrónica, Telecomunicaciones y Audio, apoyó el proceso de revisión de estilo del módulo y dio aportes disciplinares, didácticos y pedagógicos en el proceso de acreditación de material didáctico desarrollado en el mes de JULIO de 2009.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

  ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA 

CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

INTRODUCCIÓN   "Los principios de la física, como yo lo veo, no hablan sobre la posibilidad de  maniobrar cosas átomo por átomo. Esto no es un intento de violar alguna  ley; es algo que en principio se puede hacer; pero en la práctica, no se ha  hecho porque somos demasiado grandes."  Richard Feynman (premio Nobel de física 1959) 

 

El objetivo de este libro es proporcionar una herramienta de ayuda didáctica que permita adquirir los conocimientos básicos de microelectrónica necesarios en los estudios de Ingeniería Electrónica, Telecomunicaciones y Audio. El libro ha sido dimensionado para que su contenido pueda ser impartido dentro de un ciclo o semestre. No pretende sustituir a otros libros de consulta ya muy arraigados en el campo de la electrónica, sino resumir los conocimientos de los dispositivos semiconductores e introducir algunos de los circuitos monolíticos más significativos que existen en el mercado. El alumno adquirirá un núcleo de conocimientos básicos con una fuerte componente práctica que constituirán una base idónea para abordar una futura especialización en cualquiera de los campos de la electrónica. Se parte de la idea de que el estudiante posee los conocimientos previos de las herramientas de análisis de circuitos lineales en las asignaturas de Electromagnetismo y Análisis de circuitos DC, Análisis de circuitos AC, Electrónica Básica, Amplificadores, Sistemas digitales Básico, Sistemas Digitales Secuenciales y CAD para Electrónica y/o Telecomunicaciones, y está familiarizado con los modelos y comportamiento circuital de los principales dispositivos electrónicos más importantes en los cursos mencionados en especial en Electrónica y Digitales. De esta manera el alumno pierde la idea del dispositivo como elemento aislado y lo estudia como elemento constitutivo de un circuito más complejo y en muchos casos de un sistema integrado. Este libro ha sido dotado de una estructura y organización adecuada que permita adquirir los conocimientos de forma lógica y ordenada. Para ello, ha sido dividido en tres Unidades didácticas temas de acuerdo a su contenido. La Unidad 1. Tecnología microelectrónica: donde se explicita la historia y las tendencias futuras en los procesos de fabricación de circuitos integrados. Se realiza un reconocimiento de saberes previos en semiconductores, circuitos NMOS y PMOS, transistores bipolares, dispositivos pasivos, estructuras lógicas y bloques analógicos básicos, sistemas digitales. Y se introduce en los principios básicos de diseño. Tecnología para la integración y los dispositivos programables. Unidad 2. Metodología de diseño: se plantea como se realiza un diseño de

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

  ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA 

CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

integración circuital. La utilización de software para la implementación de diseños y la realización de pruebas de los circuitos diseñados. Unidad 3. Utilización de dispositivos lógicos programables: se especifican las estrategias por el diseño de lógica programable y el uso de otros dispositivos, herramientas y proveedores. Al final de cada unidad se incluye un conjunto de problemas significativos que ayudan a la comprensión de los aspectos teóricos procurando utilizar valores prácticos de acuerdo a las especificaciones proporcionadas por el fabricante. Por ello, el libro incluye además un apéndice con las características de los principales dispositivos electrónicos que deben ser utilizadas en la resolución de algunos problemas con objeto de adquirir una idea de utilidad práctica de los valores de los parámetros de los dispositivos.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

INDICE DE CONTENIDO  UNIDAD 1............................................................................................................................................ 22  CAPÍTULO 1: INTRODUCCIÓN A LA MICROLECTRÓNICA Y PROCESOS DE FABRICACIÓN.................................................................................................................................. 24  LECCIÓN 1: BREVE  HISTÓRICA SOBRE LA MICROELECTRÓNICA........................ 24  EL PASADO DE LA ELECTRÓNICA .......................................................................................... 24  LA ELECTRÓNICA Y LOS SEMICONDUCTORES ................................................................ 25  LA MICROELECTRÓNICA Y EL SIGLO XX ............................................................................. 26  LECCIÓN 2: TENDENCIAS FUTURAS....................................................................................... 31  INTRODUCCIÓN .............................................................................................................................. 31  SMALLER ........................................................................................................................................... 31  FASTER, CHEAPER......................................................................................................................... 33  EL LÍMITE FÍSICO ............................................................................................................................. 34  CONCLUSIONES ............................................................................................................................. 39  AUTOEVALUACIÓN: ....................................................................................................................... 39  LECCIÓN 3: PROCESO DE FABRICACIÓN............................................................................. 40  FABRICACIÓN DE NMOS Y PMOS.............................................................................................. 40  FABRICACIÓN DE BJT Y FET ...................................................................................................... 42  MOSFET de empobrecimiento ......................................................................................................... 43  AUTOEVALUACIÓN......................................................................................................................... 45  LECCIÓN 4: BLOQUES ANALÓGICOS BÁSICOS................................................................. 46  AMPLIFICADOR OPERACIONAL IDEAL .................................................................................. 46  COMPORTAMIENTO EN CONTINUA (DC) ............................................................................... 47  COMPORTAMIENTO EN ALTERNA (AC).................................................................................. 47  CONFIGURACIONES ...................................................................................................................... 48  Comparador........................................................................................................................................ 48  Seguidor .............................................................................................................................................. 48  Inversor................................................................................................................................................ 49  Integrador ideal.................................................................................................................................. 51   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

APLICACIONES ............................................................................................................................... 52  ESTRUCTURA .................................................................................................................................. 52  PARÁMETROS ................................................................................................................................. 54  LIMITACIONES ................................................................................................................................. 54  Espejo de corriente........................................................................................................................... 56  AUTOEVALUACIÓN: ....................................................................................................................... 58  LECCIÓN 5: REGLAS DE DISEÑO ............................................................................................. 59  INTRODUCCIÓN ............................................................................................................................... 59  PROCESOS DE DISEÑO................................................................................................................. 62  TÉCNICAS DE DISEÑO MICROELECTRÓNICO ....................................................................... 66  AUTOEVALUACIÓN: ....................................................................................................................... 71  CAPÍTULO 2: REPASO DE ELECTRONICA DIGITAL .......................................................... 73  INTRODUCCION .............................................................................................................................. 73  LECCIÓN 1: PUERTAS LOGICAS............................................................................................... 73  PRIMERAS FAMILIAS LÓGICAS: C. I. CON TRANSISTORES BIPOLARES..................... 75  DESARROLLO DE LAS TECNOLOGÍAS MOS: FAMILIA CMOS.......................................... 77  PUERTAS LÓGICAS DE LA FAMILIA CMOS ............................................................................ 78  Inversores CMOS............................................................................................................................... 78  Compuerta NAND CMOS ................................................................................................................. 79  Compuerta NOR CMOS ................................................................................................................... 80  Compuertas AND Y OR .................................................................................................................... 81  AUTOEVALUACION ......................................................................................................................... 81  LECCIÓN 2: DIAGRAMAS DE TIEMPOS, RETARDOS......................................................... 82  AUTOEVALUACION ......................................................................................................................... 83  LECCIÓN 3: CIRCUITOS COMBINACIONALES ..................................................................... 85  CIRCUITOS SUMADORES ............................................................................................................. 86  CODIFICADORES Y DECODIFICADORES................................................................................. 88  MULTIPLEXORES Y DEMULTIPLEXORES................................................................................ 93  CIRCUITOS COMPARADORES .................................................................................................... 97  GENERADORES/COMPROBADORES DE PARIDAD.............................................................. 98  AUTOEVALUACION ....................................................................................................................... 100   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: CIRCUITOS SECUENCIALES SINCRONOS Y ASINCRONOS Y MAQUINAS DE ESTADOS FINITO ........................................................................................... 101  CIRCUITOS LÓGICOS SECUENCIALES .................................................................................. 101  CONCEPTOS GENERALES DE LATCHES Y FLIP-FLOPS:................................................. 103  El Flip-Flop S-R (Set-reset) ............................................................................................................ 103  El flip-flop D....................................................................................................................................... 105  El flip-flop J-K.................................................................................................................................... 106  El Flip-Flop T (Toggle) .................................................................................................................... 107  REGISTROS ..................................................................................................................................... 108  CONTADORES ................................................................................................................................ 109  MAQUINA DE ESTADOS FINITOS ........................................................................................... 111  ESTRUCTURA ................................................................................................................................. 111  DISEÑO DE MAQUINAS DE ESTADO SINCRONIZADAS CON RELOJ ..................... 112  AUTOEVALUACION ....................................................................................................................... 114  LECCIÓN 5: RIESGOS O AZARES ........................................................................................... 115  AZARES ............................................................................................................................................ 115  AUTOEVALUACION ....................................................................................................................... 119  CAPÍTULO 3: TECNOLOGIAS PARA LA INTEGRACION DE CIRCUITOS .................. 120  INTRODUCCION ............................................................................................................................ 120  LECCIÓN 1: CIRCUITOS INTEGRADOS A MEDIDA (ASIC) DISPOSITIVOS LOGICOS PROGRAMABLES (PLD) ............................................................................................................. 120  ASIC ................................................................................................................................................... 121  DISPOSITIVOS LÓGICOS PROGRAMABLES ......................................................................... 121  Clases de Dispositivos Lógicos Programables ........................................................................... 123  Circuitos integrados a medida. .............................................................................................. 123  Matrices de puertas. ................................................................................................................ 124  Células normalizadas. ............................................................................................................. 124  FPICs. ................................................................................................................................................ 125  PLDs. ................................................................................................................................................. 125  ASPLDs............................................................................................................................................. 125  FPGAs. .............................................................................................................................................. 126  ARQUITECTURAS DE LOS DISPOSITIVOS LÓGICOS PROGRAMABLES (PLDS). ..... 127   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION....................................................................................................................... 130  LECCIÓN 2: DISPOSITIVOS LOGICOS PROGRAMABLES AVANZADOS (CPLD Y FPGA)................................................................................................................................................ 131  CPLD.................................................................................................................................................. 131  Matriz de Interconexiones Programables ........................................................................ 132  Bloques Lógicos ................................................................................................................... 132  Las familias MAX340 y MAX5000................................................................................................. 134  Macroceldas.......................................................................................................................... 134  Celda de entrada/salida ...................................................................................................... 136  FPGA...................................................................................................................................... 136  Antifuse .............................................................................................................................. 137  SRAM ................................................................................................................................. 137  Celdas Lógicas ..................................................................................................................... 137  AUTOEVALUACION...................................................................................................................... 140  LECCIÓN 3: CARACTERISTICAS ESPECIALES.................................................................. 141  Facilidad de diseño ....................................................................................................................... 141  Prestaciones ................................................................................................................................... 141  Fiabilidad.......................................................................................................................................... 141  Economía ......................................................................................................................................... 142  Seguridad......................................................................................................................................... 142  Consumo de corriente en los PLDs.......................................................................................... 143  AUTOEVALUACION....................................................................................................................... 144  LECCIÓN 4: DISPOSITIVOS ANALOGICOS PROGRAMABLES ..................................... 145  EVOLUCIÓN DE LOS FPAAs ...................................................................................................... 146  AUTOEVALUACION...................................................................................................................... 147  LECCIÓN 5: FAMILIAS DE DISPOSITIVOS ANALOGICOS .............................................. 148  FPAAs COMERCIALES.................................................................................................................. 148  Circuitos FPAAs de Lattice............................................................................................................. 148  Circuitos FPADs de Zetex .............................................................................................................. 150  Circuitos FPAAs de Anadigm......................................................................................................... 152  AN120E40 y AN220E04 ................................................................................................................. 154  AUTOEVALUACION...................................................................................................................... 155   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

ACTIVIDADES COMPLEMENTARIAS DE LA UNIDAD 1 .................................................. 156  FUENTES DOCUMENTALES DE LA UNIDAD 1 ...................................................................... 159  UNIDAD 2.......................................................................................................................................... 161  METODOLOGIAS DE DISEÑO.................................................................................................... 161  CAPÍTULO 4: METODOLOGIAS DE DISEÑO ....................................................................... 163  LECCIÓN 1: NIVELES DE ABSTRACCIÓN Y REPRESENTACIONES DE UN CIRCUITO MICROELECTRÓNICO .................................................................................................................. 163  DIAGRAMA DE LA ‘Y’ Y PROCEDIMIENTOS INVOLUCRADOS EN EL DISEÑO........... 165  AUTOEVALUACION....................................................................................................................... 168  LECCIÓN 2: VARIABLES DE DISEÑO PARA CADA NIVEL DE ABSTRACCIÓN........... 169  VARIABLES DE DISEÑO A NIVEL FÍSICO............................................................................... 169  VARIABLES DE DISEÑO A NIVEL ELÉCTRICO..................................................................... 170  VARIABLES DE DISEÑO A NIVEL LÓGICO/MACROMODELO .......................................... 171  VARIABLES DE DISEÑO A NIVEL DE ARQUITECTURA ..................................................... 172  AUTOEVALUACION....................................................................................................................... 173  LECCIÓN 3: DIAGRAMA DE FLUJO DE DISEÑO Y HERRAMIENTAS DE AYUDA AL DISEÑO ............................................................................................................................................. 174  Diseño descendente, diseño ascendente.................................................................................... 174  FLUJO DE DISEÑO TÍPICO EN ASIC’s..................................................................................... 176  AUTOEVALUACION....................................................................................................................... 178  LECCIÓN 4: EJEMPLO DE DISEÑO .......................................................................................... 179  AUTOEVALUACION....................................................................................................................... 186  LECCIÓN 5: COSTES DE LA FASE DE DISEÑO .................................................................... 187  COSTES DE PERSONAL .............................................................................................................. 187  COSTES DE HERRAMIENTAS DE DISEÑO............................................................................. 188  COSTES FIJOS ............................................................................................................................... 189  COSTES DE DIFERENTES ALTERNATIVAS DE DISEÑO DE CIRCUITOS INTEGRADOS ............................................................................................................................................................. 190  Full Custom ....................................................................................................................................... 190  Standard Cell .................................................................................................................................... 190  Gate Array ......................................................................................................................................... 191  FPGA.................................................................................................................................................. 191   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUCION.......................................................................................................................... 194  CAPÍTULO 5: LENGUAJES DE DESCRIPCION Y FORMATOS ...................................... 195  INTRODUCCION ............................................................................................................................ 195  LECCIÓN 1: MODELOS Y SIMULADORES FISICOS ............................................................ 195  MODELOS Y SIMULADORES ELÉCTRICOS........................................................................... 195  MODELOS Y SIMULADORES LÓGICOS .................................................................................. 200  AUTOEVALUACION....................................................................................................................... 202  LECCIÓN 2: VHDL BASICO ......................................................................................................... 203  HISTORIA ......................................................................................................................................... 203  CARACTERÍSTICA PRINCIPALES DE VHDL ......................................................................... 205  Modelo de estructura....................................................................................................................... 205  Modelo de concurrencia.................................................................................................................. 206  Modelo de tiempo............................................................................................................................. 208  UNIDADES BÁSICAS DE DISEÑO ............................................................................................. 210  Declaración de entidad ................................................................................................................... 211  Arquitectura....................................................................................................................................... 212  Configuración.................................................................................................................................... 215  Paquetes............................................................................................................................................ 216  Bibliotecas ......................................................................................................................................... 217  AUTOEVALUACION....................................................................................................................... 218  LECCIÓN 3: NIVELES DE DESCRIPCIÓN  VHDL ................................................................... 219  ETAPAS BÁSICAS EN EL PROCESO DE DISEÑO................................................................ 220  Definición de los requerimientos del diseño................................................................................ 220  Modelado del diseño en VHDL ...................................................................................................... 220  Simulación del Código Fuente....................................................................................................... 221  Síntesis, Optimización y Ajuste del diseño.................................................................................. 221  Síntesis .............................................................................................................................................. 221  Optimización ..................................................................................................................................... 221  Ajuste ................................................................................................................................................. 221  AUTOEVALUACION....................................................................................................................... 224  LECCIÓN 4: MODELOS Y SIMULADORES DE ALTO NIVEL .............................................. 225  AUTOMATIZACIÓN DEL DISEÑO MICROELECTRÓNICO................................................... 228   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Síntesis de alto nivel........................................................................................................................ 230  AUTOEVALUACION....................................................................................................................... 234  LECCIÓN 5: HERRAMIENTAS CAD .......................................................................................... 235  ENTORNOS EDA ............................................................................................................................ 238  TENDENCIAS FUTURAS EN CAD.............................................................................................. 239  AUTOEVALUACION....................................................................................................................... 240  CAPÍTULO 6: TEST DE CIRCUITOS INTEGRADOS ........................................................... 241  LECCIÓN 1: VALIDACIÓN Y PRUEBA DE CIRCUITOS INTEGRADOS......................... 241  PERTURBACIONES EN EL PROCESO DE FABRICACIÓN DE UN CIRCUITO INTEGRADO.................................................................................................................................... 242  AUTOEVALUACION...................................................................................................................... 244  LECCIÓN 2: PROCEDIMIENTO DE TEST ............................................................................... 245  AUTOEVALUACION...................................................................................................................... 246  LECCIÓN 3: DISEÑO PARA LA PRUEBA (DFT) .................................................................. 247  ASPECTOS DEL DFT ................................................................................................................... 247  Test ad hoc....................................................................................................................................... 248  Test scan-based.............................................................................................................................. 249  AUTOEVALUACION ............................................................................................................................. 251  LECCIÓN 4: DISEÑO BOUNDARY-SCAN .............................................................................. 252  Built-in Self-Test (BIST) ................................................................................................................ 252  AUTOEVALUACION...................................................................................................................... 254  LECCIÓN 5: GENERACIÓN DE PATRONES DE TEST....................................................... 255  Rendimiento del proceso de fabricación (yield) ...................................................................... 255  Modelos de fallos ............................................................................................................................ 256  GENERACIÓN AUTOMÁTICA DE VECTORES DE TEST (ATPG) ................................... 258  Simulación de fallos (fault-grading) ............................................................................................ 259  AUTOEVALUACION...................................................................................................................... 260  ACTIVIDADES COMPLEMENTARIAS DE LA UNIDAD 2 .................................................. 261  FUENTES DOCUMENTALES DE LA UNIDAD 2 ...................................................................... 262  UNIDAD 3.......................................................................................................................................... 264  UTILIZACION DE DISPOSITIVOS LOGICOS PROGRAMABLES ...................................... 264  CAPÍTULO 7: DISEÑO CON LOGICA PROGRAMABLE .................................................... 266   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 1: FPGAs (FIELD PROGRAMMABLE GATE ARRAY) ..................................... 266  AUTOEVALUACION...................................................................................................................... 269  LECCIÓN 2: ESTRUCTURA DE FPGAs .................................................................................. 270  AUTOEVALUACION...................................................................................................................... 274  LECCIÓN 3: NUEVAS INCORPORACIONES A LA ARQUITECTURA BÁSICA de FPGAs............................................................................................................................................... 275  Memoria............................................................................................................................................ 275  Bloques aritméticos..................................................................................................................... 275  Microprocesadores ...................................................................................................................... 275  Manejo de relojes.......................................................................................................................... 276  Entrada-salidas específicas ...................................................................................................... 276  Conversores serie-paralelo de alta velocidad .................................................................... 276  Facilidades de test on-chip ....................................................................................................... 276  AUTOEVALUACION...................................................................................................................... 276  LECCIÓN 4: EJEMPLOS DE FPGAs COMERCIALES ........................................................ 277  AUTOEVALUACION...................................................................................................................... 284  LECCIÓN 5: HERRAMIENTAS DE SOFTWARE (EDA, CAE, CAD) ................................ 285  EVOLUCIÓN HISTÓRICA ............................................................................................................ 286  HERRAMIENTAS DE ALTO NIVEL........................................................................................... 290  AUTOEVALUACION...................................................................................................................... 291  CAPÍTULO 8: OTROS DISPOSITIVOS PROGRAMABLES ............................................... 292  LECCIÓN 1: FPAA (FIELD PROGAMMABLE ANALOG ARRAY) ............................... 292  Evolución de los FPAAs ................................................................................................................ 293  FPAAs Comerciales ....................................................................................................................... 294  AUTOEVALUACION...................................................................................................................... 295  LECCIÓN 2: FAMILIAS DE FPAAs ........................................................................................... 296  CIRCUITOS FPAAs DE LATTICE.............................................................................................. 296  CIRCUITOS FPADs DE ZETEX.................................................................................................. 297  CIRCUITOS FPAAs DE ANADIGM ........................................................................................... 298  AN120E40 y AN220E04 ................................................................................................................ 301  METODOLOGÍA DE DISEÑO USANDO CIRCUITOS FPAAs ............................................ 302  AUTOEVALUACION...................................................................................................................... 303   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: PROCESADORES DIGITALES DE SEÑALES (DSP).................................. 304  INTRODUCCION ............................................................................................................................ 304  ¿QUÉ ES UN DSP? ....................................................................................................................... 304  CARACTERÍSTICAS DE LOS DSP ........................................................................................... 306  AUTOEVALUACION...................................................................................................................... 310  LECCIÓN 4: ARQUITECTURA DE DSP’s ............................................................................... 311  ORGANIZACIÓN DE LA MEMORIA.......................................................................................... 311  SEGMENTACIÓN (“PIPELINING”) ........................................................................................... 312  CONSUMO ....................................................................................................................................... 314  COSTE .............................................................................................................................................. 314  ARQUITECTURAS DE ALTAS PRESTACIONES ................................................................. 315  AUTOEVALUACION...................................................................................................................... 317  LECCIÓN 5: TIPOS DE DSP, CRITERIOS DE SELECCION Y APLICACIONES ......... 318  TIPOS DE DSPs ............................................................................................................................. 318  SEGÚN EL TIPO DE ARITMETICA UTILIZADA .................................................................... 318  SEGÚN EL PARALELISMO DEL DISPOSITIVO ................................................................... 319  CRITERIOS DE SELECCIÓN DE DSPs ................................................................................... 320  RANGO DINÁMICO ....................................................................................................................... 321  FAMILIAS DE DSPs MÁS REPRESENTATIVAS .................................................................. 322  AREAS DE APLICACION ............................................................................................................ 323  EJEMPLO DE APLICACIÓN ......................................................................................................... 324  AUTOEVALUACION...................................................................................................................... 325  CAPÍTULO 9: OTRAS APLICACIONES................................................................................... 326  LECCIÓN 1: CASO PRÁCTICO BASADO EN FPGAS Y SISTEMAS DE TELEFONÍA MÓVIL ............................................................................................................................................... 326  INTRODUCCIÓN ............................................................................................................................ 326  DESCRIPCIÓN DEL SISTEMA PROPUESTO ........................................................................ 326  IMPLEMENTACIÓN HARDWARE DEL SISTEMA ................................................................ 328  AUTOEVALUACION...................................................................................................................... 331  LECCIÓN 2: DESCRIPCION DE SUBMODULOS: UART, CODIFICADOR DE COMANDOS .................................................................................................................................... 332  SUBMÓDULO ‘UART’................................................................................................................... 332   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

SUBMÓDULO ‘CODIFICADOR DE COMANDOS’ ................................................................ 332  AUTOEVALUACION...................................................................................................................... 334  LECCIÓN 3: DECODIFICADOR DE COMANDOS, CONVERTIDOR................................ 335  SUBMÓDULO ‘DECODIFICADOR DE COMANDOS’........................................................... 335  SUBMÓDULO ‘CONVERTIDOR NUMEROS=>CARACTERES’ ........................................ 335  SUBMÓDULO ‘CONTROLADOR DE COMUNICACIONES’ ............................................... 336  SUBMÓDULO ‘MULTIPLEXOR’ ................................................................................................ 337  AUTOEVALUACION...................................................................................................................... 337  LECCIÓN 4: CASO PRÁCTICO, SISTEMA DE CONTROL DE TEMPERATURA ........ 338  AUTOEVALUACION...................................................................................................................... 342  LECCIÓN 5: CONTROL DIGITAL DE POSICIÓN CON ACELEROMETROS UTILIZANDO FPGAS ................................................................................................................... 343  INTRODUCCIÓN ............................................................................................................................ 343  RECURSOS UTILIZADOS ........................................................................................................... 343  CONTROL DIGITAL ...................................................................................................................... 346  ARQUITECTURA............................................................................................................................ 347  IMPLEMENTACIÓN ....................................................................................................................... 350  CONCLUSIONES ........................................................................................................................... 352  AUTOEVALUACION...................................................................................................................... 352  ACTIVIDADES COMPLEMENTARIAS DE LA UNIDAD 3 .................................................. 353  FUENTES DOCUMENTALES DE LA UNIDAD 3 ...................................................................... 354 

 

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LISTADO DE TABLAS Cuadro 1: Evolución de las reglas de diseño de los circuitos integrados. ........................... 32  Cuadro 2: Evolución de los chips de Intel en sus diversas características.[5] ..................... 33  Cuadro 3: Algunas áreas tecnológicas en crecimiento exponencial. [3] .............................. 34  Cuadro 4: Mejor ajuste actual al crecimiento de la microelectrónica. [3] .............................. 35  Cuadro 5: Ventas y computadoras personales estimadas en el mundo................................. 37  Tabla 4.1 Niveles de abstracción y ejemplos de elementos utilizados en las representaciones del diseño en las distintas vistas ................................................................... 165  Tabla 4.2 Variables a nivel físico derivadas del proceso de fabricación................................ 169  Tabla 4.3 Variables de diseño a nivel eléctrico. ......................................................................... 170  Tabla 4.4 Variables de diseño a nivel lógico/macromodelo ..................................................... 171  Tabla 4.5 Variables de diseño a nivel de arquitectura............................................................... 172  Tabla 4.6 Prospección de mejoras de la velocidad en función de estrategias de diseño, tomando como punto de partida el micro Alpha ......................................................................... 180  Tabla 4.7 Características de implementación y de la tecnología para un microprocesador Alpha de última generación............................................................................................................ 181  Tabla 4.8 Resumen de caracterIsticas de diferentes alternativas de realización de un circuito integrado.............................................................................................................................. 192  Tabla 8.1: Evolución de los FPAAs ............................................................................................ 294  Tabla 8.2: FPAAs comerciales .................................................................................................... 295  Tabla 8.3 Circuitos FPAAs de la familia IspPAC..................................................................... 297  Tabla 9.1 Ejemplo de comunicación entre fpga y modem GSM.......................................... 339  Tabla 9.2 Resultados de la implementación hardware .......................................................... 341  Tabla 9.3. Cambios en los ejes X y Y a ±90°. ......................................................................... 346  Tabla 9.4. Valores del acelerómetro ADXL202E. ................................................................... 350  Tabla 9.5. Características del contador de control................................................................. 350  Tabla 9.6. Características de servomotor Futaba S3004. .................................................... 351  Tabla 9.7. Valores de inclinación para las diferentes etapas. ............................................. 351  Tabla 9.8. Porcentaje utilizado del FPGA................................................................................. 352 

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LISTADO DE GRÁFICOS Y FIGURAS Figura 1.1 Microfotografía de un circuito integrado ................................................................. 27  Figura 1.2. Sección transversal de un transistor MOSFET con canal n................................... 41  Figura 1.3. Amplificador operacional ideal .................................................................................... 46  Figura 1.4. Amplificador comparador ............................................................................................. 48  Figura 1.5. Amplificador seguidor ................................................................................................... 48  Figura 1.6. Amplificador inversor..................................................................................................... 49  Figura 1.7. Amplificador No inversor .............................................................................................. 49  Figura 1.8. Sumador inversor .......................................................................................................... 50  Figura 1.9. Restador.......................................................................................................................... 50  Figura 1.10. Integrador ideal ............................................................................................................ 51  Figura 1.11. Derivador ideal............................................................................................................. 51  Figura 1.12. Diagrama electrónico del operacional 741........................................................... 53  Figura 1.13. Espejo de corriente.................................................................................................... 56  Figura 1.14. Espejo de corriente implementado con transistores bipolares tipo NPN usando una resistencia para fijar la intensidad de referencia I REF ......................... 57  Figura 1.15. Ejemplos de diseños microelectrónicos (a) analógicos y (b) digitales. ............. 60  Figura 1.16.Clasificación jerárquica de los sistemas digitales. ................................................. 61  Figura 1.17. Pasos del proceso de fabricación de un circuito CMOS con el proceso de nwell. ...................................................................................................................................................... 63  Figura 1.18. Reglas de diseño de un proceso CMOS en tecnología de 0.12 µm................. 66  Figura 1.19. Procesos en el flujo de diseño top-down. ............................................................... 67  Figura 1.20. Diferentes pasos del flujo de diseño top-down ...................................................... 69  Figura 1.21. Flujo de diseño. ........................................................................................................... 71  Figura 2.1. Propiedades del Algebra de Boole: Tablas y representación gráfica................... 74  Figura 2.2. Puerta NOR RTL ........................................................................................................... 75  Figura 2.3. Puerta NAND DTL......................................................................................................... 75  Figura 2.4. Puerta NAND TTL ......................................................................................................... 76  Figura 2.5. Inversor CMOS .............................................................................................................. 79   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 2.6. Compuerta NAND CMOS ............................................................................................ 80  Figura 2.7. Compuerta NOR CMOS............................................................................................... 81  Figura 2.8. Retardos de propagación en puertas lógicas........................................................... 82  Figura 2.9. Sistema combinacional ................................................................................................ 86  Figura 2.10. Semisumador............................................................................................................... 87  Figura 2.11. Semisumador con AND, OR, INVERSOR.............................................................. 87  Figura 2.12. Sumador completo...................................................................................................... 88  Figura 2.13. Decodificador............................................................................................................... 91  Figura 2.14. Decodificador BCD a 7 segmentos.......................................................................... 92  Figura 2.15. Multiplexor (a) y Demultiplexor (b)........................................................................... 94  Figura 2.16. Multiplexor.................................................................................................................... 96  Figura 2.17. Demultiplexor............................................................................................................... 97  Figura 2.18. Comparador con compuertas ................................................................................... 98  Figura 2.19. Autómata de Mealy................................................................................................... 102  Figura 2.20. Autómata de Moore .................................................................................................. 102  Figura 2.21. Circuitos biestables .................................................................................................. 103  Figura 2.22. Flip Flop SR ............................................................................................................... 104  Figura 2.23. Flip Flop D.................................................................................................................. 106  Figura 2.24. Flip Flop JK ................................................................................................................ 107  Figura 2.25. Flip Flop T .................................................................................................................. 108  Figura 2.27. Registro de desplazamiento ................................................................................... 109  Figura 2.28. Contadores de modulo N......................................................................................... 110  Figura 2.29. Estructura máquina de estados finitos .................................................................. 111  Figura 2.30. Estructura máquina de Moore................................................................................. 112  Figura 2.31. Imposibilidad de tener transiciones simultáneas en más de una señal digital. ............................................................................................................................................................. 115  Figura 2.32. Ejemplo de azar de función..................................................................................... 116  Figura 2.33. Ejemplo de azares lógicos. ..................................................................................... 118  Figura 3.1. Estructuras básicas de un PLD ................................................................................. 122  Figura 3.2. Macrocelda de un GAL22V10................................................................................... 123  Figura 3.3. Estructura típica de un GAL ...................................................................................... 123  Figura 3.4. Representación simplificada de una función.......................................................... 127   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 3.5.Estructura de una PAL ................................................................................................ 128  Figura 3.6.Estructura de una FPLA.............................................................................................. 129  Figura 3.7.Estructura de una PROM............................................................................................ 130  Figura 3.8. Arquitectura Básica de un CPLD .............................................................................. 131  Figura 3.9. Estructura de un Bloque Lógico en dispositivos de las familias MAX340 y MAX5000 ........................................................................................................................................... 133  Figura 3.10. Distribución de Productos en dispositivos de ....................................................... 134  Figura 3.11. Macroceldas de entrada/salida y macroceldas ocultas en dispositivos de la familia FLASH 370 ........................................................................................................................... 135  Figura 3.12. Macrocelda de entrada en dispositivos de la familia FLASH 370..................... 136  Figura 3.13. Arquitectura básica de un FPGA ............................................................................ 137  Figura 3.14. Bloque Lógico Configurable de la familia XC4000 de Xilinx, Inc. ..................... 139  Figura 3.15. Modulo Lógico de la familia ACT3 de Actel Corporation .................................... 139  Figura 3.16. Elemento Lógico de la familia APEX20K de Altera Corporation ....................... 140  Figura 3.18. Circuito detector de transiciones ............................................................................ 144  Figura 3.19. Diagrama de bloques para un FPAA ..................................................................... 145  Figura 3.20. Diagrama de bloques de un PACblock.................................................................. 149  Figura 3.21. Diagrama esquemático del TRAC020 ................................................................... 151  Figura 3.22. Diagrama de bloques básico de un CAB. ............................................................. 152  Figura 3.23. Diagrama de bloques de la matriz del AN10E40 ................................................. 153  Figura 3.24. Diagrama de bloques de los FPAAs ...................................................................... 154  Figura 4.2. Procedimientos de los que consta el diseño de circuitos y sistemas integrados ............................................................................................................................................................. 168  Figura 4.3. Relación entre la especificación y la implementación de un sistema................. 174  Figura 4.4 a) Estrategia de diseño descendente. b) Estrategia de diseño ascendente ...... 175  Figura 4.5. Flujo básico de diseño de un ASIC .......................................................................... 177  Figura 4.6. Pasos en el proceso de diseño de un microprocesador Alpha de Compaq...... 179  Figura 4.7. Arquitectura interna de un microprocesador Alpha de última generación......... 182  Figura 4.8. Fotografía del microprocesador de Alpha presentado en la Figura 4.7............. 184  Figura 4.9. Distribución de los buffers de reloj y análisis del skew de la señal de reloj para todo el chip, en un microprocesador Alpha de última generación........................................... 185  Figura 4.10. Ejemplo de tabla de dedicación de personal a un proyecto .............................. 188   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.1. Biestable D sincronizado por flanco basado en una estructura maestro-esclavo ............................................................................................................................................................. 197  Figura 5.2. Descripción mediante un lenguaje tipo SPICE del biestable D de Figura 5.1 .. 198  Figura 5.3. Resultados de una simulación temporal para el biestable D de la Fig. 5.1....... 199  Figura 5.4. a) Macromodelo de un amplificador operacional y b) su descripción en SPICE ............................................................................................................................................................. 199  Figura 5.5. Descripción lógica de un biestable D incorporando información adicional a la función lógica del componente ...................................................................................................... 202  Figura 5.6. Modelo de estructura en VHDL ................................................................................. 206  Figura 5.7. Modelo de concurrencia en VHDL............................................................................ 207  Figura 5.8. Ciclo de simulación VHDL.......................................................................................... 209  Figura 5.9. Determinismo en la simulación VHDL...................................................................... 210  Figura 5.10. Diagrama de la interfaz del semisumador de 2 bits ............................................ 212  Figura 5.11. Programación mediante VHDL ............................................................................... 223  Figura 5.12. VHDL de un biestable D por flanco de subida 

                                              224 

Figura 5.13. Descripción RTL de un multiplicador-acumulador (MAC) .................................. 228  Figura 5.15. Resultados del proceso de síntesis de alto nivel para la resolución numérica mediante el método directo de Euler de una ecuación a) Grafo de flujo de datos , b) datapath y c) FSM que implementa la unidad de control.......................................................... 233  Figura 5.16. Implementación alternativa de la ecuación diferencial con más recursos y menor coste temporal...................................................................................................................... 233  Figura 5.17. Organización de toda herramienta CAD................................................................ 235  Figura 5.18. Dominio de herramientas CAD en un plano nivel de representación-función de la herramienta................................................................................................................................... 237  Figura 6.1. Tarjeta-sonda de test de circuitos integrados. ................................................... 245  Figura 6.2. Dispositivos combinacionales y secuenciales bajo test ................................... 247  Figura 6.3. Mejora de la testabilidad por medio de la introducción de multiplexores .... 249  Figura 6.4. Test serie scan-based .............................................................................................. 250  Figura 6.5. Chequeo de un pipeline usando partial ………………………………………..251  Figura 6.6. Aproximación boundary-scan para el chequeo de circuitos impresos.......... 252  Figura 6.7. Formato general de una estructura BIST............................................................. 253  Figura 6.8. LFSR de tres bits y la secuencia que genera ..................................................... 253  Figura 6.9. Análisis de signatura en una línea de datos de un solo bit ………………………….254   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 6.10. Puerta simple con fallos anotados ...................................................................... 257  Figura 6.11. Red lógica simple con un fallo sa0 en el nodo U............................................. 259  Figura 7.1. Esquema interno de una FPGA ............................................................................. 266  Figura 7.2. Estructura de un bloque de procesamiento (Basic Logic Element, BLE) y un Cluster ............................................................................................................................................... 268  Figura 7.3. Relación interna de áreas dentro de un FPGA................................................... 269  Figura 7.4. Interconexiones programables en una FPGA ..................................................... 270  Figura 7.5. Estructura de bloques de interconexión y bloques lógicos ............................. 271  Figura 7.6. Punto de interconexión formado por 6 transistores de paso .......................... 271  Figura 7.7. Segmentos de interconexión (Xilinx XC4000) .................................................... 272  Figura 7.8. Detalle de los diferentes tipos de interconexiones ............................................ 273  Figura 7.9. Detalle de las interconexiones de una FPGA ..................................................... 274  Figura 7.10. Diagrama de bloques del Stratix II ...................................................................... 277  Figura 7.11. Estructura de un LAB del Stratix II...................................................................... 278  Figura 7.12. Diagrama de un Adaptive Logic Module (ALM) del Stratix II ........................ 278  Figura 7.13. Diferentes configuraciones de un ALM .............................................................. 279  Figura 7.14. Bloque lógico de DSP ............................................................................................ 279  Figura 7.15. Elemento de IO del Stratix II................................................................................. 280  Figura 7.16. Arquitectura jerárquica de una Virtex II ............................................................. 281  Figura 7.17. Configuración de un Slice de un Virtex II .......................................................... 282  Figura 7.18. Diferentes tipos de slices en el Virtex 4............................................................. 283  Figura 7.19. Virtex 4 vista simplificada de un sílice ............................................................... 283  Figura 7.20. Niveles de especificación de un diseño y los diferentes procesos involucrados ..................................................................................................................................... 285  Figura 7.21. Proceso típico de diseño con un HDL ................................................................ 289  Figura 8.1. Diagrama de bloques para un FPAA .................................................................... 292  Figura 8.2. Diagrama de bloques de un PACblock................................................................. 296  Figura 8.3. Diagrama esquemático del TRAC020 .................................................................. 298  Figura 8.4. Diagrama de bloques básico de un CAB. ............................................................ 299  Figura 8.5. Diagrama de bloques de la matriz del AN10E40 ............................................... 300  Figura 8.6. Diagrama de bloques de los FPAAs……………………………………………301  Figura 8.7. Estructura de un filtrode respuesta impulsional finita (FIR)………..............307   

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.8. Representaciones numéricas comunes en los DSP comerciales .................. 306  Figura 8.9. (Arriba) Formato de coma flotante IEEE-754; 1 bit de signo, 8 de exponente y 23 de mantisa. (Abajo) Formato en coma fija; 1 bit de signo y 31 bits significativos . 308  Figura 8.10. (Arriba) Arquitectura Von Neumann. (Abajo) Arquitectura Harvard ............ 312  Figura 8.11. Ejecución de instrucciones sin pipeline ............................................................. 313  Figura 8.12. Procesador que utiliza la técnica del pipeline .................................................. 313  Figura 8.13. Efecto en la pipeline ante la llegada de una instrucción de salto ……………..314  Figura 8.14. Núcleo de los TMS320C62xx de Texas Instruments……………………………………316  Figura 8.15 Tipos de DSP según la aritmética utilizada ...................................................... 318  Figura 8.16 Tipos de DSP según el paralelismo del dispositivo ........................................ 320  Figura 8.17 Criterios de selección de DSPs ........................................................................... 320  Figura 8.18. Rango dinámico en DSPs .................................................................................... 321  Figura 8.19 Familias de DSPs .................................................................................................... 322  Figura 8.20 Areas de aplicación de DSPs ............................................................................... 323  Figura 8.21. Ejemplo de aplicación de DSPs.......................................................................... 324  Figura 9.1. Estructura general de la plataforma propuesta .................................................. 328  Figura 9.2. Aspecto final de la plataforma hardware ............................................................ 330  Figura 9.3. Estructura general de la arquitectura hardware diseñada............................... 330  Figura 9.4. Estructura

hardware

detallada

en los submódulos

VHDL ............ 331 

Figura 9.5. Ejemplo de evolución de las salidas del controlador de temperatura desarrollado...................................................................................................................................... 339  Figura 9.6. Servomotor.................................................................................................................. 344  Figura 9.7. Posiciones media y extremas del servomotor según el ancho de pulso de la señal PWM. ...................................................................................................................................... 344  Figura 9.8. Acelerómetro ADXL202E vista superior. ............................................................. 345  Figura 9.9. Arquitectura básica de un FPGA. .......................................................................... 346  Figura 9.10. Etapas del sistema. ............................................................................................... 347  Figura 9.11. Modulación DCM del sensor de inclinación..................................................... 347  Figura 9.12. Representación de la Cinemática Directa. ........................................................ 349  Figura 9.13. Rangos de valores del decodificador. ............................................................... 349  Figura 9.14. Recursos implementados del Control Digital por el FPGA. .......................... 351     

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

UNIDAD 1

Nombre de la Unidad Introducción

TECNOLOGÍA MICROELECTRÓNICA Los sistemas electrónicos que utilizan dispositivos de potencia, fotónicos o de microondas son normalmente dispositivos discretos. Por ejemplo, los diodos IMPATT son utilizados como generadores de microondas, los láseres como fuentes de radiación óptica y los tiristores como conmutadores de potencia. Sin embargo, monocristalino e interconectado por patrones de metalizaciones. Los circuitos integrados (CI) tienen muchas más ventajas que los discretos interconectados por cables o pistas metálicas. Estas ventajas incluyen: la reducción de efectos parásitos, ya que en los CI con multinivel de metalizaciones se reduce enormemente la longitud de las pistas metálicas; una optimización del espacio, ya que los dispositivos están fabricados muy juntos; y una drástica reducción del coste de fabricación, porque las conexiones de los cables de un circuito discreto requieren mucho tiempo y se producen errores de conexión. En este tema se combinan la descripción de los procesos básicos estudiados en cursos anteriores (Análisis de circuitos, electrónica básica y sistemas digitales) con la fabricación de los dispositivos activos y pasivos en un circuito integrado. Se analizan las principales tecnologías de circuitos integrados, que están asociadas con las dos familias de transistores estudiadas: transistores bipolares (BJT) y unipolares (MOSFET y MESFET). Finalmente se realiza una introducción a los Principales Dispositivos Lógicos Programables.

Justificación

 

La microelectrónica es la aplicación de la ciencia electrónica a componentes y circuitos de dimensiones muy pequeñas, microscópicas y hasta de nivel molecular para producir dispositivos y equipos electrónicos de dimensiones reducidas pero altamente funcionales. El estudiante de tecnología e ingeniería electrónica debe conocer la importancia que tiene la tecnología microelectrónica dentro de la ingeniería, ya que esto le permitirá obtener las bases para diseñar una solución que

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

mejore su desempeño en el campo. En la Unidad 1 se presentan un breve repaso por los conceptos previos fundamentales, se conoce el proceso de fabricación de circuitos integrados y las diferentes tecnologías de fabricación de los mismos.

Intencionalidades Formativas

Denominación de capítulos

Mediante el desarrollo de las lecciones propuestas se pretende entrenar a los estudiantes en los temas tratados durante la unidad, de tal forma que asimile correctamente los diversos contenidos y los aplique en su entorno. • Introducir al estudiante en el campo de la tecnología microelectrónica considerando elementos de electrónica digital vistos en cursos anteriores para converger en las tecnologías para la integración de circuitos integrados • Describir el diseño y la fabricación de un circuito integrado y sus interconexiones. • Identificar las diferentes puertas lógicas desde el punto de vista de estructura interna diferenciando sus tecnologías. • Retomar el tema de circuitos combinacionales y circuitos secuenciales. • Identificar los circuitos a medida ASIC, reconocer los diferentes Dispositivos Lógicos Programables y sus características. • • •

 

Capítulo 1: Introducción a la Microelectrónica y procesos de fabricación. Capítulo 2: Repaso de Electrónica Digital. Capítulo 3: Tecnologías para la Integración de Circuitos Digitales: Circuitos integrados a medida (ASIC).

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CAPÍTULO 1: INTRODUCCIÓN A LA MICROLECTRÓNICA Y PROCESOS DE FABRICACIÓN LECCIÓN 1: BREVE

HISTÓRICA SOBRE LA MICROELECTRÓNICA

EL PASADO DE LA ELECTRÓNICA Las primeras observaciones relacionados con los fenómenos eléctricos son del tiempo de la Grecia Antigua (Tales de Mileto, Demócrito, etc...). Sin embargo, no es hasta el siglo XIX cuando se desarrollan algunas teorías que explican satisfactoriamente parte de dichos fenómenos. En 1893, Maxwell reunió las investigaciones en el campo de la electricidad y magnetismo de grandes científicos tales como Coulomb, Ampere, Ohm, Gauss, Farad ay, y publicó las reglas matemáticas que rigen las interacciones electromagnéticas. corpuscular de la corriente Aunque Maxwell no reconoce lanaturaleza eléctrica, sus ecuaciones son aplicables incluso después del establecimiento de la naturaleza discreta de la carga. La predicción de la existencia de ondas electromagnéticas y su posibilidad de propagación en el espacio constituye muy probablemente la base del posterior desarrollo de las comunicaciones, y en definitiva, de la Electrónica. La Electrónica probablemente no se inicia hasta que Lorentz postuló en 1895 la existencia de cargas discretas denominadas electrones. Thompson halló experimentalmente su existencia dos años más tarde y Millikan midió con precisión la carga del electrón ya entrado el siglo XX. Hasta principios de este siglo, la Electrónica no empezó a tomar cariz tecnológico. En 1904, Fleming inventó el diodo que denominó válvula el cual consistía en un filamento caliente, emisor de electrones, situado en el vacío a una corta distancia de una placa. En función de la tensión positiva o negativa de la placa, se producía paso de corriente en una dirección. Esta válvula se empleó como detector de señales inalámbricas y vino a sustituir a los detectores de galena utilizados hasta ese momento, que eran de difícil construcción y precisaban de continuos ajustes manuales. Quizá el acontecimiento más importante en la historia primitiva de la electrónica tuvo lugar en 1906 cuando De Forest interpuso un tercer electrodo (rejilla) en una válvula de Fleming creando el tubo tríodo denominado audión. En este dispositivo, la aplicación de una pequeña tensión a la rejilla produce una alta variación de la tensión de la placa; por consiguiente, el audión fue el primer amplificador de la historia. No obstante, se necesitaron varios años  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

para avanzar en el problema de emisión termoiónica con objeto de conseguir un elemento electrónico seguro. El desarrollo de la electrónica en ésta época está ligado al desarrollo de la radio. Basados en tubos de vacío se construyen diferentes tipos de circuitos con aplicación en las comunicaciones por radio. Con diodos y tríodos fueron diseñados los amplificadores en cascada, amplificadores regenerativos, osciladores, el receptor heterodino, entre otros. Este desarrollo de la electrónica permitió fundar la primera emisora de radiodifusión, KDKA, construida en 1920 por la Westinghouse Electric Corporation; en 1924, ya había 500 estaciones de radio en Estados Unidos. La evolución del tríodo dio lugar a técnicas de calentamiento indirecto del cátodo y a la introducción de los tetrodos, pentodos y las ampollas de vidrio en miniatura. En 1938 se encuentra disponible del primer receptor en FM después que Armstrong en 1933 desarrolló la modulación en frecuencia. La televisión en blanco y negro surgió en 1930 y la de color alrededor de la mitad de este siglo. LA ELECTRÓNICA Y LOS SEMICONDUCTORES La verdadera revolución tecnológica de la Electrónica surge con la invención de los dispositivos basados en semiconductores, y más en concreto, con la invención del transistor. Los primeros trabajos sobre semiconductores fueron comenzados por Hall en 1879 sobre el efecto que lleva su nombre. Los primeros rectificadores de unión metal-semiconductor se estudian entre 1920 y 1930, y es en 1938 cuando Shottky y Mott realizan separadamente un estudio sistemático sobre las propiedades de estos dispositivos, proponiendo la primera teoría del espacio de carga. En esta época, se realizan muchos estudios sobre semiconductores y se perfeccionan las técnicas de crecimiento de cristales. En 1943, se obtiene la primera unión P-N sobre cristal único de silicio. En 1947, se presionaron dos sondas de hilo de oro próximas entre sí sobre una superficie de un cristal de germanio. Brattain y Bardeen se dieron cuenta que era un dispositivo amplificador naciendo así el primer amplificador de estado sólido (en forma de transistor de contacto). Sin embargo, era un transistor deficiente, de poca amplitud de banda y mucho ruido, donde además los parámetros diferían ampliamente de uno a otro dispositivo. Shockley propuso el transistor de unión para mejorar las características del transistor de punta de contacto, y completó su teoría de funcionamiento. El nuevo dispositivo tenía portadores de ambas polaridades operando simultáneamente: eran dispositivos bipolares. En 1956, Bardeen, Brattain y Shockley recibieron el premio Nobel de física por sus investigaciones. El transistor no podía ser eficiente hasta que no se dispusiese de cristales simples extraordinariamente puros. Bell Laboratories lograron formar cristales simples de germanio y silicio con impurezas muy por debajo de una parte en mil millones, y a partir de aquí, fue posible controlar el proceso de dopado de  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

los semiconductores. Los primeros transistores de crecimiento fueron construidos en 1950, y un año después, ya se fabricaban comercialmente por RCA, Westinghouse, General Electric y Western Electric. En esta época, los componentes de estado sólido desplazaron virtualmente a las válvulas en casi todas las aplicaciones, tanto militares como comerciales. La idea inicial de construir un circuito completo de estado sólido en un bloque semiconductor fue propuesta por Dummer en 1952. No obstante, en 1958 Kilby, poco después de incorporarse a la Texas Instrument, concibió la idea de un monolítico, es decir, construir un circuito completo en germanio o silicio. El primer circuito integrado fue un oscilador por rotación de fase que se construyó empleando como material base el germanio, y sobre él, se formaban resistencias, condensadores y transistores, utilizando cables de oro para unir estos componentes. Simultáneamente, Noyce, de Fairchild Semiconductor, tuvo también la idea de un circuito monolítico en el que aisló mediante diodos p-n resistencias e los distintos dispositivos, desarrolló la fabricación de interconectó los diferentes dispositivos mediante metal vaporizado. No obstante, el primer transistor de difusión moderno fue creado por Hoerni de Fairchild en 1958 empleando técnicas fotolitográficas y utilizando los procesos de difusión antes desarrollados por Noyce y Moore. La clave de la fabricación de circuitos integrados reside en el transistor planar y la posibilidad de fabricación en masa. En 1961, Fairchild y Texas Instrument introdujeron comercialmente los circuitos integrados. Otro dispositivo que intervino en el avance espectacular de la Electrónica, aunque su desarrollo fue posterior al del transistor debido a problemas tecnológicos, es el transistor de efecto de campo. Antes de la invención de este transistor, numerosos investigadores ya habían estudiado la variación de conductividad de un sólido debido a la aplicación de un campo eléctrico. El transistor de unión de efecto de campo fue propuesto por Shockley en 1951, aunque problemas tecnológicos para lograr una superficie estable retrasaron su realización física. Estos problemas fueron solucionados al desarrollarse el proceso planar y la pasivación de la superficie con óxido de silicio (SiO2). En 1960, Kahng y Atalla, de Bell Laboratories, anunciaron el primer transistor de efecto de campo de puerta aislada. En 1962, Hofstein y Heiman emplearon la nueva tecnología MOS para fabricar un circuito integrado con más de mil elementos activos. El nuevo dispositivo MOS presentaba diversas ventajas sobre transistores bipolares y sentaba la base para el desarrollo de la alta escala de integración. LA MICROELECTRÓNICA Y EL SIGLO XX Las técnicas de integración de circuitos se beneficiaron de los avances tecnológicos. Los procesos de implantación iónica y litografía permitieron realizar líneas de conexión en la oblea de silicio con anchuras del orden de micras. Además, el avance en las tecnologías de integración introdujeron los  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

circuitos PMOS y CMOS, con unas características de tiempos de propagación y potencia consumida cada vez mejores. La eficiencia, velocidad y producción han mejorado continuamente en los transistores de unión y efecto de campo, a la vez que el tamaño y el costo se ha reducido considerablemente. En poco tiempo, se pasó de construir elementos discretos a sistemas integrados con más de un millón de transistores en una sola pastilla. La evolución ha sido espectacular: así, en 1951 se fabricaron los primeros transistores discretos, en 1960 se construyeron los primeros circuitos monolíticos con 100 componentes, en 1966 estos circuitos alcanzaron 1000 componentes, en 1969 se llegó a 10000, y actualmente se están fabricando circuitos integrados con varios millones de transistores.

Figura 1.1 Microfotografía de un circuito integrado En un principio, los circuitos desarrollados para aplicaciones de comunicación utilizando tubos de vacío, fueron construidos con transistores discretos. Sin embargo, los investigadores de los años 60 se dieron cuenta que estos mismos circuitos no eran transplantables directamente a circuitos integrados y que era preciso diseñar estructuras nuevas. Esto potenció el desarrollo de nuevas estructuras tales como las fuentes de polarización desarrolladas por Widlar y a la introducción del primer amplificador operacional comercial (µA702). En 1968, los laboratorios de Fairchild presentan el popular amplificador operacional compensado internamente µA741. Otros circuitos analógicos de esta época son los comparadores, reguladores de tensión, los PLL monolíticos, convertidores analógica-digital, etc... La revolución microelectrónica introdujo una nueva industria: la computación. Esta industria surgió por la gran expansión que se produce en el campo de la electrónica digital. En 1960, Noyce y Norman introdujeron la primera familia  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

lógica semiconductora, lógica resistencia-transistor (RTL), que sirvió de base para la construcción de los primeros circuitos integrados digitales. Seguidamente, en 1961, apareció la familia de acoplo directo (DCTL), y un año más tarde la lógica diodo transistor (DTL). En 1964, Texas Instrument presenta la lógica transistor-transistor (TTL), y la serie de circuitos integrados digitales 54/74 que han permanecido activos hasta hace poco. Motorola, en 1962 introduce la lógica de emisores acoplados (ECL) de alta velocidad y en 1968 con ésta misma lógica logra tiempos de retraso del orden del nanosegundo. En contrapartida, en 1970 se lanza la serie TTL en tecnología Shottky y en 1975 aparece la serie TTL Shottky de baja potencia con tiempos de retraso muy próximos a la ECL. En 1972, apareció la familia lógica de inyección integrada (IIL) cuya principal característica es su alta densidad de empaquetamiento. La electrónica digital tiene su máxima expansión con las familias lógicas basadas en el transistor MOS, debido a que su proceso de fabricación es más sencillo, permite mayor escala de integración y los consumos de potencia son más reducidos. Estas características ha dado lugar que la tecnología MOS desplace a la bipolar en la mayor parte de las aplicaciones. El proceso de miniaturización en tecnología MOS se encuentra por debajo de 1 micra aproximándose rápidamente a su límite físico. Esto ha permitido que se puedan realizar circuitos integrados que incorporan millones de dispositivos. En la década de los ochenta se introducen los circuitos digitales BiCMOS que ofrecen conjuntamente el bajo consumo de la tecnología CMOS y la velocidad de las familias bipolares a costa de una mayor complejidad y coste del proceso de fabricación. También se desarrollan circuitos de alta velocidad basados en el GaAs con retrasos del orden de decenas de picosegundos. Existen muchas expectativas en el desarrollo de esta tecnología aunque problemas de fabricación no permiten actualmente alcanzar la escala de integración que se logra con el silicio. Paralelamente, se desarrollan teorías matemáticas para análisis y diseño de sistemas electrónicos. Particularmente, el espectacular desarrollo de las computadoras digitales se debe en gran parte a los avances conseguidos en la Teoría de Conmutación, que establece modelos matemáticos para los circuitos digitales, transformando los problemas de diseño y verificación en técnicas matemáticas muy algoritmizadas e independientes en gran medida de los dispositivos físicos. El desarrollo de la Teoría de Conmutación puede decirse que empieza con los trabajos de Shannon en 1938, en los que aplica el álgebra de Boole al análisis de circuitos relevadores. El álgebra de Boole fue desarrollado en 1854 como una concrección matemática de las leyes de la lógica de predicados estudiada por los filósofos de la época. La Teoría de Conmutación se extiende principalmente a circuitos combinacionales hasta que, a mediados de la década de los cincuenta, los trabajos de Huffman y de Moore desarrollan la teoría de los circuitos secuenciales. El carácter  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

algorítmico de las técnicas de diseño las hace especialmente aptas para su resolución mediante computador, con lo que éste se convierte así en herramienta básica para el desarrollo de sistemas digitales en general y de nuevos computadores más potentes y sofisticados en particular. El más significativo avance de la electrónica digital es la introducción en 1971 del microprocesador, debido a la necesidad de producir un circuito estándar de propósito general y gran flexibilidad que sirviera para las calculadoras y fuera apto a otras muchas aplicaciones. En 1971, Intel introdujo en el mercado el microprocesador de cuatro bits conocido como el modelo 4004. Era una CPU completa monolítica con 45 instrucciones en tecnología PMOS con 2300 transistores. El éxito del procesador fue inmediato y su amplia difusión supuso el comienzo de una auténtica revolución industrial. Dos años posteriores a la presentación del primer procesador, Intel desarrolla el microprocesador de 8 bits 8008 con una velocidad de 50000 instrucciones por segundo. Este continuo desarrollo de los microprocesadores ha permitido en la actualidad construir procesadores de 32 bits con altas velocidades de procesado. La evolución de los microprocesadores es actualmente muy rápida, con creciente implantación en los procesos de automatización industrial, robótica, instrumentación inteligente, y en los elementos de sociedad de consumo, automóviles, electrodomésticos, etc. La introducción de microprocesadores más potentes ha marcado un rápido desarrollo de los microcomputadores y computadores personales, y su implantación es cada vez más importante en el ámbito de automatización de oficinas e industria, comunicaciones y redes informáticas. AUTOEVALUACIÓN: 1. Podemos afirmar que tanto el desarrollo de la lámpara incandescente de T. A. Edisson y el Audión de Forest dieron inicio a los principios de amplificación de una señal análoga? Sustentar su respuesta. 2. El siglo XIX se reconoce por las explicaciones científicas de los fenómenos eléctricos que fueron observados en la antigua Grecia. Realice una breve descripción de cada uno de ellos. 3. Se presume que la electrónica inicia en 1895 cuando Lorenz realiza un postulado. Cual fue este postulado? 4. Defina el concepto de semiconductor? 5. Porque el transistor es un semiconductor?

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

6. El proceso de miniaturización en tecnología MOS se encuentra por debajo de 1 micra aproximándose rápidamente a su límite físico. Esto quiere decir? 7. Defina: RTL, DCTL, DTL. TTL, ECL y TTL Shottky de baja potencia.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

LECCIÓN 2: TENDENCIAS FUTURAS INTRODUCCIÓN 7 La informática se desarrolló bajo una divisa implícita: más pequeño, más rápido, más barato (smaller, faster, cheaper8). Estas tres palabras al mismo tiempo describían el acontecer y expresaban el deseo de la industria. Eran similares a la divisa que el barón Pierre de Coubertin había elegido para los juegos olímpicos modernos, una terna de palabras latinas –que describían la misma idea– para caracterizarlos: altius, citius, fortius (más alto, más rápido, más fuerte). Hoy sabemos que la finalidad última de la revolución informática es la construcción de lo que se ha llamado la Sociedad de la Información, una nueva manera de relacionarnos entre nosotros y con la naturaleza, asistidos a cada paso por las máquinas informáticas para reducir al mínimo los procesamientos algorítmicos de la información y liberar así la máxima capacidad creadora de la actividad humana. Es, por lo tanto, una pregunta central de nuestro tiempo intentar responder cuándo ocurrirá esta Sociedad de la Información. SMALLER En el comienzo de la electrónica lo primero que se advirtió fue que cada vez los circuitos eran más pequeños. La tríada comenzó en smaller. La microelectrónica comenzó en 1961 con los circuitos integrados. En 1965 Gordon Moore advertía el crecimiento exponencial de la cantidad de transistores de los circuitos. En un artículo en la revista Electronics publicaba la idea primera de lo que hoy conocemos la “ley” de Gordon Moore. En este entonces era director de Fairchild Semiconductor Corporation, una empresa que forjaría los primeros comienzos de la microelectrónica 9.

7

http://www.itapebi.com.uy/pdfs/1cni.PDF Este artículo fue preparado para el “Primer Congreso Nacional de Informática”, Montevideo, 1997. Fue publicado en 1999 por la Oficina de Apuntes del CECEA como Perspectivas y tendencias de la Informática en el Uruguay.

8

9

Moore relató muchas veces esta historia. Una las últimas versiones se encuentra en una entrevista en Business Week, 23–jun–97, p. 66.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Moore tenía tres datos: sabía la fecha del primer transistor plano sobre silicio; los primeros circuitos integrados, en 1961, tenían solamente 4 transistores y observaba que en el presente –es decir 1965– habían alcanzado la enorme suma de 200 transistores. De allí pegó un salto al vacío y adelantó que la densidad de transistores parecía duplicarse cada año. Gordon Moore sería consecuente con esta idea y se convertiría en uno de los pioneros del smaller, faster, cheaper: pocos años después fundaría Intel Corporation y lideraría la revolución de los microprocesadores y las memorias electrónicas. En 1975, con la experiencia acumulada por Intel, analizó la tendencia de nuevo y se declaró que el número de transistores se duplicaba cada dos años. La cifra generalmente aceptada actualmente es intermedia: cada 18 meses se duplica el número de transistores de los chips. La Ley de Gordon Moore –y algunas otras leyes relacionadas– establecen que los diferentes parámetros físicos de los circuitos electrónicos integrados crecen en forma exponencial en el tiempo. Estas leyes son típicas leyes empíricas acerca de las cuales no existe mayor fundamentación teórica. Desde el momento de su formulación hasta el presente han sufridos algunas modificaciones no substanciales en los valores de sus parámetros, pero su validez ha permanecido esencialmente no cuestionada. El número de transistores de un chip depende en forma crítica de las dimensiones del transistor y de los demás elementos geométricos empleados. El tamaño del chip no incide demasiado porque no se puede aumentar en forma importante el tamaño del trozo de silicio empleado. En la jerga técnica este problema se conoce como “las reglas de diseño”. El mosaico que forma el chip emplea elementos que tienen un cierto tamaño típico. Este módulo es conocido como la “regla de diseño” empleada. El Cuadro 1 se presenta algunas cifras. Cuadro 1: Evolución de las reglas de diseño de los circuitos integrados. fecha reglas de diseño 1970 20 micras 1975 10 micras 1978 4,5 micras 1980 2 a 3 micras 1996 0,35 micras 1997 0,25 micras 1999 0,18 micras

ref. [1] [1] [1] [1] [5] [5] [5]

Vale la pena señalar al pasar, como dato curioso porque no tiene importancia de ningún tipo, que las dimensiones de las células son del orden de la micra.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Esto quiere decir que los transistores de las computadoras personales de la década del 80 ya habían alcanzado dimensiones “biológicas”. FASTER, CHEAPER Una consecuencia no detectada desde el principio, pero relacionada íntimamente con los procesos físicos que ocurrían en el transistor, fue que la miniaturización implicaba un aumento de velocidad del procesamiento. En la medida que las distancias a recorrer dentro del silicio por los lentos portadores de carga eran cada vez menores, los transistores podían trabajar cada vez a mayor velocidad. En el Cuadro 2 se presenta la historia de los procesadores de Intel y alguna especulación acerca del futuro. Cuadro 2: Evolución de los chips de Intel en sus diversas características.[5] chip lanzamiento precio transistores MIPS 4004 11/71 200 2,3 K 0.06 8008 4/72 300 3,5 K 0.06 8080 4/74 300 6K 0.6 8086 6/78 360 29 K 0.3 8088 6/79 360 29 K 0.3 286 2/82 360 134 K 0.9 386 10/85 299 275 K 5 486 4/89 950 1,2 M 20 Pentium 3/93 878 3,1 M 100 Pentium pro 5/95 974 5,5 M 300 786 ? 1997 1000 8M 500 886 ? 2000 1000 15 M 1.000 1G 100.000 1286 ? 2011 ?

Se puede comprobar claramente que faster es una consecuencia de smaller. Más adelante regresaremos sobre este punto. En cambio cheaper no es verdadero en forma literal. Los precios de los procesadores hasta el 486 se mantuvieron esencialmente constantes. En el momento de su lanzamiento costaron siempre alrededor de 300 dólares. Esta situación se modificó en forma notable con la llegada del 486. Se lanza un nuevo chip a la venta cuando es económicamente viable, por esta razón su precio es esencialmente constante. Esta situación parece cambiar a partir de la enorme difusión de la computadora Wintel con el procesador 486. Sin duda existieron cambios en la estrategia comercial y es posible que la situación de virtual monopolio de Intel sea la responsable del aumento de precios. Es claro que los analistas de mercado no prevén una

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

disminución de precios para el futuro. Intel sostiene que es cada vez más costoso montar una fábrica de semiconductores, cada nueva generación duplica su costo [4], y es probable que tenga razón, no obstante lo cual es opinión personal de este autor que la verdadera razón del aumento de precios y de las enormes ganancias de Intel en los últimos años se debe a la situación de monopolio 10. Es claro, sin embargo, que existe una disminución de precio en el sentido de que lo mismo cuesta –exponencialmente– cada vez menos. Nuevamente aquí la tercera palabra es consecuencia de las otras dos. Más pequeño significa más rápido, más rápido (a precios esencialmente constantes) significa más barato. EL LÍMITE FÍSICO Todo lo presentado nos lleva de la mano a que la revolución electrónica depende crucialmente de la capacidad para fabricar transistores cada vez más pequeños. Pero este proceso tiene un límite: la estructura atómica del silicio. De seguir las tendencias actuales, tarde o temprano se tropezará con límites físicos que de tendrán el proceso u obligarán a una nueva y revolucionaria tecnología. Es interesante analizar cuándo ocurrirán estos fenómenos. Lewis [3] presenta cifras ajustadas de las diferentes exponenciales relacionadas con la Ley de Gordon Moore. Tal como fuera originalmente formulada, la ecuación de la forma: kBt donde k y B son constantes empíricas y t es el tiempo en años. En el Cuadro 3 se presentan algunas constantes empíricas para diversos sectores industriales de avanzada. Cuadro 3: Algunas áreas tecnológicas en crecimiento exponencial. [3] área de actividad B Manufactura de aviones 1,1 Ley de Gordon Moore 1,48 Ley de Gordon Moore 1,56

10

comentarios mejora de características versión original mejor ajuste actual

A pesar de la reconocida línea económica liberal de Business Week, nunca ha sugerido esta interpretación al fenómeno.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Comunicaciones

1,78

Megabits por segundo por Km.

Resulta claro de estas cifras que la electrónica es una de las ramas que más ha crecido en la historia de la humanidad si la comparamos, por ejemplo, con otra área de crecimiento vertiginoso como es la aviación. Sin embargo, las cifras empíricas muestran –lo que es conocido por demás– que las comunicaciones crecen todavía más que la electrónica. En el Cuadro 4 se presentan los coeficientes empíricos actuales para el crecimiento de la velocidad de procesamiento y del número de transistores de los chips. Es interesante observar que la velocidad crece más que la cantidad de transistores, lo cual evidencia las mejoras de las técnicas de diseño de los procesadores por mayor empleo del paralelismo interno. Cuadro 4: Mejor ajuste actual al crecimiento de la microelectrónica. [3] área de actividad crecimiento de los MIPS crecimiento del número de transistores

B k 1,56 0,002374 1,37

1,492

Si aceptamos que estas ecuaciones empíricas representan la tendencia histórica de la microelectrónica, ahora será sencillo investigar cuando – plausiblemente– se llegará a los límites físicos de fabricación de nuevos chips. Aplicando la Ley de Gordon Moore con las cifras del Cuadro 4 en el 2006 se llegará a un transistor por átomo de silicio. Es claro que las tendencias actuales predicen entonces una corta vida a la actual frenética revolución de la microlectrónica. Este resultado sorprendente contrasto con otra predicción alentadora. Si suponemos que el chip último que se puede fabricar en silicio es capaz de realizar una operación, a la velocidad de la luz (el límite físico) entre dos átomos del cristal, esto conduce a 3x1011 MIPS y este límite se alcanzaría, según la ecuación empírica, más allá del 2020. Esto significa que el chip último se encuentra, posiblemente, a menos de una década del presente. Es interesante observar que el problema no se soluciona cambiando el silicio por otro material: las propiedades de los cristales son muy parecidas entre sí, otro semiconductor no cambiará nada esencial en estos límites físicos. Muchos autores ya han advertido de este problema de los límites físicos de los transistores. Keys [2] sostiene que al acercarse las reglas de diseño a 100 Ångstroms (0,01 micras) empiezan los efectos cuánticos. El límite de laboratorio posiblemente esté en 30 Ångstroms (0,003 micras) y se llegará a  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

estos límites hacia el 2003. Otros autores sostienen que el proceso será más lento y que recién en el 2010 se llegará a 0,1 micras 11. Su propuesta de nueva tecnología consiste en reemplazar los transistores por “islotes atómicos” de 20 nanometros de largo (0,02 micras) que contienen unos 60 átomos de silicio de largo, porque todavía no se manifiestan en forma “molesta” las propiedades cuánticas. Algunos van más lejos, en la Universidad de Minnesota anunciaron recientemente la posibilidad de almacenar un único electrón por vez [7] y esto permitiría llevar muy lejos el límite físico de aplicación de la ley de Gordon Moore. Cualquiera sea la posición adoptada, parece existir acuerdo en los comienzos del siglo XXI algo muy trascendente ocurrirá con la microelectrónica y no es claro que se puede continuar al ritmo en que se venía. Al detenerse el smaller es de esperar consecuencias importantes para el cheaper y el faster. La respuesta clásica al agotarse las posibilidades de chips más densos es emplear, en forma masiva, el paralelismo. Este problema fue estudiado desde varias décadas atrás, en particular por Gene Amdahl, el diseñado de la IBM /360. Por acumulación de procesadores pueden crearse máquinas más potentes a partir un chip dado, pero este mecanismo tiene algunas sorpresas: • El límite del paralelismo de máquinas se encuentra en la velocidad de comunicación de los buses internos de los chips. Los MIPS se encuentran limitados por los límites físicos de la comunicación y éstos, por la velocidad de la luz. • A los chips les está ocurriendo otro fenómeno: la complejidad de la interconexión. Cada vez más la superficie del chip está destinada a interconectar transistores [6]. Este fenómeno que se manifiesta a nivel de chips también será notorio en las placas y por este lado también hay una limitación importante. • El paralelismo cambia la ecuación de cheaper. Hasta hoy, lo mismo costaba menos en forma exponencial. Al depender del paralelismo, desaparece este efecto. Se llega al límite de costo y, en adelante, más capacidad de procesamiento significará un costo proporcional. Estas consideraciones muestran que parece estarse llegando al borde del smaller, faster, cheaper.

11

Gary A. Franzier, de Texas Instruments, advierte que posiblemente se trabaje en esta fecha con reglas menores y se estará al borde cuántico. Indica que será necesaria una nueva tecnología. Business W eek, 1–jul–96, p. 53.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

¿Cuándo ocurrirá el futuro? Cuadro 5: Ventas y computadoras personales estimadas en el mundo. año 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010

parque 14 18 24 31 41 53 69 90 1173 1525 1983 2578 3351 4357 5664 7363

ventas en 45 59 77 100 130 169 219 285 371 482 626 814 1058 1376 1789 2325

El punto más interesante en el Cuadro 5 es la observación que hacia mediados de la década siguiente, de mantenerse las tendencias actuales, existirá una computadora personal cada dos habitantes del planeta. Este es un hecho sumamente significativo que merece ser analizado con cuidado. Las cifras del Cuadro 5 suponen que las tendencias actuales, es decir las que se han mantenido a lo largo de toda la revolución de la microelectrónica, las que predice la ley de Gordon Moore, se conservarán en los próximos diez años. Todo el mundo parece estar de acuerdo con esta hipótesis, ningún analista espera un cambio importante en el futuro próximo. No obstante esto, en general no se realiza una proyección de este tipo. Examinemos entonces la proyección en sus diferentes hipótesis de futuro. La primera hipótesis consiste en suponer que las tendencias históricas se mantienen. En este caso, la Sociedad de la Información habrá llegado hacia el 2005. El número de computadoras personales será comparable al de televisores o teléfonos. Todos los habitantes del planeta tendrá acceso a un medio informático y todo ocurre tal cual lo predicen los augures de la modernidad. La propuesta reciente de las Network Computers apunta, sin duda, en esta dirección. Sin embargo hay algunas dificultades, entre ellas:

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 







Esta situación no parece económicamente viable. Una computadora cada dos habitantes supone que este nivel de informatización ha llegado a la India, a China y también a los países paupérrimos del Tercer Mundo. No parece posible educar a la población planetaria para el uso cotidiano de las computadoras personales. En la mayoría de los países del planeta la informática no ha llegado a los niveles escolares pero los habitantes del 2005 ya están llegando a la escuela. No parece posible que la economía asimile este volumen de computadoras. Si bien los procesos de automatización avanzan a toda velocidad, provocan un desempleo creciente. El convertir a la computadora personal en el reemplazo universal del papel, de los medios de trabajo, de los medios de entretenimiento y de los medios de comunicación (condición que parece indispensable para llegar a los volúmenes considerados) parece estar lejos de lo que sucede hoy en día. No parece posible que suceda en una década.

Las consideraciones anteriores sugieren que la tendencia histórica de evolución de las computadoras no se podrá mantener en el futuro próximo. En el presente las 200 millones de computadoras personales significan solamente del orden del 4% de la población mundial. Por cierto que están muy desigualmente repartidas: • Usualmente se acepta que Estados Unidos tiene el 40% de las computadoras del mundo. Esto supone al día de hoy unas 80 millones de computadoras personales lo cual es una computadora cada 3 habitantes aproximadamente. Esto significa que ya se ha llegado allí casi a los niveles de saturación. • Japón posee un 10% de las computadoras del mundo y estas 20 millones de computadoras con una cada 6 habitantes. • También se acepta que Europa tiene el 30% de las computadoras del Mundo. Esto supone hoy en día unas 60 millones de computadoras, tal vez una cada 10 habitantes. Como se ve, el 20% restante, unas 40 millones de computadoras, están en el resto del planeta y es este sector el que difícilmente pueda seguir el ritmo de crecimiento del pasado. Este análisis significa que hay grandes cambios en el futuro inmediato de la computación. Lo más importante tiene que ver con el cambio de velocidad del mercado. Si no se puede continuar vendiendo a la enorme velocidad que se vendía en el pasado, entonces el ritmo de la ley de Gordon Moore debe cambiar, no ya por acercarse a posibles límites físicos sino por razones económicas. Está implícito en esta ley que se continúa invirtiendo al ritmo que corresponde. Pero todo parece indicar que en algún momento se invertirá en el desarrollo de un chip que no se venderá al ritmo esperado. Este es el momento  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

en que el cheaper condiciona al smaller. Tal como se mencionó antes, cada nuevo chip exige una inversión doble del anterior. Esta inversión debe ser amortizada con la venta de los chips. Si el ritmo de venta decrece, el tiempo de amortización aumentará y por lo tanto, la velocidad de cambio disminuirá. Con las cifras que hemos manejado, en unos pocos años la industria de las computadoras deberá frenarse en su ritmo de crecimiento y, por lo tanto, cambiar mucho el estilo smaller, faster, cheaper. Ocurrirá entonces el cierre de la tríada, al fracasar el cheaper, se frenará el smaller y todo cambiará. Tal vez el aumento de precios de los últimos chips son una señal de que este proceso ya ha comenzado. CONCLUSIONES Si las hipótesis del presente artículo son correctas, asistiremos en la próxima década a profundos cambios en el mercado de la computación. Posiblemente algunos gigantes de hoy desaparezcan mañana. Posiblemente el ritmo vertiginoso de crecimiento que ha ocurrido en el pasado se detenga y la industria de la computación adquiera el mismo ritmo de innovación que cualquiera de las industrias de electrodomésticos. Esto hará que cambie todo: la necesidad de profesionales, la educación y hasta la manera de diseñar los productos. La Sociedad de la Información deberá esperar por la economía por la imposibilidad de penetrar los mercados de los países pobres al ritmo del presente. Tal vez esta sea la más importante y feliz de las consecuencias dentro de este panorama poco alentador que parece avizorase. AUTOEVALUACIÓN: 1. La frase: “más pequeño, más rápido, más barato”, en el sentido estricto de este curso se refiere a? 2. Que significa el “Limite Físico”? 3. Una de las consecuencias en el rápido desarrollo de la electrónica es la gran demanda de computadores personales. Investigue las cifras actuales sobre PC por población y aplique la Ley de Gordon Moore y explique se es posible el resultado dado para el año 2015. 4. Que son “Islotes atómicos”? 5. Que es un Angstroms?

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: PROCESO DE FABRICACIÓN El objetivo de la presente lección es presentar el proceso de fabricación de circuitos integrados CMOS de forma que se comprenda la finalidad de cada una de las etapas del proceso y, a la vez, se profundice en la comprensión de la estructura de los transistores MOS y en la manera de conectarlos para formar circuitos digitales. La integración CMOS consiste en formar zonas semiconductoras N y P y la zona de óxido de puerta con polisilicio encima de ella e interconectar los diversos transistores entre sí y con la fuente de alimentación, todas estas conexiones mediante líneas de metal (aluminio). Las regiones citadas no se encuentran en el mismo plano sino en «pisos» sucesivos: las difusiones penetran en la oblea semiconductora, el óxido de puerta y el polisilicio se elevan sobre ella y el metal circula por encima de todo el conjunto. Sendas capas de óxido separan los transistores entre sí y al metal de todo lo que tiene debajo, salvo en los puntos en que debe establecer conexión. Pero, además, las difusiones N requieren un substrato P que es el dopado propio de la oblea, mientras que las difusiones P precisan de substrato N que habrá que formarlo previamente sobre la oblea P: los pozos. El substrato P debe estar polarizado a la tensión más negativa y los pozos N a la más positiva, en ambos casos con la finalidad de que las uniones difusión-substrato queden aisladas, en polarización inversa. Por ello, en la superficie de la oblea, separados por óxido denominado de campo, tendremos los transistores y los contactos de polarización de los substratos; al conjunto de todos ellos (transistores y polarizaciones) les denominamos zonas activas. FABRICACIÓN DE NMOS Y PMOS El transistor MOSFET es la estructura actualmente más utilizada en la tecnología microelectrónica VLSI. Varias razones explican esta preeminencia. Primero es una estructura autoaislada eléctricamente no siendo necesario fabricar islas de material aisladas por uniones. Este hecho permite colocar transistores MOS juntos en el chip con el consiguiente ahorro de espacio y de pasos de proceso. Segundo, puede ser fabricado en el substrato sin la necesidad de crecer costosas capas epitaxiales. Sin embargo cada vez se usan más las epitaxias para mejorar las características de funcionamiento de los dispositivos MOS. Finalmente es un dispositivo de alta impedancia por lo que su consumo de potencia es bajo. A continuación describiremos el proceso de fabricación de una estructura MOS básica: el transistor NMOS. Mencionar que continuamente aparecen

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

modificaciones de esta estructura para diversas aplicaciones o mejora de características. El NMOS (Negative-channel Metal-Oxide Semiconductor) es un tipo de semiconductor que se carga negativamente de modo que los transistores se enciendan o apaguen con el movimiento de los electrones. En contraste, los PMOS (Positive-channel MOS) funcionan moviendo las valencias de electrones. El NMOS es más veloz que el PMOS, pero también es más costosa su fabricación. Actualmente es el tipo de tecnología que más se usa en la fabricación de circuitos integrados. La figura 1.2 muestra el corte transversal de un MOSFET con canal n. Se observa la estructura n (fuente/zona roja) p (puerta/zona azul)) n (drenado/zona roja) típica de un transistor. La aplicación de tensión al electrodo puerta (zona amarilla) provocará una inversión superficial bajo el óxido de puerta (zona azul bajo puerta) creando un canal n que pondrá en contacto fuente y drenado (zonas rojas). (Field Effect Transistor FET).

Figura 1.2. Sección transversal de un transistor MOSFET con canal n El proceso de fabricación de este dispositivo sería el siguiente. 1) Se parte de un substrato de silicio monocristalino tipo p de una resistividad » 5 W .cm y orientado según una dirección 2) Se crece mediante oxidación térmica una capa de SiO2 de » 500 A de espesor seguido de una deposición de nitruro de silicio de » 1000 A 3) El área activa del dispositivo es definida mediante fotolitografía creándose un canal de parada por implantación de boro a través del óxido/nitruro 4) Se elimina el nitruro no protegido por la fotoresina y el wafer es introducido en un horno de oxidación con el objetivo de crecer el óxido de campo (Field Oxide, FOX, » 0.5-1 m m) y realizar la distribución del boro.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

5) La capa óxido/nitruro es eliminada de la zona activa y a continuación se crece el óxido de puerta de algunos centenares de ángstrom de espesor. En la tecnología punta actual el espesor de este óxido de silicio es de solo decenas de angstroms. Para ajustar la tensión umbral, tensión puerta-fuente por encima de la cual se produce el canal n y el dispositivo conduce, se implanta la dosis de iones adecuada en el canal 6) Se crece el polisilicio del electrodo puerta, zona amarilla en la figura, el cual es fuertemente dopado mediante difusión o implantación de fósforo hasta conseguir una resistencia de hoja de 20-30 W /—. Con el objetivo de reducir la resistencia del electrodo de puerta hasta » 1 W /• se utilizan los siliciuros ya explicados anteriormente. 7) Una vez definida mediante fotolitografía el electrodo puerta se crean la fuente y el drenado, zonas n+ rojas en la figura, mediante implantación de arsénico, » 30 keV » 1016 cm-2, utilizando como máscara el electrodo puerta 8) Deposición de una capa de PSG mediante CVD y posterior tratamiento térmico para conseguir una topografía suave 9) Proceso fotolitográfico interconexiones.

de

apertura

de

ventanas

para

contactos

e

10) Deposición de capa de aluminio mediante sputtering y proceso fotolitográfico para la definición de contactos e interconexiones en la capa metálica. El contacto al electrodo puerta se realiza fuera de la zona activa del dispositivo para evitar posibles daños a la capa delgada de óxido de puerta. En este proceso NMOS hay seis operaciones de crecimiento de película, cuatro pasos de fotolitografía, tres implantaciones iónicas y cuatro operaciones de ataque ahorrándose dos operaciones de fotolitografía y un proceso de implantación en comparación con el proceso bipolar básico. FABRICACIÓN DE BJT Y FET El transistor de efecto campo (Field-Effect Transistor o FET, en inglés) es en realidad una familia de transistores que se basan en el campo eléctrico para controlar la conductividad de un "canal" en un material semiconductor. Los FET, como todos los transistores, pueden plantearse como resistencias controladas por voltaje. La mayoría de los FET están hechos usando las técnicas de procesado de semiconductores habituales, empleando la oblea monocristalina semiconductora como la región activa o canal. La región activa de los TFTs (thin-film transistores, o

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

transistores de película fina), por otra parte, es una película que se deposita sobre un sustrato (usualmente vidrio, puesto que la principal aplicación de los TFTs es como pantallas de cristal líquido o LCDs). Los transistores de efecto de campo o FET más conocidos son los JFET (Junction Field Effect Transistor), MOSFET (Metal-Oxide-Semiconductor FET) y MISFET (Metal-Insulator-Semiconductor FET). Tienen tres terminales, denominadas puerta (gate), drenador (drain) y fuente (source). La puerta es el terminal equivalente a la base del BJT. El transistor de efecto de campo se comporta como un interruptor controlado por tensión, donde el voltaje aplicado a la puerta permite hacer que fluya o no corriente entre drenador y fuente. El funcionamiento del transistor de efecto de campo es distinto al del BJT. En los MOSFET, la puerta no absorbe corriente en absoluto, frente a los BJT, donde la corriente que atraviesa la base, pese a ser pequeña en comparación con la que circula por las otras terminales, no siempre puede ser despreciada. Los MOSFET, además, presentan un comportamiento capacitivo muy acusado que hay que tener en cuenta para el análisis y diseño de circuitos. Así como los transistores bipolares se dividen en NPN y PNP, los de efecto de campo o FET son también de dos tipos: canal n y canal p, dependiendo de si la aplicación de una tensión positiva en la puerta pone al transistor en estado de conducción o no conducción, respectivamente. Los transistores de efecto de campo MOS son usados extensísimamente en electrónica digital, y son el componente fundamental de los circuitos integrados o chips digitales. En esta sección, se considera el FET de metal –óxido semiconductor (MOSFET). Este FET se construye con la terminal de compuerta aislada del canal con el dieléctrico dióxido de silicio (SiO2), y ya sea en modo de empobrecimiento o bien de enriquecimiento. Estos dos tipos se definen y consideran en las siguientes secciones. MOSFET de empobrecimiento El MOSFET de empobrecimiento se construye con un canal físico construido entre el drenaje y la fuente. Como resultado de ello, existe una i D entre drenaje y fuente cuando se aplica una tensión, vDS. El MOSFET de empobrecimiento de canal n se establece en un sustrato p, que es silicio contaminado de tipo p. Las regiones contaminadas de tipo n de la fuente y el drenaje forman conexiones de baja resistencia entre los extremos del canal n y los contactos de aluminio de la fuente (S) y el drenaje (D). Se hace crecer una capa

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

de SiO2, que es un aislante, en la parte superior del canal n. Se deposita una capa de aluminio sobre el aislante de SiO2 para formar el material de compuerta (G). El desempeño del MOSFET de empobrecimiento, es similar al del JFET. El JFET se controla por la unión pn entre la compuerta y el extremo de drenaje del canal. No existe dicha unión en el MOSFET enriquecimiento, y la capa de SiO 2 actúa como aislante. Para el MOSFET de canal n, una vGS negativa saca los electrones de la región del canal, empobreciéndolo. Cuando vGS alcanza VP, el canal se estrangula. Los valores positivos de vGS aumentan el tamaño del canal, dando por resultado un aumento en la corriente de drenaje. MOSFET de enriquecimiento El MOSFET de enriquecimiento difiere del MOSFET de empobrecimiento en que no tiene la capa delgada de material n sino que requiere de una tensión positiva entre la compuerta y la fuente para establecer un canal. Este canal se forma por la acción de una tensión positiva compuerta a fuente, vGS, que atrae electrones de la región de sustrato ubicada entre el drenaje y la compuerta contaminados de tipo n. Una vGS positiva provoca que los electrones se acumulen en la superficie inferior de la capa de oxido. Cuando la tensión alcanza el valor de umbral, V T, han sido atraídos a esta región los electrones suficientes para que se comporte como canal n conductor. No habrá una corriente apreciable iD hasta que vGS excede VT. La corriente de drenaje en saturación se puede calcular de la ecuación:

El transistor de unión bipolar (del inglés Bipolar Junction Transistor, o sus siglas BJT) es un dispositivo electrónico de estado sólido consistente en dos uniones PN muy cercanas entre sí, que permite controlar el paso de la corriente a través de sus terminales. Los transistores bipolares se usan generalmente en electrónica analógica. También en algunas aplicaciones de electrónica digital como la tecnología TTL o BICMOS. Un transistor de unión bipolar está formado por dos Uniones PN en un solo cristal semiconductor, separados por una región muy estrecha. De esta manera quedan formadas tres regiones: • Emisor, que se diferencia de las otras dos por estar fuertemente dopada, comportándose como un metal. • Base, la intermedia, muy estrecha, que separa el emisor del colector. • Colector, de extensión mucho mayor. La técnica de fabricación más común es la deposición epitaxial. En su funcionamiento normal, la unión base-emisor está polarizada en directa, mientras que la base-colector en inversa. Los portadores de carga emitidos por el emisor atraviesan la base, que por ser muy angosta, hay poca recombinación de

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

portadores, y la mayoría pasa al colector. El transistor posee tres estados de operación: estado de corte, estado de saturación y estado de actividad. AUTOEVALUACIÓN: 1. Defina cada paso de fabricación de circuitos integrados. 2. Que es un MOSFET de empobrecimiento? 3. Que es un MOSFET de enriquecimiento? 4. Defina que es la técnica de deposición epitaxial. 5. Que es la tecnología BICMOS?

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: BLOQUES ANALÓGICOS BÁSICOS AMPLIFICADOR OPERACIONAL IDEAL Circuito Integrado Analógico de uso universal (no de aplicación específica) . Se emplea como bloque funcional para facilitar el diseño de circuitos electrónicos analógicos. Un amplificador operacional (A.O., habitualmente llamado op-amp) es un circuito electrónico (normalmente se presenta como circuito integrado) que tiene dos entradas y una salida. La salida es la diferencia de las dos entradas multiplicada por un factor (G) (ganancia): Vout = G·(V+ − V−) El primer amplificador operacional monolítico data de los años 1960, era el Fairchild μA702 (1964), diseñado por Bob Widlar. Le siguió el Fairchild μA709 (1965), también de Widlar, y que constituyó un gran éxito comercial. Más tarde sería sustituido por el popular Fairchild μA741 (1968), de David Fullagar, y fabricado por numerosas empresas, basado en tecnología bipolar. Originalmente los A.O. se empleaban para operaciones matemáticas (suma, resta, multiplicación, división, integración, derivación, etc) en calculadoras analógicas. De ahí su nombre. El A.O. ideal tiene una ganancia infinita, una impedancia de entrada infinita, un ancho de banda también infinito, una impedancia de salida nula, un tiempo de respuesta nulo y ningún ruido. Como la impedancia de entrada es infinita también se dice que las corrientes de entrada son cero. El símbolo de un MONOLITICO es el mostrado en la siguiente figura:

Figura 1.3. Amplificador operacional ideal Los terminales son: • • • • •

 

V+: entrada no inversora V-: entrada inversora VOUT: salida VS+: alimentación positiva VS-: alimentación negativa

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Las terminales de alimentación pueden recibir diferentes nombres, por ejemplo en los A.O. basados en FET VDD y VSS respectivamente. Para los basados en BJT son VCC y VEE. Normalmente los pines de alimentación son omitidos en los diagramas eléctricos por claridad. COMPORTAMIENTO EN CONTINUA (DC)  

Lazo abierto Si no existe realimentación la salida del A.O. será la resta de sus dos entradas multiplicada por un factor. Este factor suele ser del orden de 100.000 (que se considerará infinito en cálculos con el componente ideal). Por lo tanto si la diferencia entre las dos tensiones es de 1V la salida debería ser 100.000V. Debido a la limitación que supone no poder entregar más tensión de la que hay en la alimentación, el A.O. estará saturado si se da este caso. Si la tensión más alta es la aplicada a la patilla + la salida será la que corresponde a la alimentación V S+, mientras que si la tensión más alta es la del pin - la salida será la alimentación VS-. Lazo cerrado Se conoce como lazo a la realimentación en un circuito. Aquí se supondrá realimentación negativa. Para conocer el funcionamiento de esta configuración se parte de las tensiones en las dos entradas exactamente iguales, se supone que la tensión en la patilla + sube y, por tanto, la tensión en la salida también se eleva. Como existe la realimentación entre la salida y la patilla -, la tensión en esta patilla también se eleva, por tanto la diferencia entre las dos entradas se reduce, disminuyéndose también la salida. Este proceso pronto se estabiliza, y se tiene que la salida es la necesaria para mantener las dos entradas, idealmente, con el mismo valor. Siempre que hay realimentación negativa se aplican estas dos aproximaciones para analizar el circuito: • •

V+ = VI+ = I- = 0

COMPORTAMIENTO EN ALTERNA (AC) En principio la ganancia calculada para continua puede ser aplicada para alterna, pero a partir de ciertas frecuencias aparecen limitaciones. (Ver sección de limitaciones) Un ejemplo de amplificador operacional es el 741op Análisis

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Para analizar un circuito en el que haya A.O. puede usarse cualquier método, pero uno habitual es: 1. Comprobar si tiene realimentación negativa 2. Si tiene realimentación negativa se pueden aplicar las reglas del apartado anterior 3. Definir las corrientes en cada una de las ramas del circuito 4. Aplicar el método de los nodos en todos los nodos del circuito excepto en los de salida de los amplificadores (porque en principio no se puede saber la corriente que sale de ellos) 5. Aplicando las reglas del apartado 2 resolver las ecuaciones para despejar la tensión en los nodos donde no se conozca. CONFIGURACIONES Comparador

Figura 1.4. Amplificador comparador •

Esta es una aplicación sin la realimentación. Compara entre las dos entradas y saca una salida en función de qué entrada sea mayor. Se puede usar para adaptar niveles lógicos.



Seguidor •

Es aquel circuito que proporciona a la salida la misma tensión que a la entrada

Figura 1.5. Amplificador seguidor •

• •

 

Se usa como un buffer, para eliminar efectos de carga o para adaptar impedancias (conectar un dispositivo con gran impedancia a otro con baja impedancia y viceversa) Como la tensión en las dos patillas de entradas es igual: V out = Vin Zin = ∞

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Inversor

Figura 1.6. Amplificador inversor Se denomina inversor ya que la señal de salida es igual a la señal de entrada (en forma) pero con la fase invertida 180 grados. •

El análisis de este circuito es el siguiente: o V+ = V- = 0 o Definiendo corrientes: y de aquí se despeja o

• •

Para el resto de circuitos el análisis es similar. Zin = Rin

Por lo cual podemos controlar la impedancia de entrada mediante la elección de R1 •

Esta configuración es una de las más importantes, porque gracias a esta configuración, se puede elaborar otras configuraciones, como la configuración del derivador, integrador, sumador. No inversor

Figura 1.7. Amplificador No inversor Como observamos, el voltaje de entrada, ingresa por el pin positivo, pero como conocemos que la ganancia del amplificador operacional es muy grande, el voltaje en el pin positivo es igual al voltaje en el pin negativo, conociendo el voltaje en el pin negativo podemos calcular, la relación que existe entre el voltaje de salida con el voltaje de entrada haciendo uso de un pequeño divisor de tensión.  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

• •

Zin = ∞

Sumador inversor

Figura 1.8. Sumador inversor • •

La salida está invertida Para resistencias independientes R 1, R2,... Rn



La expresión se simplifica bastante si se usan resistencias del mismo valor Impedancias de entrada: Z n = Rn



o

Restador

Figura 1.9. Restador



Para resistencias independientes R 1,R2,R3 ,R4:



Igual que antes esta expresión puede simplificarse con resistencias iguales La impedancia diferencial entre dos entradas es Z in = R1 + R2



 

o

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Integrador ideal

Figura 1.10. Integrador ideal •

Integra e invierte la señal (V in y Vout son funciones dependientes del tiempo)

• o

Vinicial es la tensión de salida en el origen de tiempos

Nota: El integrador no se usa en la práctica de forma discreta ya que cualquier señal pequeña de DC en la entrada puede ser acumulada en el capacitor hasta saturarlo por completo. Este circuito se usa de forma combinada en sistemas retroalimentados que son modelos basados en variables de estado (valores que definen el estado actual del sistema) donde el integrador conserva una variable de estado en el voltaje de su capacitor. Derivador ideal

Figura 1.11. Derivador ideal •

Deriva e invierte la señal respecto al tiempo

• •

Este circuito también se usa como filtro

NOTA: Es un circuito que no se utiliza en la práctica porque no es estable, esto se debe a que al amplificar más las señales de alta frecuencia se termina amplificando el ruido por mucho. Otros • Osciladores, como el puente de Wien  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Convertidores carga-tensión Convertidores corriente-tensión Filtros activos Girador permite construir convertidores de inmitancias (empleando un condensador simular un inductor, por ejemplo)

• • • •

APLICACIONES • • • • • • •

Calculadoras analógicas Filtros Preamplificadores y buffers de audio y video Reguladores Conversores Evitar el efecto de carga Adaptadores de niveles (por ejemplo CMOS y TTL)

ESTRUCTURA Aunque es usual presentar al A.O. como una caja negra con características ideales es importante entender la forma en que funciona, de esta forma se podrá entender mejor las limitaciones que presenta. Los diseños varían entre cada fabricante y cada producto, pero todos los A.O. tienen básicamente la misma estructura interna, que consiste en tres etapas: 1. Amplificador diferencial: es la etapa de entrada que proporciona una baja amplificación del ruido y gran impedancia de entrada. Suelen tener una salida diferencial. 2. Amplificador de tensión: proporciona una ganancia de tensión. 3. Amplificador de salida: proporciona la capacidad de suministrar la corriente necesaria, tiene una baja impedancia de salida y, usualmente, protección frente a cortocircuitos. Ejemplo del 741

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 1.12. Diagrama electrónico del operacional 741. En el diagrama se destaca en azul el amplificador diferencial. Éste es el responsable de que las corrientes de entrada no sean cero, pero si respecto a las de los colectores (Nótese como a pesar de aproximar las corrientes de entrada a 0, si éstas realmente fueran 0 el circuito no funcionaría). La impedancia de entrada es de unos 2MΩ. Las etapas en rojo son espejos de corriente. El superior de la izquierda sirve para poder soportar grandes tensiones en modo común en la entrada. El superior de la derecha proporciona una corriente a la circuitería de salida para mantener la tensión. El inferior tiene una baja corriente de colector debido a las resistencias de 5kΩ. Se usa como conexión de gran impedancia a la alimentación negativa para poder tener una tensión de referencia sin que haya efecto de carga en el circuito de entrada. Los pines llamados Offset null son usados para eliminar las tensiones de offset que pueda haber en el circuito. La etapa de ganancia en tensión es NPN. La sección verde es un desplazador de tensión. Esto proporciona una caída de tensión constante sin importar la alimentación. En el ejemplo 1V. Esto sirve para prevenir la distorsión. El condensador se usa como parte de un filtro paso bajo para reducir la frecuencia y prevenir que el A.O oscile. La salida en celeste es un amplificador PNP seguidor con emisor push-pull. El rango de la tensión de salida es de un voltio menos a la alimentación, la tensión colector-emisor de los transistores de salida nunca puede ser totalmente cero. Las resistencias de salida hacen que la corriente de salida esté limitada a unos 25mA. La resistencia de salida no es cero, pero con realimentación negativa se aproxima.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

PARÁMETROS •

• •

• •

• •



Ganancia en lazo abierto. Indica la ganancia de tensión en ausencia de realimentación. Se puede expresar en unidades naturales (V/V, V/mV) o logarítmicas (dB). Son valores habituales 100.000 a 1.000.000 V/V. Tensión en modo común. Es el valor medio de tensión aplicado a ambas entradas del operacional. Tensión de Offset. Es la diferencia de tensión, aplicada a través de resistencias iguales, entre las entradas de un operacional que hace que su salida tome el valor cero. Corriente de Offset. Es la diferencia de corriente entre las dos entradas del operacional que hace que su salida tome el valor cero. Margen de entrada diferencial. Es la mayor diferencia de tensión entre las entradas del operacional que mantienen el dispositivo dentro de las especificaciones. Corrientes de polarización (Bias) de entrada. Corriente media que circula por las entradas del operacional en ausencia de señal Slew rate. Es la relación entre la variación de la tensión de salida máxima respecto de la variación del tiempo. Se mide en V/ μs, kV/μs o similares. Relación de Rechazo en Modo Común (RRMC,o CMRR en sus siglas en inglés). Relación entre la ganancia en modo diferencial y la ganancia en modo común.

LIMITACIONES Saturación Un A.O.L típico no puede suministrar más de la tensión a la que se alimenta, normalmente algunos voltios menos. Cuando se da este valor se dice que satura, pues ya no está amplificando. La saturación puede ser aprovechada por ejemplo en circuitos comparadores. Un concepto asociado a éste es el Slew rate(analisis básico de bajo flujo recoltor). Tensión de offset Es la diferencia de tensión que se obtiene entre los dos pines de entrada cuando la tensión de salida es nula, este votltaje es cero en un amplificador ideal lo cual no se obtiene en un amplificador real. Esta tensión puede ajustarse a cero por medio del uso de las entradas de offset (solo en algunos modelos de operacionales) en caso de querer precisión. El offset puede variar dependiendo de la temperatura (T) del operacional como sigue:

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Donde T0 es una temperatura de referencia. Un parámetro importante, a la hora de calcular las contribuciones a la tension de offset en la entrada de un operacional es el CMRR (Rechazo al modo común). Ahora también puede variar dependiendo de la alimentación del operacional, a esto se le llama PSRR (power supply rejection ratio, relación de rechazo a la fuente de alimentación). La PSRR es la variación del voltaje de offset respecto a la variación de los voltajes de alimentación,expresada en dB. Se calcula como sigue:

Corrientes Aquí hay dos tipos de corrientes que considerar y que los fabricantes suelen proporcionar: •

IOFFSET = | I

+

−I



|



Idealmente ambas deberían ser cero. Característica tensión-frecuencia Al A.O. típico también se le conoce como amplificador realimentado en tensión (VFA). En él hay una importante limitación respecto a la frecuencia: El producto de la ganancia en tensión por el ancho de banda es constante. Como la ganancia en lazo abierto es del orden de 100.000 un amplificador con esta configuración sólo tendría un ancho de banda de unos pocos Hercios. Al realimentar negativamente se baja la ganancia a valores del orden de 10 a cambio de tener un ancho de banda aceptable. Existen modelos de diferentes A.O. para trabajar en frecuencias superiores, en estos amplificadores prima mantener las características a frecuencias más altas que el resto, sacrificando a cambio un menor valor de ganancia u otro aspecto técnico.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Capacidades El A.O. presenta capacidades (capacitancias) parásitas, las cuales producen una disminución de la ganancia conforme se aumenta la frecuencia. Deriva térmica Debido a que una unión semiconductora varía su comportamiento con la temperatura, los A.O. también cambian sus características, en este caso hay que diferenciar el tipo de transistor en el que está basado, así las corrientes anteriores variarán de forma diferente con la temperatura si son bipolares o JFET. Espejo de corriente

Figura 1.13. Espejo de corriente. En electrónica, un espejo de corriente es una configuración con la que se pretende obtener una corriente constante, esto es, una fuente de corriente. Esta configuración consta de dos transistores, idealmente idénticos, y una resistencia o potenciómetro, si se quisiera regular el circuito en el caso que los transistores no fueran idénticos. En la figura 1.13 se muestra el esquema básico de un espejo de corriente. La Intensidad que circula en R1 está dada por: IR1 = IC1 + IB1 + IB2 Donde IC1 es la intensidad del colector de Q1, IB1 es la intensidad de base de Q1, IB2 es la intensidad de base de Q2. La intensidad de colector de Q1 viene dada por la ecuación:  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

IC1 = 0IB1 Donde β0 es la ganancia de intensidad de idealmente idénticos, la β de Q2 será:

Q1. Si Q1 y Q2 son

donde VA es debida al efecto Early. Desde que VBE1 = VBE2 y Q1 y Q2 son idénticos, IB1 = IB2. La intensidad de colector de Q2 será entonces dado por:

Si β0 > entonces:

>

1,

Se obtiene así una precisión superior a la obtenida con circuitos más complejos, como los Widlar, de Wilson o Cascodo. El espejo de corriente se usa en los circuitos integrados porque es una forma conveniente de crear fuentes de corriente y cargas activas. La ventaja de utilizar espejos de corriente es la del incremento en la ganancia de tensión y en el rechazo al modo común (CMRR).

Figura 1.14. Espejo de corriente implementado con transistores bipolares tipo NPN usando una resistencia para fijar la intensidad de referencia I REF; VCC = Tensión de entrada  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACIÓN: 1. Defina que es un bloque básico analógico 2. Que son redes de conmutación basadas en transistores? 3. Que es un amplificador diferencial? 4. Que es un amplificador operacional?

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: REGLAS DE DISEÑO INTRODUCCIÓN La MICROELECTRÓNICA se puede definir como el conjunto de ciencias y técnicas con las que se realizan y fabrican circuitos electrónicos sobre una pastilla de un semiconductor, lo cual formará un circuito integrado (CI). Dentro de estos circuitos integrados, podemos encontrar diferentes estrategias de diseño, como pueden ser los circuitos integrados en los que se deben construir tanto las puertas como las conexiones, denominados habitualmente ASICs (Application Specific Integrated Circuits), circuitos programables en los que se encuentran ya construidos todas las puertas y conexiones de tal forma que únicamente hay que indicar cuales están habilitadas mediante una programación, denominados dispositivos programables (un ejemplo de los cuales pueden ser las FPGAs, (Field Programmbled Gate Arrays). La división existente en los circuitos electrónicos también es válida para la Microelectrónica, es decir, podemos diferenciar entre Microelectrónica Analógica y Digital, según la naturaleza de las señales tratadas. No obstante, el auge de la Microelectrónica surgió gracias a una propiedad de los sistemas digitales: la jerarquía. La propiedad de jerarquía es aquella por la cual un sistema puede estar compuesto de bloques conectados entre sí, de tal forma que dichos bloques son independientes entre sí y de su conexión. A pesar de que un circuito analógico también puede ser construido por una serie de bloques conectados entre sí; estos bloques no serán independientes de su conexión (e incluso su situación en la base del semiconductor) debido a la naturaleza real de las señales analógicas (pueden tener un rango infinito de valores). En cambio, el carácter digital de las señales de los sistemas digitales provee dicha independencia y así la posibilidad de desarrollar un sistema completamente jerárquico. A modo de ejemplo, podemos ver en la figura 1.15 dos ASICs: el caso (a) sería un diseño analógico; y el caso (b) sería un diseño digital. En el caso analógico podemos ver unas estructuras formadas por los mismos bloques dispuestas de una manera especial (parecida a una circunferencia). Bien, esta disposición no es aleatoria sino que debe ser así para garantizar el mismo comportamiento en todos los bloques. En cambio, en el circuito digital podemos apreciar bloques comunes, cuya disposición obedece únicamente a con- tribuir a que el sistema completo sea lo más compacto posible.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En la figura podemos apreciar una clasificación de los sistemas digitales desde un punto de vista jerárquico. Según dicho esquema los sistemas digitales se pueden representar desde bloques de muy alto nivel, como pueden ser procesadores y/o memorias, hasta un circuito integrado, el chip. Normalmente en el campo digital se suele utilizar un proceso de diseño topdown, en el cual partimos de las especificaciones de más alto nivel, y llegamos al circuito integrado pasando por todos los niveles de jerarquía. Dentro de este proceso podemos distinguir dos fases bien diferenciadas.

(a)

(b)

Figura 1.15. Ejemplos de diseños microelectrónicos (a) analógicos y (b) digitales. En la primera fase se obtiene el circuito lógico a partir de descripciones de alto nivel. El resultado de esta fase será un diagrama o una descripción de en un HDL (Lenguaje de Descripción de Hardware) con las conexiones de puertas, registros, etc., es decir, bloques abstractos en función del nivel en el que nos encontremos. En la segunda fase, se construirán los bloques mencionados anteriormente según una familia lógica, de tal forma que están completamente determinados el tamaño, la forma y la estructura interna de cada uno de los bloques. En esta fase, el diseñador debe obtener los diferentes esquemas a nivel de transistores (moviéndonos en el nivel eléctrico); y a partir del cual se obtendrá el layout del circuito (moviéndonos en el nivel geométrico). El layout se puede definir como una representación física de un circuito electrónico que está sujeto a limitaciones derivadas del proceso de integración, el flujo de diseño y requerimientos de prestaciones. Una vez que tenemos un layout correcto, se pasa a la foundry (que es la fábrica  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

encargada de obtener el circuito físico) para que lleve a cabo todos los procesos de integración. La corrección del layout se debe llevar a cabo en un doble sentido: • Una verificación funcional, en la cual ha de verificarse que las capas incluidas en el layout, así como su distribución, sean equivalentes al esquema eléctrico de partida. Dicha verificación se suele conocer como LVS (Layout Versus Schematic) • Una verificación geométrica, en la cual ha de verificarse que las capas de un determinado material están lo suficientemente separadas como para que, al finalizar el proceso de integración, dichas capas estén realmente separadas. Dicha verificación se suele conocer como DRC (Design Rules Checking). Esta verificación es lo suficientemente importante como para que la foundry vuelva a realizarla para evitar fallos. Por lo tanto nos vamos a centrar en los niveles eléctricos y geométricos, por ser aquellos en los que la acción del diseñador es importante.

Figura 1.16.Clasificación jerárquica de los sistemas digitales.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

PROCESOS DE DISEÑO La fabricación de un circuito integrado consiste de una serie de pasos en un orden específico. El material base de los circuitos integrados es una oblea o disco de semiconductor. La tecnología más desarrollada es la basada en silicio (Si), aunque también existen tecnologías a base de otros semiconductores como arseniuro de galio (GaAs) o germanio y silicio (SiGe). No obstante, todas las tecnologías siguen unos pasos similares. El semiconductor no está en equilibrio eléctricamente, sino que unas cantidades controladas de impurezas son añadidas para dotar al cristal de las propiedades eléctricas requeridas. Dichas impurezas pueden ser donadores (cargados eléctricamente con signo negativo), que se corresponden al tipo n; o aceptoras (cargadas eléctricamente con signo positivo), que corresponden al tipo p. En función del tipo de estas impurezas podemos encontrarnos con diferentes tipos de procesos: • Procesos de n-well (utilizado principalmente en Europa) en el que el dopado de la oblea es de tipo p. • Procesos de p-well (utilizado principalmente en Estados Unidos) en el que el dopado de la oblea es de tipo n. • Procesos de well gemelos (el cual se está extendiendo cada vez más) en el que el signo del dopado de la oblea no tiene demasiada importancia ya que se van a generar los dos tipos de well (n-well y p-well). Como los tres tipos de procesos son similares, nos vamos a centrar en uno de ellos, en particular en el proceso de n-well. Dicho proceso se muestra en la figura 1.17, más concretamente la oblea sería el paso (a). La primera máscara define el n-well (figura 1.17b). Esta zona, el n-well, es el lugar en el que se van a implementar los transistores PMOS. En esta etapa también se depositan capas de óxido grueso (denominado de campo), SiO2, para separar cada una de las regiones (figura 1.17c). La siguiente capa que se deposita es la llamada óxido de puerta (o fino), la cual se obtendrá por el crecimiento de las zonas de óxido de campo (figura 1.17d). Dicha capa constituirá con el polisilicio el terminal de puerta de los transistores. Una vez que se ha depositado el óxido de puerta, se coloca el polisilicio (figura 1.17e) y se despeja el resto de óxido de puerta para permitir la creación de los terminales de fuente y drenador (figura 1.17f). El siguiente paso es difundir los terminales de fuente y drenador de los transistores NMOS (figura 1.17g), y seguidamente los terminales correspondientes a los transistores PMOS (figura 1.17h). También se crean los contactos con las zonas de polarización: regiones n+ sobre el n-well, y regiones  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

p+ sobre el resto del CI. Una vez creadas las diferentes regiones n+ y p+, se pasa a la inserción de la primera capa de metal (figura 1.17i). El contacto físico de este material (por lo general aluminio, aunque se está probando con cobre en los últimos tiempos) con el polisilicio y las zonas de difusión provocará un contacto eléctrico. No obstante hay que indicar que aquellas zonas en las que no se requiere contacto, habían sido ocupadas con óxido de campo evitando de esta forma el contacto.

Figura 1.17. Pasos del proceso de fabricación de un circuito CMOS con el proceso de nwell.  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Para la segunda (y restantes capas) capa de metal (figura 1.17j) se coloca una nueva capa de óxido de campo por todo el CI excepto en los lugares donde exista un contacto entre la capa actual y la anterior. Después se deposita la capa de metal en los lugares correspondientes. Cabe destacar que el material de todas las capas de metal existentes, en la tecnología utilizada, es el mismo, es decir, aluminio (o cobre). En todos estos pasos podemos distinguir dos tipos de acciones: crear zonas de difusión y de well, que alterará la composición interna de la oblea; y la deposición de material sobre la oblea. La primera acción se puede conseguir a través de dos proceso diferentes: difusión e implantación iónica. • El proceso de difusión consiste en depositar sobre la oblea un material desde el cual obtener las impurezas deseadas y calentarla oblea a una temperatura elevada. De esta forma, los espacios intersticiales del semiconductor aumentan, y así las impurezas pueden ocupar estos espacios. • El proceso de implantación iónica consiste en bombardear la oblea con las impurezas que se quieren difundir. Dicha difusión sólo se producirá en las zonas que no se encuentren protegidas por una máscara de material. En cuanto a la segunda acción, el proceso más utilizado es la fotolitografía. Dicha técnica consiste en depositar por todo el circuito una capa de material en cuestión (polisilicio o metal, también se utiliza con el óxido para separar las diferentes capas, pero dicho proceso es transparente para el diseñador, la única acción del diseñador en esta capa son los contactos en los que no debe haber dicha capa de óxido), y encima de ella una máscara fotorresistiva, la cual evitará la pérdida del material que se encuentre bajo ella. Después de haber eliminado el material sobrante del circuito, se elimina la máscara dejando el circuito preparado para una nueva capa. Por lo tanto, para cualquiera de los procesos anteriores, es necesario conocer y verificar una serie de características geométricas como son el tamaño del material depositado sobre el circuito. Dichas características son denominadas reglas de diseño, y gracias a ellas se asegura que los dispositivos descritos en el layout estarán en el circuito físico. Si algunas de estas reglas son violadas no se asegura la correcta creación del circuito electrónico. A modo de ejemplo veamos una porción de un fichero de reglas de diseño para una tecnología CMOS estándar de 0.12 µm en la figura 1.18. En él podemos ver las diferentes capas con las reglas geométricas correspondientes a cada una de ellas. Es interesante notar que las dimensiones están referenciadas a un parámetro, lambda, para que la portabilidad de dichas reglas a otras tecnologías sea más sencilla. En dicho fichero, que lo utiliza la herramienta Microwind, podemos distinguir tres partes en cada línea: la referencia de la regla, la  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

dimensión mínima que se ha de verificar (en términos de lambda) y un breve comentario sobre dicha regla. También se suele adjuntar un esquema en el que se muestran de forma gráfica las diferentes reglas. En este caso particular únicamente se muestran las reglas del nwell, áreas activas o difusiones y del polisilicio. NAME CMOS 0.12µm - 6 Metal * lambda = 0.06 (Lambda is set to half the gate size) * * Design rules associated to each layer * * Well * r101 = 10 (well width) r102 = 11 (well spacing) * * Diffusion * r201 = 4 (diffusion width) r202 = 4 (diffusion spacing) r203 = 6 (border of nwell on diffp) r204 = 6 (nwell to next diffn) r205 = 0 (diffn to diffp) * * Poly * r301 = 2 (poly width) r302 = 2 (gate length) r303 = 4 (high voltage gate length) r304 = 3 (poly spacing) r305 = 1 (spacing poly and unrelated diff) r306 = 4 (width of drain and source diff)

 

r307 = 3 * * Poly 2 * r311 = 2 r312 = 2 * * Contact r401 = 2 r402 = 4 r403 = 1 r404 = 1 r405 = 1 r406 = 2 r407 = 1 * * metal r501 = 3 r502 = 4 r510 = 16 * via r601 = 2 r602 = 4 r604 = 1 r605 = 1 * metal 2 r701 = 3 r702 = 4 r710 = 16

(extra gate poly)

(poly2 width) (poly2 spacing) (contact width) (contact spacing) (metal border for contact) (poly border for contact) (diff border for contact) (contact to gate) (poly2 border for contact) (metal width) (metal spacing) (minimum surface) (Via width) (Spacing) (border of metal) (border of metal2) (Metal 2 width) (minimum surface)

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 1.18. Reglas de diseño de un proceso CMOS en tecnología de 0.12 µm. TÉCNICAS DE DISEÑO MICROELECTRÓNICO De forma previa a la creación de un layout, debemos conocer la estructura a nivel de transistores del circuito, para lo cual debemos descender al nivel de jerarquía eléctrico. Las técnicas de diseño no son más que unos procedimientos para desplazarnos a través de los diferentes niveles de jerarquía del circuito. En función del sentido del movimiento tenemos flujos top-down, que van desde el nivel superior al inferior, y flujos bottom-up, que van del nivel inferior al superior. El flujo de diseño top-down parte de una descripción global del sistema (sin precisar las diferentes partes que lo forman ni especificaciones cuantitativas); para a partir de dicha descripción ir refinando cada vez más las diferentes partes. El flujo de diseño bottom-up parte de unas especificaciones muy detalladas para realizar las diferentes partes del sistema, las cuales serán conectadas entre sí con posterioridad.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En el caso de diseño, el flujo más utilizado es el top-down, ya que cuando la descripción es compleja las especificaciones detalladas son muy difíciles de cumplir; por lo tanto, nos centraremos en el primero. En la figura 1.19 se muestra el procesos en el flujo de diseño top-down.

Figura 1.19. Procesos en el flujo de diseño top-down.

El flujo de diseño tratará de pasar desde el nivel superior del dominio de comportamiento al nivel inferior del dominio físico pasando por el dominio estructural. Veremos todo este paso con el ejemplo de un multiplicador, mostrado en la figura 1.20. El nivel superior estará compuesto por algoritmos (en su dominio de comportamiento) o por procesadores, memorias y/o buses (en su dominio estructural). En nuestro caso particular necesitaremos un procesador dedicado y un controlador (que no sería más que otro procesador dedicado); mientras que el dominio de comportamiento estaría descrito por cualquiera de los algoritmos de multiplicación disponibles, por ejemplo la multiplicación por sumas sucesivas. Obviamente, el punto de partida sería el algoritmo, ya que el conjunto procesador-controlador no nos suministra la suficiente información para continuar.  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En el siguiente nivel, el comportamiento estaría descrito por un diagrama ASM en el cual estarían descritas todas las operaciones así como la secuencia en la que se han de realizar dichas operaciones. En dicho nivel se tiene la información suficiente para que la descripción estructural sea lo suficientemente precisa para que tenga un sentido lógico. Por lo tanto, en este nivel se suele realizar el proceso de síntesis. El proceso de síntesis se puede definir como el proceso por el cual se pasa del dominio de comportamiento al estructural siguiendo una serie de restricciones. En la figura 1.20 sólo mostramos el esquema correspondiente al procesador. De hecho, para no saturar la figura, sólo se ha considerado una celda para descender de nivel en la jerarquía. Una vez que tenemos los elementos de procesado del nivel RTL, debemos implementarlo con puertas lógicas y biestables. El comportamiento de este nivel estaría descrito a partir de ecuaciones lógicas (booleanas) y diagramas de estado; no obstante, la complejidad (en cuanto al número de componentes) de este nivel es lo suficientemente grande como para que el sistema de estas ecuaciones sea intratable. Como ejemplo mostramos como estaría formado el registro acumulador con las condiciones de habilitación y reset síncrono. En el siguiente nivel se obtendrá la estructura eléctrica de los componentes lógicos: puertas y biestables; para ello, se elegirá la familia lógica que mejor se adapte a las especificaciones. En el ejemplo se ha considerado una familia lógica CMOS estática. Por último, se debe pasar de este esquema a nivel de transistores al layout en el cual se indicarán las capas que se necesitan así como su forma y tamaño.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Algoritmos

Procesador

Controlador

R G

G U/D L CNT

Diagrama ASM

D

+ D

R G Ecuaciones lógicas y ecuaciones de estado

REG Q

Q

D0

Dn

DQ

DQ

Q0

Ecuaciones eléctricas

Ecuaciones de campo eléctrico

Figura 1.20. Diferentes pasos del flujo de diseño top-down  

Qn

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Un flujo de diseño ampliamente utilizado es el mostrado en la figura 1.21. En él podemos distinguir los siguientes pasos: • partimos de una descripción informal del comportamiento deseado del circuito que queremos diseñar. • A partir de esta descripción, generaremos una descripción en un lenguaje de descripción de hardware (como puede ser VHDL). Dicha descripción puede ser a nivel de comportamiento o directamente a nivel de estructura; no obstante, lo usual es obtener una descripción a nivel de comportamiento que con los algoritmos adecuados proporcionará una descripción a nivel de estructura. • Esta estructura es traducida a componentes de niveles inferiores en la jerarquía como son las puertas lógicas y biestables. • Las puertas lógicas son diseñadas o elegidas de una librería de celdas (ya se verá posteriormente la diferencia) hasta el nivel físico o layout. • Con estos layout se hará una planificación del espacio para poder determinar el lugar en el que se colocarán las diferentes celdas. • Una vez que se han colocado todas las celdas, se realizará el conexionado de todos los nodos del circuito. En el proceso anterior no se ha comentado nada sobre ninguna estrategia a la hora de pasar de un nivel a otro. Realmente, las únicas diferencias se encuentran en las dos últimas etapas: el nivel eléctrico y físico. Todas las estrategias se pueden dividir en dos grandes grupos: • Circuitos full-custom o completamente a medida. En este caso, como su propio nombre indica, todas las puertas son realizadas por el diseñador de tal forma que se obtenga una mejor adaptación a las especificaciones del diseño. Esta realización propia será a nivel eléctrico (esquema de transistores con las dimensiones específicas) y físico (layout, que podemos crear layouts diferentes para una misma celda con el fin de que encaje mejor en el circuito reduciendo el área ocupada). • Circuitos semi-custom o semi-medida. En este caso, se utiliza una librería de celdas que impone el esquema a nivel eléctrico y el layout de los diferentes componentes. La única libertad que le queda al diseñador en estos niveles es la colocación de las celdas en el layout final (siempre y cuando se cumplan una serie de restricciones, como es su colocación en hileras). El destino de esta estrategia puede ser un circuito integrado, denominado entonces basado en celdas, o un dispositivo programable, denominado entonces basado en matrices.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 1.21. Flujo de diseño. Como es obvio, ambas estrategias tendrán características diferentes. Así los circuitos full-custom son los que presentan mejores prestaciones a costa de un mayor tiempo de diseño, debido a la realización de todas las celdas. Por el contrario, los circuitos semi-custom mejoran los tiempos de diseño a costa de un empeoramiento en las prestaciones. Dentro de los circuitos semi-custom, aquellos basados en matrices son los que tienen un tiempo de diseño menor ya que no es necesaria el proceso de integración ya que se dispone del dispositivo, que con un proceso de programación adquirirá el comportamiento adecuado. Luego, no podemos encontrar el circuito ideal en el que se optimicen simultáneamente el tiempo de diseño y sus prestaciones, por lo que hay que llegar a un compromiso para decidir la estrategia con la cual abordar la tarea de diseño. AUTOEVALUACIÓN: 1. Describa que es un proceso de diseño FULL CUSTUM 2. Una propiedad muy importante de los sistemas digitales es la jerarquía. Defínala. 3. A qué se le denomina layout 4. Que son los procesos de well gemelos?  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

5. Las técnicas de diseño no son más que unos procedimientos para desplazarnos a través de los diferentes niveles de jerarquía del circuito. Cuál es la diferencia entre diseño top-down y diseño bottom-up?

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CAPÍTULO 2: REPASO DE ELECTRONICA DIGITAL INTRODUCCION El proceso de miniaturización de la electrónica, iniciado en la década de los cincuenta con la utilización del transistor, continuó con un segundo salto cualitativo en la década siguiente (años sesenta) mediante la integración de subcircuitos completos en un mismo substrato de silicio (chip): subcircuitos correspondientes a módulos digitales tales como puertas booleanas, biestables o bloques combinacionales o secuenciales. Los circuitos digitales son sumamente apropiados para su inserción en circuitos integrados: de un lado, la ausencia de autoinducciones y el poder prescindir, asimismo, de condensadores reduce los elementos a integrar a transistores y resistencias y a las conexiones de estos entre sí; de otro, la propia modularidad de los sistemas digitales precisa de un número reducido de tipos de puertas lógicas, e incluso, basta con un solo tipo de ellas (puertas Nand o Nor). Por ello, los circuitos integrados invadieron muy pronto el campo digital; en unos pocos años resultó anacrónico y antieconómico construir las puertas booleanas con componentes discretos, una vez que se disponía de una gran variedad de puertas lógicas y de una amplia serie de funciones de gran complejidad construidas dentro de un circuito integrado. El presente capítulo está hecho con la finalidad de comprender en líneas generales el funcionamiento de las familias lógicas CMOS y TTL. En primer lugar, las puertas bipolares que condujeron a la gran familia TTL (cuya amplia difusión consolidó la lógicaintegrada); luego las tecnologías MOS, hasta llegar a la predominante HCMOS; la mezcla BiCMOS (bipolar-CMOS) que resulta muy apropiada para circuitos «interbús» (en medio de los buses); y la derivación actual hacia series de bajo voltaje (pasando de la alimentación habitual de 5 V a sólo 3 V). En todo caso, para elegir y utilizar correcta y eficazmente una familia lógica (y, dentro de ella, una serie específica) es preciso tener en cuenta sus características funcionales. LECCIÓN 1: PUERTAS LOGICAS Una compuerta lógica es aquel circuito digital que tiene la capacidad de aplicar un proceso interno a sus n bits de entrada, que cumple con alguna de las operaciones definidas en el Álgebra de Boole, y que cuyos resultados son manifiestos en sus bits de salida. En la figura 2.1 podemos observar las  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

operaciones del Algebra de Boole, sus tablas de verdad y representación gráfica. Figura 2.1. Propiedades del Algebra de Boole: Tablas y representación gráfica

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

PRIMERAS FAMILIAS LÓGICAS: C. I. CON TRANSISTORES BIPOLARES Las primeras puertas lógicas integradas eran mera copia directa de las puertas "onegada" (Nor) con componentes discretos, mediante la conexión en paralelo de varios transistores bipolares NPN en emisor común; tales puertas dieron lugar a la primera familia lógica: RTL (lógica de transistores y resistencias).

Figura 2.2. Puerta NOR RTL Pronto se mejoraron las características de estas puertas integradas, en cuanto a velocidad y a consumo, combinando una puerta "y" de diodos con un transistor inversor en emisor común; así se configuró la puerta "y-negada" (Nand) base de la familia DTL (lógica de transistores y diodos) que fue la primera que llegó a alcanzar una difusión apreciable.

Figura 2.3. Puerta NAND DTL A partir de este esquema (puerta "y" + inversor), aprovechando en mayor profundidad las posibilidades que ofrece la integración sobre un substrato único, se planteó una segunda mejora en velocidad y en consumo, añadiendo una etapa de salida amplificadora de intensidad (dos transistores en push-pull) y substituyendo los diodos por un transistor multi emisor. El resultado fue la gran  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

familia lógica TTL (lógica de transistores con transistores).

Figura 2.4. Puerta NAND TTL La puertas TTL se alimentan a 5 V; su tensión de conmutación se sitúa en el entorno de 1,2 V, de manera que un 0 en la entrada ha de ser menor de 1 V (ViLmáx = 1 V) y, en cambio, una tensión superior a 1,5 V es entendida como un 1 (ViHmín = 1,5 V); la tensión de salida para el 0 es 0 V, pero la correspondiente al 1 es de solamente 4 V. Los tiempos de propagación de la serie TTL estándar son del orden de 10 ns. y el consumo promedio es de unos 2 mA (10 mW). La familia TTL proporcionó la base del gran desarrollo que tuvieron los sistemas digitales durante la década de los 70; su amplia difusión y utilización favoreció la aparición de diversas series derivadas de la mejora de características concretas, una de las cuales, la serie LS ha sustituido por completo a la serie estándar inicial y es la que se ha seguido utilizando a lo largo de la década de los 80. Posteriores series «avanzadas» con el mismo esquema circuital han aprovechado la reducción de dimensiones de los transistores y la correspondiente disminución de sus capacidades parásitas para conseguir tiempos de propagación inferiores: la serie 74ALS (advanced LS) presenta tiempos por debajo de 4 ns, mientras que las series 74F (fast-TTL) y 74AS (advanced Schottky) ofrecen tiempos de propagación del orden de 2,5 ns y 1,5 ns, respectivamente, a costa de un mayor consumo (por utilizar resistencias de menor valor).

Esta línea de evolución de las puertas con transistores bipolares constituye la «edad antigua» de los circuitos integrados digitales; actualmente, apenas se utilizan las familias bipolares, salvo en determinadas aplicaciones específicas, en  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

particular, para sistemas de muy alta velocidad. La serie 74LS sigue siendo útil para «recambio y mantenimiento» de los numerosos sistemas digitales que han sido construidos con ella (o con la serie estándar 74), la serie 74ALS se emplea en circuitos «interbús» (aplicación que consideraremos un poco más adelante) y la serie 74F resulta adecuada para diseños de muy alta velocidad de trabajo (frecuencias superiores a los 100 MHz). DESARROLLO DE LAS TECNOLOGÍAS MOS: FAMILIA CMOS La integración de transistores MOS presentó inicialmente grandes dificultades, derivadas de ser un efecto superficial que es afectado por cualquier impureza o dislocación en la superficie del cristal de silicio; fue preciso desarrollar técnicas de muy alta limpieza ambiental que no estuvieron disponibles hasta mediados de los años setenta. Sin embargo, una vez que se dispuso de tales técnicas, las extraordinarias ventajas de los transistores MOS (referidas a autoaislamiento, autoalineamiento, tamaño y consumo) determinaron un rápido desarrollo y difusión de los circuitos integrados digitales MOS. En una primera fase resultó más sencillo integrar transistores MOS de canal P, pero pronto fueron desplazados por los transistores NMOS cuya velocidad de conmutación es apreciablemente mayor (debido a la mayor movilidad de los electrones respecto de los huecos). La utilización de transistores MOS como «resistencias de polarización» permitió configurar puertas lógicas utilizando únicamente transistores, cuyo área de integración es mucho menor, al prescindir de resistencias integradas de valores relativamente altos. De esta forma, las puertas MOS suponen un nuevo avance cualitativo en la miniaturización de la electrónica digital, reducción que afecta no solamente al tamaño y a la densidad de integración, sino también, y en forma aún más significativa, al consumo. La tecnología NMOS actual utiliza puertas formadas por un plano de transistores activos NMOS y un transistor MOS de empobrecimiento como resistencia de polarización; aprovecha plenamente la tensión de alimentación, pues VoH = VCC y VoL ≈ 0 V, y su consumo es muy reducido, ya que Ri ~ ∞ y la resistencia del transistor de polarización se hace adecuadamente alta. Esta tecnología resulta apropiada para la integración de muy alta densidad (VLSI) y sigue utilizándose en grandes bloques digitales (microprocesadores, memorias, etc.) y en los circuitos integrados programables de tipo matricial (PROM, PAL, PLA, PLS). La primera serie CMOS adoptó el indicativo 40 y presentaba fuertes limitaciones en cuanto a velocidad e inmunidad frente al ruido. Esta serie admite un amplio intervalo de tensiones, desde 3 a 18 voltios, y rizados del 10% (debido a su reducido consumo), lo cual elimina la necesidad de un buen filtrado y estabilidad en la fuente de alimentación; su velocidad depende fuertemente de la tensión de  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

alimentación, con tiempos de propagación de 200 ns para VCC = 3 V que pasan a ser de 100 ns para VCC = 5 V y se reducen a 20 ns cuando VCC = 15 V.

PUERTAS LÓGICAS DE LA FAMILIA CMOS Inversores CMOS La circuitería del INVERSOR CMOS básico se muestra en la Figura 2.5. El Inversor CMOS tiene dos MOSFET en serie de modo que, el dispositivo con canales P tiene su fuente conectada a + VDD (un voltaje positivo) y el dispositivo de canales N tiene su fuente conectada a masa. Las compuertas de los dos dispositivos se interconectan con una entrada común. Los drenajes de los dos dispositivos se interconectan con la salida común. El circuito mostrado en la Figura 2.5 representa un Inversor CMOS y está formado por un transistor de canal tipo P (QP1) y otro de canal tipo N (QN1). Los niveles lógicos para CMOS son esencialmente + VDD para 0 y 1 lógicos y 0 V para el 0 lógico. Consideremos primero el caso donde A1 = + VDD (la entrada A1 está en un nivel alto (‘1’)). En está situación, la compuerta de QP1 (canales P) está en 0 V en relación con la fuente de QP1. De este modo, QP1 estará en el estado OFF con ROFF =10*10 Ω. La compuerta de QN1 (canales N) estará en + VDD en relación con su fuente, es decir, transistor QP1 se pone en estado de corte y el transistor QN1 se activa. El resultado es un camino de baja impedancia de tierra a la salida y uno de alta impedancia de VDD a la salida F. A continuación, consideremos el caso donde A1 = 0 V (la entrada A1 está en nivel bajo (‘0’)). QP1 tiene ahora su compuerta en un potencial negativo en relación con su fuente, en tanto que QN1 tiene VGS = 0 V. De este modo, QP1 estará encendida con RON=1 k Ω, y QN1 apagada con ROFF = 10*10 Ω, produciendo un F de aproximadamente + VDD. En resumen QP1 se activa y el transistor QN1 se pone en estado de corte. El resultado es un camino de baja impedancia de VDD a la salida F y uno de alta impedancia de tierra a la salida. Como podemos observar, los transistores operan de forma complementaria. Cuando la tensión de entrada se encuentra en alto (1 lógico), el transistor NMOS entra en estado de conducción y el transistor PMOS entra en corte, haciendo que la salida quede en bajo (0 lógico). La situación inversa ocurre cuando la tensión se encuentra en bajo.  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Estos datos de operación se resumen en la Figura 2.5, donde se muestra que el circuito actúa como un inversor lógico.

Figura 2.5. Inversor CMOS

Compuerta NAND CMOS Se pueden construir otras funciones lógicas diferentes del inversor básico. La Figura 2.6 muestra una compuerta NAND formada por la adición de un MOSFET de canales P en paralelo y un MOSFET de canales N en serie al INVERSOR básico. Para analizar este circuito conviene recodar que una entrada de 0 V enciende el P-MOSPET y apaga el N-MOSFET correspondientes, y viceversa para una entrada +VDD. Cuando ambas entradas (A1 y B1) están en nivel alto (+VDD), hacen que los transistores QP1 y QP2 entren en corte y se encienden ambos N-MOSFET (transistores QN1 y QN2), con lo cual ofrece una baja resistencia de la terminal de salida a tierra (la salida pasa a bajo (0) a través de QN1 y QN2). En todas las otras condiciones de entrada, de cuando menos un P-MOSFET estará encendido en tanto que al menos un N-MOSFET estará apagado. Esto produce una salida ALTA (a través de QP1 y QP2). Las entradas no usadas de una compuerta CMOS no se pueden dejar abiertas, porque la salida resulta ambigua. Cuando sobra alguna entrada de una compuerta CMOS se debe conectar a otra entrada o a uno de los dos terminales de alimentación. Esto también es válido para circuitos secuenciales y demás circuitos CMOS, como por ejemplo, contadores, Flip-Flops, etc. Estos datos de operación se resumen en la  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura, donde se muestra que el circuito actúa como una compuerta NAND CMOS.

Figura 2.6. Compuerta NAND CMOS

Compuerta NOR CMOS Una compuerta NOR CMOS se forma agregando un P-MOSFET en serie y un NMOSFET en paralelo al inversor básico Figura 2.7. Una vez más este circuito se puede analizar entendiendo que un estado BAJO en cualquier entrada enciende P-MOSFET (QP1 y QP2 entran a conducción) y apaga el N-MOSFET (QN1 y QN2 entran a corte) correspondiente. La salida pasa a alto (1) a través de QP1 y QP2. Las entradas en un estado ALTO, hacen que los transistores QP1 y QP2 entren en corte y ambos transistores QN1 y QN2 en conducción (la salida pasa a bajo (0) a través de QN1 y QN2). En las parejas de transistores ya sean de canal n ó de canal p, si cualquier entrada es baja, uno de los transistores entra a corte y otro a conducción. La salida pasa a bajo (0) acoplándose a través de transistores en conducción a tierra.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 2.7. Compuerta NOR CMOS

Compuertas AND Y OR Las compuertas AND y OR CMOS se pueden formar combinando compuertas NAND y NOR con inversores.

AUTOEVALUACION

1. Defina que es una compuerta lógica 2. Cuáles son las ventajas y desventajas entre las familias TTL y CMOS? 3. Muestre mediante un circuito cómo podemos formar compuertas AND y OR mediante la combinación de NAND y NOR con inversores.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: DIAGRAMAS DE TIEMPOS, RETARDOS Al llegar una señal a la entrada de una puerta lógica, la respuesta a dicha señal no aparece instantáneamente en la salida, sino que existe un cierto tiempo de retardo; este tiempo es diferente según la transición de estado de la puerta sea de 0 a 1 o de 1 a 0: • Retraso de propagación de bajo a alto, tPLH.- tiempo transcurrido desde que la señal de entrada baja (pasa por el 50%) hasta que la señal de salida sube (pasa por el 50%). • Retraso de propagación de alto a bajo, tPHL.- tiempo transcurrido desde que la señal de entrada sube (pasa por el 50%) hasta que la señal de salida baja (pasa por el 50%). El hecho de subida y bajada se debe a que las principales familias son negativas, es decir, la salida que obtenemos es el valor negado de dicha función. • Retraso de propagación.- valor medio de tPLH y tPHL. • Tiempo de transición de bajo a alto, tTLH.- tiempo transcurrido desde que la señal empieza a subir (pasa por el 10%) hasta que llega a un nivel alto (pasa por el 90%). • Tiempo de transición de alto a bajo, tTHL.- tiempo transcurrido desde que la señal empieza a bajar (pasa por el 90%) hasta que llega a un nivel bajo (pasa por el 10%). Es decir, se considera que una transición se ha completado cuando pasamos de los umbrales del 10% y el 90%. Este hecho es debido a que la forma de onda a partir de esos valores cambia, pudiendo no llegar nunca a los valores del 0% o al 100%.

Figura 2.8. Retardos de propagación en puertas lógicas  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Ambos tiempos de propagación suelen tener valores próximos entre sí, lo cual permite utilizar su promedio como tiempo de propagación genérico: tP = (tPLH + tPHL) / 2 Los tiempos de propagación, es decir, los retrasos de la salida respecto a las variaciones de las entradas dependen de la impedancia de carga conectada sobre la salida, es decir, de la capacidad equivalente que presenta el conjunto de entradas conectadas a ella. Por ello, los tiempos de propagación se miden en condiciones similares al funcionamiento normal de la puerta, supuesto un número máximo razonable de entradas conectadas a su salida; en el caso CMOS, sus entradas son de tipo capacitivo, del orden de unos pocos picofaradios, de forma que los tiempos de propagación CMOS suelen medirse y expresarse en relación a una carga de 50 pF. Los valores típicos de los tiempos de propagación se expresan para 25°C, ya que tales tiempos dependen de la temperatura, aumentando con ella; esta dependencia se debe a que las resistencias de paso de los transistores MOS aumentan con la temperatura, por disminuir con ella la movilidad de sus portadores. Interesa, por ello, evitar el funcionamiento de los circuitos digitales a temperaturas altas y, si es necesario, se les dota de adecuados mecanismos de refrigeración. Al conectar dos puertas, una a la salida de la otra, el tiempo de propagación del conjunto es mayor que los tiempos individuales pero es inferior a la suma de ambos. Es decir, los tiempos de propagación no son linealmente acumulativos ya que la segunda puerta inicia su conmutación antes de que la primera complete la suya. Para facilitar la suma de tiempos en puertas sucesivas, cada tiempo de propagación suele medirse por el retraso entre el punto medio de conmutación (tensión Vcc/2) de la onda de entrada y el punto medio de la conmutación de la señal de salida. Retardo de propagación de las compuertas TTL y CMOS. TTL

CARACTERÍSTICA F Retardo de Propagación de puerta, tp (ns)

1. Cómo se definen el tPLH y el tPHL ? 2. Qué es el retraso de propagación?  

CMOS 5 V

LS ALS LV LVC ALVC HC AC AHC

3,3 10 7

AUTOEVALUACION

CMOS 3,3 V

9 4,3 3

7

5

3,7

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

3. Podemos afirmar que el retardo de propagación de puerta es mayor en las familias de TTL que en las familias CMOS? justifique

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: CIRCUITOS COMBINACIONALES Los circuitos lógicos digitales pueden ser de dos tipos: combinacionales o secuenciales. Sistemas digitales combinacionales: Aquellos en los que sus salidas sólo depende del estado de sus entradas en un momento dado. Por lo tanto, no necesita módulos de memoria, ya que las salidas no dependen de los estados previos de las entradas. Sistemas digitales secuenciales: Aquellos en los que sus salidas dependen además del estado de sus entradas en un momento dado, de estados previos. Esta clase de sistemas necesitan elementos de memoria que recojan la información de la 'historia pasada' del sistema. Diremos pues, que un circuito combinacional real es aquel en el cual las salidas dependen exclusivamente de las señales de entrada aplicadas, una vez transcurrido el tiempo necesario para la estabilización de las salidas, desde la aplicación de las señales de entrada. Entre los circuitos combinacionales clásicos tenemos: Lógicos Generador/Detector de paridad Multiplexor y Demultiplexor Codificador y Decodificador Conversor de código Comparador Aritméticos Sumador Aritméticos y lógicos Unidad aritmético lógica Estos circuitos están compuestos únicamente por puertas lógicas interconectadas entre sí. De la definición se deduce que cada salida en un instante de tiempo determinado, depende exclusivamente de las entradas al circuito en el mismo instante de tiempo, pero no depende de las entradas que hubo en instantes de tiempo anteriores (no tiene "memoria"). x1 F x2  

F(t) = (x1 (t) , x2(t), ... )

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Ahora bien, en cuanto a la implementación mediante circuitos electrónicos, hay que matizar algunos detalles. Hemos visto que las puertas lógicas obtenían a su salida una señal, que dependía sólo de las entradas, pero esta salida no se estabilizaba hasta transcurrido un pequeño intervalo de tiempo desde la aplicación de las señales de entrada (del orden de nanosegundos). Por otro lado, si el circuito combinacional tiene varias entradas (n), también puede tener varias salidas (m). Para "n" variables de entrada tenemos 2n combinaciones binarias posibles. Por tanto, podemos expresar un circuito combinacional mediante una tabla de verdad que lista los valores de todas las salidas para cada una de las combinaciones de entrada. Un circuito combinacional también puede describirse mediante "m" funciones lógicas, una para cada variable de salida; cada una de las cuales se presenta como función de las "n" variables de entrada. E0

Sistema

E1

Combinacional

En

S0 S1 Sm

Figura 2.9. Sistema combinacional

CIRCUITOS SUMADORES Sumador binario El sumador binario es el elemento básico de la unidad aritmética de cualquier ordenador, pues cualquier operación aritmética básica puede realizarse a partir de sumas y restas repetidas. Para sumar dos números de n bits, hay que sumar dos a dos los bits del mismo peso y el acarreo de la suma de los bits de peso inmediato inferior. Semisumador (half adder) Es un circuito combinacional que realiza la suma de dos dígitos binarios, obteniendo su suma y el acarreo para la etapa siguiente. No tiene en cuenta el bit de acarreo de la etapa anterior. Su tabla de verdad, y símbolo como bloque es:

 

a

b

S

C

0 0 1 1

0 1 0 1

0 1 1 0

0 0 0 1

a

b

1/2

Suma (S)

Acarreo (C)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Implementando por "1": S = a' · b + a · b' = a

b

C=a·b La suma S responde a una función OR-exclusiva y el acarreo C a una función AND.

Figura 2.10. Semisumador Si no deseamos utilizar la puerta OR-Exclusiva por su coste superior, el semisumador se puede implementar de la siguiente forma:

Figura 2.11. Semisumador con AND, OR, INVERSOR Etapa de sumador (sumador completo) Es un circuito combinacional capaz de sumar dos dígitos (cifras) binarios, teniendo en cuenta el acarreo producido en la etapa anterior. Obtiene la suma y el acarreo para la etapa siguiente. Su tabla de verdad y símbolo como bloque es:

 

a

b

Cin

S

Cout

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 1 1 0 1 0 0 1

0 0 0 1 0 1 1 1

a b Cin

Suma (S)

Acarreo (Cout )

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

a y b = Variables de entrada Cin = Acarreo entrada (etapa anterior) S = Suma Cout = Acarreo salida (etapa siguiente)

Una forma simple de implementar la etapa de sumador es a partir de dos semisumadores. Como hay que sumar los dos bits (dígitos) del mismo peso más el acarreo anterior, se utiliza un semisumador para sumar los dos dígitos y el resultado se suma con el acarreo anterior mediante otro semisumador. Si en alguna de las dos sumas parciales se produce acarreo, habrá acarreo en la etapa de sumador (función OR). Esto puede comprobarse en la tabla de verdad. La etapa de sumador puede implementarse con el siguiente circuito.

Figura 2.12. Sumador completo CODIFICADORES Y DECODIFICADORES Codificadores Son circuitos combinacionales que permiten pasar una información en forma decodificada (dígito decimal u octal) a una forma codificada (BCD o binario). Si nos limitamos a sistemas binarios, el codificador deberá tener n salidas si queremos codificar m entradas, siendo m=2n. De esta forma, m informaciones diferentes quedan representadas mediante grupos de n bits, es decir, las líneas de salida generan el código binario correspondiente al valor de entrada.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Ejemplo: Codificador octal a binario Tenemos 8 entradas, una para cada dígito octal, y tres salidas que generan el número binario correspondiente. Se supone que sólo una entrada tiene un valor de 1 en cualquier momento.

E7 0 0 0 0 0 0 0 1

E6 0 0 0 0 0 0 1 0

E5 0 0 0 0 0 1 0 0

Entradas E4 E3 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0

E2 0 0 1 0 0 0 0 0

E1 0 1 0 0 0 0 0 0

E0 1 0 0 0 0 0 0 0

S2 0 0 0 0 1 1 1 1

Salidas S1 S0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1

Si implementamos por “1”, obtenemos las funciones lógicas de las 3 salidas: S0 = E1 + E3 + E5 + E7 S1 = E2 + E3 + E6 + E7 S2 = E4 + E5 + E6 + E7 Vemos que el decodificador puede implementarse con 3 puertas OR de 4 entradas. Este decodificador tiene la limitación de que sólo puede estar activa una entrada en un momento dado: si se activan simultáneamente dos entradas, la salida produce una combinación incorrecta. Para resolver esta ambigüedad, algunos circuitos codificadores deben establecer una prioridad de entrada para asegurar que sólo se codifique una entrada. Por ejemplo, en este caso podríamos haber establecido una prioridad más alta para las entradas con subíndices mayores. Otra ambigüedad de este codificador es que se genera una salida de 0’s cuando todas las entradas son 0, pero esta salida es igual que cuando D0=1. Esta discrepancia puede resolverse dando una salida más para indicar que al menos una de las entradas es igual a 1. Tipos de codificadores:  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Existen dos tipos de codificadores: Codificadores sin prioridad Codificadores con prioridad Cualquier codificador que funcione como el descrito anteriormente recibe el nombre de codificador sin prioridad, y se caracteriza porque, en caso de presentarse dos entradas simultáneas o más, las salidas obtenidas serán todas aquellas que correspondan a cada entrada por separado. Por tanto, en estos codificadores sólo se puede poner a “1” una sola entrada, pues de otro modo, la salida es incorrecta. Existe otro tipo de codificadores, llamados codificadores con prioridad, que en el caso de activarse más de una entrada, la combinación de salidas obtenida corresponde a la entrada de mayor valor decimal de entre las activadas. Por ejemplo, si pulsamos las teclas 1 y 3 simultáneamente, se queda con el 3.

Decodificadores Realizan la función inversa de los codificadores. Partiendo de una información codificada de n bits, obtiene la información de que se trata. El número m de informaciones que se pueden obtener (salidas) debe ser tal que m=2n. Si la información codificada de n bits tiene combinaciones no usadas (indiferencias), el decodificador podría tener menos de 2 n salidas.

Ejemplo 1: Decodificador de BCD a decimal Su tabla de verdad es:

E3 0 0 0 0

 

Entradas E2 E1 0 0 0 0 0 1 0 1

E0 0 1 0 1

S9 0 0 0 0

S8 0 0 0 0

S7 0 0 0 0

S6 0 0 0 0

Salidas S5 S4 0 0 0 0 0 0 0 0

S3 0 0 0 1

S2 0 0 1 0

S1 0 1 0 0

S0 1 0 0 0

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

0 0 0 0 1 1 1 1 1 1 1 1

1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 1 x x x x x x

0 0 0 0 1 0 x x x x x x

0 0 0 1 0 0 x x x x x x

0 0 1 0 0 0 x x x x x x

0 1 0 0 0 0 x x x x x x

1 0 0 0 0 0 x x x x x x

0 0 0 0 0 0 x x x x x x

0 0 0 0 0 0 x x x x x x

0 0 0 0 0 0 x x x x x x

0 0 0 0 0 0 x x x x x x

Implementando por "1": S5 = E3' · E 2 · E 1’ · E 0 S6 = E3' · E 2 · E 1 · E 0' S7 = E3' · E 2 · E 1 · E 0 S8 = E3 · E 2' · E 1' · E 0' S9 = E3 · E 2' · E 1' · E 0

S0 = E3' · E 2' · E 1' · E 0' S1 = E3' · E 2' · E 1' · E 0 S2 = E3' · E 2' · E 1 · E 0' S3 = E3' · E 2' · E 1 · E 0 S4 = E3' · E 2 · E 1' · E 0'

Si no simplificamos las funciones, utilizando inversores y puertas AND de 4 entradas podemos implementar el circuito del siguiente modo E0

E1

E2

E3

S0

S9

Figura 2.13. Decodificador Este decodificador activa (pone a 1) una de sus salidas, cuando se presenta una combinación válida en la entrada. En cambio, si el código no es válido (por ejemplo,  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

1 1 1 1), no se activa ninguna salida. Por tanto, con este diseño se eliminan las combinaciones de entrada no válidas. Es posible diseñar un decodificador que no elimine las combinaciones no válidas, con la ventaja de que resulta un circuito más simple y económico. Ejemplo 2: Decodificador de BCD a segmentación en siete Los dispositivos de visualización de las calculadoras electrónicas y relojes digitales utilizan diodos emisores de luz (LEDs). Cada dígito del dispositivo se forma con siete segmentos, cada uno consistente en un LED que se ilumina mediante señales digitales. El decodificador que vamos a ver es un circuito combinacional que acepta un dígito decimal en BCD y genera las salidas adecuadas para la selección de los segmentos que representan el dígito decimal.

Disposición de los segmentos en un display de 7 segmentos: A B C D

Circuito combinacional: decodificador BCD a 7 segmentos

a

a..g f

b

e

c d

Segmentos activos para todos los dígitos decimales:

Figura 2.14. Decodificador BCD a 7 segmentos Como vemos, cada segmento se utiliza para varios dígitos decimales, pero ninguno de ellos se emplea para representar todos los dígitos decimales. Por tanto, debemos determinar los segmentos que hay que activar para cada uno de los dígitos decimales. Dígito decimal 0 1 2 3  

Segmentos activados a,b,c,d,e,f b,c a,b,d,e,g a,b,c,d,g

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

4 5 6 7 8 9

b,c,f,g a,c,d,f,g a,c,d,e,f,g a,b,c a,b,c,d,e,f,g a,b,c,d,f,g

La lógica de decodificación de segmentos requiere cuatro entradas en código decimal binario (BCD) y siete salidas, una para cada segmento del display. La tabla de verdad será de salida múltiple, equivalente a 7 tablas de verdad, una por segmento. Vamos a considerar que al tener "1" en las salidas, el segmento correspondiente está encendido.

Díg. dec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Entradas C B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

a 1 0 1 1 0 1 1 1 1 1 x x x x x x

b 1 1 1 1 1 0 0 1 1 1 x x x x x x

Salidas c d 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 x x x x x x x x x x x x

e 1 0 1 0 0 0 1 0 1 0 x x x x x x

f 1 0 0 0 1 1 1 0 1 1 x x x x x x

g 0 0 1 1 1 1 1 0 1 1 x x x x x x

MULTIPLEXORES Y DEMULTIPLEXORES

Multiplexores Son circuitos combinacionales con una estructura de varias entradas y una única salida de datos. Permiten seleccionar una de las entradas para realizar la transmisión de datos desde dicha entrada a la salida, que es única. Los demultiplexores realizan la función inversa.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Esquemáticamente: Entradas

Salida

Entrada

Multiplexor

Salidas

Demultiplexor Figura 2.15. Multiplexor (a) y Demultiplexor (b)

Un multiplexor es un selector de datos equivalente a un conmutador de "m" entradas y una salida, por lo que también recibe el nombre de selector de datos o conmutador electrónico. La selección de la entrada se controla mediante unas entradas de selección o control. Cuando sólo tenemos una entrada de control (2 entradas), también se le llama entrada de habilitación (enable). La entrada seleccionada viene biunívocamente determinada por la combinación de "0" y "1" en las entradas de control. Por tanto, si tenemos "m" entradas de datos, harán falta "n" entradas de control, siendo m=2n . El diagrama de bloques es: E0 E1 E2

MUX 4 entradas

E3

C0

 

C1

S

"m" entradas de información "n" entradas de control (m=2n) 1 única salida (S)

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Como la salida de datos será igual a la entrada de datos seleccionada, podemos obtener una expresión lógica para la salida en función de las entradas de datos y las entradas de selección. Ejemplo: un multiplexor de 4 entradas de datos (4 a 1) Su tabla de verdad es

En donde la x significa que el valor de dicha entrada no influye en la salida. Implementando por "1" tenemos: S = C 1' · C 0' · E 0 + C 1' · C 0 · E1 + C 1 · C 0’ · E 2 + C 1 · C 0 · E 3 Esta función se puede simplificar más. La implementación con puertas lógicas es la siguiente:

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

E0 E1

S

E2

E3

C0

C1 Figura 2.16. Multiplexor

Para diferente número de entradas el circuito tiene la misma estructura.

Demultiplexores Un demultiplexor es un circuito combinacional que realiza la función inversa de un multiplexor, es decir, expande un circuito de una sola señal de entrada a varias señales de salida: 2n. La información se redirige a una sola salida. La selección de la salida específica es controlada por la combinación de bits de n líneas de selección o control.

El diagrama de bloque es: S0 E

DEMUX 4 salidas

1 entrada única (E) “n“entradas de control (m=2n) “m“ salidas

S1 S2 S3

C0

C1

El circuito es: E  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Si examinamos el circuito veremos que el circuito demultiplexor es idéntico a un decodificador de 2 a 4 líneas con entrada de habilitación:

S0 S1 S2 S3

C0

Para el decodificador: las entradas de datos son C0 y C1, y la habilitación es la entrada E. Para el demultiplexor: la entrada E provee los datos, mientras que las entradas C 0 y C1 son las entradas de control o selección.

C1

Figura 2.17. Demultiplexor Aunque ambos circuitos tienen aplicaciones diferentes, sus diagramas lógicos son idénticos. Por esto, a los decodificadores con entrada de habilitación se les llama decodificador/demultiplexor. Las aplicaciones de los demultiplexores son: Conversor serie-paralelo. Ejemplo de demultiplexor: 74154, de 16 salidas. CIRCUITOS COMPARADORES La función básica de un comparador consiste en comparar las magnitudes de dos cantidades binarias (n bits) para determinar su relación: igualdad y desigualdad (menor, mayor):

AB

El símbolo como bloque es: S1 (AB)

B

A = a n ... a 1 (n bits) B = b n ... b 1 (n bits)

n Sólo una de las tres salidas se pondrá a “1“, indicando la magnitud de A respecto de B. Comparador de números binarios de 1 bit  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Vamos a diseñar un comparador de 2 números A y B de 1 bit cada uno (a y b). El comparador tendrá dos entradas (a y b) y 3 salidas (S 1, S2, S 3): La tabla de verdad: Entradas a 0 0 1 1

b 0 1 0 1

S1 (ab) 0 0 1 0

Implementando por “1“ las tres funciones de salida: S1 = a'·b S2 = a'·b' + a·b = (a S3 = a·b'

b)' = ( a'·b + a·b' )'

El circuito básico será: a

S1 (ab) Figura 2.18. Comparador con compuertas

GENERADORES/COMPROBADORES DE PARIDAD Durante la transmisión de información binaria se pueden producir errores. Para detectar estos errores se utiliza el método de paridad, el cual utiliza un bit de paridad. La idea del método de paridad es la siguiente. Cualquier grupo de bits contiene un número par o impar de 1's. Lo que hacemos es añadir un bit de paridad. Un bit de paridad es un bit adicional incluido en el mensaje binario para hacer que la cantidad de unos sea par o impar. El mensaje se transmite (incluyendo el bit de paridad), y luego se comprueba en el extremo receptor. Si la cantidad de bits 1's del mensaje no corresponden al bit de paridad transmitido quiere decir que uno de los bits ha cambiado de valor, y por tanto, se detecta un error. El circuito que genera el bit de paridad del transmisor se llama generador de  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

paridad. No importa si se añade al principio o al final del mensaje a transmitir. El circuito que comprueba el bit de paridad en el receptor se llama comprobador de paridad. Obviamente, un determinado sistema puede funcionar con paridad par o impar, pero no con ambas: Paridad par: - El generador de paridad se encarga de añadir un bit de paridad tal que tengamos un número par de 1's. - El comprobador de paridad se encarga de comprobar que el número de 1's recibidos es par. Paridad impar: - El generador de paridad se encarga de añadir un bit de paridad tal que tengamos un número impar de 1's. - El comprobador de paridad se encarga de comprobar que el número de 1's recibidos es impar. Ejemplo de circuito integrado de paridad de 9 bits (8 de información + 1 de paridad) es el circuito 74180. Ejemplo: Generador de paridad (par) Vamos a transmitir un mensaje de 3 bits, con un bit de paridad. Podemos utilizar paridad par o paridad impar. En este ejemplo utilizamos paridad par, es decir, debemos generar el bit de paridad de tal forma que la cantidad total de unos (incluyendo el bit de paridad) sea par.

Tabla de verdad:

 

Mensaje de 3 bits x y z 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Función lógica: Bit de paridad P 0 1 1 0 1 0 0 1

P=x

y

z

Circuito: x y z

P

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Circuito: x y

C

z p

NOTA: Es obvio que los circuitos de generación y comprobación de paridad siempre tienen una función de salida cuyos términos son mitad “1“ y mitad “0“, por lo que pueden implementarse con puertas XOR.

AUTOEVALUACION 1. Diga cuál es la diferencia entre circuitos combinacionales y secuenciales. 2. Muestre la implementación de un circuito restador de dos dígitos binarios. 3. Enumere casos de aplicación práctica donde se usen codificadores y decodificadores. 4. Justifique cuál es la diferencia entre un codificador y un multiplexor.

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: CIRCUITOS SECUENCIALES SINCRONOS Y ASINCRONOS Y MAQUINAS DE ESTADOS FINITO CIRCUITOS LÓGICOS SECUENCIALES Un circuito cuya salida depende no solo de la combinación de entrada, sino también de la historia de las entradas anteriores se denomina Circuito Secuencial. La historia de las entradas anteriores en un momento dado se encuentra resumida en el estado del circuito, el cual se expresa en un conjunto de variables de estado. El circuito secuencial debe ser capaz de mantener su estado durante algún tiempo, para ello se hace necesario el uso de dispositivos de memoria. Los dispositivos de memoria utilizados en circuitos secuenciales pueden ser tan sencillos como un simple retardador (inclusive, se puede usar el retardo natural asociado a las compuertas lógicas) o tan complejos como un circuito completo de memoria denominado multivibrador biestable o Flip Flop. Como puede verse entonces, en los circuitos secuenciales entra un factor que no se había considerado en los combinacionales, dicho factor es el tiempo. De hecho, los circuitos secuenciales se clasifican de acuerdo a la manera como manejan el tiempo en circuitos secuenciales síncronos y circuitos secuenciales asíncronos. • En un circuito secuencial asíncrono, los cambios de estado ocurren al ritmo natural marcado por los retardos asociados a las compuertas lógicas utilizadas en su implementación, es decir, estos circuitos no usan elementos especiales de memoria, pues se sirven de los retardos propios (tiempos de propagación) de las compuertas lógicas usados en ellos. Esta manera de operar puede ocasionar algunos problemasde funcionamiento, ya que estos retardos naturales no están bajo el control del diseñador y además no son idénticos en cada compuerta lógica. • Los circuitos secuenciales síncronos, sólo permiten un cambio de estado en los intantes marcados por una señal de sincronismo de tipo oscilatorio denominada reloj. Con ésto se pueden evitar los problemas que tienen los circuitos asíncronos originados por cambios de estado no uniformes en todo el circuito. Un sistema secuencial posee un 2n estados de entrada para n entradas (X1...Xn). Poseen además 2p estados de salida para p salidas (Z1...Zp) y un número finito de estados internos (y1...ym) de ahí que sean conocidos como autómatas finitos. Según la relación entre las salidas y los estados internos podemos distinguir:  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTÓMATA de MEALY, las salidas se obtienen en función de las entradas y los estados internos:

Figura 2.19. Autómata de Mealy AUTÓMATA de MOORE, las salidas coinciden o dependen solo de los estados internos

Figura 2.20. Autómata de Moore

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CONCEPTOS GENERALES DE LATCHES Y FLIP-FLOPS: Los circuitos biestables son aquellos que poseen dos estados estables que se pueden mantener por tiempo indefinido, lo que nos permite tener almacenado un dato en un dispositivo por el tiempo que se desee. Las salidas del circuito, además de ser función de las entradas son función de la información almacenada en elementos de memo ria del circuito, en el momento que se producen las entradas. Están formados por un circuito combinacional y un bloque de elementos de memoria:

Figura 2.21. Circuitos biestables La señal del reloj indica a los elementos de memoria cuando deben cambiar su estado. Existen dos tipos de biestables muy importantes: el latch y el flip- flop. Estos circuitos están compuestos por compuertas lógicas y lazos de retroalimentación y son considerados los circuitos básicos que constituyen los sistemas digitales. El latch es un circuito biestable asíncrono, es decir que sus salidas cambian en la medida en que sus entradas cambien. El flip- flop es un dispositivo secuencial sincrónico que toma muestras de sus entradas y determina una salida sólo en los tiempos determinados por el reloj (CLK). Además, se pueden tener flip- flops Master-Slave y flip- flops disparados por flanco. Los flip- flops Master-Slave están conformados por dos latches con habilitación en cascada, es decir que la salida de un latch es la entrada del otro, mientras que el flip- flop disparado por flanco posee un dispositivo para determinar cuando hay una pendiente, ya sea de subida o de bajada, en el reloj que habilita el flip-flop. El Flip-Flop S-R (Set-reset): Es un circuito biestable conformado por un detector de transición de impulsos que está encargado de detectar cuándo se tiene un flanco de subida o de bajada del reloj (CLK), dos compuertas NAND encargadas de enviar estos pulsos a las compuertas OR. En estas compuertas OR, una de las salidas está conectada a  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

la entrada de la otra compuerta, logrando una retroalimentación: Diagrama lógico del flip- flop S-R:

Tabla de verdad del flip- flop S-R:

Diagrama de tiempos del flip-flop S-R:

Figura 2.22. Flip Flop SR Utilizando las equivalencias lógicas podemos definir al flip- flop S-R mediante 2 compuertas NOR:  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

El flip-flop D: Está compuesto por dos compuertas NAND encargadas de enviar la señal de habilitación a las compuertas OR (al igual que el flip- flop SR se puede construir con otras compuertas lógicas). La salida de una compuerta OR se transforma en la entrada de la otra (retroalimentación). Se puede observar la similitud con el flip- flop SR, solamente difieren en una entrada de habilitación y en que la entrada de Reset es igual a la de Set negada Diagrama lógico del flip- flop D:

Tabla de verdad del Flip-Flop D:

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Diagrama de Tiempos del flip- flop D:

Figura 2.23. Flip Flop D El flip-flop J-K: El biestable S-R presenta problemas cuando se activan simultáneamente las dos entradas S y R. Podemos diseñar un biestable similar que no presente estos problemas a partir de un biestable D (el resultado es el flip- flop J-K):

Tabla de verdad del biestable J-K:

Cronograma del biestable J-K (activado por flanco de subida):

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Por medio de equivalencias lógicas se puede obtener el siguiente diagrama lógico para el flip flop J-K:

Figura 2.24. Flip Flop JK En este caso, para lograr un valor estable cuando se activan ambas entradas se hace una retroalimentación de Q y /Q con las compuertas de la entrada. El Flip-Flop T (Toggle): Mantiene su estado o lo cambia dependiendo del valor de T cada vez que se activa. Se puede implementar utilizando un biestable J-K

Diagrama lógico del flip- flop T:

Tabla de verdad del flip- flop T:

 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Diagrama de tiempos del flip-flop T:

Figura 2.25. Flip Flop T REGISTROS Se forman a partir de biestables de tipo D conectados en cascada. Un registro con N biestables es capaz de almacenar N bits. Son circuitos sincrónicos y todos los biestables están gobernados por la misma señal de reloj. Podemos definir dos tipos de registros (de Almacenamiento y de Desplazamiento) Registros de Almacenamiento: Ej: Registro de 4 bits

D=(D0,D1,D2,D3) es el dato a escribir. Q=(Q0,Q1,Q2,Q3) es el dato leído. Registros de Desplazamiento: Son circuitos sincrónicos que cuando se activan, se desplazan los bits de sus  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

biestables “hacia derecha” o “hacia izquierda”. Se clasifican de la siguiente manera: Entrada Serie Salida Paralelo Entrada Serie Salida Serie Entrada Paralelo Salida Paralelo Entrada Paralelo Salida Serie Registros Universales. Entrada/Salida Serie: Entra/Sale un bit en cada pulso de reloj. Entrada/Salida paralelo: Entran/Salen todos los bits del dato en el mismo pulso de reloj Ej: Registro de Desplazamiento de 4 bits (Entrada Serie)

Figura 2.27. Registro de desplazamiento

Tabla de funcionamiento: /Clear 1 1 1 0

Entradas Reloj

0 X

EntradaSerie 0 1 X X

Salidas Q0 Q1 Q2 Q3 0 Q0´ Q1´ Q2´ 1 Q0´ Q1´ Q2´ Q0´ Q1´ Q2´ Q3´ 0 0 0 0

CONTADORES Un contador de N bits se implementa utilizando N biestables de tipo T. Los contadores se pueden clasificar en: -Asíncronos y Síncronos  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

-Ascendentes y descendentes -Módulo N. Contadores Asíncronos: Sólo utilizan biestables sin ninguna puerta lógica adicional. La entrada de reloj al contador sólo se conecta al primero de los biestables (el de menor peso). La salida de estado de cada biestable (Q) o la complementaria (/Q) se conecta con el inmediato posterior. Las entradas de datos de los biestables (J-K o T) se conectan a un “1” fijo. Contadores Sincrónicos: La señal externa del reloj está conectada a todos los biestables, por lo tanto, se activan todos de manera simultánea. La entradas de reloja al contador se conecta a las entradas de reloj de todos los biestables. La entrada de datos (J-K o T) del biestable de menor peso se conecta a un “1” fijo. Se precisan puertas adicionales para implementar la lógica que indique cuando deben voltear su estado los biestables. Contadores módulo N: El módulo de un contador es el número de cuentas distintas que realiza dicho contador. Para implementar un contador de módulo N, se elige un contador con n bits (ascendente o descendente), siendo 2n-1 cambia porque ha cambiado la señal a la izquierda del símbolo, debe aplicarse un retardo t1 si la transición es de nivel bajo a alto y t2 en caso contrario.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.5. Descripción lógica de un biestable D incorporando información adicional a la función lógica del componente

Los lenguajes utilizados para representar a nivel lógico los circuitos se engloban en lo que se denominan lenguajes de descripción del hardware (HDL). De estos lenguajes los más utilizados con diferencia son el Verilog® y el VHDL. Estos lenguajes son similares en su sintaxis a los lenguajes de programación, pero incorporan también una serie de primitivas que permiten describir conexiones entre componentes, lo que los diferencia claramente de éstos. Tanto Verilog® como VHDL permiten describir un mismo componente con diferentes representaciones o vistas y también a diferentes niveles de abstracción. Un mismo componente, como el biestable D de la Figura 5.1, puede representarse describiendo su estructura mediante la interconexión de componentes básicos (en este caso inversores y inversores con posibilidad de poner la salida en tercer estado), o bien, describiendo su funcionamiento, como se muestra en ejemplos en la próxima sección.

AUTOEVALUACION 1.

C omente qué se describe mediante un modelo físico.

2.

E xplique en qué consiste un modelo eléctrico. Genere un ejemplo.

3. Cuál es el elemento básico a nivel lógico. Profundice en su respuesta.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: VHDL BASICO Una alternativa para modelar diseños en un FPGA es utilizar HDL’s, los más conocidos son VHDL y Verilog ya que se trata de lenguajes estandarizados; sin embargo no son la única opción, existen otras alternativas como Handel-C y Abel, entre otros. VHDL fue desarrollado como un lenguaje para el modelado de sistemas digitales. Proporciona una sintaxis amplia y flexible que permite el modelado estructural, en flujo de datos y de comportamiento de hardware. VHDL está regido bajo el estándar IEEE 1076-1993, lo que favoreció su adopción en la industria y se ve reflejado en las constantes mejoras de sus herramientas; debido a su estandarización, un código en VHDL puede ser portable a diferentes herramientas y también puede ser reutilizado en diferentes diseños. VHDL es un lenguaje de descripción de hardware que se utiliza para modelar, documentar, simular, verificar y sistematizar un sistema digital. Por tanto abarca el ciclo completo de diseño, salvo el trazo físico o layout, desde las especificaciones iniciales hasta la construcción del prototipo hardware. Proporciona soporte suficiente para especificar su comportamiento o su estructura, incluyendo jerarquías. Asimismo, es útil para metodología de diseño ascendente pero sobre todo descendente. La semántica y construcciones del lenguaje permiten también diseñar con facilidad bancos de prueba (testbenches), mediante los que se llevan a cabo la simulación de los sistemas modelados. En esta descripción de los HDL’s no se profundizara, solo se pretende mencionar las características más importantes de VHDL, algunos detalles de este lenguaje quedaran inmersos en el desarrollo del diseño, posteriormente. HISTORIA En 1980 el Departamento de Defensa (DoD, Department of Defense) de Estados Unidos inicio un proyecto denominado Circuitos integrados de muy alta velocidad (VHSIC, Very High Speed Integrated Circuit), con el principal objetivo de desarrollar circuitos integrados en tecnología de 0,5 micras con muy altas prestaciones y resistencias a la radiación. Estos circuitos se habrían de integrar en los sistemas militares y mejorarlos en gran medida. Antes del término de ese mismo año se hizo evidente que para poder organizar y coordinar el desarrollo de los 28 circuitos integrados propuestos por diversas compañías, era necesario el empleo de un lenguaje de descripción de hardware que permitiera el flujo de información entre diseñadores, fabricantes y usuarios.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

De esta forma, en otoño de 1980, se iniciaron los trámites para el desarrollo de un nuevo lenguaje de descripción denominado “Lenguaje para diseño y descripción de hardware VHSIC o VHDDL”, que posteriormente se simplificaría en el acrónimo VHDL. Con la participación de tres compañías, Intermetrics, Texas Instruments e IBM, en julio de l983 se inicio formalmente el proyecto de desarrollo del lenguaje VHDL. El documento de partida del DoD especificaba que el VHDL debería ser un lenguaje para diseño y descripción del hardware y concretamente para ser utilizado en: •

D ocumentación del diseño. En principio, VHDL se estandarizó para la descripción del hardware, pero no para diseño.



D iseño en alto nivel.



S imulación.



S íntesis.



V erificación. Descripción de entradas (netlist) para la herramienta de diseño físico. Otros requerimientos del DoD, para un modelo eficiente fueron:





escripción genérica de modelos. De tal forma que resultaría sencillo configurar un componente en cuanto a tamaño, características físicas temporales, fan-out42, etc. Para ello se utilizan los denominados puertos genéricos.

D

D eclaración y uso de tipos de datos. Debido a los diversos niveles de abstracción posibles, el lenguaje no se puede restringir a los tipos más básicos, como bít o booleano. Por tanto define también tipos enteros, reales, físicos, enumerados, array, record, etc. y permite al usuario la definición de cualquier otro. Es por ello que se dice que VHDL, está fuertemente orientado a tipos y es una de las características que le otorgan mayor potencial y flexibilidad.



S ubprogramas. Se permite la declaración y definición de funciones y procedimientos para conversiones de tipos, redefinición de operadores, creación de otros nuevos, entrada y salida de datos desde el exterior y otras tareas comunes a los demás lenguajes de propósito general.



C ontrol temporal. VHDL dispone de sentencias para detectar flancos, especificar retardos, especificar tiempos de set-up y hold, comprobar anchura de  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 



pulso, establecer restricciones temporales, etc. Descripción estructural. utilizarlo para descripción de estructuras regulares multibit en una o más dimensiones. La primera fase del desarrollo del lenguaje finalizo en julio de 1984 y en ese mismo año el IEEE comenzó a trabajar en la estandarización. En 1985 apareció el primer prototipo de lenguaje y en 1987 se aprobó finalmente el estándar con el numero 1076. La aparición del mismo supuso un fuerte impulso y numerosas firmas de herramientas Automatización mediante diseño electrónico (EDA, Electronic design automation) comenzaron a incorporar compiladores y simuladores en sus paquetes de diseño a partir de 1990.Posteriormente llegaron las herramientas de síntesis. En 1994 el instituto de ingenieros eléctricos y electrónicos (IEEE, Institute of Electrical and Electronic Engineers) publicó la revista del estándar IEEE Std 1076-1993 que es la que se encuentra actualmente en vigor.

CARACTERÍSTICA PRINCIPALES DE VHDL Tres son las características principales que incorpora VHDL enfocadas a facilitar o permitir la descripción de hardware: un modelo de estructura, un modelo de concurrencia y un modelo de tiempo. Estas características junto con la capacidad de describir funcionalidad que le confieren las propiedades descritas en el capítulo anterior, hacen de VHDL un lenguaje flexible y potente, que se adapta perfectamente a la descripción de sistemas electrónicos a cualquier nivel de abstracción. Modelo de estructura De forma natural cualquier sistema electrónico puede dividirse en subsistemas más pequeños. Por ello VHDL incorpora el concepto de estructura. Esta característica nos permite realizar el modelo de un sistema digital cualquiera a partir de la referencia a las distintas partes que lo forman y especifican la conexión entre estas. Cada una de las partes, a su vez, pueden estar modelas de forma estructural a partir de sus componentes, o bien estar descritas de forma funcional, usando los recursos de descripción algorítmica del lenguaje. Al describir cualquier dispositivo en VHDL (desde una puerta hasta un sistema completo) el diseñador debe definir dos elementos principales: la interfaz del dispositivo con el exterior (la entidad o entity) y la descripción de la funcionalidad que realiza el dispositivo (la arquitectura o architecture). La interfaz de un dispositivo tiene por objeto definir que señales del dispositivo son visibles o accesibles desde el exterior, lo que se llaman los puertos (ports) del dispositivo. En la arquitectura se definirá la funcionalidad que implementa dicho dispositivo, o  

Los requer

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

sea, que transformaciones se realizarán sobre los datos que entren en los puertos de entrada, para producir nuevos valores sobre los puertos de salida. Para poder utilizar elementos ya definidos en VHDL en descripciones estructurales de un nuevo diseño, VHDL incorpora el concepto de componente (component) y de referencia a un componente. Cualquier elemento modelado con VHDL puede ser usado como un componente de otro diseño. Para ello solamente es necesario hacer referencia al elemento a utilizar y conectar los puertos de su interfaz a los puntos necesarios para realizar el nuevo diseño. La Figura 5.6 ilustra esta idea, el sistema bajo desarrollo se forma a partir de dos subsistemas que se habrán definido con anterioridad. El diseñador solo debe preocuparse de las entradas y las salidas de los subsistemas (su interfaz) y de la forma adecuada en que debe conectarlas para formar el nuevo sistema, pero no es necesario conocer cómo está descrito cada uno de los subsistemas.

Figura 5.6. Modelo de estructura en VHDL

Modelo de concurrencia El hardware es por definición concurrente, en última instancia cualquier dispositivo digital está formado de un mar de puertas lógicas, todas ellas funcionando en paralelo. El elemento básico que ofrece VHDL para modelar paralelismo es el proceso (process). Un proceso puede entenderse como un programa, se compone de sentencias, puede llamar a subprogramas, puede definir datos locales, etc. En general, un proceso describe un comportamiento y el código que contiene se ejecuta de  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

forma secuencial. Pero todos los procesos contenidos en una descripción VHDL se ejecutan de forma paralela. Desde este punto de vista un modelo VHDL puede entenderse como un mar de programas secuenciales ejecutándose de forma paralela. De hecho cualquier descripción VHDL es transformada en un conjunto de procesos concurrentes equivalentes, y este mar de procesos concurrentes es la información de entrada del simulador. Estos procesos que se ejecutan concurrentemente deben poder comunicarse (sincronizarse) entre ellos. El elemento necesario para comunicar dos procesos es la señal (signal). Cada proceso tiene un conjunto de señales a las que es sensible. Ser sensible a una señal significa que en cuanto se produzca un cambio en el valor de dicha señal (un evento en la señal), el proceso se ejecutará hasta que encuentre una sentencia de suspensión del proceso (wait). Al llegar a esta sentencia, el proceso quedará suspendido, esta suspensión será por un período determinado de tiempo, o bien hasta que se produzca un nuevo evento en alguna de las señales a las que sea sensible dicho proceso. Aparte de poder suspender la ejecución de un proceso (sentencia wait), este es un bucle infinito, o sea, al llegar a su final vuelve a ejecutarse desde el principio. Para ilustrar mejor este concepto, la Figura 5.7 define los procesos equivalentes a una puerta and y una puerta OR de dos entradas cada una. Notar que en este ejemplo se utiliza la seña c para sincronizar los dos procesos, siempre que se produzca un evento en la señal c, se ejecutará el proceso OR2. Por supuesto, y dado el paralelismo en la ejecución de los procesos, si en un momento de la simulación se producen eventos sobre las señales de la lista de sensibilidad de ambos procesos (por ejemplo, en a y en d), los dos se ejecutan en ese tiempo de simulación.

Figura 5.7. Modelo de concurrencia en VHDL  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Sobre las señales sólo diremos de momento que son objetos que pueden ir variando su valor a lo largo de la simulación (en este aspecto son parecidas a las variables). Su característica principal es que tienen asociada una o más colas de eventos (drivers) que define su comportamiento a lo largo del tiempo. La cola de eventos está formada por conjuntos de pares tiempo/valor, y en las asignaciones a señal es esta cola de eventos la que recibe los valores asignados. Modelo de tiempo Una de las finalidades del modelado en VHDL del hardware es poder observar su comportamiento a lo largo del tiempo (simulación). El concepto de tiempo es fundamental para definir cómo se desarrolla la simulación de una descripción VHDL. La simulación de un modelo VHDL es una simulación dirigida por eventos. Esto significa que el simulador mantiene unas listas de eventos (cambios en las señales internas del modelo y también de las entradas y salidas) que se han de producir a lo largo del tiempo de simulación. Como el comportamiento del modelo es estable mientras no se produzca un evento, la tarea del simulador consiste en avanzar el tiempo de simulación hasta el siguiente evento y calcular sus consecuencias sobre la lista de eventos futuros. La simulación VHDL abstrae el comportamiento real del hardware, implementando el mecanismo de estímulo respuesta (componentes funcionales reaccionan a la actividad en sus entradas produciendo cambios en sus salidas) implementando un ciclo de simulación de dos etapas (Figura 5.8), basado en los procesos (elementos funcionales) y las señales (entradas y salidas de estos elementos funcionales; conexiones entre elementos). En la primera etapa las señales actualizan su valor. Esta etapa finaliza cuando todas las señales que debían obtener un nuevo valor en el tiempo actual de simulación (tenían un evento programado en su cola de eventos) han sido actualizadas. En la segunda etapa, los procesos que se activan (aquellos que tengan en su lista de sensibilidad una señal en la que se haya producido un evento) se ejecutan hasta que se suspenden (con la ejecución de una sentencia wait). Esta etapa finaliza cuando todos los procesos que se habían activado se hayan suspendido. Entonces el tiempo de simulación avanza hasta el siguiente instante de tiempo en el que haya un evento programado, y se repiten los dos pasos del ciclo de simulación. La simulación termina cuando no haya más eventos programados o cuando se llegue al tiempo de simulación especificado.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.8. Ciclo de simulación VHDL Es importante notar que el modelo de tiempo implementado por el ciclo de simulación VHDL implica que siempre hay un cierto retardo entre el momento en que un proceso coloca un nuevo valor en la cola de eventos de una señal (el proceso ejecuta la asignación sobre la señal) y el momento en que esta señal toma el valor programado en la cola de eventos. Incluso en el caso de que no se especifique un retardo concreto, se utilizará un retardo delta (delta delay). Un retardo delta no implica actualizar el tiempo de simulación, pero sí que implica ejecutar un nuevo ciclo de simulación. El concepto de retardo delta es importante para entender otra diferencia importante entre variable y señal. Una variable actualiza su contenido en cuanto se ejecuta una asignación sobre ella. En cambio cuando se ejecuta una asignación sobre una señal, se proyecta un nuevo evento sobre su cola de eventos y solo cuando todos los procesos se hayan ejecutado y estén suspendidos, el valor de la señal se actualizará con el valor proyectado en su cola de eventos. Este mecanismo de retardo delta se introduce para permitir la simulación de hardware (paralelo por naturaleza) usando máquinas secuenciales. Consideremos el código VHDL de la Figura 5.9, en el que aparecen dos elementos secuenciales conectados en forma de registro de desplazamiento. El mecanismo de retardo delta permite que, independientemente del orden en que se ejecuten los dos procesos, el segundo (FF2) siempre reciba el valor correcto de Q1, ya que aunque se haya ejecutado con anterioridad el primer proceso (FF1), la asignación que éste realiza sobre Q1 aún no habrá tenido lugar (en todo caso se habrá proyectado el evento sobre la cola de eventos de Q1). De forma que al realizar la asignación de D1 sobre Q2 se colocará en la cola de eventos de Q2 el valor correcto de D1 (aún sin actualizar). Sólo en el momento en que ambos procesos se hayan suspendido, se actualizarán las señales con los valores que contengan sus colas de eventos.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.9. Determinismo en la simulación VHDL

UNIDADES BÁSICAS DE DISEÑO Una unidad de diseño es una construcción VHDL que puede ser analizada independientemente. Existen cinco tipos diferentes de unidades de diseño: la declaración de entidad (entity declaration), la arquitectura de una entidad (architecture), la configuración (configuration), la declaración de paquete (package declaration) y el cuerpo del paquete (package body). La declaración de entidad, la declaración de paquete y la configuración se llaman unidades primarias, mientras que la arquitectura de entidad y el cuerpo del paquete se consideran unidades secundarias porque dependen de una entidad primaria que debe ser analizada antes de poder ser analizadas ellas mismas. Un dispositivo se representa en VHDL mediante una entidad, que consta de una declaración de entidad, donde se da una visión externa del dispositivo definiéndose la interfaz con su entorno, y una arquitectura, donde se define su funcionalidad. Para poder probar diferentes opciones a la hora de modelar un dispositivo, VHDL permite definir múltiples arquitecturas asociadas a una única entidad. La configuración es la construcción encargada de seleccionar de seleccionar la arquitectura específica que se va a utilizar para una entidad.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En VHDL cada objeto debe ser declarado antes de utilizarse. En general, las declaraciones se realizan en las unidades de diseño donde estos objetos son necesarios, por lo que no serán visibles en las demás unidades. Para declaraciones útiles para varias unidades de diseño, VHDL proporciona el paquete, que evita la multiplicidad de declaraciones comunes. Normalmente el paquete se divide en dos unidades de diseño VHDL: la declaración y el cuerpo del paquete. Declaración de entidad La declaración de una entidad sirve para definir la visión externa del dispositivo que dicha entidad representa, la interfaz con su entorno. VHDL separa esta visión externa de la implementación concreta del dispositivo para dar la posibilidad de que esta quede oculta. De este modo, después de haber analizado la declaración de una entidad y, por tanto, haberla almacenado en una biblioteca, esta entidad podrá ser utilizada por otros diseños que solo requieran de dicha interfaz para usarla. La sintaxis VHDL para declarar una entidad es la siguiente:

El identificador es el nombre que va a recibir la entidad y servirá para poder referenciarla más tarde. Excepto la primera y la última línea de la declaración, todas las demás son opcionales. La declaración de una entidad que implemente un semisumador se muestra en la Figura 5.10.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.10. Diagrama de la interfaz del semisumador de 2 bits Los puertos determinan la interfaz del dispositivo con el exterior y para comprender mejor que son se pueden comparar con las patillas de un circuito. Para cada puerto se tendrá que indicar el nombre, tipo y el modo. El nombre se utilizará para poder referenciarlo, el tipo definirá la clase de información que se transmitirá por el puerto mientras que el modo servirá para definir la dirección de la información, en el sentido que los puertos puedan ser de entrada, de salida o bidireccionales. Arquitectura Sirve para definir la funcionalidad de la entidad que representa. Describe un conjunto de operaciones sobre las entradas de la entidad que determinan el valor de las salidas en cada momento. Antes de poder ser analizadas es imprescindible haber analizado la declaración de la entidad, de modo que cuando ésta se modifique la arquitectura tendrá que ser re-analizada.

La sintaxis VHDL para definir la arquitectura de una entidad es la siguiente:

El identificador es el nombre que va a recibir la arquitectura y servirá para referenciarlo más tarde. Además debe indicarse el nombre de la entidad a la que pertenece. La sección de sentencias concurrentes describe propiamente la funcionalidad del dispositivo. Existen muchos tipos de sentencias concurrentes. Dependiendo del tipo de sentencias utilizadas se puede modelar una arquitectura siguiendo diferentes estilos: • Estilo algorítmico Define la funcionalidad del dispositivo mediante un algoritmo ejecutado secuencialmente, de forma muy parecida a como lo hace cualquier programa escrito en un lenguaje de programación común. Por tanto, no se hace ninguna referencia a la estructura que se seguirá para implementar el algoritmo en hardware.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La arquitectura de un multiplexor de dos bits utilizando un estilo de modelado algorítmico sería:

En este momento se puede decir que un proceso, definido mediante la palabra clave process, es una sentencia concurrente, en el sentido que todos los procesos se ejecutan simultáneamente, que está formado por una o más instrucciones secuenciales. Por esta razón, una arquitectura con un solo proceso es equivalente a un algoritmo ejecutado secuencialmente. •

Estilo flujo de datos Una descripción de estilo de flujo de datos refleja la funcionalidad de un dispositivo mediante un conjunto de ecuaciones ejecutadas concurrentemente, que determinan el flujo que van a seguir los datos entre módulos encargados de implementar las operaciones. En este estilo ya existe una correspondencia directa entre el código y su implementación hardware. Suele considerarse que este tipo de descripción es funcional y estructural al mismo tiempo, ya que define tanto el comportamiento de los módulos como su interconexión con los demás módulos. El multiplexor de dos bits declarado anteriormente siguiendo un estilo de descripción de flujo de datos sería:

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 



Es tilo estructural

Una arquitectura definida utilizando un estilo estructural consiste en un conjunto de componentes interconectados mediante señales. Un ejemplo típico de descripción utilizando este estilo es la representación de un circuito como una lista de componentes interconectados (netlist) de una biblioteca de celdas estándar de una tecnología determinada. La descripción es puramente estructural en el sentido que no incluye ningún tipo de funcionalidad, ésta en todo caso está incluida en la definición de la arquitectura de los componentes que forman la descripción. El multiplexor de dos bits declarado anteriormente podría describirse en estilo estructural como un conjunto de puertas interconectadas de la manera siguiente:

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Hay que dejar claro que aunque se hayan explicado diferentes estilos para describir una arquitectura VHDL y se hayan dado ejemplos de cada uno de ellos, todos estos estilos pueden mezclarse en la implementación de una sola arquitectura. Configuración La configuración es la construcción VHDL encargada de seleccionar la arquitectura que se quiere utilizar para una entidad concreta. VHDL permite definir más de una arquitectura por entidad para facilitar el estudio de varias posibilidades a la hora de implementarla. La sintaxis simplificada de una configuración es la siguiente:

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

El identificador es el nombre que va a recibir la configuración y servirá para poder referenciarla más tarde. Aparte de aportar su nombre, es necesario identificar la entidad y la arquitectura relacionadas en la configuración mediante sus identificadores respectivos. Cuando el diseño sea jerárquico, también pueden determinares las entidades y arquitecturas que se van utilizar para los componentes de más bajo nivel. En este caso es necesario relacionar las referencias de los componentes con una entidad y una arquitectura o bien indicar la configuración que se quiere usar para cada componente. Como se podría dar el caso de que dos referencias de un mismo componente utilizaran diferentes arquitecturas (o entidades), se da flexibilidad para configurar todas las referencias de un componente a la vez o por separado. La configuración del multiplexor de dos bits utilizado en el apartado anterior en el caso que se quiera trabajar con la arquitectura llamada FlujoDatos sería:

Paquetes Un paquete permite agrupar un conjunto de declaraciones para que puedan ser usadas por varios dispositivos sin ser repetidas en la declaración de cada dispositivo. De esta forma se facilita la reutilización y la actualización del código. Normalmente en un paquete se suelen declarar constantes, tipo y subtipos de datos, subprogramas y componentes. Más adelante se verá con más detalle el significado y la utilización de cada uno de estos elementos del lenguaje. Un aspecto importante del paquete es que al igual que pasaba con las entidades, se divide en dos unidades de diseño diferenciadas: la declaración y el cuerpo del paquete. La declaración de paquete aporta la visión externa de los elementos que se declaran mientras que el cuerpo del paquete define su implementación. De este modo se pueden ocultar los detalles de implementación a un diseñador que puede estar interesado en cómo utilizar un elemento pero no necesita saber cómo está implementado.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La sintaxis VHDL para declarar un paquete es la siguiente:

Para el cuerpo del paquete la sintaxis VHDL es:

Como puede apreciarse, la sintaxis es muy parecida para la declaración y el cuerpo del paquete, la única diferencia reside en la naturaleza de las declaraciones de las dos unidades. Al analizar el cuerpo de un paquete es imprescindible haber analizado la declaración antes, de forma que si ésta varía se tendrá que re-analizar el cuerpo del paquete.Cuando se analiza un paquete, el resultado del análisis queda almacenado en una biblioteca para poder ser usado más adelante. Bibliotecas Una biblioteca sirve para almacenar el resultado del análisis de las unidades de diseño para su uso futuro. Las bibliotecas son beneficiosas porque facilitan la compartición y la reutilización del código en diferentes diseños. Aunque las unidades de diseño se analicen separadamente, se tiene que respetar un cierto orden ya que algunas unidades dependen de otras. En general, la declaración de una entidad tiene que analizarse antes que su arquitectura y la declaración de un paquete antes que su cuerpo. Además, cuando una entidad utilice algún elemento de un paquete, las unidades que este paquete tienen que analizarse antes que las unidades de la entidad. Por último antes de analizar una configuración tienen que haberse analizado las arquitecturas seleccionadas en dicha configuración. La biblioteca work o de trabajo sirve de biblioteca por defecto y es la que se utiliza siempre que no se especifique otro nombre. De todos modos, el diseñador puede crear el número de bibliotecas que crea necesario y repartir sus diseños entre las bibliotecas de la forma que crea más conveniente. Desde un modelo almacenado en una biblioteca no puede accederse directamente a las unidades de diseño de otras bibliotecas, ya que solamente se  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

tiene visibilidad de la biblioteca donde está almacenado este modelo. Para dar visibilidad a una biblioteca se utiliza la sentencia library seguida del nombre de la biblioteca. Por ejemplo, para usar los elementos de un paquete que se llame PaqueteEjemplo almacenado en la biblioteca BibliotecaEjemplo desde un modelo que se vaya a guardar en otra biblioteca se tendría que empezar el modelo de la forma:

Las bibliotecas work y std son excepciones en el sentido que siempre son visibles y, por tanto, no requieren la sentencia library. Finalmente cabe destacar que la definición de biblioteca es una definición lógica, en el sentido de que cada herramienta puede implementarla como quiera sobre el sistema de ficheros. En algunos casos una biblioteca será un fichero, en otros un directorio o una estructura jerárquica de directorios. Por esta razón, cada herramienta debe aportar facilidades para crear bibliotecas y mapaer su estructura lógica a la posición física en el disco. AUTOEVALUACION 1. Defina VHDL 2. Nombre las tres características principales que incorpora VHDL enfocadas a facilitar la descripción de hardware. 3. En qué consiste el modelo de estructura en VHDL. 4. Qué significa que la simulación de un modelo VHDL está dirigida por eventos. 5. Genere un ejemplo VHDL para definir la arquitectura de una entidad.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: NIVELES DE DESCRIPCIÓN VHDL VHDL es un lenguaje descriptor de hardware de gran generalidad derivada del lenguaje de alto nivel ADA43. Dispone de tipos abstractos para definir el formato y valores de señales, variables, constantes, etc. y proporciona amplias facilidades para la realización de algoritmos. Los diferentes niveles de descripción que maneja VHDL son los siguientes: • Nivel algorítmico. Es el nivel con mayor grado de abstracción. Aquí el diseñador solo describe el comportamiento del sistema, sin preocuparse de las señales o componentes internos del mismo. Por ello al referirse a él se suele hablar de nivel de comportamiento o descripción de alto nivel. • Nivel de transferencia de registros (RTL, Register Transfer Level). Este nivel proporciona un cierto grado de abstracción con respecto al hardware, pero el diseñador se ve obligado a describir las distintas señales que interactúan en un circuito y su comportamiento en función de las entradas por medio de ecuaciones lógicas y sentencias de asignación. • Nivel lógico. Utiliza los recursos que el lenguaje proporciona para describir las interconexiones entre los distintos componentes de un circuito. Otra denominación habitual para referirse a este nivel es la de estructural. De los niveles anteriores, el algorítmico ofrece las más grandes ventajas y  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

generalmente es el más empleado, ya que no necesita de saber detalles específicos de las arquitecturas a programar, entre otras cosas. ETAPAS BÁSICAS EN EL PROCESO DE DISEÑO El proceso de diseño se puede dividir en seis etapas bien definidas: • • • • • •

Definición de los requerimientos del diseño. Modelado del diseño en VHDL. Simulación del código fuente. Síntesis, optimización y ajuste del diseño. Simulación “post-layout”. Programación del dispositivo.

Definición de los requerimientos del diseño Antes de empezar a escribir líneas de código, se debe tener una idea clara de los objetivos y requerimientos del diseño (especificaciones): ¿Qué funcionalidad debe tener el diseño?, esto es, ¿Para qué sirve? ¿Cuáles son los tiempos requeridos para la inicialización o la relación reloj- salida? ¿Cuál es la frecuencia máxima de operación? ¿Cuáles son los caminos críticos? Responder de forma adecuada a éstas y otras preguntas ayudarán a elegir una metodología de diseño y una arquitectura de dispositivo adecuada. Modelado del diseño en VHDL A partir de las especificaciones se puede tener la tentación de empezar a escribir líneas de código, pero es recomendable decidir una metodología de diseño. Esto es, elegir la forma en que será descrito, el resultado será un diseño más eficiente. Existen dos tipos de metodología: ascendente, descendente. La primera implica el crear estructuras jerárquicas, mientras que la última ve el diseño como un todo. • La metodología ascendente (Bottom-Up), Esta metodología tiene la finalidad de formar módulos de aplicación especifica mediante la descripción de elementos básicos o primitivas, que formaran nuevos módulos hasta llegar a uno solo que representa el sistema completo, desde un nivel bajo hasta uno alto de abstracción. • La metodología descendente (Top-Down), Esta metodología parte de un nivel alto de abstracción y detalla los módulos de aplicación específica según se necesite. No es necesario que un modulo que ha alcanzado el nivel primario alcance el nivel de primitivas. Posteriormente a la decisión de la metodología a aplicar, es posible describir  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

diagramas de flujo, diagrama de bloques, etc. con el lenguaje de descripción elegido. Hay que ser muy cuidadoso con la sintaxis y con la semántica. Un modo de trabajo utilizado por muchos diseñadores consiste en editar un ejemplo y adaptarlo a las necesidades del diseño concreto. Simulación del Código Fuente La simulación de código permite depurar errores funcionales antes de la síntesis, también es conocida como simulación lógica ya que se realiza antes de rutear al dispositivo a diferencia de la simulación post diseño. Síntesis, Optimización y Ajuste del diseño Síntesis Se puede definir como la traducción de la descripción de un diseño a una representación de circuito de bajo nivel (netlist). El proceso de síntesis depende de la tecnología empleada, en otras palabras, el paso de una descripción en VHDL hacia un conjunto de netlist es diferente de un dispositivo a otro. El proceso de síntesis convierte el diseño a una estructura de datos interna, traduciendo el “comportamiento” descrito en alto nivel a una descripción de nivel RTL. La descripción RTL especifica registros, señales de entrada y salida y la lógica combinacional entre ellas. Algunas herramientas de síntesis traducen estructuras de datos en funciones lógicas optimizadas según la arquitectura elegida. Optimización El proceso de optimización depende de tres variables: • La forma de las expresiones booleanas. • El tipo de recursos disponibles. • Las directivas de síntesis utilizadas (tanto automáticas como propias de usuario). La optimización de una estructura PLD o CPLD implica la simplificación de las expresiones lógicas a una suma mínima de términos producto, además también se optimiza el número de literales. Para ello se utilizan técnicas de simplificación de la forma canónica en una suma de términos producto. La optimización para FPGAs típicamente requiere que la lógica se exprese en factores comunes que se puedan utilizar en diferentes partes del diseño. Ajuste El ajuste es el proceso por el que se toma la lógica producida por la síntesis y la optimización y se “coloca” en un dispositivo lógico, transformando la lógica (en caso de ser necesario) para obtener el mejor ajuste. Ajuste es un término utilizado habitualmente para describir el proceso de colocar los recursos en arquitecturas del tipo CPLD.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Cuando la arquitectura es una FPGA el proceso se suele denominar ruteo y colocación, ya que se colocan bloques lógicos en diferentes células del FPGA y posteriormente se interconectan entre sí o hacia bloques de entrada/salida. El proceso de ajuste en un CPLD puede ser complejo, ya que el modo en que la lógica se puede poner en un dispositivo concreto suele ser variado. Programación del dispositivo En la Figura 5.11 se ejemplifica el uso de VHDL para programar un FPLD. Note el uso de cadenas de bits, que corresponden a los estados de los switches en las matrices de ruteo, los switches electrónicos en el FPGA se abren o cierran de acuerdo al bit correspondiente en la cadena de bits.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.11. Programación mediante VHDL

Ejemplo de descripción VHDL En la Figura 5.12 se muestra la descripción estructural mediante el lenguaje VHDL de un registro de cuatro bits compuesto de cuatro biestables D por flanco de subida con ‘reset’ activo a nivel alto. El biestable, por el contrario, se describe funcionalmente incorporando un retardo tanto entre la señal de ‘reset’ y la salida como entre el reloj y la salida. La particularidad del VHDL es que para cada componente (a los que se denomina entidades) pueden definirse varias arquitecturas, que serian las diferentes vistas (funcional, estructural, etc.) del componente. Las entidades se describen indicando únicamente sus entradas y salidas (puertos en la sintaxis VHDL). Posteriormente se definen una o más arquitecturas para cada entidad. La descripción del biestable_D que se realiza mediante un proceso es el equivalente en VHDL a la descripción Verilog® , añadiendo una entrada adicional para la puesta a cero (clr). En la descripción estructural del registro se instancia cuatro veces (bit0, bit1, bit2 y bit3) la entidad biestable_D, usando su vista behavioral (esto es necesario por si hubiese varias vistas de un mismo componente). Con la instrucción portmap se realiza un mapeado de las entradas y salidas del registro conectándolas a los puertos de cada biestable según corresponde. En caso de necesitar nodos intermedios estos deberían declararse como signals, que son similares a los wires del Verilog®.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Figura 5.12. VHDL de un biestable D por flanco de subida

AUTOEVALUACION 1. Mencione los niveles de descripción VHDL 2. Con sus palabras, mencione las etapas básicas en el proceso de diseño con VHDL. 3. Describa la finalidad de la metodología descendente (Top-Down). 4. Proponga un ejemplo de aplicación VHDL.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: MODELOS Y SIMULADORES DE ALTO NIVEL La complejidad cada vez mayor, sobre todo de circuitos digitales como los microprocesadores, obliga a describir el sistema cada vez a un nivel mayor de abstracción para hacer manejable su diseño. Los requerimientos tan exigentes de la industria que obligan a reducir al máximo los tiempos en los que el producto llega al mercado desde la fase inicial de concepción del mismo tienen una gran repercusión en los métodos de diseño utilizados. Es necesario realizar simulaciones y comprobaciones de viabilidad y funcionalidad cuando el diseño está apenas bosquejado, es decir, cuando únicamente se encuentra definida la  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  arquitecturaCONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA  a alto nivel, sin haberse realizado todavía la implementación, ni

siquiera a nivel lógico, de los bloques de que consta. Es por ello que cada vez son más necesarios los lenguajes y simuladores que permitan realizar estas tareas a alto nivel.

Históricamente, la descripción más utilizada ha sido la RTL (del inglés register transfer level), utilizando un lenguaje de descripción de hardware como los que hemos visto en el sub-apartado anterior. Dicho código RTL describe cada bit de estado en el sistema y todas las operaciones que pueden tener lugar en ese estado. Describe también cada registro, matriz de memoria, bloque aritmético y lógico. Esta descripción es de forma estructural, pero no tiene por qué corresponderse con la implementación exacta que después tendrá cada bloque, ya que lo importante es describir la funcionalidad del sistema y sus partes y poder evaluarla conjuntamente. Dado que la representación es de tipo estructural, es posible utilizar también un esquemático para describir el sistema de forma RTL (ver Figura 5.13). Posteriormente los avances en informática y herramientas CAD han permitido elevar aún más el nivel de abstracción y utilizar construcciones muy parecidas a las de los programas y algoritmos software (bucles, cláusulas if-then-else, etc.). El sistema queda descrito entonces de forma funcional. Existe la posibilidad de traducir una especificación HDL de este tipo funcional a una descripción RTL, y ésta es una de las tareas de los programas de síntesis de los que se trata en el siguiente apartado. Ejemplo En este ejemplo presentamos la descripción RTL de un multiplicador-acumulador (MAC) que trabaja en pipeline. El circuito opera sobre una secuencia de números complejos {xi} y {yi}. El MAC multiplica dos elementos correspondientes de las secuencias y acumula la suma de los productos. El resultado es:

donde N es la longitud de la secuencia.

Cada número complejo se representa de forma cartesiana (separando la parte real de la imaginaria). Si dos números complejos x e y se expresan de esta forma, su producto p, que es también un número complejo, se puede calcular de la siguiente forma: p_real = x_real × y_real – x_imag × y_imag p_imag = x_real × y_imag – x_imag × y_real La suma de x e y es un número complejo s calculado de la siguiente forma: s_real = x_real + y_real s_imag = x_imag + y_imag  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

El circuito MAC calcula el resultado tomando pares sucesivos de números complejos, cada uno de una de las dos secuencias de entrada, formando un producto complejo y añadiendo el resultado al contenido de un registro acumulador. El acumulador se inicializa a cero al principio y se reinicializa cada vez que termina la operación sobre un par de secuencias completas. Para realizar este proceso son necesarias cuatro multiplicaciones para formar los productos parciales. Después una suma y una resta para formar el producto completo y, finalmente dos sumas para acumular el resultado. El retardo total para completar la operación será la suma de los retardo necesarios para realizar cada uno de los pasos. No obstante, insertando registros que memoricen los resultados parciales, es posible aprovechar los recursos que quedan libres una vez han realizado su operación sobre un par de datos de entrada, para realizar esa misma operación parcial sobre el siguiente par, aunque la operación total sobre el par de datos original no se haya completado todavía, de forma que los datos van entrando en el MAC a un ritmo superior del que dura toda su operación. Esta técnica se conoce con el nombre de pipeline. La descripción RTL del MAC se muestra en la Figura 5.13. En ella podemos identificar fácilmente todos los componentes de los que hemos hablado. A la salida de cada operador se añade un registro para almacenar el valor parcial de los resultados. La etapa final acumula el resultado mediante la conexión de la salida de los dos registros con reset a la entrada de los sumadores. Los otros dos registros RS detectan cuándo se produce un desbordamiento en la acumulación para indicarlo a la salida del circuito.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.13. Descripción RTL de un multiplicador-acumulador (MAC) de números complejos En la implementación de la figura la operación total del MAC necesita de cuatro ciclos de reloj para completarse (el primero para cargar los datos de entrada, el segundo para almacenar los productos parciales, el tercero para almacenar los productos totales y el cuarto para acumular su suma). Sin embargo, gracias a la técnica pipeline, el MAC completa una operación cada ciclo de reloj y para procesar una secuencia completa de N pares de números complejos necesitará N+3 ciclos de reloj.

AUTOMATIZACIÓN DEL DISEÑO MICROELECTRÓNICO A la hora de abordar el diseño de un sistema electrónico complejo, el ingeniero únicamente puede centrar sus esfuerzos a un nivel en el que sea capaz de manejar el sistema. Por ejemplo, un diseñador podría manejar el diseño de un sistema representado por un conjunto de 10 ecuaciones booleanas, pero no uno representado por 10000 ecuaciones.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En este último caso, debería ascender un nivel de abstracción y reducir la cantidad de descriptores del sistema hasta que su número sea manejable, como por ejemplo 10 algoritmos. En los niveles de abstracción más bajos el diseño sólo puede ser abordado particionando el sistema en partes más pequeñas y repartiéndolas a varios diseñadores, o bien, mediante la automatización del diseño, es decir, el uso de herramientas CAD que realicen tareas de diseño automático. Los procesos de automatización del diseño encierran siempre dos procesos en direcciones opuestas: por un lado las síntesis y optimización, que partiendo de una representación en un nivel de abstracción obtienen la representación del circuito en un nivel inferior, más detallado; y por otro la verificación, que consiste en comprobar que el circuito representado en el nivel inferior se comporta tal y como se habIa descrito en el nivel superior. Este último proceso se lleva a cabo principalmente mediante análisis y simulaciones en ambos niveles y la comparación de los resultados. El proceso de síntesis es más complejo, debido a que existen, normalmente, muchos grados de libertad a la hora de implementar una determinada función descrita en un nivel superior de abstracción. Además de la funcionalidad intervienen otras variables, como el consumo, el área ocupada, la velocidad de operación. Dado que normalmente no es posible obtener un sistema sintetizado que maximice nuestras expectativas en todos los aspectos (por ejemplo, las implementaciones más rápidas de una función normalmente ocupan una mayor área y consumen más), es necesario establecer un compromiso o fijar que variable nos interesa más. De ahí que el proceso de síntesis vaya siempre unido al de optimización: se trata no únicamente de traducir la especificación del sistema de un nivel a otro, sino de encontrar la implementación que optimice el consumo, o la velocidad, o el área, etc. Dado que existen, como ya se ha visto, distintos niveles de abstracción, los procesos de síntesis se clasifican por el nivel al que actúan. Por simplicidad vamos a considerar únicamente tres niveles tal y como se indica en la Figura 5.14 a y b muestra los procesos de síntesis en estos tres niveles que veremos con algo más de detalle en los sub-apartados siguientes.

Figura 5.14. a) Niveles de abstracción y vistas y b) procesos de síntesis asociados  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Síntesis de alto nivel La síntesis a nivel de arquitectura, o síntesis de alto nivel, como la llaman también algunos autores, es una metodología de diseño que ha surgido tras muchos años de investigación sobre métodos matemáticos de representación (básicamente teoría de grafos) y algoritmos de optimización. Hoy en día existen ya herramientas comerciales que permiten describir un sistema electrónico a alto nivel sin un conocimiento previo de su implementación consiguiendo de forma automatizada, y en función de las restricciones impuestas (mínima área, máxima velocidad, mínimo consumo, etc.), una implementación del sistema a nivel lógico. Este proceso consta de dos etapas, la síntesis de la arquitectura, que veremos aquí y la síntesis lógica. La descripción del circuito a alto nivel se realiza mediante los lenguajes HDL de los que hablamos en el apartado anterior. La síntesis de la arquitectura se basa en el principio de que todo sistema puede modelarse mediante una serie de operaciones y sus dependencias. El primer paso del proceso de síntesis consiste en traducir la especificación que el diseñador realiza utilizando uno de los lenguajes HDL en una representación basada en operadores (denominados recursos) y sus dependencias. Estas representaciones formales pueden ser de varios tipos, pero todas se basan en grafos. El proceso de síntesis consiste en identificar los recursos hardware que pueden implementar las operaciones. Esto se realiza mediante dos procesos: scheduling y binding. El proceso de scheduling consiste en determinar el orden en que se realizaran las operaciones y el proceso de binding consiste en repartir las operaciones entre los recursos disponibles. Estos dos procesos se realizan iterativamente dentro de un bucle de optimización en el que se fijan como objetivos, bien realizar las operaciones con el mínimo número de recursos posible, bien realizarlas en el menor tiempo posible, bien un compromiso entre ambos. Como vemos, la principal característica del proceso de síntesis es la existencia de múltiples soluciones. Los procesos de optimización consisten en programas lineales con solución entera (ILP-Integer Linear Problem) que deben resolverse por algoritmos heurísticos, ya que son problemas de un nivel de complejidad no tratable por métodos exactos. El resultado de este proceso de síntesis se representa usualmente mediante un grafo de flujo de datos (DFG) y/o un grafo de secuenciación (SG), como se muestra en el Ejemplo. La síntesis de alto nivel se implementa sobre una estructura compuesta por un datapath (DP) y una unidad de control (UC). El DP está formado por los recursos hardware a los que se asignan las operaciones y la UC secuencia el funcionamiento, la conectividad y el traslado de  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

datos de un recurso a otro para implementar el algoritmo descrito por el diseñador. Las variables básicas de optimización de la síntesis de alto nivel son tres: el área (que está relacionada con el número de recursos), la latencia y el tiempo de ciclo. Este último vendría limitado por el bloque más lento del datapath. La latencia es el número de ciclos necesarios para completar la función y está relacionado con la secuenciación temporal de las operaciones. Todas las posibles implementaciones de un mismo sistema descrito a alto nivel son puntos en el espacio tridimensional formado por estos tres ejes (área, latencia y tiempo de ciclo). La optimización que se realiza durante el proceso de síntesis tiene como objetivo encontrar en ese espacio tridimensional la implementación que maximice unos determinados objetivos que se denominan restricciones del diseño. Estas restricciones pueden ser cerradas (por ejemplo, utilizar un número determinado de recursos o un límite para la latencia), o bien, abiertas (por ejemplo, encontrar la implementación con un mínimo tiempo de ciclo). De hecho, el tiempo de ciclo está relacionado con la estructura a nivel lógico de los bloques, por lo que es necesario descender un nivel y realizar la síntesis y optimización a nivel lógico, de la cual hablaremos en el siguiente sub-apartado. Estos dos procesos (síntesis de la arquitectura y síntesis lógica) se optimizan globalmente. El resultado final de las herramientas CAD de síntesis actuales es un esquemático a nivel lógico utilizando celdas estándar de las librerías de un fabricante determinado.

Ejemplo Un ejemplo clásico que permite describir el proceso de síntesis de alto nivel consiste en la implementación de un sistema digital que resuelva numéricamente (mediante el método directo de Euler) la ecuación diferencial y’’ + 3xy’ + 3y = 0 en el intervalo [0,a] con un incremento dx y valores iniciales x(0) = x; y(0) = y; y’(0) = u. El circuito puede representarse con el siguiente modelo mediante un lenguaje HDL:

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

A partir de la especificación de este sistema, puede fácilmente deducirse una posible implementación. El datapath constaría de dos recursos hardware: un multiplicador y una ALU (unidad aritmético- lógica), que implementaría las operaciones suma, resta y comparación. El circuito constaría también de registros, multiplexores y circuitos de encaminamiento de datos y de una unidad de control que secuenciaría la ejecución de las operaciones. La Figura 5.15a muestra el grafo de flujo de datos que la síntesis automática generaría en caso de que se le restringiera el número de recursos a dos. Esta sería, pues, una implementación de mínimo coste o área. El datapath sintetizado se muestra en la Figura 5.15 b. Se trata de una vista estructural de la descripción funcional del sistema realizada por el diseñador. La unidad de control vendría gobernada por el FM de la Figura 5.15 c. Este diagrama de estados ya sería una descripción funcional de una parte del sistema, la unidad de control, a nivel lógico. Por otro lado, el resto de componentes del datapath se describirían a nivel lógico por sus ecuaciones booleanas. En el diagrama de estados, la señal r es un ‘reset’ activo por nivel alto. La otra señal de control, c es la salida del comparador que permite detectar cuando finaliza el bucle de cálculo, tal y como se indica en la descripción HDL. El estado S1 se utiliza para leer los datos de entrada y el S9, cuando finaliza el bucle, para escribir los resultados. El bucle de cálculo está formado por los estados S2 a S8. Este diagrama de estados se sintetiza a partir del grafo de secuenciación extraído de la organización temporal de las operaciones que se extrae del grafo de flujo de datos de la Figura 5.15 a. La principal desventaja de la implementación de la Figura 5.15 es que requiere de siete ciclos de reloj para realizar cada paso por el bucle (considerando, para simplificar, que cada recurso necesita de un ciclo para realizar su operación). Una implementación alternativa menos costosa en términos de ciclos de reloj necesitaría de cinco recursos: dos multiplicadores, un sumador, un restador y un comparador. Esta implementación, cuyo DFG se muestra en la Figura 5.16, ocuparía una mayor área que el anterior, pero realizaría cada paso por el bucle en sólo cuatro ciclos de reloj.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.15. Resultados del proceso de síntesis de alto nivel para la resolución numérica mediante el método directo de Euler de una ecuación a) Grafo de flujo de datos , b) datapath y c) FSM que implementa la unidad de control

Figura 5.16. Implementación alternativa de la ecuación diferencial con más recursos y menor coste temporal

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. Defina qué es RTL 2. Elabore un cuadro comparativo con los diferentes niveles de abstracción. 3. En qué consisten los procesos scheduling y binding

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: HERRAMIENTAS CAD La muy elevada complejidad de los circuitos integrados actuales requiere para tareas de detalle que sigan unas reglas de actuación bien conocidas de herramientas informáticas de diseño (como es el caso de determinadas áreas de la síntesis y en general la verificación). Si bien los campos de la computación y control, entre otros, se han desarrollado gracias a la microelectrónica, ésta debe en gran parte su desarrollo a la existencia de una sofisticada investigación e industria de desarrollo de paquetes informáticos orientados a la ayuda al diseño, para el conjunto de los cuales se utiliza el concepto de herramientas CAD (Computer Aided Design). A modo de ejemplo, la mera verificación del layout de un circuito integrado microprocesador moderno requiere de un número elevadísimo de detalladas comprobaciones. En las etapas iniciales de diseño y fabricación de circuitos integrados, la verificación de este layout se hacía manualmente. Los ingenieros de verificación disponían de grandes planos sobre los que pacientemente verificaban los trazados. Si en la actualidad se utilizara este procedimiento, el plano, para poder hacer visibles los detalles, ocuparía una superficie de cuatro campos de fútbol y el tiempo requerido seria de más de tres años. Las herramientas CAD hacen, en comparación, increíblemente rápida esta operación y a salvo de toda distracción o error. Numerosas herramientas CAD han ido apareciendo durante todos estos años de intenso progreso de la tecnología electrónica hasta conseguir una sofisticación importante. No es la idea, en este texto, exponer la historia de estos productos que inicialmente aparecieron de manera más o menos aislada. Las herramientas CAD han aparecido cubriendo el espectro completo de los diagramas de flujo del diseño Figura 5.17.

Figura 5.17. Organización de toda herramienta CAD  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La herramienta procesa mediante un algoritmo la información de entrada, produciendo una información de salida. Tanto las informaciones de entrada como de salida como la información interna de la herramienta deben seguir una determinada estructura y lenguaje de representación de los objetos. La Figura 5.18 muestra el dominio de herramientas CAD organizado en un plano dependiente del nivel de la representación (comportamiento, bloque funcional, esquema lógico, esquema eléctrico, físico, usualmente layout) y de la función de la herramienta. Las funciones de estas herramientas son: • Herramientas de Simulación. Tienen por objetivo predecir el comportamiento del circuito que se representa. Dependiendo del tipo de circuito, el simulador puede ser eléctrico, digital o mixto. Estas herramientas son fundamentales en diseño electrónico, pues son las que nos indican si el circuito físico satisfará o no la función para la que ha sido creado. Los simuladores permiten establecer muchas variables de entorno, como tensión, carga o temperatura. Para poder realizar una simulación es preciso disponer de modelos de las partes que lo constituyen. Así existen librerías de modelos de componentes lógicos y/o analógicos. A nivel dispositivo, existen modelos de dispositivos que incluyen los comportamientos de estos elementos, ya sean de tipo analítico, empírico o mixto. A nivel sistema, se dispone de simuladores de elementos expresados en lenguaje VHDL (digitales, si bien existe una extensión, AHDL para algunos bloques analógicos), se les denomina simuladores de lenguajes de alto nivel. Existen simuladores digitales, meramente a nivel estructural, que incorporan modelos de las puertas y módulos con sus funciones lógicas, tiempos de propagación (incluyendo la dependencia con la carga), requerimientos temporales etc. A nivel eléctrico, cabe contar con un simulador emblemático, existente en prácticamente todos los entornos de simulación: se trata de la herramienta SPICE. SPICE es un simulador eléctrico-temporal, capaz de determinar respuestas temporales (incluyendo transitorios) y frecuenciales o valores quiescentes a partir de una definición estructural del circuito y los parámetros y modelos de los mismos.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 5.18. Dominio de herramientas CAD en un plano nivel de representaciónfunción de la herramienta

• Herramientas de síntesis y predicción. Si las herramientas de simulación son esenciales para poder analizar el comportamiento y garantizar la función del circuito, las herramientas de síntesis son esenciales para guiar o ejecutar el diseño top-down de un circuito complejo, ampliando la productividad del diseñador y eliminando la posible introducción de errores por construcción. Estas herramientas se utilizan de manera muy especial en diseños repetitivos, de gran detalle y complejidad, cuya ley de construcción es bien conocida. Por ejemplo, la síntesis automática de un layout a partir de un esquema lógico (o analógico), la síntesis de un filtro de capacidades conmutadas a partir de las especificaciones del plano de Bode, etc. En esta categoría se incluyen herramientas de colocación y conexionado de elementos (celdas, puertas, transistores, etc.). Las herramientas de construcción de módulos generan el diseño de un módulo (registros, bloques de memoria, ALU, etc.) a partir de parámetros estructurales (longitud de palabra, de direccionado, etc.). El proceso de diseño, y por consiguiente el de síntesis, no es único. Diversas alternativas conducen a diversas soluciones, todas ellas verificando los factores fundamentales del diseño, pero difiriendo en otros. El diseñador puede guiar su proceso de diseño determinando estos aspectos (área de silicio, nivel de paralelismo, disipación y consumo, coste, etc.). Para ello no es necesario acabar el diseño hasta el nivel físico, pues las alternativas de diseño son muchas y esto dilatarIa enormemente el tiempo de diseño. Para predecir una variable física (consumo, número de puertas, velocidad, etc.), existen herramientas predictoras. • Herramientas de extracción. Corresponden a un proceso bottom-up en el flujo de diseño. Dado un circuito a un cierto nivel, se trata de extraer sus características para su uso en un nivel superior. Por ejemplo, extraer el circuito eléctrico a partir del layout. Junto con la simulación puede ser utilizado como herramienta de verificación, o para establecer un seguimiento de los  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

componentes (backtrace). • Herramientas de verificación. A pesar de la supuesta existencia de herramientas de síntesis automática es imprescindible realizar tareas de verificación del diseño. La verificación es una fase fundamental del proceso de diseño orientado a evitar errores en el producto final. Una parte de la verificación se realiza mediante representaciones a diferente nivel y la comparación de simulaciones con la extracción del circuito al nivel superior a partir del inferior. En esta tarea de verificación por simulación es fundamental el establecer las excitaciones (tensiones de entrada o vectores lógicos de entrada) adecuadas. Existen, sin embargo, verificadores no del proceso top-down de diseño, sino de la coherencia y verificaciones de reglas de diseño. Esto último es aplicable a reglas de layout, reglas eléctricas y reglas temporales. • Herramientas de test. El test es un procedimiento encaminado a detectar la presencia de fallos de fabricación en circuitos integrados. Esta importante fase del diseño (el establecer el test es responsabilidad del diseñador) también requiere herramientas CAD. Las herramientas de test más extendidas son las herramientas de generación de vectores de test (ATPG, Automatic Test Pattern Generation) y las de ayuda a la síntesis de sistemas aplicando normativas de diseño fácilmente testable (DFT, Design for Testability). En las primeras, a partir de la descripción estructural de un circuito lógico y la consideración de modelos de fallos sencillos pero eficaces (stuck-at) las herramientas generan un conjunto mínimo de vectores de test que presentan una cobertura de test máxima. Las segundas pretenden insertar en un diseño lógico componentes e interconexiones encaminados a garantizar que el diseño cumpla con una normativa mundialmente aceptada de ayuda al test y mantenimiento (normativa P1149.1 de IEEE).

ENTORNOS EDA El concepto EDA (Electronic Design Automation) corresponde a entornos informáticos de trabajo encaminados a obtener una elevada productividad y calidad del diseño electrónico. Los entornos EDA se estructuran a partir de herramientas como las indicadas anteriormente, junto a un sistema de base de datos que garantice la integridad de los diseños, coordine los diferentes lenguajes y niveles de representación y facilite una elevada productividad. Los primeros sistemas utilizando el concepto EDA aparecieron en 1981, dando soporte a diseños de baja complejidad (5000 puertas) y tecnologías de 2 micras. Habiendo pasado por diversas generaciones, los sistemas EDA actuales permiten diseños de una mayor complejidad (>500000 puertas) y con tecnologías  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

de tamaño muy reducido (deep sub-micron technologies). En dichos sistemas se establecen técnicas de adaptación al diseñador, en su estilo de diseño y trabajo, y se permiten establecer representaciones a diferentes niveles simultáneamente, y se combinan simuladores eléctricos y lógicos. TENDENCIAS FUTURAS EN CAD El futuro de las herramientas CAD y los entornos EDA es seguir con el crecimiento de la complejidad y la sofisticación de los circuitos. Sin embargo, no será sólo ésa la trayectoria de estos sistemas. La existencia de elementos micromecánicos (MEMS) que se integren junto a los circuitos mediante técnicas similares y compatibles hará preciso la extensión de las herramientas indicadas anteriormente. Serán precisos simuladores cinemáticos, simuladores que incluyan interacciones electromecánicas, electrotérmicas, electromagnéticas, asI como aspectos propios de análisis de la resistencia mecánica de los materiales. El análisis de la integridad de la señal está adquiriendo una gran importancia, analizando las líneas de interconexión con modelos de parámetros distribuidos, analizando la distorsión y reflexión de señales en el circuito.

Modelos propios de circuitos RF se aplicarán a la síntesis y simulación de los circuitos. Esto tendrá un impacto especial en el modelado y extracción de los encapsulados y de manera especial de los sistemas MCM (MultiChip Module). El diseño de bajo consumo (low power design) precisa de nuevas herramientas para evaluar el consumo y orientar los diseños a una mayor portabilidad. Se introducirán herramientas de análisis térmico para todos los circuitos con extensiones de análisis y predicción de la fiabilidad. Por último, se incorporarán herramientas encaminadas a establecer la tolerancia y generación controlada de EMI (ElectroMagnetic Interferences). Adicionalmente los futuros sistemas de CAD deberán responder al elevado aumento de la complejidad de los circuitos (número de transistores) debiendo pues gestionar de una manera eficaz bases de datos de un gran tamaño. Por último, se deberán establecer mecanismos para el manejo y reutilizaciones de descripciones de alto nivel de sistemas (IP, Intelectual Properties Reuse) así como elementos de entornos de síntesis mixtos hardware/sofware (hardware/software co-design).

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. Elabore un comentario sobre la importancia de las herramientas CAD en su desempeño profesional. 2. Elabore un gráfico donde se muestre el dominio de herramientas CAD. 3. Nombre los objetivos de las herramientas de síntesis y predicción. 4. Cómo funcionan las herramientas de test?

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CAPÍTULO 6: TEST DE CIRCUITOS INTEGRADOS LECCIÓN 1: VALIDACIÓN Y PRUEBA DE CIRCUITOS INTEGRADOS Mientras los diseñadores emplean muchas horas en el análisis, la optimización y el layout de los circuitos, a menudo olvidan un aspecto importante: cuando el componente retorna de la planta de fabricación ¿cómo podemos saber si funciona correctamente, es decir, si verifica las especificaciones funcionales y de prestaciones? Esta cuestión es tanto más importante por cuanto los costes asociados a la presencia de fallos en un componente pueden ser extraordinarios para el cliente y para el proveedor; una vez se comercializa y distribuye el componente puede resultar muy caro el que su operación no sea correcta, y cuanto más tarde se detecte un fallo más coste implicará su corrección. Por ejemplo, el mal funcionamiento de un componente en la tarjeta de un televisor implicará una sustitución de la tarjeta completa, con el enorme coste asociado a ello para el cliente, y el coste en desprestigio para el proveedor. Por otra parte, un diseño correcto no garantiza que el componente fabricado sea operativo. Durante la fabricación pueden ocurrir diversos problemas, como consecuencia de fallos en el material de base (impurezas o dislocaciones en el cristal de silicio), o bien como resultado de variaciones en el proceso (por ejemplo, errores fotolitográficos como el desalineamiento entre máscaras, o mal grabado de las vías). Pueden producirse otros fallos incluso durante las pruebas de estrés que se les realizan después de la fabricación, en las que los componentes se exponen a pruebas de temperatura y de estrés mecánico para asegurar su operación en un rango amplio de condiciones de funcionamiento. El resultado de todo ello pueden ser fallos por cortocircuitos entre conexiones y capas, o conexiones rotas. Asegurarse de que un componente opera correctamente en cualquier condición y ante cualquier entrada no es tarea sencilla. Si bien durante la fase de diseño se tiene un acceso ilimitado a todos los nodos de un circuito, lo que permite observar respuestas de forma no restringida, éste no es el caso de un componente fabricado; entonces el único acceso al circuito ha de realizarse a través de un número limitado de patillas de entrada/salida, por mucho que el componente sea extremadamente complejo en términos del número de posibles estados. A esto hay que añadir el hecho de que el equipamiento de pruebas de circuitos integrados suele ser extremadamente caro, por lo que cada segundo que se invierta en el test de un componente supondrá un incremento de su precio. Hay que tener en cuenta que los equipos de test actuales rondan los 10 millones de dólares, y en unos años su coste alcanzará los 50-100 millones de dólares para poder hacer frente a la complejidad y velocidad de los circuitos integrados que se avecinan.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Es conveniente, por tanto, considerar los aspectos de test desde las primeras etapas del proceso de diseño; modificaciones mínimas en estas etapas pueden ayudar a facilitar en gran medida la validación del componente. Esta aproximación al diseño, introduciendo las necesidades del test como parte de las especificaciones, se conoce como “diseño para la prueba” (DFT – design for testability). Cualquier estrategia DFT contiene una doble exigencia: •Proporcionar la circuitería necesaria para que el procedimiento de prueba sea rápido y extensivo. •Proporcionar los patrones de test (vectores de excitación) necesarios, de forma que la secuencia de test sea lo más corta posible, cubriendo a la vez la mayoría de los posibles fallos. Antes de describir las diferentes estrategias aplicables a la prueba de los circuitos integrados, revisaremos de manera algo detallada las perturbaciones que se producen en el proceso de fabricación de un circuito integrado. PERTURBACIONES EN EL PROCESO DE FABRICACIÓN DE UN CIRCUITO INTEGRADO El proceso de fabricación de un CI no es perfecto en términos de repetitividad de los productos fabricados, dado que como en cualquier proceso aparecen perturbaciones y desviaciones que hacen que los circuitos fabricados no coincidan con el circuito de referencia esperado. Estas desviaciones pueden llegar a ser catastróficas y hacer no aprovechable el componente. Si no existieran estas perturbaciones del proceso de fabricación todos los componentes serían iguales y el rendimiento del proceso sería del 100%. Las perturbaciones aparecen, bien por factores ambientales o por el manejo de las obleas de silicio durante la fabricación, y son por naturaleza incontrolables e inherentes a todos los pasos del proceso, provocando alteraciones en las características físico-químicas o en la estructura del chip. Es fundamental tratar de conocer sus causas, entender y caracterizar su implicación y tratar de detectarlas y corregirlas tanto como sea posible. Las principales causas son: • Errores humanos o averías en los equipos. Estas perturbaciones suelen afectar de manera global a todos los lotes de fabricación mientras están presentes. • Inestabilidades en las condiciones del proceso. Son fluctuaciones aleatorias en las condiciones físicas en que se tratan las obleas (turbulencia en el flujo de gases, fluctuaciones en las temperaturas o presiones, etc.).  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

• Inestabilidades de los materiales. Son variaciones en los parámetros físicos y químicos de las sustancias o materiales usados en la fabricación (pureza y características de los compuestos químicos, densidad y viscosidad de los materiales, contaminaciones, etc.). • Heterogeneidades en el sustrato y en la superficie. Son perturbaciones locales producidas por dislocaciones cristalinas del material o imperfecciones en la superficie. • Alteración puntual (spot). Son perturbaciones muy locales que afectan al proceso fotolitográfico, debidas a alteraciones de la máscara óptica o física, o a la aparición de partículas extrañas depositadas que alteran la máscara física. •Deformaciones geométricas inherentes al proceso. Son alteraciones de la geometría (dimensiones) de los componentes por desalineamiento de máscaras, difusiones laterales o difracción de la radiación sobre las esquinas de las máscaras. •Alteraciones eléctricas debidas al atrapamiento de cargas eléctricas durante la fabricación. A partir de esta lista de causas, podemos clasificar las perturbaciones en: • Perturbaciones globales, que afectan a todos los circuitos de una oblea o lote, y cuyas causas son: errores humanos y averías de los equipos, inestabilidades del proceso o los materiales y alteraciones geométricas. • Perturbaciones locales, que afectan a un circuito concreto de la oblea y, en general, en un punto localizado, siempre de naturaleza aleatoria. Las causas suelen ser las alteraciones puntuales y las deformaciones geométricas. En el proceso de control de calidad de los CI la detección de las perturbaciones se afronta de diferente manera dependiendo de si se trata de perturbaciones globales o locales. Las perturbaciones globales provocan efectos catastróficos o de alteración de parámetros generalizados en todo la oblea, por lo que se insertan en las obleas circuitos especiales orientados a monitorizar estas perturbaciones; son las denominadas estructuras de test y su verificación (antes de fraccionar la oblea en chips) permite comprobar si se ha producido una alteración inaceptable de los parámetros o sólo desviaciones aceptables, en cuyo caso la oblea es seccionada en chips. La complejidad de detectar perturbaciones es mucho mayor en el caso de las perturbaciones locales, ya que al afectar de manera aleatoria exige la aplicación sistemática de un procedimiento de test a todos los circuitos. También exige conocer la función del circuito, por lo que la participación del diseñador se hace imprescindible en este caso.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Las perturbaciones locales pueden dar lugar a circuitos defectuosos para los que alguna función o especificación no se verifica, lo que significa que deben ser rechazados al no superar el test funcional (test de tipo lógico en circuitos digitales). Pero también pueden manifestarse sólo como desviaciones de los valores de los parámetros de los componentes alrededor del valor nominal, por lo que el fabricante suele realizar un test de estas desviaciones analizando el tiempo de propagación de las señales (delay testing) y el consumo (current testing), obteniendo información de la dispersión. En los circuitos analógicos los tests se diseñan para determinar el valor de determinados parámetros (ganancia, ancho de banda, CMRR, etc.).

AUTOEVALUACION 1.

D escriba las exigencias de las estrategias DFT.

2.

M enciones las principales causas de perturbaciones en el proceso de fabricación de un circuito integrado. 3. E n qué consiste la alteración puntual (spot). 4. C omente sobre las perturbaciones locales.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: PROCEDIMIENTO DE TEST Las pruebas de fabricación se pueden clasificar en tres categorías según la meta perseguida: • Test diagnóstico. Se utiliza durante la depuración de un chip o tarjeta y su objetivo es, dado un componente erróneo, identificar y localizar el fallo. • Test funcional (test go/no go). Determina si un componente fabricado es o no funcional. Este problema es más simple que el del test diagnóstico, ya que la respuesta buscada es un sí o un no. Este test se aplica a cada componente fabricado, por lo que es exigible que sea lo más simple y rápido posible. • Test paramétrico. Verifica el cumplimiento de las especificaciones de un conjunto de parámetros no discretos (márgenes de ruido, retardos de propagación o frecuencias máximas de reloj) bajo una variedad de condiciones de trabajo, tales como diferentes temperaturas y tensiones de alimentación. Los tests paramétricos se subdividen a su vez en estáticos y dinámicos.

Figura 6.1. Tarjeta-sonda de test de circuitos integrados. Una prueba de fabricación típica sigue un procedimiento bastante estandarizado que comienza con la carga de los patrones de test predefinidos en el tester, que es el equipo que proporcionará las excitaciones y recogerá las respuestas. Estos equipos cuentan con una “tarjeta sonda” (probe card)  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

para conectar sus entradas/salidas, bien a los pines del “dado” de la oblea (die), o bien a las patillas del encapsulado (ver Figura 6.1). Los patrones de test se definen en un “programa de test” que describe las formas de onda a aplicar, la frecuencia de reloj y la respuesta esperada. El tester recibe de forma automática cada nuevo componente y ejecuta el programa de test, comparando las respuestas obtenidas con las esperadas; si se observan diferencias, el componente se etiqueta como erróneo. Cuando el test se realiza sobre la oblea sin cortar, la sonda se mueve consecutivamente a cada dado y, una vez cortada la oblea, se descartan los marcados como erróneos.

 

AUTOEVALUACION 1. En qué consiste el test diagnóstico. 2. Mencione la importancia del test funcional. 3. Cuál es el objetivo del test paramétrico.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: DISEÑO PARA LA PRUEBA (DFT) ASPECTOS DEL DFT Como ya se ha comentado, y debido al coste del equipamiento, la reducción del tiempo de test de cada componente puede incrementar la productividad (throughput), reduciendo el precio de los componentes. En esta sección describiremos las aproximaciones que pueden seguirse desde las primeras fases del proceso de diseño para conseguir esta meta. Consideremos un circuito combinacional como el de la Figura 6.2 (a). La corrección del circuito puede validarse de forma exhaustiva aplicando todas las combinaciones de entrada (2N), lo que lleva asociada una dependencia exponencial con N. La situación empeora con los módulos secuenciales, como el mostrado en la parte (b) de la misma figura; ahora hay que tener en cuenta, no sólo las posibilidades de combinación de entradas, sino también de los estados (2N+M si M es el número de registros de estado). Para darnos una idea de lo que esto significa, la modelización de un microprocesador moderno como una máquina de estados necesita más de 50 registros; si empleáramos un tiempo de test por patrón de 1μs, se necesitarían mil millones de años para chequearlo exhaustivamente.

Figura 6.2. Dispositivos combinacionales y secuenciales bajo test No siendo posible la introducción exhaustiva de todas las entradas posibles, la aproximación al test de estos circuitos pasa por considerar las siguientes premisas: • La enumeración exhaustiva de patrones de entrada contiene una cantidad sustancial de redundancia; es decir, un fallo simple queda cubierto por múltiples patrones de entrada, de los que basta tomar uno. • Puede conseguirse una reducción sustancial en el número de patrones de entrada relajando la condición de tener que detectar todos los fallos. Los procedimientos típicos de test sólo pretenden una cobertura de fallos entre el 95-99%.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Bajo estas dos premisas es posible chequear la mayor parte de los bloques combinacionales con un conjunto limitado de vectores de entrada. El problema de los sistemas secuenciales es diferente. El test de una máquina de estados (FSM – finite state machine) requiere, no sólo aplicar la excitación de entrada apropiada, sino que ha de ser llevada previamente al estado deseado, lo que a su vez requiere aplicar una secuencia de entradas. Una forma de abordar este problema es convertir la máquina secuencial en combinacional rompiendo la realimentación en el curso del test, lo que constituye uno de los conceptos claves en la metodología scan-test. La otra aproximación es dejar que el circuito se chequee él mismo (self-test), lo que no requiere vectores externos y permite una mayor velocidad. Cuando se considera la testabilidad de los diseños, dos propiedades son importantes: • Controlabilidad, que mide la facilidad de llevar un nodo de un circuito a una determinada condición utilizando sólo los pines de entrada. Así, un nodo será fácilmente controlable si puede ser llevado a la condición mediante un solo vector de entrada; por el contrario su controlabilidad será baja si necesita una secuencia amplia de vectores. • Observabilidad, que mide la facilidad de observar el valor de un nodo en los pines de salida. Un nodo con alta observabilidad puede ser monitorizado directamente en los pines de salida; un nodo con baja observabilidad necesita un cierto número de ciclos antes de que su estado aparezca en las salidas. Los circuitos combinacionales pertenecen a la clase de circuitos fácilmente observables y controlables, dado que cualquier nodo puede ser controlado y observado en un único ciclo. En el caso de los circuitos secuenciales estas propiedades hay que buscarlas mediante técnicas DFT, que pueden agruparse en tres categorías: test ad hoc, test scan-based y self-test. Test ad hoc Como su nombre indica, son técnicas que se aplican de forma muy dependiente de la aplicación. Un ejemplo de estas técnicas se ilustra en la Figura 6.3, que muestra un procesador simple con una memoria de datos. En una configuración normal, la memoria será accesible sólo a través del procesador (parte (a) de la figura), lo que requerirá un cierto número de ciclos de reloj en los test de lectura y escritura de cada una de las posiciones de memoria.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Figura 6.3. Mejora de la testabilidad por medio de la introducción de multiplexores  

La controlabilidad y observabilidad pueden ser sustancialmente mejoradas introduciendo una estructura multiplexada, como la que se ilustra en la Figura 6.3 (b), que permite conectar la memoria directamente con el exterior. Este ejemplo ilustra algunos conceptos importantes del diseño para la prueba: • A veces es conveniente introducir hardware extra sin más función que mejorar la testabilidad. La penalización en área y prestaciones puede estar más que justificada. • El DFT a menudo significa proporcionar pines extra de I/O, siendo preciso no obstante buscar el que las señales funcionales y de test compartan las mismas patillas de entrada y salida (estructuras multiplexadas). A pesar de ser efectivas, la aplicabilidad de las técnicas ad hoc depende de la arquitectura y exige un conocimiento experto a veces difícil de automatizar. Por esta razón se han introducido las aproximaciones estructuradas que analizaremos a continuación. Test scan-based Una forma de evitar el problema del test secuencial es convertir todos los registros en elementos capaces de ser cargados y leídos externamente, lo que convierte el circuito bajo test en una entidad combinacional. Para controlar un nodo se construye un vector apropiado, se carga en los registros y se propaga a través de la lógica, cuyos resultados se transfieren al mundo externo. La conexión de todos los registros a través de un bus paralelo de test no es,  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

sin embargo, una solución aceptable; resulta más práctica una aproximación serie, como la que se ilustra en la Figura 6.4. En este aproximación los registros deben soportar dos modos de operación: el normal y el de test. En este último los registros componen una cadena como si fueran un único registro serie de desplazamiento. El procedimiento de test se realiza entonces de la siguiente manera: • El vector de excitación para el módulo A (y/o el B) se introduce a través de la patilla ScanIn, y desplazado a los registros.  

 

Figura 6.4. Test serie scan-based • Se aplica la excitación a la lógica y se propaga a la salida del módulo lógico. El resultado es almacenado en los registros. • El resultado se desplaza fuera del circuito a través de la patilla ScanOut para ser comparado con los datos esperados. La “sobrecarga” hardware que introduce esta técnica es escasa, dado que la naturaleza serie de la cadena de chequeo reduce la necesidad de espacio para las interconexiones. No siempre es necesario hacer que todos los registros del diseño sean testables. Consideremos el camino de datos en pipeline de la Figura 6.5. Los registros de pipeline de este diseño sólo se incluyen por razones de prestaciones (conseguir mayor velocidad segmentando el retardo de las secciones combinacionales) y no intervienen en el estado del circuito. Durante la generación del test el sumador y el comparador pueden considerarse juntos como un único bloque combinacional, con la salvedad de que durante la ejecución del test se necesitarán dos ciclos de reloj para propagar los efectos de una excitación al registro de salida. Esta aproximación que no tiene en cuenta todos los registros para el chequeo se denomina partial scan, y no siempre resulta obvio decidir qué registros han de ser testables.  

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

Figura 6.5. Chequeo de un pipeline usando partial scan (sólo se chequean los registros sombreados)    

AUTOEVALUACION 1. Por qué es importante la controlabilidad en la testabilidad de diseños. 2. En qué consiste la observabilidad. 3. Describa la técnica Test ad hoc.                            

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: DISEÑO BOUNDARY-SCAN  

Hasta hace poco, el problema del test sólo lo era realmente al nivel de los CIs; el test de las tarjetas de circuito impreso quedaba facilitado por la abundante disponibilidad de puntos de test. El cuadro ha cambiado con la introducción de las técnicas avanzadas de encapsulado (montaje superficial o módulos multichip), y esto ha reducido significativamente la controlabilidad y observabilidad a este nivel, ya que el número de puntos donde pueden hacerse medidas se ha visto muy disminuido. Este problema puede abordarse extendiendo el concepto de test scan-based al nivel de tarjetas y componentes. La aproximación resultante se denomina boundary-scan (cuya traducción podría ser “chequeo en las fronteras de los componentes”) y se ha estandarizado para asegurar la compatibilidad entre los diferentes proveedores (JTAG - Joint Test Action Group), dando lugar a la norma IEEE 1149. En esencia, conecta los pines de I/O de los componentes de una tarjeta en una cadena serie de test, tal como se muestra en la Figura 6.6. La operación de test procede de forma similar a lo descrito en el apartado previo.  

 

Figura 6.6. Aproximación boundary-scan para el chequeo de circuitos impresos  

Built-in Self-Test (BIST) Una aproximación alternativa a la testabilidad es hacer que el circuito genere él mismo los patrones de test en lugar de requerir la aplicación de patrones externos, dando lugar al built-in self-test. El formato general de un diseño BIST queda ilustrado en la Figura 6.7, e incluye un medio de alimentar los patrones de test y de comparar la respuesta del circuito con la secuencia correcta.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Existen muchas formas de generar el estímulo. Las más ampliamente utilizadas son las aproximaciones exhaustiva (todos los estímulos posibles) y aleatoria. En este segundo caso es necesaria la aplicación de un subconjunto aleatoriamente escogido de todos los posibles patrones de entrada, subconjunto que debe seleccionarse para obtener una cobertura razonable de fallos.

Figura 6.7. Formato general de una estructura BIST Un generador de patrones pseudoaleatorios es el LFSR (linear-feedback shift register) mostrado en la figura Figura 6.8, que es un circuito secuencial que evoluciona a través de 2N-1 estados antes de repetir la secuencia. La inicialización de los registros a un determinado valor “semilla” determina la secuencia generada. El analizador de la respuesta puede implementarse como un comparador entre respuesta generada y esperada, almacenado esta última en una memoria. Esta solución representa una cantidad demasiado grande de área añadida como para ser apropiada.

Figura 6.8. LFSR de tres bits y la secuencia que genera

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Una técnica más económica consiste en comprimir las respuestas antes de compararlas, lo que requiere una mínima cantidad de memoria. El analizador de respuesta consistirá entonces en una circuitería que comprimirá dinámicamente la salida del circuito bajo test, seguida de un comparador. La salida comprimida del circuito se denomina a menudo “signatura”, y un ejemplo de analizador de estas signaturas que comprime un flujo de bits a través de una línea se ilustra en la Figura 6.9.

Figura 6.9. Análisis de signatura en una línea de datos de un solo bit Se trata de un circuito que simplemente cuenta el número de transiciones (en cualquiera de los dos sentidos) en la línea de bits, por lo que esta compresión no garantiza que la secuencia recibida sea la correcta aunque posea un número correcto de transiciones. No obstante, y dado que las probabilidades de que esto ocurra son escasas, este riesgo puede asumirse. Por último, indicar que la estrategia BIST está especialmente indicada cuando se chequean estructuras regulares como memorias. Esta tarea no es sencilla, dada la influencia de las vecinas en las lecturas y escrituras de una determinada celda, por lo que hay que leer y escribir varios patrones binarios diferentes. Con una mínima “sobrecarga” hardware, en comparación con el tamaño de las memorias, esta aproximación al test puede integrarse en el circuito de memoria y trabajar de forma eficiente, minimizando la necesidad de control externo.

AUTOEVALUACION 1. Describa la ventaja del diseño Boundary-Scan 2. Haga una descripción del Test Built- in - Self.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: GENERACIÓN DE PATRONES DE TEST Hasta aquí hemos ignorado la compleja tarea de determinar qué patrones deben aplicarse para obtener una buena cobertura de fallos. El proceso era extremadamente problemático en el pasado, cuando había de hacerse la selección “a mano”, pero ha cambiado sustancialmente en los últimos tiempos debido al desarrollo de las técnicas ATPG (automatic test-pattern generation). Del concepto de fallo (fault) y de la forma de evaluar la calidad de una secuencia de test trataremos en este apartado, comenzando por definir el concepto de yield (rendimiento) de un proceso de fabricación, que es una variable fundamental para cuantificar la fracción de errores no detectados en un procedimiento de test. Rendimiento del proceso de fabricación (yield) Dado un proceso de fabricación en el que se producen N circuitos integrados de los que Nv son válidos, definimos rendimiento del proceso Y (yield) como Nv / N. La modelización del rendimiento de un proceso ha sido un tema de investigación durante muchos años, y el modelo más sencillo (1960) se fundamenta en una distribución de Poisson de defectos puntuales en el área del chip (A), idéntica a lo largo de toda la superficie de la oblea. En esta situación, y suponiendo que un defecto puntual siempre produce un fallo en el comportamiento del chip, el rendimiento de fabricación de un chip de área A se obtiene de la probabilidad de que en un proceso estadístico de Poisson no haya ningún defecto, es decir: Y = Nv / N = exp(− Do A) donde Do es el parámetro de la distribución que define la densidad de defectos del proceso de fabricación. Este parámetro puede cambiar con el tiempo, y es relativamente alto cuando el proceso es nuevo y va disminuyendo a medida que el proceso se hace maduro. Posteriormente se han propuesto modelos más precisos. En el SIA 1997 NTRS Yield Model and Defect Budget program se propone como modelo el de una distribución binomial negativa del tipo: Y = (1 + ADo / α )

 

−α

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

en donde α corresponde al factor de agrupamiento, que de alguna manera da idea de la dependencia de colocación de los defectos, y que típicamente toma un valor entre 2 y 5. De esta expresión puede deducirse la importancia del área del chip en el rendimiento de fabricación. Un chip con un área doble que otro no tiene rendimiento mitad, sino aún menor; a medida que aumenta el área cae el rendimiento exponencialmente. De esta manera, para un determinado proceso existe un área a partir de la cual el rendimiento de fabricación obtenido es inaceptable en términos económicos. Existe un área de investigación en la tecnología electrónica, denominada WSI (wafer scale integration), que persigue el hacer circuitos con un área muy por encima de esa área límite, incluso con un área igual a toda la superficie de la oblea. Para alcanzar esta meta se utilizan técnicas de auto-reparación basadas en autotest y reconfiguración. De hecho, los componentes de memoria DRAM utilizan esta técnica para acercarse o superar el valor del área límite y no por ello reducir el rendimiento de fabricación. Finalmente, la existencia de variabilidad en los parámetros de los circuitos hace aparecer un nuevo concepto de rendimiento de fabricación: el rendimiento paramétrico. Un circuito será defectuoso desde un punto de vista paramétrico si alguno de sus parámetros (retardo, consumo, CMRR, etc.) está fuera de un margen especificado en términos de un número máximo de desviaciones típicas respecto al valor central. El rendimiento global de un proceso será el producto de los dos rendimientos individuales definidos. Modelos de fallos Existe una amplia variedad de fallos de fabricación, que se manifiestan como cortocircuitos entre señales o a las alimentaciones, y como nodos flotantes. Encontrar un test para un fallo en un circuito combinacional constituye, en general, un problema NP-completo. Peor aún, no todos los fallos de una red pueden chequearse, lo que ocurre en los casos en los que la lógica es redundante. En la práctica, por fortuna, una gran cantidad de circuitos lógicos son relativamente fáciles de chequear, y ciertas estructuras complejas disponen de tests bien conocidos. Para evaluar la efectividad de una aproximación de test, normalmente es necesario restringir las metas de test, seleccionando uno o varios tipos de fallos y haciendo corresponder estos fallos con un modelo de circuito. En otras palabras, se trata de establecer un “modelo de fallos” para el que se realizarán los tests. Incluso con un modelo de referencia, la meta de chequear los fallos de dicho modelo es difícil de alcanzar si se considera la posibilidad de que se puedan producir fallos múltiples.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Una meta más modesta es hacer el test en el supuesto de fallos simples (sólo puede fallar una puerta en cada momento), y en este supuesto operan los tests más comunes. La aproximación más utilizada es el modelo stuck-at, que considera sólo los cortocircuitos con las alimentaciones: stuck-at-0 (sa0) y stuck-at-1 (sa1). Puede objetarse que este modelo no cubre el rango completo de fallos posibles, y que deberían incluirse los fallos stuck-at-open y stuck-at-short. De hecho, el modelo sa0-sa1 no se identifica bien con los problemas físicos reales del procesamiento CMOS, ya que el corto entre un nodo de señal y un terminal de la fuente no es muy frecuente. Sin embargo, el añadir estos otros fallos complica el proceso de generación de patrones de test, y además muchos de dichos fallos quedan cubiertos por el modelo sa0-sa1. Para ilustrar este hecho consideremos la puerta de carga resistiva de la Figura 6.10, en la que todos los cortos a la fuente de alimentación se modelan con la introducción de fallos sa0 y sa1 en los nodos A, B, C, Z y X. Esta figura ha sido anotada con algunos fallos stuck-at-open (β) y stuck- at-short (α,γ), y puede observarse que dichos fallos quedan cubiertos con el modelo sa0-sa1 en los distintos nodos (por ejemplo, α queda cubierto por Asa1, y β lo es por Asa0 ó Bsa0). A pesar de esto, en ciertos casos los cortos y los circuitos abiertos pueden producir artefactos en los circuitos CMOS que no quedan cubiertos por el modelo sa0-sa1.

Figura 6.10. Puerta simple con fallos anotados Por otra parte, y como ya hemos indicado, los vectores de simulación utilizados para la verificación de los diseños cubren sólo un porcentaje de los fallos que pueden producirse según un cierto modelo, no llegando a descubrir la totalidad de los mismos. Utilizando estimaciones de la distribución de errores de fabricación, se puede obtener una ecuación que relaciona los circuitos erróneos no detectados (D) con el yield del proceso (Y) y el porcentaje de cobertura de defectos (T):  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

D = 1 − Y 1− T Esta ecuación significa que, siendo generosos y concediendo que nuestro modelo de fallos cubre todos los fallos de fabricación, un valor de T del 80% con un yield del 50% proporciona un número de circuitos defectuosos que se dan por buenos que constituye el 13% del total. Si se incrementa la cobertura de fallos (T) hasta el 95% este porcentaje de circuitos defectuosos no detectados cae al 3.4%, y sólo en valores de T del 99.9% el valor alcanzado es del 0.07%, que puede identificarse con un criterio de alta calidad en la detección. Los modelos de fallos referidos hasta aquí sólo verifican la funcionalidad en sentido estático, no siendo suficientes en ciertos casos para caracterizar completamente los defectos de un circuito integrado. Otro tipo de fallos que también es necesario contemplar son los debidos a los retardos, que ocurren cuando el retardo a lo largo de un camino de señal queda fuera de unos límites especificados. Estos fallos van ganando importancia conforme la frecuencia de operación de los circuitos se hace más y más grande. En este sentido, los fallos en los circuitos son más probables si ciertos caminos operan demasiado lentamente, por lo que aquellos tests que se realicen haciendo operar al circuito a la máxima velocidad especificada (pruebas atspeed) capturarán más defectos que los tests lentos. Por último, ciertas herramientas de test no sólo se quedan en verificar la existencia de un determinado estado lógico en la salida, sino que monitorizan en ese estado el valor de la corriente de pérdidas en continua del circuito CMOS correspondiente (IDDQ). Este valor es normalmente muy bajo, y una elevación del mismo es indicativa de un problema potencial (un defecto en los circuitos). Aunque esta premisa no es universalmente aceptada, esta forma de chequeo puede mejorar la calidad del test de los circuitos CMOS y se incorpora en diversas herramientas. GENERACIÓN AUTOMÁTICA DE VECTORES DE TEST (ATPG) La tarea del ATPG es determinar un conjunto mínimo de vectores de excitación que cubra una porción suficiente del conjunto de fallos definidos en el modelo de fallos adoptado. Un enfoque posible es comenzar con un conjunto aleatorio de vectores de test y, mediante simulación, se determina cuántos de los fallos potenciales se han detectado. Con los resultados obtenidos como guía, iterativamente se pueden añadir o retirar vectores extra. Una formulación alternativa y más atractiva se apoya en el conocimiento de la función de una red booleana para deducir un vector de test adecuado para un determinado fallo.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Para ilustrar el concepto, consideremos el ejemplo de la Figura 6.11, en donde la meta es determinar qué excitación de entrada pone de manifiesto un fallo sa0 que ocurra en el nodo U, detectable en la salida de la red (Z). El primer requerimiento es que la excitación a aplicar debe obligar a que dicho fallo se manifieste (controlabilidad); en nuestro caso la única opción es que A=B=1. A continuación, la señal errónea ha de propagarse al nodo de salida Z, de forma que pueda ser observada, lo que se denomina “sensibilización” del camino (path sensitizing); en el ejemplo es necesario que el nodo X=1 y E=0. Luego el (único) vector de test para Usa0 es: A=B=C=D=1, E=0. Este ejemplo es muy simple, pero la deducción de un conjunto mínimo de vectores de test para circuitos con muchos más componentes es un problema complejo objeto de grandes esfuerzos de investigación en la actualidad.

Figura 6.11. Red lógica simple con un fallo sa0 en el nodo U Simulación de fallos (fault-grading) Un simulador de fallos mide la calidad de un programa de test. Determina la cobertura de fallos, que se define como el número total de fallos detectados por la secuencia de test dividido por dos veces el número de nodos en la red (cada nodo puede dar lugar a un fallo sa0 y sa1). Los resultados de estas herramientas pueden utilizarse para eliminar redundancias y reducir el número de vectores de test. La aproximación más común a la simulación de fallos es la técnica “paralela”: el circuito correcto se simula concurrentemente con un cierto número de circuitos erróneos, en cada uno de los cuales se ha introducido un fallo. Entonces los resultados se comparan y un fallo se etiqueta como detectado por un determinado vector de test si las salidas son diferentes. Ésta es una aproximación demasiado simple, y la mayor parte de los simuladores utilizan técnicas tales como seleccionar primero los fallos con mayor posibilidad de detección, para acelerar el proceso de simulación.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. Describa cómo se aplica el concepto de yield en el proceso de test de circuitos. 2. En qué consiste el modelo de fallos. 3. Mencione el objetivo del simulador de fallos.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

ACTIVIDADES COMPLEMENTARIAS DE LA UNIDAD 2 1 a) Describa, ayudándose de un diagrama, la estructura interna de una GAL. Ponga un ejemplo de programación de una función combinacional sencilla, p. ej.: A×B +C ×B 1 b) Describa los métodos de almacenamiento de la programación en un dispositivo programable. 1 c) A parte de la propia lógica programable, qué otros dispositivos o características especiales pueden incluir los dispositivos de lógica programable actuales. 1 d) Restricciones más importantes que pueden imponerse a una herramienta durante el proceso de síntesis. 1 e) Describa, indicando las características más relevantes, las ventajas y los inconvenientes, las distintas alternativas para la fabricación de circuitos lógicos integrados a medida. 1 f) ¿Para qué se utiliza en VHDL la construcción COMPONENT? ¿Cómo se relaciona está construcción con las construcciones ENTITY y ARCHITECTURE? Ponga un ejemplo de empleo mediante la descripción de un multiplexor de dos entradas ( Y E1 S E2 S ) en estilo estructural a partir de componentes NOT, AND y OR.

2 a) Realizar una completa inspección al lenguaje VHDL, sus estructuras y aplicaciones mediante este link: http://atc2.aut.uah.es/~rico/docencia/asignaturas/informatica/lab_org_com p/archivos/Documentacion/VHDL/Apuntes%20VHDL%2000.pdf 2 b) Dado el siguiente bloque combinacional, obtén el respectivo código VHDL en flujo de Datos y haciendo uso del paquete componentes definido previamente crea la correspondiente arquitectura estructural.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

FUENTES DOCUMENTALES DE LA UNIDAD 2 Bar-Lev. "Semiconductors International, 1984

and

electronic

devices",

Prentice

Hall

Basic Integrated Circuit Engineering: Hamilton & Howard. Macgraw Hill (1975) Artigas, J.I. et alter, Electrónica Digital: aplicaciones y problemas con VHDL, Prentice-Hall, 2002. C.J. Savant, M. S.Roden y G.L. Carpenter. "Diseño electrónico", Addison Wesley Iberoamericana, 1992 D. de Cogan. "Design and technology of integrated circuits". John Wile y & Sons 1990 Deschamps, J.P., Síntesis de circuitos digitales: un enfoque algorítmico, Ed. Thomson, 2002. Horestein, M., Microelectrónica: Circuitos y dispositivos, Prentice Hall, 1997. Integrated Circuit Fabrication Technology: D.J. Elliot. MacGraw Hill (1989) Introducción a la Física del Estado Sólido: C. Kittel. Reverté (1984) Material Handbook for Hybrid Microelectronics: J.A. King. Artech House (1988) Microelectronics. An integrated approach: R.T. Howe and C.G. Sodini. Prentice Hall (1997) Microelectronic Devices: E.S. Yang. MacGraw Hill (1988) M.J. Morant. "Diseño y tecnología de circuitos integrados", Addison-Wesley Iberoamericana, 1994 Modular series on solid state devices: Vol.1: "Semiconductor fundamentals", R.F. Pierret, Vol.2: "The P-N junction diode", G.W. Neudeck, Vol.3: "The bipolar junction transistor", G.W. Neudeck, Vol.4: "Field effect devices", R.F. Pierret, Addison-Wesley Publishing Company (1990) Pardo, Fernando, VHDL: lenguaje para síntesis y modelado de circuitos, RA-MA, 1999. Physics of Semiconductor devices: S.M. Sze. J. Wiley & Sons Quick Reference Manual for Silicon Integrated Circuit Technology: Beadle, Tsai & Plummer. A. Wiley (1985)  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Rashid, M.H., Circuitos Microelectrónicos, Thompson, 2002. Semiconductor Devices. Physics and Technology: S.M. Sze. John Wiley & Sons (1985) Solid State and Semiconductor Physics: J. McKelvey. Harper & Row (1970) ULSI Technology: C.Y. Chang and S.M. Sze. MacGraw Hill (1997) VLSI Technology: S.M. Sze. MacGraw-Hill (1985) VLSI Fabrication Technology: S.K. Ghandhi. John Wiley & Sons (1994) Vapaille y R.Castagné. "Dispositifs et circuits intégrés semiconducteurs", Ed. Dunod (1987)                                    

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

UNIDAD 3 Nombre de la Unidad

UTILIZACION DE DISPOSITIVOS LOGICOS PROGRAMABLES

Introducción

Los dispositivos lógicos programables ya tienen más de 25 años de existencia, y hoy en día sería inconcebible pensar en diseños digitales que no los utilicen. En sus comienzos estos dispositivos fueron utilizados para sustituir diseños realizados con lógica discreta y posteriormente para sustituir diseños full-custom cuando los volúmenes de producción son bajos. Pero una de las mayores ventajas de estos dispositivos, que en sus orígenes no fue adecuadamente valorada, es la capacidad de ser reprogramados. Es en esta flexibilidad en donde se encuentra el mayor atractivo de esta tecnología, permitiendo pasar un diseño de la idea al silicio en tiempos muy cortos. La lógica programable permite obtener velocidades hardware con flexibilidad software. La posibilidad de reutilización del hardware programable abarata su costo ya que puede utilizarse exactamente el mismo hardware para varias aplicaciones cambiando exclusivamente su programación interna. La tecnología de la lógica programable o reconfigurable nos ofrece entonces un cambio de paradigma: hardware que puede modificarse vía software. De la misma manera que una computadora puede escribir datos en una memoria, la misma computadora puede grabar un determinado circuito dentro de un chip, y cambiarlo tantas veces como se quiera. El circuito se modifica internamente, sin la necesidad de que haya cambios físicos externos. El objetivo de esta unidad es explorar las distintas alternativas que ofrece este nuevo paradigma, incursionando en diversos aspectos del diseño con lógica programable aplicada. El estudiante de tecnología e ingeniería electrónica debe conocer la importancia que tiene la aplicación de los dispositivos lógicos programables dentro de la ingeniería, para luego generar nuevas ideas de aplicación para suplir necesidades del entorno. En la Unidad 3 se presentan el diseño con lógica programable y algunas aplicaciones.

Justificación

Mediante el desarrollo de las lecciones propuestas se pretende entrenar a los estudiantes en los temas tratados durante la unidad, de tal forma que asimile correctamente  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Intencionalidades Formativas

Denominación de capítulos

 

 

los diversos contenidos y los contextualice a su entorno. • Profundizar en el conocimiento de nuevos dispositivos lógicos programables, así como explorar algunos campos de aplicación en los que estos dispositivos suelen ser implementados. Realizar diseños y llevarlos al campo real mediante el uso de dispositivos lógicos programables. • Reconocer los dispositivos FPGAs, así como sus principales marcas comerciales. • Conocer la arquitectura de los DSPs, sus tipos y criterios de selección. • Estudiar diferentes casos de aplicación de dispositivos lógicos programables específicamente en los campos de telefonía móvil y control de variables. • • •

Capítulo 7: Diseño con Lógica Programable. Capítulo 8: Otros dispositivos programables. Capítulo 9: Otras aplicaciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CAPÍTULO 7: DISEÑO CON LOGICA PROGRAMABLE LECCIÓN 1: FPGAs (FIELD PROGRAMMABLE GATE ARRAY) En 1984 Xilinx desarrolla un nuevo dispositivo que denomina Logic Cell Array (LCA), basado en un concepto diferente a los PLDs. Los LCAs están compuestos de una gran cantidad de celdas lógicas cuya función es programable, dichas celdas pueden ser interconectadas mediante conexiones programables de varios tipos. Estos dispositivos y sus desarrollos posteriores dan origen a las hoy llamadas FPGAs. Las FPGAs están basados en una estructura regular de bloques de procesamiento e interconexiones programables, rodeadas de bloques dedicados a entrada salida (ver Figura 7.1)

Figura 7.1. Esquema interno de una FPGA Las interconexiones usualmente están organizadas en forma de una malla jerárquica, disponiéndose de caminos rápidos entre bloques contiguos, caminos verticales y caminos horizontales. De esta forma los elementos de procesamiento forman una isla rodeada de líneas de interconexión.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Los elementos de procesamiento pueden realizar funciones simples de un bajo número de entradas para dar como resultado una única salida. Esos bloques o celdas internamente están compuestos por una Look-Up Table (LUT) más algún elemento de memoria o flip-flop. El tamaño de la LUT más utilizado es de cuatro entradas, que permite implementar cualquier función lógica de cuatro entradas, o lo que es lo mismo una tabla de verdad de 16 renglones. Hay varias investigaciones que muestran que las LUTs de cuatro entradas dan buenos resultados en cuanto a su eficiencia en área y velocidad; y este resultado ha sido utilizado comercialmente. Los bloques de procesamiento de las FPGAs comerciales usualmente son un poco más complejos que una LUT más un FF, permitiendo mayor flexibilidad. Algunas de la características buscadas son la posibilidad de realizar funciones combinatorias de mayor número de entradas, la posibilidad de realizar bloques aritméticos con acarreo, la posibilidad de aprovechar un bloque que ha sido parcialmente utilizado, permitiendo por ejemplo usar por un lado la salida de la función combinatoria y el elemento de memoria por separado, o la incorporación de un mayor número de elementos de memoria por bloque. Usualmente estos bloques de procesamiento se agrupan, los bloques que pertenecen a un mismo grupo o cluster tienen interconexiones locales, esto redunda en una mayor velocidad de interconexión y en el ahorro de recursos globales. El tamaño de estos clusters es una característica que influye en la performance de una FPGA. En dispositivos comerciales es usual ver clusters grandes, compuestos por entre 8 y 10 elementos lógicos. Se han hecho varios estudios sobre el efecto del tamaño de los clusters en el área y la velocidad de una FPGA, así como su interacción con el tamaño de las LUTs, los resultados muestran que los valores óptimos están entre 4 y 10.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.2. Estructura de un bloque de procesamiento (Basic Logic Element, BLE) y un Cluster El tamaño de los clusters también influye en las herramientas de CAD, el tiempo de compilación de un diseño aumenta con clusters pequeños. Las interconexiones ocupan un lugar muy importante dentro de los integrados,  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

ya sea en términos de área como en los retardos producidos.

Se puede estimar que el porcentaje del área utilizado para las interconexiones está entre 70 y 90% del área total del chip. Las relaciones de área entre lógica, interconexiones y memoria de configuración pueden verse en la Figura 7.3

Figura 7.3. Relación interna de áreas dentro de un FPGA Si bien las primeras FPGAs tenían una estructura simétrica tipo isla, con bloques lógicos y caminos de interconexión verticales y horizontales rodeándolos, las FPGAs actuales tienen estructuras jerárquicas tanto en los bloques lógicos, que se agrupan en clusters como ya fue mencionado, como en las interconexiones que están organizadas en caminos de distinta longitud y retardo.

AUTOEVALUACION 6. Realice un bosquejo del esquema interno de una FPGA. 7. Defina qué es una LUT. 8. Comente acerca de la relación interna de áreas dentro de un FPGA.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: ESTRUCTURA DE FPGAs Un ejemplo del uso de interconexiones programables controladas por celdas de SRAM puede verse en la Figura 7.4. Se utilizan bits de SRAM para controlar el estado de transistores de paso y líneas de control de multiplexores .

Figura 7.4. Interconexiones programables en una FPGA

Los bloques de interconexión (switch blocks) se intercalan entre los Bloques lógicos.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.5. Estructura de bloques de interconexión y bloques lógicos

Figura 7.6. Punto de interconexión formado por 6 transistores de paso

Seis transistores de paso conforman el punto de interconexión, dichos transistores son manejados por las celdas de memoria de configuración. Existen diversas arquitecturas de interconexión, siendo usual contar con caminos de diferente longitud  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.7. Segmentos de interconexión (Xilinx XC4000)

Usualmente hay tres tipos diferentes de interconexiones: Interconexiones directas entre CLBs, interconexiones de propósito general que atraviesan el chip en direcciones horizontales y verticales, y líneas largas que son reservadas para distribuir señales criticas, típicamente señales de reloj.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.8. Detalle de los diferentes tipos de interconexiones

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.9. Detalle de las interconexiones de una FPGA

AUTOEVALUACION 1. Usualmente hay tres tipos diferentes de interconexiones en una FPGA. Menciónelas 2. Muestre cómo se realizan las interconexiones directas entre CLBs.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: NUEVAS INCORPORACIONES A LA ARQUITECTURA BÁSICA de FPGAs El desarrollo de las FPGAs ha sido constante desde sus inicios hasta hoy; los fabricantes han incorporado innovaciones que manteniendo la generalidad de estos componentes, los hacen adecuados para un rango cada vez más amplio de aplicaciones. A continuación veremos una descripción de las diversas características que incorporan las FPGAs modernas.

Memoria Quizá la primera incorporación a la estructura básica de las FPGAs es la inclusión de bloques de memoria RAM. Estos bloques están disponibles para el diseñador, y son configurables en el tamaño y el ancho de palabra. Pueden ser utilizados para almacenamiento de datos o para implementar funciones combinatorias complejas, aunque son más lentos que las celdas estándar. De acuerdo a la configuración pueden ser utilizados como RAM dual port, FIFOs, o RAM sincrónica. Bloques aritméticos El incremento en aplicaciones de procesamiento digital de señales llevó a la incorporación en hardware de bloques aritméticos. Estos bloques implementan funciones multiplicador-acumulador (MAC) con enteros. Microprocesadores Cuando se utilizan FPGAs para realizar funciones de cálculo es usual que trabajen en conjunto con un microprocesador compartiendo las tareas. Existen varios ejemplos de FPGAs que incorporan microprocesadores internamente. Estos microprocesadores pueden estar en hardware como hardcores, es decir que dentro del chip hay un bloque de silicio específico para el microprocesador; o bien como parte de los circuitos programados en la FPGA como softcores o IP cores. Ejemplos de hardcores pueden verse en FPGAs de Xilinx Virtex II Pro y Virtex 4, que incorporan hasta cuatro cores de PowerPC 405 o en la familia Excalibur de Altera (aunque Altera ya no está promoviendo el uso de estos dispositivos para nuevos diseños). Hay una enorme cantidad de ejemplos de softcores, pero para seguir en la línea de los fabricantes de chips mencionaremos los Pico y MicroBlaze de Xilinx y el NIOS II de Altera.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Manejo de relojes Al aumentar el tamaño y la complejidad de los chips se hace necesario proveer una buena distribución interna de las líneas de reloj globales que no introduzcan diferencias de retardo entre distintas partes del dispositivo. Es así que se incluyen líneas especiales rápidas para la distribución de los relojes bloques específicos de control de señales de reloj y PLLs para generar internamente diferentes frecuencias a partir de una señal externa. Entrada-salidas específicas Para que las FPGAs puedan manejar directamente líneas de alta velocidad sin necesidad de transceivers externos se incorporan a los bloques de IO transceivers programables que cumplen con varios de los estándares usados, ya sea en single-ended o diferenciales, los mismos llegan a manejar señales de varios giga bits por segundo. Conversores serie-paralelo de alta velocidad Asociado con el item anterior, para poder trabajar con señales de alta frecuencia, es necesario incorporar serializadores o conversores serie paralelo de alta velocidad. Facilidades de test on-chip Existen diversas estrategias que facilitan la prueba y el debugging de los diseños, estas van desde la posibilidad de la lectura o escritura de los registros y de las memorias internas vía JTAG, hasta la incorporación de analizadores lógicos integrados en el chip.

AUTOEVALUACION 1. Mencione la forma como son utilizados los bloques de memoria en un FPGA. 2. Qué se conoce como softcore?. 3. Por qué se hace necesario incorporar serializadores o conversores dentro de un FPGA.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: EJEMPLOS DE FPGAs COMERCIALES Como ejemplos finales de FPGAs modernas veremos esquemas de las estructuras internas de Stratix II de Altera y las series Virtex II y Virtex 4 de Xilinx. Altera Stratix II

Figura 7.10. Diagrama de bloques del Stratix II En el diagrama de bloques puede verse la estructura del Stratix II que incluye diferentes niveles de memorias intercalados con los LABs, y bloques DSP.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.11. Estructura de un LAB del Stratix II

Figura 7.12. Diagrama de un Adaptive Logic Module (ALM) del Stratix II  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Lo más novedoso del Stratix II es que su arquitectura está basada en los llamados Adaptive Logic Modules (ALM), los cuales están formados por una LUTs adaptable, dos sumadores, segmentos de carry-chain, dos flip-flops, y lógica adicional. La principal característica de estos elementos es que la LUT puede adquirir diversas configuraciones que van desde una única tabla de 7 entradas a dos LUTs de cuatro entradas trabajando en forma independiente, como puede verse en el esquema de la Figura 7.13.

Figura 7.13. Diferentes configuraciones de un ALM

Figura 7.14. Bloque lógico de DSP  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.15. Elemento de IO del Stratix II

Xilinx Virtex II y Virtex 4 A continuación se muestran los diagramas de bloques de dos integrados de la familia Virtex, dado que estos chips tienen arquitecturas muy similares serán analizados en conjunto. Comenzamos viendo la figura Figura 7.16 que muy claramente muestra la jerarquía de la estructura del Virtex II.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.16. Arquitectura jerárquica de una Virtex II Cada slice del Virtex II posee dos LUTs, lógica de control de acarreo y dos Flip- Flops. En la figura siguiente puede verse que las LUTs pueden configurarse para representar funciones lógicas, como memorias o como shiftregisters.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.17. Configuración de un Slice de un Virtex II

Esta es una diferencia entre el Virtex II y el Virtex 4; en el Virtex 4 la arquitectura pasa a tener dos tipos de Slices, los que pueden alternar entre función combinatoria o memoria; y aquellos que sólo pueden ser utilizados como funciones lógicas.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.18. Diferentes tipos de slices en el Virtex 4

Figura 7.19. Virtex 4 vista simplificada de un sílice    

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. Cuál es la novedad de la familia de los Stratix II? 2. Mencione los principales bloques componentes de la arquitectura de la familia Virtex II.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: HERRAMIENTAS DE SOFTWARE (EDA, CAE, CAD) Primero un poco de terminología, las herramientas CAD (Computer-Aided Design) se definen como aquellas que realizan funciones de place and route, y layout; usualmente el término CAE (Computer-Aided Engineering) se aplica mayormente a simulación, síntesis y análisis de tiempos; aunque es usual utilizar ambos términos en forma intercambiable. El término EDA (Electronic Design Automation) engloba las dos definiciones anteriores . Para diseñar con dispositivos lógicos programables es absolutamente necesario el uso de un conjunto de herramientas software de buena calidad, confiables y de fácil utilización. Estas herramientas son esenciales, tanto a nivel industrial como en la formación del ingeniero, en la medida que la integración progresa y ya no se puede acceder a los elementos básicos del hardware.

Figura 7.20. Niveles de especificación de un diseño y los diferentes procesos involucrados

Las etapas de un proceso típico de diseño, sin las realimentaciones de simulación y verificación, pueden verse en la Figura 7.20.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La síntesis de alto nivel es el proceso de compilar una descripción comportamental dada en un lenguaje de alto nivel en una descripción estructural dada a nivel de transferencia de registros (RTL register-transfer level). Este proceso generalmente se hace en forma manual, pero es incipiente el desarrollo de herramientas y lenguajes de alto nivel, que veremos con más detalle. La síntesis lógica es el proceso de convertir una descripción RTL en un netlist optimizado. El netlist es una descripción del circuito a nivel de compuertas y registros y las interconexiones entre esos elementos. Las tareas realizadas en el proceso de síntesis incluyen la optimización de la lógica combinatoria y la optimización de la lógica secuencial. Dichas optimizaciones pueden incluir diferentes requerimientos cómo el área del chip utilizada, la velocidad o el consumo. El mapeo tecnológico se refiere a la mapeo de un determinado netlist genérico en las primitivas o bloques disponibles en una determinada tecnología. En el caso de FPGAs, por ejemplo, se deberán mapear las funciones lógicas en las LUTs disponibles en la familia utilizada. Debe hacerse algo similar para los registros, pasando de un registro genérico a los tipos de registro disponibles en la tecnología. Las herramientas utilizadas deben contar también con la capacidad de simular y verificar el diseño en diferentes niveles y etapas del mismo. Si se trabaja con lenguajes de especificación hardware, por ejemplo VHDL, la forma usual de simular es construir un test bench o banco de pruebas. El test bench se especifica también en VHDL e incluye como un componente el diseño en cuestión, generándole entradas y chequeando sus salidas. Un simulador VHDL es capaz de ejecutar test-benches disponiendo, normalmente, de un conjunto de utilidades que facilitan la depuración de los modelos y la revisión de resultados. Las primeras etapas pueden hacerse con herramientas genéricas independientes de los fabricantes de dispositivos programables, pero las etapas de placement y routing requieren la utilización de herramientas propietarias. EVOLUCIÓN HISTÓRICA La evolución de las herramientas de EDA se dio en conjunto con la evolución de los dispositivos lógicos programables y de las computadoras. Las primeras formas de trabajar con PLDs implicaban la traducción de un diseño a un formato de tabla de verdad llamado H&L. Posteriormente aparece el PALASM, un programa escrito en FORTRAN que permitía convertir un  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

diseño descripto en ecuaciones booleanas, en archivos programación de dispositivos PAL de Monolithics Memories (MMI).

de

En esta época no solo eran importantes las herramientas software, sino también los equipos de programación de dispositivos, que recién se estaban generalizando. Un salto importante fue la introducción del estándar 3 de JEDEC, propuesto en 1980. Este estándar define un formato de archivo común independiente del fabricante del dispositivo y del fabricante del programador. En los ochentas aparecen dos lenguajes que permiten un mayor nivel de abstracción en la expresión de los diseños, y son independientes de los fabricantes de chips, estos son el ABEL (Advanced Boolean Expression Language) y el CUPL (Common Universal tool for Programmable Logic). Estas herramientas además de definir un lenguaje para la entrada de diseños, disponían de paquetes de minimización booleana, síntesis de máquinas de estados y simulación. A mediados de los ochentas aparecen los programas de diseño de Altera A+PLUS y un conjunto de herramientas suministradas por Xilinx para sus nuevos dispositivos. Como los dispositivos de Xilinx tenían una arquitectura diferente sus herramientas incluían place & route automático para un eficiente uso de los recursos disponibles. La siguiente generación de herramientas software incluyó la posibilidad de especificar diseños mediante entrada esquemática, haciendo más fácil la migración de diseños realizados previamente con circuitos lógicos de las familias TTL y CMOS. Los lenguajes de especificación hardware Language)

(HDL

Hardware

Description

Si bien ABEL y CUPL ofrecían una herramienta de diseño independiente de los fabricantes de circuitos, estos lenguajes estaban muy atados a la implementación del diseño en un PLD. A principios de los ochentas aparecen dos lenguajes de alto nivel pensados para especificar el comportamiento del hardware digital, estos son VHDL y Verilog. La importancia de estos lenguajes es su estandarización por el IEEE, VHDL tiene su primer estándar en 1987, y luego es modificado en 1993, 2000 y 2002 y Verilog varios años después, recién pasa a ser estándar en 1995 y es revisado en 2001. VHDL es un lenguaje diseñado para describir sistemas electrónicos digitales cuyo origen está en un programa del gobierno de Estados Unidos Very High Speed Integrated Circuits (VHSIC) iniciado en 1980. A lo largo de ese  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

proyecto resultó clara la necesidad de contar con un lenguaje estándar que pudiera describir la estructura y la funcionalidad de un circuito digital y el resultado fue el desarrollo del VHSIC Hardware Description Language (VHDL). Verilog HDL tuvo un origen diferente, arrancó en sus comienzos como un lenguaje propietario desarrollado en 1983 por Gateway Design Automation, compañía que posteriormente fue adquirida por Cadence Design System. A comienzos de los ’90C adence abre la especificación del lenguaje y promueve su estandarización por el IEEE que se logra en 1995. Ambos lenguajes, si bien diferentes, poseen características similares. Permiten describir la estructura de un diseño y su partición en bloques jerárquicos, así como la interconexión de dichos bloques. Además admiten describir la funcionalidad de esos bloques independientemente de su implementación y la posterior simulación de los mismos y del sistema completo antes de su implementación. Los HDLs, a diferencia de los lenguajes de programación usuales, están especialmente diseñados para permitirle a los diseñadores modelar la concurrencia de procesos inherente a los elementos hardware. El salto cualitativo en las herramientas EDA fue a fines de los ochentas cuando aparecieron los primeros programas que incluían síntesis lógica automática. Hasta ese momento los HDLs eran utilizados para especificar, simular y verificar los diseños, pero éstos debían ser manualmente traducidos a su implementación con compuertas. La síntesis lógica cambió radicalmente la metodología de diseño, con una especificación a nivel de transferencia de registros (RTL, Register Transfer Level), hecha en algún HDL, la herramienta extrae en forma automática el detalle de compuertas, flip-flops e interconexiones. Esto permite describir circuitos digitales complejos exclusivamente en alto nivel, dejando los detalles de implementación a herramientas automatizadas. Los lenguajes pasan entonces a tener una mayor importancia en el diseño digital. Cabe mencionar que la codificación RTL realizada en un lenguaje HDL requiere utilizar un subconjunto de dicho lenguaje, ya que como los lenguajes HDL no fueron específicamente diseñados para síntesis, sino que están pensados para especificar y simular hardware, existen en ellos varias sentencias o expresiones que no son sintetizables en hardware. Las etapas de alto nivel de un diseño, síntesis lógica y mapeo, pueden ser realizadas con herramientas independientes del fabricante del circuito programable, pero las etapas de bajo nivel, placement y routing deben utilizar las herramientas de los fabricantes de FPGAs, ya que la información de programación de las mismas es propietaria.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 7.21. Proceso típico de diseño con un HDL La Figura 7.21 muestra el proceso típico de diseño con sus diferentes etapas. Los bloques sombreados son las etapas de procesamiento, los bloques sin sombrear representan el nivel del diseño. Cuando el diseño va a ser implementado en una FPGA la herramienta debe realizar el mapeo en las celdas de la FPGA, esto significa que las herramientas deben convertir el diseño o las ecuaciones booleanas en el tipo  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

de LUTs utilizadas en las FPGAs. Hay varias investigaciones que estudian los algoritmos necesarios para realizar este mapeo en LUTs y sus optimizaciones. Para el caso de FPGAs modernas que incluyen bloques de RAM, bloques aritméticos u otros bloques dedicados, es necesario que las herramientas EDA los sepan utilizar adecuadamente. Posteriormente resta realizar el placement y routing dentro de la FPGA. Esto significa elegir en qué celdas se ubica el diseño y elegir los caminos de interconexiones entre esas celdas. HERRAMIENTAS DE ALTO NIVEL A medida que los diseños aumentan su complejidad aparece la necesidad de utilizar herramientas de mayor grado de abstracción para poder desarrollar aplicaciones cumpliendo con las exigencias de productividad. Es claro que cuando se aumenta el nivel de abstracción se gana en tiempo de diseño, pero se pierde en la optimización del mismo. Actualmente todavía la mayoría de los diseños se realizan utilizando lenguajes de descripción hardware, principalmente VHDL y Verilog, y existen estrategias especificas para manejar diseños de gran tamaño. La principal es partir el diseño en bloques más pequeños y diseñar adecuadamente la jerarquía de estos bloques así como las interfaces de los mismos. Muchos de estos bloques pueden estar pre-hechos como IP cores, o diseñarse una vez y reutilizarse. Las cosas se complican aún más porque hay que describir el comportamiento esperado del sistema para poder verificar los bloques diseñados. Si bien los HDLs permiten esto, no son los lenguajes más cómodos para ello. Si además el sistema incluye un microprocesador y por lo tanto software corriendo en él, entonces se plantea la idea de contar con un lenguaje único que sirva tanto para el hardware que va estar implementado en una FPGA como para el software del microprocesador. Otro punto importante cuando se piensa en diseños que utilizan plataformas reconfigurables como aceleradores de cálculo, es que la mayoría de los algoritmos están especificados y probados en lenguajes de programación tales como C o Matlab y no en HDLs. Ha habido varios esfuerzos en incorporar lenguajes de programación al diseño con FPGAs, el problema principal es que estos lenguajes están concebidos para implementaciones secuenciales y no para representar el paralelismo inherente al hardware.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Si bien hay una gran cantidad de lenguajes de programación que han sido utilizados para sintetizar hardware en forma más o menos automática, el más utilizado es el C. Esto se debe al grado de difusión que tiene el C, y pueden mencionarse varios ejemplos de traductores de C a HDL. Las dificultades que se presentan hacen que siempre estos traductores no incluyan la sintaxis completa del C sino un subconjunto del lenguaje, y que además introduzcan diversas modificaciones o ampliaciones al C para representar adecuadamente el paralelismo. Como ejemplos concretos podemos mencionar: HandelC, Trasmogrifier C, Streams-C. Impulse C. Han habido varios esfuerzos para compilar directamente desde Matlab a hardware, como muchos algoritmos se especifican directamente en Matlab esta idea es muy atractiva. Para algunas aplicaciones los resultados del hardware generado automáticamente son cinco veces más lentos y ocupan cuatro veces más celdas que los diseños hechos manualmente; pero se presentan otros casos en donde las velocidades de los diseños son comparables, aunque se mantienen las diferencias de tamaño. Demás está decir que los tiempos de diseño se reducen enormemente, aunque los autores de las publicaciones no utilizan herramientas comerciales. SystemC es otra alternativa de descripción de alto nivel, está implementado como clases de C++, y permite la definición de hardware a varios niveles de abstracción. Otro punto interesante es la utilización de lenguajes de programación para realizar la verificación de un diseño. En lugar de diseñar un test-bench en HDL es posible describirlo en un lenguaje de programación. Se han desarrollado módulos de software que permiten enlazar simuladores HDL con paquetes clásicos de simulación de sistemas, un ejemplo es el vinculo entre Matlab y Simulink con ModelSim (simulador HDL). Esto permite desarrollar el entorno de pruebas (test benches) en un lenguaje de alto nivel, y “conectar” entradas y salidas hacia bloques de hardware descritos en HDL. Otra aplicación es la integración de bloques hardware descritos como HDL en modelos a escala de sistema. [ver mathworks] AUTOEVALUACION 1. Mencione la diferencia entre CAD y CAE. 2. A qué se le define como netlist? 3. Es posible utilizar herramientas independientes del fabricante en el proceso de placement y routing? Justifique 4. Comente sobre las alternativas de herramientas de alto nivel en la programación de FPGAs.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

   

CAPÍTULO 8: OTROS DISPOSITIVOS PROGRAMABLES LECCIÓN 1: FPAA (FIELD PROGAMMABLE ANALOG ARRAY) Los circuitos análogos programables se denominan en la literatura FPAA (Field Progammable Analog Array). Estos circuitos son el equivalente análogo de los circuitos digitales FPGA (Field Programmable Gate Array). Un circuito análogo programable es un circuito que puede ser configurado para implementar una variedad de funciones análogas; el circuito consta de un arreglo de bloques análogos configurables (Configurable Analog Block: CAB), una red de interconexión programable y un registro para almacenar los bits de la configuración de la FPAA. En la Figura 8.1 se muestra el diagrama de bloques para un circuito FPAA. De acuerdo a las características impuestas por el fabricante del FPAA, la red de interconexión proporciona la ruta de interconexión entre los bloques CABs, o entre los bloques de entrada y salida (I/O). El registro con las cadenas de bits almacena la información para configurar los bloques CABs.

Figura 8.1. Diagrama de bloques para un FPAA Terminología Debido a que existen diferentes fabricantes de FPAAs, una nueva terminología  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

está siendo siguiente:

usada. Actualmente, la terminología más utilizada es la

Field Programmable Analog Array (FPAA): Un circuito integrado, el cual puede ser programado para implementar circuitos análogos, usando bloques análogos flexibles e interconexiones. Field Programmable Mixed Analog-Digital Array (FPMA): Un circuito integrado, el cual contiene un FPAA y un FPGA, es tan flexible como los bloques configurables y se puede programar para implementar circuitos de señal mixta. Electrically Programmable Analog Circuit (EPAC): Un circuito FPAA versión de IMP Inc; EPAC es una marca registrada del fabricante IMP Inc. Field Programmable Analog Device (FPAD): Es el nombre que utiliza el fabricante Zetex para un FPAA. Totally Reconfigurable Analog Circuit (TRAC): Nombre para los circuitos FPADs fabricados por Zetex. Reseau Analogique Programmable (RAP): Nombre en francés para un FPAA. Configurable Analog Block (CAB): Celda analógica básica y programable en un FPAA. Field Programmable System-On-a-Chip (FIPSOC): Un chip que integra un FPMA y un microcontrolador, este chip es comercializado por la compañía SIDSA. Evolución de los FPAAs Con la aparición y evolución de los circuitos digitales programables (Programmable Logic Devices: PLDs), surgió la necesidad de desarrollar circuitos integrados que permitieran programar e implementar circuitos de señal mixta en un solo chip: es por ello que desde la década del ochenta hasta el presente, varias compañías y grupos de investigación (la mayoría de ellos pertenecientes a las universidades) han desarrollado y anunciado sus productos tal como se muestra en la Tabla 8.1.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Año

Compañías y Grupos de Investigación

1988

Sivilotti (Caltech)

1990

Lee & Gulak (University of Toronto)

1990

Kawasaki Steel

1990

Pilkington Microelectronics

1991

Lee & Gulak (University of Toronto)

1994

IMP, Inc.

1994 1994

Pierzchala & Perkowski (Portland State University) Chang et al (University of Nottingham)

1996

Embabi et al (Texas A&M University)

1996

Zetex Semiconductors Ltd.

1997

Guadet & Gulak (University of Toronto)

1997

Futura et al (Spain)

1997

Motorola

1998

Motorola e IMP, retiradas del mercado

1999

IspPAC de Lattice

1999

SIDSA FIPSOC (anunció el nuevo chip)

2000

Anadigm

Tabla 8.1: Evolución de los FPAAs

FPAAs Comerciales Actualmente, tres compañías fabricantes de semiconductores producen circuitos FPAAs. En la Tabla 8.2 se muestran los FPAAs comerciales.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Fabricante

Modelo

Tecnología

IspPAC10 IspPAC20 Lattice

IspPAC30 IspPAC80

Zetex Anadigm

UltraMOS tiempo continuo

Ancho de banda 550 kHz (G=1) 330 kHz (G=100) 1.5 MHz 500 kHz

IspPAC81

75 kHz

IspPAC POWR1208 TRAC20

-

TRAC20LH AN10E40

Bipolar tiempo continuo Switched capacitor

AN120E04

4 MHz 12 MHz 5MHz 2MHz

AN220E04

Tabla 8.2: FPAAs comerciales

AUTOEVALUACION 1. Comente la diferencia entre FPGA y FPAA. 2. Cuál fue la motivación para generar FPAAs? 3. Menciones dos familias comerciales de FPAAs y sus características de ancho de banda.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: FAMILIAS DE FPAAs CIRCUITOS FPAAs DE LATTICE El elemento funcional activo básico de los circuitos FPAAs de Lattice es el PACell (Programmable Analog Cell) que, dependiendo de la arquitectura específica del circuito IspPAC, puede ser un amplificador de instrumentación, un amplificador-sumador u otra etapa activa elemental. En todos los circuitos IspPAC, las celdas programables PACells™ se combinan cuidadosamente para formar macroceldas análogas o PACblocks. En este caso, no se requiere ningún componente externo, lo cual flexibiliza la implementación de funciones análogas básicas tales como: filtrado con precisión, suma o diferencia, ganancia o atenuación y conversión. En la Figura 8.2, se muestra el diagrama de bloques básico de un PACblock.

Figura 8.2. Diagrama de bloques de un PACblock Los circuitos IspPAC funcionan con una sola fuente de alimentación a 5V y ofrecen una arquitectura que es completamente diferencial desde la entrada hasta la salida. Esto duplica la eficiencia del rango dinámico versus I/O “single-ended” (voltaje de entrada). También, produce un funcionamiento mejorado con respecto a las especificaciones tales como: CMR (Común-Mode Rejection), PSR (Power-Supply Rejection) y THD (Total Harmonic Distortion). Al mismo tiempo, la operación “single-ended” se acomoda fácilmente. La metodología de diseño de programación en el sistema (In-System Programmable: ISP) de Lattice permite simplificar el proceso de diseño y  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

acelerar la implementación del circuito análogo. En este caso, la herramienta de diseño PAC-Designer suministra al usuario una ventana con una interfaz gráfica para especificar fácilmente el diseño usando librerías y macros generadores de circuitos. La Tabla 8.3 presenta los diferentes circuitos de la familia IspPAC y la respectiva área de aplicación de cada uno. CIRCUITOS FPADs DE ZETEX Los circuitos FPADs de Zetex del TRAC020 para baja potencia).

son

TRAC020

y TRAC020LH (versión

En la Figura 8.3, se muestra el diagrama de bloques básico del TRAC020. Circuito

Función

IspPAC-POWR1208 Control y monitoreo de fuentes de potencia IspPAC10

Acondicionamiento de señal

Encapsulado 44-TQFP

28-SOIC 28-PDIP

IspPAC20

Lazo de control y monitoreo

44-PLCC 44-TQFP

IspPAC30

Versatilidad análoga front-end

24-SOIC 28-PDIP

IspPAC80

IspPAC81

Ultra-flexible, tiempo continuo, filtro paso bajo de 5to orden con una corte frecuencia de programable en el rango de 50 kHz – 750 Ultra-flexible, tiempo continuo, filtro paso bajo de 5to orden con una corte frecuencia de programable en el rango de 10 kHz – 75 kHz

16-SOIC 16-PDIP

16-SOIC 16-PDIP

Tabla 8.3 Circuitos FPAAs de la familia IspPAC

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.3. Diagrama esquemático del TRAC020 El circuito TRAC se basa en una única celda análoga configurable, la cual es flexible a la programación para llevar a cabo diferentes funciones tales como: adición, negación, logaritmo, antilogaritmo, amplificación, diferenciación, integración, rectificación, y seguidor de voltaje. Estas funciones son combinadas para implementar un sistema de procesamiento de señal o acondicionamiento de señal. Ellas también facilitan el uso de las técnicas estructuradas de diseño matemático. En este caso, no es necesario entender muy bien la estructura de las funciones análogas, solo es necesario entender su función a nivel de sistema. Las funciones básicas pueden ser configuradas en cada una de las veinte celdas interconectables entre sí para facilitar el diseño y configuración de cualquier circuito análogo en el chip; es decir, la configuración es realizada digitalmente mediante un registro de desplazamiento, mientras la señal permanece en el dominio análogo todo el tiempo, por lo tanto se evitan los errores de muestreo y retardos de procesamiento hallados en soluciones equivalentes con DSP (Digital Signal Processing). Adicionalmente como un complemento a los TRACs, el grupo FAS (Fast Analog Solutions) de Zetex tiene en el mercado el circuito CASIC (Computational Application Specific Integrated Circuit) ZXF36Lxx, el cual contiene 36 celdas análogas las cuales se pueden configurar usando una máscara para la metalización. CIRCUITOS FPAAs DE ANADIGM El FPAA AN10E40 de Anadigm, es un dispositivo adecuado para el diseño e  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

implementación de diferentes circuitos análogos basados en usar la técnica de diseño SC (switched-capacitor). Este circuito dispone de macros llamados Ipmodules, los cuales implementan las funciones de amplificación, suma, integración, diferenciación, comparación y rectificación, fuentes de DC (voltajes de referencia), filtros, osciladores senosoidales, y circuitos S/H (Sample and Hold) y T/H (Track and Hold), es decir, puede ser usado en diversas aplicaciones tales como: filtrado de señales, implementación de circuitos de control, generadores de señal, etc. El chip se divide en 20 bloques análogos configurables (Configurable Analog Block: CAB), cada uno con un amplificador operacional, cinco bancos de capacitores e interruptores tal como se ilustra en la Figura 8.4.

Figura 8.4. Diagrama de bloques básico de un CAB. Cuatro de los bancos de capacitores se localizan entre el bloque de interconexión interno (local routing connections) y los interruptores, y un banco de capacitores está en el lazo de realimentación del amp-op. En el lado izquierdo de los bancos de capacitores existen diversas etapas de entrada (a las cuales llegan las entradas Local Inputs) y sus salidas llegan a los bloques de interruptores, y en el lado derecho del amp-op (OpAmp) están las salidas del CAB. La información para las interconexiones y el comportamiento de los CABs es almacenada en el bloque SRAM, la cual es cargada durante la  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

configuración. El proceso de configuración típicamente ocurre al energizar el circuito, pero puede ser re-iniciado en cualquier momento. La habilidad para re-configurar el bloque SRAM en cualquier momento le permite al usuario gran flexibilidad para diseñar un sistema. El AN10E40 está organizado en una matriz de bloques CABs de 4x5, una red de interconexión para el reloj, interruptores, y recursos para interconexión global y local. Cada bloque CAB del AN10E40 (ver Figura 8.5) es programable, lo cual permite una gran flexibilidad para diseñar diferentes circuitos para procesamiento análogo.

Figura 8.5. Diagrama de bloques de la matriz del AN10E40 La lógica para la configuración (Configuration Logic) y el registro de desplazamiento (Shift Register) trabajan en conjunto siempre que la configuración del chip este en proceso. La matriz de bloques CABs está rodeada por las celdas análogas I/O (Input/Output) programables, 13 en total, con dos amp-ops de soporte. El chip también tiene un generador de voltaje de referencia (Vref) programable. Las celdas análogas I/O son flexibles y permiten conectar directamente la circuitería del núcleo (core) del chip con los pines de entrada o salida. Adicionalmente, con muy pocos componentes externos se implementa fácilmente un filtro Sallen-Key, el cual permite corregir los problemas de aliasing .  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Debido a que el FPAA AN10E40 está basado en circuitos switchedcapacitor, sus señales de salida no están libres de la presencia de ruido, entonces la flexibilidad de las celdas I/O es importante cuando se considera la implementación de filtros anti-aliasing. Adicionalmente, debido a la naturaleza misma del sistema de datos muestreados (Sampled Data System), el cuidado que se debe tener es limitar el ancho de banda de la señal de entrada para evitar aliasing. Los FPAAs AN120E04 y AN220E04 pertenecen a la segunda generación de la familia de Anadigm (Anadigmvortex) y están basados en una arquitectura switched-capacitor completamente diferencial. La arquitectura de los FPAAs AN120E04 y AN22E04 consiste de una matriz de CABs de 2x2, una red de interconexión programable, una LTU (Look-Up Table), cuatro celdas análogas de entrada (una de ellas con un multiplexor para cuatro señales de entrada), y tres celdas de salida. En la Figura 8.6, se muestra el diagrama de bloques de la matriz para los N120E04 y AN220E04.

Figura 8.6. Diagrama de bloques de los FPAAs AN120E40 y AN220E04 Cada una de las celdas de entrada tiene un filtro anti- aliasing programable y un amplificador de alta ganancia con bajo offset de entrada. Las cuatro celdas  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

CABs pueden ser programadas a través de la LUT, lo cual permite realizar la implementación de funciones arbitrarias. La diferencia fundamental entre estos FPAAs es la programación. El AN120E40 es un dispositivo de bajo costo para aplicaciones de alto volumen de producción, sin embargo este puede ser re-programado si se activa la señal de reinicio (reset) del chip; el AN220E04 soporta reconfiguración dinámica (re-programación o actualización de una nueva función) mientras realiza un procesamiento análogo.

El AN220E04 tiene dos tipos de memoria: la SRAM de respaldo (Shadown) y la SRAM de configuración. Los nuevos datos de configuración son almacenados en la Shadown SRAM, los cuales son transferidos a la SRAM de configuración en un flanco de reloj provisto para sincronizar la actualización de la función análoga del circuito.

METODOLOGÍA DE DISEÑO USANDO CIRCUITOS FPAAs Esta sección describe una metodología simple para diseñar circuitos análogos usando circuitos FPAAs, y las estrategias usadas para simular e implementar el diseño en un simple circuito FPAA. La metodología de diseño consiste en: a) Diseño análogo sin componentes externos • Definir las especificaciones y requerimientos • Diseño del circuito análogo • Simulación (análisis AC) del circuito • Simulación (análisis transitorio) para verificar la respuesta en el dominio del tiempo. • Implementación del diseño usando un circuito FPAA • Test del circuito diseñado b) Diseño análogo con componentes externos • Definir las especificaciones y requerimientos • Considerar las limitaciones de los circuitos IspPAC • Diseño del circuito análogo • Simulación (análisis AC) • Simulación (análisis transitorio) del circuito para verificar la respuesta en el dominio del tiempo • Implementación del diseño usando un circuito FPAA • Test del circuito diseñado  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. 2. 3. 4.

                                       

A qué se conocen como PACells? Para qué puede ser utilizado un TRAC? Menciones la principal característica de la familia ANADIGM Elabore un listado con la metodología de diseño análogo con componentes externos para un FPAA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

LECCIÓN 3: PROCESADORES DIGITALES DE SEÑALES (DSP) INTRODUCCION Un sistema de procesado digital de señal electrónico realiza procesado digital de señal, entendiéndose por él aplicación de operaciones matemáticas a señales representadas de forma digital. Las señales son representadas de forma digital mediante secuencias de muestras. A menudo, estas muestras se obtienen de señales físicas (por ejemplo, señales de audio) utilizando transductores (un micrófono en este caso) y convertidores analógico-digitales. Después del procesado matemático, las señales digitales pueden volver a convertirse en señales físicas mediante convertidores digital-analógicos. Si bien, en principio, el corazón de un sistema de proceso digital puede ser un microcontrolador, un procesador de propósito general o un procesador digital de señal (DSP), en sistemas en los cuales la carga computacional es extremadamente intensa la solución óptima pasa por escoger a un DSP. En la actualidad, los cuatro grandes fabricantes de DSP son Texas Instruments, con la serie TMS320; Motorola, con las series DSP56000, DSP56100, DSP56300, DSP56600 y DSP96000; Lucent Technologies (anteriormente AT&T), con las series DSP1600 y DSP3200; y Analog Devices, con las series ADSP2100 y ADSP21000. ¿QUÉ ES UN DSP? Estrictamente hablando, el término DSP se aplica a cualquier chip que trabaje con señales representadas de forma digital. En la práctica, el término se refiere a microprocesadores específicamente diseñados para realizar procesado digital de señal. Los DSP utilizan arquitecturas especiales para acelerar los cálculos matemáticos intensos implicados en la mayoría de sistemas de procesado de señal en tiempo real. Por ejemplo, las arquitecturas de los DSP incluyen circuitería para ejecutar de forma rápida operaciones de multiplicar y acumular, conocidas como MAC. A menudo poseen arquitecturas de memoria que permiten un acceso múltiple para permitir de forma simultánea cargar varios operandos, por ejemplo, una muestra de la señal de entrada y el coeficiente de un filtro simultáneamente en paralelo con la carga de la instrucción. También incluyen una variedad de modos especiales de direccionamiento y características de control de flujo de programa diseñadas para acelerar la ejecución de operaciones repetitivas. Además, la mayoría de los DSP incluyen en el propio chip periféricos especiales e interfaces de entrada salida que permiten que el procesador se comunique eficientemente con el resto de componentes del sistema, tales como convertidores analógico-digitales o memoria.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La diferencia esencial entre un DSP y un microprocesador es que el DSP tiene características diseñadas para soportar tareas de altas prestaciones, repetitivas y numéricamente intensas. Por contra, los microprocesadores de propósito general o microcontroladores no están especializados para ninguna aplicación en especial; en el caso de los microprocesadores de propósito general, no están orientados a aplicaciones de control, en el caso de los microcontroladores.

Figura 8.7. Estructura de un filtrode respuesta impulsional finita (FIR) Aunque el ejemplo del filtro de respuesta impulsional finita (FIR) ha sido ampliamente utilizado en el entorno DSP, es quizás el más simple que permite ilustrar la necesidad de estas prestaciones en los DSP, las cuales permiten concebir muchas de las funciones de procesado en tiempo real. La mecánica del algoritmo del filtro FIR es bastante sencilla. Los bloques D en la Figura 8.7 son retardos unitarios; su salida es una copia de la entrada retardada en un período de muestreo. El filtro FIR se construye a partir de una serie de etapas básicas que se van repitiendo. Cada etapa básica incluye una operación del tipo multiplicación y acumulación. La señal de entrada xk es un conjunto de valores discretos obtenidos mediante muestreo de una señal analógica. El valor xk-1 es en realidad el valor que tenía xk en un período de muestreo anterior. De forma similar xk-2 sería la xk de dos períodos de muestreo anteriores. Cada vez que una nueva muestra llega, las que estaban almacenadas previamente se desplazan una posición hacia la derecha y una nueva muestra de salida se calcula después de multiplicar la nueva muestra y cada una de las anteriores por sus correspondientes coeficientes.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En la figura, cn representa a los coeficientes, donde n es el número del coeficiente. Los resultados de cada multiplicación se suman para formar la nueva muestra de salida yk. El algoritmo de cálculo se basa en operaciones del tipo multiplicación y acumulación (A=B*C+D), siendo la multiplicación el verdadero cuello de botella en el cálculo de la mayoría de los algoritmos de procesado digital. CARACTERÍSTICAS DE LOS DSP La elección de un DSP que posea unas ciertas características estará muy condicionada a la aplicación que se quiera destinar. En esta sección se presenta un conjunto de aspectos característicos de los DSP sin que se pretenda con ello hacer una lista exhaustiva. Dichos aspectos deberán tenerse en cuenta a la hora de su elección para una aplicación en particular. Formato aritmético Una de las características fundamentales de los DSP es el tipo de formato aritmético utilizado por el procesador. La Figura 8.8 muestra la estrecha relación entre formato numérico y número de bits del DSP.

Figura 8.8. Representaciones numéricas comunes en los DSP comerciales La Figura 8.9, arriba y abajo, muestra los formatos de coma flotante y coma fija, respectivamente.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En el formato IEEE-754 de coma flotante la “s” indica que el bit más significativo es el signo, donde un 1 indica que se trata de un número negativo. La “e” indica exponente, formado por 8 bits y la “m”, de 23 bits, la mantisa del número. Al carecer de exponente el formato en coma fija, éste puede representar números con más bits significativos que el formato en coma flotante del mismo tamaño en bits. En este ejemplo, 31 bits son significativos, “f”, comparados con los 23 del formato IEEE-754. Para un mismo tamaño en número de bits, el formato en coma fija proporciona una mejor resolución que el formato en coma flotante. Sin embargo, es este último quien posee un margen dinámico superior. Así, por ejemplo, si se considera una representación en coma fija de 32 bits, el mínimo valor que puede ser representado es 2-31 siendo el mayor 1-2-31. La relación entre ambos, la cual resulta en el margen dinámico, es de 2,15 109, aproximadamente 187 dB. En cambio, con una representación en coma flotante, con 24 bits de mantisa y 8 de exponente, pueden representarse números desde 5,88 10-39 hasta 3,40 1038, resultando en un margen dinámico de 5,79 1076 o de 1535 dB. La aritmética de coma flotante es más flexible que la de coma fija. Con coma flotante, los diseñadores de sistemas tienen acceso a un margen dinámico más amplio. En consecuencia, los DSP de coma flotante son generalmente más fáciles de programar que los de coma fija, pero son usualmente más caros. El mayor coste es resultado del requisito de una mayor complejidad circuital que se traduce en un mayor tamaño de chip. Sin embargo, el mayor margen dinámico facilita su programación pues el programador no debe preocuparse por el margen dinámico ni por la precisión. Por el contrario, en los DSP de coma fija el programador a menudo debe escalar las señales en sus programas para asegurar una adecuada precisión numérica con el limitado margen dinámico del DSP de coma fija. Por lo general, las aplicaciones con un gran volumen de unidades y/o bajo consumo utilizan los DSP de coma fija al ser la prioridad en este tipo de aplicaciones el bajo coste. Los programadores determinan el margen dinámico y la precisión necesarias de la aplicación, ya sea analíticamente o a través de simulaciones, y entonces aplican operaciones de escalado dentro del código de la aplicación en los puntos en donde sea necesario. En aplicaciones donde el coste no sea un requisito crítico o que demanden un margen dinámico y precisión elevadas, o donde la facilidad de desarrollo sea vital, los DSP de coma flotante poseen ventaja. Mediante rutinas software es posible emular el comportamiento de un dispositivo de coma flotante con uno de coma fija. Sin embargo, tales rutinas resultan generalmente caras en términos de ciclos del procesador. En consecuencia, rara- mente se suele emular la aritmética de coma flotante.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.9. (Arriba) Formato de coma flotante IEEE-754; 1 bit de signo, 8 de exponente y 23 de mantisa. (Abajo) Formato en coma fija; 1 bit de signo y 31 bits significativos Ancho de palabra Los DSP de coma flotante utilizan un bus de datos de 32 bits. En los DSP de coma fija, el tamaño más común es de 16 bits. Sin embargo, las familias DSP5600x y DSP563xx de Motorola utilizan un formato de 24 bits, mientras que la familia ZR3800x de Zoran utiliza 20 bits. El tamaño del bus de datos tiene un gran impacto en el coste, ya que influye notablemente en el tamaño del chip y el número de patillas del encapsulado, así como en el tamaño de la memoria externa conectada al DSP. Por lo tanto, se intenta utilizar el integrado con el menor tamaño de palabra que la aplicación pueda tolerar. De la misma forma que ocurre con la elección entre coma fija y coma flotante, existe un compromiso entre tamaño de palabra y complejidad. Una aplicación que requiera 24 bits puede ser desarrollada por un DSP de 16 bits a costa de un aumento de complejidad en el software. Por ejemplo, con un DSP de 16 bits se pueden realizar operaciones con aritmética de doble precisión y 32 bits combinando las instrucciones adecuadas. Naturalmente, la doble precisión será mucho más lenta que la precisión simple. Si el grueso de la aplicación puede desarrollarse en precisión simple, puede tener sentido emplear la doble precisión únicamente en aquellas partes del programa que lo necesiten. Pero si la mayoría de la aplicación requiere más precisión, entonces un DSP con un tamaño de palabra mayor sería la opción adecuada.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La mayoría de los DSP utilizan un ancho de la palabra de instrucción igual a la de los datos, pero no todos lo hacen. Así por ejemplo, la familia ADSP-21xx de Analog Devices utiliza 16 bits para los datos y 24 bits para las instrucciones mientras que la familia ZR3800x de Zoran utiliza un formato de instrucción de 32 bits. Velocidad La medida clave para saber si un DSP es o no apropiado para una aplicación es su velocidad de ejecución. Existen varias formas para medir la velocidad de un procesador, aunque quizás el parámetro más usual es el tiempo de ciclo de instrucción: tiempo necesario para ejecutar la instrucción más rápida del procesador. Su inverso dividido por un millón da lugar a la velocidad del procesador en millones de instrucciones por segundo o MIPS. En la actualidad todos los DSP ejecutan una instrucción por ciclo de instrucción. Un problema que se presenta cuando se compararan los tiempos de ejecución de instrucciones de varios procesadores es que la cantidad de trabajo realizado por una instrucción varía significativamente de un procesador a otro. Por ejemplo, algunos DSP disponen de desplazadores combinatorios (“barrel shifters”) que permiten hacer desplazamientos de múltiples bits en los datos con sólo una instrucción, mientras que otros DSP requieren que el dato sea desplazado con repetidas instrucciones de desplazamiento de un solo bit. De forma similar, algunos DSP permiten el movimiento de datos en paralelo (carga simultánea de datos mientras se ejecuta una instrucción) que no están relacionados con la instrucción que la ALU está ejecutando, pero otros DSP sólo soportan movimientos en paralelo que estén relacionados con los operandos de la instrucción que esté ejecutando la ALU. El parámetro MIPS, al igual que MFLOPS, MOPS, MBPS y otros, se miden de forma muy precisa aunque su valor no necesariamente dice mucho de lo que un determinado DSP es capaz de hacer. Dichos valores sirven para ubicar cada DSP en una categoría amplia en cuanto a prestaciones pero uno se debería preguntar si se trata de valores de pico o sostenidos. Además, también nos deberíamos preguntar cómo se ven afectadas las prestaciones del DSP cuando muchos de los datos se encuentran fuera del chip, en la memoria externa. Una solución a estos problemas consiste en decidir una operación básica y utilizarla como referencia al comparar distintos DSP. La operación que suele tomarse como referencia es la MAC. Desafortunadamente, los tiempos de ejecución de la MAC proporcionan, a veces, poca información para poder diferenciar entre distintos DSP, ya que en la mayoría de ellos esta instrucción se ejecuta en un solo ciclo de instrucción, y como se ha mencionado anteriormente, algunos DSP pueden hacer mucho más que otros en una  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

simple instrucción MAC. Además, los tiempos de ejecución de la MAC no suele reflejar las prestaciones de otro tipo importante de operaciones como los bucles que están presentes en todas las aplicaciones. Un enfoque mucho más general consiste en definir un conjunto algoritmos o funciones, como un filtro FIR o IIR, e implementarlo en distintos DSP y de esta forma ver cuál de ellos proporciona unas mejores prestaciones. Sin embargo, la implementación de estos algoritmos para distin- tos DSP puede resultar una tarea ardua. En este sentido, una buena referencia pueden ser los tests que efectúa la Berkeley Design Technology, Inc., pionera en utilizar distintas porciones de algoritmos y funciones para medir las prestaciones de los diferentes DSP.

AUTOEVALUACION 9. Mencione la diferencia entre un DSP y un microprocesador. 10. Una de las características fundamentales de los DSP es el tipo de formato aritmético utilizado por el procesador. Explíquela 11. Explique cómo influye el tamaño del bus de datos en el coste. 12. Menciones cómo puede medirse la velocidad en un DSP

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: ARQUITECTURA DE DSP’s ORGANIZACIÓN DE LA MEMORIA La organización del subsistema de memoria de un DSP puede tener un gran impacto en sus prestaciones. Como se ha mencionado anteriormente, la instrucción MAC, así como otras, son fundamentales en muchos de los algoritmos de procesado de señal. Una ejecución rápida de la instrucción MAC requiere que la lectura en memoria del código de la instrucción y de sus dos operandos se haga en un ciclo de instrucción. Existe una variedad de formas de hacerlo, utilizando memorias multipuerto para permitir múltiples accesos a memoria en un ciclo de instrucción, mediante memorias de datos e instrucciones separadas (arquitectura Harvard), y memorias caches de instrucciones para permitir el acceso a la memoria para la obtención de datos mientras que las instrucciones se obtienen de la cache en lugar de la memoria. La Figura 8.10 muestra las diferencias entre la arquitectura Harvard y la Von Neumann, esta última utilizada en la mayoría de procesadores de propósito general. Otro punto importante a tener en cuenta es la cantidad de memoria que soporta el DSP, interna y externamente. Atendiendo a las características de la aplicación, la mayoría de los DSP de coma fija poseen memorias internas, en el propio chip, de tamaño pequeño medio, entre 256 y 32k palabras, y un bus externo de direcciones pequeño. Así por ejemplo, la mayoría de los DSP de coma fija de Analog Devices, Lucent Technologies, Motorola y Texas Instruments tienen buses de direcciones de 16 bits o menos, lo que limita la cantidad de memoria externa de acceso directo. Por el contrario, la mayoría de los DSP de coma flotante proporcionan poca o ninguna memoria interna, pero se caracterizan por tener buses de direcciones externos de gran tamaño, para soportar una gran cantidad de memoria externa. Por ejemplo, el ADSP-21020 de Analog Devices no tiene memoria interna pero posee un bus externo de direcciones de 24 bits. De forma similar, el TMS320C30 de Texas Instruments posee 6k palabras de memoria interna y dos buses externos de direcciones, uno de 24 bits y el otro de 13 bits. Además, estos DSP poseen memorias cache para permitir un uso más eficiente de memorias externas lentas.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.10. (Arriba) Arquitectura Von Neumann. (Abajo) Arquitectura Harvard SEGMENTACIÓN (“PIPELINING”) “Pipelining” es una técnica para incrementar las prestaciones de un procesador, que consiste en dividir una secuencia de operaciones en otras de más sencillas y ejecutar en lo posible cada una de ellas en paralelo. En consecuencia se reduce el tiempo total requerido para completar un conjunto de operaciones. Casi todos los DSP del mercado incorporan el uso de la segmentación en mayor o menor medida. Para ilustrar de qué forma la técnica de la segmentación mejora las prestaciones de un procesador, considérese un hipotético procesador que utiliza unidades de ejecución separadas para la ejecución de una única instrucción: *Obtención de la instrucción de la memoria *Descodificar la instrucción *Leer o escribir un operando de la memoria *Ejecutar la parte de la instrucción relacionada con la ALU o MAC. La Figura 8.11 muestra la temporización de varias instrucciones ejecutadas de forma secuencial. Si se supone que cada etapa o unidad de ejecución tarda 20 ns en ejecutar su parte de la instrucción, entonces el procesador ejecuta una instrucción cada 80 ns. Sin embargo, también se observa que el hardware asociado a cada etapa de ejecución está inactivo el 75% del tiempo. Esto ocurre porque el procesador no empieza a ejecutar una nueva instrucción hasta que finaliza la ejecución de la instrucción en curso.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.11. Ejecución de instrucciones sin pipeline Un procesador que implementara la técnica de “pipelining” obtendría una nueva instrucción inmediatamente después de haber obtenido la anterior. De forma similar, cada instrucción sería descodificada después de haber terminado la descodificación de la instrucción anterior. Con esta filosofía, las instrucciones se ejecutan de forma solapada, tal y como se ilustra en la Figura 8.12. Las unidades de ejecución trabajan en paralelo, mientras una obtiene el código de una instrucción otra está descodificando la anterior y así sucesivamente. En consecuencia, una vez que la “pipeline” está llena, cada 20 ns se ejecuta una instrucción, lo cual representa un factor de mejora de prestaciones de cuatro respecto a un procesador que no incorpore dicha técnica. Aunque la mayoría de los DSP utilizan la técnica de segmentación, su profundidad o número de etapas varía de un procesador a otro. En general, cuanto mayor sea el número de etapas menor tiempo tardará el procesador en ejecutar una instrucción.

Figura 8.12. Procesador que utiliza la técnica del pipeline En el ejemplo anterior se ha supuesto un procesador con una eficiencia en el uso de la “pipe- line” del 100%. En realidad, esto no siempre ocurre así. La eficiencia se ve disminuida por varias causas, entre las cuales se encuentra el hecho de que un procesador necesite dos ciclos para escribir en memoria, se  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

obtenga el código de una instrucción de salto de programa o bien la petición de una interrupción.

La Figura 8.13 muestra qué es lo que pasa cuando una instrucción de salto llega a la “pipeline”. En el momento en que el procesador detecta la llegada de una instrucción de salto en la descodificación del segundo ciclo de reloj, la “pipeline” se vacía y detiene la obtención de nuevas instrucciones. Esto provoca que la instrucción de salto se ejecute en cuatro ciclos. Posteriormente, el procesador comienza la obtención de las instrucciones (N1N4) a partir de la dirección de salto y del quinto ciclo de reloj. A causa de este tipo de situaciones, casi todos los DSP incorporan algún tipo de mejora en el uso de la segmentación con el propósito de reducir su posible ineficiencia temporal.

Figura 8.13. Efecto en la pipeline ante la llegada de una instrucción de salto

CONSUMO El uso cada vez más extendido de los DSP en aplicaciones portátiles como la telefonía celular hace que el consumo sea un factor a tener muy en cuenta en el momento de decidirse por un DSP u otro. Conscientes de esta necesidad, los fabricantes de DSP ya fabrican DSP para tensiones bajas de trabajo (3,3 V -3 V) que incorporan prestaciones para la gestión de energía, como pueden ser los modos “sleep” o “idle” que inhiben el reloj del DSP a todas o sólo algunas partes del mismo, divisores programables del reloj para permitir la realización de determinadas tareas a velocidad inferior o en control directo de periféricos, lo que permite la desactivación de algunos de ellos si no se prevé su aplicación. COSTE Generalmente el coste del DSP es el principal parámetro en todos aquellos productos que se van a fabricar en grandes volúmenes. En tales aplicaciones, el diseñador intenta utilizar el DSP con coste inferior y que satisfaga las necesidades de la aplicación aun cuando ese dispositivo pueda ser considerado poco flexible y más difícil de programar que otros DSP más caros.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

De entre las familias de DSP, el más barato será aquel que tenga menos características funcionales, menos memoria interna y probablemente menos prestaciones que otro más caro. Sin embargo, una diferencia clave en el precio está en el encapsulado. Los encapsulados PQFP y TQFP son usualmente bastante más baratos que los PGA.

ARQUITECTURAS DE ALTAS PRESTACIONES Hablar de DSP obliga a hacer referencia a las nuevas arquitecturas VLIW (Very Long Instruc- tion Word) que están siendo adoptadas por los DSP de muy altas prestaciones. Las Tecnologías de la Información y las Comunicaciones (TIC) demandan cada vez más recursos para poder procesar grandes volúmenes de datos. Hasta ahora, los avances en la capacidad de cómputo de los procesadores se ha basado en el aumento de la velocidad del reloj y en innovaciones en la planificación, por parte del hardware, de la ejecución de instrucciones. Este modelo actual presupone que cada nueva generación de procesadores es capaz de ejecutar más instrucciones y será difícil que las arquitecturas tradicionales continúen doblando prestaciones cada 12-18 meses sin que se emigre a una nueva tecnología. El número de instrucciones por ciclo aumenta y también lo hace el número de interdependencias entre instrucciones a comprobar para determinar qué instrucciones pueden ejecutarse de forma simultánea. La lógica compleja requerida para la correcta planificación de instrucciones ocupa una gran parte del silicio del procesador y empieza a no tener sentido dedicar una gran parte de los recursos del procesador a la planificación de instrucciones. En su lugar, parece tener más sentido utilizar ese silicio para poder ejecutar más instrucciones por ciclo, incorporando más unidades funcionales y aumentar así el paralelismo de ejecución, mientras que la planificación de instrucciones se realiza por el compilador. Éste es el principio en que se basa la arquitectura VLIW. Esta reducción de complejidad, hardware más sencillo y menor número de transistores, permite incrementar la velocidad del reloj y al mismo tiempo reducir el consumo. El concepto de arquitectura VLIW no es nuevo ya que desde 1975 han ido apareciendo procesadores VLIW pero siempre más a un nivel de prototipo que a nivel comercial. Sin embargo, no ha sido hasta hace relativamente poco, aproximadamente en 1997, que los esfuerzos en la mejora del compilador, en aspectos de paralelismo ha hecho que estos procesadores sean realmente eficientes. Tradicionalmente, las ventajas asociadas con la arquitectura VLIW eran difíciles de conseguir y su futuro era cuestionable. La falta de compiladores eficientes a menudo significaba que el programador tuviera que pasar muchas horas tratando de optimizar, la mayoría de las veces sin éxito, su extenso código para mejorar las prestaciones de la aplicación. Las  

arquitecturas

VLIW

están

estrechamente

relacionadas

con

los

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

procesadores superescalares. Ambos tratan de aumentar la velocidad computacional mediante paralelismo a nivel de instrucciones en el que se utilizan múltiples copias de algunas etapas de la “pipeline” o unidades de ejecución trabajando en paralelo. Las dos diferencias principales recaen en cómo se formulan las instrucciones y en cómo se realiza su planificación o secuenciamiento. En una arquitectura VLIW, las instrucciones poseen un formato grande de palabra compues to por múltiples instrucciones independientes que incluye un campo de control para cada una de las unidades de ejecución. El tamaño de la instrucción depende de dos factores: el número de unidades de ejecución disponibles y la longitud de código requerida para cada una de ellas. Una consecuencia de ello es que los buses internos de datos y de instrucciones son de mayor tamaño. Por otro lado, a diferencia de los procesadores superescalares en los que la planificación de las instrucciones para buscar el máximo paralelismo la realiza el propio procesador, en las arquitecturas VLIW esta tarea la realiza el compilador. Esta planificación es conocida como estática (“static scheduling”). Una ventaja inmediata de este tipo de planificación es que permite dedicar más tiempo a encontrar la mejor optimización, aunque esto hace que el compilador sea más complejo ya que sobre él recae la responsabilidad de agrupar de la mejor forma posible las instrucciones.

Figura 8.14. Núcleo de los TMS320C62xx de Texas Instruments La Figura 8.14 muestra el núcleo de los TMS320C62xx de Texas Instruments. En particular, el TMS320C6202 trabaja a 250 MHz y es capaz de ejecutar 2000 MIPS y 500 MMACS. El mismo fabricante ya está anunciando la  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

salida al mercado de dos nuevas familias, la TMS320C64x de altas prestaciones y la TMS320C55x de bajo consumo, también basadas en una arquitectura VLIW. El TMS320C64x tendrá una frecuencia máxima de trabajo de hasta 1,1 GHz que permitirá obtener prestaciones de 8800 MIPS y 4400 MMACS. Sus prestaciones son 10 veces superiores a las que presenta el actual líder, el TMS320C62xx. Esta mejora en prestaciones se ha conseguido haciendo que las unidades funcionales sean más flexibles, lo que permite ejecutar un mayor número de instrucciones, añadiendo instrucciones especiales para aplicaciones de comunicaciones digitales y vídeo que permitan una reducción del código y un incremento de la eficiencia del compilador, e incrementando el nivel de paralelismo. Por todo ello, puede realizar simultáneamente 2 operaciones de 16 bits o bien 4 de 8 bits. Además, el TMS320C64x cuenta con un mayor número de registros, 64 en total, y un camino de datos interno, “datapath”, de 64 bits, que dobla en ambos casos las cifras del TMS320C62xx. Para que el lector pueda hacerse una idea de lo que representan estos valores, alrededor de 1997 los valores para las frecuencias de trabajo y los MIPS eran de 10 MHz a 100 MHz y de 10 a 80, respectivamente. Por su parte, el TMS320C55x se presenta como el DSP con menor consumo en el merca- do, tan solo 0,05 mW/MIPS a 0,9 V y con unas prestaciones que van de los 140 a 800 MIPS.

AUTOEVALUACION 1. Comente la diferencia en cuanto a memoria entre un DSP de coma fija y uno de coma flotante. 2. “Pipelining” es una técnica para incrementar las prestaciones de un procesador. Explíquela 3. Qué factores se tienen en cuenta para establecer el coste de un DSP?

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: TIPOS DE DSP, CRITERIOS DE SELECCION Y APLICACIONES TIPOS DE DSPs SEGÚN EL TIPO DE ARITMETICA UTILIZADA

 

Figura 8.15 Tipos de DSP según la aritmética utilizada NormaImente Ia cIasificación de Ios DSPs se reaIiza en base aI tipo de aritmética que utiIizan para reaIizar Ios cáIcuIos matemáticos dividiéndose en DSPs coma fija y DSPs de coma fIotante. Dentro de cada grupo se cIasifican, además, según Ia anchura de su paIabra de datos. La CPU de Ios procesadores de coma fija requiere un hardware más simpIe que Ia de Ios procesadores de coma fIotante. Esto se traduce en una reducción deI coste unitario deI DSP haciéndoIos idóneos para apIicaciones de gran consumo que no requieran unas prestaciones eIevadas. Esta simpIicidad de Ia CPU también reduce eI consumo deI dispositivo y su tamaño, un aspecto sumamente interesante para apIicaciones portátiIes como por ejempIo teIéfonos móviIes. La utiIización de una CPU poco sofisticada permite Iiberar área deI chip para incIuir bancos de internos de memoria RAM de mayor tamaño o incIuso bancos de memoria EPROM o FLASH, donde grabar eI código de Ia apIicación. Además, sueIen disponer de un conjunto de periféricos más variado. De hecho Ios procesadores destinados a apIicaciones especificas como por ejempIo controI de motores, sistemas de tratamiento de voz, etc, son procesadores de coma fija. La anchura de Ia paIabra de datos puede ser según Ios casos de 16, 24 o 32 bits. Esto tiene una importante repercusión en eI coste, porque infIuye poderosamente en eI tamaño deI circuito integrado y en eI nümero de terminaIes deI dispositivo, así como eI tamaño de Ios dispositivos de memoria externa conectados aI mismo. Por Io tanto, Ios diseñadores intentan utiIizar eI  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

chip con eI menor ancho de paIabra que su apIicación puede toIerar. Los DSPs de coma fIotante son dispositivos de gama aIta, cuya CPU dispone de hardware específico para operar con datos de coma fIotante. La anchura de Ia paIabra de datos sueIe ser de 32 bits si bien eI uso de bits de guarda Ies permite operar en eI interior de Ia CPU con datos de 40 bits. Esto no es óbice para que puedan operar también con datos en coma fija. EI área ocupada Ia CPU de este tipo de DSPs es mayor que en eI caso de Ios de coma fija. Por este motivo, Ia variedad de Ios periféricos que integran es menor, tratandose en Ia mayoría de Ios casos de periféricos (puertos serie y paraIeIo, DMA) utiIizados en Ia comunicación con eIementos externos (conversores A/D y D/A). Dentro de este grupo de DSPs, Ios más sofisticados disponen de puertos de comunicación que permiten faciIitan eI montaje de redes de DSPs para procesamiento en paraIeIo. Cada tipo de procesador es ideaI para un rango específico de apIicaciones. Los procesadores de 16 bits de coma fija son adecuados para sistemas de voz, como teIéfonos, ya que éstos trabajan con eI rango reIativamente estrecho de Ias frecuencias deI sonido. Las apIicaciones estéreo de aIta fideIidad tienen un rango de frecuencias más ampIio, de forma generaI, Ios requerimientos mínimos para este tipo de apIicaciones serían un ADC de 16 bits y un procesador de 24 bits de coma fija, de esta forma se proporciona un rango suficientemente ampIio para obtener Ia señaI de aIta fideIidad y para poder manipuIar Ios vaIores que se obtienen aI procesar Ia señaI. EI procesamiento de imágenes, gráficos en 3D y simuIaciones científicas tiene un rango dinámico mucho más ampIio, por Io que precisa procesadores DSP de 32 bits con aritmética de coma fIotante.

SEGÚN EL PARALELISMO DEL DISPOSITIVO

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 8.16 Tipos de DSP según el paralelismo del dispositivo Otra cIasificación de Ios DSPs se puede reaIizar atendiendo aI paraIeIismo de éstos entendiendo como taI Ia posibiIidad de ejecutar müItipIes instrucciones de forma concurrente, entre Ios que no se incIuyen Ios DSPs básicos vistos hasta ahora. Este paraIeIismo puede ser expIícito o impIícito. En un DSP con paraIeIismo expIícito se integran varias CPUs en un mismo encapsuIado que se comunican por medio de una memoria compartida interna. Esta opción se ha convertido en una vía muerta, ya que es responsabiIidad deI programador eI reparto deI código a ejecutar por parte de cada uno de Ias CPUs, y Ia programación de Ias rutinas de comunicación, siendo esta tarea muy tediosa. Un DSP con paraIeIismo impIícito dispone de ünica CPU con müItipIes unidades funcionaIes (por ejempIo, varias ALUs, muItipIicadores y conjuntos de registros) de forma que se pueden ejecutar en paraIeIo varias instrucciones cada una de eIIas sobre una unidad funcionaI. Para eIIo disponen de un tamaño de Ia paIabra de instrucción de gran tamaño (Very Long Instruction Word, p.e. 256 bits), en Ia que se empaquetan varias instrucciones individuaIes. La pIanificación de qué instrucciones se van a ejecutar en paraIeIo en cada momento Ia reaIiza eI propio compiIador siendo un proceso transparente por tanto para eI programador. Este tipo de procesadores es sin duda Ia vanguardia de Ia tecnoIogía de Ios DSPs.

CRITERIOS DE SELECCIÓN DE DSPs

Figura 8.17 Criterios de selección de DSPs Los factores que se han de considerar a Ia hora de seIecciona un DSP para una apIicación determinada son: •El tipo de aritmética utilizada y el ancho de palabra de datos. EI uso de DSPs de coma fIotante simpIifica Ia programación de aIgoritmos, pero son  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

dispositivos más caros y de mayor consumo. EI tamaño de paIabra de datos infIuye en eI número de chips de Ios bancos de memoria externa y por tanto en eI coste y consumo deI sistema. •Velocidad. Se puede indicar de dos formas. Una de eIIas es como vaIores de pico expresandose en miIIones de instrucciones por segundo para eI caso de Ios DSPs de coma fija y en miIIones de operaciones en coma fIotante para eI caso de Ios DSPs de coma fIotante. Otra forma de indicar Ia veIocidad es mediante bancos de pruebas. Éstos son aIgoritmos típicos de tratamiento digitaI de señaI que se ejecutan sobre distintos. Midiendose Ios tiempos de ejecución en cada dispositivo se puede estabIecer una comparativa de sus veIocidades. •Memoria interna. Es deseabIe que Ios DSPs dispongan de Ia mayor cantidad de memoria interna, ya que Ios accesos sobre ésta se reaIizan a mayor veIocidad. La disponibiIidad de memoria FLASH interna permite reducir Ia compIejidad deI sistema. •Soporte multiprocesador. Interesante para aqueIIas apIicaciones que debido a su eIevada carga computacionaI hace necesario su impIementación en sistemas muItiprocesador. •Consumo. Este es un factor determinante en apIicaciones portátiIes, como por ejempIo teIéfonos móviIes. •Coste. En apIicaciones de gran consumo este aspecto puede primar sobre otros que inciden más directamente sobre Ias prestaciones deI DSP. •Rango dinámico. Es una figura de mérito que reIaciona eI tipo aritmética utiIizada y eI ancho de Ia paIabra de datos. RANGO DINÁMICO

Figura 8.18. Rango dinámico en DSPs

EI rango dinámico es un concepto propio de Ios procesadores. Se define como Ia reIación existente entre eI máximo y mínimo vaIor (distinto de cero)  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

representabIes. En un formato de coma fIotante éste viene determinado por eI número de niveIes deI exponente. Si expresamos esta reIación en dB: RD [dB] = 6 · NiveIes deI exponente Así para eI caso típico de un exponente de 8 bits eI rango dinámico es de 1530. En un formato en coma fija este depende deI tamaño de paIabra de datos según Ia reIación: RD [dB] = 6 · Tamaño de paIabra. EI rango dinámico deI procesador debe ser superior aI de Ia apIicación. Este último viene determinado por Ios conversores A/D y D/A utiIizados. De esta forma se garantiza que Ios errores introducidos durante eI procesamiento (debidos a truncamientos, redondeos, etc) quedan por debajo deI error que introducen Ios propios conversores.

FAMILIAS DE DSPs MÁS REPRESENTATIVAS

Figura 8.19 Familias de DSPs Los principaIes fabricantes de DSPs son, por este orden, Texas Instruments, Lucent, MotoroIa y AnaIog Devices. En la Figura 8.19 enumeran Ias famiIias de DSPs más representativas.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Cada fabricante sueIe disponer de famiIias de DSPs de coma fija y famiIias de coma fIotante. AIgunos también disponen de DSPs de emisión múItipIe de instrucciones.

AREAS DE APLICACION

Figura 8.20 Areas de aplicación de DSPs Las ventajas de Ios DSPs han hecho que cada vez sean mayores Ias áreas de apIicación. Entre éstas cabe destacar: • Comunicaciones. Se utiIiza en equipos de teIefonía móviI, modems, redes de área IocaI, etc. • EIectrónica de consumo. Se utiIizan en cámaras digitaIes para tratamiento de imágenes; en equipos de audio y video para simuIar efectos sonoros de recintos, técnicas “soround”; en radiodifusión digitaI tanto de audio como de teIevisión para impIementar Ios aIgoritmos de compresión y descompresión. • IndustriaI. Cada vez es mayor Ia utiIización de técnicas digitaIes en sistemas de controI de motores eIéctricos y equipos de potencia que permiten obtener: menores costes, mejores prestaciones y un menor consumo de energía. • MiIitar/aeroespaciaI. Se usan estas técnicas para tratamiento de señaIes de radar, sonar, guiado de misiIes, etc. • Instrumentación. Como ejempIo de apIicaciones de este tipo se encuentran Ios sistemas de posicionamiento (GPS), en Ios cuaIes se reaIiza una correIación entre Ia señaI recibida con un código para obtener Ios datos  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

de teIemetría. Dentro de Ia instrumentación biomédica se utiIiza en resonancia magnética nucIear y ecografía, para reaIizar eI tratamiento de Ias imágenes obtenidas. EJEMPLO DE APLICACIÓN

Figura 8.21. Ejemplo de aplicación de DSPs Como ejempIo de apIicación de Ios DSPs se muestra Ia impIementación de un sistema de controI de Ia veIocidad de giro de un motor. Puesto que Ios aIgoritmos utiIizados pueden aIcanzar gran compIejidad se requiere una eIevada potencia de cáIcuIo. Además eI DSP integra todos Ios dispositivos necesarios para impIementar eI sistema. Las señaIes de controI deI motor se obtienen mediante un generador de señaI PWM. Estas señaIes atacan a una etapa de potencia. EI Iazo de controI se puede cerrar de varias formas. Una de eIIas sería Ia obtención de Ia posición deI eje mediante un tacómetro digitaI recibe Ias señaIes en cuadratura provenientes de un encoder soIidario aI eje deI motor. Otra forma de cerrar eI Iazo sería a partir de Ias corrientes que fIuyen por eI devanado deI motor, obteniendo eI vaIor de éstas mediante un conversor A/D. La consigna de veIocidad de giro deI motor se puede fijar desde un ordenador personaI, comunicandose con eI DSP a través de un puerto serie. Otro método podría ser mediante un tecIado que se conecta a Ios puertos de entrada/saIida deI DSP.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

AUTOEVALUACION 1. Comente la diferencia entre un DSP de coma fija y uno de coma flotante. 2. Otra cIasificación de Ios DSPs se puede reaIizar atendiendo aI paraIeIismo. Explíquelo 3. Qué criterios de selección se tiene en cuenta en un DSP? 4. Describa el criterio de rango dinámico en DSPs

                                       

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

   

CAPÍTULO 9: OTRAS APLICACIONES LECCIÓN 1: CASO PRÁCTICO BASADO EN FPGAS Y SISTEMAS DE TELEFONÍA MÓVIL INTRODUCCIÓN Se ha considerado el desarrollo de un caso práctico de estudio que se presenta dentro del área de “Diseño de Sistemas Electrónicos”, en la cual se imparten conocimientos del lenguaje de descripción de hardware VHDL . A fin de ofrecer una visión del diseño interrelacionada con los conceptos de otras áreas de control y de sistemas de comunicaciones, se presenta un caso práctico que permite aportar una solución al problema del control a distancia, creando un sistema autónomo y compacto con funciones de telemando, telemetría y televigilancia. Los elementos esenciales de este sistema son una FPGA, donde se ha programado la lógica reconfigurable encargada de las funciones de control e interfaz de comunicaciones y un módem GSM a través del cual el controlador está permanentemente conectado a la red, evitando la necesidad de cables de transmisión de datos y permitiendo así una telemetría y actuación a larga distancia. En primer lugar se detalla lo que serán los diferentes elementos que constituyen el subsistema deseado, con un enfoque modular, lo que permitirá la división del trabajo en paquetes que podrán ser desarrollados por diferentes equipos. Los principales datos para la implementación del sistema propuesto se aportan luego. A continuación se aplicará el sistema desarrollado a su evaluación sobre un problema específico. En este caso se ha optado por el sistema de control de temperatura. DESCRIPCIÓN DEL SISTEMA PROPUESTO Para conseguir la operación a distancia son necesarios los siguientes elementos: -

R ed de comunicaciones operativa

-

D ispositivo de comunicaciones para el acceso a dicha red

-

I nterfaz para la comunicación entre el dispositivo de comunicaciones y el controlador del proceso. Para la red de comunicaciones se seleccionó una del tipo de las ya existentes en el mercado. Debido al gran auge que presentan en la actualidad las comunicaciones móviles se ha optado por la red GSM, debido  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

fundamentalmente a que ésta dispone de muchos servicios, entre los cuales se encuentran el realizar llamadas de voz, la transmisión de texto a través del Servicio de Mensajes Cortos (SMS, Short Message Service) y la identificación de llamada, entre otros. Una vez escogida la red a utilizar, el siguiente paso es seleccionar el tipo de dispositivo con el cual se accederá a la red, es decir, el terminal móvil. Para poder hacer uso de las funciones a distancia únicamente es necesario tener acceso al Servicio de Mensajes Cortos (SMS), lo cual es una característica común a todos los teléfonos y operadoras móviles GSM de Europa. Actualmente existen en el mercado dos tipos de elementos transmisor/receptor: - Teléfono móvil GSM - Módem GSM Obviamente la opción del módem es preferible frente a las de teléfono móvil, principalmente por los siguientes motivos: - El teléfono móvil es un aparato destinado al usuario, mientras que el módem presenta ciertas funciones que lo hacen más apto para aplicaciones industriales. - El control del teléfono móvil se realiza mediante teclado, mientras el módem es controlable a través de cable o infrarrojos, lo cual lo hace más compatible con los sistemas electrónicos e informáticos. Tras un estudio comparativo de estos modelos se ha optado concretamente por el Módem Siemens MC35T, ya que cumple los requisitos mínimos a la vez de tener un precio moderado. Además incluye otras características no exigidas pero que pueden ser favorables, como por ejemplo: - Sistema autobaudio para la comunicación serie. - Antena magnética externa independiente, con 3 metros de cable. - Entradas y salidas analógicas para micrófono y altavoz. - Alta compacidad. Conocido el dispositivo y su sistema de comunicación y control, se diseñó una interfaz de comunicaciones para poder conectar a distancia con el controlador. Dadas las funciones a distancia que debe desempeñar el sistema completo, la interfaz de comunicaciones debía ser bidireccional. Esto es: - Permite solicitar datos al controlador y que éste lea en su memoria y los transmita. - Permite enviar datos al controlador y que éste los almacene en su memoria interna. - Y en caso de que se activen las alarmas, el controlador, de forma automática, ha de poder transmitir los datos, según haya sido programado. El planteamiento general de la plataforma propuesta puede verse en la Figura 9.1. Se encuentra constituida por el proceso que se desea controlar (proceso bajo control), el sistema digital a desarrollar objeto de este caso práctico (FPGA), constituido a su vez internamente por dos subsistemas, uno  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

dedicado a implementar el interfaz de comunicaciones con el terminal móvil (módem GSM) que le permitirá conectarse a la red GSM y el subsistema encargado de implementar el controlador que actuará sobre el proceso anteriormente comentado. De esta forma será posible que el sistema pueda enviar alertas al móvil de un usuario, o bien recibir nuevos parámetros de control a través de este medio. Existen diferentes soluciones de implementación que quedan al libre albedrío del usuario. En este texto se presenta una opción posible en la que se ha utilizado un dispositivo FPGA en el que el sistema se ha desglosado en el siguiente conjunto de módulos: un módulo (UART) que será encargado de establecer una comunicación serie entre la FPGA y el MC35T mediante comandos AT. Dos submódulos, denominados ‘Codificador de Comandos’ y ‘Decodificador de Comandos’ serán los encargados de la interpretación y generación de órdenes transmitidas y recibidas a través del MC35T. Finalmente, habrá un núcleo dedicado a la implementación del controlador que se comunicará con el exterior y que realizará el control del sistema seleccionado, un sistema de control de temperatura en este caso.

Figura 9.1. Estructura general de la plataforma propuesta

IMPLEMENTACIÓN HARDWARE DEL SISTEMA Una vez seleccionado el tipo de terminal móvil y conocido su sistema de control, la próxima tarea es el diseño del hardware necesario para la implementación del módulo controlador de proceso y la interfaz de comunicaciones para conectar con dicho módem. Se trata de implementar el sistema al completo, que dicho sistema sea autónomo y a ser posible, adoptar una solución compacta basada en un único chip. Por tanto se descarta la idea de la conexión del módem a un ordenador. A cambio, se ha optado por el uso de un dispositivo lógico programable (PLD, Programmable Logic Device).  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Debido a la complejidad que este problema plantea, automáticamente quedan descartados los PLDs sencillos (como PAL, GAL, etc...) siendo lo más conveniente la implementación sobre una FPGA, ya que es el único con la escala de integración suficiente como para programar todas las funciones a realizar, además de ser el más flexible ya que puede ser reconfigurada y verificada en muy poco tiempo. Debido a la gran flexibilidad de las FPGAs no es necesario establecer muchos requisitos mínimos para poder llevar a cabo este diseño. Básicamente se podría decir que lo único imprescindible es que tenga la memoria suficiente como para almacenar la totalidad del hardware que se va a implementar. Sin embargo, en este momento no se dispone de información acerca del tamaño que ocupará el sistema porque éste aún no ha sido diseñado con detalle. Por tanto la opción más correcta sería desarrollarlo y una vez conseguido ese punto, conociendo ya el tamaño que supone, seleccionar la FPGA donde será volcado. No obstante se ha elegido una FPGA para poder empezar a implementar el diseño, confiando en que ésta será lo suficientemente grande. En caso de llegar a su límite de capacidad debería ser sustituida por otra mayor. Se ha optado por la familia Spartan II. Y más concretamente por la FPGA XC-2S200-PQ-208. El fabricante Xilinx ofrece esta FPGA montada sobre una placa de pruebas, se trata de la placa Digilab 2, que, además de incorporar las conexiones de alimentación, programación y oscilador, dispone de, entre otras, una conexión con adaptación de señal RS232 DB9, y múltiples conectores unidos directamente a los pines de entrada/salida de la FPGA. Éstas son características que, sin duda, serán útiles, a la hora de conectar la FPGA con los dispositivos externos (como por ejemplo con el módem GSM). Parece, en un principio, que la conexión entre ambos dispositivos se puede realizar directamente a través de un cable serie estándar con conectores DB9. Sin embargo se presenta el problema de que ambos dispositivos han sido diseñados para trabajar como DCEs, es decir como receptores. Debido a ello ambos poseen un conector DB9 hembra. Por este motivo no pueden ser conectados directamente a través de un cable serie estándar, ya que éste consta de un conector macho en un extremo y un conector hembra en el otro. Una comunicación serie asíncrona bidireccional se puede simplificar a tres líneas de conexión: GND, TXD y RXD. Dichas líneas se corresponden con los pines 5, 3 y 2 respectivamente del conector DB9. Por lo tanto, en esta fase del diseño es necesario realizar un cable serie con conectores DB9 macho en ambos extremos, teniendo en cuenta que se está estableciendo una conexión entre dos DCEs y por tanto es necesario cruzar los terminales TX y RX.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En conclusión, la Figura 9.2 muestra cómo queda la conexión de los elementos seleccionados.

Figura 9.2. Aspecto final de la plataforma hardware Sobre la FPGA seleccionada se ha implementado la arquitectura de control esquematizada de forma general en la Figura 9.3. Para ello se ha hecho uso de herramientas informáticas de diseño, simulación y síntesis destinadas a la configuración de dispositivos lógicos programables y como método de programación hardware, el lenguaje VHDL (Very High Speed Integrated Circuit Hardware Description Language).

Figura 9.3. Estructura general de la arquitectura hardware diseñada. Núcleo hardware del subsistema ‘interfaz de comunicaciones’ Este subsistema es el encargado de establecer la comunicación entre el módem GSM externo y el sistema de control disponible. Existen dos formas de manejo de datos en los sistemas digitales: - datos en serie. - datos en paralelo. Normalmente resulta más sencillo el procesamiento de datos en paralelo, si bien suele ser más apropiado los datos en serie para las funciones de transmisión y recepción entre dispositivos situados a una cierta distancia. Concretamente, la comunicación con el módem GSM se realiza a través del  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

protocolo RS-232, que es un sistema de comunicación serie. El manejo de datos dentro de la FPGA se va a realizar en modo paralelo.

La Figura 9.4 detalla los diferentes submódulos que constituyen este elemento.

Figura 9.4. Estructura

hardware detallada constituyentes

en los submódulos

VHDL

AUTOEVALUACION 1. Comente con sus palabras la importancia del FPGA en la implementación del sistema de telefonía móvil. 2. Realice un bosquejo de la estructura general de la arquitectura hardware diseñada.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 2: DESCRIPCION DE SUBMODULOS: UART, CODIFICADOR DE COMANDOS SUBMÓDULO ‘UART’ En primer lugar, es necesario el diseño de un convertidor serieparalelo/paralelo-serie, para poder establecer la comunicación con el módem. Esta es la finalidad del módulo ‘UART’ (Universal Asíncronous Receiver Transmiter). Este módulo, transmite por la línea de transmisión serie (Tx) los datos en paralelo recibidos en su puerto Din y a la inversa, recibe datos por la línea de recepción serie (Rx) y los agrupa en paralelo enviándolos por el puerto de salida Dout. Este módulo engloba los submódulos divisor, divisor2, emisor y receptor. La UART es un elemento de comunicación bidireccional. Por tanto serán necesarios un módulo encargado de recibir (receptor) y otro encargado de enviar (emisor). Para la comunicación serie asíncrona es preciso definir unos determinados parámetros, entre ellos la velocidad de transmisión (baudios, bps). Esta velocidad, aún escogiendo la más alta posible, según los estándares de transmisión (115200 bps) es mucho menor que la velocidad del sistema (50 MHz). Por tanto se ha de definir un circuito de adaptación de velocidad. Esta es la misión de los módulos divisores y divisor2. Ambos módulos generan pulsos de reloj que marcarán la base de tiempos para la comunicación. SUBMÓDULO ‘CODIFICADOR DE COMANDOS’ La comunicación con el módem GSM se realiza por medio de comandos AT. Los comandos AT son el sistema utilizado para comunicar con módems y otros dispositivos de comunicaciones. La mayoría de las aplicaciones de comunicaciones tienen una interfaz amigable que oculta estos comandos, no obstante siguen siendo necesarios para establecer la comunicación. La estandarización de este lenguaje ha sido llevada a cabo por el Comité Técnico (TC, Technical Committee) del llamado Special Mobile Group (SMG) perteneciente al Instituto Europeo de Estandarizacion de las Telecomunicaciones (ETSI, European Telecommunications Standards Institute). Esta estandarización se recoge en la Global System Mobile (GSM) Technical Specification (GTS), más concretamente en el documento Digital cellular telecommunications system (Phase 2+); AT command set for GSM Mobile Equipment (ME) (GSM 07.07).  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Este Estándar Europeo de Telecomunicaciones (ETS, European Telecomunications Standard) especifica un perfil de comandos AT y recomienda su uso para controlar las funciones de los Equipos Móviles (ME) y los servicios de la red GSM desde un Equipo Terminal (TE) a través de un Terminal Adaptor (TA). La interfase entre el TE y el TA se ha pensado para funcionar a través de un cable serie existente (la opción seleccionada en este trabajo), conexión infrarroja, o cualquier otro tipo de enlace de comportamiento similar. Para una correcta operación, muchos de los comandos definidos requieren 8 bits de datos, por lo tanto se recomienda que el enlace TE-TA se establezca en modo 8 bits. La interfaz entre el TA y el TE depende de la interfaz del ME. Todos los comandos están perfectamente definidos en cuanto a sintaxis y funcionalidad. Este sistema constituye un lenguaje estandarizado del cual los módems hacen uso. No obstante la lista de comandos soportados varía en función del tipo de dispositivo o fabricante. Estos comandos consisten en cadenas de caracteres finalizadas por el carácter de RETURN. Para poder trabajar con estos comandos de forma sencilla se ha añadido el módulo ‘Codificador de Comandos’ y ‘Decodificador de Comandos’. El módulo ‘Codificador de Comandos’ se encarga de leer sucesivamente los caracteres recibidos, interpretar el comando formado por dichos caracteres y asignarle un código numérico. Para ello, recibe un comando en forma de cadena de caracteres y lo codifica asignándole un número de 8 bits, enviaNdo dicho número a través del puerto svCom. Si no se ha podido codificar devuelve un “00000000”. Tras detectar el carácter de RETURN o bien, alcanzada la longitud máxima de los caracteres, una vez finalizada la codificación, devuelve un pulso a través del puerto recibido. La codificación de comandos se va a realizar por comparación. Para ello es necesario almacenar todos comandos decodificables. Se ha implementado, para tal fin, una memoria formada por una matriz de m filas y n columnas de elementos tipo carácter. Tanto m como n son valores configurables mediante las constantes char_matrix_size y char_vector_size en el código VHDL. Se ha utilizado el tipo carácter para poder inicializar dicha memoria de forma simple, mediante constantes tipo. A la constante char_matrix_size se le ha dado el valor del número de comandos que se quiere codificar (concretamente 10). A la constante char_vector_size se le ha asignado el valor de la longitud máxima que van a tener dichos comandos (concretamente 8). De esta forma se pueden almacenar 10 comandos de hasta 8 caracteres cada uno. Esta memoria es del tipo sólo lectura, y únicamente se graba al inicializarse, asignando a cada fila de la matriz un comando (o cadena de caracteres ) determinado. Para la inicialización, hay que tener en cuenta que la asignación de valores a señales, en VHDL, requiere que tanto el valor como la variable sean del mismo tipo. Sin embargo, aunque todos los comandos son señales tipo string, no todos tienen la misma longitud. Para  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

solucionar este problema se ha implementado una función que rellena los huecos hasta completar el tamaño de las cadenas de caracteres. A dicha función se le ha dado el nombre fill.

Las tareas a realizar para efectuar la codificación son: - Carga de datos: almacenar datos recibidos para formar una cadena de caracteres. - Comparación: se compara la cadena recibida con las líneas de la matriz de memoria donde se almacenan los comandos. Para la primera tarea se ha declarado una señal tipo string (cvComando_aux) del tamaño de char_vector_size . Mediante un contador que se va incrementando conforme se detectan pulsos en la señal de carga (LD) se va apuntando a una posición concreta de la señal cvComando, para almacenar en ella el valor recibido tras su conversión a carácter previamente, mediante la función to_char. Este proceso continúa hasta que se alcanza la longitud máxima de caracteres recibidos o bien se detecta el carácter de RETURN. Finalizado el proceso de carga de datos se procede a la comparación. Se ha definido un contador que incrementa la señal i con cada ciclo de reloj. La señal i es utilizada para apuntar a la fila i de la matriz de comandos y leer dicha fila. Tras esta lectura se efectúa su comparación con la cadena de caracteres que se creó en la etapa anterior. Si se detecta coincidencia con alguna de las filas se pone en la salida svCom el valor de la señal i que se corresponde con el código asignado al comando recibido.

AUTOEVALUACION 1. Mencione la importancia del dispositivo UART en el proyecto. 2. Explique la función del sub-módulo codificador de comandos.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 3: DECODIFICADOR DE COMANDOS, CONVERTIDOR SUBMÓDULO ‘DECODIFICADOR DE COMANDOS’ El módulo ‘Decodificador de Comandos’ recibe un código numérico, lo asocia con una cadena de caracteres y envía dichos caracteres secuencialmente. De esta forma con un único número se pueden hacer referencia a todos estos comandos y otras cadenas de caracteres que se van a utilizar. Está constituido por dos submódulos denominados ‘cod2’ y ‘flujo’ Para la decodificación de comandos es necesario un bloque que almacene las cadenas de caracteres correspondientes a dichos comandos y que envíe estos caracteres de forma secuencial. El bloque cod2 es el encargado de realizar esta tarea. Contiene la memoria que almacena las cadenas de caracteres de los comandos que se van a utilizar. La presencia del componente flujo se justifica dada la necesidad de coordinación entre el cod2 y la UART externa. Es el encargado de manejar las señales de control (activación, lectura, envío,...) de ambos bloques. SUBMÓDULO ‘CONVERTIDOR NUMEROS=>CARACTERES’ La función del módulo ‘Convertidor números=>caracteres’ es, como su nombre indica, convertir números binarios en los caracteres correspondientes a sus dígitos en sistema decimal, teniendo en cuenta que serán transmitidos en código ASCII. Este módulo recibe un número de 8 bits por svDin y lo convierte en los caracteres ASCII correspondientes a sus dígitos en base 10, enviando dichos caracteres secuencialmente por svDout comenzando por el más significativo. Para poder representar un número de 8 bits en código decimal son necesarios tres dígitos: centenas (más significativo), decenas y unidades (menos significativo). Para llevar a cabo esta conversión se ha utilizado el módulo divisor (divcore.vhd). Este módulo está precompilado por Xilinx y se encuentra en la herramienta Core Generator. Realiza la función de dividir un dividendo entre un divisor para obtener un cociente y un resto. El tamaño de estas variables es configurable. Para este caso se han seleccionado señales de 8 bits. El proceso de conversión se va a realizar en dos etapas: 1. División entre 10 del número a convertir. Como resultado se  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

obtiene un cociente y un resto. El valor de dicho resto corresponde con el dígito de las unidades.

2. Una segunda división entre 10 del valor obtenido como cociente en la operación anterior. El resultado de esta operación es otro cociente, que se corresponde con los dígitos de las centenas, y un resto que se corresponde con el digito de las decenas. Para llevar a cabo estas dos etapas se ha declarado una señal tipo array de 3 componentes tipo enteros donde se almacenarán los dígitos llamada digito. Además se ha implementado un contador de 0 a 22, que incrementa una señal (cuenta) en cada pulso de reloj. Mediante un bloque combinacional asociado se realizan las siguientes operaciones: Si cuenta=0 se coloca en el dividendo del componente divCore el valor del número a convertir. Si cuenta=10 el valor del resto se asigna a la señal digito. Y el valor del cociente se realimenta en al dividendo del bloque divCore. Si cuenta=22 el valor del cociente se le asigna a la señal digito (0) y el resto a la señal digito (1). El que haya que esperar 11 pulsos de reloj tras especificar el dividendo del divCore se debe a que este módulo necesita 11 pulsos de reloj para efectuar la operación. Una vez convertido el número binario en decimal, se analizan los dígitos obtenidos para eliminar los ceros a la izquierda con el fin de que sólo se transmitan aquellos dígitos que realmente sean necesarios. Posteriormente se procede a su conversión a código ASCII. La forma más sencilla de realizar esta operación se sumándole 48 al valor del dígito. Esto es posible porque en el código ASCII los dígitos (0-9) tienen códigos consecutivos, y el código del 0 es el número 48. Tras obtener el código ASCII de los tres dígitos se ejecuta un proceso secuencial para enviar dichos códigos secuencialmente a través de la salida svDout, comenzando por el primer dígito distinto de 0 (desde el más significativo hasta el menos significativo). También hay que tener en cuenta que cada vez que se envía un carácter hay que esperar a que el encargado de transmitirlo (UART) termine de hacerlo, para poder enviar el siguiente. SUBMÓDULO ‘CONTROLADOR DE COMUNICACIONES’ Este módulo es sin duda el más complejo y a la vez, el más importante de toda la estructura hardware que se ha desarrollado. Se podría decir que es la unidad más “inteligente” del sistema. Es capaz de  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

realizar, entre otras, las siguientes funciones: - Configurar el módem GSM. - Dar la orden de realizar una llamada de teléfono. - Redactar un SMS y dar la orden de envío. - Leer e interpretar un SMS recibido. - Actuar según las ordenes interpretadas en un SMS leído. - Capturar y almacenar el número de teléfono de una llamada entrante. - Ejecutar un programa de instrucciones programado. - Detectar si la ejecución del programa se ha quedado bloqueada y reiniciar. Para poder llevar a cabo todas estas funciones, la estructura de este bloque, se ha basado en un sistema microprocesador. Consiste en un proceso secuencial en el que existen unas líneas de programa, cada una de las cuales contiene unas determinadas instrucciones. Dicho programa es el encargado de gestionar y procesar el tráfico de información entre el módem GSM y el controlador de temperatura. Dispone además de diversos puertos de entrada / salida con el fin de poder comunicar con el resto de bloques, tanto internos (‘UART’, ‘Codificador de comandos’, ‘Decodificador de comandos’ y ‘Convertidor números=>caracteres’ ) como externos (módulo de control). SUBMÓDULO ‘MULTIPLEXOR’ Debido a que es posible enviar caracteres a la UART a través de varios módulos, se ha colocado un multiplexor con el fin de seleccionar en cada momento cuál es el módulo que va a transmitir, evitando de esta manera conflictos o colisiones de información. Debido a la complejidad del sistema desarrollado ha sido necesario limitar la frecuencia de funcionamiento del mismo, para evitar errores en el proceso. Para ello se ha introducido el módulo ‘frec_div’. El módulo ‘Pulso’ genera un pulso cuando detecta un flanco de subida en la señal de entrada. Dicho pulso es necesario para el control del módulo ‘Codificador de comandos’ (codificador).

AUTOEVALUACION 1. Describa la función del sub-módulo “Decodificador de comandos”. 2. Mencione dos funciones del sub-módulo “Controlador de comunicaciones”.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 4: CASO PRÁCTICO, SISTEMA DE CONTROL DE TEMPERATURA Como caso práctico de aplicación se ha escogido el control de temperatura, en el cual básicamente se pueden identificar: una variable de entrada – temperatura –, dos variables de salida – calentar y enfriar – y dos parámetros de control – consigna e histéresis –. El funcionamiento consiste en la activación de la salida enfriar o calentar en función de que la temperatura sobrepase por encima, o por debajo respectivamente, la consigna, con un margen de error definido por la histéresis. A fin de controlar la temperatura, en primer lugar, es necesario conocer su valor en cada momento. La temperatura es una variable continua. Para poder ser interpretada y procesada por un sistema digital es necesaria su conversión previa a variable discreta. Esta es la función del convertidor AD externo. A fin de poder controlar y leer dicho convertidor se ha diseñado sobre la FPGA el módulo ‘Control ADC’ esquematizado en la Figura 9.5. Una vez digitalizada la temperatura, es necesario procesarla para activar sistemas de control externos que la modifiquen según unos parámetros preestablecidos. Esta es la misión del módulo hardware ‘Control Proceso’. Para poder visualizar en todo momento la temperatura actual se ha diseñado el módulo ‘Visualizador’, el cual dispone de unas salidas para displays de 7 segmentos multiplexados. Además se ha dotado al controlador de una salida de alarma que se activa cuando, debido a alguna causa inesperada, se superan unos valores críticos. Éstos están definidos mediante los parámetros alarma superior y alarma inferior. Una vez muestreadas las entradas, es necesario analizarlas para actuar sobre las variables de control (o variables de salida) según unos parámetros de control. Un ejemplo del comportamiento de este dispositivo se puede ver en la Figura 9.5, en la que es posible observar que cuando se superan los niveles dados por la consigna y el margen de histéresis, entra la acción de control correspondiente (calentar o enfriar) y que cuando se sobrepasan unos determinados niveles de alarma prefijados, se produce la activación correspondiente del indicador asociado. Hasta el momento, este sistema se asemeja bastante a cualquier otro controlador de temperatura, como pueda ser por ejemplo un sencillo termostato. La diferencia importante es que, gracias a la interfaz de comunicaciones que se ha diseñado, el controlador puede ser dirigido a través de teléfono móvil GSM, permitiendo modificar los parámetros de

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

control y alarmas (telemando), solicitar información de la temperatura (telemetría), y recibir mensajes de alarma de forma automática cuando ésta se active (televigilancia).

Figura 9.5. Ejemplo de evolución de las salidas del controlador de temperatura desarrollado

A continuación se detalla un ejemplo (Tabla 9.1) de lo que podría ser un intercambio de comandos entre el dispositivo FPGA y el módem GSM que clarifica la comunicación mediante comandos AT. En la transmisión hacia el módem el encargado de la gestión es el submódulo ‘Codificador de Comandos’ antes comentado, mientras que en la recepción desde el módem el encargado de la gestión sería el ‘Decodificador de comandos’. TABLA 9.1 Ejemplo de comunicación entre fpga y modem GSM

(nnnnnnnnn : del usuario)

 

número de teléfono

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Del texto procedente de la FPGA se puede interpretar lo siguiente: - Las primeras siete líneas corresponden a comandos utilizados en la configuración del módem GSM. La 8ª línea muestra el comando utilizado para realizar la llamada de petición de confirmación de comienzo de ejecución. En las líneas 9 y 10 se redacta y envía un SMS informativo. En las líneas 11 y 12 se redacta y envía un SMS de alarma La línea 13 manda la orden de lectura del SMS almacenado en el registro 1. La línea 14 borra el registro 1. Del texto procedente del módem se puede destacar lo siguiente: Las 11 primeras líneas son las respuestas correspondientes a los comandos de configuración La línea 12 indica que la llamada realizada ha sido colgada Entre las líneas 13 y 15 se recibe una llamada procedente del teléfono móvil ( petición de un SMS informativo ) Las líneas 18-19 y 22-23 son las respuestas correspondientes al envío de los SMS informativo y de alarma respectivamente.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

La línea 25 indica que se ha recibido un SMS Las líneas 27 a 32 son la respuesta correspondiente a la orden a la lectura de un SMS

RESULTADOS Una vez programado el código VHDL necesario para describir la arquitectura que se ha planteado, se ha sintetizado e implementado, mediante las correspondientes herramientas informáticas y finalmente se ha programado sobre la FPGA seleccionada. Los resultados obtenidos durante esta fase de implementación se detallan en la Tabla 9.2

TABLA 9.2 Resultados de la implementación hardware Análisis de recursos Recurso

Cantidad utilizada

% de los disponibles

Slices

1.719

73%

Registros

1.315

27%

LUTs

2.739

58%

IOBs

27

19%

Puertas equivalentes

29.354 Análisis de retardos

Rutas

1.893,413

Redes

1.315

Conexiones

1.271

Periodo mínimo

44 ns

Retardo máximo

7,397ns

Frecuencia máxima

38,879MHz

Como es posible observar en la tabla anterior, han sido utilizados 1.719 sílices, lo que supone el 73% de la capacidad de la FPGA. Xilinx recomienda una ocupación de estos dispositivos inferior al 80. Teniendo en cuenta este dato, se puede decir que la elección de la FPGA ha sido correcta, si bien se están rozando los límites de capacidad del dispositivo. Por otro lado, de los 140 pines de entrada/salida disponibles, únicamente han sido utilizados 27. Esto corresponde con el 19% del total, lo cual indica que esta característica de la FPGA está siendo infrautilizada. Esto permitiría una gran ampliación, pudiendo dotar al sistema de un gran número señales de control y variables de entrada adicionales.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Por último, tras el análisis de retrasos en las señales, se obtiene un periodo de funcionamiento mínimo de 26ns, lo cual permite una frecuencia de trabajo de 38MHz. Esta frecuencia es más que suficiente para desempeñar las funciones para las cuales el sistema ha sido diseñado.

AUTOEVALUACION 1. Describa la utilidad de un dispositivo FPGA en el sistema de control de temperatura planteado.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

LECCIÓN 5: CONTROL DIGITAL DE POSICIÓN CON ACELEROMETROS UTILIZANDO FPGAS INTRODUCCIÓN Las aplicaciones de los robots no se ven limitadas en operaciones industriales, existen muchas áreas en donde se vuelve indispensable el uso de robots para sustituir la presencia humana. Por mencionar algunos tenemos los ambientes radioactivos, desactivación de explosivos y la exploración de planetas. En este trabajo se presentan los avances realizados en el diseño de una mano robótica que servirá para la construcción de un brazo robótico. La principal aplicación para la cual se pretende diseñar este dispositivo es para tareas del tipo “pick and place”, es decir, tareas donde únicamente nos interesa tomar un objeto desde una posición y orientación inicial y ubicarlo en otra final sin importar la trayectoria que se ejecute durante el movimiento, con el fin de imitar una de las funciones del brazo humano. Los principales requerimientos en el diseño son, que el dispositivo final sea lo más semejante al de una mano real, de peso reducido y de una velocidad de respuesta rápida. En esta sección se presenta la implementación de un controlador digital de motores servos a través de FPGA´s, utilizando acelerómetros como sensores de inclinación. La interfaz humano-robot tiene como propósito controlar por medio de un operador humano una mano robótica en tiempo real, midiendo los niveles de gravedad correspondientes proporcionados por los acelerómetros y controlando la posición de los servomotores. La interacción del operador con la mano robótica se ejecuta en tiempo real gracias a las características de los componentes VLSI, en éste caso los FPGA´s. RECURSOS UTILIZADOS Sensores y Actuadores Servomotores. Un servomotor es un dispositivo que contiene un pequeño motor DC, una caja de engranajes, un potenciómetro y un pequeño circuito integrado. El eje del motor puede ser girado hasta una posición angular específica mediante una señal de control. Mientras se mantenga esta señal de control, el servomotor mantendrá la posición angular del eje. Si la señal de control cambia, también cambia la posición de eje.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 9.6. Servomotor. La velocidad del motor, así como la dirección del movimiento de los servomotores se controla mediante pulsos modulados en amplitud. El servomotor convierte los pulsos en un movimiento mecánico. Este tipo de pulsos está formado por una señal digital que se genera aproximadamente cada 20 milisegundos. El ancho de estos pulsos va de un mínimo de 1ms a un máximo de 2ms (Ver Figura 9.7). Esta técnica se conoce como modulación por ancho de pulso, en ingles PWM (Pulse Width Modulation). La lógica del servomotor se encarga de determinar la dirección en la que ha de girar el motor para minimizar dicho error.

Figura 9.7. Posiciones media y extremas del servomotor según el ancho de pulso de la señal PWM. Las ventajas que aporta el empleo de un servomotor predomina el poco peso, la alta potencia (par de fuerza), la fiabilidad, la fortaleza (los servomotores y  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

su electrónica normalmente están expuestos a ambientes de alta temperatura, suciedad, humedad y vibraciones), la simplicidad, y versatilidad. Acelerómetros.Los acelerómetros son dispositivos piezoeléctricos que convierten la medida de fuerzas gravitatorias en señales eléctricas.

Figura 9.8. Acelerómetro ADXL202E vista superior. Un ejemplo de sensor de aceleración es el ADXL202E de Analog Devices (Ver Figura 9.8), es un completo sistema de eje dual que mide la aceleración en un solo circuito integrado monolítico. Contiene un sensor micro-máquina de superficie de Poli-silicio y una circuitería de acondicionamiento de señal para implementar una medida de aceleración en una arquitectura de lazo abierto. Para cada eje, un circuito de salida convierte la señal análoga a un ciclo de trabajo modulado (DCM), la señal digital puede ser decodificada con un contador-temporizador en un microprocesador. El ADXL202E es capaz de medir aceleraciones positivas y negativas por lo menos de ±2 g. El acelerómetro puede medir la aceleración estática, fuerzas tales como gravedad, permitiendo que sea utilizado como sensor de inclinación. La señal de la aceleración puede ser determinada midiendo la longitud de los pulsos del T1 y del t2 con un contador-temporizador usando un microcontrolador de bajo costo. Uno de los usos más populares del ADXL202E es la medición de inclinación. Cuando el acelerómetro se orienta en eje a la gravedad, por ejemplo, cerca de sus +1 g o de la lectura de -1 g, el cambio en la aceleración de la salida por el grado de inclinación es insignificante. Cuando el acelerómetro es perpendicular gravedad, su salida cambiará el 17.5mg por grado de inclinación, pero en los 45° está cambiando solamente en 12.5mg por grado y la resolución se declina. La Tabla 9.3 ilustra los cambios en los ejes de X y de Y como el dispositivo son ±90° inclinados con gravedad.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Tabla 9.3. Cambios en los ejes X y Y a ±90°.

CONTROL DIGITAL FPGA´s. El FPGA por sus siglas en inglés (Field Programmable Gate Array) es un dispositivo lógico programable.Puede tomar cualquier arquitectura lógica y digital programándola en los diferentes recursos de de software (VHDL, Verilog, etc). La arquitectura de un FPGA consiste en arreglos de varias celdas lógicas las cuales se comunican unas con otras mediante canales de conexión verticales y horizontales tal y como se muestra en la Figura 9.9.

Figura 9.9. Arquitectura básica de un FPGA.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Cada celda lógica es funcionalmente similar a los bloques lógicos de un CPLD. La diferencia está en que un FPGA normalmente utiliza generadores de funciones en vez de compuertas. Cada uno de estos generadores es como una memoria en donde en vez de implementar la función lógica mediante compuertas, se pre-calcula el resultado y se almacena en el generador. Las entradas al generador funcionan como un bus de direcciones, y mediante las diferentes combinaciones de las entradas al generador se selecciona el resultado correcto. Esto le da una gran densidad al dispositivo ya que se maneja un gran número de generadores, pero el tiempo de propagación al implementar una función lógica en estos generadores es menor al que se necesitaría si utilizáramos compuertas. ARQUITECTURA Para realizar el posicionamiento de los servomotores por medio de los sensores acelerómetros, se necesita un sistema de adquisición de datos, una etapa de procesamiento de datos, un decodificador y un controlador (etapa de control). Ver Figura 9.10.

Figura 9.10. Etapas del sistema. Etapa de Sensado La primera etapa del sistema consta de los sensores de inclinación, los cuales tienen una respuesta en señal eléctrica modulada en DCM. (Ver Figura 9.11).

Figura 9.11. Modulación DCM del sensor de inclinación.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Dependiendo del valor gravitacional de inclinación a la salida se del sensor se obtiene la señal PWM en los ejes X y Y. A un valor de 0g se tiene un ciclo de trabajo del 50%. Los sensores deben calibrarse a través de una resistencia (Rset) para trabajar a diferentes frecuencias, lo cual quiere decir que el usuario decide la cantidad de muestras por segundo que se desea recibir. Etapa de Control La etapa de control tiene la tarea de tomar los datos otorgados por el sensor acelerómetro, procesarlos dependiendo de la cantidad de sensores que se cuenten, decodificar el valor de inclinación del acelerómetro para dar una señal de control al servomotor. El FPGA es el dispositivo encargado de realizar éstas tareas Así queda subdividido en adquisición de datos, procesamiento de datos, decodificador de datos y control de servomotor. La adquisición de datos se realiza a través de un contador con doble reset (uno asíncrono y otro sincrónico) a la entrada del sistema. Éste bloque realiza la cuenta del tiempo de encendido del ciclo de trabajo de la señal PWM proveniente del acelerómetro. Al iniciar el tiempo de encendido en la señal PWM el registro del contador se resetea e incrementa su cuenta, cuando ocurre el tiempo de apagado de la señal PWM, el valor del registro contador pasa a un registro de almacenamiento donde será procesado. La etapa de procesamiento de datos regula los diferentes niveles de inclinación para los sensores. En caso de que haber más de un sensor existe una dependencia dependiendo la posición de éstos. Los sensores están localizados en cada una de los eslabones que asemejan a las falanges de los dedos. En este trabajo se presenta una posible solución del problema de la cinemática directa de una mano robótica, es decir, a partir de los sensores (acelerómetros) se obtiene la orientación de cada uno de las falanges, de manera que es posible obtener la ubicación del efector final (yema del dedo) utilizando las siguientes ecuaciones del sistema de referencia inercial X-Y. X = l1 cos( θ 1 ) + l 2 cos( θ 1 + θ 2 ) Y = l1 sen (θ 1 ) + l 2 sen (θ 1 + θ 2 ) Φ =θ1 +θ2 En la Figura 9.12 se muestra una representación esquemática de dos falanges que representa a uno de los dedos de la mano robótica, cuyas longitudes están representadas por l1 y l2.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Figura 9.12. Representación de la Cinemática Directa. Una vez procesados los datos a partir de las ecuaciones de la cinemática directa, el decodificador de posición toma las muestras procesadas de los sensores y los traduce a un valor de posición para el controlador del servo. La muestra decodificada contiene el valor en tiempo para la señal de control, de 1ms a 2ms aproximadamente. Tomando en cuenta que el sensor se encuentra en 0° de inclinación, se desplazará 90º a gravedad positiva y 90º a gravedad negativa (Ver Tabla 9.3) el servomotor tendrá el mismo rango de movimiento, de 0° a 180º; tomando los 0º del sensor e igualándolos a 90º de posición para el servomotor (Ver Figura 9.13).

Figura 9.13. Rangos de valores del decodificador. Finalmente la última etapa es el control del servomotor, el cual consta de un generador de PWM a baja frecuencia para posicionar al servomotor dentro de los 180º de margen de operación. La posición del motor se encuentra delimitada por el valor que proporciona el decodificador de datos, aprovechando la característica de propia de un servomotor, el cual tiene un controlador de lazo cerrado que ajusta su posición de acuerdo al incremento o decremento del error de retroalimentación.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

El controlador digital sólo envía el valor de la posición deseada en la modulación PWM de acuerdo a las referencias preestablecidas de valores. IMPLEMENTACIÓN Utilizando el acelerómetro ADXL202E como inclinómetro para la etapa de sensado se configura con una resistencia en Rset de 125KΩ para obtener mil muestras por segundo, los valores de inclinación de la salida X en señal PWM se muestran en la Tabla 9.4. Rest.

Frec.

125KΩ

1KHz

+90º Inc. 41%CT

0º Inc. 51%CT

-90º Inc. 64%CT

Tabla 9.4. Valores del acelerómetro ADXL202E. Como se aprecia en la tabla anterior, el valor mínimo de ciclo de trabajo de la señal PWM es de 41% a 1KHz, esto representa cuando el sensor está inclinado a menor gravedad (+90º) si se toma como referencia la muesca del sensor apuntando hacia arriba, y el valor máximo de ciclo de trabajo de la señal PWM con máxima gravedad (-90º) cuando la muesca del sensor apunta hacia abajo es de 64%. Para la etapa de control, se tiene un FPGA Xilinx XC2S200E sobre una tarjeta de desarrollo Digilent 2SB-DIO4. Las características del contador de la señal PWM se muestran en la Tabla 9.5. Tamaño CNT. 8 bits

FREC. Operación 390.625KHz

Cuenta +90º Inc. 162

Cuenta 0º Inc. 206

Cuenta -90º Inc. 253

Tabla 9.5. Características del contador de control.

Los resultados de la Tabla 9.5 muestran los valores de las cuentas (valores en decimal) que se obtienen del ciclo de trabajo ó tiempo de encendido de la señal PWM del acelerómetro. El contador de 8 bits tiene como cuenta máxima a la frecuencia de operación un valor de 255 cuentas, con la inclinación de mayor gravedad a un ciclo de trabajo de 64% se obtiene una cuenta de 253. La resolución de éste contador es de 0.5º, lo cual quiere decir que por cada grado de inclinación se obtienen 2 cuentas. En ésta implementación se cuenta con un solo sensor de inclinación así que es el de mayor prioridad, la etapa de decodificación toma los valores del registro una vez hecha la cuenta para traducirlos en valores de control para el servomotor.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

El control del servomotor es un PWM a 50Hz, para un servomotor Futaba S3004.Las características del servomotor se muestran en la Tabla 9.6.

Modelo

Velocidad

Tiempo CT. 0º

Tiempo CT. 90º

Futaba S3004

0.23sec/60º (a 4.8V)

0.9ms

1.5ms

Tiempo CT. 180º 2.1ms

Tabla 9.6. Características de servomotor Futaba S3004. Los tiempos de posición en ciclo de trabajo para los diferentes grados corresponden a la Figura 9, donde para posicionar el servomotor a 0º se requiere que a un frecuencia de 50Hz y un ciclo de trabajo de 09.ms. Para demostrar el funcionamiento de la etapa de decodificación y control del servomotor en la Tabla 9.7 se muestran los valores del contador que corresponden a cierta inclinación del acelerómetro con un rango de ±90º, y los valores del servomotor que corresponden a su orientación en un plano de 0º a 180º. Inclinación Acelerómetro. +90º +45º 0º -45º -90º

Valor del contador (Hex) A2 B8 CE E4 FD

Orientación del Servomotor 0º 45º 90º 135º 180º

Valor Código PWM 04H 09H 0FH 15H 1BH

Tabla 9.7. Valores de inclinación para las diferentes etapas. En la Figura 9.14, se puede observar los recursos utilizados del FPGA en el diseño del Control Digital.

Figura 9.14. Recursos implementados del Control Digital por el FPGA.

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

En la Tabla 9.8, se muestra el porcentaje utilizado de las celdas lógicas disponibles para un FPGA XC2S200E de 200 mil compuertas. Se utilizó el 9% del área programable del FPGA FPGA

% usado

XC2S200E

2%

Bloques Totales 2352

Bloques usados 64

Tabla 9.8. Porcentaje utilizado del FPGA. CONCLUSIONES El control digital de servomotores es importante por las ventajas que ofrecen los dispositivos lógicos programables, como su gran velocidad de procesamiento y alta integración, fácil implementación y gran compatibilidad con otros dispositivos como el acelerómetro. En éste artículo se realizó el control digital de posición de un servomotor capturando datos de la inclinación que proporcionaba un acelerómetro y decodificando esos datos en valores de posición para orientar un servomotor en tiempo real todo esto procesado por un FPGA. Este sistema de control será implementado para controlar un brazo robótico a través de una interfaz humano-robot donde el operador llevará el sistema de sensado (acelerómetros) montado en su mano y brazo para mover en tiempo real un brazo robótico ubicado a distancia y comunicado vía inalámbrica.

AUTOEVALUACION 1. Diseñe un esquema de implementación del FPGA dentro del proyecto “Control digital de posición con acelerómetros” 2. Cuál es la tarea específica del FPGA dentro del proyecto?

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

ACTIVIDADES COMPLEMENTARIAS DE LA UNIDAD 3 1. Realice una profunda investigación sobre otras aplicaciones de los Dispositivos Lógicos Programables. Realice un ensayo con aplicaciones específicas en el sector científico (adquisición de datos) y en el sector médico (equipos de electromedicina).

2.

Ejercicio de diseño de una puerta NAND2

Objetivo de la práctica: Diseño de una NAND 2 entradas según el estilo de celdas estándar, con un tiempo de retardo, supuesto un Cload=1pF, inferior a 1ns. Distancia entre Vdd y Vss menor de 100λ. Minimiza la anchura. Caracterizarla, esto es: • • • • •

Márgenes de ruido (para Inversor, NAND, NOR, XOR) Obtener Función lógica en Microwind2 mediante simulación Área Consumo Retardo cuando se carga con Cload=1pf

Realizar todo en tecnología 0,25u. Técnica de celdas estándar: • Alimentación y tierra se distribuyen mediante conexiones metálicas horizontales • Difusiones se trazan en horizontal y polisilicio en vertical • Las entradas y salidas se disponen arriba y abajo de la celda • Las interconexiones se trazan horizontalmente en metal Para obtener una alta densidad de integración en el estilo de celdas estándar es conveniente que los transistores nMOS y pMOS se tracen colindantes y en fila así todos pueden compartir la misma difusión y se evita el trazado explícito de las conexiones entre fuentes y drenadores. Sin embargo para lograrlo es importante elegir un orden adecuado de trazado de las entradas.  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

FUENTES DOCUMENTALES DE LA UNIDAD 3 Bar-Lev. "Semiconductors International, 1984

and

electronic

devices",

Prentice

Hall

Basic Integrated Circuit Engineering: Hamilton & Howard. Macgraw Hill (1975) Artigas, J.I. et alter, Electrónica Digital: aplicaciones y problemas con VHDL, Prentice-Hall, 2002. C.J. Savant, M. S.Roden y G.L. Carpenter. "Diseño electrónico", Addison Wesley Iberoamericana, 1992 D. de Cogan. "Design and technology of integrated circuits". John Wile y & Sons 1990 Deschamps, J.P., Síntesis de circuitos digitales: un enfoque algorítmico, Ed. Thomson, 2002. Horestein, M., Microelectrónica: Circuitos y dispositivos, Prentice Hall, 1997. Integrated Circuit Fabrication Technology: D.J. Elliot. MacGraw Hill (1989) Introducción a la Física del Estado Sólido: C. Kittel. Reverté (1984) Material Handbook for Hybrid Microelectronics: J.A. King. Artech House (1988) Microelectronics. An integrated approach: R.T. Howe and C.G. Sodini. Prentice Hall (1997) Microelectronic Devices: E.S. Yang. MacGraw Hill (1988) M.J. Morant. "Diseño y tecnología de circuitos integrados", Addison-Wesley Iberoamericana, 1994 Modular series on solid state devices: Vol.1: "Semiconductor fundamentals", R.F. Pierret, Vol.2: "The P-N junction diode", G.W. Neudeck, Vol.3: "The bipolar junction transistor", G.W. Neudeck, Vol.4: "Field effect devices", R.F. Pierret, Addison-Wesley Publishing Company (1990) Pardo, Fernando, VHDL: lenguaje para síntesis y modelado de circuitos, RAMA, 1999. Physics of Semiconductor devices: S.M. Sze. J. Wiley & Sons  

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

Quick Reference Manual for Silicon Integrated Circuit Technology: Beadle, Tsai & Plummer. A. Wiley (1985) Rashid, M.H., Circuitos Microelectrónicos, Thompson, 2002. Semiconductor Devices. Physics and Technology: S.M. Sze. John Wiley & Sons (1985) Solid State and Semiconductor Physics: J. McKelvey. Harper & Row (1970) ULSI Technology: C.Y. Chang and S.M. Sze. MacGraw Hill (1997) VLSI Technology: S.M. Sze. MacGraw-Hill (1985) VLSI Fabrication Technology: S.K. Ghandhi. John Wiley & Sons (1994) Vapaille y R.Castagné. "Dispositifs et circuits intégrés semiconducteurs", Ed. Dunod (1987) Complementaria: Van Zant, Peter. Microchip fabrication. 3a ed. New York: McGraw-Hill, 1997. ISBN 0-07-067250-4. Laker, K.R.; Sansen, W.M.C. Design of analog integrated circuits and systems. New York: McGraw Hill, 1994. ISBN 0-07-036060-X. Baker, R, J.; Li, Harry W. ; Boyce, David E. CMOS : circuit design, layout and simulation. New York: IEEE Press Series on Microelectronic Systems, 1998. ISBN 0780334167. Martellucci, S.; Chester, A.N. ; Grazia,A. Optical sensors and micro systems new concepts, materials, technologies. New York: Kluwer Academic/Plenum Publishers, 2000. ISBN 0-306-46380-6. Fukuda, Mitsuo. Optical semiconductor devices. New York: Wiley Series in microwave and optical engineering, 1999. ISBN 0-471-14959-4. Geiger, R.L.; Allen, P.E. ; Strader, N.R. VLSI : design techniques for analog and digital circuits. New York: McGraw Hill, 1990. ISBN 0-07-023253-9. Sofware Utilizado (Windows): • • •

 

MicroWind2 - Simulador de layouts. DSCH2 - Simulador lógico. Manual.pdf - Manual de usuario de los dos programas anteriores.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

 

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA  CONTENIDO DIDÁCTICO DEL CUSO: 299008 – MICROELECTRÓNICA 

                 

 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF