Download Capítulo 3: Subsistemas Combinacionales
Document related concepts
no text concepts found
Transcript
Subsistemas Combinacionales Capítulo 3: Subsistemas Combinacionales • Introducción: Ideas y Conceptos de Diseño Combinacional • Orientado a velocidad • Orientado a minimizar el consumo • Orientado a minimizar el nº de puertas • Orientado a utilizar puertas del mismo tipo • El problema de las “carreras” (Races) en el diseño combinacional • Consecuencias: “Glitches” y su impacto en el consumo • Soluciones D.I.E. DCSE.3-1 Subsistemas Combinacionales Introducción: Ideas y conceptos de diseño combinacional •Diseñar un buen circuito combinacional no es simplificar la función lógica del circuito (Karnaugh, Quine-McKluskey, etc) •Se han de tener en cuenta, qué parámetros son críticos: •Velocidad •Consumo •Nº de puertas máximo •Tipos de puertas •Eliminación de “carreras” o de sus efectos •La tecnología de implementación condicionará los criterios y técnicas del diseñador: •Circuitos comerciales para placas de circuito impreso (PCB) •PLDs •FPGAs •ASICs •etc D.I.E. DCSE.3-2 Subsistemas Combinacionales 1.- Diseño orientado a velocidad •La velocidad de respuesta de un circuito combinacional viene determinada por el “camino” de mayor retardo, desde cualquiera de sus entradas a cualquiera de sus salidas •Ejemplo: Tnand=5ns Tor=6,5ns A Tinv=3,5ns B C S D •TRET, es estático, pues se obtiene sumando el retardo de las puertas del camino más largo (mayor profundidad de lógica) •Se ha de tener en cuenta que el retardo dinámico (cuando se producen cambios en las entradas) puede ser diferente: •Combinaciones de las señales de entrada que no se producen nunca •Retardos por cargas elevadas, etc D.I.E. DCSE.3-3 Subsistemas Combinacionales •Si C = “1” siempre, entonces el retardo dinámico sería: T’RET = TNAND + TNAND = 10ns •El comportamiento dinámico del circuito será: "1" S "1" D •Funcionalmente, S = D •No quiere decir que se pueda eliminar el circuito: •C puede ser una señal de control que seleccione 2 modos de funcionamiento diferentes, según el tipo de datos recibidos •No hay que perder de vista la aplicación, al determinar la velocidad del circuito D.I.E. DCSE.3-4 Subsistemas Combinacionales •Otro aspecto importante es la tecnología con la que se va a implementar el circuito: A) PCB con componentes estándar •Las puertas NAND de 2 entradas y los inversores suelen ser los más rápidos (Bipolar, CMOS, etc) •Los chips comerciales tienen varias puertas del mismo tipo integradas •Si transformamos el circuito anterior a puertas NAND A B C S D •Se necesitan 2 chips de NAND2 (2 entradas) •TRET(estático) = 5xTNAND = 25ns •Se ha empeorado el tiempo estático, pero: •Todas las puertas son del mismo tipo •Se necesitan 2 chips iguales, el circuito original necesita: 1 de inversores (sólo utiliza 1), 1 de OR (utiliza 1) y 1 de NAND D.I.E. DCSE.3-5 Subsistemas Combinacionales B) PLDs: PLA y PAL •Ambos tipos responden a la misma arquitectura •Plano AND: Donde se realizan los productos lógicos de la función (Programable en ambos) •Plano OR: Donde se realizan las sumas lógicas de la función (Programable sólo en PLA; no en PAL) •La expresión idónea de la función es, pues, en formato MINTERM o MAXTERM •En el ejemplo anterior: S=(A.B+C).C.D = A.C+B.C+A.D+B.D+C.D •Se ha de seleccionar una PLD combinacional •El retardo viene impuesto por el dispositivo •La simplificación por Karnaugh es una buena herramienta cuando se emplean estos dispositivos D.I.E. DCSE.3-6 Subsistemas Combinacionales C) FPGA •Nos restringimos a la familia XC4000 clásica de Xilinx. Dada su sencillez y cuya arquitectura ilustra muy bien los conceptos que se manejan en este tema Líneas de longitud simple Bloque Lógico Configurable (CLB) Bloque de Conmutación Programable Puntos de conexión Programables •La funcionalidad de los CLBs es configurable. Si suponemos que estuvieran formadas por 1 única puerta OR, podría realizar 5 funciones f=a+b, f=a, f=b, f=1 y f=0. D.I.E. DCSE.3-7 Subsistemas Combinacionales •El CLB de la familia XC4000 está formada por: •2 flipflops •2 generadores de funciones lógicas de 4 entradas cada uno •Un conjunto de multiplexores que permiten seleccionar las salidas de los generadores anteriores para completar la función lógica a realizar (4 señales de control) •1 memoria RAM (look-up table, “LUT”) por cada bloque generador, para configurar la función lógica a realizar •Los bloques de conmutación programable permiten establecer las comunicaciones entre las líneas de longitud simple. •Las líneas de longitud simple permiten comunicar un CLB con el/los vecino/s próximo/s •Los puntos de conexión programables permiten conectar físicamente los CLB a las líneas de longitud simple, a las de longitud doble y las líneas largas •Las líneas de longitud doble permiten conectar un CLB con otro, dejando uno en medio •Las líneas largas tienen bajo retardo y bajas pérdidas resistivas y se utilizan para rutar el reloj (por su bajo Skew), el reset o señales críticas D.I.E. DCSE.3-8 Subsistemas Combinacionales •Según el nivel de funcionalidad (complejidad expresada en nº de puertas lógicas) que sea posible configurar en un CLB se habla de: •Arquitectura de grano grueso (CLB grandes) •Arquitectura de grano fino (CLB pequeños) •La funcionalidad afecta a la velocidad resultante: •Alta funcionalidad Menor número de CLB usados Mayor retardo en el CLB Menor nº de interconexiones Menor retardo de interconexión •Baja funcionalidad Mayor número de CLB usados Menor retardo en el CLB Mayor nº de interconexiones Mayor retardo de interconexión •El nivel de funcionalidad también influye en el porcentaje de uso de los recursos de la FPGA (área): •Entre el 70 y el 90% del área total de la FPGA está ocupada por los recursos de interconexión •CLBs con funcionalidad elevada puede provocar el uso de muchas señales de E/S, con lo que aumentaría la ocupación de área de la FPGA, el retardo y el consumo. •Es necesario llegar a un compromiso entre todos estos aspectos D.I.E. DCSE.3-9 Subsistemas Combinacionales •A continuación se dan algunos consejos prácticos que permiten obtener buenos diseños en FPGAs en cuanto a velocidad, consumo y área de ocupación: •Conocer la arquitectura de la FPGA •Seguir las recomendaciones del fabricante en sus notas de aplicación •Utilizar una herramienta específica (del propio fabricante de la FPGA) de diseño, sobre todo en las fases finales (configuración de la FPGA) •Aprovechar al máximo los CLB, en todo caso que el número de puertas de todos ellos sea equivalente •Minimizar el número de interconexiones entre CLBs mediante líneas largas y/o de doble longitud •Los CLBs deben estar próximos entre sí •Los CLBs que reciben las señales a procesar del exterior del chip deben estar cerca de la periferia, así como los que entregan los resultados al exterior. •Aprovechar, si existen, bloques funcionales preconfigurados por el fabricante: descodificadores, multiplexores, multiplicadores, etc D.I.E. DCSE.3-10 Subsistemas Combinacionales D)ASIC (Circuitos de Aplicación Específica) •Nos restringiremos a ASIC con células estándar (“standard cells”), también conocido como diseño semicustom •Con la evolución de la tecnología CMOS (la de mayor difusión hoy en día para aplicaciones de varios cientos de miles de puertas y velocidades en el entorno de algunos cientos de megahercios), el retardo de las interconexiones es mayor que el de la lógica. •Las herramientas de diseño (como en las FPGAs) también condicionan la calidad, en cuanto a velocidad, de los diseños. •A continuación se dan algunas recomendaciones de diseño que, aunque son independientes de la tecnología, en algunos casos tienen un importancia especial en el diseño de ASICs: •Estudiar las características de las células de la librería del fabricante con el que se va a diseñar. •Utilizar, siempre que sea posible, por ser las más rapidas: •NAND2 •NAND3 •Inversores •MUX2A1, etc D.I.E. DCSE.3-11 Subsistemas Combinacionales •Nunca se deben hacer bucles de realimentación en lógica combinacional A B S C •No tiene sentido (aunque sólo sea por razones de coste) diseñar un ASIC para implementar únicamente circuitos combinacionales •Se ha de controlar la profundidad de la lógica •Hay que llegar a un compromiso entre tipos de puertas (con más o menos entradas) y carga admisible en la salida •La carga a la salida de una puerta y el Fanout son elementos a tener muy en cuenta para el cáculo de retardos •Ejemplo: •Si se quisiera implementar la función S que se viene estudiando desde el comienzo: S=(A.B+C).C.D •En su forma MINTERM: S= A.C+B.C+A.D+B.D+C.D D.I.E. DCSE.3-12 Subsistemas Combinacionales •El circuito equivalente para esta expresión será: A B C D S •A no se utiliza nunca; A está conectada a 2 puertas AND de 2 entradas •B no se utiliza nunca; B está conectada a 2 puertas AND de 2 entradas •C está conectada a 1 puerta AND; C a 2 puertas AND de 2 entradas •D no se utiliza nunca; D está conectada a 3 puertas AND de 2 entradas •El retardo máximo estático sería: TRET=TINV+TAND2+TNOR5 D.I.E. DCSE.3-13 Subsistemas Combinacionales •En primer lugar es difícil encontrar puertas de más de 4 entradas. Si se sustituye por: T’RET=TINV+TAND2+TNOR3+TAND2 •Para el cálculo del retardo dinámico se ha de tener en cuenta las cargas que tiene cada puerta •D se conecta a 3 puertas AND, luego: T’’RET(din)=TINV+TAND2+TNOR3+TAND2+∆TCARGAS,INV •Este término, ∆TCARGAS,INV, se suele expresar en el diseño de ASICs en ns/pF (tecnología CMOS) •Si todas las puertas AND son iguales y el inversor tiene un Fanout ≥ 3, entonces: ∆TCARGAS,INV=3x ∆TAND2(ns/pF)xFaninNAND2 •Todo lo que se ha dicho hasta el momento, puede aplicarse al caso de diseño de ASICs (GateArray), FPGAs y PCBs •Una fase de la metodología de diseño muy particular de los ASICs es la denominada “diseño físico (“Layout”). D.I.E. DCSE.3-14 Subsistemas Combinacionales •El diseñador debe colocar (“placement”) las células lo más próximas entre sí: •Disminuye la longitud de las líneas de interconexión y, por tanto, su impacto en el retardo. •Disminuye el área del chip •Disminuye el consumo, al disminuir el efecto resistivo de las interconexiones •Otro aspecto importante es que, en lo posible, todas las entradas (A,B,C y D) deberían ofrecer la misma carga hacia el exterior A B C D S •Suponiendo TNAND2 = TNAND3, el retardo estático será: TRET=2xTINV+2xTNAND2+TNOR2(=NAND2)=22ns •Este valor es ligeramente superior al que se calculó para el circuito original (20ns) D.I.E. DCSE.3-15 Subsistemas Combinacionales •El diseño sin embargo, cuenta con ventajas importantes: •Los retardos desde cualquiera de sus entradas a la salida están más igualados. La diferencia se reduce al retardo de un inversor •La probabilidad de que se produzcan señales indeseadas (“GLITCHES”) en la salida es menor El problema de las “carreras” (Races) en el diseño combinacional •Ejemplo: A B 1 C 3 S 2 D D.I.E. DCSE.3-16 Subsistemas Combinacionales •Teniendo en cuenta los retardos estáticos de cada puerta, a partir del circuito de la figura, se obtiene el diagrama de tiempos siguiente: 2ns 2ns A B C D 1 2 3 S t=0 "GLITCH" •Inicialmente: A=1; B=1; C=1; D=0 S= 0 (IDEAL) •t = 0 A=1; B=0; C=1; D=0 S= 0 (IDEAL) •t=8,5ns A=1; B=1; C=0; D=0 S= 0 (IDEAL) D.I.E. DCSE.3-17 Subsistemas Combinacionales •En la última propuesta de realización del circuito la diferencia está en el retardo de 1 inversor. •Se puede seguir produciendo el “glitch”, pero la probabilidad es menor, por estar los “caminos” más ecualizados en tiempo. •En resumen: 1.- Los “glitches” se producen por las carreras (“Races”) de las señales en los circuitos combinacionales 2.- Son difíciles de eliminar; pero, si se ecualizan los retardos, la probabilidad es menor 3.- Si los “glitches” son muy frecuentes se está aumentando considerablemente el consumo dinámico del circuito 4.- Es siempre recomendable utilizar puertas del mismo tipo que tenga a su salida una carga parecida 5.- Si no se cumple el punto anterior, el circuito se “desecualiza” por efecto de ∆TCARGAS (sobre todo en tecnología CMOS); a pesar de haber utilizado puertas del mismo tipo y de que las señales atraviesen la misma profundidad de lógica D.I.E. DCSE.3-18 Subsistemas Combinacionales Comentarios finales sobre el consumo en circuitos combinacionales •El consumo de un circuito combinacional depende de muchos factores. Unos han sido comentados ya; a continuación se hace un resumen de los más importantes: 1.- Tecnología: *BIPOLAR: Consumo estático elevado. Consumo dinámico elevado *BiCMOS: Consumo estático elevado, debido a los transistores bipolares; aunque menor que la tecnología bipolar. Consumo dinámico elevado *CMOS: Consumo estático prácticamente nulo. Consumo dinámico menor que BIPOLAR o BiCMOS 2.- Tipos de puertas: *Lógica negada (NAND, NOR, etc): Menor consumo que lógica sin negar (esto no se puede generalizar), debido a que tiene menor número de elementos activos *El consumo por puerta aumenta cuantas más entradas tiene una puerta *Las puertas con Fanout grande consumen más *Las puertas más rápidas consumen más D.I.E. DCSE.3-19 Subsistemas Combinacionales 3.- Interconexiones largas y/o mal dimensionadas (anchura de pistas) 4.- Interconexiones con ángulos y recodos 5.- Interconexiones con cambios abruptos de sección Las herramientas de diseño de ASICs tienen utilidades que permiten detectar y corregir estos fallos. •De todo lo anterior se puede deducir que hay una estrecha relación entre consumo y velocidad: •Puertas de 2 ó 3 entradas Mayor velocidad Mayor consumo •Evitar técnicas de simplificación que obligue a reutilizar puertas Funciones lógicas redundantes Disminuir el consumo •Lógica muy estructurada en niveles Menor número de puertas Disminuye la velocidad •Hay que llegar a un compromiso entre Nº de circuitos lógicos y Velocidad •Respetar la ecualización de los retardos para evitar “glitches”: •Se evitan errores de funcionamiento •Se disminuye el consumo al disminuir la actividad espurea de los circuitos D.I.E. DCSE.3-20