= Solution
The internal <Boolean functions> are $x=\bar a\bar c$, $y=bc$, $z=\bar cd$, $w=y+z$ and $q=x+w$. Put the falling edge of $c$ at $t=0$. Since $a=1$ throughout, \b[$x=0$ throughout]. The remaining transitions, including every stated <propagation delay>, are
$$
\begin{array}{c|c|c}
\text{signal}&t<0&\text{transition after }t=0\\\hline
y&1&1\to0\text{ at }10\text{ ns}\\
z&0&0\to1\text{ at }20\text{ ns}\\
w&1&1\to0\text{ at }20\text{ ns},\quad0\to1\text{ at }30\text{ ns}\\
q&1&1\to0\text{ at }30\text{ ns},\quad0\to1\text{ at }40\text{ ns}
\end{array}.
$$
The inverter delays the rise of $\bar c$ by ten nanoseconds, and the $z$ AND gate adds another ten. Consequently $y$ and $z$ are simultaneously zero for ten nanoseconds. This gap propagates through the two OR gates. The output has a \b[static-one <logic hazard>: a low glitch on $30\leq t<40$ ns], despite its equal initial and final logical values.
\Image[/past-exam-of-the-year-1-of-the-computer-science-course-of-the-university-of-oxford/2018/digital-systems-static-hazard-waveforms.png]
{title=Delayed transitions produce a ten-nanosecond <static-one logic hazard>}
{description=The shaded interval marks the incorrect output pulse. Exact ten-nanosecond gate delays are used, including propagation of the pulse.}
Back to article page