Skip to main content

Digital Logic · Arithmetic units and datapath composition

A synchronous Moore handshake controller has states IDLE, LOAD, WAIT, and ACKED, inputs…

Problem

A synchronous Moore handshake controller has states \(\mathrm{IDLE}\), \(\mathrm{LOAD}\), \(\mathrm{WAIT}\), and \(\mathrm{ACKED}\), inputs \(S\) (start) and \(K\) (acknowledge), and outputs \(L\) (load datapath) and \(B\) (busy). Reset is to \(\mathrm{IDLE}\). The specification is: - \(\mathrm{IDLE}\): \(L=0\), \(B=0\). If \(S=0\), remain. If \(S=1\), go to \(\mathrm{LOAD}\). Input \(K\) is a don't-care. - \(\mathrm{LOAD}\): \(L=1\), \(B=1\). On the next clock go to \(\mathrm{WAIT}\) unconditionally. - \(\mathrm{WAIT}\): \(L=0\), \(B=1\). If \(K=0\), remain. If \(K=1\), go to \(\mathrm{ACKED}\). Input \(S\) is a don't-care. - \(\mathrm{ACKED}\): \(L=0\), \(B=0\). If \(S=1\), remain (must see start withdrawn). If \(S=0\), go to \(\mathrm{IDLE}\). Input \(K\) is a don't-care. (a) Write the Moore transition/output table, including the declared don't-cares. (b) Encode \(\mathrm{IDLE}=00\), \(\mathrm{LOAD}=01\), \(\mathrm{WAIT}=11\), \(\mathrm{ACKED}=10\) in bits \(Q_1Q_0\). Obtain minimum-sum-of-products expressions for \(D_1,D_0,L,B\) in variables \(Q_1,Q_0,S,K\), using the don't-cares of part (a). (c) From reset, apply the input pairs \((S,K)=(0,0),(1,0),(1,0),(1,0),(1,1),(1,0),(0,0)\). Report the state and the pair \((L,B)\) after reset and after every clock. Determine the number of clocks for which \(L=1\) in this trace.

Hint

Handshake: pulse \(L\) for one clock, then wait for \(K\), then wait for \(S\) to drop before returning to idle.

Check your work

Work the problem yourself first. Then open it in Training to check your answer and read the full worked solution.

The answer check and full solution for this problem come with ProofAnvil Practice membership ($19 USD monthly). See membership. Or start with the free Digital Logic sample problem: Try the free sample problem.

More Digital Logic practice problems

Back to Digital Logic

An original ProofAnvil practice problem, written for this course. ProofAnvil is a practice course, not a homework-answer service.