Using formal to exhaustively determine unsafe clock ratios between asynchronous blocks