3 / 24 · Concept
The MUX and its observation register
Distinguish a combinational output from a sampled output.
Lessons are free to read. Enroll to save your learning progress.
One output, two choices
A multiplexer chooses one input and routes it to an output. Our two inputs are a and b; sel decides which one is selected.
In assign y = sel ? b : a;, sel=0 selects a and sel=1 selects b. The combinational output follows its input without storing a value at a clock edge.
sampled_y is a register. It captures y at a rising clock edge and holds that value until the next rising edge. Compare these two behaviors in the waveform.
| a | b | sel | y |
|---|---|---|---|
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
Make a prediction before running
With a=0 and b=1, when do y and sampled_y change as sel goes from 0 to 1?
✓ Studied