Full context: I am building a stopwatch / countdown timer. The design is that there will be up/down counters that increment/decrement the time. The counters are then connected to 7-segment displays to show the time in the format hours:minutes:seconds. There are 5 buttons in the system: play, pause, reset, save and load. Pressing play will start/continue the stopwatch/timer. Pressing pause will pause it indefinitely. Pressing reset will reset the counter into 00:00 and pause it. Pressing save will save the values and pause it indefintely. Pressing load will load the latest saved values and pause it as well indefinitely.
I have made the modulo 10 4-bit counters and modulo 6 3-bit counters which counts up from 0 to 9 and 0 to 5 respectively. The operations in the system that works already are: play, pause, save, and reset. I have troubles implementing the load operation. The play, pause and reset operations are relatively easy so we move on to the save operation.
First, here is a diagram of one of the 4-bit counters:
It is connected to this subcircuit that saves the states into four registers.
The saving is done by sending a clock signal onto four registers (in the 2nd picture). So if the counter is on state 4 (0-1-0-0) and the save button is clicked, there will be four registers that have the value 0, 1, 0, and 0 respectively. The issue is I also need to load this saved state back into the counter. Imagine 3 more ticks after saving, the counter is now on state 7 (0-1-1-1). If I click the load button, the flip flops should be back to the saved state 0-1-0-0. I am having troubles coming up with a way to overwrite the state of the flip flops with the saved values.
Is loading values back on the flip flops possible or do I need something else?