We are given the following parameters:
Virtual address size = 32 bits
Page size = 4 KB = \(2^{12}\) bytes
Number of entries in TLB = 128
The TLB is 4-way set associative.
Step 1: Calculate the number of bits for the offset.
The page size is 4 KB, so the offset will be 12 bits, because:
\[
{Offset bits} = \log_2(4 \, {KB}) = 12 \, {bits}.
\]
Step 2: Calculate the number of bits for the TLB index.
The total number of entries in the TLB is 128, and it is 4-way set associative. The number of sets in the TLB is:
\[
{Number of sets} = \frac{{Number of entries in TLB}}{{Associativity}} = \frac{128}{4} = 32.
\]
Thus, the number of bits for the index is:
\[
{Index bits} = \log_2(32) = 5 \, {bits}.
\]
Step 3: Calculate the number of bits for the TLB tag.
The total number of bits for the virtual address is 32. The total number of bits used by the offset and the index is \(12 + 5 = 17\) bits. Therefore, the number of bits for the TLB tag is:
\[
{Tag bits} = 32 - 17 = 15 \, {bits}.
\]
Thus, the correct answer is:
\[
\boxed{15 \, {bits}}.
\]