當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]  所以采用狀態(tài)機(jī)來設(shè)計(jì)USB3.0中SKP對(duì)的刪除,如下圖。當(dāng)SKP窗口無效的時(shí)候,狀態(tài)處于idle;當(dāng)SKP窗口有效而且刪除閥值觸發(fā)時(shí),狀態(tài)進(jìn)入了屏蔽狀態(tài);在SKP窗口 有效的情況,屏蔽狀態(tài)持續(xù)到刪除閥值標(biāo)志無效;當(dāng)SKP

  所以采用狀態(tài)機(jī)來設(shè)計(jì)USB3.0中SKP對(duì)的刪除,如下圖。當(dāng)SKP窗口無效的時(shí)候,狀態(tài)處于idle;當(dāng)SKP窗口有效而且刪除閥值觸發(fā)時(shí),狀態(tài)進(jìn)入了屏蔽狀態(tài);在SKP窗口 有效的情況,屏蔽狀態(tài)持續(xù)到刪除閥值標(biāo)志無效;當(dāng)SKP窗口無效,或者刪除閥值標(biāo)志無效而且被屏蔽SKP個(gè)數(shù)是偶數(shù)個(gè),則狀態(tài)返回到idle狀態(tài)。

  指針屏蔽verilog代碼如下。

  3.2 USB3.0中SKP添加

  SKP添加模塊包括斷點(diǎn)保存、寫指針跳躍與握手、讀指針生成與輸出控制模塊 SKP添加發(fā)生在讀時(shí)鐘快于寫時(shí)鐘的時(shí)候,在正常情況下,彈性緩沖的讀操作與普通的FIFO沒有任何區(qū)別。

圖 9 SKP添加結(jié)構(gòu)

  3.2.1 斷點(diǎn)保存

  在常半滿模式下,讀寫指針相差8個(gè)時(shí)鐘。因此在寫指針發(fā)生事件,要經(jīng)過8個(gè)左右的 時(shí)鐘才能傳遞到讀指針。在出現(xiàn)SKP窗口的時(shí)候,如果添加閥值標(biāo)志觸發(fā),則讀指針要經(jīng)過8個(gè)時(shí)鐘才能添加SKP。

  對(duì)于添加SKP對(duì),讀指針如何才能知道要添加多少呢?因此讀指針需要寫指針去引導(dǎo)。在設(shè)計(jì)中,采用了斷點(diǎn)保存和握手來解決。在SKP窗口出現(xiàn)和添加閥值標(biāo)志有效時(shí)候,寫指針在此時(shí)計(jì)算FIFO中的有效數(shù)據(jù)個(gè)數(shù),根據(jù)FIFO中有效數(shù)據(jù)的個(gè)數(shù)與8的差距來決定wrptr_nxt所指向的下一個(gè)指針點(diǎn),這就是寫指針跳躍。并且在寫時(shí)鐘域把當(dāng)前的寫指針和下一個(gè)所指向的指針點(diǎn)保存起來。在彈性緩沖設(shè)計(jì)中,讀指針永遠(yuǎn)落后于寫指針。

圖 10 寫指針保存斷點(diǎn)

  3.2.2 握手

  寫指針在出現(xiàn)SKP窗口和SKP添加閥值觸發(fā)的時(shí)候,發(fā)生了跳躍,并保存了斷點(diǎn),但這只是在寫時(shí)鐘域。由于讀指針晚于寫指針,因此采用握手來通知讀時(shí)鐘域何時(shí)添加SKP。如下圖,當(dāng)SKP窗口出現(xiàn),并且添加閥值觸發(fā)時(shí),彈性緩沖保存了斷點(diǎn),并向讀時(shí)鐘域發(fā)起了請(qǐng)求(req),請(qǐng)求一直持續(xù)到讀指針讀到了斷點(diǎn)的起始地址(start_rptr),此時(shí),讀指針讀到了斷點(diǎn)的起始地址,并向?qū)憰r(shí)鐘發(fā)送收到(ack)。當(dāng)寫時(shí)鐘域收到讀時(shí)鐘域的ack信號(hào),撤銷req。讀時(shí)鐘域一旦讀到了截止地址(end_ptr)自動(dòng)撤銷ack信號(hào)。在整個(gè)讀時(shí)鐘域的ack過程中,SKP對(duì)被添加。

