On the design and test of asynchronous macros embedded in synchronous systems