TENDENCIAS EN EL DISEÑO DE SISTEMAS ELECTRÓNICOS Tema I.1: Introducción al diseño de sistemas digitales Octubre 2007 Antonio Mateo Aroca Juan Suardíaz Muro antonio.mateo@upct.es juan.suardiaz@upct.es Tema I.1 Sistemas Analógicos vs Digitales Sistemas Analógicos Procesan señales que varían con el tiempo y que pueden adquirir cualquier valor a lo largo de un intervalo continuo de voltaje, corriente o cualquier otra medida. Sistemas Digitales Hacen lo mismo, salvo que aparentan no hacerlo. Podemos modelar las señales, de tal modo de que en un instante de tiempo solo pueden tomar dos valores: 0 y 1, BAJO y ALTO, FALSO y VERDADERO. Tema I.1 Ventajas Sistemas Digitales Reproducibilidad de los resultados. Las salidas de un circuito analógico varían con la temperatura, alimentación, antigüedad de los componentes y otros factores. Los digitales son más inmunes. Facilidad de diseño. Se visualiza fácilmente. Flexibilidad y funcionalidad. Fácilmente modificable. Programabilidad. El diseño se puede realizar en base a la utilización de lenguajes de descripción hardware. Velocidad. Los transistores pueden conmutar en menos de 10 ps. Y un dispositivo complejo puede presentar retardos de propagación de 2ns. 500 millones de resultados por segundo. Economía. Proporcionan mucha funcionalidad en un espacio muy pequeño. Avance tecnológico constante. Tema I.1 Sistemas Combinacionales Un circuito combinacional es un circuito cuya salida depende solamente de la combinación de las señales de entrada. Las puertas lógicas (compuertas) son los dispositivos digitales más sencillos. Tema I.1 Sistemas Secuenciales Su salida no sólo depende de las entradas al mismo, sino también del estado en que se encuentra, es decir, de la secuencia anterior de las entradas. Es por ello, que se suele decir que los circuitos secuenciales “tienen memoria”. Tipos: – – Latches: dispositivo que almacena ya sea un 0 o un 1. Su valor cambia según determinados niveles de las señales (asíncrono) Flip-Flop: dispositivo que almacena ya sea un 0 o un 1. Su valor cambia en sincronía con una señal de reloj (síncrono) Tema I.1 Abstracción Digital Permite que el comportamiento analógico sea ignorado en la mayoría de los casos, como si los circuitos puedan ser modelados como si en realidad procesaran ceros y unos. VNIH e VNIL es el margen de ruido Tema I.1 Diseño Electrónico La labor del diseñador electrónico consiste en asegurarse que las compuertas lógicas produzcan y reconozcan las señales lógicas que se encuentran dentro de los intervalos apropiados. Este es un problema de diseño analógico. No es posible diseñar un circuito que tenga el comportamiento deseado bajo cualquier condición de voltaje de alimentación, carga, etc. El diseñador del circuito electrónico o el fabricante de dispositivos proporcionan especificaciones que definen las condiciones bajo las cuales se garantiza el comportamiento adecuado del dispositivo o el circuito. Tema I.1 Herramientas Diseño Electrónico Capturadores de esquemáticos. Permiten dibujar los diagramas esquemáticos y permiten verificar errores comunes. Lenguajes de descripción hardware o HDLs (ABEL, VHDL y VERYLOG, HANDELC, SYSTEM C). Compiladores HDLs, herramientas de síntesis y simulación. El diseñador escribe una descripción hardware basado en texto. El compilador HDL analiza la descripción y corrige la sintaxis. Si se compila correctamente el diseñador tiene la opción de entregar la descripción a la herramienta de síntesis, la cual crea un diseño de circuito adecuado a la tecnología elegida. Antes de realizar la síntesis se suele realizar una simulación, a partir de los resultados obtenidos con el compilador. Bancos de pruebas. Consiste en construir un conjunto de programas en torno a un diseño, para ejecutar de forma automática sus funciones y verificar su funcionamiento (HDL, C, C++, PERL). Verificadores y analizadores de aspectos temporales. Son programas especializados que pueden automatizar las tediosas labores de elaboración de cronogramas, así como, especificar y verificar las relaciones temporales entre las distintas señales de un sistema complejo. Procesadores de texto. Tema I.1 Circuitos Integrados Estándar Cristal de silicio Planos de fabricación Cliché Proceso de difusión El primer circuito integrado nace en 1958 gracias a Jack Kilby La mejora de las tecnologías de fabricación ha conducido a las diferentes escalas de integración, cumpliendo la famosa ley de Moore. Los cuadros se cortan con laser Cuadro de prueba OBLEA Prueba de las obleas Cuadro Cableado Encapsulado Tema I.1 Encapsulados Circuitos Integrados DIP Dual in-line Package SOIC Small-outline IC PLCC Plastic leaded chip carrier LCCC Leadless ceramic chip carrier PGA Inserción Montaje Superficial (SMT) FP Flat-pack Tema I.1 Encapsulados (II) Tema I.1 Circuitos Integrados-Clasificación Los circuitos integrados tradicionalmente se han clasificado según la cantidad de puertas lógicas (compuertas) que contienen: SSI (*) MSI (*) LSI VLSI Small Scale Integration Medium Scale Integration Large Scale Integration Very Large Scale Integration < 20 p. equival. Puertas básicas y flip-flops 20-200 Funciones lógicas standar 200-200.000 Memorias pequeñas, P y C, PLDs La mayor parte de los P, C y memorias grandes, ASICs > 1.000.000 transistores (*) SE ENCUENTRAN EN DESAPARICIÓN, SALVO LOS CI DE ESCALA DIMINUTA. Tema I.I Circuitos Integrados-Clasificación Los sistemas electrónicos presentan una evolución creciente en complejidad, prestaciones y densidad. Para afrontar esta complejidad creciente surgen los ASIC: – – ASIC tipo Full-Custom. ASIC tipo Semi-Custom. Estándar-cells. Gate-arrays. Sea of gates. Los Dispositivos Lógicos Programables (PLD) se pueden considerar entre los productos estándar (SSI y MSI) y los circuitos “full-custom” y “semi-custom”. Tema I.1 ASICs Los ASIC son chips diseñados para un producto o aplicación particular (Full Custom). La utilización de ASIC está justificada por los siguientes motivos: – – – – Reducen el número de componentes totales de un sistema y por tanto los costes de fabricación del sistema al disminuir el número de chips utilizados. Disminuyen el tamaño físico del sistema. Disminuyen el consumo de potencia. Proporcionan una mayor funcionalidad. El coste de la Ingeniería No Recurrente (NRE) para el diseño de un ASIC puede exceder el de un diseño discreto en una cantidad comprendida habitualmente entre los 6.000 y 250.000 €. Tipo de ASIC Full-custom 100.000 Puertas Full-custom > 1.000.000 Transistores NRE 30.000 a 50.000 € > 250.000 € Debido a que estos costes son muy elevados, sólo se justifican en aplicaciones de carácter general que tengan un volumen de ventas muy elevado (reloj digital, interfaz de red, interfaz de bus para un PC, etc). Tema I.1 Diseño Full Custom El diseñador no trabaja con puertas lógicas, sino al nivel tecnológico del CI. Es decir se construye sus propias células, caracterizándolas eléctricamente. Las herramientas que utiliza son: editores de layout, simuladores (SPICE), comprobadores de reglas de diseño, etc. Proceso poco productivo, requiriendo mucha experiencia. Difícil y costoso de verificar. Es problemático el adaptarse a cambios tecnológicos. Precisa un estrecho contacto con el fabricante del CI. PERO…..si las características del circuito a diseñar (velocidad, consumo, disponibilidad de células estándar, etc) lo aconsejan, no hay más remedio. Tema I.1 Diseño Semi Custom Los fabricantes de CI ofrecen una serie de células optimizadas y garantizadas a partir de las cuales se puede realizar un diseño. Existen muchas células en forma de librerías soportadas por herramientas capaces de sintetizarlas, generarlas, simularlas y probarlas (tests): – – – – Células estandar (lógica). Macroceldas ( macros): RAM, ROM, multiplicadores, etc. Bloques funcionales: CPU RISC, Microcontroladores, UART, etc. Células analógicas: A/D, D/A, etc. Todo esto implica un uso más cómodo y diseños más económicos => mayor productividad => => DISMINUIR LOS COSTES NRE En semi-custom el diseñador maneja los símbolos. En full-custom el diseñador deber obtener el lay-out. Tema I.1 Gate Arrays Un gate-array es un CI cuya estructura interna esta formado por una matriz de puertas en la que en principio no se especifican sus interconexiones. Así el diseñador especifica el tipo de compuertas e interconexiones. Aunque el diseño se especifica a este nivel, el diseñador trabaja con macrocélulas similares a las funciones de alto nivel que se utilizan en el diseño de las Standard-cell. Es el software el que expande el diseño de alto nivel a uno de bajo nivel. La disposición en el chip de un gate-array no se encuentra tan optimizada como en el caso de las Standard-cell. De tal modo que el tamaño del chip puede crecer un 25% Þ incremento de precio. A pesar de ello, el diseño con gate-arrays se acaba antes, y es menor el coste NRE (5.000-75.000 €). Tema I.1 PCBs Los CI se colocan sobre PCB (Printed Circuit Boards) o PWB (Printed Wiring Boards). Existen multitud de tipos, así como, herramientas para su diseño. Los PCBs se pueden clasificar atendiendo a multitud de características: – – – – – Bicapa o multicapa (pistas de cobre laminadas sobre varias capas de fibra de vidrio formando una única tarjeta de 1/16”). Componentes de inserción o de montaje superficial (SMT, surface-mount technology). Taladros metalizados o sin metalizar. Para diseño digital, analógico o mixto. Etc. El diseñador es responsable del calculo de las dimensiones físicas y su interconexión (“placement”/”routing”). Estas operaciones se pueden hacer de forma manual o semiautomática. Tema I.1 PCBs (II) La experiencia aconseja: – Colocación de componentes de forma automática o semiautomática (auto-routing). – Interconexión manual de las señales más críticas (reloj, reset, señales de control, etc) minimizando su longitud y evitando ángulos y recodos pronunciados. – El resto de señales pueden rutarse automáticamente. – En el diseño mixto, analógico y digital, separar claramente en la zona las distintas zonas y tratar con cuidado las masas respectivas => ruidos. – En el caso del diseño digital no perder de vista la tecnología utilizada (CMOS, TTL, etc), unas son más ruidosas que otras; la frecuencia de funcionamiento, para dimensional el ancho y separación de las pistas para evitar ruido por acoplamiento capacitivo e inductivo; Tema I.1 Niveles de Diseño Digital Físico Consiste en trabajar al nivel físico de los dispositivos y los procesos de fabricación de CI. Es el nivel responsable de los enormes avances en cuanto a integración y velocidad. Ley de Moore (Gordon Moore, 1965): La cantidad de transistores por pulgada cuadrada se duplica cada año. Actualmente se duplican cada 18 meses. Habitualmente no vamos a trabajar a este nivel. Lógico Se utilizan tablas de verdad o diagramas de estado para describir la LSI funcionalidad del circuito. MSI Se aplican técnicas de análisis basadas en el álgebra de Boole para obtener funciones simplificadas. Finalmente se implementa una solución utilizando diversas tecnologías. ABEL Se utilizan lenguajes de descripción hardware sencillos tal como ABEL para especificar el circuito que posteriormente se va a implementar sobre el PLD. El software se encarga de realizar las conexiones sobre el PLD. VHDL Sirve para realizar diseños muy jerarquizados y complejos, al ser un lenguaje mucho más poderoso. Tema I.1 Niveles de Diseño Digital (II) Ejemplo: Formas de describir un multiplexor Físico Lógico Tema I.1 Niveles de Diseño Digital (III) Ejemplo: Formas de describir un multiplexor LSI MSI Tema I.1 Niveles de Diseño Digital (IV) Ejemplo: Formas de describir un multiplexor ABEL Tema I.1 Niveles de Diseño Digital (V) Ejemplo: Formas de describir un multiplexor VHDL Tema I.1 Objetivos del Diseño Dados los rendimientos funcionales y de rendimiento para un sistema digital, el objetivo fundamental del diseño es MINIMIZAR COSTOS. Diseño a nivel de PCB – – Hay que minimizar el número de circuitos integrados. Habitualmente el tamaño físico de las tarjetas está limitado. La regla general es minimizar CI aunque el coste individual del CI sea mayor. Ejemplo: – En el caso de un diseño que necesitara usar 3 CI (75 céntimos de Euro) o un PLD (1 Euro) elegiríamos el del PLD por lo siguiente: Coste de 1 CI LSI o MSI = 25 céntimos de Euro. Coste de 1 PLD = 1 Euro. Utiliza menos área de tarjeta. Es más fácil de modificar. Diseño a nivel de ASIC – – – – En aplicaciones de volumen medio o bajo (la mayoría) los dos factores que inciden más en el coste son: tiempo de diseño y costo NRE. Reducir tiempos de diseño implita introducir el producto antes en el mercado, incrementando su vida media. La reducción del coste NRE en ocasiones es fundamental cuando hay limitaciones de presupuesto. Estos dos últimos argumentos favorecen la proliferación de diseños basados en la utilización de PLDs, CPLDs y FPGAs. Tema I.1 PLDs Los SPLD se pueden considerar que se encuentran entre los productos estándar (SSI y MSI) y los circuitos “custom” y “semi-custom”. Su capacidad de integración es, en media, por lo que pueden realizar tareas relativamente sencillas, si bien pueden realizar funciones para las cuales eran necesarios varios circuitos estándar. Se basan en el empleo de matrices lógicas programables: Tema I.1 PLDs (II) Una ventaja adicional de los SPLD es su coste reducido. Permiten el diseño de circuitos combinacionales y secuenciales no muy complejos, a medida y a un bajo coste. Coste unitario Coste por puerta Tiempo de desarrollo Eficiencia Integración Puertas equivalentes Circuitos std. BAJO MEDIO SEMANAS BAJA BAJA O MEDIA 10 SPLDs Semi Custom Full Custom BAJO O MEDIO MEDIO ALTO MEDIO BAJO MUY BAJO HORAS SEMANAS MESES MEDIA MEDIO ALTA MEDIA ALTA MUY ALTA 100 1000/10000 100000 Existen cuatro tipos de dispositivos SPLD: – – – – PROM, Programmable Read-Only Memory. PLA, Programmable Logic Array. PAL, Programmable Array Logic. GAL, Generic Array Logic. Tema I.1 PROM Memoria de sólo lectura. Se utiliza como una memoria direccionable y no como un dispositivo lógico, debido a las limitaciones que imponen las puertas AND fijas. Tema I.1 PLA También se conoce como FPLA (Field Programmable Logic Array), debido a que es el usuario, y no el fabricante, es el que la programa. Tema I.1 PAL Mejora las desventajas de las PLA en cuanto a los retardos en los fusibles. Es el dispositivo programable, para una sola vez, más común, y se implementa con tecnología TTL y ECL. Tema I.1 GAL Es el desarrollo más reciente. Tiene una estructura muy parecida a la PAL, pero con las siguientes diferencias: – – Es reprogramable. Tiene configuraciones de salida reprogramables. Usa tecnología E2CMOS (Electrically Erasable CMOS). Tema I.1 CPLDs Son versiones más grandes que los PLD sencillos, con una matriz de interconexión interna centralizada que se utiliza para interconectar las macroceldas del dispositivo. La matriz de interconexión se programa para conectar de forma selectiva señales de entrada a un nivel de puertas AND programables que se conectan a su vez a un nivel de puertas OR fijo. Las salidas de las puertas OR se conectan a su vez a macrocelulas configurables que permiten al usuario: o o o o Especificar la polaridad de salida. Seleccionar operaciones combinacionales o de registro. Proporcionar la funcionalidad triestado. Opcionalmente realimentar la matriz de interconexión. Independientemente de la función que se implemente, el camino que siguen las señales a través del CPLD es prácticamente el mismo. Esta arquitectura limita la flexibilidad del diseño, pero ofrece la ventaja con que los tiempos de propagación son muy predecibles. Tema I.1 FPGAs Las FPGAs son circuitos de aplicación específica (ASIC) de alta densidad programables por el usuario en un tiempo reducido y sin la necesidad de verificación de sus componentes, tarea ya realizada por el fabricante al tratarse de un producto estándar. Se las considera como un derivado de los Gate Array: FPGA = Field Programmable Gate Array Gate Array Programable en Campo. Aunque es menos usado, también se les conoce como LCAs (Logic Cell Array), denominación registrada por Xilinx. Tipo de producto Impacto en la producción Gate Array Específico Retrasos en la producción FPGA Estándar de distribución Rapidez en mercado Sólo en proceso de fabricación. Por el usuario (reprogramable) Complicada Fácil fases Imposible Posible Programación Simulación Verificaciones en previas al diseño final. Cambios en el diseño Comprobación del dispositivo Muy costosos Específica para cada diseño Posible en cualquier momento. Comprobada por el fabricante Tema I.1 FPGAs (II) La primera FPGA aparece en 1985 producida por la compañía norteamericana Xilinx, fundada un año antes. Desde su aparición, han experimentado una importante evolución, tanto en ventas, como en prestaciones. Esta aceptación en la industria electrónica es debida, en gran medida, a las tendencias actuales, que exigen cada vez mayores prestaciones, integración y fiabilidad, combinadas con un menor coste y consumo. Tema I.1 FPGAs (III): Arquitectura Una FPGA consta de tres tipos de elementos programables: 1. Bloques Lógicos Configurables (CLB, Configurable Logic Block). 2. Matrices de interconexión (SM, Switching Matrix). 3. Bloques de entrada/salida (IOB, Input/Output Blocks). Además presenta líneas de interconexión, agrupadas en canales verticales y horizontales. Finalmente, dispone de células de memoria de configuración (CMC, Configuration Memory Cell) distribuidas a lo largo de todo el chip, las cuales almacenan toda la información necesaria para programar los elementos programables mencionados anteriormente. Estas células de configuración suelen consistir en memoria RAM y son inicializadas en el proceso de carga del programa de configuración. Tema I.1 FPGAs (IV): Arquitectura Tema I.1 FPGAs (V): CLBs Constituyen el núcleo de una FPGA. Cada CLB presenta una sección de lógica combinacional programable y registros de almacenamiento. Los registros de almacenamiento sirven como herramientas en la creación de lógica secuencial. La sección de lógica combinacional suele consistir en una LUT (Look Up Table), que permite implementar cualquier función bolean a partir de sus variables de entrada. Su contenido se define mediante las células de memoria (CMC). Se presentan también multiplexores, como elementos adicionales de direccionamiento de los datos del CLB, los cuales permiten variar el tipo de salidas (combinacionales o registradas), facilitan caminos de realimentación, o permiten cambiar las entradas de los biestables. Se encuentran controlados también por el contenido de las células de memoria (CMC). Tema I.1 FPGAs (VI): IOBs La periferia de la FPGA está constituida por bloques de entrada/salida configurables por el usuario. Cada bloque puede ser configurado independientemente para funcionar como entrada, salida o bidireccional, admitiendo también la posibilidad de control triestado. Los IOBs pueden configurarse para trabajar con diferentes niveles lógicos (TTL, CMOS, …). Además, cada IOB incluye flipflops que pueden utilizarse para registrar tanto las entradas como las salidas. Tema I.1 FPGAs (VII): Interconexiones Constituyen un conjunto de caminos que permiten conectar las entradas y salidas de los diferentes bloques. Están constituidas por líneas metálicas de dos capas que recorren horizontal y verticalmente las filas y columnas existentes entre los CLBs. Dos elementos adicionales participan activamente en el proceso de conexión: – Puntos de Interconexión Programable (PIP, Programmable Interconnection Point) – Permiten la conexión de CLBs e IOBs a líneas metálicas cercanas. Consisten en transistores de paso controlados por un bit de configuración Matrices de interconexión (SW, Switch Matriz o Magic Box). Son dispositivos de conmutación distribuidos de forma uniforme por la FPGA. Formados internamente de transistores que permiten la unión de las denominadas líneas de propósito general, permitiendo conectar señales de unas líneas a otras. Tema I.1 FPGAs (VIII): Líneas de propósito general Conjunto de líneas horizontales y verticales conectadas a una matriz de interconexión. Tema I.1 FPGAs (IX): Líneas directas Líneas de conexión directa entre bloques, sin tener que pasar por ninguna matriz de interconexión. Proporcionan la implementación más eficiente de redes entre CLBs e IOBs adyacentes, al introducir retardos mínimos y no usar recursos generales (SM). Tema I.1 FPGAs (X): Líneas largas Líneas conductoras de señal de gran longitud que atraviesan la FPGA de arriba abajo y de izquierda a derecha. Permiten un fan-out elevado y un acceso rápido de una señal a un punto distante, sin la degradación temporal que originan las conexiones de propósito general. Suelen estar limitadas, por lo que es conveniente dedicarlas para señales críticas, como pueda ser el reloj o señales de inicialización globales. Tema I.1 FPGAs (XI): Memoria de Configuración El dato de una célula de memoria habilita o deshabilita dentro del dispositivo un elemento programable. Están constituidas por dos inversores CMOS conectados para implementar un latch, además de un transistor de paso usado para leer y escribir la célula. Sólo son escritas durante la configuración y pueden ser leídas durante un proceso conocido como “readback”. El proceso de configuración consiste en la carga de un fichero formado por un conjunto de bits, cada uno de los cuales es almacenado en una de estas células de memoria estática.