CSC270 Homework #3
Your priority encoder should have 4 inputs and 3 outputs, including an Int signal that will be high whenever one or several peripherals request service, and C1 C0, two code signals indicating the Id of the interrupting device with the highest priority. Note here that the code of the highest priority is 00, while that of the lowest priority is 11. When no peripherals are interrupting, the setting of C1 and C0 does not matter, as the processor reads C1 and C0 only when an interrupt is pending. You are thus free to define the inactive setting for C1 and C0.
Give the simplified expressions of Int, C0, and C1.
Show the logic diagram of the whole priority encoder using 2-input NOR gates only.
f = Sum(1,2,4,5,6,11,12,13) g = Prod(1,2,4,5,6,11,12,13)
Assume that we have three circuits generating the same boolean function f. Y1 is the signal generated by the first circuit, Y2, the signal generated by the second circuit, and Y3 that of the third circuit.
During normal operations, Y1, Y2, and Y3 are always indentical. But if one of the circuits fails, then one output will be different from the other two.
Design a boolean circuit that takes Y1, Y2, and Y3 as inputs, and that outputs the majority vote on all three. If all three inputs are 1, for example, then your circuit will output 1. If two inputs are 0, and a third one 1, then your circuit will output 0. In other words, your circuit always selects the value that has majority on the inputs.
Also, your circuit should output two more signals, C1 and C0 identifying which of the three inputs, if any, is showing a sign of failure. Under normal operations, C1 and C0 will output 00, indicating that none of the inputs is faulty.
Show the simplified equations for all three signals, and implement your circuit with logic gates (you are not restricted to two-input gates).