Introducción al CAD-EDA Evolución del diseño electrónico Modelado de sistemas Lenguajes de descripción de hardware Metodologías y flujos de diseño
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 70: Tecnologías más usadas: CI digitales: NMOS CI analógicos: bipolar CI componentes estándar diseñados e implementados en las fábricas. Diseño altamente manual, concentrado en niveles eléctricos (conexiones y caracterísicas a nivel de transistor) y topográficos (layouts) Herramienta CAD: SPICE. Memorias DRAM de 1 Kbit (1970). µp 4004 (PMOS) de 4 bits (1971). Finales de la década: memorias de 16 Kbits y procesadores de 16 bits (8086). Estos avances facilitan la aparición de nuevas plataformas Hw. Nacimiento de los miniordenadores; fin de los mainframes.
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 80: Tecnologías más usadas: CI digitales: CMOS CI analógicos y mixtos: bipolar A finales de la década: BiCMOS, facilita el desarrollo de circuitos mixtos A/D Desfase entre tecnología y diseño. La escasez de herramientas y metodologías de diseño dificultan y encarecen la fabricación de CI complejos. CI siguen desarrollando componentes estándar de mayor complejidad. Aparecen los CI que pueden ser diseñados por los ingenieros de la aplicación.
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 80: Cronológicamente: Full-custom. El diseñador acomete los niveles eléctricos y geométricos. Grandes volúmenes o/y proyectos con grandes restricciones (area, tamaño, consumo...) Matrices de puertas predifundidas (semi-custom/gate arrays). Estructura regular de dispositivos básicos (transistores) prefabricada, personalizable mediante un conexionado específico. Diseño a base de biblioteca de celdas. Celdas estándar precaracterizadas (semi-custom/estándar-cells). No existe estructura fija prefabricada. Se cuenta con bibliotecas de celdas y módulos precaracterizados y específicos para cada tecnología. Bastante libertad de diseño pero el desarrollo exige un proceso de fabricación completo. Lógica programable (FPGA, CPLD). Dispositivos totalmente fabricados y verificados, personalizables desde el exterior mediante técnicas de programación (RAM, fusibles...). Diseño basado en bibliotecas y mecanismos específicos de mapeado de funciones. La implementación tan solo requiere de una fase de programación que puede realizar el propio diseñador. ASIC (Application Specific Integrated Circuits)
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 80: Herramientas CAD: Nivel físico: Diseño eléctrico y geométrico de celdas y bloques básicos mediante técnicas de diseño a medida. Procesos de ubicación y conexionado (place & route) de celdas y bloques para generar la topografía del circuito a partir de su esquema de componentes y conexionado. Procesos de verificación eléctrica y geométrica presentes en ambos contextos. Nivel de puertas (estructural: componentes y conexiones): captura de esquemas, simulación funcional y de faltas, análisis de tiempos, generación de estructuras y vectores de test, etc. La herramientas CAD forman entornos integrados que comparten una base de datos y un interfaz único. Se empiezan a desarrollar métodos y herramientas para abordar el diseño a nivel funcional. En 1987 nace el VHDL cuya implantación definitiva tendrá lugar en la década siguiente
Nivel funcional Diseño a nivel arquitectural estructural Diseño a nivel físico Fabricación test y producción Iteraciones de corrección, retroanotación y validación Requisitos, restricciones y especificaciones funcionales Captura de diseño (esquemático) Simulaciones (pre/post-diseño físico): funcional-lógica, temporal, fallos Ubicación y conexionado (layout) Verificación y análisis Fabricación Test de prototipos Producción Biblioteca de celdas Estímulos de simulaciones + Vectores de test Flujo genérico de diseño ascendente de circuitos semicustom ASIC y FPGA Diseño físico distinto en ASIC y FPGA, Los FPGA no necesitan test estructural
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 90: Tecnologías utilizadas: CMOS 75% de mercado. Bipolares/ECL 15% BiCMOS crece hasta un 5% NMOS, TTL, AsGa 5% Nuevas tecnologías de encapsulado: módulos multichip (MCM multichip modules): Chips en forma de dado sobre diversos tipos de sustratos en los que previamente se habrán implementado las conexiones entre los distintos chips. Técnica que aumenta las prestaciones (consumo, velocidad) y reduce el tamaño de los sistemas electrónicos. Avances en tecnologías submicrónicas (procesos CMOS capaces de albergar millones de transistores en pocos mm 2 ). Posibilidad de incluir sistemas completos en un chip de silicio (SoC, systems on chip;sos systems on silicon). El cuello de botella está más en el diseño que en la tecnología. Los diseños complejos se basan en macro bloques funcionales (CPU, DSP, microcontrolador...) desarrollados a nivel Sw (ejem. Código VHDL sintetizable) u optimizados a nivel Hw (layout o topografías específicas). Aumento del diseño A/D (BiCMOS). Avances en diseños A/D/P. Los ASIC (custom y semicustom) pierden relevancia frente a las enormes prestaciones y complejidad de los dispositivos programables. Solo se utilizan en producciones elevadas o con requisitos muy restrictivos.
EVOLUCIÓN DEL DISEÑO ELECTRÓNICO. Años 90: Metodologías: Implantación progresiva de lenguajes de descripción de software (Verilog y VHDL) que junto con herramientas de simulación y síntesis promueven metodologías de diseño descendente (top-down). El esfuerzo del diseño se concentra en el nivel funcional arquitectural diseños independientes de la tecnología. Simulación mixta multinivel (funcional, RT y lógica). Síntesis: comportamental en fase de desarrollo. RT, lógica y física conocida y utilizada. Globalización del diseño electrónico ha permitido la evolución y especialización del CAD genérico en EDA que a su vez desarrolla la ingeniería concurrente: simultanear las diferentes fases del desarrollo de un diseño, de forma que los resultados de algunas de ellas puedan influir en pasos previos. Toda esta evolución ha sido posible gracias al enorme desarrollo de las plataformas Hw/Sw, que son elemento donde se ha cimentado la evolución del diseño electrónico.
MODELADO DE SISTEMAS El modelo es la representación de un sistema, en el que se representa la información con un grado de abstracción determinado: comportamiento, entrada/salida, estructura, etc. El modelado es útil en diversas fases del diseño de sistemas digitales: Se puede utilizar un modelo para especificar sin ambigüedad los requerimientos que ha de cumplir un circuito digital a diseñar. Para mostrar el funcionamiento de un diseño. Para verificar el correcto funcionamiento de un diseño mediante simulación. Utilización de procedimientos de síntesis automática de circuitos a través de modelos.
DOMINIOS Y NIVELES DE ABSTRACCIÓN EN EL MODELADO DE SISTEMAS DIAGRAMA DE GAJSKI-KUHN ESTRUCTURAL FUNCIONAL Procesador memoria Transferencia de registros Puertas lógicas transistores Algortimos Lenguaje de transferencia de registros Ecuaciones lógicas Ecuaciones diferenciales Trazado (Layout) Grupo de bloques GEOMÉTRICO Plano base Particiones físicas - + ABSTRACCIÓN
MODELADO CON HDL: NIVELES DE ABSTRACCIÓN Y ESTILOS DESCRIPTIVOS. Nivel de abstracción: grado de detalle de una descripción HDL respecto a la implementación física. PRECISIÓN TEMPORAL Relaciones causales sin planificación temporal Acciones agrupadas en distintos estados sincronizadas por un reloj Retrasos de componentes y conexiones Funcional o comportamental: Sistema: relación entre las entradas y salidas sin hacer referencia a la implementación. Descripciones al estilo de Sw de alto nivel, que reflejan la funcionalidad de los módulos (algorítmicas) Arquitectural o de transferencia de registros (RT). División en bloques funcionales, con planificación en el tiempo de las acciones a desarrollar (ciclos de reloj). Descripciones basadas en ecuaciones y expresiones que reflejan el flujo de datos y las dependencias entre datos y operaciones. Lógico o de puertas. Componentes del circuito expresados en términos de ecuaciones lógicas o puertas y elementos de una biblioteca. Descripciones estructurales: se especifican componentes, conexiones y puertos de E/S Abstractos y def. usuario Enteros Bits TIPOS DE DATOS
LENGUAJES DE DESCRIPCIÓN DE HARDWARE. Lenguajes de alto nivel con sintaxis similar a los lenguajes de alto nivel (C, ADA, PASCAL) con una semántica y sintaxis orientada al modelado y descripción de circuitos electrónicos. Los HDL permiten descripciones de circuitos con alto nivel de abstracción e independientes de la implementación tecnológica final, que puede ser detallada en distintas fases del diseño hasta llegar a la implementación física dependiente de la tecnología. En la actualidad se utilizan fundamentalmente VHDL, Verilog y SystemC. Otro HDL, el UDI/L se utiliza exclusivamente en Japón. VHDL (Very High Speed Integrated Circuit Hardware Description Language). Nace como proyecto del Departamento de Defensa (DoD) de EEUU (año 82) para disponer de una herramienta estándar, independiente para la especificación (modelado y/o descripción) y documentación de los sistemas electrónicos. El IEEE lo adopta y estandariza. Verilog: Sw de la firma Gateway y posteriormente de Cadence. Estándar industrial hasta que apareció el VHDL como estándar IEEE. En 1990 Cadence lo hace público y el IEEE lo estandariza en 1995. SystemC: es una extensión del C++, que utiliza unas bibliotecas de clase para describir y simular circuitos digitales. Se publicó en 1.999.
VENTAJAS DE USAR HDL Interpretable por personas: Modelado intercambiable de diseños, documentación de proyectos, mantenimiento de diseños etc. por máquinas: Simulación, síntesis y verificación. Disponibilidad pública: definidos, documentados y mantenidos por instituciones como IEEE. Descripciones con múltiples niveles de abstracción. Utilizar un solo lenguaje a lo largo de todo el proceso de diseño (modelado, simulación, verificación, etc.) reduce el número de herramientas y formatos a utilizar. Al ser lenguajes estandarizados proporcionan portabilidad de los modelos para simulaciones. No tanto en síntesis pues no está totalmente estandarizada por el IEEE. Reutilización del código en diseños sobre distintas tecnologías (CMOS, BiCMOS; etc) o implementaciones(asic, FPGA, CPLD,..)
METODOLOGÍAS Y FLUJOS DE DISEÑO Diseño Botton-up: En la descripción del diseño se empieza por los componentes (pueden pertenecer a una librería) más pequeños del sistema. Se agrupan estos componentes forman o bloques de mayor complejidad y así sucesivamente. Ineficiente para diseños complejos Dependiente de la tecnología Especicicación funcional Proceso manual Descomposición descendente Arquitectura Proceso automático Composición de mayor complejidad Composición ascendente Composición de mayor complejidad Bloques y módulos básicos Biblioteca de celdas
METODOLOGÍAS Y FLUJOS DE DISEÑO Diseño Top-down: Concepción del sistema a nivel funcional. Incluyendo la descripción y simulación de especificaciones. Se suceden sucesivas etapas de descomposición en susbsistemas y bloques hasta llegar a una descripción RT que sea sintetizable. Descripciones independientes de la tecnología: aumenta la reutilización del diseño.
METODOLOGÍAS Y FLUJOS DE DISEÑO Diseño: especificaciones funcionales en HDL Refinamiento gradual en HDL HDL: simulación y análisis Diseño: modelo HDL a nivel arquitectural-rt Síntesis RT-lógica Diseño: lista de componentes e interconexiones (Netlist) Diseño físico: ubicación y conexionado Layout (en función de la implementación)