Lógica dinámica (electrónica digital) - Dynamic logic (digital electronics)

En el diseño de circuitos integrados , la lógica dinámica (o, a veces, la lógica sincronizada ) es una metodología de diseño en circuitos lógicos combinatorios , en particular los implementados en la tecnología MOS . Se distingue de la llamada lógica estática al explotar el almacenamiento temporal de información en capacitancias parásitas y de puerta. Fue popular en la década de 1970 y ha experimentado un resurgimiento reciente en el diseño de electrónica digital de alta velocidad , particularmente CPU de computadora . Los circuitos lógicos dinámicos suelen ser más rápidos que los estáticos y requieren menos superficie, pero son más difíciles de diseñar. La lógica dinámica tiene una tasa de alternancia más alta que la lógica estática, pero las cargas capacitivas que se alternan son más pequeñas, por lo que el consumo total de energía de la lógica dinámica puede ser mayor o menor dependiendo de varias compensaciones. Cuando se hace referencia a una determinada familia lógica , el adjetivo dinámica suele ser suficiente para distinguir la metodología de diseño, por ejemplo, dinámica CMOS o dinámica SOI diseño.

La lógica dinámica se distingue de la llamada lógica estática en que la lógica dinámica utiliza una señal de reloj en su implementación de circuitos lógicos combinacionales . El uso habitual de una señal de reloj es sincronizar transiciones en circuitos lógicos secuenciales . Para la mayoría de las implementaciones de lógica combinacional, ni siquiera se necesita una señal de reloj.

La terminología estático / dinámico utilizado para referirse a los circuitos combinatorios no debe confundirse con cómo se utilizan los mismos adjetivos para distinguir dispositivos de memoria, por ejemplo, RAM estática de la memoria RAM dinámica .

Terminología

En el contexto del diseño lógico, el término lógica dinámica se usa más comúnmente en comparación con la lógica sincronizada , ya que deja en claro la distinción entre este tipo de diseño y la lógica estática . Para confundir aún más el asunto, la lógica sincronizada a veces se usa como sinónimo de lógica secuencial . Este uso no es estándar y debe evitarse.

Lógica estática versus dinámica

La mayor diferencia entre la lógica estática y dinámica es que en la lógica dinámica, se usa una señal de reloj para evaluar la lógica combinacional . Sin embargo, para comprender verdaderamente la importancia de esta distinción, el lector necesitará algunos antecedentes sobre lógica estática.

En la mayoría de los tipos de diseño lógico, denominado lógica estática , existe en todo momento algún mecanismo para impulsar la salida, ya sea alta o baja. En muchos de los estilos lógicos populares, como TTL y CMOS tradicionales , este principio puede reformularse como una declaración de que siempre hay una ruta de CC de baja impedancia entre la salida y la tensión de alimentación o la tierra . Como nota al margen, existe, por supuesto, una excepción en esta definición en el caso de salidas de alta impedancia , como un búfer de tres estados ; sin embargo, incluso en estos casos, el circuito está diseñado para usarse dentro de un sistema más grande donde algún mecanismo impulsará la salida, y no califican como distintos de la lógica estática.

Por el contrario, en la lógica dinámica , no siempre hay un mecanismo que impulsa la salida hacia arriba o hacia abajo. En la versión más común de este concepto, la salida se eleva o baja durante distintas partes del ciclo del reloj. Durante los intervalos de tiempo en los que la salida no está activada, la capacitancia parásita hace que mantenga un nivel dentro de algún rango de tolerancia del nivel activado.

La lógica dinámica requiere una frecuencia de reloj mínima lo suficientemente rápida como para que el estado de salida de cada puerta dinámica se use o se actualice antes de que la carga en la capacitancia de salida se filtre lo suficiente como para causar que el estado digital de la salida cambie, durante la parte del ciclo de reloj que la salida no se está impulsando activamente.

La lógica estática no tiene una frecuencia mínima de reloj ; el reloj se puede pausar indefinidamente. Si bien puede parecer que no hacer nada durante largos períodos de tiempo no es particularmente útil, tiene tres ventajas:

  • poder pausar un sistema en cualquier momento facilita la depuración y las pruebas, lo que permite técnicas como el paso único .
  • ser capaz de ejecutar un sistema a velocidades de reloj extremadamente bajas permite que los dispositivos electrónicos de baja potencia funcionen durante más tiempo con una batería determinada.
  • un sistema completamente estático puede reanudarse instantáneamente exactamente donde lo dejó; una persona no tiene que esperar a que el sistema se inicie o se reanude.

La posibilidad de pausar un sistema en cualquier momento y durante cualquier duración también se puede utilizar para sincronizar la CPU con un evento asíncrono. (Si bien existen otros mecanismos para hacer esto, como interrupciones, bucles de sondeo, pines de entrada inactivos del procesador [como RDY en el 6502 ] o mecanismos de extensión del ciclo del bus del procesador, como entradas WAIT, que utilizan hardware para abrir el reloj a una señal estática. La CPU central es más simple, es más precisa temporalmente, no usa memoria de código de programa y casi no usa energía en la CPU mientras está esperando. En un diseño básico, para comenzar a esperar, la CPU escribiría en un registro para establecer un pestillo binario bit que estaría conectado con AND u OR con el reloj del procesador, deteniendo el procesador. Una señal de un dispositivo periférico restablecería este pestillo, reanudando el funcionamiento de la CPU. [La lógica del hardware debe abrir las entradas de control del pestillo según sea necesario para garantizar que una transición de salida del pestillo no hace que el nivel de la señal del reloj cambie instantáneamente y provoque un pulso de reloj, ya sea alto o bajo, que sea más corto de lo normal.])

