Fluid logic: различия между версиями

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Перенёс страницу из англовики, начал перевод.
 
Продолжил перевод
Строка 3: Строка 3:


==Схемы, основанные на бесконечном течении==
==Схемы, основанные на бесконечном течении==
Такие схемы относительно просты и дешевы, но требуют бесконечный источник и бесконечный приемник жидкости для работы. Хотя некоторых потерь воды можно избежать, закрывающиеся конструкции, такие как [[floodgate|шлюзы]], всегда будут уничтожать воду, так что в любом случае придётся её как-то возмещать. В приведённых примерах используются поднимающиеся [[bridge|мосты]] и шлюзы, так как у них одинаковая задержка в 100 тиков при включении/отключении сигналом. Мосты работают как инвертированные входы, так как они блокируют проход, когда получают сигнал включения, в отличие от шлюзов, которые при сигнале включения открываются. Каналы в схемах нужны для отвода жидкости.
Такие схемы относительно просты и дешевы, но требуют бесконечный источник и бесконечный приемник жидкости для работы. Хотя некоторых потерь воды можно избежать, построив дополнительные схемы для сохранения воды, закрывающиеся конструкции, такие как [[floodgate|шлюзы]], всегда будут уничтожать воду, так что в любом случае придётся её как-то возмещать. В приведённых примерах используются поднимающиеся [[bridge|мосты]] и шлюзы, так как у них одинаковая задержка в 100 тиков при включении/отключении сигналом. Мосты работают как инвертированные входы, так как они блокируют проход, когда получают сигнал включения, в отличие от шлюзов, которые при сигнале включения открываются. Каналы в схемах нужны для отвода жидкости.


<div style="position:relative; float:none;">
<div style="position:relative; float:none;">
Строка 134: Строка 134:


==Advanced Complementary fluid logic Gates==
==Advanced Complementary fluid logic Gates==
This type of logic uses the different behaviour of raising bridges and floodgates when switched to minimise water consumption and remove the need of a drain. The use of (typically) two buildings for every input, one of which is always open while the other is closed, ensures that only very little water will flow during operation, and only when there is a state change. Thus, this variation of fluid logic is conceptually very similar to real CMOS circuits, which use a similar paradigm to limit power consumption.  
В этом типе логики используется несколько другой принцип, чтобы минимизировать потребление воды. Обычно на каждый вход приходится по две конструкции, так, что одна из них всегда будет открыта, а другая закрыта, поэтому во время работы будет течь очень мало воды, причём она будет течь только при смене состояния. Thus, this variation of fluid logic is conceptually very similar to real CMOS circuits, which use a similar paradigm to limit power consumption.  


