Introdução à construção de portas lógicas usando fios. Ele também se aprofunda e explica como fazer portões sem demora.
Introdução
Depois de atingir os níveis com sensores e fios, você enfrentará rapidamente desafios em que vários sensores precisam controlar o mesmo ímã/pistão/portal em uníssono. Algumas das configurações possíveis são triviais. Por exemplo, ativar um pistão quando qualquer sensor estiver ativo ou liberar um ímã quando dois sensores estiverem ativos.
Qualquer sensor ativará o pistão (à esquerda). Todos os sensores precisam estar ativos para liberar o ímã (à direita). No entanto, se quisermos ativar um pistão quando todos os sensores estiverem ativos ou liberar um ímã quando qualquer sensor estiver ativo, temos que fazer algo um pouco mais avançado.
Portões de pistão simples
Podemos usar pistões para fazer portas lógicas simples. Usar essa abordagem terá alguns contras, mas eles são bastante fáceis de entender, então vamos começar com eles.
Se quisermos ativar um pistão quando dois (ou mais) sensores estiverem ativos ao mesmo tempo, podemos usar um sensor extra e um pistão extra. Para simplificar a referência a eles, vamos chamar nossos sensores iniciais de sensores de entrada e nosso pistão inicial para nosso pistão de saída, enquanto chamamos nossos componentes extras de sensor de portão e pistão de portão, respectivamente.
Podemos facilmente ativar nosso pistão de portão quando qualquer sensor de entrada estiver ativo (da mesma forma que fizemos na Introdução). No entanto, ao usar o lado negativo dos sensores de entrada, ele será ativado se algum sensor de entrada não estiver ativo. Lembre-se, o que queremos verificar é se todos os sensores de entrada estão ativos, mas podemos reformular isso para verificar se nenhum sensor de entrada está “não ativo”. Quando for esse o caso, nosso pistão de portão não estará ativo. Usando nosso sensor de portão, podemos detectar o estado do pistão do portão e, em seguida, controlar o pistão de saída de acordo.
Usando um sensor e pistão extras, podemos criar um portão AND. As peças soltas são de cor branca. (A razão pela qual o pistão não está estendido é simplesmente porque não iniciamos a fábrica.)
De maneira muito semelhante, podemos fazer uma liberação magnética se pelo menos um sensor estiver ativo. Observe que aqui usamos o lado positivo de nossos sensores de entrada, enquanto ainda usamos o lado negativo de nosso sensor de portão.
Um sensor e pistão extras também podem se tornar um NOT-gate que anexamos ao portão OR trivial (o portão OR está apenas conectando vários fios do sensor positivo ao mesmo bloco).
Como você constrói o sensor do portão e o pistão do portão em relação um ao outro pode ser feito de muitas maneiras diferentes. Na imagem abaixo, você pode ver algumas das variantes possíveis.
Variantes do portão do pistão. As peças soltas são de cor branca.
Portões de encadeamento
Na seção anterior, construímos uma porta AND e uma porta NOT. Usando a saída positiva do sensor de porta na porta AND, obtemos uma porta NAND (NOT AND) e usando vários sensores de entrada (como fizemos) para a porta NOT, obtemos uma porta NOR (NOT OU). Na ciência da computação, você pode construir toda lógica booleana (verdadeiro/falso, um/zero, sinal alto/sinal baixo) usando apenas portas NAND ou apenas portas NOR. Isso significa que podemos construir qualquer lógica que quisermos com um design simples de porta de pistão. Podemos precisar de várias comportas de pistão, mas podemos fazê-lo.
Como exemplo, vamos tentar construir um portão XOR (OU EXCLUSIVO). Uma porta XOR deve emitir um sinal se qualquer entrada estiver ativa, mas não se ambas as entradas estiverem ativas. Para isso, podemos verificar se pelo menos uma entrada está ativa e se ambas não estão, ou seja, uma porta AND com entradas de uma porta OR e uma porta NAND. No entanto, como nosso projeto de porta AND usa entradas invertidas, o que realmente precisamos é que nossa porta AND obtenha suas entradas de uma porta NOR e uma porta AND.
Um portão XOR. A porta mais à esquerda é a porta NOR. A porta AND para a entrada está à direita. A do meio é a porta AND que usa as saídas das outras portas como suas entradas.
Atrasos do pistão
Os pistões levarão um único carrapato para extrair ou retrair seus braços. Um único tique não é muito tempo, mas às vezes o tempo é crucial para que uma fábrica opere de forma adequada e eficiente. Como vimos na seção anterior, portas simples podem ser encadeadas para formar uma lógica mais complexa. A lógica combinada de vários portões levará um número de tiques igual à cadeia de portões mais longa. Por exemplo, o portão XOR do exemplo anterior levará 2 tiques para atualizar.
Ele contém 3 portas básicas, mas 2 delas podem operar ao mesmo tempo. Não apenas o atraso aumentará com a complexidade, mas a saída final também poderá oscilar entre valores instáveis e os valores reais. Isso pode acontecer se houver subcadeias na lógica de comprimentos diferentes, pois isso significa que uma subcadeia muda antes da outra. Enquanto houver atraso em nossos portões, teremos que considerar saídas atrasadas e instáveis que podem ou não causar problemas em nossas fábricas. Nos computadores, as portas lógicas também têm pequenos atrasos, então um relógio é usado para compensar.
Os valores de saída são usados somente quando o clock pulsa, resultando em um comportamento instável sendo ignorado (como acontece entre pulsos de clock). Embora possamos criar algum tipo de relógio nós mesmos, temos acesso a algo que os computadores não têm: Portais.
Portões instantâneos
Usando portais, podemos criar portas lógicas com um atraso de 0 tick. Isso fará com que todas as preocupações da seção anterior sejam completamente irrelevantes. As portas de portal podem ser um pouco mais difíceis de entender do que as de pistão, então pode ser bom usar portas de pistão, para começar. O conceito central do portal gate é o fato de que os sensores podem ver através de um portal, detectando o que está do outro lado.
Os sensores visualizam o mundo através de uma série de portais. Observe a linha vermelha do sensor.
No entanto, nunca detectaremos nada do outro lado. Esse é o ponto. Se a linha do sensor atingir o outro lado, o lado negativo do sensor será ativado. Podemos impedir que a linha chegue ao outro lado simplesmente desligando o portal. Quando o portal está inativo, a linha não pode passar por ele e o sensor verá o próprio bloqueio do portal, fazendo com que o lado positivo o ative.
Uma porta AND é composta por um conjunto de portais. Uma vez que ambos os sensores sejam ativados, o portal será reativado e o sensor do portão não verá mais nada.
Encadeamento de portões instantâneos
Para criar uma lógica mais complexa com portões de portal, podemos apenas encadeá-los, como fizemos com os portões de pistão. A diferença, porém, é que a versão do portal não tem atraso algum.
Um portão XOR é feito de portais. Tem um atraso de 0 ticks.
No entanto, os portais também podem ser encadeados de outra maneira. Podemos dar a cada sensor de portão vários conjuntos de portais. Dessa forma, o lado negativo do sensor só será ativado se todos os pares de portais estiverem abertos.
Outra porta XOR. Este tem apenas duas partes, uma verificando se a primeira entrada é a única ativa, a outra verificando se a segunda entrada é a única ativa.
Na maioria das vezes, não precisamos usar vários conjuntos de portais, pois os sinais de entrada podem ir todos para o mesmo. No entanto, o uso de vários pares de portais pode facilitar a visualização do que está acontecendo, pois é mais fácil ver qual portal está impedindo a passagem da linha do sensor.
Uma versão mais compacta do XOR-gate.
Fábricas Compactas
Uma propriedade que os portões de portal têm é que eles são realmente flexíveis quando se trata de como e onde você os constrói. Eu pessoalmente gosto de limpar minhas fábricas uma vez que elas funcionam e embalar suas peças de forma bastante compacta (o quanto eu me incomodo em fazer isso varia de nível para nível). Ao construir um portal, a única coisa importante é que o sensor possa ver um ponto vazio quando todos os portais estiverem abertos.
4 portões de portal, cada um voltado para o mesmo local vazio.
Um portal com 3 pares de portais.
Não é preciso dizer que quanto mais estranho você os construir, mais difícil será acompanhar o que eles fazem.
Exemplo de quebra-cabeça real
Esta é uma solução para o nível de “Adder” no grupo “Digitalia”. Os 8 bits dos blocos vermelho e azul devem ser somados e emitidos com um bloco verde. Usando um monte de portas de portal, sou capaz de produzir uma nova saída de 8 bits a cada 24 tiques (3 tiques por bit).
Isso é tudo o que estamos compartilhando hoje para isso Fábrica de urdidura guia. Este guia foi originalmente criado e escrito por Swen V.. Caso não consigamos atualizar este guia, você pode encontrar a atualização mais recente seguindo este link.