Capítulo 1: Diseño Estructurado: Metodología General de Diseño Top-Down Herramientas Tecnologías de implementación Test de Circuitos y Sistemas DEA SED 1-1
Metodologías General de Diseño Análisis del Sistema y Partición (CODISEÑO) Planteamiento del Problema Estudio de Viabilidad Entidad Software (Herramientas) Entidad Hardware TOP-DOWN Especificación Funcional Verificación Funcional TEST Diseño Detallado.Arquitectural.Lógico Realización Física (Diseño Físico) Fabricación y Validación de Prototipos Estructuras Regulares (RAM, FIFO, MULT,etc) Dependencia con la Tecnología Se producen realimentaciones en todos los niveles Hay que minimizarlas: Experiencia, conocimiento de la tecnología, etc DEA SED 1-2
Análisis del Sistema y Partición (CODISEÑO) El análisis del problema debe permitir al diseñador decidir: Qué implementar en Sw? Qué implementar en Hw? Existen teorías, técnicas e, incluso, herramientas. Hoy las mejores herramientas son: Experiencia del diseñador Conocimiento de entornos de diseño Conocimiento de tecnologías disponibles Gran esfuerzo de investigación en Codiseño No se debe olvidar, incluso en este momento tan inicial de la metodología, las posibles tecnologías de implementación DEA SED 1-3
Especificación Funcional Planteamiento detallado de: La funcionalidad del sistema El plan de pruebas previsto en su desarrollo Las herramientas para su diseño La tecnología elegida Partición del sistema en bloques funcionales y descripción de la E/S Planificación y evaluación técnica Modelado mediante lenguajes: Alto nivel: C, C++, ADA, etc Específicos de descripción de hardware (HDLs): VHDL, Verilog, etc Primera VERIFICACIÓN FUNCIONAL (o de Alto Nivel), a partir: banco de pruebas (C,C++,VHDL,Verilog) estímulos (E/S) necesarios Herramientas de Verificación o Simulación funcional DEA SED 1-4
Verificación Funcional Responde, a grandes rasgos, al siguiente esquema: Esquemas: Netlist A) B) HDL: VHDL, Verilog C) C,C++,ADA Banco de Pruebas: *Estímulos SIMULADOR Librería: Modelos Funcionales componentes Resultados Textuales Gráficos: Formas de onda A),B),C)ÖAlternativas de Especificación Funcional (a veces una mezcla de las tres) Banco de Pruebas ÖRealizado por el diseñador Simulador ÖEspecífico o herramientas Sw genéricas Modelos Funcionales ÖComportamiento de los componentes ÖDependencia tecnológica DEA SED 1-5
Diseño Detallado: Arquitectural y Lógico 1.- Arquitectural Se particiona el diseño en grandes bloques. Divide y vencerás ÖDisminuye la Complejidad Se realizan pruebas funcionales parciales, con bancos de prueba para cada bloque Debe quedar clara y precisa la definición de la interfaz entre ellos: E/S, temporización, nombre de las señales, etc. Ejemplo: A Interf. de Bloque 1 Interf. de S B E/S E/S Bloque 2 clk CONTROL DEA SED 1-6
2.-Lógico Se trata de obtener un diseño basado en puertas (Puertas lógicas, flip-flops, memorias, mux, etc) de cada uno de los bloques de la figura anterior Existen herramientas automáticas que transforman una especificación a un diseño lógico: Orientadas a algún tipo de algoritmo concreto Dependientes de algún fabricante y/o tecnología Esquemas A) B) HDL: VHDL, Verilog Librería: Símbolos Modelos,etc Análisis + Simulador Síntesis + Simulador Librería: Puertas Flip-flops Memorias,etc Banco de Pruebas Netlist:retardos, nºpuertas, fanout,setup,hold,etc Verificación (simulación) Funcional Textuales Librería Resultados Gráficos: Formas de onda DEA SED 1-7
Ejemplo de A) Ö MaxPlus II + SIMULADOR Ejemplo de B) ÖSYNOPSYS (Síntesis+Simulador) Hay que comparar los resultados con los obtenidos en la verificación funcional Es una fase en la que el diseñador pasa mucho tiempo refinando el diseño: Minimizando nº de puertas Minimizando retardos Maximizando la frecuencia de funcionamiento Solucionando problemas de fan-out, setup y hold Es muy importante no olvidar la tecnología de implementación. Decisiones de diseño adecuadas para una puede que no lo sean para otra. De las tecnologías más usuales nos ocuparemos más adelante y se analizará cómo condicionan la fase de diseño DEA SED 1-8
Herramientas de Síntesis 1.- Estilos de descripción Se suelen distinguir 3: Funcional( Behavioural ), ya estudiado en VHDL. RTL( Register Transfer Level ): Se caracteriza por dejar explícita la transferencia de información entre registros (reloj, reset, sincronización, etc). El procesamiento combinacional se deja en un estilo más funcional. Estructural: Es una mera descripción de los componentes y sus interconexiones. Algo así como una captura de esquemas mediante un HDL. Existen herramientas de síntesis para pasar de: FuncionalÖRTL (Síntesis Funcional) RTL ÖNETLIST (Síntesis Lógica) Hay quien, todavía, sigue buscando la piedra filosofal Ö El Compilador de Silicio Funcional ÖChip DEA SED 1-9
2.- Síntesis Lógica Son herramientas usadas cuando la tecnología de implementación va a ser una FPGA, Gate-array o un ASIC (con células estándar) Restricciones: Ret.Máx, Máx.nº puertas,fanout,etc Descripción HDL (RTL) VHDL, Verilog Banco de pruebas Simulador (Synopsys) Sintetizador (Synopsys) HDL estructurado caracterizado en tiempos Inf.: nºtrans., nºpuertas,área estimada(células+in terconex.),tiempos Lib. Componentes (tecnología y fabricante) Diseño (realización) física Fabricación y validación de prototipos DEA SED 1-10 Dependencia tecnológica
El formato HDL (VHDL, Verilog, etc) estructurado y caracterizado en tiempos se distingue por: Sigue siendo un HDL Con un estilo estructural Con especificación de tiempos, retardos, fanout, etc Es una Netlist de células interconectadas de la librería de componentes de la tecnología y fabricante seleccionados Se debe simular con los mismos bancos de prueba que en las fases anteriores Se han de comparar los resultados obtenidos No es, todavía, el circuito final, pero empieza a parecerse Se puede ya abordar la fase de Diseño Físico y la posterior de fabricación y validación de prototipos? La respuesta es no!. Falta un aspecto muy importante ÖEL TEST DEA SED 1-11
TEST: Técnicas y Circuitería Asociada 1.- Introducción Testear un circuito no es comprobar la funcionalidad del mismo Se trata de detectar eventuales fallos procedentes del proceso de fabricación OBJETIVOÖComprobar que el 100% del circuito estará libre de estos fallos A este porcentaje se le denomina ÖCOBERTURA DE FALLOS: Nº de nodos (E/S) de todas las células que se es capaz de comprobar En el caso de ASICs el Nº de nodos ÖCentenares de millones SOLUCIÓN ÖAñadir Hw específico de test para alcanzar coberturas medias del 93% o superiores Se trata de hacer una simulación especial que no busca la comprobación funcional, sino la accesibilidad y controlabilidad de los nodos Estas técnicas tienen sentido en:pcbs, ASICs, Gatearrays DEA SED 1-12
En los procesos de fabricación de las tecnologías anteriores se pueden producir fallos pues: Hay que realizar el colocado ( placement ) de células o componentes Su interconexión ( routing ), su dimensión, separación, etc Todo lo anterior sobre un substrato (generalmente, silicio, en el caso de ASICs y Gate-arrays) que no está libre de impurezas y defectos Estas consideraciones no afectan a las FPGAs, como se verá más adelante. En ellas el diseñador, sólo, configura la función a implementar sobre bloques configurables y a programar las interconexiones de pistas que ya existen Los tipos de fallos y sus efectos en el diseño pueden ser muy variados Por ello, las técnicas que más se utilizan se limitan a detectar un único tipo de fallo genérico, denominado STUCK-AT DEA SED 1-13
2.- Modelo de Fallo STUCK-AT Es una aproximación al efecto producido, en un circuito, cuando alguna de las entradas del mismo están fijadas, permanentemente, a un valor: Stuck-at 1 Stuck-at 0 A B A Una impureza cortocircuita GND y la entrada B de la puerta. STUCK-AT 0 B Vcc Una impureza cortocircuita Vcc y la entrada B de la puerta. STUCK-AT 1 Si el fallo stuck-at 0 ocurriera en una puerta OR, o el stuck-at 1 en una AND, podría ser indetectable DEA SED 1-14
3.- Objetivos del test y técnicas Detección de piezas defectuosas en el proceso de fabricación Introducción del mínimo número de estímulos (vectores). El óptimo es el que está por debajo del máximo admitido por el fabricante Emplear técnicas de diseño para test es más rentable que optimizar vectores a partir de un diseño previoö Hay que diseñar intentando facilitar el test posterior!: Hay que conseguir que el diseño sea: Observable Controlable Para ello existen un conjunto de técnicas y recomendaciones de diseño: Accesibilidad de nodos desde el exterior Particionado y paralelización de los diseños Scan-Path BIST (Built-In Self Test) DEA SED 1-15
4.- Accesibilidad Realizacion inicial Accesibilidad directa a través de nuevos pines 0 1 mux Accesibilidad mediante multiplexación de pines funcionales DEA SED 1-16
5.- Particionado test = 0 CONTADOR DE 16 BITS 65536 ciclos para test test = 1 16 ciclos para test Contador 4 Contador 4 Contador 4 Contador 4 DEA SED 1-17
6.- Scan-Path clk Lógica Combinacional FF FF FF clk scan in test SFF Lógica Combinacional SFF SFF scan out DEA SED 1-18
7.- BIST IN Generador de Patrones y control mux BLOQUE DE LOGICA REGULAR OUT test Generador de Firma Firma I1 I2 I3 xor xor xor xor FF FF FF firma clk Registro de firma DEA SED 1-19
8.- Simulador de Fallos Diseño Vectores de test chip 1 chip 2 Simulador Simulador chip n Resultados Resultados Comparación de resultados Si los resultados coinciden: El fallo no puede detectarse O bien, no hay fallo Si no coinciden, se puede conocer en qué parte del circuito se ha producido el fallo DEA SED 1-20
Alternativas Tecnológicas 1.- Placa de Circuito Impreso (PCB) Existen multitud de tipos y de herramientas para su diseño. Su clasificación se puede hacer atendiendo a multitud de características: Bicapa/Multicapa Con componentes estándar y/o montaje superficial Taladros metalizados/sin metalizar Para diseño analógico, digital o mixto etc El diseñador es el responsable del cálculo de las dimensiones físicas, colocación de los componentes y su interconexión ( placement / routing ). Estas operaciones se pueden hacer de forma manual o automática. La experiencia aconseja: Colocado automático o casi Interconexión manual de las señales más críticas (reloj, reset, señales de control, etc) minimizando su longitud y evitando ángulos y recodos pronunciados. El resto de las señales se puede rutar automáticamente DEA SED 1-21
La experiencia, también, aconseja: Diseño Estructurado: En diseño mixto (analógico/digital) separar bien las zonas en la placa y tratar con cuidado las masas respectivasöruido En el caso de diseño digital: No perder de vista la tecnología utilizada (TTL, CMOS, etc), unas son más ruidosas que otras ; la frecuencia de funcionamiento, para dimensionar bien el ancho y separación de pistas; para evitar ruido por acoplamiento capacitivo e inductivo DEA SED 1-22
2.- Circuitos de Aplicación Específica (ASIC) Diseño Full-custom El diseñador no trabaja con puertas lógicas; sino a nivel tecnológico. Es decir, se construye sus propias células, caracterizándolas eléctricamente Las herramientas son diferentes de las estudiadas: Editores de Layout, simuladores (SPICE), comprobadores de reglas de diseño, etc Proceso poco productivo, requiriendo mucha experiencia Difícil y costoso de verificar Problemático adaptarse a cambios tecnológicos Precisa un estrecho contacto con el fabricante PERO...Si las características del circuito a diseñar (velocidad, consumo, disponibilidad de células estándar, etc) lo aconsejan, no hay más remedio Diseño Semi-custom (Células Estándar) Nos hemos referido a él, en apartados anteriores Mucha mayor productividad Muchas herramientas. Las de síntesis lógica están diseñadas para este tipo de circuitos Librerías de células y macros (Hw y Sw) DEA SED 1-23
Los fabricantes ofrecen una serie de células optimizadas y garantizadas Uso más cómodo y diseños más económicos Muchas están soportadas por herramientas para sintetizarlas, generarlas, simularlas y probarlas (test) Células Estándar (lógica) Macrocélulas (macros): RAM, ROM, Multiplicadores, etc Bloques funcionales: CPUs RISC, Microcontroladores, UARTS, etc Células analógicas: AOs, Convertidores A/D y D/A, etc VCC Entradas GND VCC Salidas GND SÍMBOLO Representación física (layout) En semi-custom el diseñador maneja los símbolos En full-custom debe diseñar el layout DEA SED 1-24
3.- Ejemplo de ASIC con Células Estándar RAM Multipli cador Células Estándar PAD de alineamiento PADs de E/S a los pines del encapsulado Con la tecnología actual, CMOS por ejemplo, se pueden conseguir chips de varios millones de puertas y una frecuencia de funcionamiento por encima de los 500MHz Las dimensiones del chip depende de la tecnología. Un circuito de 100mm 2 en CMOS de 0,5 micras de canal es GIGANTESCO y de una complejidad enorme DEA SED 1-25
4.- Gate Array pads ALU control Log. aleatoria Las puertas lógicas están presentes en el chip. El diseñador sólo especifica las funciones que ha de realizar el diseño Las herramientas de diseño físico (como se verá más adelante) únicamente proporcionan la interconexión entre células. Igual que en los ASICs es imprescindible la circuitería y técnicas de test DEA SED 1-26
5.- Lógica Programable Siglas más usuales: PLD: Programmable Logic Device PLA: Programmable Logic Array PAL: Programmable Array Logic GAL: Generic Array Logic CPLD: Complex PLD EPLD: Erasable PLD HCPLD: High Complexity PLD FPGA: Field Programmable Gate Array Una posible clasificación: PLDs PLDs hasta 600 puertas 20K PUERTAS PLDs más de 600 puertas UV-EPROM CPLD(PAL) FPGAs HCPLDS EEPROM FLASH BIPOLARES UV-EPROM EEPROM ANTIFUSE SRAM SRAM >1M PUERTAS FLASH 1M PUERTAS DEA SED 1-27
6.- Ejemplo de PLD genérica y FPGA PLD FPGA DEA SED 1-28
Diseño Físico 1.- PLDs Tecnología de antifusible (antifuse) PLA: Se programa el plano AND y OR PAL: Sólo el plano AND Con registros en las salidas o sin ellos La máscara de fundido de los antifusibles se especifica con lenguajes específicos No hay proceso tecnológico, no tiene sentido el test 2.- FPGAs Configurar la funcionalidad de los bloques lógicos Configurar interconexiones RAM: Reprogramables (ALTERA, XILINX) Antifusible: No reprogramable (ACTEL) No hay proceso tecnológico, no tiene sentido el test Algunas conexiones se pueden marcar como críticas (reloj y reset). Las herramientas las rutan por camínos óptimos Las herramientas de programación (configuración) utilizan un lenguaje propio. Se necesita un equipo Hw para la programación DEA SED 1-29
Fabricación y Validación de prototipos El proceso de fabricación en los ASICs y Gate-array escapa del control del diseñador Hay que suministrar al fabricante todos los datos del mismo: Tecnología y tamaño Encapsulado Descripción de la funcionalidad Vectores (estímulos) de verificación funcional y de test Son tecnologías muy caras en comparación con las FPGAs y/o PLDs Se han de verificar (test) los prototipos fabricados con las mismas simulaciones de fallos que se hicieron en el diseño, como ya se ha visto En la producción en series de ASICs y Gate arrays no se incluyen los pines de test que hay en los prototipos Los precios bajan en producción DEA SED 1-30
Comentarios Finales Con las tecnologías actuales (en el caso de FPGAs, ASICs, Gate arrays) no hay que perder de vista el retardo de las líneas de interconexión Para tecnología CMOS de anchura de canal inferior a 0,8 micras sucede que el retardo debido a una pista es superior al de una puerta. Este efecto es mucho más evidente a medida que se miniaturiza la tecnología (0,25 micras de ancho de canal). Un efecto llamativo que hemos comprobado: Un sumador serie ( Ripple-Carry ) de 12 bits es más rápido que un CLA, también de 12 bits, para algún tipo de FPGA. Ello es debido al retardo en las interconexiones, que son más numerosas en el sumador CLA. Retardo puerta Retardo interconexión 1.0 um 0.8 um lambda DEA SED 1-31