• Techo

[IC設計] 使用 Mux synchronizer (Qualifier)解決 bus 跨 clock domain crossing(CDC)的問題

更新日期:2019年12月16日

在 cdc 的問題中

有的時候我們可能需要將一條上千個 bit 的 bus 單向傳輸到另外一個時域

如果我們將整條bus的訊號都使用 two flip-flop synchronizer

那電路DFF的使用量將會暴增

那如果我們使用 Asynchronous FIFO

由於我們只是需要單向跨clock domain

而不是雙向的來回handshaking

使用非同步FIFO同樣會產生大量沒用到的DFF造成電路面積上升

這個時候就要使用Qualifier也就是Mux synchronizer 來跨時域


如下圖

我們今天想要跨時域的是圖中的Data bus

想要將 data bus 從 clkA 轉到 clkB(不論誰的頻率快慢都一樣)

我們透過 data bus 的 valid 訊號(屬於clkA)

也就是圖中的 data enable A

將 data enable A 使用 two flip-flop synchronizer 跨到 clkB

也就是 data enable B

並且使用 data enable B當作最右邊DFF的 flip-flop enable 訊號(在圖中使用mux來示意)

由於data enable A 的時序等同於 data bus

跨到data enable B 時也就保證了 data bus 穿過 DFF 的訊號已經穩定

即可拿來鎖入最後一級DFF

最後一級的DFF的Q即是data bus存在於clk B domain的穩定訊號


1988 次瀏覽
Logo2020.JPG
  • Instagram - White Circle
  • Google+ - White Circle
  • Facebook - White Circle

Contact Us

Techo私人程式家教

官方LINE ID : @tutortecho

zh-Hant.png

© Copyright 2018 by Sherry Wu and Techo Chao.

Proudly created with Wix.com,

but page loading is too slow,so I don't recommend it.