Exercise 2: D Latch With D=1, enable=0 — Possible Solution ==================================================================== GIVEN ------------------------------ D latch equations: S = D.enable, R = D'.enable D=1, enable=0 STEP 1: COMPUTE S AND R ------------------------------ S = D.enable = 1.0 = 0 R = D'.enable = (1-1).0 = 0.0 = 0 Both S=0 and R=0. STEP 2: WHAT THIS MEANS FOR Q ------------------------------ S=0, R=0 is exactly the HOLD case from this chapter's own SR latch behavior - Q does NOT update to match D. Instead, Q simply keeps whatever value it was already holding before this step. RESULT ------------------------------ The latch HOLDS its previous value; it does not update, even though D=1 (a "new" value is being presented on the data line). WHAT THIS SAYS ABOUT enable ------------------------------ enable is genuinely acting as a gate on whether D is allowed to reach the latch at all - per the S/R formulas, whenever enable=0, both S and R are forced to 0 regardless of what D is, which always produces the HOLD case. D only has any actual effect on Q when enable=1 (the only condition under which S or R can become nonzero). This is exactly the intended design: the latch is meant to only "listen" to D while explicitly enabled, and safely ignore it - preserving whatever it's currently holding - the rest of the time. WHY THIS WORKS AS AN ANSWER ------------------------------ Both S and R are computed explicitly from the given D and enable values using this chapter's own formulas, the resulting (0,0) case is correctly mapped back to the SR latch's own HOLD behavior rather than assumed, and the role of enable is explained in terms of what it structurally forces (S and R both to 0) rather than just described as "a switch."