Learning

导航

多时钟系统-4 Crossing clock domains - Data bus

Crossing clock domains - Data bus

Data bus to another clock domain

To move a data bus (2 bits wide or more) from one clock domain to another, we have several techniques to our disposal.
Here are a few ideas.

  1. Gray code: If the data bus is a monotonic counter (i.e. only incrementing or decrementing), we can convert it to a gray code, which has the ability to cross clock domains (under certain timing conditions).
  2. Data freeze: If the data bus is non-monotonic, use a flag to signal the other domain to capture the value (while it is frozen in the source clock domain).
  3. Data burst: If the data bus has many consecutive values that need to cross the clock domain, use an asynchronous FIFO, where you push values from the source clock domain, and read back values at the other domain.

That's all folks!
Have fun crossing clock domains.

posted on 2009-07-13 19:27  xinjie  阅读(271)  评论(0编辑  收藏  举报