
BIST-8 implements a complete Built-In Self-Test architecture for an 8-bit Carry-Lookahead Adder (CLA).
The design has two modes of operation:
Normal mode (bist_en=0): The CLA adder operates as a standard 8-bit adder. Operand A is provided via ui_in[7:2] and uio_in[7:6], operand B via uio_in[5:0]. The result appears on uo_out[7:3].
BIST mode (bist_en=1): The circuit self-tests in 4095 clock cycles automatically:
A fault injection input (fault_inject) forces bit 3 of the adder output to stuck-at-0, allowing demonstration of fault detection. The faulty signature is 0x927F, which differs from the golden value, proving the BIST detects the fault.
The FSM has 4 states: IDLE -> BIST_RUN -> COMPARE -> DONE.
Normal mode:
BIST mode (no fault):
BIST mode with fault injection:
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | bist_en | bist_pass | cycle_count[0] |
| 1 | fault_inject | bist_fail | cycle_count[1] |
| 2 | a_in[0] | bist_done | cycle_count[2] |
| 3 | a_in[1] | sum_out[3] | cycle_count[3] |
| 4 | a_in[2] | sum_out[4] | cycle_count[4] |
| 5 | a_in[3] | sum_out[5] | cycle_count[5] |
| 6 | a_in[4] | sum_out[6] | a_in[6] |
| 7 | a_in[5] | sum_out[7] | a_in[7] |