13 / 37 · Check
Design check: selection equivalence and observation timing
Distinguish checks covered by a truth table from those requiring clock observations.
Lessons are free to read. Enroll to save your learning progress.
Read the conditions and draw the event order
The combinational output is , and sampled_y captures y at a rising edgeRising edge The instant at which the clock changes from 0 to 1. Distinguish it from a level, which refers to the entire interval during which CLK=1. Learn more. Assume has already been captured once. Then change s to 1 between clock edges.
The question asks for values after inputs and combinational logic have settled, before the next rising edge. Functional equivalence and a register'sRegister A circuit that stores multiple bits of state. The synchronous registers in this course store their specified inputs at a clock edge. Learn more observation timing are separate verification items.
Below is the observation order for these conditions, with a=1 and b=0. In the interval where the combinational and stored outputs differ, explain which signal represents present inputs and which represents an earlier capture.
View waveform data
| Signal | Wave | Bus values |
|---|---|---|
| event | 234 | captured → sel changes → next edge |
| sel | 01. | |
| y | 10. | |
| sampled_y | 1.0 |
Further design questions
- Prove with all eight combinations that
y=(a & ~s) | (b & s)is equivalent to a one-bit MUXMultiplexer A combinational circuit that connects one of several inputs to the output according to a select signal. Specify how select bits map to input numbers. Learn more. - If
sampled_yis removed, the functional equation remains. Explain which temporal behavior disappears. - Explain why ideal RTL values alone cannot guarantee physical hardware behavior when the s transition and rising edge are too close.
Try it yourself
Can tests using only a=b detect reversed selection in a four-bit MUX?
Read the explanation
No. Equal inputs give the same result whichever is selected. For example, test both s=0 and s=1 with a=0101, b=1010 to distinguish select polarity and the transfer of each bit.
Under the conditions above, what is (y, sampled_y) just before the next rising edge?
When s=1, y=b=0. At the previous edge s=0, so sampled_y captured a=1. sampled_y becomes 0 only at the next rising edge. This assumes setup and hold requirements are met.