En particular, aunque muchas CPU populares utilizan lógica dinámica, solo los núcleos estáticos ( CPU diseñadas con tecnología totalmente estática) se pueden utilizar en satélites espaciales debido a su mayor dureza de radiación .

La lógica dinámica, cuando se diseña correctamente, puede ser dos veces más rápida que la lógica estática. Utiliza solo los transistores N más rápidos , que mejoran las optimizaciones del tamaño de los transistores. La lógica estática es más lenta porque tiene el doble de carga capacitiva , umbrales más altos y usa transistores P lentos para la lógica. La lógica dinámica puede ser más difícil de trabajar, pero puede ser la única opción cuando se necesita una mayor velocidad de procesamiento. La mayoría de los dispositivos electrónicos que funcionan a más de 2 GHz en estos días requieren el uso de lógica dinámica, aunque algunos fabricantes como Intel han diseñado chips utilizando una lógica completamente estática para reducir el consumo de energía. Tenga en cuenta que la reducción del uso de energía no solo extiende el tiempo de funcionamiento con fuentes de energía limitadas, como baterías o paneles solares (como en las naves espaciales), sino que también reduce los requisitos de diseño térmico, reduciendo el tamaño de los disipadores de calor necesarios, ventiladores, etc., que en El giro reduce el peso y el costo del sistema.

En general, la lógica dinámica aumenta en gran medida la cantidad de transistores que se conmutan en un momento dado, lo que aumenta el consumo de energía sobre CMOS estático. Hay varias técnicas de ahorro de energía que se pueden implementar en un sistema basado en lógica dinámica. Además, cada riel puede transportar un número arbitrario de bits y no hay fallas que consuman energía. La sincronización del reloj con ahorro de energía y las técnicas asincrónicas son mucho más naturales en la lógica dinámica.

Ejemplo de lógica estática

Como ejemplo, considere la implementación lógica estática de una puerta CMOS NAND:

CMOS NAND.svg

Este circuito implementa la función lógica

Si A y B son altos, la salida se reducirá. Mientras que si A o B son bajos, la salida se elevará. En todo momento, la salida es baja o alta.

Ejemplo de lógica dinámica

Considere ahora una implementación lógica dinámica de la misma función lógica:

Dlnand.svg

El circuito lógico dinámico requiere dos fases. La primera fase, cuando el reloj está bajo, se denomina fase de configuración o fase de precarga y la segunda fase, cuando el reloj está alto, se denomina fase de evaluación . En la fase de configuración, la salida se eleva incondicionalmente (sin importar los valores de las entradas A y B ). El condensador , que representa la capacidad de carga de esta puerta, se carga. Debido a que el transistor en la parte inferior está apagado, es imposible que la salida sea baja durante esta fase.

Durante la fase de evaluación , el reloj está alto. Si A y B también son altos, la salida se reducirá. De lo contrario, la salida permanece alta (debido a la capacitancia de carga).

La lógica dinámica tiene algunos problemas potenciales que la lógica estática no tiene. Por ejemplo, si la velocidad del reloj es demasiado lenta, la salida decaerá demasiado rápido para ser útil. Además, la salida solo es válida para una parte de cada ciclo de reloj, por lo que el dispositivo conectado debe muestrearla de forma sincrónica durante el tiempo que es válida.

Además, cuando tanto A como B son altos, de modo que la salida es baja, el circuito bombeará una carga de condensador de Vdd a tierra para cada ciclo de reloj, primero cargando y luego descargando el condensador en cada ciclo de reloj. Esto hace que el circuito (con su salida conectada a una alta impedancia) sea menos eficiente que la versión estática (que teóricamente no debería permitir que fluya ninguna corriente excepto a través de la salida), y cuando las entradas A y B son constantes y ambas altas, el La puerta NAND dinámica usa energía en proporción a la frecuencia de reloj , siempre que funcione correctamente. La disipación de potencia se puede minimizar manteniendo baja la capacitancia de carga, pero esto a su vez reduce el tiempo de ciclo máximo, requiriendo una frecuencia de reloj mínima más alta; la frecuencia más alta aumenta el consumo de energía en la relación que se acaba de mencionar. Por lo tanto, es imposible reducir el consumo de energía inactivo (cuando ambas entradas son altas) por debajo de un cierto límite que se deriva de un equilibrio entre la velocidad del reloj y la capacidad de carga.

Una implementación popular es la lógica dominó .

Ver también

Referencias

Referencias generales

  • Sung-Mo Kang; Yusuf Leblebici (2003). Circuitos integrados digitales CMOS: análisis y diseño (3ª ed.). McGraw-Hill. ISBN 978-0-07-246053-7. Capítulo 9, "Circuitos lógicos dinámicos" (capítulo 7 de la 2ª edición)
  • R. Jacob Baker (2010). CMOS: Diseño, trazado y simulación de circuitos (3ª ed.). Wiley-IEEE. ISBN 978-0-470-88132-3. Capítulo 14, "Puertas lógicas dinámicas"
  • Andrew Marshall; Sreedhar Natarajan (2002). Diseño SOI: técnicas analógicas, de memoria y digitales . Saltador. ISBN 978-0-7923-7640-8. Capítulo 7, "Diseño dinámico de SOI"

enlaces externos