FPGA時(shí)鐘進(jìn)階2——跨時(shí)鐘域傳遞多比特信號(hào)處理
跨時(shí)鐘域傳遞多比特信號(hào)的問(wèn)題是,在同步多個(gè)信號(hào)到一個(gè)時(shí)鐘域時(shí)將可能發(fā)生數(shù)據(jù)變化歪斜(Skew),這種數(shù)據(jù)歪斜最終會(huì)在第二個(gè)時(shí)鐘域的不同的市長(zhǎng)上升沿被采集。
避免歪斜策略:
1、多比特信號(hào)融合策略,在可能的情況下,將多比特跨時(shí)鐘域信號(hào)融合成單比特跨時(shí)鐘域信號(hào);
2、多周期路徑規(guī)劃策略,使用同步加載信號(hào)來(lái)安全的傳遞多比特跨時(shí)鐘域信號(hào);
3、使用格雷碼傳遞多比特跨時(shí)鐘信號(hào)。
?
1、多比特信號(hào)融合:
第一個(gè)例子比較簡(jiǎn)單,加載(load)信號(hào)和使能(enable)信號(hào)同時(shí)有效來(lái)加載一個(gè)數(shù)值寄存器,這兩個(gè)信號(hào)之間可能有一點(diǎn)歪斜,導(dǎo)致沒(méi)有生效。

解決辦法:由于這兩個(gè)信號(hào)是同時(shí)起效的,所以可以直接合成一個(gè)信號(hào)

第二個(gè)例子,在發(fā)生時(shí)鐘域先后有兩個(gè)使能信號(hào)(不是同時(shí)有效),B_en1信號(hào)正好稍微在B_en2有效結(jié)束前有效。

解決:將兩個(gè)使能信號(hào)融為一個(gè)控制信號(hào),其次要加一個(gè)額外的寄存器將同步后的使能控制信號(hào)寄存一拍(使其延遲一個(gè)時(shí)鐘周期)。

2、多周期路徑規(guī)劃
多周期路徑規(guī)劃是一種通用的安全傳遞多比特跨時(shí)鐘域信號(hào)技術(shù)。
指在傳輸非同步數(shù)據(jù)到接收時(shí)鐘域時(shí)配上一個(gè)同步的控制信號(hào),數(shù)據(jù)和控制信號(hào)被同時(shí)發(fā)送到接收時(shí)鐘域,同時(shí)控制信號(hào)在接收時(shí)鐘域使用兩級(jí)寄存器同步到接收時(shí)鐘域。
好處:
1、在時(shí)鐘域之間發(fā)生數(shù)據(jù)時(shí)發(fā)生時(shí)鐘域無(wú)須計(jì)算對(duì)應(yīng)的脈沖寬度;
2、發(fā)送時(shí)鐘域只需要切換一個(gè)使能到接收時(shí)鐘域來(lái)顯示數(shù)據(jù)已經(jīng)被傳遞且已準(zhǔn)備被加載。使能信號(hào)無(wú)需返回到原始狀態(tài)。
?

異步FIFO處理多比特跨時(shí)鐘域信號(hào):
網(wǎng)上對(duì)于FIFO的用法已經(jīng)非常多了,我這里就不在多寫(xiě)了。

