Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

(a) Let us assume that the processor testing is done by filling the PC,registers

ID: 3601501 • Letter: #

Question

(a) Let us assume that the processor testing is done by filling the PC,registers, and data and instruction memories with some values (you can choose whichvalues), letting a single instruction execute, then reading the PC, memories, and registers.These values are then examined to determine if a particular fault is present. Can youdesign a test (values for PC, memories, and registers) that would determine if there is astuck-at-0 fault on this signal?

(b) Repeat part a) for a stuck-at-1 fault. Can you use a single test forboth stuck-at-0 and stuck-at-1? If yes, explain how; if no, explain why not.

(c) If we know that the processor has a stuck-at-1 fault on this signal,is the processor still usable? To be usable, we must be able to convert any program thatexecutes on a normal MIPS processor into a program that works on this processor. Youcan assume that there is enough free instruction and data memory to let you make theprogram longer and store additional data. Hint: the processor is usable if every instruction“broken” by this fault can be replaced with a sequence of “working” instructions thatachieve the same effect.

The Diagram is as following

Instruction 125-01 Shift u address [31-0 26- |PC+4131-281 28 Add uI dd ALU RegDst Shift left 2 Instruction (31-26 MemRead MemtoReg Control RegWrite instruction [25-21] | PC-address Read register 1 Read ruction [20-16]-Read Zero Instruction 1 register 2 (31-0 MWrite Read Write data 2 Read Instruction | | | Instruction [15-11 resultddresa register LI memory data Registens Write Data data memory Instruction [15-0] 16 Sign- 32 control Instruction [5-0

Explanation / Answer

If MemWrite is stuck-at-1, the data memory will be written unexpectedly.

Here is one test:

Pre-test setup:

PC = PC0

$s0 = 0

Memory location referenced by 0($s1) has a value: 55

Test:

execute lw $s0, 0($s1) # could use a different instruction as long as it's not sw

CS 2505 Computer Organization I HW 5: MIPS Datapath 4

After-test check:

There is no MemWrite fault when:

(1) current PC is PC0+4

(2) $s0 = 55

(3) memory location referenced by 0($s1) is unchanged, still 55

There is a MemWrite fault when:

(1) current PC is PC0+4

(2) $s0 = random number or 55 (could be either depending on timing of memory write completion)

(3) memory location referenced by 0($s1) is changed to a random number

Here is another:

Pre-test setup:

PC = PC0 (address of instruction shown below)

$s0 = 1

$s1 = 2

Memory location referenced by 0($s1) has a value: 55

Test:

execute add $s0, $s1, $s2 So,

what happens is that the sum of $s0 and $s2

After-test check:

There is no MemWrite fault when:

(1) current PC is PC0+4

(2) $s0 = 55

(3) memory location referenced by 0($s1) is unchanged, still 55

There is a MemWrite fault when:

(1) current PC is PC0+4

(2) $s0 = random number or 55 (could be either depending on timing of memory write completion)

(3) memory location referenced by 0($s1) is changed to a random number.

Stuck at faults occur when a line is permanently stuck to Vdd or ground giving a faulty output. This line may be an input or output to any gate. Also this fault can be single or multiple stuck at faults.

When a signal, or gate output, is stuck at a 0 or 1 value, independent of the inputs to the circuit, the signal is said to be “stuck at” and the fault model used to describe this type error is called a “stuck at fault model”.

A fault model is an engineering model of something that could go wrong in the construction or operation of a piece of equipment. From the model, the designer or user can then predict the consequences of this particular fault.

Basic fault models in digital circuits include the stuck-at fault model, the bridging fault model, the transistor faults, the open fault model, the delay fault model, etc. In the past several decades, the most popular fault model used in practice is the single stuck-at fault model.

To use this fault model, each input pin on each gate in turn, is assumed to be grounded, and a test vector is developed to indicate the circuit is faulty. Hence, if a circuit has n signal lines, there are potentially 2n stuck-at faults defined on the circuit.

The test vector is a collection of bits to apply to the circuit's inputs, and a collection of bits expected at the circuit's output. If the gate pin under consideration is grounded, and this test vector is applied to the circuit, at least one of the output bits will not agree with the corresponding output bit in the test vector.

After obtaining the test vectors for grounded pins, each pin is connected in turn to a logic one and another set of test vectors is used to find faults occurring under these conditions. Each of these faults is called a single stuck-at-0 or a singlestuck-at-1 fault, respectively.

The stuck-at fault model is a logical fault model because no delay information is associated with the fault definition.

It is also called a permanent fault model because the faulty effect is assumed to be permanent, in contrast to intermittent faults which occur (seemingly) at random and transientfaults which occur sporadically, perhaps depending on operating conditions like temperature, power supply voltage or on the data values (high or low voltage states) on surrounding signal lines. The single stuck-at fault model is structural because it is defined based on a structural gate-level circuit model.

A pattern set with 100% stuck-at fault coverage consists of tests to detect every possible stuck-at fault in a circuit. 100% stuck-at fault coverage does not necessarily guarantee high quality, since faults of many other kinds—such as bridging faults, opens faults, and transition or delay faults—often occur.