¿Cómo funciona esta calculadora de Minecraft?

Una vez fui un jugador casual de Minecraft (¡¿Qué? ¡¿Existen ?! ¡Sí!), Nunca un entusiasta, pero creo que puedo responder esta pregunta razonablemente bien. Una respuesta realmente completa es poco práctica aquí, pero trataré de explicarla lo mejor que pueda.

Componentes mayores

  • 2 decodificadores de BCD a binario
  • 3 decodificadores de binario a BCD
  • Sumadores y sustractores rápidos de BCD
  • Memoria
  • Pantalla de 25 dígitos
  • Sumadores, sustractores, multiplicadores y divisores

Algunos de estos son bastante complejos, pero se pueden hacer con operaciones lógicas simples para las que Minecraft tiene un soporte muy robusto, como se ve en la Figura 1. Para obtener más información sobre los circuitos de redstone de Minecraft, consulte http://www.minecraftwiki.net/wik… .

Figura 1: Puertas lógicas de Minecraft.

Organización general

No diseñé la calculadora, así que no tengo forma de saber exactamente cómo lo hizo el tipo, pero sospecho que se parece más o menos al diagrama de la Figura 2. No debería sorprender que el teclado controle la calculadora. Cuando el tipo pisa los botones, los operandos y la operación se almacenan en la memoria. Cuando ambos números están disponibles (señalados presionando el botón igual), las sumas, diferencias, productos, cocientes y residuos probablemente se calculan de una vez. Es responsabilidad de la lógica de control informar a la pantalla qué salida debe mostrar.

Figura 2: Descripción general de alto nivel de todo el sistema.

¿Binario? BCD?

¿Qué es todo esto sobre la conversión de binario a BCD? Binario es un sistema numérico de dos valores representado por secuencias de ceros y unos (01011110101). El decimal codificado en binario (BCD) es una convención para representar dígitos decimales en binario (0 = 0000, 1 = 0001, 2 = 0010, etc.). Una representación binaria de un número es más fácil de manejar con compuertas lógicas y más compacta, pero, a menos que desee leer binarios, necesita la representación BCD para mostrar cada dígito decimal en la pantalla.

Pantalla


Figura 3: una pantalla de siete segmentos.

Probablemente haya visto una pantalla de siete segmentos (Figura 3) en un reloj despertador digital, reloj, microondas, etc. Una pantalla de siete segmentos toma un dígito BCD como entrada e ilumina los segmentos apropiados (por ejemplo, BCD 0011 (3) se iluminaría segmentos superiores A, B, G, C y D). La pantalla en la calculadora de Minecraft es esencialmente una matriz de estos que consiste en bloques de pistón (Figura 4). Muy inteligente.

Figura 4: Un bloque de pistón (¡haga clic para verlo en acción!).

Aritmética con puertas lógicas

La suma de un solo dígito en binario es muy simple. Es tan simple que enumeraré todas las posibilidades para a + b aquí.

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10 (1 + 1 = 2 en decimal, tenga en cuenta que dado que los dígitos solo tienen dos valores aquí, debe llevar a la siguiente posición. El dígito inferior generalmente se conoce como la suma y el dígito superior como el llevar)

Los dígitos de suma y acarreo se pueden determinar con funciones booleanas.

  • sum = a XOR b (1 cuando exactamente una de sus entradas es 1)
  • carry = a AND b (1 cuando ambas entradas son 1)

Figura 5: Un sumador de un solo dígito sin llevar.


Figura 6: Un sumador de un solo dígito con un carry in.

Las cosas son un poco más complicadas si desea tener en cuenta el acarreo de un dígito inferior (Figura 6) pero luego puede encadenar algunas para agregar
números cada vez más grandes (Figura 7).

Figura 7: Una cadena de sumadores completos.

Desafortunadamente, este no es exactamente el sumador en la calculadora de Minecraft. Hizo sumadores que operan en representaciones de BCD para acelerar esas operaciones (elimina una conversión de binario a BCD y viceversa). La multiplicación y la división son aún más complicadas, así que no voy a entrar en ellas. Esperemos que esto te dé una idea general de cómo funciona.

No sé qué hacen los diversos bloques en Minecraft, o cómo ver esto en vivo, pero según el tipo en el video, ha construido versiones mecánicas de componentes aritméticos BCD.

Si desea aprender cómo funcionan las unidades de lógica aritmética, MIT pone a disposición algunas notas de curso muy agradables y fáciles de leer:

http://6004.csail.mit.edu/