In reply to Harsha vardhan:
there is no problem if the read/write address(pointer) is encoded with gray code, even if there is big frequency difference cross the two clock domain, because every time the write/read pointer is synchronized to another domain, there is only one bit may change.