¿Cómo crear un circuito para representar x ^ 2 +2?

0

yx sería una variable de 3 bits

Intenté escribirlo como una tabla de verdad, pero luego tendría las entradas de 0 a 7 y de 0 a 51. ¿Hay una manera fácil de hacer esto?

    
pregunta Ahmad Aueda

4 respuestas

2

Dado que la entrada es una variable de 3 bits, el valor máximo será 7. Por lo tanto, x ^ 2 + 2 puede tener un valor máximo de 51. Por lo tanto, el resultado será de 6 bits.

Entonces, solo tiene que escribir la entrada (\ $ x_2x_1x_0 \ $) de 0 a 7 y los resultados correspondientes (\ $ y_5y_4y_3y_2y_1y_0 \ $) y luego obtener las expresiones para todos los bits de salida (\ $ y_5 \ to \ y_0) PS Eso es todo.

Déjame ayudarte con los dos primeros: $$ y_0 = x_0 $$ $$ y_1 = 1 $$

Del mismo modo, puedes encontrar las expresiones para los cuatro restantes. No es tan difícil.

    
respondido por el nidhin
1

Dado que la entrada tiene 3 bits de ancho, solo hay 8 estados posibles y 8 salidas posibles. El mayor valor de salida posible es 51, por lo que requiere 6 bits para expresarse directamente.

Una forma realmente simple de implementar esto en hardware es con una tabla de búsqueda. Solo necesita ser 8 ubicaciones de 6 bits cada una. Si lo hace con partes discretas, probablemente utilice una memoria de 256 bytes.

Por supuesto, esto también es trivial para hacer varias formas en el firmware de un microcontrolador. El método más apropiado depende de varias restricciones de las que no nos haya dicho nada.

    
respondido por el Olin Lathrop
1

La tabla de verdad se ve así:

000     000010
001     000011
010     000110
011     001011
100     010010
101     011011
110     100110
111     110011

Como Olin y nidhin han observado, los bits 0 y 1 del resultado son excepcionalmente simples de implementar. Para los 4 bits restantes del resultado, debe escribir las ecuaciones y simplificar cuando sea posible.

En una implementación real, esto podría hacerse con un demultiplexor bajo activo 1 de 8 y cuatro puertas NAND.

    
respondido por el Spehro Pefhany
0

Conecta los 3 bits a un decodificador 1 de 8. Asigne el valor que ya sabe que debe ser su respuesta a cada una de las 8 salidas. Por ejemplo, mentalmente, usted sabe que si la salida del decodificador 2 se activa, entonces sabe que la entrada fue 010, y la respuesta que desea obtener es (2x2) + 2 = 6, así que asigne mentalmente la salida 2 al valor 6. Repita esto para Todas las salidas. Otro ejemplo es la salida 3, sabemos que la entrada es 011, por lo que la respuesta nos gustaría (3x3) + 2 = 11. Asigne mentalmente el valor 11 a la salida 3. Ahora use una puerta OR para cada bit de salida final. La respuesta más grande que puede obtener es (7x7) + 2 = 51, que se puede representar como un número binario de 6 bits 110011. Por lo tanto, necesita 6 bits de salida. Usa 6 puertas OR para tus salidas finales. Mirando a (7x7) + 2 = 51, necesita generar un bit en cada una de las posiciones de peso 32, 16, 2 y 1. Entonces, conecte la salida de su decodificador 7 en cada una de las puertas OR que conformarán colectivamente la respuesta 51 = (32 + 16 + 2 + 1). Repita la misma conexión entre las salidas del decodificador y las puertas OR. Las salidas de las 6 puertas OR serán su respuesta de 6 bits. Para recapitular, use un solo decodificador de 3 a 8 y 6 compuertas OR.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Entrepreneur

Lea otras preguntas en las etiquetas