Question: When performing computational operations it is often useful to be able to exe - cute a sequence of operations, each one using the output of

When performing computational operations it is often useful to be able to exe-
cute a sequence of operations, each one using the output of the previous step as
an input to the next step. For example to OR 3 values X OR Y OR Z you might
first calculate X OR Y and then on the next step apply OR Z to the previous
output (X OR Y ).
For this task adapt the circuit FALL so that it can combine a sequence of
operations defined by different values for f1 and f0 at each step, by enabling
the outputs Ft and Gt of step t to be used (feedback) as the inputs for the next
operation Ct+1 and Dt+1 for step t +1. You should also add a further input
(Load) to the chip which when Load =1 will enable you to load new inputs to
Ct and Dt and when set to 0 sets Ct+1= Ft and Dt+1= Gt. The Load input
will allow you to manually set the values of C and D..
CHIP FALL {
IN A, B, C, D, f0, f1;
OUT E, F, G;
PARTS:
// Implement FZero
FZero(A=A, B=B, C=C, D=D, F=zF, G=zG);
// Implement FOne
FOne(A=A, B=B, C=C, D=D, F=oF, G=oG);
// Implement FTwo
FTwo(A=A, B=B, C=C, D=D, F=tF, G=tG);
// Implement FThree
FThree(A=A, B=B, C=C, D=D, E=thE, F=thF, G=thG);
Mux(a=thF, b=tF, sel=f0, out=iF1);
Mux(a=oF, b=zF, sel=f0, out=iF2);
Mux(a=iF1, b=iF2, sel=f1, out=F);
Mux(a=thG, b=tG, sel=f0, out=iG1);
Mux(a=oG, b=zG, sel=f0, out=iG2);
Mux(a=iG1, b=iG2, sel=f1, out=G);
Mux(a=thE, b=false, sel=f0, out=iE1);
Mux(a=iE1, b=false, sel=f1, out=E);
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!