Hardware fault analysis