Detection of SA1 faults on selected I/O wires of a VLSI circuit for BCD-to-excess-3 code converter
Introduction
Binary Coded Decimal (BCD)
BCD stands for Binary Coded Decimal. It is a method to convert decimal numbers to a binary form. In this representation, each digit in the decimal number system is represented by a fixed number of bits (usually four or eight). It is weighted in the form of 8-4-2-1. Assuming four bit representation, the BCD code for each digit as shown in Table 1.
Decimal | Binary (BCD) | |||
---|---|---|---|---|
8 | 4 | 2 | 1 | |
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 0 | 1 | 0 | 0 |
5 | 0 | 1 | 0 | 1 |
6 | 0 | 1 | 1 | 0 |
7 | 0 | 1 | 1 | 1 |
8 | 1 | 0 | 0 | 0 |
9 | 1 | 0 | 0 | 1 |
Table 1 : Decimal to BCD conversion
Excess-3 code (XS-3)
The main advantage of the BCD system over regular binary code is that it is fast and efficient, as it is easier to encode and decode decimal values to BCD code. However, it occupies more memory as compared to binary code. The excess-3 code (XS-3) is a non-weighted code, used to represent decimal systems in binary forms. It is obtained by adding 011 (3) to each value in the BCD system. Assuming four-bit representation, the XS-3 code for each digit is shown in Table 2.
Decimal | Binary (BCD) | Excess-3 Code | |||
---|---|---|---|---|---|
8 | 4 | 2 | 1 | ||
0 | 0 | 0 | 0 | 0 | 0011 |
1 | 0 | 0 | 0 | 1 | 0100 |
2 | 0 | 0 | 1 | 0 | 0101 |
3 | 0 | 0 | 1 | 1 | 0110 |
4 | 0 | 1 | 0 | 0 | 0111 |
5 | 0 | 1 | 0 | 1 | 1000 |
6 | 0 | 1 | 1 | 0 | 1001 |
7 | 0 | 1 | 1 | 1 | 1010 |
8 | 1 | 0 | 0 | 0 | 1011 |
9 | 1 | 0 | 0 | 1 | 1100 |
Table 2 : Decimal to XS-3 conversion
The most significant advantage of XS-3 code is that it is self-complementary i.e. the corresponding 9's complement in the decimal system can be obtained by interchanging the 0’s and 1's in the XS-3 code. This makes it easier to overcome the shortcomings encountered during arithmetic operations.
Stuck At Faults
A stuck-at fault (SAF) is a logic-level fault. 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.
There are two kinds of SAF:- Stuck at 0
- Stuck at 1
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 circuit with n lines can have 3n-1 possible stuck line combinations; each line can be: S-A-1, S-A-0, or fault-free.

BCD to Excess-3
A BCD digit can be converted to it's corresponding Excess-3 code by simply adding 3 to it. Let A, B, C and D be the input bits and W, X, Y and Z be the output bits. Then the truth table for the conversion from BCD to Excess-3 is shown in Table 3.
BCD Code (Input) | Excess-3 Code (Output) | ||||||
---|---|---|---|---|---|---|---|
A | B | C | D | W | X | Y | Z |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 | X | X | X | X |
1 | 0 | 1 | 1 | X | X | X | X |
1 | 1 | 0 | 0 | X | X | X | X |
1 | 1 | 0 | 1 | X | X | X | X |
1 | 1 | 1 | 0 | X | X | X | X |
1 | 1 | 1 | 1 | X | X | X | X |
Table 3 : BCD to Excess-3 Code conversion
From the truth table above, we draw the K-Maps for each of the output variables W, X, Y and Z.

The minimized expressions for the outputs are:
W=A+BC+BD
X= ~ BC + ~ BD + B~ C~ D
Y=CD+ ~ C ~ D
Z= ~D