===Basic Design===
===Базовые схемы===
Let's say we want to evaluate the logical expression ''f''. It can be a simple '''AND''' or '''OR''' gate, or anything more complicated. Follow the following scheme:
Предположим, нам надо вычислить логическое выражение ''f''. Это может быть просто '''AND''' или '''OR''', или что-то более сложное. Это делается по следующей схеме:


{| style="border-spacing: 0"
{| style="border-spacing: 0"
Строка 161: Строка 161:
|}
|}


Here, {{Tile|A|#FFF|#000}} is a set of floodgates and/or drawbridges that let water flow exactly when ''f'' evaluates to true, {{Tile|B|#FFF|#000}} is the same except that it lets water flow when ''f'' evaluates to false, {{Tile|^|#808|#000}} is a pressure plate set to activate on a sufficient water level. Notably, a drain is not needed.
Здесь {{Tile|A|#FFF|#000}} — это набор шлюзов или мостов, позволяющих воде течь только тогда, когда ''f'' истинно, {{Tile|B|#FFF|#000}} аналогично позволяет воде течь, когда ''f'' ложно, {{Tile|^|#808|#000}} — нажимная пластина, настроенная на нужный уровень. Обратите внимание, что в этой схеме не нужно отводить жидкость.


===Examples===
===Примеры===
In the following examples, {{Tile|X|#000|#888}} is a floodgate, and {{Tile|╬|#FFF|#000}} is a drawbridge. Red ones are connected to input A and green ones to input B.
В следующих примерах {{Tile|X|#000|#888}} — шлюз, {{Tile|╬|#FFF|#000}} — мост. Красные подключены к входу A, зелёные — к входу B.


====NOT====
====NOT====
Строка 189: Строка 189:
|}
|}


The pressure plate must activate on a water level of 5-7. When input turns off, the drawbridge lowers and the floodgate closes. Water can flow onto the pressure plate and fills the tile completely, turning output on.  
Нажимную пластину нужно настроить на уровень воды 5-7. Когда вход выключается, мост опускается, а шлюз закрывается. Вода может течь на нажимную пластину и заполняет тайл с ней полностью, включая выход.


When input turns on, the bridge raises and cuts off incoming water, while the floodgate opens and the water on the pressure plate's tile spreads over the now two open tiles. Water depth over the pressure plate lowers to 3-4, insufficient to keep the pressure plate active, which will turn off.  
Когда вход включается, мост поднимается и отрезает входящий поток воды, а шлюз открывается, и вода на нажимной пластине растекается на освободившийся тайл. Уровень воды на пластине становится 3-4, что недостаточно для активации пластины, и она отключается.


Siphoning the water off into a drain is unnecessary: the spread of water into opened tiles is sufficient to reliably produce a measurably different liquid level. This holds for all binary logic gates under this doctrine.
Откачка воды необязательна: растекания воды на два открытых тайла достаточно для создания измеримо разного уровня жидкости. Эта идея используется для всех элементов в этом типе логики.


====AND====
====AND====
Строка 259: Строка 259:
|}
|}


For the AND gate, the pressure plate should respond to 6-7 or 7-7 water. Since the OR gate is in effect a NOR gate with inverted output, the plate must respond to "low" water, 0-5 is recommended.
В элементе AND пластина должна реагировать на 6-7 или 7-7. Так как OR, по сути, является NOR'ом с инвертированным выходом, пластину в схеме нужно настроить на низкий уровень воды, рекомендуется 0-5.
 


====XOR====
====XOR====
This is not as straightforward as the previous ones. The ''true'' expression is the following: (A '''and not''' B) '''or''' ('''not''' A '''and''' B). The ''false'' expression: (A '''and''' B) '''or''' ('''not''' A '''and not''' B).
Эта схема немного отличается от предыдущих. Выражение для включения такое: (A '''and not''' B) '''or''' ('''not''' A '''and''' B). Выражение для выключения: (A '''and''' B) '''or''' ('''not''' A '''and not''' B).


So the gates look like the following:
Схема, таким образом, выглядит так:


{| style="border-spacing: 0"
{| style="border-spacing: 0"
Строка 300: Строка 299:
|}
|}


If both inputs have the same value (both on or off), the two closed floodgates or raised bridges will form an impassable wall, blocking inflow of water. The second row of floodgates "behind" the pressure plate ensures that when the gate is deactivated by an "on" signal raising bridges, there is still space opened for water to spread into and lower fluid level. Either combination of one "on" with one "off" input opens a direct path for water to enter. The pressure plate must be set to react to 7/7 fluid, anything less can result in false positives.
Если на обоих входах одно и то же значение (оба включены или выключены), то два закрытых шлюза или поднятых моста будут блокировать поток воды. Второй ряд шлюзов за нажимной плитой гарантирует, что у воды будет место для растекания, чтобы уменьшить уровень жидкости на пластине. Любая комбинация одного включающего и одного выключающего сигнала даёт воде путь до нажимной пластины. Пластина должна реагировать на 7-7, чтобы избежать ложных срабатываний.
 
===Плюсы и минусы===
Основное преимущество такой логики в том, что она использует намного меньше воды, чем  схемы на бесконечном течении. Одной реки достаточно для обеспечения даже очень сложных систем. Также из таких схем не надо отводить воду.


===Advantages And Disadvantages===
Недостатками такой схемы являются большая ресурсоёмкость и необходимость в более тщательном планировании, так как шлюзы часто загораживают проход. Такие системы сильно зависят от точного уровня жидкости и требуют, чтобы приходящая вода была на уровне 7/7. Могут понадобиться дополнительные сооружения (резервуары или системы помп) для поддержания уровня жидкости или увеличения её давления для ускорения работы схемы. Это особенно актуально, если вы решили использовать [[magma|магму/лаву]] в качестве жидкости.
The basic advantage of this design is that it uses much less water than infinite flow gates. A river is enough to supply even the more complex systems, as long as sufficient liquid depth is provided. A drain is not needed.


The disadvantage is that it requires more resources to construct, and more careful planning, since floodgates tend to block paths. The presented drain-less gates depend on precise fluid depth and require that all incoming logic fluid is at the full 7/7 depth. This may necessitate building a reservoir or pumping system to compensate for flow irregularities or overcome the sluggishness of otherwise pressureless fluids. That's especially true when you decide to use [[magma|magma/lava]] as fluid.
==Улучшение скорости работы==


==Speed Improvements==
Основные факторы, влияющие на скорость работы этих схем — задержки шлюзов и мостов и задержка выключения нажимных плит. Их невозможно устранить, хотя использование дверей и люков, где это возможно, может их уменьшить.
The main factors that affect the speed of these gates are the delays of floodgates and bridges, and the switch-off delay of pressure plates. These cannot be eliminated, although designs that seek to replace as many buildings as possible with doors and hatches may minimize delays.


Another factor is the flowing speed of the water. It can be improved. First, the water should flow in from a reservoir a few z-levels higher than the gates themselves (the more the better). This way, water will flow in much faster. In infinite-flow gates, you can then replace the pressure plates with up stairs, and make a 2x1 room one z-level above. On one tile is a down stair, and on the other is the pressure plate. Now the water will also flow out faster, or at least the pressure plate will switch off sooner. To minimize latency when deactivated, assuming sufficient inflow, the pressure plate can be set to trigger only on a full 7 units of water. This increases the water consumption a bit, but it still remains relatively low.
Другой фактор — скорость течения воды. Её можно улучшить. Можно подавать воду под давлением, если заставить воду течь из резервуара на несколько z-уровней выше. В схемах на бесконечном течении можно заменить пластину на ступеньку вверх, ведущую в комнату 2x1 на уровне выше. Один тайл там можно сделать ступенькой вниз, другой — нажимной плитой. Это заставит воду вытекать оттуда быстрее. Для уменьшения задержки при выключении можно настроить пластину на 7-7. Это чуть увеличит потребление воды, но оно всё ещё останется относительно малым.


==Edge Detector==
==Edge Detector==
In some situations, it is beneficial to have logic that triggers during a state ''transition'' rather than based on steady states - for example, turning a lever "on" could trigger one brief event while turning the lever "off" would trigger a different event (or possibly the same event).
Иногда полезно иметь схему, которая бы зависела не от уровня сигнала, а от его смены — например, включение рычага может активировать одно событие, а его выключение — другое.


{| style="border-spacing: 0"
{| style="border-spacing: 0"
Строка 401: Строка 401:
|}
|}


Both pressure plates should trigger on depth 2-6. Link the bottom pressure plate to machines you wish to activate on ''positive'' transitions (e.g. stepping onto a pressure plate, or pulling a lever) and the upper pressure plate to machines you wish to activate on ''negative'' transitions (e.g. stepping off of the pressure plate, or pulling the lever again), then link the trigger itself (a lever or pressure plate) to both floodgates and both raising bridges.
Обе нажимные пластины должны активироваться на 2-6. Привяжите нижнюю пластину к машинам, которые надо активировать при переходе от выключенного состояния входа к включенному, и верхнюю — к машинам, которые надо активировать при переходе от включенного состояния входа к выключенному, затем привяжите необходимое устройство ввода (рычаг или пластину) к обоим шлюзам и обоим мостам.


Each time the input trigger is toggled, the appropriate pressure plate will activate, remain active until the water finishes flowing, then deactivate after about 100 steps.
Каждый раз, когда вход переключается, соответствующая пластина будет активирована и останется активной, пока вода не прекратит течь, после чего отключится примерно через 100 тиков.


An edge detector can be realized very space efficient in advanced complementary fluid logic (as long as both pressure plates are linked to a single item). Input goes to floodgate and bridge, the pressure plates are working on 0-5 and 6-7, respectively.  
Эту же схему можно реализовать на водосберегающей логике (если обе нажимные пластины привязаны к одному и тому же объекту (?)). Вход привязывается к шлюзу и мосту, нажимные пластины работают на 0-5 и 6-7 соответственно.


{| style="border-spacing: 0"
{| style="border-spacing: 0"
Строка 432: Строка 432:
|}
|}


==Memory Cells==
==Ячейки памяти==


Fluid logic offers options for comparatively small [[Memory_(computing)|memory]] cells requiring very few mechanisms. They are usually quite primitive, so that more complicated memory manipulation requires additional machinery, but for simply "holding" a bit of information, they are hard to beat in compactness.  
На жидкостной логике можно реализовать относительно маленькие [[Memory_(computing)|ячейки памяти]], использующие совсем немного механизмов. Они обычно довольно примитивные, так что более продвинутые операции с памятью требуют дополнительных устройств, но если нужно просто хранить бит информации, то их трудно превзойти в компактности.


====S/R Latch====
====S/R Latch====
Строка 459: Строка 459:
|}
|}


Design by [[User:Hussell/SetResetLatch|Hussell]].
Автор: Hussel [http://dwarffortresswiki.org/index.php/User:Hussell/SetResetLatch]


A "set/reset" latch will activate when it receives a "set" signal - opening the door {{Tile|┼|#0F0}} , letting in water and triggering the pressure plate reacting to liquid of levels 5-7 - and stays active when the set signal turns off again. It will only deactivate when it receives an explicit "reset" signal - opening the door {{Tile|┼|#F00}}
SR-триггер (set/reset latch) активируется, когда получает set сигнал — открытие двери {{Tile|┼|#0F0}}, запускающее внутрь воду, активирующую нажимную пластину (она должна быть настроена на 5-7) — и остаётся активным, даже когда сигнал set исчезает. Он деактивируется только при получении сигнала reset — открытии двери {{Tile|┼|#F00}}, позволяющем воде вытечь с пластины и деактивировать её. После этого триггер остаётся деактивированным, пока снова не получит сигнал set.
behind the plate, allowing water to spread off the plate, lowering liquid depth enough to fall under the activation threshold. Further activity of the reset signal will, once again, not change the cell's state once it has been reset.  


As usual in real-world set/reset latches, the inputs should not both be "on" at the same time.
Как и в реальной жизни, в этой схеме не следует подавать одновременно сигналы set и reset.


====D-Latch====
====D-Latch====

Версия от 08:16, 5 августа 2019

Жидкостная логика — форма компьютеризации, использующая жидкость (обычно воду), управляемую различными методами, чтобы нажимать на нажимные пластины в определённое время и в определённом порядке, чтобы выполнять некоторую желаемую работу.

Схемы, основанные на бесконечном течении

Такие схемы относительно просты и дешевы, но требуют бесконечный источник и бесконечный приемник жидкости для работы. Хотя некоторых потерь воды можно избежать, построив дополнительные схемы для сохранения воды, закрывающиеся конструкции, такие как шлюзы, всегда будут уничтожать воду, так что в любом случае придётся её как-то возмещать. В приведённых примерах используются поднимающиеся мосты и шлюзы, так как у них одинаковая задержка в 100 тиков при включении/отключении сигналом. Мосты работают как инвертированные входы, так как они блокируют проход, когда получают сигнал включения, в отличие от шлюзов, которые при сигнале включения открываются. Каналы в схемах нужны для отвода жидкости.

AND

X
X
^
·

Элемент AND (И) создаётся просто расположением двух шлюзов подряд и подсоединением каждого к своему входу: XX. Когда оба шлюза получают сигнал включения, они открываются и позволяют воде пройти до нажимной пластины. Пластину необходимо настроить на реагирование на 4-7 (чтобы уменьшить число ложных срабатываний от того, что вода успела пройти, пока переключаются шлюзы, или от того, что вода не успела утечь, когда шлюзы закрылись).

  • Если использовать мосты вместо шлюзов, можно получить элемент NOR.
  • Выход можно инвертировать, настроив нажимную пластину на 0-3.
  • Можно использовать больше двух шлюзов, чтобы обрабатывать конъюнкцию более двух сигналов.
  • Можно поставить две пластины и настроить одну на 4-7, другую на 0-3, чтобы получить и сигнал, и его инверсию.
  • Можно, используя один шлюз и пластину на 0-3, сделать NOT.
  • NOT можно также сделать, использовав один мост и пластину на 4-7.

OR

X
^
·
X

Элемент OR (ИЛИ) создаётся расположением двух шлюзов параллельно и подключением каждого к своему входу: XX. Когда хотя бы один шлюз получает сигнал, он открывается и позволяет воде пройти и нажать на нажимную пластину. Пластину надо настроить на реагирование на 4-7 воду.

  • Используя мосты вместо шлюзов, можно получить NAND
  • Выход можно инвертировать, настроив пластины на 0-3.
  • Можно использовать больше двух шлюзов, чтобы обрабатывать дизъюнкцию более двух сигналов.
  • Можно поставить две пластины и настроить одну на 4-7, другую на 0-3, чтобы получить и сигнал, и его инверсию.

XOR

X
^
·
X

XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ) можно создать, поставив мост и шлюз вместе. Красные мост и шлюз X вместе подключены к одному и тому же входу, а зелёные X вместе подключены к другому; за ними стоит нажимная пластина на 4-7. Можно убедиться, что эта схема работает как XOR: если сигналов на вход не подаётся, то вода упирается в шлюзы; если поданы оба входных сигнала, то вода упирается в мосты; если включен ровно один сигнал, то вода проходит и нажимает на пластину.

  • Если поменять местами шлюз и мост, привязанные к одному сигналу, то можно получить XNOR.
  • Выход можно инвертировать, настроив пластины на 0-3.
  • Можно поставить две пластины и настроить одну на 4-7, другую на 0-3, чтобы получить и сигнал, и его инверсию.
  • Обработка нескольких сигналов, хоть и возможна, требует экспоненциального количества шлюзов и мостов; проще присоединить выход к другому XOR.

Комбинируя шлюзы, мосты и нажимные пластины, можно получать более сложные схемы. Располагая шлюзы (или мосты) подряд связывает их как AND, параллельное расположение связывает как OR. Так можно получать сколь угодно сложные схемы: например, элемент XOR — это не что иное, как комбинация AND и OR: A XOR B = (A AND NOT B) OR (NOT A AND B). Но иногда проще использовать большее количество более простых элементов, не объединяя их в одно целое.

Водосберегающие схемы

На текущий момент не существует полностью жидкостносберегающих схем, и в любой схеме, использующей шлюзы или их эквивалент, нужно бороться с уничтожением жидкости. Возможным путём борьбы с уничтожением жидкости может быть использование люков. Кроме уничтожения жидкостей шлюзами, проблемой является испарение.

CMOS Transmission Gate and Inverter Logic

Perhaps the closest to utilizing water as a stand-in for electricity, transmission gate logic can be accomplished by simply having an infinite water source in place of all +Vs, and infinite drainage for all grounds. Simple floodgates behave as standard transmission gates, while bridges are inverted gates. However, unlike the other forms of fluid logic, but as with real world electrical circuits, a dedicated inverter is required, which must be hooked up to +V and ground.

Данная статья помечена как не оконченная.
Вы можете прочитать эту статью на английском или помочь проекту её переводом.

Advanced Complementary fluid logic Gates

В этом типе логики используется несколько другой принцип, чтобы минимизировать потребление воды. Обычно на каждый вход приходится по две конструкции, так, что одна из них всегда будет открыта, а другая закрыта, поэтому во время работы будет течь очень мало воды, причём она будет течь только при смене состояния. Thus, this variation of fluid logic is conceptually very similar to real CMOS circuits, which use a similar paradigm to limit power consumption.

Базовые схемы

Предположим, нам надо вычислить логическое выражение f. Это может быть просто AND или OR, или что-то более сложное. Это делается по следующей схеме:

A
^
B

Здесь A — это набор шлюзов или мостов, позволяющих воде течь только тогда, когда f истинно, B аналогично позволяет воде течь, когда f ложно, ^ — нажимная пластина, настроенная на нужный уровень. Обратите внимание, что в этой схеме не нужно отводить жидкость.

Примеры

В следующих примерах X — шлюз, — мост. Красные подключены к входу A, зелёные — к входу B.

NOT

^
X

Нажимную пластину нужно настроить на уровень воды 5-7. Когда вход выключается, мост опускается, а шлюз закрывается. Вода может течь на нажимную пластину и заполняет тайл с ней полностью, включая выход.

Когда вход включается, мост поднимается и отрезает входящий поток воды, а шлюз открывается, и вода на нажимной пластине растекается на освободившийся тайл. Уровень воды на пластине становится 3-4, что недостаточно для активации пластины, и она отключается.

Откачка воды необязательна: растекания воды на два открытых тайла достаточно для создания измеримо разного уровня жидкости. Эта идея используется для всех элементов в этом типе логики.

AND

X
X
^

OR

^ X
X

В элементе AND пластина должна реагировать на 6-7 или 7-7. Так как OR, по сути, является NOR'ом с инвертированным выходом, пластину в схеме нужно настроить на низкий уровень воды, рекомендуется 0-5.

XOR

Эта схема немного отличается от предыдущих. Выражение для включения такое: (A and not B) or (not A and B). Выражение для выключения: (A and B) or (not A and not B).

Схема, таким образом, выглядит так:

X X
^
X X

Если на обоих входах одно и то же значение (оба включены или выключены), то два закрытых шлюза или поднятых моста будут блокировать поток воды. Второй ряд шлюзов за нажимной плитой гарантирует, что у воды будет место для растекания, чтобы уменьшить уровень жидкости на пластине. Любая комбинация одного включающего и одного выключающего сигнала даёт воде путь до нажимной пластины. Пластина должна реагировать на 7-7, чтобы избежать ложных срабатываний.

Плюсы и минусы

Основное преимущество такой логики в том, что она использует намного меньше воды, чем схемы на бесконечном течении. Одной реки достаточно для обеспечения даже очень сложных систем. Также из таких схем не надо отводить воду.

Недостатками такой схемы являются большая ресурсоёмкость и необходимость в более тщательном планировании, так как шлюзы часто загораживают проход. Такие системы сильно зависят от точного уровня жидкости и требуют, чтобы приходящая вода была на уровне 7/7. Могут понадобиться дополнительные сооружения (резервуары или системы помп) для поддержания уровня жидкости или увеличения её давления для ускорения работы схемы. Это особенно актуально, если вы решили использовать магму/лаву в качестве жидкости.

Улучшение скорости работы

Основные факторы, влияющие на скорость работы этих схем — задержки шлюзов и мостов и задержка выключения нажимных плит. Их невозможно устранить, хотя использование дверей и люков, где это возможно, может их уменьшить.

Другой фактор — скорость течения воды. Её можно улучшить. Можно подавать воду под давлением, если заставить воду течь из резервуара на несколько z-уровней выше. В схемах на бесконечном течении можно заменить пластину на ступеньку вверх, ведущую в комнату 2x1 на уровне выше. Один тайл там можно сделать ступенькой вниз, другой — нажимной плитой. Это заставит воду вытекать оттуда быстрее. Для уменьшения задержки при выключении можно настроить пластину на 7-7. Это чуть увеличит потребление воды, но оно всё ещё останется относительно малым.

Edge Detector

Иногда полезно иметь схему, которая бы зависела не от уровня сигнала, а от его смены — например, включение рычага может активировать одно событие, а его выключение — другое.

Z+0
X
X
Z=-1
^ #
^ #

Обе нажимные пластины должны активироваться на 2-6. Привяжите нижнюю пластину к машинам, которые надо активировать при переходе от выключенного состояния входа к включенному, и верхнюю — к машинам, которые надо активировать при переходе от включенного состояния входа к выключенному, затем привяжите необходимое устройство ввода (рычаг или пластину) к обоим шлюзам и обоим мостам.

Каждый раз, когда вход переключается, соответствующая пластина будет активирована и останется активной, пока вода не прекратит течь, после чего отключится примерно через 100 тиков.

Эту же схему можно реализовать на водосберегающей логике (если обе нажимные пластины привязаны к одному и тому же объекту (?)). Вход привязывается к шлюзу и мосту, нажимные пластины работают на 0-5 и 6-7 соответственно.

X ^ ^

Ячейки памяти

На жидкостной логике можно реализовать относительно маленькие ячейки памяти, использующие совсем немного механизмов. Они обычно довольно примитивные, так что более продвинутые операции с памятью требуют дополнительных устройств, но если нужно просто хранить бит информации, то их трудно превзойти в компактности.

S/R Latch

^

Автор: Hussel [1]

SR-триггер (set/reset latch) активируется, когда получает set сигнал — открытие двери , запускающее внутрь воду, активирующую нажимную пластину (она должна быть настроена на 5-7) — и остаётся активным, даже когда сигнал set исчезает. Он деактивируется только при получении сигнала reset — открытии двери , позволяющем воде вытечь с пластины и деактивировать её. После этого триггер остаётся деактивированным, пока снова не получит сигнал set.

Как и в реальной жизни, в этой схеме не следует подавать одновременно сигналы set и reset.

D-Latch

^

This cell "tests" the state of the "Data" (hence D ) input controlling the door and the pressure plate (set to trigger on 5-7 liquid) will take on that input's state when the "enable" input opens door : if the data input is on, water can pass from the source to the pressure plate and fills the cell. If the data input is off, water will spread from the plate to the door's tile and lower liquid depth over the plate.

This cell will turn "on" whenever both data and enable input are on, but will only turn "off" when the data input is off at the moment the enable input switches from off to on, making it a hybrid of a Latch (reacts to changes in data as long as enabled) and a flipflop (only reacts to data state the moment enable changes from off to on). While this is clearly a weakness of the design, it is very compact and uncomplicated, needing a mere four mechanisms to link the doors to the inputs.

Toggle Flipflop

^

This is a cell which changes state to the opposite whenever its "control" input switches from off to on. The door is activated by the control input, and both the door and the bridge are linked to the pressure plate (triggering on 5-7 water).

The operation is not immediately obvious, thus a breakdown, beginning with the cell in the "off" state:

Water on the plate is 4 or less, the bridge is lowered. When the "clock/control" turns on, the door opens and water rushes onto the plate. The plate triggers and sends "on" signals to both bridge and door. The signal to the door is ignored, since the door's already open. The bridge receives a "raise" signal and reacts to it with a 100 step delay. Neither the bridge raising nor the door closing (when the control turns off again) does anything to the pressure plate's state, it remains "on".

Water on the plate is 5 or more (usually 7), the bridge is raised. When the clock turns on, water spreads from the plate to the door's tile. Water level on the plate falls under the activation threshold. After the normal pressure plate reset delay of 99 steps, "off" signals are sent to the door and the bridge. The door will immediately close, the bridge will lower 100 steps later. The cell is "off" and will remain so until the clock turns on again.