¿Cuál es el razonamiento de las funciones aritméticas en el 74181?

5

No entiendo por qué 74181 funciona de la manera lo hace. Proporciona el conjunto completo de funciones lógicas (AND, NAND, OR, NOR, XOR, shift), pero sus funcionalidades aritméticas no son tan claras. Por ejemplo, no contiene A - B y A + B en el mismo modo.

¿Podría proporcionarnos algunos antecedentes históricos sobre cómo se diseñó?

    
pregunta Jichao

2 respuestas

6

Sé que esta es una pregunta antigua, pero recientemente hice una ingeniería inversa del 74181 y puedo explicar en detalle por qué tiene las funciones que tiene.

El 74181 es un chip ALU de 4 bits que proporciona 16 funciones lógicas y 16 funciones aritméticas en sus operandos A y B. Muchas de las funciones lógicas son lo que podría esperar (AND, OR, XOR), pero también hay Las inusuales como A OR NOT B. Las funciones aritméticas son aún más extrañas. Si bien tienes A PLUS B y A MINUS B, algunos como (A o B) PLUS (A y NO B) parecen bastante aleatorios.

En realidad, hay una razón para este conjunto de operaciones. Las funciones lógicas proporcionan las 16 funciones booleanas f (A, B). Todas las funciones aritméticas se reducen a A PLUS f (A, B) PLUS carry-in.

Retrocede para ver por qué hay 16 funciones. Si tiene una función booleana f (A, B) en las entradas de un bit, hay 4 filas en la tabla de verdad. Cada fila puede generar 0 o 1. Así que hay 2 ^ 4 = 16 funciones posibles. Extienda estos a 4 bits, y estas son exactamente las 16 funciones lógicas del 74181, desde 0 y 1 triviales hasta la lógica esperada como A AND B hasta operaciones creadas como NOT A AND B.

Las funciones aritméticas son simplemente estas 16 funciones agregadas a A con el acarreo agregado. Por ejemplo, si f (A, B) = B, obtienes un PLUS B PLUS. Si f (A, B) = NOT B, obtienes un PLUS NOT B B PLUS, que en la lógica del complemento a dos se convierte en un BOLSO MINUS B MINUS 1 PLUS.

Otras funciones aritméticas toman un poco más de análisis. Supongamos que f (A, B) = NO (A O B). Luego, cada bit de A PLUS f (A, B) siempre será 1, excepto en el caso de que A es 0 y B es 1. Por lo tanto, el resultado es A O NO B. Aunque esté haciendo una suma, el resultado es una función lógica Las otras funciones aritméticas extrañas se pueden explicar de manera similar.

Una cosa a tener en cuenta es que A PLUS A le da un turno a la izquierda, pero no hay manera de hacer un giro a la derecha en el 74181.

En su implementación, el 74181 tiene cuatro líneas de selección que seleccionan cuál de las 16 funciones f (A, B) se utilizan. La primera mitad del circuito del chip calcula las cuatro sumas de 1 bit de A con f (A, B). (Específicamente, está creando las señales Generar y Propagar que se usan para carry lookahead . Esto permite que el 74181 funcione. en paralelo, en lugar de utilizar un acarreo de ondulación.) La segunda mitad del circuito del chip genera todos los acarreos en paralelo y calcula la suma final.

Internamente, las funciones lógicas se implementan realizando una suma con los acarreos internos forzados por la línea M: A PLUS f (A, B) con todos los acarreos. Es sencillo ver que esto todavía genera 16 funciones lógicas únicas. Sin embargo, permuta el orden, por lo que si observa la hoja de datos no hay una conexión obvia entre las funciones lógicas y las funciones aritméticas.

Si desea comprender los aspectos internos del 74181, primero vea el 7483 sumador de 4 bits, que salió dos años antes Utiliza las mismas técnicas de cálculo de acarreo, pero es más fácil de entender, ya que proporciona una función, no 32. Se puede pensar en el 74181 como la generalización del 7483.

    
respondido por el Ken Shirriff
3

A minus B minus 1 se usa para restar, y el complemento de la bandera de acarreo se puede ver como una bandera de préstamo.

    
respondido por el starblue

Lea otras preguntas en las etiquetas