圖11 握手

  3.2.3 輸出控制

  彈性緩沖FIFO讀寫控制的過程中,寫先于讀,首先根絕延遲要寫到規(guī)定的要求,此時(shí)寫有效讀無效(定義為W1R0)。當(dāng)達(dá)到規(guī)定的閥值之后,讀寫同時(shí)有效(W1R1)。等到寫結(jié)束, 即一個(gè)包接收完畢,但是讀不一定結(jié)束(W0R1),直至讀到空,即所有數(shù)據(jù)已經(jīng)同步到本地了(W0R0)表示此次任務(wù)結(jié)束。這種流程控制為了保持這個(gè)數(shù)據(jù)的完整性。

圖 12 讀寫流程控制

  USB協(xié)議中明確規(guī)定SKP對(duì)為2個(gè)連續(xù)的SKP symbol。根據(jù)8b10b原則,2個(gè)連續(xù)的SKP對(duì)的游程是相反的,并且SKP對(duì)的添加要符合8b10b3的規(guī)則。

  中要求,在彈性緩沖下溢的時(shí)候,要添加一個(gè)EDB字符,并且顯性的用下溢標(biāo)志。如下圖,在rx-g與rx-h之間,由于讀快于寫,導(dǎo)致了下溢。因此需要添加一個(gè)EDB字符,并使能一個(gè)時(shí)鐘的下溢,并且置狀態(tài)。

圖 13 彈性緩沖下溢

  PIPE3.0中要求,在彈性緩沖上溢的時(shí)候,丟掉一個(gè)數(shù)據(jù),并且置狀態(tài)。如下圖rx-f、rx-g與rx-h,由于溢出,rx-g被丟棄,并且置狀態(tài)。

圖 14 彈性緩沖上溢

  5.總結(jié)

  本文通過分析彈性緩沖的作用與機(jī)制,采用異步時(shí)鐘FIFO來設(shè)計(jì)彈性緩沖。并且根據(jù)USB3.0協(xié)議要求,提出了斷點(diǎn)保存、指針跳躍與握手、指針屏蔽等方法來設(shè)計(jì)彈性緩沖。本設(shè)計(jì)充分考慮了PIPE 3.0標(biāo)準(zhǔn)的要求與實(shí)際需要,并且應(yīng)用于工程中,實(shí)現(xiàn)了彈性緩沖補(bǔ)償時(shí)鐘的目的。

 

 1.引言

  彈性緩沖由Maurice Karnaugh在電話網(wǎng)絡(luò)中傳輸PCM信號(hào)中提出來的。隨后人們?cè)诤芏嗖煌膽?yīng)用中采用了彈性緩沖技術(shù)來同步數(shù)據(jù),很多協(xié)議例如USB、PCIE、以太網(wǎng)等。

  USB3.0是一個(gè)高速,串行,源同步數(shù)據(jù)傳輸協(xié)議。但是數(shù)據(jù)經(jīng)過傳輸線與原數(shù)據(jù)發(fā)生了很大的偏差。本文從USB3.0的角度分析了彈性緩沖機(jī)制,解釋了與其他設(shè)計(jì)的不同,并采用指針控制與握手的設(shè)計(jì)方法實(shí)現(xiàn)。

  2.彈性緩沖作用

  2.1 USB3.0彈性緩沖作用域

  在USB3.0中數(shù)據(jù)傳輸采用雙單工,因此物理層設(shè)計(jì)為接收、發(fā)送2組差分對(duì)傳輸部分。傳輸線是承載數(shù)據(jù)傳輸?shù)妮d體。因此如何從傳輸線正確接收數(shù)據(jù),并把它同步到系統(tǒng)內(nèi)部時(shí)鐘域,變的十分關(guān)鍵。

  USB3.0中規(guī)定的物理層接收部分結(jié)構(gòu)圖如下,它包括差分接收、時(shí)鐘數(shù)據(jù)恢復(fù)、串并轉(zhuǎn)換和8B10B譯碼。

圖 1USB3.0物理層接收部分結(jié)構(gòu)

  整個(gè)數(shù)據(jù)流向自上而下,差分輸入經(jīng)過差分接收,從差分信號(hào)中提取出時(shí)鐘,并用恢復(fù)出來的時(shí)鐘來恢復(fù)出數(shù)據(jù)(CDR)?;謴?fù)出來的數(shù)據(jù)在接收時(shí)鐘域進(jìn)行串并轉(zhuǎn)換為10bit位寬并行數(shù)據(jù)1,并檢測USB3.0包起始標(biāo)志符(K28.5)。一旦檢測到起始標(biāo)志符K28.5,使能符號(hào)有效(symbol lock),直至檢測到結(jié)束符號(hào),才結(jié)束符號(hào)有效。

  彈性緩沖從串并轉(zhuǎn)換接收數(shù)據(jù),所有的接收數(shù)據(jù)與控制都工作在接收時(shí)鐘域(receive clock)。因此彈性緩沖要把數(shù)據(jù)與控制同步到系統(tǒng)時(shí)鐘域(system clock)。把數(shù)據(jù)向下傳遞給8B10B譯碼模塊,而后傳遞給系統(tǒng)內(nèi)部。

  2.2 彈性緩沖容量

  USB3.0中,協(xié)議規(guī)定允許的時(shí)鐘精度為-5300ppm到300ppm。而符號(hào)時(shí)鐘頻率為2ns即2000ps,最壞情況下每178個(gè)symbol添加或者刪除一個(gè)SKP,也就是每356個(gè)symbol添加或者刪除一個(gè)SKP對(duì)(SKP Order Sets)。USB3.0中包最長為1052字節(jié),所以最差情況下,最多可以添加或刪除8個(gè)SKP或者4個(gè)SKP對(duì),所以彈性緩沖至少要能緩沖8個(gè)SKP。USB3.0協(xié)議規(guī)定每個(gè)SKP order sets為2個(gè)連續(xù)的SKP symbol。因此在10B8B譯碼前,SKP order set的游程(running disparity)應(yīng)該是互補(bǔ)的。

  通過計(jì)算得知,彈性緩沖的緩沖容量為8。本文設(shè)計(jì)采用常半滿2(normal half full)模式來設(shè)計(jì)彈性緩沖,所以彈性緩沖容量為16,在正常情況下里面應(yīng)該有8個(gè)數(shù)據(jù),剩下的8個(gè)為緩沖空間,因此叫常半滿。常半滿模式首先要向緩沖中寫滿8個(gè)symbol,達(dá)到半滿,然后讀使能才可以有效,因此大約有8個(gè)時(shí)鐘的延遲。常半滿模式只有在symbol隊(duì)列中出現(xiàn)SKP對(duì)才能添加或者刪除SKP對(duì)。下圖為常半滿輸入輸出時(shí)序圖。

圖 2 常半滿輸入輸出時(shí)序

  從上圖可以看出,rx_valid_out有效要晚于rx_valid_in約8個(gè)時(shí)鐘沿;而無效卻晚于rx_valid_out約0至16個(gè)時(shí)鐘沿(取決于時(shí)鐘精度差)。因此常半滿需要8個(gè)時(shí)鐘延遲才能輸出數(shù)據(jù)。

  2.3 彈性緩沖機(jī)制

  彈性緩沖本質(zhì)上是讀寫同時(shí)受控的異步FIFO,常半滿(normal half full)FIFO,其深度為16,首先要寫滿8個(gè)有效數(shù)據(jù),并一直維持在半滿的狀態(tài)。因此在正常情況下,F(xiàn)IFO一直處于或接近半滿狀態(tài),當(dāng)讀寫時(shí)鐘一樣快慢的時(shí)候,F(xiàn)IFO中有8個(gè)有效數(shù)據(jù)。

圖 3 常半滿讀寫同等速率

  當(dāng)讀時(shí)鐘快于寫時(shí)鐘,讀出的數(shù)據(jù)多于寫入的數(shù)據(jù),常半滿模式可能導(dǎo)致FIFO中的數(shù)據(jù)數(shù)量少于8,甚至有可能被讀空。如下圖所示,在出現(xiàn)SKP窗口的時(shí)候,F(xiàn)IFO中的有效數(shù)據(jù)為4,比常態(tài)少4。所以此時(shí),彈性緩沖應(yīng)該添加4個(gè)SKP,使得FIFO維持半滿,以此來調(diào)節(jié)時(shí)鐘。此時(shí)讀指針向前跳躍4個(gè)間隔,并且當(dāng)讀指針讀到跳躍區(qū)間時(shí),完成SKP添加。

圖 4 常半滿模式讀快于寫

  當(dāng)讀時(shí)鐘慢于寫時(shí)鐘,寫入的數(shù)據(jù)多于讀出的數(shù)據(jù),常半滿模式可能導(dǎo)致FIFO中的數(shù)據(jù)數(shù)量多于8,甚至有可能被寫滿。如下圖所示,在出現(xiàn)SKP窗口的時(shí)候, FIFO中有效數(shù)據(jù)為10,比常態(tài)多2. 所以此時(shí),彈性緩沖應(yīng)該刪除2個(gè)SKP,使得FIFO維持半滿,以此來調(diào)節(jié)時(shí)鐘。此時(shí)寫指針應(yīng)該暫停2個(gè)時(shí)鐘周期,完成SKP刪除。

圖 5 常半滿寫快于讀

  3.彈性緩沖結(jié)構(gòu)

  常半滿模式下彈性緩沖的結(jié)構(gòu)設(shè)計(jì),可以分為接收時(shí)鐘域控制、系統(tǒng)時(shí)鐘域控制、閥值檢測與同步。接收時(shí)鐘域控制包括,寫控制與寫指針控制。系統(tǒng)時(shí)鐘域控制包括讀控制與讀指針控制。閥值檢測與同步包括SKP添加刪除閥值與時(shí)鐘域之間的同步。

圖 6 常半滿模式彈性緩沖結(jié)構(gòu)

  3.1 USB3.0中SKP刪除

  當(dāng)接收時(shí)鐘域的symbol lock有效時(shí),寫使能才可能有效。一直可以寫到FIFO處于半滿狀態(tài),此時(shí)FIFO處于臨界狀態(tài),讀寫速率的差別將導(dǎo)致不同閥值的觸發(fā)。下圖是SKP對(duì)的刪除。

圖 7 SKP對(duì)刪除

檢測單元用來檢測進(jìn)入FIFO的數(shù)據(jù)是否為SKP,起到標(biāo)注SKP窗口的作用,為SKP的刪除提供了窗口。閥值監(jiān)測單元一直監(jiān)測FIFO中有效數(shù)據(jù)的數(shù)量。如果數(shù)量大于刪除閥值(FIFO中有10個(gè)有效數(shù)據(jù)),并且SKP窗口有效,那么彈性緩沖暫停指針,屏蔽SKP對(duì),以此來達(dá)到刪除SKP對(duì)的目的。但是USB3.0中的SKP都是成對(duì)出現(xiàn)的,因此刪除SKP對(duì)的時(shí)候要注意奇偶性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