Name: Date:

HW12

(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.21, on page 277. Note that the ALUOp signal is two bits in size, each bit has different effects on the ALU, see figure 4.26 on page 281 for more detail. Which instructions, if any, will not work correctly? Explain why.

  1. RegWrite = 0

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

  2. ALUOp0 (LSB) = 0

    The ALU will only receive x0 as control, this bit is only used to tell the ALU to subtract during branches. Therefore branches will not actually work correctly since the register operands are summed instead of substracted.

  3. Branch = 0

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

  4. MemRead = 0

    Memory cannot be read, so lw will fail.

  5. MemWrite = 0

    Memory cannot be written, so sw will fail.

Datapath for reference: