Efectos Submicrón Las geometrías pequeñas causan diversos efectos que eran ignorados en el pasado Capacitancias de acoplamiento Integridad de señales Resistencia Inductancia Efectos DSM El diseño de cada transistor es más difícil
Heterogeneidad en el Chip Gran diversidad de elementos en el chip Procesadores Software Memoria Análogo Más transistores hacen cosas diferentes Heterogeneidad
Fuerte Presión del Mercado Ventana de diseño más pequeña Menor tolerancia a revisiones Mayor complejidad, mayor riesgo, mayor variedad, ventana más pequeña Time-to-money
Productividad del Diseño Dominio específico Comportamental RTL Puerta Transistor Puertas/semana Dataquest 8K – 12K 2K – 10K 1K – 2K 100 – 200 10 – 20
Flujo de Diseño (Gp:) Floorplan (Gp:) Síntesis Síntesis lógica Test (SCAN/JTAG) Reducción de potencia Síntesis datapath (Gp:) CWLM (Gp:) Lib (Gp:) DW (Gp:) Restricciones
(Gp:) Verificación formal (Gp:) Verificación puertas (Gp:) Testbench (Gp:) Verificación RTL (Gp:) ATPG
(Gp:) Código RTL (Gp:) Spec (Gp:) Selección de arquitectura (Gp:) RTL (Gp:) Chequeo código
(Gp:) Diseño físico (Gp:) Análisis estático del tiempo (Gp:) Netlist puertas (Gp:) Información posicionamiento (Gp:) GDSII
Flujo Simplificado HDL Síntesis RTL Netlist Optimización lógica Netlist Diseño físico Layout Diseño manual Generador de módulos Librería
Diseño Manual Nivel compuerta (100 compuertas / semana) Nivel transistor (10 – 20 compuertas / semana) Excesivamente caro (costo y tiempo) Usado para Analógico Biblioteca de compuertas Datapath en diseños de alto rendimiento
Generador de Módulos Generadores parametrizables de layout Generalmente usados en Memorias PLA Register files Ocasionalmente usados para Multiplicadores Datapath de propósito general Datapaths en diseños de alto rendimiento
Biblioteca Contiene por cada celda Información funcional Información temporal Información física (área) Características de potencia Modelos de simulación
HDL a Nivel RTL module foobar (q,clk,s,a,b); input clk, s, a, b; output q;req q; reg d; always @(a or b or s) // mux begin if(!s) d = a; else if(s) d = b; else d = ‘bx end //always
always @(clk) // latch begin if(clk == 1) q = d; else if(clk !== 0)) q = ‘bxb;
end //always End module
RTL Implícitamente estructural Los registros y su interconectividad están definidos El comportamiento clock-to-clock está definido Solo la lógica de control de transferencia es sintetizada Mejoras posibles Asignación automática de recursos
Sintesis RTL module foobar (q,clk,s,a,b); input clk, s, a, b; output q;req q; reg d; always @(a or b or s) // mux begin if(!s) d = a; else if(s) d = b; else d = ‘bx end //always (Gp:) HDL (Gp:) Netlist (Gp:) Sintesis RTL
Optimización Lógica Realiza transformaciones y optimizaciones Transformación grafos estructurados Transformaciones booleanas Mapeo en una librería física
Diseño Físico Transforma circuitos secuenciales en circuitos físicos Posiciona componentes Rutea Transforma en mascaras O FPGA Posiciona tablas look-up Rutea
Layout en Celdas Estándares
Gate Array
Optimización Lógica Combinatoria Entradas Red booleana inicial Caracterización temporal del módulo Tiempo de llegada de entradas Factores de carga Objetivos de optimización Tiempos requeridos Superficie Descripción librería a usar Salida Netlist con área mínima que cumple con los tiempos requeridos
Flujo de Diseño RTL Netlist (Gp:) Netlist
Biblioteca Optimización lógica Independiente tecnología Dependiente tecnología Opt. Lógica 2 niveles Opt. Lógica multinivel Biblioteca
Optimización 2 Niveles Eficiente y madura Fundamentos teóricos para la optimización lógica multinivel Usada directamente para PLA y PLD Usada como subrutina en optimización multinivel “Logic Minimization Algorithms for VLSi Synthesis”, Robert King Brayton, Alberto L. Sangiovanni-Vincentelli, Curtis T. McMullen, Gary D. Hachtel, Agosto 1984
Nueva Metodología Divide la optimización lógica en dos problemas Optimización independiente de la tecnología Determina la estructura lógica general Estima costos independientes de la tecnología Optimización dependiente de la tecnología Mapea en puertas de la biblioteca
Optimización Independiente de la Tecnología Minimiza las funciones lógicas (2 niveles) Busca subexpresiones comunes Sustituye una expresión dentro de la otra Factoriza funciones simples f=ac+ad+bc+bd+a!e (suma de productos) =(a+b)(c+d)+a!e (forma factorizada)
Técnicas de Optimización Independientes Two-level minimization Selective collapsing Algebraic decomposition Restructuring for timing Redundancy removal Transduction Global-flow Dependientes Tree covering Load buffering Rule-based mapping Signature analysis Inverter phase assignment Discrete sizing
Síntesis Comportamental HDL Síntesis RTL Netlist Optimización lógica Netlist Diseño físico Layout Librería Síntesis Comportamental HDL
Nivel Comportamental Una descripción comportamental es siempre funcional Relaciones temporales son expresadas como precedencias Una micro arquitectura completa es sintetizada a partir de una descripción comportamental
Elementos Claves Asignación automática de recursos Ordenamiento cronológico (scheduling)
Características Sintesis Comportamental Ordenamiento de operaciones (scheduling) Inferencia de memoria Asignación de recursos Uso de componentes pipeline Lazos de pipeline Generación automática de autómatas de estado finito para control
Beneficios Diseño Comportamental Abstracción Especifica funcionalidad en vez de implementación Simulación rápida Diseño a nivel sistema Mejor calidad de resultado Generación automática de FSM
Estado del Arte Síntesis RTL madura y usada para diseño de chips Síntesis comportamental menos madura Usada originalmente en diseño de DSP Creciente uso en video, networking, y diseño ASIC No ha crecido lo suficiente para desplazar síntesis RTL
Síntesis de Sistemas Diseños son heterogéneos y atraviesan los dominios del control y flujo de datos en forma arbitraria Diseños deben ser modelados en lenguajes estándares y gráficos con consistencia entre dominios y niveles de abstracción HW Diseño de altos niveles de abstracción Reuso debe ser considerado a altos niveles de abstracción Necesita mezclar C, C++, Verilog y VHDL SW Integrado antes en el proceso de diseño Evaluación rápida de partición HW/SW Reuso de código debe ser considerada
Página anterior | Volver al principio del trabajo | Página siguiente |