18 votos

Cómo averiguar si un número binario es igual a cero

Yo era la aplicación de la ALU a partir de las especificaciones dadas en mi Los Elementos de los sistemas de cálculo del libro. Estoy atascado en un problema. ¿Cómo puedo saber si un número dado es cero o no. Una cosa que puedo hacer es o todos los bits en el bus, y luego aplicar una puerta not en que. Pero tiene que haber alguna otra solución elegante.

16voto

JW. Puntos 145

Simplemente no hay manera alrededor de ORing todos los bits, como insatisfactorio que pueda parecer. Sin embargo, usted no está limitado a dos puertas de entrada en silicio. Usted puede construir un 4-entrada de la puerta NOR CMOS lógica poniendo 4 de la serie p-tipo de transistores en la subida de red y 4 en paralelo de n-transistores de tipo en la lista desplegable de la red. Que reduce la profundidad de su topología de árbol y, por tanto, su retardo de propagación. Usted sólo puede tomar esa teoría hasta ahora a pesar de que antes de que la acumulación de la caída de voltaje a través de la serie de transistores que hace que el pull-up no tirar-lo suficiente como para ser un "1"... cuatro es una buena regla del pulgar, si recuerdo correctamente.

13voto

Adam Lassek Puntos 181

La lógica de la función es la puerta NOR. Que es el más simple función de lógica que existe.

8voto

SQLMenace Puntos 68670

La solución típica con máquinas de 8 bits fue que la ALU se iba a producir un número de la bandera de los " bits que representan el resultado de la más reciente operación. Aunque sería posible tener cualquier número de bits de indicador alrededor (es decir, usted podría tener un 'Z' de la bandera para todos los registros en la CPU), es por lo general la cosa acaba calcula que usted es el más interesante, por lo que tiene un cierto grado de sentido hacerlo de esa manera.

Algunos de esos viejos Cpu automáticamente conjunto de bits de indicador para casi todos los datos se mueven, mientras que otros requieren que usted mantenga un determinado "comparar" la instrucción en el código si de repente necesitas saber si un determinado registro fue de cero. Y si usted proporciona un cheque de cero para cada registro o simplemente para lo que se acaba de calcular, realmente no hay manera más sencilla de comprobar "es esta palabra cero" de que O todos los bits juntos.

3voto

Mark Biek Puntos 41769

Algunas CPUs, MIPS, por ejemplo, tiene un registro que contiene siempre cero, haciendo pruebas de otro registro de cero muy rápido.

0voto

jfmessier Puntos 223

Yo soy un gran fan de or_reduce - la mayoría de las herramientas de síntesis de optimizar al máximo de la aplicación ya que saben exactamente lo que están haciendo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X