1. A method, comprising: performing a read-only memory (ROM) built-in-self-test (BIST) to determine a bit failure; identifying a row having the bit failure; comparing columns of the row having the bit failure with expected results to determine the location of the bit failure; performing a soft repair to repair the bit failure in a ROM; determining whether the soft repair corrected the bit failure using a functional BIST; and performing a hard repair to store a corrected data value in a hardware component when the soft repair corrected the bit failure, wherein the identifying the row having the bit failure comprises: predetermining an expected multiple input signature register (MISR) value for a first half of rows of a ROM bit cell array; comparing the first half of the rows with the expected MISR value; determining whether the bit failure is in the first half of the rows or a second half of the rows; splitting the determined half of the rows having the bit failure into a first half and a second half; and iteratively comparing the determined half of the rows to the expected MISR value and determining whether the bit failure is in the first half or the second half of the determined half of the rows.