# Water Pump Controller with configurable timeout
### Implementation in Wokwi to be produced as an ASIC with Tiny Tapeout 5
## What is this?
The controller was developed with a typical water system of a camper van in mind but
can also be used in other places where devices should not run for too long.
A typical camper van has a tiny bathroom and a kitchen which have water supply.
The sinks are oftentimes equipped with taps that have integrated switches and there
is a toilet which has a pushbutton for flushing. It might also have a shower in the
bathroom and/or one for taking a shower outside.
All switches are basically wired in parallel and turn on a single pump in the water
tank. There is also a main switch that cuts power to the whole pumping system.
This sounds like a reasonable and simple circuit that should not cause any trouble.
However, the manuals usually mention that the main switch should be turned off when no
water is needed to make sure that the pump is not running too long. This switch can be
hard to reach and it is therefore left on most of the time. Usually that does not cause
any problems (since the switches in the taps will be off when no water is requested). But
I know of cases where the pump was indeed running when no water was taken. It is then unclear
how long the pump was running. Luckily the pumps do not always break from that. But
having it running unintentionally is still not ideal and consumes a lot of power which
might be limited in many situations.
Another problem I've seen is that the switches in the taps might not be rated for the
current that the installed pump can draw. This can result in the early failure of tap's
switches and the pump can no longer be activated from that tap.
This controller can help to address these problems. It reads the states of the
switches (using low current to avoid overloading them) and turns on the pump
accordingly.
The controller should also turn off the pump if the switches are stuck for too long.
I believe that something in the range of two minutes is a reasonable time in the targeted
application. This would make sure that the pump is not running for too long while not being
in the way too much. Usually filling a pot for cooking or taking a shower (if one ever makes
use of that feature) does not require uninterrupted water supply for more than that. These
values are used as defaults when the circuit is reset, but can also be adjusted using
extra inputs.
There will also be support for a buzzer that can warn a bit before the water is turned
off and one could reset the timer by just shortly iterrupting the water flow.
The buzzer sound will change when the warning time is over and the pump was turned off.
The sequence used after the timeout can be used to tell which input is still active to
help with finding a tap that might not be fully closed.
The chip has more outputs than needed. Additional outputs were configured to drive LEDs
that can be used to indicate the state of the controller.
The controller has an input for a water pressure switch. Some systems do not use switches
in the taps but try to maintain a constant high pressure in the pipes, similar to what a
home installation would provide. One could also use such a switch as an additional way to
prevent that the pump keeps running when all taps are closed.
The timeout feature can be disabled.
## How can it be used?
### Inputs
#### Taps with switches
This is the main use case, basically as described above. The controller has six separate
inputs for switches. Having separate inputs can be used to help with finding problems with
stuck switches but is also helpful to keep certain circuits separated. In common systems
for example the toilet flush button activates the pump and also a solenoid valve. The valve
is releasing the water similar to what the classical part of the taps would do for the sinks.
Having a dedicated input at the controller can help with simplifying parts of the wiring.
#### Pressure switch
A pressure switch can be used to keep a nearly constant pressure in the pipe system,
comparable to what one usually has at home.
One can see this as "turn on the pump if the pressure is too low" or "turn off the pump
when the pressure is too high". It would even be possible to use two switches, where the
high pressure switch is there only as a fallback and not meant to be triggered. Such an
additional switch is oftentimes used in systems for heating water.
This controller has a dedicated input for a high pressure switch to turn off the pump when
all taps are closed but a tap switch might still be active.
A low pressure switch for keeping the pressure in the system at a certain level could be
connected at a tap switch input and would (depending on the timeout enable input) benefit
from the timeout logic as well. If the low pressure signal is active for too long, it
either means that water is constantly taken from a tap or there is a leak. If water is
intentionally taken, the same considerations as for the tap switches regarding the duration
apply.
#### Timeout enable
If the timeout feature is not useful, but the logic is still considered helpful, the timeout
can be disabled. Although the chip should not get into strange states when this pin is toggled
during use, the intended and tested use case is that this signal is fixed for a given system.
#### Duration configuration
The I/O pins are used as additional inputs for configuring the warning and timeout periods.
The warning and timeout periods are stored in a register of five bits each. For the default time
scaling, the most significant bit is for 128s, the LSB is for 8s. With that the periods can be
selcted from 8s to 248s (approx 4 minutes) in steps of 8s. It is also possible to configure
a scaling factor for the warning and timeout periods, independant from changing the clock signal.
Changin the clock would also affect the pitch and sequence of the buzzer signal.
Five of the I/O pins are used as data pins fed into these registers. The other three pins are used
to store the data to the respective register. These are input/output pins. After a reset, these pins
are read and stored in a flip-flop each. If an input is high the related register is read from the
external configuration, otherwise the default value is kept. If the configuration should be read
from the external configuration, the I/O pins are set as a high output one by one bringing the data
inputs to a high state as configured for each value. The configurations should be combined using
diodes (and maybe pull-down resistors). In the drawing resistors are used instead (diodes not yet
available in Wokwi).
If the timeout period is less or equal to the warning period, the warning is activated at the same
time as the timeout, effectively skipping the warning period.
The time scaling configuration divides the clock that is used for the warning and timeout comparison
by the configured value plus one. The configuration value defaults to three so the clock is divided
by four. The configured value can be in the range of 0 to 31, resulting in scaling factors of 1 to 32.
This allows timeout values in the range of 2s to 62s in the fastest and high resolution setting and
64s to 1984s (that's more than half an hour at roughly one minute resolution).
#### Clock
The chip is designed to run from a 32768Hz clock. That's a reasonably low frequency and easily
available as a crystal. Since the timing is not critical, any other clock in that range can
be used as well.
The clock could also be in a different range. That can be helpful, if the circuit for setting the
times should be avoided or if the available range is not suitable for some other use case. However,
this would also affect the pitch and durations of the buzzer sounds that are derived from the same
clock with fixed ratios.
#### Reset
The circuit is meant to be reset during power up. However, if all tap switches are off initially,
the circuit (except for the time period configuration registers) is reset as well. So in case any
switch is on when power is applied and external reset is not used, a wrong warning or timeout might
occur, including an already timed-out state.
### Outputs
#### Pump (OUT0)
This pin is meant to drive a transistor that can control the pump motor either directly or via
a relay.
It can also be used to drive an LED that could indicate a running pump. There are other pins for
LEDs with slightly different meaning as described below.
#### Buzzer (OUT6)
The controller can signal a long running pump with a buzzer. It will first give a reminder that
the water is running relatively long already. When the water is automatically turned off from the
timeout, the signal helps to identify the switch that is still active.
There is an additional output BuzzerHaltedOnly (OUT7) which only outputs the buzzer signal for the
timeout. This allows to have a silent warning period (LED only) but audible signal for the alarm. And
by connecting a buzzer between OUT6 and OUT7 the differential signal can be used to drive a buzzer
only for the warning period (or separate buzzers e.g. with different volumes for each phase).
#### LEDs
There are a couple of outputs that can indicate the state of the controller.
One output (OUT1) is similar to the pump control output, but would not be turned off if the pump gets
disabled because the high pressure switch input was activated. This helps to prevent that users
get the impression that the system is turned off when it is not.
This output can be combined with OUT5 (RunLong). It is indicating that the warning time or timeout
was reached. When using a dual color (green/red) LED, the green LED could be used for the active
pump signal and the red one for the RunLong signal. The LED would then appear green when the pump is
running, orange when the warning time is reached (both LEDs are on) and red when the timeout disabled
the pump (only RunLong stays active).
The outputs OUT2:OUT4 can be used together as an alternative to the combined LED described above. In
this variant there would be one dedicated LED for running normally, reaching the warning time and pump
being turned off from the timeout.
## How does it work?
### Logic blocks
#### Needs water
A couple of OR-gates are used to determine if one of the tap inputs is active and water is needed or
requested. This gives the main signal for activating the pump.
#### LEDs
There are different LED outputs (see above for details). They are activated depending on the state of
the controller and a logical combination of water request and timer (warning phase or timed out).
#### Buzzer
The buzzer is activated during the warning phase and when the timeout is active with different signals.
Both signals are combined using an OR-gate.
The warning signal is generated using a group of AND-gates from the 1kHz signal, the warning state line
and the lines for 0.5Hz to 4Hz. This results in a beep that repeats every 2 seconds and is on for 125 ms.
The generation of the timed-out signal is more complex and described below since it contains more timing
parts.
### Timing blocks
#### Frequency divider
The main part of the frequency divider is built from a simple counter with D-Flip-Flops. It is held in reset
state when none of the tap inputs is active or when the external reset is active. It provides other blocks with
various timing signals, including the warning/timeout, buzzer frequency and sequence. The slowest signals are
clocked by a configurable counter (see below) which is clocked by the 2s signal generated in the fixed part.
The frequency divider has a configurable part to extend the range of possible timeout durations. This variable
part is only used for the timeout comparison but not for the buzzer sound generation. The variable part is also
built from D-Flip-Flops that are reset at the configured scaling value.
To make sure that the timing is stable, an additional Flip-Flop helps with signal forming. The comparison is done
at the falling edge of the input signal and keeps the reset signal applied for one cycle. The counter is at zero
for one and a half cycles (reset at the half cycle where the target counter value is reached, held at reset
until the next half-cycle and then increased to one at the next full cycle).
The output signal of this frequncy divider part is derived as a combination of the reset signal and the clock.
#### Warning and timeout
The warning and timeout signals are each generated by a D-Flip-Flop. They are activated at the chosen
timer/counter value and stay active afterwards until they are reset by disabling all tap switches or an
external reset.
#### Timed-out buzzer sequence
The timed-out buzzer sequence depends on which tap switch is active. The number of beeps in that sequence
reflects the ID or position of the first active input.
One D-Flip-Flop is used to activate the sequence every 16 seconds. It is set high (data is tied to H) on
the rising edge of the 16s counter signal when the controller is in the timeout state. It is reset at the
end of the sequence or by the global reset.
A series of D-Flip-Flops form a sequence counter where with each clock tick an additional output is
activated. The signal that defines the beep duration and interval is used as the clock for this sequence
generator. This sequence generator is held in reset state by the signal that also sets the buzzer active
Flip-Flop mentioned above. Depending on which input is active, one of the sequence outputs is used to reset
the Flip-Flop that activates the buzzer. The signals are combined using AND-gates for selecting the right
sequence step and OR-gates to allow any of those selected signals to reset the buzzer active state.
The actual timed-out buzzer signal is then a combination of the 2kHz signal, the duration and interval line
(two beeps per second at 25% duty cycle), enabled by the already described active Flip-Flop. This timed-out
signal is then combined into the buzzer output signal using the OR-gate as described above.
sw1:1a
sw1:2a
sw1:3a
sw1:4a
sw1:5a
sw1:6a
sw1:7a
sw1:8a
sw1:8b
sw1:7b
sw1:6b
sw1:5b
sw1:4b
sw1:3b
sw1:2b
sw1:1b
clock1:CLK
pwr2:GND
pwr1:VCC
ttin:EXTCLK
ttin:EXTRST_N
ttin:EXTIN0
ttin:EXTIN1
ttin:EXTIN2
ttin:EXTIN3
ttin:EXTIN4
ttin:EXTIN5
ttin:EXTIN6
ttin:EXTIN7
ttin:CLK
ttin:RST_N
ttin:IN0
ttin:IN1
ttin:IN2
ttin:IN3
ttin:IN4
ttin:IN5
ttin:IN6
ttin:IN7
ttout:OUT0
ttout:OUT1
ttout:OUT2
ttout:OUT3
ttout:OUT4
ttout:OUT5
ttout:OUT6
ttout:OUT7
ttout:EXTOUT0
ttout:EXTOUT1
ttout:EXTOUT2
ttout:EXTOUT3
ttout:EXTOUT4
ttout:EXTOUT5
ttout:EXTOUT6
ttout:EXTOUT7
ttio0:IN
ttio0:OUT
ttio0:OE
ttio0:UIO
ttio1:IN
ttio1:OUT
ttio1:OE
ttio1:UIO
ttio2:IN
ttio2:OUT
ttio2:OE
ttio2:UIO
ttio3:IN
ttio3:OUT
ttio3:OE
ttio3:UIO
ttio4:IN
ttio4:OUT
ttio4:OE
ttio4:UIO
ttio5:IN
ttio5:OUT
ttio5:OE
ttio5:UIO
ttio6:IN
ttio6:OUT
ttio6:OE
ttio6:UIO
ttio7:IN
ttio7:OUT
ttio7:OE
ttio7:UIO
Bidirectional I/O pins
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
bz1:1
bz1:2
led4:A
led4:C
led5:A
led5:C
TapA
TapB
TapC
TapD
TapE
TapF
EnableTimeout
PressureHigh
Pump
ActiveNormal
ActiveWarning
ActiveHalted
RunLong
Buzzer
or1:A
or1:B
or1:OUT
or2:A
or2:B
or2:OUT
or3:A
or3:B
or3:OUT
or4:A
or4:B
or4:OUT
led6:A
led6:C
NeedsWater
gnd2:GND
led7:A
led7:C
Timeout
gnd3:GND
flop2:D
flop2:CLK
flop2:S
flop2:R
flop2:Q
flop2:NOTQ
and1:A
and1:B
and1:OUT
led8:A
led8:C
Warn
gnd4:GND
flop4:D
flop4:CLK
flop4:S
flop4:R
flop4:Q
flop4:NOTQ
flop5:D
flop5:CLK
flop5:S
flop5:R
flop5:Q
flop5:NOTQ
pwr4:VCC
pwr5:VCC
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
gnd5:GND
gnd1:GND
flop6:D
flop6:CLK
flop6:S
flop6:R
flop6:Q
flop6:NOTQ
flop7:D
flop7:CLK
flop7:S
flop7:R
flop7:Q
flop7:NOTQ
flop8:D
flop8:CLK
flop8:S
flop8:R
flop8:Q
flop8:NOTQ
flop9:D
flop9:CLK
flop9:S
flop9:R
flop9:Q
flop9:NOTQ
flop10:D
flop10:CLK
flop10:S
flop10:R
flop10:Q
flop10:NOTQ
flop11:D
flop11:CLK
flop11:S
flop11:R
flop11:Q
flop11:NOTQ
flop12:D
flop12:CLK
flop12:S
flop12:R
flop12:Q
flop12:NOTQ
flop13:D
flop13:CLK
flop13:S
flop13:R
flop13:Q
flop13:NOTQ
flop14:D
flop14:CLK
flop14:S
flop14:R
flop14:Q
flop14:NOTQ
flop15:D
flop15:CLK
flop15:S
flop15:R
flop15:Q
flop15:NOTQ
flop16:D
flop16:CLK
flop16:S
flop16:R
flop16:Q
flop16:NOTQ
16kHz
8kHz
4kHz
2kHz
1kHz
flop1:D
flop1:CLK
flop1:S
flop1:R
flop1:Q
flop1:NOTQ
flop3:D
flop3:CLK
flop3:S
flop3:R
flop3:Q
flop3:NOTQ
flop17:D
flop17:CLK
flop17:S
flop17:R
flop17:Q
flop17:NOTQ
flop18:D
flop18:CLK
flop18:S
flop18:R
flop18:Q
flop18:NOTQ
flop19:D
flop19:CLK
flop19:S
flop19:R
flop19:Q
flop19:NOTQ
512Hz
256Hz
128Hz
64Hz
32Hz
flop22:D
flop22:CLK
flop22:S
flop22:R
flop22:Q
flop22:NOTQ
flop23:D
flop23:CLK
flop23:S
flop23:R
flop23:Q
flop23:NOTQ
flop24:D
flop24:CLK
flop24:S
flop24:R
flop24:Q
flop24:NOTQ
4Hz
2Hz
1Hz
2s
4s
8s
16s
n*2s
n*4s
n*8s
n*16s
led12:A
led12:C
gnd9:GND
and4:A
and4:B
and4:OUT
and5:A
and5:B
and5:OUT
and6:A
and6:B
and6:OUT
and8:A
and8:B
and8:OUT
or6:A
or6:B
or6:OUT
and2:A
and2:B
and2:OUT
and9:A
and9:B
and9:OUT
and10:A
and10:B
and10:OUT
not3:IN
not3:OUT
and11:A
and11:B
and11:OUT
not2:IN
not2:OUT
and12:A
and12:B
and12:OUT
not4:IN
not4:OUT
and13:A
and13:B
and13:OUT
not5:IN
not5:OUT
nand1:A
nand1:B
nand1:OUT
and7:A
and7:B
and7:OUT
and14:A
and14:B
and14:OUT
and15:A
and15:B
and15:OUT
and16:A
and16:B
and16:OUT
flop25:D
flop25:CLK
flop25:S
flop25:R
flop25:Q
flop25:NOTQ
pwr6:VCC
flop26:D
flop26:CLK
flop26:S
flop26:R
flop26:Q
flop26:NOTQ
pwr3:VCC
flop27:D
flop27:CLK
flop27:S
flop27:R
flop27:Q
flop27:NOTQ
led9:A
led9:C
gnd6:GND
led10:A
led10:C
gnd7:GND
not1:IN
not1:OUT
flop28:D
flop28:CLK
flop28:S
flop28:R
flop28:Q
flop28:NOTQ
flop29:D
flop29:CLK
flop29:S
flop29:R
flop29:Q
flop29:NOTQ
led11:A
led11:C
gnd8:GND
led13:A
led13:C
gnd10:GND
flop30:D
flop30:CLK
flop30:S
flop30:R
flop30:Q
flop30:NOTQ
flop31:D
flop31:CLK
flop31:S
flop31:R
flop31:Q
flop31:NOTQ
or5:A
or5:B
or5:OUT
and18:A
and18:B
and18:OUT
and17:A
and17:B
and17:OUT
and19:A
and19:B
and19:OUT
and20:A
and20:B
and20:OUT
or7:A
or7:B
or7:OUT
or8:A
or8:B
or8:OUT
or9:A
or9:B
or9:OUT
and21:A
and21:B
and21:OUT
or10:A
or10:B
or10:OUT
or11:A
or11:B
or11:OUT
led14:A
led14:C
gnd11:GND
Frequency divider
Beep sequence generator
Number of beeps depending on first active tap input
Error beeps:
Sequence every 16s @2kHz
beep rate 4Hz, 25% duty cycle
Warning beeps:
1kHz beep of 125ms every 2s
Warnings after 128s
Timeout after another 32s
Keep states once triggered
Disable pump from high preesure switch, do not reset timeouts
led15:A
led15:C
or12:A
or12:B
or12:OUT
flop32:D
flop32:CLK
flop32:S
flop32:R
flop32:Q
flop32:NOTQ
or13:A
or13:B
or13:OUT
and22:A
and22:B
and22:OUT
flop33:D
flop33:CLK
flop33:S
flop33:R
flop33:Q
flop33:NOTQ
n*32s
and23:A
and23:B
and23:OUT
and24:A
and24:B
and24:OUT
and25:A
and25:B
and25:OUT
and26:A
and26:B
and26:OUT
and28:A
and28:B
and28:OUT
and29:A
and29:B
and29:OUT
and30:A
and30:B
and30:OUT
and31:A
and31:B
and31:OUT
or14:A
or14:B
or14:OUT
and32:A
and32:B
and32:OUT
and33:A
and33:B
and33:OUT
and34:A
and34:B
and34:OUT
and35:A
and35:B
and35:OUT
and36:A
and36:B
and36:OUT
and38:A
and38:B
and38:OUT
and39:A
and39:B
and39:OUT
and40:A
and40:B
and40:OUT
and41:A
and41:B
and41:OUT
and42:A
and42:B
and42:OUT
flop34:D
flop34:CLK
flop34:S
flop34:R
flop34:Q
flop34:NOTQ
flop35:D
flop35:CLK
flop35:S
flop35:R
flop35:Q
flop35:NOTQ
flop36:D
flop36:CLK
flop36:S
flop36:R
flop36:Q
flop36:NOTQ
flop38:D
flop38:CLK
flop38:S
flop38:R
flop38:Q
flop38:NOTQ
flop39:D
flop39:CLK
flop39:S
flop39:R
flop39:Q
flop39:NOTQ
flop40:D
flop40:CLK
flop40:S
flop40:R
flop40:Q
flop40:NOTQ
flop41:D
flop41:CLK
flop41:S
flop41:R
flop41:Q
flop41:NOTQ
flop42:D
flop42:CLK
flop42:S
flop42:R
flop42:Q
flop42:NOTQ
flop44:D
flop44:CLK
flop44:S
flop44:R
flop44:Q
flop44:NOTQ
flop45:D
flop45:CLK
flop45:S
flop45:R
flop45:Q
flop45:NOTQ
gnd14:GND
not6:IN
not6:OUT
not7:IN
not7:OUT
led16:A
led16:C
gnd15:GND
led17:A
led17:C
gnd16:GND
led18:A
led18:C
gnd17:GND
led20:A
led20:C
gnd19:GND
led21:A
led21:C
gnd20:GND
not8:IN
not8:OUT
led22:A
led22:C
gnd22:GND
led23:A
led23:C
gnd23:GND
led24:A
led24:C
gnd24:GND
flop46:D
flop46:CLK
flop46:S
flop46:R
flop46:Q
flop46:NOTQ
flop47:D
flop47:CLK
flop47:S
flop47:R
flop47:Q
flop47:NOTQ
flop48:D
flop48:CLK
flop48:S
flop48:R
flop48:Q
flop48:NOTQ
flop49:D
flop49:CLK
flop49:S
flop49:R
flop49:Q
flop49:NOTQ
flop50:D
flop50:CLK
flop50:S
flop50:R
flop50:Q
flop50:NOTQ
flop51:D
flop51:CLK
flop51:S
flop51:R
flop51:Q
flop51:NOTQ
vcc1:VCC
flop52:D
flop52:CLK
flop52:S
flop52:R
flop52:Q
flop52:NOTQ
led25:A
led25:C
gnd12:GND
led26:A
led26:C
gnd13:GND
led27:A
led27:C
gnd25:GND
led28:A
led28:C
gnd26:GND
led29:A
led29:C
gnd27:GND
led30:A
led30:C
gnd28:GND
r1:1
r1:2
r2:1
r2:2
sw3:1
sw3:2
sw3:3
sw4:1
sw4:2
sw4:3
gnd29:GND
vcc2:VCC
not9:IN
not9:OUT
and45:A
and45:B
and45:OUT
and46:A
and46:B
and46:OUT
and47:A
and47:B
and47:OUT
and48:A
and48:B
and48:OUT
sw5:1a
sw5:2a
sw5:3a
sw5:4a
sw5:5a
sw5:6a
sw5:7a
sw5:8a
sw5:8b
sw5:7b
sw5:6b
sw5:5b
sw5:4b
sw5:3b
sw5:2b
sw5:1b
r9:1
r9:2
r10:1
r10:2
r11:1
r11:2
r12:1
r12:2
r13:1
r13:2
sw2:1a
sw2:2a
sw2:3a
sw2:4a
sw2:5a
sw2:6a
sw2:7a
sw2:8a
sw2:8b
sw2:7b
sw2:6b
sw2:5b
sw2:4b
sw2:3b
sw2:2b
sw2:1b
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
led31:A
led31:C
gnd21:GND
r15:1
r15:2
sw6:1
sw6:2
sw6:3
sw7:1a
sw7:2a
sw7:3a
sw7:4a
sw7:5a
sw7:6a
sw7:7a
sw7:8a
sw7:8b
sw7:7b
sw7:6b
sw7:5b
sw7:4b
sw7:3b
sw7:2b
sw7:1b
r8:1
r8:2
r14:1
r14:2
r16:1
r16:2
r17:1
r17:2
r18:1
r18:2
flop37:D
flop37:CLK
flop37:S
flop37:R
flop37:Q
flop37:NOTQ
flop43:D
flop43:CLK
flop43:S
flop43:R
flop43:Q
flop43:NOTQ
flop53:D
flop53:CLK
flop53:S
flop53:R
flop53:Q
flop53:NOTQ
flop54:D
flop54:CLK
flop54:S
flop54:R
flop54:Q
flop54:NOTQ
flop55:D
flop55:CLK
flop55:S
flop55:R
flop55:Q
flop55:NOTQ
led19:A
led19:C
gnd18:GND
led32:A
led32:C
gnd30:GND
led33:A
led33:C
gnd31:GND
flop56:D
flop56:CLK
flop56:S
flop56:R
flop56:Q
flop56:NOTQ
led34:A
led34:C
gnd32:GND
xor2:A
xor2:B
xor2:OUT
xor3:A
xor3:B
xor3:OUT
and3:A
and3:B
and3:OUT
and27:A
and27:B
and27:OUT
xor4:A
xor4:B
xor4:OUT
flop57:D
flop57:CLK
flop57:S
flop57:R
flop57:Q
flop57:NOTQ
flop58:D
flop58:CLK
flop58:S
flop58:R
flop58:Q
flop58:NOTQ
flop59:D
flop59:CLK
flop59:S
flop59:R
flop59:Q
flop59:NOTQ
flop60:D
flop60:CLK
flop60:S
flop60:R
flop60:Q
flop60:NOTQ
flop61:D
flop61:CLK
flop61:S
flop61:R
flop61:Q
flop61:NOTQ
and37:A
and37:B
and37:OUT
and43:A
and43:B
and43:OUT
and49:A
and49:B
and49:OUT
and50:A
and50:B
and50:OUT
and51:A
and51:B
and51:OUT
and52:A
and52:B
and52:OUT
and53:A
and53:B
and53:OUT
and54:A
and54:B
and54:OUT
and55:A
and55:B
and55:OUT
flop20:D
flop20:CLK
flop20:S
flop20:R
flop20:Q
flop20:NOTQ
flop21:D
flop21:CLK
flop21:S
flop21:R
flop21:Q
flop21:NOTQ
led35:A
led35:C
gnd33:GND
led36:A
led36:C
gnd34:GND
flop63:D
flop63:CLK
flop63:S
flop63:R
flop63:Q
flop63:NOTQ
led37:A
led37:C
gnd35:GND
or15:A
or15:B
or15:OUT
not10:IN
not10:OUT
flop62:D
flop62:CLK
flop62:S
flop62:R
flop62:Q
flop62:NOTQ
not12:IN
not12:OUT
xor1:A
xor1:B
xor1:OUT
16Hz
8Hz
r19:1
r19:2
gnd36:GND
and44:A
and44:B
and44:OUT
Warning time comparator
Timeout comparator
Configurable divider
Divider configuration storage
Timeout configuration storage
Warning period configuration storage
Configuration read-in sequence
Configuration read-in selection
Reset signal and clock output
BuzzerHaltedOnly
ERC Warnings
flop2:S: Input pin not driven
flop4:S: Input pin not driven
flop5:S: Input pin not driven
flop6:S: Input pin not driven
flop7:S: Input pin not driven
flop8:S: Input pin not driven
flop9:S: Input pin not driven
flop10:S: Input pin not driven
flop11:S: Input pin not driven
flop12:S: Input pin not driven
86 additional warning(s) hidden