Name: Box: Date:


(10 points) Describe the effect that a single stuck-at-0 fault (i.e. regardless of what it should be, the signal is always 0) would have for the signals shown below, in the single-cycle datapath in Figure 4.17, on page 265. Note that the ALUOp signal is two bits in size, LSB and MSB refer to the least-significant and most-significant respectively. Which instructions, if any, will not work correctly? Explain why.

  1. RegWrite = 0

    Most R-type instructions and lw won't work since they can't write to the register file.

  2. ALUOp (LSB) = 0

    The ALU will only receive x0 as control so it can't do sub for beq and branches might fail.

  3. ALUOp (MSB) = 0

    The ALU will only receive 0x as control, so it can't use the function code correctly. Many R-types will fail, since the ALU will receive 00 (add) for all R-types.

  4. Branch = 0

    This will prevent branches from be taken. Branches that are supposed to be taken will fail.

  5. MemRead = 0

    Memory cannot be read, so lw will fail.

  6. MemWrite = 0

    Memory cannot be written, so sw will fail.

Datapath for reference: