Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons