Introducción TEMA 1 TECNOLOGÍA DE LOS CI ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 1
ESTRATEGIAS DE DISEÑO Jerarquía. Divide un módulo en submódulos y estos en otros hasta que tengan un nivel comprensible de detalle. Top-down => Divide y vencerás. Circuito 2_1 Circuito 1 Circuito 2 Circuito 2_2 Circuito 2_2_1 Circuito 3 Circuito 2_2_2 Regularidad. La jerarquía sola no disminuye la complejidad del diseño. Se debe hacer una división en módulos de características similares (regulares). Se logra una mejora de la productividad al reutilizar diseños ya que reduce el número de módulos diferentes a diseñar y testear => reduce time-to-market. Es una propiedad estructural ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 2
ESTRATEGIAS DE DISEÑO Modularidad. Los módulos tienen que estar bien formados: bien definidos, con las conexiones con el exterior perfectamente especificadas (Vcc, Gnd, INs y OUTs). Facilita la conexión entre ellos y permite que puedan ser usados por diferentes diseñadores. Es una propiedad funcional Localidad. La división en módulos hace que las señales internas a cada uno de ellos sean locales, con lo que disminuye la complejidad del diseño ya que éstas aparecen ocultas al nivel del módulo. Es similar a pasar variables globales a locales en software. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 3
ESTRATEGIAS DE DISEÑO Comparación entre el diseño estructurado hardware y software Software Hardware Jerarquía Subrutinas, librerías Módulos Regularidad Modularidad Localidad Iteración, código compartido Interfaces de subrutinas bien definidas Comportamiento local, variables no globales datapaths, arrays regulares, gates arrays, standar cells Interfaces de módulos bien definidos. Inclusión de tiempos y datos Conexiones locales a través de planos de masa, entradas y salidas registradas ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 4
METODOLOGÍA DE DISEÑO Planteamiento del diseño Verificación funcional Verificación temporal TEST Especificación /nivel funcional Síntesis de comportamiento Nivel arquitectural-rt Síntesis RT-lógica Nivel lógico (netlist) Síntesis estructural Diseño físico Nivel tecnológico Fabricación y validación de prototipos RETROANOTACIÓN TECNOLOGÍA Físico Puertas Lógicas Arquitectural Funcional Dependiente de la Tecnología Independiente de la Tecnología METODOLOGÍA DE DISEÑO TOP-DOWN ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 5
NIVELES DE ABSTRACCION DE UN DISEÑO Niveles de abstracción de un diseño 1. Funcional o comportamental (behavioural). Se describe la estructura del sistema mediante bloques funcionales. Debe quedar clara la interfaz entre bloques: E/S, temporización, nombres de señales, etc. 2. Arquitectural o RTL (Register Transfer Level). Es una descripción basada en estructuras regulares de circuitos combinacionales+registros. Deja explícita la transferencia de información entre registros y los bloques combinacionales de una forma más funcional. 3. Lógico. Es una mera descripción de los componentes y sus interconexiones. Equivale a tener una captura de esquemas mediante un HDL. 4. Layout o tecnológico. Circuito a nivel tecnológico donde se da directamente el mapa para fabricar los transistores que componen el circuito sobre el silicio. Codiseño HW/SW Asignar/repartir las distintas tareas de procesamiento entre el hw y el sw. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 6
METODOLOGÍA DE DISEÑO ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 7
TÉCNICAS DE SÍNTESIS A PARTIR DE UN NIVEL La síntesis se define como una transformación entre dos vistas diferentes o dos niveles descriptivos de un diseño Representan lo mismo con un grado de abstracción mayor o menor Funcional RTL (Síntesis funcional) RTL Lógica (Síntesis RTL o lógica) Lógica Layout (Síntesis estructural) Lo deseable sería tener un compilador de silicio : Conversión de nivel Funcional Layout (circuito) ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 8
METODOLOGÍA DE DISEÑO - FUNCIONAL Especificación funcional El diseñador debe plantearse los siguientes puntos: Funcionalidad del sistema Herramientas para su diseño Tecnología elegida Plan de pruebas previsto en su desarrollo Consiste en: Partición del sistema en módulos funcionales Modelado de los módulos describiendo perfectamente la interfaz E/S de los mismos Verificación funcional de los mismos. Planificación de las conexiones entre módulos. Herramientas: Específicos de descripción hardware (HDLs): VHDL, Verilog, etc. Alto nivel: C, C++, ADA, etc ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 9
TÉCNICAS DE SÍNTESIS - FUNCIONAL SINTESIS FUNCIONAL Traslada una especificación de comportamiento a una descripción a nivel de transferencia de registros. Determina los recursos arquitecturales que necesita para desarrollar una tarea (unidades de ejecución, memorias, buses y controladores), Se transforman las operaciones de comportamiento a recursos hardware determinando el orden de las operaciones en la arquitectura. Se aplican algoritmos de optimización que manipulan la descripción inicial del comportamiento para obtener una mejor solución en términos de área/velocidad p.e. pipelined. Es la síntesis de mayor nivel y se ha empezado a desarrollar en los últimos años. Herramientas comerciales: HYPER, Cathedral-III (no están totalmente depuradas). ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 10
TÉCNICAS DE SÍNTESIS - RTL Síntesis lógica o RTL Su misión es generar una estructura basada en componentes básicos regulares (puertas básicas y biestables) a partir de un modelo definido a nivel RT. El modelo se puede especificar de diversas maneras: máquinas de estados, esquemáticos, ecuaciones booleanas, tablas de verdad o descripciones HDL. La descripción lógica generada por la síntesis RTL es optimizada y da lugar a una red de puertas lógicas y biestables que implementan la función especificada y que son agrupados en células según la librería utilizada por la tecnología. Existen herramientas automáticas que realizan este proceso dependientes de algún fabricante y/o tecnología. Son herramientas usadas con tecnologías de implementación: FPGAs, Gatearrays y Standard-Cells. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 11
TÉCNICAS DE SÍNTESIS ESTRUCTURAL La descripción en HDL (VHDL, Verilog, etc) es muy usada ya que: Permite una descripción (comportamiento o RTL ) independientemente de la tecnología. Permite la mezcla de descripciones a distintos niveles de abstracción Permite la introdución de especificaciones de tiempos, retardos, fan-out, etc. Proporciona una netlist de células interconectadas de la librería de componentes de la tecnología seleccionada, abordable por la fase de diseño físico Se simula con los mismos bancos de pruebas que en el nivel funcional. Síntesis estructural Convierte la red de puertas lógicas y registros automáticamente a un layout. Hay dos fases principalmente: Emplazamiento. Las puertas y registros son colocados fisicamente en células del dispositivo siguiendo criterios de minimización de área y tiempos de propagación (Annealing algorithm). Ruteo. Toma el emplazamiento de las células y la lista de conexiones y conecta las células con cables. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 12
TÉCNICAS DE VERIFICACIÓN - FUNCIONAL Simulación funcional: se comprueba la lógica del sistema sin retardos BANCOS DE PRUEBAS -Estímulos DESCRIPCIÓN FUNCIONAL O RTL DEL CIRCUITO - Esquemas (netlist) - Lenguajes HDL - C, C++, ADA SIMULADOR LIBRERÍA - Modelos funcionales Diferentes formatos de descripción. Banco de pruebas: conjunto de estímulos introducidos por el diseñador Simulador: específico o con herramientas Sw genéricas Modelos funcionales Describen el comportamiento de los componentes a nivel funcional. RESULTADOS - Formas de onda - Fichero de texto Herramientas: Banco de pruebas (VHDL, Verilog, C, C++) Gráficas de simulación ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 13
TÉCNICAS DE VERIFICACIÓN - TEMPORAL Simulación temporal: se comprueba el funcionamiento del sistema con retardos reales DESCRIPCIÓN LÓGICA DEL CIRCUITO -Componentes básicos de la tecnología Descripción del sistema después de la síntesis RT-lógica BANCOS DE PRUEBAS -Estímulos SIMULADOR RESULTADOS LIBRERÍA - Modelos temporales Banco de pruebas: el mismo que en la verificación funcional Modelos temporales: modelos de los componentes básicos de la tecnología con sus retardos - Formas de onda - Fichero de texto ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 14
FALLOS/DEFECTOS => TÉCNICAS DE TEST Un sistema falla cuando el comportamiento del mismo difiere del especificado ( failure ). Esta caída es provocada por un error. Existe un error en un sistema cuando su estado difiere del estado en el cual debería estar para comportarse de la mencionada forma ( error ). Un error está provocado por un fallo. Un fallo/defecto implica una diferencia física entre el sistema correcto y el actual ( fault ). Tipos de fallos: Permanentes: afecta al comportamiento funcional. Conexiones erróneas, componentes deteriorados, errores de diseño funcional,... No permanentes: sólo se presentan en determinados instantes, de forma aleatoria y afectando al sistema de forma finita. Transitorios: causados por factores ambientales (temperatura, humedad, presión,...). Intermitentes: no causados por condiciones ambientales (conexiones falsas, deterioro paulatino de componentes). ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 15
TÉCNICAS DE TEST Testear un circuito no es comprobar la funcionalidad del mismo. Consiste en detectar eventuales fallos procedentes del proceso de fabricación. Son debidos a: Impurezas y defectos del substrato (generalmente silicio en el caso de ASICs y Gatearrays). Cortocircuitos entre pistas o capas e interconexiones rotas debidos a los exigentes controles a los que son sometidos despues del proceso de fabricación. Estas consideraciones no afectan a las FPGAs. El diseñador implementa una función sobre bloques configurables Programar interconexiones entre pistas que ya existen. El objetivo será comprobar que el 100% del circuito está libre de fallos. Esto es casi imposible. Se define un parámetro llamado COBERTURA DE FALLOS número de nodos de (E/S) de todas las células que el test es capaz de comprobar/validar. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 16
TÉCNICAS DE TEST MODELOS DE FALLOS Un modelo de fallos describe defectos a diferentes niveles de abstracción en la jerarquía de diseño. En los niveles más bajos, el modelo se corresponde con defectos físicos reales, pero el tiempo necesario para el test es mayor. Modelos de fallos en los diferentes niveles de abstracción: Modelo de fallos de comportamiento. Modelo de fallos funcional. Modelo de fallos estructural. Modelo de fallos de conmutación. Modelo de fallos geométrico. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 17
TEST CORTOCIRCUITO ELECTRICO ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 18
TEST MODELO DE FALLOS ESTRUCTURAL Modelo de fallos Los tipos de fallos y sus efectos en el diseño pueden ser muy variados: cortocircuitos entre señales cortocircuitos con Vcc y Gnd nodos flotantes, etc. Para evaluarlos se utiliza un modelo de fallo genérico denominado STUCK-AT. Cortocircuito permanente de una entrada a Vcc (stuck-at-1 (sa1)) o Gnd (stuck-at-0 (sa0)) debido a una impureza. Si un fallo stuck-at-0 se da a la entrada de una puerta OR, o un stuck-at-1 a la entrada de una puerta AND, podría ser indetectable. Stuck-at-0 Stuck-at-1 0 1 Cortocircuitos debidos a impurezas ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 19
TÉCNICAS DE TEST - PROBLEMATICA Problemas del proceso de TEST: El acceso a un circuito se hace a través de pines de E/S hay nodos que no son accesibles. En el caso de ASICs existen centenares de millones de nodos. Para testear exhaustivamente un circuito hay que aplicar todos los posibles patrones de entrada y observar su respuesta. Esto puede ser prohibitivo. Función combinacional Función secuencial Módulo lógico combinacional Módulo lógico combinacional Vectores=2 N Registro de M estados Vectores=2 N+M ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 20
SIMULACIÓN DE FALLOS Objetivos de la simulación. Determinación de la calidad de los tests realizados. Generación de información requerida en la diagnosis de fallos. Sólo hay acceso a la entradas primarias (PI) y a las salidas primarias (PO). Existirán: Fallos detectables / fallos no detectables. Cobertura de fallos c f. c f = fallos detectados fallos detectables Se desarrollan algoritmos de simulación para circuitos combinacionales. Los circuitos secuenciales incluyen design-for-testability (DFT). Se consideran como bloques combinacionales aislados. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 21
TÉCNICAS DE TEST - SOLUCIONES Solución a los problemas planteados por el TEST secuenciales Reducción del número de vectores según las siguientes premisas: El conjunto de todos los posibles vectores de test tiene gran redundancia (un fallo se manifiesta en varios vectores de entrada). El número de vectores se reduce considerablemente relajando la condición de deteción de todos los fallos. Se suele trabajar con tasas de cobertura del 95-99%. Con estas restricciones se soluciona el test de circuitos combinacionales pero no de los secuenciales, pues se necesita una secuencia de vectores para testear cada fallo => prohibitivo. Solución: transformar el circuito secuencial en uno combinacional eliminando realimentación durante el test metodología scan-test. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 22
TÉCNICAS DE TEST CARACTERISTICAS DISEÑO Esta metodología implica que el diseño tenga las siguientes propiedades: Controlabilidad. Mide la facilidad para llevar un nodo a un estado conocido usando solo pines de entrada. Observabilidad. Mide la facilidad de observar un nodo mediante los pines de salida. Las técnicas DFT (Design for Testability)para circuitos secuenciales se clasifican en tres categorías: Testeo a medida Scan-based test Boundary scan Self-test Built in Self Test (BIST) ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 23
TÉCNICAS DE TEST TESTEO A MEDIDA Testeo a medida Combina una serie de técnicas que se usan para incrementar la controlabilidad y observabilidad del diseño y son dependientes de la aplicación: Accesibilidad Particionado Memoria Procesador Realización inicial test = 0 CONTADOR DE 16 BITS 65536 ciclos para test Memoria Procesador Accesibilidad directa con nuevos pines E/S test = 1 Contador 4 16 ciclos para test Contador 4 Contador 4 Contador 4 Memoria Procesador 0 Mx 1 Accesibilidad mediante multiplexación de pines e introducción de HW específico para test ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 24
Scan-based test TÉCNICAS DE TEST - SCAN BASED TEST Una forma de solucionar los problemas de test de los circuitos secuenciales es añadir a todos los registros la posibilidad de carga y lectura. Para no sobrecargar el diseño la carga y lectura se hace de forma secuencial. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 25
TÉCNICAS DE TEST BOUNDARY SCAN TEST Diseño con boundary-scan (barrido de contorno) Con la introducción de nuevas técnicas de encapsulado (montaje superficial, módulos multichip) disminuyó el número de pines de prueba. Para solucionar el problema aparece la técnica boundary scan que conecta los pines de entrada y salida de los componentes de una placa en un canal serie. ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 26
TÉCNICAS DE TEST - BIST Autotest integrado (BIST- Built-in-Self-Test) Una forma alternativa de testear un circuito es hacer que él mismo se autogenere los vectores de test en lugar de proporcionárselos externamente. El generador de estímulos suele ser pseudoaleatorio LFSR (lineal- feed-back shift register). Generador de estímulos Subcircuito bajo test Memoria patrón Analizador de respuesta R R R S 0 1 0 1 1 1 0 0 1 S 1 0 1 0 1 1 1 0 0 S 2 0 0 1 0 1 1 1 0 ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 27
TÉCNICAS DE TEST FIRMA HW COMPRIMIDA Analizador de respuesta. Dinámicamente comprime la salida del circuito bajo test (firma) y la compara con la almacenada en la memoria on-chip. Un circuito muy utilizado como generador de patrones y firma se llama BILBO (Built-In Logic Block Observation) ME Tema 1 Lección 3 Aspectos generales sobre diseño microelectrónico 28