You have shown 100% of exhaustive testing of a 32 bit multiplier is impossible in many thousand lifetimes !
So now you have to decide how much you can really want to test this mutiplier.
Let me consider the other extreme where someone is happy with minimal testing
So if we break the inputs into two bins .
Inp1_Lower_Half_Bin = [ 0 … (2^16-1)]
Inp1_Upper_Half_Bin = [(2^16)…(2^32-1)]
Inp2_Lower_Half_Bin = [ 0 … (2^16-1)]
Inp2_Upper_Half_Bin = [(2^16)…(2^32-1)]
Let us say we will be happy if we test with one number from each of the bins.
We can pick a random number within a bin. In this scenario, we have to only do 4 tests
Obviously this is not sufficient ( and will not be acceptable to any verification team).
So let us break the inputs into 4 bins … The number of tests will increase to 16
Similarly if we break the inputs into n bins … the number of tests will now be 2^n.
Pick an “n” where you will be comfortable. n=20 will give you 1Million tests to run.
Logie Ramachandran
Verikwest Systems Inc