In the Playground Logic Blocks there is a Memory X=sh(A) and a Persistent Storage X=mem(A). The descriptions of what these blocks do are identical." If S > 0, then A is saved and forwarded to X". The difference is one is called Memory and one is called Persistent Storage. OK, what does this mean?
Since the descriptions of the logic blocks are identical, I made this Logic Test to see what the difference is between these 2 logic blocks.
The Constant is set to 1 and connected to the S input of both logic blocks, so S in both blocks is 1 which is > 0. The Test Input is set to output 3 and has a fallback value of 0. When I tell the Test Input to output Test Data, it outputs the value 3 for 3 seconds. When the Test Input value is 3 both X=sh(A) and X=mem(A) outputs change from 0 to 3. When the Test Input value returns to 0, both logic block outputs return to 0.
So far, the behavior of these 2 logic blocks is identical. I thought maybe the difference is that Persistent Storage X=mem(A) would retain the value 3 even after the Test Input value returned to 0 but that does not happen. Then I though maybe I have to enable "Save and restore value permanently" but enabling this did not seem to change anything.
Then I thought maybe the Constant is the problem, because it is always 1, so S on the logic blocks is always 1, so X will always equal A. I replaced the Constant block with another Input block.
I set the Test Input duration to 10 seconds and the Control Input to output a 1 for 5 seconds. Initially, the Test Input and the Control Input are 0 and the outputs of both logic blocks is 0. I start Test Input first, which changes to 3. Then I start the Control Input which changes from 0 to 1. When this happens, the logic block S inputs change to 1 and both logic blocks pass the Test Input value 3 to their X outputs. When the Control Input times out and returns to 0 the Test Input is still 3 because I set the Test Input Test data output to 10 seconds. In this case, when the Control Input returns to 0, the logic block X outputs stay at 3 even after the Test Input returns to 0 because the Control Input is now at 0, so the logic block S inputs are 0. The Test Input value of 3 is retained. This makes sense but both logic blocks are still doing the exact same thing.
Can somone explain what the difference is between Memory X=sh(A) and Persistant Storage X=mem(A)? Since the descriptions are identical, they do not explain the difference. In my tests, these 2 logic blocks always do the exact same thing. Also, what does the switch "Save and restore value permanently" do? Enabling it did not seem to do anything in my test.