So clock that drives the 48 logic is derived from the clock that drives the 64 logic? If this is the case, then you know that your clocks have a guaranteed relationship and you don't need to worry about clock drift. This makes your job easier.
Is there a reason that you need a RAM? Do you need to be able to access the value of the RAM out of order? I would suggest using a FIFO if you can, it will make your job easier. You won't need to keep track of read/write addresses.
Just make sure that you isolate the two clock domains. I would recommend putting all logic that writes to the RAM or FIFO in one file, and putting all logic that reads to the RAM or FIFO in another file. The RAM/FIFO can exist at the TOP level that instantiates the two lower level components.
This will help you ensure no clock domains are being crossed in strange places. The RAM/FIFO should be your ONLY interface between the two domains.