• 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的穩定訊號


3134 次瀏覽0 則留言

最新文章

查看全部

[科技產業] IC設計股價起飛中,我該換工作嗎?

一兩個月前接到高通 Qualcomm 的電話 說是要發offer給我 由於距離面試結束後已經過了四五個月 時機已不同所以一些因素我婉拒了這個 offer 但後來不斷有 recruiter 或是 headhunter 一直寄信給我 例如 Arm china, Nvidia, Google, SiFive 在這個時機點都瘋狂地找人 讓我不禁懷疑真正的IC設計時代難道現在才開始嗎? 我留下這篇文章來記錄

Logo2020.JPG