Actions

User

Difference between revisions of "Carsten Milkau/D-Latch"

From Unofficial Stationeers Wiki

< User:Carsten Milkau
(Using Select Unit and Logic Reader: if enabled then stored = data else stored = output (not the other way around))
m (Carsten Milkau moved page Carsten Milkau/D-Latch to User:Carsten Milkau/D-Latch: This was supposed to be a user page.)
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
== D-latch ==
+
A d-latch is a circuit that stores the last value seen at its "data" input while its "enable" input was on.
  
A d-latch is a circuit that stores the last value seen at its "data" input while its "enable" input was on.
+
== Definition ==
  
{|
+
{| class="wikitable"
|enabled||data||previous output||output
+
|+ value table
 +
|-
 +
!colspan="3"|'''inputs'''||'''outputs'''
 +
|-
 +
!enable||data||previous output||output
 
|-
 
|-
|0||x||y||y
+
|0||''x''||''y''||''y''
 
|-
 
|-
|1||x||y||x
+
|1||''x''||''y''||''x''
 
|}
 
|}
  
In theory, a single [[Kit_(Logic_Processor)#Logic_Select_Unit|select unit]] can do this (selector input = enable, input 1 = data, input 2 = output, output = output). In practice, this is not possible as the game does not allow it to have its own output as input. However, several constructions using two or more circuits are possible.
+
=== Connectors ===
 +
 
 +
* enable: if 1, store ''data'', else do nothing.
 +
* data: input
 +
* output: stored value
  
=== Connectors ===
+
== Relation to Multiplexer (Logic Select Unit) ==
  
* Enabled: if 1, store ''data'', else do nothing.
+
In theory, a single multiplexer ([[Kit_(Logic_Processor)#Logic_Select_Unit|Logic Select Unit]]) can do this (selector input = enable, input 1 = output, input 2 = data, output = output). In practice, this is not possible as the game does not allow it to have its own output as input. However, several constructions using two or more circuits are possible.
* Data: input
 
* Output: stored value
 
  
=== Using Select Unit and Logic Reader ===
+
== Implementation Using Logic Select Unit and Logic Reader ==
  
 
[[File:D-latch.png|thumb|D-latch using select unit and reader]]
 
[[File:D-latch.png|thumb|D-latch using select unit and reader]]
Line 26: Line 32:
  
 
<ol>
 
<ol>
<li>a select unit determines whether to store the last output or the "data" input using the "enabled" input. i.e.  
+
<li>a Logic Select Unit determines whether to store the last output or the "data" input using the "enable" input. i.e.  
<pre>  if enabled
+
<pre>  if enable
   then stored = data
+
   then store = data
   else stored = output</pre></li>
+
   else store = output</pre></li>
<li>a [[Kit_(Logic_I/O)#Logic_Reader|logic reader]] mirrors the stored value and feeds it back into the select unit so it can circulate (effectively being stored). This would be obsolete if the select unit could read its own output.
+
<li>a [[Kit_(Logic_I/O)#Logic_Reader|Logic Reader]] mirrors the value to be stored and feeds it back into the select unit so it can circulate (effectively being stored). This would be obsolete if the select unit could read its own output.
<pre>  output = stored</pre></li>
+
<pre>  output = store</pre></li>
 
</ol>
 
</ol>
 +
 +
 +
{| class="wikitable"
 +
|+ Circuit setup
 +
|-
 +
! Unit name || Unit type    || Connector / Setting || Source / Value
 +
|-
 +
| select 1  || Logic Select Unit  || select        || '''enable''' (input)
 +
|-
 +
|          ||              || 0 (input 1)    || reader 1
 +
|-
 +
|          ||              || 1 (input 2)    || '''data''' (input)
 +
|-
 +
| reader  1 || Logic Reader || in            || select 1
 +
|-
 +
|          ||              || var            || setting
 +
|-
 +
|          ||              || out            || '''output''' (output)
 +
|}

Latest revision as of 16:07, 18 July 2018

A d-latch is a circuit that stores the last value seen at its "data" input while its "enable" input was on.

Definition[edit]

value table
inputs outputs
enable data previous output output
0 x y y
1 x y x

Connectors[edit]

  • enable: if 1, store data, else do nothing.
  • data: input
  • output: stored value

Relation to Multiplexer (Logic Select Unit)[edit]

In theory, a single multiplexer (Logic Select Unit) can do this (selector input = enable, input 1 = output, input 2 = data, output = output). In practice, this is not possible as the game does not allow it to have its own output as input. However, several constructions using two or more circuits are possible.

Implementation Using Logic Select Unit and Logic Reader[edit]

D-latch using select unit and reader

This d-latch can store any value. It works in two steps:

  1. a Logic Select Unit determines whether to store the last output or the "data" input using the "enable" input. i.e.
      if enable
      then store = data
      else store = output
  2. a Logic Reader mirrors the value to be stored and feeds it back into the select unit so it can circulate (effectively being stored). This would be obsolete if the select unit could read its own output.
      output = store


Circuit setup
Unit name Unit type Connector / Setting Source / Value
select 1 Logic Select Unit select enable (input)
0 (input 1) reader 1
1 (input 2) data (input)
reader 1 Logic Reader in select 1
var setting
out output (output)