Introducción a la construcción de Puertas Lógicas utilizando cables. También profundiza y explica cómo hacer puertas sin demora.
Introducción
Una vez que alcance los niveles con sensores y cables, se enfrentará rápidamente a desafíos en los que varios sensores deben controlar el mismo imán/pistón/portal al unísono. Algunas de las configuraciones posibles son triviales. Por ejemplo, activar un pistón cuando cualquier sensor está activo o liberar un imán cuando dos sensores están activos.
Cualquier sensor activará el pistón (a la izquierda). Todos los sensores deben estar activos para liberar el imán (a la derecha). Sin embargo, si queremos activar un pistón cuando todos los sensores están activos o liberar un imán cuando cualquier sensor está activo, tenemos que hacer algo un poco más avanzado.
Compuertas de pistón simple
Podemos usar pistones para hacer puertas lógicas simples. El uso de este enfoque tendrá algunas desventajas, pero son bastante fáciles de entender, por lo que comenzaremos con ellas.
Si queremos activar un pistón cuando dos (o más) sensores están activos al mismo tiempo, podemos usar un sensor extra y un pistón extra. Para simplificar la referencia a ellos, llamemos a nuestros sensores iniciales nuestros sensores de entrada y nuestro pistón inicial para nuestro pistón de salida, mientras que llamamos a nuestros componentes adicionales nuestro sensor de puerta y pistón de puerta respectivamente.
Podemos hacer que nuestro pistón de compuerta se active fácilmente cuando cualquier sensor de entrada esté activo (de la misma manera que lo hicimos en la Introducción). Sin embargo, al usar el lado negativo de los sensores de entrada, se activará si algún sensor de entrada no está activo. Recuerde, lo que queremos verificar es si todos los sensores de entrada están activos, pero podemos reformularlo como queriendo verificar si ningún sensor de entrada está "no activo". Cuando ese sea el caso, nuestro pistón de compuerta no estará activo. Al usar nuestro sensor de puerta, podemos detectar el estado del pistón de la puerta y luego controlar el pistón de salida en consecuencia.
Al usar un sensor y un pistón adicionales, podemos crear una puerta AND. Las piezas sueltas son de color blanco. (La razón por la que el pistón no está extendido es simplemente que no hemos comenzado la fábrica).
De forma muy similar, podemos hacer que se suelte un imán si al menos un sensor está activo. Tenga en cuenta que aquí usamos el lado positivo de nuestros sensores de entrada, mientras seguimos usando el lado negativo de nuestro sensor de puerta.
Un sensor y un pistón adicionales también pueden convertirse en una puerta NOT que adjuntamos a la puerta OR trivial (la puerta OR simplemente conecta varios cables de sensores positivos al mismo bloque).
La forma en que construye el sensor de puerta y el pistón de puerta en relación entre sí se puede hacer de muchas maneras diferentes. En la siguiente imagen puedes ver algunas de las posibles variantes.
Variantes de la puerta de pistón. Las piezas sueltas son de color blanco.
Encadenamiento de puertas
En la sección anterior, construimos una puerta AND y una puerta NOT. Al usar la salida positiva del sensor de compuerta en la compuerta AND, obtenemos una compuerta NAND (NOT AND) y al usar múltiples sensores de entrada (como hicimos nosotros) para la compuerta NOT, obtenemos una compuerta NOR (NOT O). En informática, es famoso que puede construir toda la lógica booleana (verdadero/falso, uno/cero, señal alta/señal baja) usando solo puertas NAND o usando solo puertas NOR. Eso significa que podemos construir cualquier lógica que queramos con un diseño simple de compuerta de pistón. Es posible que necesitemos múltiples compuertas de pistón, pero podemos hacerlo.
Como ejemplo, intentemos construir una puerta XOR (OR EXCLUSIVO). Una puerta XOR debe emitir una señal si alguna entrada está activa, pero no si ambas entradas están activas. Para hacer esto, podemos verificar si al menos una entrada está activa y si ambas no lo están, o, en otras palabras, una puerta AND con entradas de una puerta OR y una puerta NAND. Sin embargo, dado que nuestro diseño de compuerta AND utiliza entradas invertidas, lo que realmente necesitamos es que nuestra compuerta AND obtenga sus entradas de una compuerta NOR y una compuerta AND.
Una puerta XOR. La puerta más a la izquierda es la puerta NOR. La puerta AND para la entrada está a la derecha. El del medio es la puerta AND que usa las salidas de las otras puertas como sus entradas.
Retrasos de pistón
Los pistones necesitarán un solo tic para extraer o retraer sus brazos. Un solo tic no es mucho tiempo, pero a veces el tiempo es crucial para que una fábrica funcione de manera adecuada y eficiente. Como vimos en la sección anterior, las puertas simples se pueden encadenar para formar una lógica más compleja. La lógica combinada de múltiples puertas tomará un número de tics igual a la cadena más larga de puertas. Por ejemplo, la puerta XOR del ejemplo anterior tardará 2 tics en actualizarse.
Contiene 3 puertas básicas, pero 2 de ellas pueden operar al mismo tiempo. No solo aumentará la demora con la complejidad, sino que la salida final también puede oscilar entre valores inestables y los valores reales. Esto puede suceder si hay subcadenas en la lógica de diferentes longitudes, ya que eso significa que una subcadena cambia antes que la otra. Mientras haya un retraso en nuestras puertas, tendremos que considerar salidas retrasadas e inestables que pueden o no causar problemas en nuestras fábricas. En las computadoras, las puertas lógicas también tienen pequeños retrasos, por lo que se usa un reloj para compensar.
Los valores de salida solo se usan cuando el reloj pulsa, lo que da como resultado que se ignore un comportamiento inestable (como sucede entre pulsos de reloj). Si bien podríamos crear algún tipo de reloj nosotros mismos, tenemos acceso a algo que las computadoras no tienen: Portales.
Puertas instantáneas
Mediante el uso de portales, podemos crear puertas lógicas con un retraso de 0-tick. Esto hará que todas las preocupaciones de la sección anterior sean completamente irrelevantes. Las puertas del portal pueden ser un poco más difíciles de entender que las de pistón, por lo que, para empezar, podría ser bueno usar puertas de pistón. El concepto central de la puerta del portal es el hecho de que los sensores pueden ver a través de un portal, detectando lo que hay al otro lado.
Los sensores ven el mundo a través de una serie de portales. Tenga en cuenta la línea roja del sensor.
Sin embargo, nunca detectaremos nada en el otro lado. Ese es todo el punto. Si la línea del sensor llega al otro lado, el lado negativo del sensor se activará. Podemos evitar que la línea llegue al otro lado simplemente apagando el portal. Cuando el portal está inactivo, la línea no puede atravesarlo y, en cambio, el sensor verá que el portal se bloquea, haciendo que el lado positivo lo active.
Una puerta AND está formada por un conjunto de portales. Una vez que ambos sensores se activen, el portal se reactivará y el sensor de la puerta ya no verá nada.
Encadenamiento de puertas instantáneas
Para crear una lógica más compleja con puertas de portal, podemos simplemente encadenarlas, como hicimos con las puertas de pistón. La diferencia, sin embargo, es que la versión del portal no tiene retraso alguno.
Una puerta XOR está hecha de portales. Tiene un retraso de 0 ticks.
Sin embargo, las puertas del portal también se pueden encadenar de otra manera. Podemos dar a cada sensor de puerta múltiples conjuntos de portales. De esa forma, el lado negativo del sensor solo se activará si todos los pares de portales están abiertos.
Otra puerta XOR. Este solo tiene dos partes, una verifica si la primera entrada es la única activa, la otra verifica si la segunda entrada es la única activa.
La mayoría de las veces, en realidad no necesitamos usar varios conjuntos de portales, ya que todas las señales de entrada pueden ir al mismo. Sin embargo, el uso de múltiples pares de portales puede hacer que sea más fácil ver lo que sucede, ya que es más fácil ver qué portal impide que pase la línea del sensor.
Una versión más compacta de la puerta XOR.
Fábricas compactas
Una propiedad que tienen las puertas del portal es que son realmente flexibles cuando se trata de cómo y dónde las construyes. Personalmente, me gusta limpiar mis fábricas una vez que funcionan y empacar sus piezas de manera bastante compacta (cuánto me molesto en hacer esto varía de un nivel a otro). Al construir una puerta de portal, lo único importante es que el sensor pueda ver un lugar vacío cuando todos los portales están abiertos.
4 puertas de portal, cada una frente al mismo lugar vacío.
Una puerta de portal con 3 pares de portales.
No hace falta decir que cuanto más extraños los construyas, más difícil será hacer un seguimiento de lo que hacen.
Ejemplo de rompecabezas real
Esta es una solución al nivel de "Adder" en el grupo "Digital". Los 8 bits de los bloques rojo y azul deben sumarse y generarse con un bloque verde. Mediante el uso de un montón de puertas de portal, puedo producir una nueva salida de 8 bits cada 24 tics (3 tics por bit).
Eso es todo lo que estamos compartiendo hoy para este Fábrica de deformación guía. Esta guía fue originalmente creada y escrita por swen v. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este liga.