1. A method comprising: generating transaction level bus simulation instructions by using a bus protocol comprising; parsing the bus protocol to generate a description suitable to derive a finite state machine representative of the bus protocol; and generating the finite state machine by using the description; and generating a synchronous finite state machine by using the description; and generating an optimized finite state machine by using the synchronous finite state machine; and generating an asynchronous finite state machine by using the optimized finite state machine; and generating hypercubes, where a given hypercube describes possible sequences of events associated with a single transition in the optimized finite sate machine; and generating the transaction level bus simulation instructions by using the asynchronous finite state machine; and simulating a plurality of different designs for a bus by executing the same transaction level bus simulating instructions