Diseño Lógico 2 Metodología de Diseño Julio Pérez Instituto de Ingeniería Eléctrica 2005
Metodología y herramientas de diseño "Puente" entre especificación inicial del diseño y el equipo funcionando Uso creciente de herramientas de CAD Permite atacar proyectos cada vez más complejos con una cantidad de horas-persona manejable
Niveles y Vistas Niveles de abstracción Vistas Arquitectural Lógico Circuito Vistas Comportamental Estructural Físico
Niveles de abstracción Arquitectural Operaciones y transferencia entre registros Lógico Funciones lógicas Circuito Funciones de transferencia, componentes eléctricos, layouts
Vistas o Dominios de descripción Comportamental Describe la función, no la implementación Especificación de un diseño nuevo Rapidez en tener un modelo simulable Estructural Interconexión de componentes Esquemáticos, netlist Físico Partición, colocación y enrutamiento (Place&Route)
Niveles y Vistas
Restricciones área costo retardos
Tipos de Herramientas Lenguajes de descripción textuales (verilog, vhdl, ahdl) gráficos Herramientas de verificación Simulaciones verificación formal comparando dos descripciones
Tipos de Herramientas Herramientas de síntesis Pasaje automático de un nivel al siguiente o de vista comportamental a vista estructural Más desarrollados en los niveles más bajos. P. ej. generación automática de la configuración de un PLD
Tipos de Herramientas Herramientas de optimización Minimización optimización de retardos Herramientas de implantación física Partición Place and Route Herramientas de verificación de reglas de diseño
Ciclo de diseño más usual para PLDs y FPGAs Ingreso del diseño "Compilación" Optimización Simulación Fitting Carga o Grabación Test
Máquina de estados Otros lenguajes Captura Tabla de verdad de descripcion esquemática Algebra de Boole hardware (VHDL) Bibliotecas COMPILACION MINIMIZACION Entradas MAPEO SIMULACION TECNOLOGICO (FITTING) Salida gráfica Reportes Archivo (JEDEC, POF. TTF) CARGA o GRABACION Y TEST
Ingreso del diseño Captura de esquemáticos Tabla de verdad Algebra de boole Diagrama de estados Otros Lenguajes: VHDL, Verilog, ABEL
Máquina de estados Otros lenguajes Captura Tabla de verdad de descripcion esquemática Algebra de Boole hardware (VHDL) Bibliotecas COMPILACION MINIMIZACION Entradas MAPEO SIMULACION TECNOLOGICO (FITTING) Salida gráfica Reportes Archivo (JEDEC, POF. TTF) CARGA o GRABACION Y TEST
"Compilación" Reducción: inconsistencias errores de sintaxis descripción "amigable" --> descripción interna inconsistencias errores de sintaxis
Optimización Quine-McCluskey, Presto, Espresso Opciones según objetivos de diseño Area vs. Velocidad Opciones según arquitectura destino Por pin (PAL) o como función de salida múltiple (compartiendo productos) Herramientas del fabricante o “plugins” para herramientas genéricas
Máquina de estados Otros lenguajes Captura Tabla de verdad de descripcion esquemática Algebra de Boole hardware (VHDL) Bibliotecas COMPILACION MINIMIZACION Entradas MAPEO SIMULACION TECNOLOGICO (FITTING) Salida gráfica Reportes Archivo (JEDEC, POF. TTF) CARGA o GRABACION Y TEST
Simulación y Verificación Validación del diseño Con diferentes modelos de abstracción ¿Por qué no anda si me simuló OK? Inicialización de registros Retardos especificación de la simulación: vectores de prueba dibujo de formas de onda de entrada y salida esperada lenguajes (VHDL)
Simulación y Verificación Testbench Entity probador is end probador; architecture test of probador is signals sx1, sx2, sy: std_logic begin -- instanciacion de dut -- ... test_seq: process x1 <= '0'; x2 <= '0'; wait for 10 ns; x1 <= '1'; ... end Testbench entidad sin I/O una instancia del “device under test” señales internas para manejar entradas / verificar salidas del DUT en general no sintetizable
Simulación y Verificación Inicialmente se examina el resultado en forma visual Es importante poder repetir las simulaciones en modo batch y solo reportar si algún test da mal. Comparando con corridas anteriores. Comando assert
Adaptación a un dispositivo (fitting) cabe un diseño dado en un chip dado? dado un diseño y criterios, lista ordenada de chips en los que cabe partición minimizar cantidad de chips minimizar cantidad de señales retardos Si cabe: “place and route”
Adaptación a un dispositivo (fitting) Limitaciones Cantidad de pines Área (cantidad de celdas lógicas) Conexionado interno Retardos Consumo
Máquina de estados Otros lenguajes Captura Tabla de verdad de descripcion esquemática Algebra de Boole hardware (VHDL) Bibliotecas COMPILACION MINIMIZACION Entradas MAPEO SIMULACION TECNOLOGICO (FITTING) Salida gráfica Reportes Archivo (JEDEC, POF. TTF) CARGA o GRABACION Y TEST
Grabación Resultado final: archivo a grabar Formatos estándar JEDEC formatos propietarios (pof, ttf, …) Variaciones según tecnología EPROM EEPROM RAM
Grabación Tecnologías no volátiles FUSIBLE ANTIFUSIBLE EPROM EEPROM Structured Asics (MPLDs, HardCopy)
Grabación Tecnologías Volátiles RAM estática Modos de inicialización Serie o paralelo Activo o pasivo
Prueba Controlabilidad Observabilidad Métodos de barrido (boundary scan, JTAG) Vectores de prueba Se incorporan al archivo JEDEC Chip testers
Prueba JTAG IEEE Std 1149.1- 1990 Especifica test de placas Alternativa a la “cama de clavos” Pines interfaz JTAG: Test Data Input Test Data Output Test Mode Select Test Clock Input Test Reset Input
Prueba Built In Self-Test (BIST) Cada módulo se auto-testea generando internamente una secuencia seudoaleatoria de vectores de test Se comanda externamente el inicio del test. Se obtiene como resultado un “hash” de la secuencia de resultados que externamente se puede comparar con el valor esperado
Herramientas "Cerradas" o "abiertas" Formatos de intercambio EDIF Electronic Design Interchange Format JEDEC netlists (listas de conexiones) varios formatos, inclusive VHDL
Herramientas disponibles en el IIE Altera MAX+PLUS II Quartus de Altera laboratorio Xilinx ISE Otros Synplify Mentor Graphics …
Ciclo de diseño en Quartus II
Referencias Gajski, Dutt, Wu, Lin; “High Level Synthesis”