看板 Electronics 關於我們 聯絡資訊
http://w2.cadence.com/whitepapers/cdc_wp.pdf 除了推文中的連結外,我覺得這也滿有用的, double sync其實是工程師滿常用的方法,是用來處理 level且是1 bit的訊號,若是兩個bit以上,就必須參 考推文中的內容,需要有gary code轉換的動作,目前 在project中滿常看到是處理fifo或是momory的addr訊 號.. 上面講到的是處理level,若是要處理1T的pulse,不能 只做double sync而已,不過這有點難解釋,詳細的情形 還是參考文件的圖吧! 籠統的描述大概是 step1:先在原本的clk_a做出一個很長的pulse step2:然後在triple sync到clk_b做成一個訊 號叫syn_d3(隨便取的名字),最後把syn_d2和 syn_d3做X-or出來一個pulse 不過這不是唯一的方法... 強調一點,上面講的都是對於"控制訊號",不是data... data要cross clock domain參考一下文件說明... 以上的東西其實在網路上都可以找到現成的module,工作上 只要知道怎麼用就行了,而真正最難的地方在於,crossing clock domain的問題,在於整體的電路都會因為sync的處理 造成電路會有時間差,很多判斷訊號都會有延遲,有時候會 跟你預期的相差幾T的時間.. coding完成後,最好還要用cdc的tool做check,以免有些訊 號沒做同步化的處理.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.72.208 ※ 編輯: sasako 來自: 118.169.72.208 (05/10 01:30)