- Joined
- Nov 7, 2013
- Messages
- 14
- Reaction score
- 9
Hopefully this merits a thread.
Sometimes, you'll want to create a pulse of delay S (in seconds), and most people approach this by placing down 2S delay blocks in a loop (as a delay block creates a 0.5 second delay).
However, you can save space by realising that the addition of a flip-flop as the output to a repeating pulse (like 2 delay blocks cross-linked) will double the total delay: The flip flop will toggle on each cycle of the delay circuit. If you add another flip-flop, you will double the delay again, as this flip flop will toggle only after the previous one has, itself, cycled.
You can therefore achieve any delay with minimal blocks by taking S and halving it until you're left with a non-integer value or 2, we'll this number D. The number of times you halved S to reach D will be called F.
Create the loop of delay blocks using exactly D delay blocks. Then, attach a chain of F flip flops as output. The last flip-flop in the chain will take exactly S seconds to pulse.
In this image, the final flip-flop will take 8 seconds to pulse: the delay cycle takes 1s, which is doubled three times.
In this way, you can also see that the delay of a circuit like this will equal D*(1+F/2)
Sometimes, you'll want to create a pulse of delay S (in seconds), and most people approach this by placing down 2S delay blocks in a loop (as a delay block creates a 0.5 second delay).
However, you can save space by realising that the addition of a flip-flop as the output to a repeating pulse (like 2 delay blocks cross-linked) will double the total delay: The flip flop will toggle on each cycle of the delay circuit. If you add another flip-flop, you will double the delay again, as this flip flop will toggle only after the previous one has, itself, cycled.
You can therefore achieve any delay with minimal blocks by taking S and halving it until you're left with a non-integer value or 2, we'll this number D. The number of times you halved S to reach D will be called F.
Create the loop of delay blocks using exactly D delay blocks. Then, attach a chain of F flip flops as output. The last flip-flop in the chain will take exactly S seconds to pulse.
In this image, the final flip-flop will take 8 seconds to pulse: the delay cycle takes 1s, which is doubled three times.
In this way, you can also see that the delay of a circuit like this will equal D*(1+F/2)
Last edited: