實(shí)現(xiàn)USB3.0物理層中彈性緩沖的設(shè)計(jì)方案
3.1 USB3.0中SKP刪除
當(dāng)接收時鐘域的symbol lock有效時,寫使能才可能有效。一直可以寫到FIFO處于半滿狀態(tài),此時FIFO處于臨界狀態(tài),讀寫速率的差別將導(dǎo)致不同閥值的觸發(fā)。下圖是SKP對的刪除。
圖 7 SKP對刪除
檢測單元用來檢測進(jìn)入FIFO的數(shù)據(jù)是否為SKP,起到標(biāo)注SKP窗口的作用,為SKP的刪除提供了窗口。閥值監(jiān)測單元一直監(jiān)測FIFO中有效數(shù)據(jù)的數(shù)量。如果數(shù)量大于刪除閥值(FIFO中有10個有效數(shù)據(jù)),并且SKP窗口有效,那么彈性緩沖暫停指針,屏蔽SKP對,以此來達(dá)到刪除SKP對的目的。但是USB3.0中的SKP都是成對出現(xiàn)的,因此刪除SKP對的時候要注意奇偶性。
所以采用狀態(tài)機(jī)來設(shè)計(jì)USB3.0中SKP對的刪除,如下圖。當(dāng)SKP窗口無效的時候,狀態(tài)處于idle;當(dāng)SKP窗口有效而且刪除閥值觸發(fā)時,狀態(tài)進(jìn)入了屏蔽狀態(tài);在SKP窗口 有效的情況,屏蔽狀態(tài)持續(xù)到刪除閥值標(biāo)志無效;當(dāng)SKP窗口無效,或者刪除閥值標(biāo)志無效而且被屏蔽SKP個數(shù)是偶數(shù)個,則狀態(tài)返回到idle狀態(tài)。
指針屏蔽verilog代碼如下。
3.2 USB3.0中SKP添加
SKP添加模塊包括斷點(diǎn)保存、寫指針跳躍與握手、讀指針生成與輸出控制模塊 SKP添加發(fā)生在讀時鐘快于寫時鐘的時候,在正常情況下,彈性緩沖的讀操作與普通的FIFO沒有任何區(qū)別。
圖 9 SKP添加結(jié)構(gòu)
3.2.1 斷點(diǎn)保存
在常半滿模式下,讀寫指針相差8個時鐘。因此在寫指針發(fā)生事件,要經(jīng)過8個左右的 時鐘才能傳遞到讀指針。在出現(xiàn)SKP窗口的時候,如果添加閥值標(biāo)志觸發(fā),則讀指針要經(jīng)過8個時鐘才能添加SKP。
評論