Learning how to properly cross clock domains is invaluable for digital design in general. Good thing IMO you run into this, because you definitely WILL need that knowledge on a regular basis, and this is one of the most overlooked issue (IME) for beginners (and some more experienced designers alike!)
Keep in mind those issues are there even more often than you may think. Implementing a simple UART requires properly dealing with clock domain crossing (since your UART RX will be asynchronous, so by nature on a different clock domain.) I've seen many "naive" UART implementations not properly dealing with that and spectacularly failing (of course more or less randomly - that's often the nature of metastability issues), giving endless headaches.
Good reading. You'll find a lot of stuff to read on the topic. If you need further help, you can always come back, but I think learning by yourself first will be more profitable.