Plan 95 Adecuado ASIGNATURA: DISEÑO DE CIRCUITOS INTEGRADOS DIGITALES DEPARTAMENTO: ELECTRÓNICA ÁREA: ELECTRÓNICA CODIGO: 95-0407 CLASE: Electiva de Especialidad. HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS. Fundamentación: Las técnicas digitales han evolucionado desde sus comienzos, en los cuales la síntesis de los circuitos digitales era realizada de forma manual por medio de la resolución de diagramas manipulado así algunas centenas de compuertas, hasta hoy en día donde los circuitos digitales poseen cientos de millones de componentes, lo cual hace imposible la síntesis manual de los mismos. Durante las últimas dos décadas han aparecido un conjunto de herramientas de software conocidas como EDA (Electronic Design Automation) que permiten la manipulación de circuitos digitales de la complejidad mencionada. En este contexto, actualmente es indispensable que un ingeniero de diseño de circuitos integrados digitales tenga pleno conocimiento de dichas herramientas, no sólo de su utilización, sino también de los fundamentos teóricos que las rigen de forma tal de poder lograr el diseño y la implementación de circuitos de dicha complejidad. Con este objetivo, el curso hace un fuerte uso de las herramientas de EDA modernas utilizadas en el diseño digital moderno. Objetivos: El objetivo de la materia es que el alumno aprenda a diseñar, simular y verificar sistemas digitales de alta complejidad utilizando las herramientas modernas del diseño digital. Se presentan temas de vanguardia en electrónica digital divididos en distintas capas de diseño. Esta asignatura brinda un marco apropiado para que los alumnos participen en proyectos de diseño de sistemas digitales utilizando las herramientas de software actuales. El temario se desarrolla desde los niveles de abstracción más bajos a los más altos formando al alumno en todas las etapas del diseño digital. Programa sintético: • • • • • • Repaso de codificación HDL Diseño a nivel transistor Diseño a nivel de compuertas Verificación de sistemas digitales Design for testability Diseño físico Programa analítico: Unidad 1: Repaso de codificación HDL Lenguajes de descripción de hardware: VHDL, Verilog, System Verilog. Características. Sintaxis de los lenguajes: operadores, tipos de datos, asignaciones concurrentes y secuenciales, sentencias de control de programa, procesos, instanciación de componentes. Ejemplos de descripción de circuitos. Unidad 2: Diseño a nivel transistor (Transistor Level) La compuerta CMOS estática. Rise-time, fall-time, tiempo de propagación. Dimensionamiento de transistores en función de las características dinámicas de la compuerta. Capacidades parásitas de la compuerta. Transmission gates. Ruido en una compuerta. Leakage. Potencia estática y dinámica. Bloques aritméticos. Diseño de latches y flip-flops basados en transmission gates. Características de latches y flipflops: setup time, hold time, recovery time, removal time. Parásitos en circuitos digitales. Técnicas de extracción de parásitos. Modelización de celdas. Worst case – Best case. Empleo de herramientas de software para modelado de celdas. VHDL-VITAL y Verilog para modelado. Unidad 3: Diseño a nivel de compuertas (Gate Level) Static timing analysis para circuitos sincrónicos. Statistical timing analysis. BC-WC, On chip variation (OCV). Influencia del ruido en la temporización. Timing análisis basado en restricciones (design constraints). Clock skew. Diseño de árboles de distribución de reloj y de distribución de reset. Árboles de cero skew y de skew positivo. Impacto de variaciones de proceso en el skew. Uso de DLLs para minimización de skew. Clock jitter. Diseños con múltiples dominios de clocks. Sincronizadores y arbitradores. Metaestabilidad. Fallos de sincronización. MTBF. Entradas asincrónicas. Síntesis lógica. Conversión RTL a netlist. El método de esfuerzo lógico y based-gain síntesis. Wireload model y Physical Layout Estimation model (PLE). Empleo de herramientas de software para síntesis lógica. Estimación de potencia. IR-drop estimation. Técnicas de reducción de potencia: minimización transiciones, clock gating, frequency scaling, voltaje scaling, power gating. Unidad 4 : Verificación de sistemas digitales Observabilidad y controlabilidad. Cobertura de código. Verificación funcional. Assertion based verification. Introducción a System Verilog. Logic Equivalence Check (LEC). Unidad 5: Design for testability (DFT) Modelos de fallas: SA-0, SA-0. Iddq, Issq, Iddt. Tipos de cadenas de scan: Muxed y LSSD. DFT rules. BIST: la arquitectura STUMPS. Técnicas de generación de pseudo-ruido: LFSR y CAR. In system Debugging. Test funcionales. Técnicas Ad-Hoc. Unidad 6: Diseño físico Floorplanning. Placement. Routing. Global and detailed routing. Clock tree synthesis. Métodos de extracción de parásitos para para las distintas etapas de diseño: placement, routing, signoff. Dynamic timing closure. Dynamic power closure. Noise analysis. Coeficientes de correlación. Signoff checks. Articulación Vertical y Horizontal con otras materias: Articulación vertical Se ha buscado interrelacionar conocimientos con otras asignaturas, buscando realizar implementaciones reales de circuitos digitales estudiados en otras asignaturas. Por ejemplo, a lo largo de los tres trabajos prácticos se realiza la implementación física de un pequeño microprocesador intentando así aplicar los conceptos adquiridos a lo largo de la materia y los adquiridos en otras, como ser: • Lenguajes descriptores de hardware (Técnicas Digitales I) • Implementación de un microprocesador (Técnicas Digitales II) • Aplicación de conocimientos de circuitos electrónicos para la realización de la implementación física del circuito (Electrónica Aplicada I) Articulación horizontal En este aspecto los temas son complementarios a los conocimientos impartidos en la materia “Introducción al Diseño de VLSI”. Evaluación: Modalidad (tipo, cantidad, instrumentos) Examen Parcial al promediar el cuatrimestre, 3 Trabajos Prácticos y Examen final. Requisitos de regularidad Asistencia al 75% de las clases, entrega en fecha de los trabajos prácticos y aprobación de un examen parcial a la mitad del curso. Requisitos de aprobación Examen final. Cronograma estimado de clases: Unidad Temática Repaso de codificación HDL Diseño a nivel de transistor Diseño a nivel de compuertas Verificación de sistemas digitales Design for testability Diseño físico Duración en hs. cátedra 10 10 14 10 10 10 Trabajos Prácticos: Trabajo Práctico 1: Descripción HDL de un diseño. Se dará al alumno las especificaciones funcionales que un diseño debe cumplir y en función de tales especificaciones el alumno deberá diseñar a nivel RTL un circuito lógico que cumpla las mismas. Trabajo Práctico 2: Síntesis lógica. Utilizando las herramientas de síntesis disponible el alumno procederá a realizar la síntesis lógica del circuito del Trabajo Práctico 1. Deberá cumplir con las especificaciones temporales del circuito para lo cual deberá determinar las design contraints necesarias para realizar la síntesis. Trabajo Práctico 3: Diseño de un sistema digital completo. A partir de las especificaciones de un sistema de mediana complejidad el alumno realizará el diseño a nivel de arquitectura y micro arquitectura, el modelo HDL del sistema, la verificación lógica. Procederá a la síntesis del diseño y al agregado de la lógica necesaria para testing. Por último, procederá a la implementación física del diseño y realizará las simulaciones post place and route necesarias para verificar la correcta implementación del circuito. Bibliografía: Obligatoria L. Wang, Y. Chang, K. Cheng, “Electronic Design Automation: Synthesis, Verification and Test”. Elsevier 2009. Neil Weste, David Harris, "CMOS VLSI Design: A Circuits and System Perspective." 3rd Ed. Addison Wesley 2005. Michael Bushnell, Vishwani Agrawal, "Essentials of Electronic Testing for Digital, Memory and Mixed Signal VLSI Circuits", Kluwer Academic Publishers 2002. Himanshu Bhatnagar, "Advanced ASIC Chip Synthesis Using Synopsys Tools", 2nd Ed. Kluwer Academic Publishers 2002. Sutherland, B. Sproull. D. Harris, “Logical Effort: Designing Fast CMOS Circuits”. Morgan Kaufmann Publishers, 1999. D. Kinniment, “Synchronization and Arbitration in Digital Systems”, John Wiley and Sons, 2007. R. Baker, H. Li, D. Boyce, “CMOS Circuit Design, Layout, and Simulation”, IEEE Press John Wiley and Sons, 1998. J. Rabaey, A. Chandrakasan, and B. Nikolic , “Digital Integrated Circuits”, 2nd Ed, Prentice-Hall. Complementaria Gi-Joon Nam, Jason Cong, “Modern Circuit Placement: Best Practices and Results“. Springer 2007. Naveed Sherwani, "Algorithms for VLSI Physical Automation", 3rd Edition. Kluwer Academic Publishers 2002. Thucydides Xanthopoulos, "Clocking in Modern VLSI Systems", Springer 2009. Acosta, A. Barriga, M. Bellido, J. Juan, M. Valencia, “Temporización en Circuitos Digitales CMOS”, Marcombo 2000. Correlativas: Para cursar: Cursada: Electrónica Aplicada I Técnicas Digitales II Aprobada: Para rendir: Aprobada: Electrónica Aplicada I Técnicas Digitales II