Re: [問題] 關於Clock Domain Crossing的基本觀念
※ 引述《phifunction ()》之銘言:
: 大家好
: 小弟在Clock Domain Crossing這邊有些觀念不是很清楚
: 想要請教各位大大
: 一般來說
: 只要是control signal (1-bit)在跨clock domain時
: 通常都是用兩級FF來做synchronize的動作
: 但是如果是bus的話
: 通常會用Asynchronous FIFO來處理
: 小弟不才
: 不懂為什麼在處理multi-bit的時候不能也用兩級FF來處理呢
: 找了一些paper
: 好像都是直接說遇到multi-bit就是用Async. FIFO來處理
: 接著就探討FIFO的設計
: 不知道有沒有好心的大大可以指點一下小弟 > <"
: 感恩不盡~~~
對 sequ. logic, "synchronous" 指 signal transition
與 clock 具有 alignment. 無論 single bit, multi-bit bus,
經過 latch elements 而不改變邏輯
假設2-stage F/F 消除某 CDC 邏輯經過 asyn path 因 metastable 造成 latch
undefine state, 此電路僅保證該 single-bit logic 經過 syncer. 非 0 即 1,
對於 multi-bit bus 而言, 不保證通過 2nd-stage F/Fs, 仍與前一 clock
domain 所有邏輯相同, 故 synchronizer 不適合處理 multi-bit signals CDC
對於 multi-bit bus, 若其任意 transition period > signal CDC 時間
可用 mux-based synchronizer 處理, 使訊號完整跨過另一 clock domain
再度同步, valid bit CDC 可用 pulse-level 轉換, 不在乎 slow-to-fast
或是 fast-to-slow CDC
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.169.157.4
推
09/24 14:45, , 1F
09/24 14:45, 1F
討論串 (同標題文章)