A lot of designs, today, have multiple clock signals. Even in our rather simple exercise a second 100 kHZ pops up. When multiple clock signals are present, special attention is required !!
All the components that are synchronised to one clock form a group that is called a clock domain. In our example we have two clock domains (the 100 MHz and the 100 kHz).
When signals switch from one clock domain to the other, bad stuff can happen. There is an EE Times article that explains the possible issues (and fixes) very well. The three main issues with clock domain crossing are:
The aforementioned article presents a nice flow chart that helps you to clean your design
During Jo Vliegen his final two job interviews, he was asked to explain the threats in and solutions for clock domain crossing.
Not to complicate the design too much, it is best to keep as much of the design as possible in a single clock domain. One fact which we can rely on is that the frequencies of both clocks is fixed, their phase shift, however is unknown.