※ 引述《skkks (肉多肚子大)》之銘言:
: ※ 引述《kuraki7up (Make Mai Day)》之銘言:
: : ┌───┐ ┌────┐
: : │ out├─DATA─┤in out├─DATA
: : │A out├─CLKA─┤in B out├─CLKB
: : └───┘ └────┘
: 我想你的CLKA與CLKB不是同步的~只是在頻率規格上頻率相同~
: CLKB與CLKA的source 不同~~如來自不同OSC~
: 2700000.....1 HZ與2700000......2HZ是不同的
: 自然一段時間會錯個一筆
:
看起來你的 B_module 跟 A_module 之間是 async 的
也許 B這塊應該就是一個單純的 synchronizer囉
最簡單的synchronizer必須要直接接兩個register(D-flip flop)且應該都是接CLKB
兩科直接串在一起 可以較容易避免亞穩化(metastable)的問題
我猜隔一段時間會錯的理由就是因為metastable發生...
不過正常的case來說 synchronizer 都有所謂的 mean-time-to-failure 的問題
在不然的話 可能就要用真正的 async ckt來解了..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.75.198