欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種應(yīng)用于usb3.0的彈性緩沖結(jié)構(gòu)及方法

文檔序號(hào):6369374閱讀:235來源:國(guó)知局
專利名稱:一種應(yīng)用于usb3.0的彈性緩沖結(jié)構(gòu)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種應(yīng)用于USB3. 0的彈性緩沖結(jié)構(gòu)。
背景技術(shù)
通用串行總線3. 0 (Universal Serial Bus 3. 0,USB3. 0)是由 Intel、Microsoft、NEC等公司于2008年11月公布的標(biāo)準(zhǔn)。USB是近些年來應(yīng)用在PC領(lǐng)域的新型接口技術(shù)。相對(duì)于USB2. 0,USB3. 0依然屬于高速,串行,源同步的傳輸協(xié)議。在發(fā)送端采用差分對(duì)的方式發(fā)送串行數(shù)據(jù),在接收端利用時(shí)鐘和數(shù)據(jù)恢復(fù)電路(Clock and Data Recovery,⑶R)從串行數(shù)據(jù)中恢復(fù)出串行數(shù)據(jù)和時(shí)鐘。由于USB3.0的收發(fā)兩端支持獨(dú)立的參考時(shí)鐘源,所以接收端恢復(fù)出的時(shí)鐘頻率和其本地時(shí)鐘頻率存在差別。為了補(bǔ)償兩個(gè)時(shí)鐘的頻率差別,需要一個(gè)彈性緩沖(Elastic buffer),將⑶R恢復(fù)的時(shí)鐘域數(shù)據(jù)有效的同步到本地時(shí)鐘域中。 彈性緩沖由Maurice Karnaugh在電話網(wǎng)絡(luò)中傳輸脈沖編碼調(diào)制(Pulse CodeModulation, PCM)信號(hào)中提出來的。彈性緩沖通過插入和刪除某一特殊的符號(hào)來實(shí)現(xiàn)時(shí)鐘補(bǔ)償?shù)哪康?,并能夠穩(wěn)定的在兩個(gè)時(shí)鐘域間同步數(shù)據(jù),因此,彈性緩沖在很多技術(shù)應(yīng)用中被采用,例如USB、PCIE、以太網(wǎng)等協(xié)議中都采用了彈性緩沖技術(shù)來同步數(shù)據(jù)。然而在USB3.0協(xié)議下,尚無適用于USB3. 0物理層的彈性緩沖。

發(fā)明內(nèi)容
針對(duì)上述技術(shù)問題,本發(fā)明設(shè)計(jì)一種依據(jù)USB3.0協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了適用于USB3. 0物理層的彈性緩沖結(jié)構(gòu)以及其方法。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下一種應(yīng)用于USB3. 0的彈性緩沖結(jié)構(gòu),包括輸入檢測(cè)模塊、二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊、同步模塊、讀寫控制模塊、閾值監(jiān)視模塊和輸出控制模塊;所述輸入檢測(cè)模塊負(fù)責(zé)檢測(cè)輸入數(shù)據(jù)中是否包含SKP,如果輸入數(shù)據(jù)中包含SKP則給出指示信號(hào),所述指示信號(hào)和所述閾值監(jiān)視模塊給出的刪除或者插入SKP信號(hào)一起,用來控制所述讀寫控制模塊完成SKP的刪除或者插入;所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊負(fù)責(zé)產(chǎn)生彈性緩沖的二進(jìn)制碼和格雷碼讀寫指針;所述同步模塊利用所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的格雷碼來實(shí)現(xiàn)格雷碼讀寫指針在讀寫時(shí)鐘域之間的同步,所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的二進(jìn)制碼作為存儲(chǔ)單元的地址輸入,將格雷碼的讀指針,經(jīng)過兩個(gè)寫時(shí)鐘控制的寄存器同步到寫時(shí)鐘域中,然后將寫指針和同步到寫時(shí)鐘域的讀指針做比較產(chǎn)生FIFO滿的標(biāo)志,將寫指針同步到讀時(shí)鐘域中產(chǎn)生FIFO空的標(biāo)志;所述閾值監(jiān)視模塊將同步到寫時(shí)鐘域中的格雷碼讀指針轉(zhuǎn)化為二進(jìn)制碼并且與二進(jìn)制碼的寫指針比較來判斷FIFO中的有效數(shù)據(jù),當(dāng)FIFO中的數(shù)據(jù)少于等于6時(shí),添加SKP, add_skp信號(hào)有效,當(dāng)FIFO中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp信號(hào)有效;寫指針控制模塊根據(jù)dele_Skp或者add_skp信號(hào)是否有效,來完成刪除輸入數(shù)據(jù)中的SKP或者是在FIFO中插入新的SKP的功能,所述輸出控制模塊和所述寫指針控制模塊一起完成SKP的插入功能;讀指針控制模塊,根據(jù)symbol_lock信號(hào)來控制讀使能信號(hào)。進(jìn)一步的,所述FIFO對(duì)SKP的刪除是通過SKP刪除模塊實(shí)現(xiàn)的。進(jìn)一步的,所述FIFO對(duì)SKP的插入通過斷點(diǎn)保存,寫指針跳躍與握手和輸出控制模塊來實(shí)現(xiàn)。
一種應(yīng)用于USB3. 0的彈性緩沖方法,包括如下步驟向FIFO輸入數(shù)據(jù),所述輸入檢測(cè)模塊負(fù)責(zé)檢測(cè)輸入數(shù)據(jù)中是否包含SKP,如果輸入數(shù)據(jù)中包含SKP給出指示信號(hào),這個(gè)指示信號(hào)和閾值監(jiān)視模塊給出的刪除或者插入SKP信號(hào)一起,用來控制讀寫控制模塊完成SKP的刪除或者插入;所述同步模塊利用所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的格雷碼來實(shí)現(xiàn)格雷碼讀寫指針在讀寫時(shí)鐘域之間的同步,所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的二進(jìn)制碼作為存儲(chǔ)單元的地址輸入,將格雷碼的讀指針,經(jīng)過兩個(gè)寫時(shí)鐘控制的寄存器同步到寫時(shí)鐘域中,然后將寫指針和同步到寫時(shí)鐘域的讀指針做比較產(chǎn)生FIFO滿的標(biāo)志,將寫指針同步到讀時(shí)鐘域中產(chǎn)生FIFO空的標(biāo)志;將讀寫指針地址的次高位到最低位作為存儲(chǔ)單元的地址,當(dāng)讀寫地址相同時(shí)FIFO為空,當(dāng)讀寫指針最高位不同而其余所有位相同時(shí)FIFO為滿;所述閾值監(jiān)視模塊將同步到寫時(shí)鐘域中的格雷碼讀指針轉(zhuǎn)化為二進(jìn)制碼并且與二進(jìn)制碼的寫指針比較來判斷FIFO中的有效數(shù)據(jù),當(dāng)FIFO中的數(shù)據(jù)少于等于6時(shí),添加SKP,add_skp信號(hào)有效,當(dāng)FIFO中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp信號(hào)有效;寫指針控制模塊根據(jù)dele_Skp或者add_skp信號(hào)是否有效,來完成刪除輸入數(shù)據(jù)中的SKP或者是在FIFO中插入新的SKP的功能,所述輸出控制模塊和所述寫指針控制模塊一起完成SKP的插入功能;讀指針控制模塊,根據(jù)symbol_lock信號(hào)來控制讀使能信號(hào);當(dāng)讀時(shí)鐘快于寫時(shí)鐘,即讀出的數(shù)據(jù)多于寫入的數(shù)據(jù),通過寫控制模塊向FIFO添加SKP,使得FIFO維持半滿狀態(tài),并且寫指針向前進(jìn)行跳躍間隔,并保存跳躍點(diǎn)的位置,當(dāng)讀指針讀到跳躍區(qū)間時(shí),通過輸出控制模塊,完成SKP添加;當(dāng)讀時(shí)鐘慢于寫時(shí)鐘,即寫入的數(shù)據(jù)多于讀出的數(shù)據(jù),此時(shí),F(xiàn)IFO應(yīng)該刪除輸入數(shù)據(jù)中的SKP,使得FIFO維持半滿,以此來調(diào)節(jié)時(shí)鐘。進(jìn)一步的,所述刪除輸入數(shù)據(jù)中的SKP具體包括如下步驟;用一個(gè)保持寄存器中用來暫存輸入刪除SKP模塊的數(shù)據(jù),當(dāng)刪除SKP閾值信號(hào)dele_Skp無效時(shí),不需要?jiǎng)h除SKP,保持寄存器的輸入和輸出數(shù)據(jù)比特?cái)?shù)均與輸入刪除SKP模塊的數(shù)據(jù)相同,所述保持寄存器高位字節(jié)的數(shù)據(jù)作為輸出,為ram的寫數(shù)據(jù),輸入的數(shù)據(jù)寫入保持寄存器的低位字節(jié)上,同時(shí)保持寄存器的低位字節(jié)的數(shù)據(jù)移位到高位字節(jié)上作為輸出;同時(shí),通過保持寄存器中的字節(jié)的個(gè)數(shù)的計(jì)數(shù)器hr_cnt記錄此時(shí)保持寄存器中存在的字節(jié)個(gè)數(shù);當(dāng)刪除SKP閾值信號(hào)dele_Skp信號(hào)有效時(shí),且輸入刪除SKP模塊的數(shù)據(jù)中存在SKP時(shí),輸入數(shù)據(jù)經(jīng)過刪除SKP模塊后,將SKP剔除,僅僅將有效數(shù)據(jù)寫入到保持寄存器的低位字節(jié)中,此時(shí)保持寄存器中的數(shù)據(jù)變?yōu)?個(gè),因?yàn)閯h除掉了輸入4個(gè)數(shù)據(jù)中的2個(gè)skp。如果在下一個(gè)時(shí)鐘周期時(shí),輸入的數(shù)據(jù)不包含SKP,那么保持寄存器中保持原來6個(gè)數(shù)據(jù)不變,如果一段時(shí)間后,如果輸入的數(shù)據(jù)中又包含SKP,而此時(shí)dele_skp信號(hào)仍然有效,則刪除SKP模塊剔除數(shù)據(jù)中SKP,將有效數(shù)據(jù)寫入到保持寄存器中,如果保持寄存器中存儲(chǔ)數(shù)據(jù)為其整個(gè)容量的一半時(shí),即4個(gè)數(shù)據(jù),則刪除SKP模塊將dele_Skp_en信號(hào)有效,使寫使能信號(hào)無效一個(gè)時(shí)鐘周期,不把保持寄存器中數(shù)據(jù)寫入到ram中,這樣保持寄存器中又恢復(fù)了 8個(gè)有效數(shù)據(jù)。進(jìn)一步的,所述插入輸入數(shù)據(jù)中的SKP具體包括如下步驟;寫指針計(jì)算FIFO中的有效數(shù)據(jù)個(gè)數(shù),根據(jù)FIFO中有效數(shù)據(jù)的個(gè)數(shù)與FIFO全滿數(shù)據(jù)個(gè)數(shù)的差距,決定二進(jìn)制寫地址所指向的下一個(gè)指針點(diǎn),在寫指針模塊的控制下完成寫指針的跳躍,即為寫指針跳躍,并且在寫時(shí)鐘域把當(dāng)前的寫指針和下一個(gè)指針點(diǎn)保存到當(dāng)前的二進(jìn)制寫地址和下一個(gè)二進(jìn)
制寫地址中;同時(shí)在寫時(shí)鐘域給出通知讀指針信號(hào),當(dāng)讀指針讀到斷點(diǎn)的起始地址時(shí),插入skp使能信號(hào)有效,并反饋應(yīng)答信號(hào),當(dāng)寫時(shí)鐘域檢測(cè)到ack信號(hào)有效時(shí)撤銷通知讀指針信號(hào),輸出控制模塊檢測(cè)到插入skp使能信號(hào)有效后,根據(jù)此時(shí)輸入的skp的RD運(yùn)行差異參數(shù)的值插入新的skp,輸出控制模塊保證插入所有的skp均滿足8B10B編碼的要求;當(dāng)讀指針讀到斷點(diǎn)的結(jié)束地址時(shí),插入skp使能信號(hào)變?yōu)闊o效,同時(shí)撤銷ack信號(hào),完成skp的插入,使FIFO維持半滿狀態(tài);所述讀指針信號(hào)和ack信號(hào)是一對(duì)握手信號(hào),保證了一次寫指針跳躍在讀時(shí)鐘域完成一次SKP的插入,避免了在讀指針域中重復(fù)插入skp。本發(fā)明的有益效果在于采用同步比較來判斷彈性緩沖中的有效數(shù)據(jù)個(gè)數(shù),避免了異步比較的毛刺和不穩(wěn)定,采用了一種新的滿空標(biāo)志產(chǎn)生方法,采用寫指針屏蔽,寫指針跳躍和讀寫指針握手的方式實(shí)現(xiàn)SKP的刪除和插入,通過增加了 SKP序列集的刪除模塊,解決了在40比特的輸入數(shù)據(jù)中如何刪除20比特位寬的SKP序列集的問題。


圖I為USB3. 0物理層接收部分結(jié)構(gòu);圖2為常半滿模式中讀快于寫;圖3為常半滿模式中寫快于讀;圖4為彈性緩沖的結(jié)構(gòu);圖5為SKP刪除模塊原理圖;圖6為刪除SKP模塊輸入輸出時(shí)序圖;圖7為40比特位寬的彈性緩沖對(duì)SKP的刪除時(shí)序圖。
具體實(shí)施例方式下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步說明。彈性緩沖的作用域及其容量彈性緩沖的作用域USB3.0的數(shù)據(jù)傳輸采用全雙工(Full duplex),物理層有兩個(gè)差分信號(hào)對(duì),一對(duì)為發(fā)送差分信號(hào)對(duì),另一對(duì)為接收差分信號(hào)對(duì)。由于彈性緩沖只用于接收端,如圖I給出10比特?cái)?shù)據(jù)位寬的物理層的接收端的框圖,它包括差分接收、時(shí)鐘數(shù)據(jù)恢復(fù)電路、串并轉(zhuǎn)換、SBlOB解碼和解擾電路等。如圖I所示,差分信號(hào)由差分接收端接收,經(jīng)過CDR恢復(fù)出時(shí)鐘和數(shù)據(jù),然后數(shù)據(jù)經(jīng)過串并轉(zhuǎn)換變?yōu)?0比特的數(shù)據(jù),通過序列檢測(cè)器檢測(cè)出包的起始標(biāo)志符K28. 5,當(dāng)檢測(cè)到K28. 5時(shí),使符號(hào)鎖定(symbol lock)信號(hào)有效,當(dāng)symbol lock有效時(shí),彈性緩沖開始寫入數(shù)據(jù)。彈性緩沖的寫時(shí)鐘為CDR恢復(fù)的時(shí)鐘,稱為接收時(shí)鐘,而其讀時(shí)鐘為接收端的系統(tǒng)時(shí)鐘。通過彈性緩沖將接收時(shí)鐘域的數(shù)據(jù)有效的同步到系統(tǒng)時(shí)鐘域,并且經(jīng)過8B10B譯碼和解擾器將數(shù)據(jù)傳遞給系統(tǒng)。8B10B解碼器的輸入數(shù)據(jù)為40比特,輸出數(shù)據(jù)為32比特,相當(dāng)于級(jí)聯(lián)了 4個(gè)輸入為10比特的8B10B解碼器。彈性緩沖容量為了補(bǔ)償接收時(shí)鐘和系統(tǒng)時(shí)鐘的頻率差別,在發(fā)送端平均每發(fā)送354個(gè)字節(jié)插入一個(gè) SKP 序列對(duì)(SKP ordered set), 一個(gè) SKP ordered set 是由 2 個(gè) SKP (K28. I)構(gòu)成,當(dāng)接收端彈性緩沖檢測(cè)到SKP ordered set時(shí)根據(jù)此時(shí)彈性緩沖中數(shù)據(jù)的個(gè)數(shù)來刪除或插入SKP ordered set。由于USB3. 0的發(fā)送和接收端采用獨(dú)立的參考時(shí)鐘,所以,在接收端通過CDR恢復(fù)出來的接收時(shí)鐘和本地的系統(tǒng)時(shí)鐘會(huì)有一個(gè)時(shí)鐘偏差。為了匹配兩端的頻率差另IJ,需要一個(gè)彈性緩沖,通過插入和刪除SKP來達(dá)到速率匹配。本發(fā)明設(shè)計(jì)的參考時(shí)鐘精度-300到+300ppm (ppm單位為百萬分之一),擴(kuò)頻時(shí)鐘(Spread Spectrum Clocking)的時(shí)鐘變化為-5000ppm到0,因此,發(fā)送端和接收端的時(shí)鐘偏差為-5300ppm到300ppm,最大的偏差為5600ppm。不管參考時(shí)鐘頻率如何,兩者之間的偏差為5600*0. 000001=0. 0056T。在USB3. 0中最大數(shù)據(jù)包長(zhǎng)度為1056字節(jié),并且協(xié)議要求在一個(gè)數(shù)據(jù)包中不能插入SKP。最差的情況下兩個(gè)時(shí)鐘發(fā)送數(shù)據(jù)的最大數(shù)據(jù)偏差為(T*1056*10-T (1-0. 0056) *1056*10) /T=59 比特=8 字節(jié),這里乘 10 是考慮了 8b/10b 編碼,因此彈性緩沖容量最小為8字節(jié)。彈性緩沖深度為其可以存放的數(shù)據(jù)個(gè)數(shù),通過計(jì)算可知,彈性緩沖的深度應(yīng)該為8。本文設(shè)計(jì)采用常半滿(Normal half full)模式來設(shè)計(jì)彈性緩沖,其容量為16,在通常情況下彈性緩沖中有8個(gè)數(shù)據(jù),剩下的8個(gè)為緩沖空間,故稱常半滿。常半滿模式首先要向彈性緩沖中寫入8個(gè)數(shù)據(jù),達(dá)到半滿,然后讀使能有效,常半滿模式只有在symbol隊(duì)列中出現(xiàn)SKP對(duì)時(shí),才能添加或者刪除SKP對(duì)。彈性緩沖的原理和結(jié)構(gòu)實(shí)施例一下面為彈性緩沖的原理,以40比特為例,無論10比特,20比特還是40比特,其原
理相同。彈性緩沖的原理彈性緩沖實(shí)質(zhì)上是一個(gè)異步FIF0,其寫時(shí)鐘為接收時(shí)鐘,讀時(shí)鐘為系統(tǒng)時(shí)鐘,數(shù)據(jù)位寬為40比特,F(xiàn)IFO深度為16,當(dāng)symbol lock有效時(shí),在接收時(shí)鐘域,向FIFO中寫入8個(gè)來自串并轉(zhuǎn)換器的數(shù)據(jù)。當(dāng)讀寫時(shí)鐘一樣快慢時(shí),F(xiàn)IFO中有8個(gè)有效數(shù)據(jù),維持在半滿狀態(tài)。當(dāng)讀時(shí)鐘快于寫時(shí)鐘,讀出的數(shù)據(jù)多于寫入的數(shù)據(jù),經(jīng)過一段時(shí)間后導(dǎo)致FIFO中的數(shù)據(jù)數(shù)量少于8,甚至有可能被讀空。如圖2所示,當(dāng)輸入40比特的數(shù)據(jù)中出現(xiàn)SKP時(shí),F(xiàn)IFO中有效數(shù)據(jù)為4,比常態(tài)少了 4。此時(shí),彈性緩沖應(yīng)該添加4個(gè)SKP,使得FIFO維持半、滿狀態(tài),以此來調(diào)節(jié)時(shí)鐘。此時(shí)寫指針向前跳躍4個(gè)間隔,并保存跳躍點(diǎn)的位置,當(dāng)讀指針讀到跳躍區(qū)間時(shí),通過輸出控制,完成SKP添加,也就是說,并沒有將新插入的SKP確實(shí)寫A FIFO中,跳躍區(qū)間內(nèi)的地址數(shù)據(jù)為無效的數(shù)據(jù),并且添加的SKP必須滿足運(yùn)行差異參數(shù)(Running Disparity)的要求,否則會(huì)導(dǎo)致8B10B譯碼時(shí)出錯(cuò)。當(dāng)讀時(shí)鐘慢于寫時(shí)鐘,寫入的數(shù)據(jù)多于讀出的數(shù)據(jù),經(jīng)過一段時(shí)間后將導(dǎo)致FIFO中的數(shù)據(jù)數(shù)量多于8,甚至有可能被寫滿。如圖3所示,在輸入數(shù)據(jù)中出現(xiàn)SKP時(shí),F(xiàn)IFO中有效數(shù)據(jù)為10,比常態(tài)多2.此時(shí),彈性緩沖應(yīng)該刪除輸入數(shù)據(jù)中的SKP,使得FIFO維持半滿,以此來調(diào)節(jié)時(shí)鐘。在彈性緩沖讀寫控制的過程中,寫先于讀。當(dāng)FIFO中數(shù)據(jù)達(dá)到8個(gè)后,讀寫同時(shí)有效。當(dāng)寫結(jié)束,即一個(gè)包接收完畢,但是讀不一定結(jié)束,直至讀到空,即所有數(shù)據(jù)已經(jīng)同步 到本地系統(tǒng)時(shí)鐘域中,表示此次讀寫次任務(wù)結(jié)束。這種流程控制就保持了系統(tǒng)數(shù)據(jù)的完整性。彈性緩沖的結(jié)構(gòu)設(shè)計(jì)本發(fā)明采用同步比較來判斷彈性緩沖中的有效數(shù)據(jù)個(gè)數(shù),避免了異步比較的毛刺和不穩(wěn)定,采用了一種新的滿空標(biāo)志產(chǎn)生方法,采用寫指針屏蔽,寫指針跳躍和讀寫指針握手的方式實(shí)現(xiàn)SKP的刪除和插入。本文另外一個(gè)創(chuàng)新之處在于增加了 SKP序列集的刪除模塊,解決了在40比特的輸入數(shù)據(jù)中如何刪除20比特位寬的SKP序列集的問題。本文設(shè)計(jì)的常半滿模式的彈性緩沖,其結(jié)構(gòu)如4所示,其結(jié)構(gòu)可以分為輸入檢測(cè)模塊,SKP刪除模塊,二進(jìn)制和格雷碼讀寫指針產(chǎn)生模塊,格雷碼讀寫指針在兩個(gè)時(shí)鐘域間同步模塊,讀寫控制模塊,判斷彈性緩沖中有效數(shù)據(jù)的閾值監(jiān)測(cè)模塊以及輸出控制模塊。輸入檢測(cè)模塊負(fù)責(zé)檢測(cè)輸入的40比特?cái)?shù)據(jù)中是否包含SKP,如果輸入數(shù)據(jù)中包含SKP給出指示信號(hào),這個(gè)指示信號(hào)和閾值監(jiān)視器模塊給出的刪除或者插入SKP信號(hào)一起,用來控制讀寫控制單元完成SKP的刪除或者插入。SKP刪除模塊,負(fù)責(zé)刪除輸入40比特中的20比特SKP,其原理將在本專利后續(xù)中介紹。讀寫指針產(chǎn)生模塊,產(chǎn)生的地址用來作為訪問存儲(chǔ)單元的地址,也用來產(chǎn)生FIFO的滿空標(biāo)志和判斷FIFO中數(shù)據(jù)的個(gè)數(shù)。地址包含二進(jìn)制和格雷碼兩種。同步單元用來將讀時(shí)鐘域的格雷碼讀指針同步到寫時(shí)鐘域中,將寫時(shí)鐘域的格雷碼寫指針同步到讀時(shí)鐘域中。同步到相應(yīng)時(shí)鐘域的讀寫格雷碼讀寫指針用來產(chǎn)生FIFO的滿空標(biāo)志。閾值監(jiān)視模塊用來判斷FIFO中數(shù)據(jù)的個(gè)數(shù),當(dāng)彈性緩沖中的數(shù)據(jù)少于等于6時(shí),添加SKP,add_skp信號(hào)有效,當(dāng)彈性緩沖中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp信號(hào)有效。寫指針控制模塊根據(jù)dele_Skp或者add_skp信號(hào)是否有效,來完成刪除輸入數(shù)據(jù)中的SKP或者是在彈性緩沖中插入新的SKP的功能。輸出控制模塊和寫指針控制模塊一起完成SKP的插入功能。讀指針控制模塊,根據(jù)symbollock信號(hào)來控制讀使能信號(hào)來控制讀使能信號(hào)。輸入檢測(cè)模塊設(shè)計(jì)輸入檢測(cè)模塊的功能是檢測(cè)輸入數(shù)據(jù)中是否包含SKP,并根據(jù)此時(shí)彈性緩沖中有效數(shù)據(jù)個(gè)數(shù),選擇是否刪除輸入的SKP或插入新的SKP。為了使新插入的SKP滿足8B10B編碼要求,還應(yīng)保存輸入SKP的運(yùn)行差異參數(shù)。讀寫指針產(chǎn)生模塊和同步模塊設(shè)計(jì)在判斷彈性緩沖中有效數(shù)據(jù)個(gè)數(shù)和產(chǎn)生滿空標(biāo)志時(shí),由于異步FIFO的讀寫是由異步時(shí)鐘控制的,不能將兩個(gè)時(shí)鐘域的指針直接比較,這樣會(huì)產(chǎn)生較大的亞穩(wěn)態(tài)。本文設(shè)計(jì)中利用二進(jìn)制碼和格雷碼指針產(chǎn)生模塊,產(chǎn)生二進(jìn)制碼和格雷碼,其中用二進(jìn)制碼作為存儲(chǔ)單元的地址輸入。將格雷碼的讀指針,用寫時(shí)鐘采樣兩次,即經(jīng)過兩個(gè)寫時(shí)鐘控制的寄存器同步到寫時(shí)鐘域中,由于格雷碼每次只變化一位,故經(jīng)過同步后,可將亞穩(wěn)態(tài)的可能性降到最低,然后將寫指針和同步到寫時(shí)鐘域的讀指針做比較產(chǎn)生FIFO滿的標(biāo)志。同樣,將寫 指針同步到讀時(shí)鐘域中產(chǎn)生FIFO空的標(biāo)志。本文采用新的滿空標(biāo)志產(chǎn)生方法,只將讀寫指針地址的次高位到最低位作為存儲(chǔ)單元的地址,當(dāng)讀寫地址相同時(shí)彈性緩沖為空,當(dāng)讀寫指針最高位不同而其余所有位相同時(shí)彈性緩沖為滿。閾值監(jiān)測(cè)模塊設(shè)計(jì)閾值監(jiān)測(cè)模塊的功能是用來判斷彈性緩沖的有效數(shù)據(jù)個(gè)數(shù),直接用格雷碼無法判斷緩沖中的數(shù)據(jù),因此,需將同步到寫時(shí)鐘域中的格雷碼讀指針轉(zhuǎn)化為二進(jìn)制碼與二進(jìn)制碼的寫指針比較來判斷彈性緩沖中的有效數(shù)據(jù)。由于二進(jìn)制碼的讀指針由同步到寫時(shí)鐘域中的格雷碼的讀指針轉(zhuǎn)換而來,此時(shí)不會(huì)產(chǎn)生亞穩(wěn)態(tài)的問題。當(dāng)彈性緩沖中的數(shù)據(jù)少于等于6時(shí),添加SKP,add_skp(add skp,添加skp,就是一個(gè)信號(hào)線,設(shè)計(jì)經(jīng)過微電子工藝的加工后,就是在物理上存在的采用硅實(shí)現(xiàn)的導(dǎo)線,和軟件有很大的區(qū)別,不是軟件的命令)信號(hào)有效,當(dāng)彈性緩沖中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp (delete skp,刪除skp,)信號(hào)有效。寫指針控制模塊、SKP刪除模塊和輸出控制模塊設(shè)計(jì)寫指針控制模塊,負(fù)責(zé)寫地址的控制的功能。SKP刪除模塊負(fù)責(zé)刪除輸入40比特?cái)?shù)據(jù)中的SKP。中由于USB3. 0中,SKP序列集為2個(gè)連續(xù)的SKP,SKP序列集的位寬為20比特。在本發(fā)明中,彈性緩沖的數(shù)據(jù)位寬為40比特,解決了如何刪除輸入的SKP序列集的問題。本發(fā)明設(shè)計(jì)的40比特的彈性緩沖對(duì)SKP序列集的刪除是通過SKP刪除模塊實(shí)現(xiàn)的??梢詫?shí)現(xiàn)將40比特輸入數(shù)據(jù)中的20比特SKP剔除掉。SKP刪除模塊的原理如圖5所
/Jn oSKP刪除模塊的輸入為40比特?cái)?shù)據(jù),存在一個(gè)80比特的保持寄存器(holdregister)用來暫存輸入的數(shù)據(jù),當(dāng)刪除SKP閾值信號(hào)dele_Skp無效時(shí),不需要?jiǎng)h除SKP,由于hold register的輸入和輸出數(shù)據(jù)均為40比特,因此,hold register中一直保持8個(gè)字節(jié)的輸入數(shù)據(jù),并且hold register的高4個(gè)字節(jié)的數(shù)據(jù)作為輸出,為ram的寫數(shù)據(jù),輸入數(shù)據(jù)不斷的寫入hold register的低40比特上,同時(shí)hold register的低40比特的數(shù)據(jù)移位到hold register的高40比特位上作為輸出。整個(gè)hold register從低40比特的數(shù)據(jù)到高40比特的數(shù)據(jù)的移位,相當(dāng)于移位寄存器。同時(shí),還定義一個(gè)hold register中的字節(jié)的個(gè)數(shù)的計(jì)數(shù)器hr_cnt (hold register counter,保持寄存器中數(shù)據(jù)個(gè)數(shù))用來記錄此時(shí)hold register中存在的字節(jié)個(gè)數(shù)。當(dāng)dele_Skp信號(hào)有效時(shí),需要?jiǎng)h除輸入數(shù)據(jù)中的SKP。當(dāng)輸入的數(shù)據(jù)中存在20比特的SKP時(shí),輸入數(shù)據(jù)經(jīng)過剔除SKP的模板(mask)后,將SKP剔除,僅僅將有效的20比特?cái)?shù)據(jù)寫入到hold register中,此時(shí)hold register中的數(shù)據(jù)為60比特,如果在下一個(gè)時(shí)鐘周期時(shí),輸入的數(shù)據(jù)不包含SKP,那么hold register中保持6個(gè)數(shù)據(jù)不變,Hr_cnt的值保持為6。如果過一段時(shí)間后,輸入數(shù)據(jù)中又包含20比特的SKP,并且此時(shí)dele_Skp信號(hào)仍然有效,那么mask模塊將剔除輸入數(shù)據(jù)中的SKP,將20比特的有效數(shù)據(jù)寫入到hold register中,此時(shí),hold register中剩余40比特的數(shù)據(jù)。當(dāng)檢測(cè)到hr_cnt的值為4時(shí),刪除SKP模塊將dele_skp_en (delete skp enable,刪除skp使能信號(hào))信號(hào)有效,使寫使能信號(hào)無效一個(gè)時(shí)鐘周期,不把此時(shí)hold register中的高40比特?cái)?shù)據(jù)寫入到ram中,保留了 holdregister中的高40比特?cái)?shù)據(jù)。如果此時(shí)輸入的數(shù)據(jù)不包含SKP,那么hold register中又恢復(fù)了 80比特?cái)?shù)據(jù)。經(jīng)過以上的處理,此模塊成功的刪除了輸入40比特?cái)?shù)據(jù)中的20比特SKP,實(shí)現(xiàn)了 40比特彈性緩沖對(duì)20比特SKP的刪除。刪除SKP模塊輸入輸出時(shí)序如圖6所
/Jn o當(dāng)add_skp信號(hào)有效時(shí),并且輸入檢測(cè)模塊檢測(cè)到輸入的數(shù)據(jù)為SKP時(shí),根據(jù)彈性緩沖的數(shù)據(jù)個(gè)數(shù),插入新的SKP。SKP添加通過斷點(diǎn)保存,寫指針跳躍與握手和輸出控制模 塊來實(shí)現(xiàn)。在SKP窗口出現(xiàn)和添加閥值標(biāo)志有效時(shí),寫指針此時(shí)計(jì)算FIFO中的有效數(shù)據(jù)個(gè)數(shù),根據(jù)FIFO中有效數(shù)據(jù)的個(gè)數(shù)與8的差距,來決定write_addr_b (binary writeaddress,二進(jìn)制寫地址)所指向的下一個(gè)指針點(diǎn),在寫指針模塊的控制下完成寫指針的跳躍,即為寫指針跳躍(write pointer jump),并且在寫時(shí)鐘域把當(dāng)前的寫指針和下一個(gè)指針點(diǎn)保存至丨J current_write_addr_b (current binary write address,當(dāng)前的二進(jìn)制寫地址)和 next _write_addr_b (next binary write address,下一個(gè)二進(jìn)制寫地址)中。同時(shí)在寫時(shí)鐘域給出inform_rp (inform read pointer,通知讀指針)信號(hào),由于讀指針總是落后于寫指針,當(dāng)讀指針讀到斷點(diǎn)的起始地址時(shí),inser_skp_en (insert skp enable,插入skp使能)信號(hào)有效,并反饋ack (acknowledgement,應(yīng)答)信號(hào),當(dāng)寫時(shí)鐘域檢測(cè)到ack信號(hào)有效時(shí)撤銷inform_rp信號(hào),輸出控制模塊檢測(cè)到inser_skp_en信號(hào)有效后,根據(jù)此時(shí)輸入的SKP的RD (running disparity,運(yùn)行差異參數(shù),是在8bl0b編解碼中定義的值)的值插入新的SKP,輸出控制模塊保證插入所有的SKP均滿足8B10B編碼的要求;當(dāng)讀指針讀到斷點(diǎn)的結(jié)束地址時(shí),inser_skp_en信號(hào)變?yōu)闊o效,同時(shí)撤銷ack信號(hào),完成SKP的插入,使FIFO維持半滿狀態(tài)。這里的inf0rm_rp和ack信號(hào)是一對(duì)握手信號(hào),保證了一次寫指針跳躍在讀時(shí)鐘域完成一次SKP的插入,避免了在讀指針域中重復(fù)插入skp。讀指針控制模塊讀指針控制模塊的功能是控制讀使能信號(hào),當(dāng)symbol lock (符號(hào)鎖定)信號(hào)有效時(shí),此時(shí)寫時(shí)鐘開始向FIFO中寫入數(shù)據(jù),讀使能需要等到FIFO寫入8個(gè)數(shù)據(jù)后才能有效,當(dāng)symbol lock無效后,即一個(gè)數(shù)據(jù)包已經(jīng)接收完畢,寫使能無效,但此時(shí)讀使能不一定立亥IJ無效,直到FIFO被讀空為止,所有的數(shù)據(jù)都已經(jīng)同步到本地,讀使能才無效。彈性緩沖設(shè)計(jì)的仿真本文采用Verilog HDL設(shè)計(jì)彈性緩沖,用NC-Verilog做功能的仿真驗(yàn)證。本設(shè)計(jì)采用臺(tái)積電TSMC 65nm的工藝庫用Design Compiler進(jìn)行綜合,并且給予較為保守的時(shí)序約束,讀寫的時(shí)鐘頻率均可達(dá)到125MHZ。并用Encounter進(jìn)行后端的布局和布線,得到精確的時(shí)序信息,然后采用Prime Time進(jìn)行靜態(tài)時(shí)序分析,最終采用NC-Verilog做時(shí)序仿真,刪除SKP的時(shí)序如圖7所示。仿真結(jié)果表明,本文設(shè)計(jì)的彈性緩沖可以正確的寫入和讀出數(shù)據(jù),能夠正確刪除和插入SKP,插入的SKP滿足8B10B編碼的要求,能夠正確的產(chǎn)生彈性緩沖滿空標(biāo)志,并可在兩個(gè)時(shí)鐘域間同步數(shù)據(jù)。設(shè)計(jì)完全符合USB3. 0協(xié)議的要求,驗(yàn)證了本文設(shè)計(jì)的可靠性。 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種應(yīng)用于USB3. O的彈性緩沖結(jié)構(gòu),其特征在于,包括輸入檢測(cè)模塊、二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊、同步模塊、讀寫控制模塊、閾值監(jiān)視模塊和輸出控制模塊; 所述輸入檢測(cè)模塊負(fù)責(zé)檢測(cè)輸入數(shù)據(jù)中是否包含SKP,如果輸入數(shù)據(jù)中包含SKP則給出指示信號(hào),所述指示信號(hào)和所述閾值監(jiān)視模塊給出的刪除或者插入SKP信號(hào)一起,用來控制所述讀寫控制模塊完成SKP的刪除或者插入; 所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊負(fù)責(zé)產(chǎn)生FIFO的二進(jìn)制碼和格雷碼讀寫指針; 所述同步模塊利用所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的格雷碼來實(shí)現(xiàn)格雷碼讀寫指針在讀寫時(shí)鐘域之間的同步,所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的二進(jìn)制碼作為存儲(chǔ)單元的地址輸入,將格雷碼的讀指針,經(jīng)過兩個(gè)寫時(shí)鐘控制的寄存器同步到寫時(shí)鐘域中,然后將寫指針和同步到寫時(shí)鐘域的讀指針做比較產(chǎn)生FIFO滿的標(biāo)志,將寫指針同步到讀時(shí)鐘域中產(chǎn)生FIFO空的標(biāo)志; 所述閾值監(jiān)視模塊將同步到寫時(shí)鐘域中的格雷碼讀指針轉(zhuǎn)化為二進(jìn)制碼并且與二進(jìn)制碼的寫指針比較來判斷FIFO中的有效數(shù)據(jù),當(dāng)FIFO中的數(shù)據(jù)少于等于6時(shí),添加SKP,add_skp信號(hào)有效,當(dāng)FIFO中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp信號(hào)有效; 寫指針控制模塊根據(jù)dele_Skp或者add_skp信號(hào)是否有效,來完成刪除輸入數(shù)據(jù)中的SKP或者是在FIFO中插入新的SKP的功能,所述輸出控制模塊和所述寫指針控制模塊一起完成SKP的插入功能; 讀指針控制模塊,根據(jù)symbollock信號(hào)來控制讀使能信號(hào)。
2.根據(jù)權(quán)利要求I所述的一種應(yīng)用于USB3.0的彈性緩沖結(jié)構(gòu),其特征在于,所述FIFO對(duì)SKP的刪除是通過SKP刪除模塊實(shí)現(xiàn)的。
3.根據(jù)權(quán)利要求I所述的一種應(yīng)用于USB3.0的彈性緩沖結(jié)構(gòu),其特征在于,所述FIFO對(duì)SKP的插入通過斷點(diǎn)保存,寫指針跳躍與握手和輸出控制模塊來實(shí)現(xiàn)。
4.一種應(yīng)用于USB3.0的彈性緩沖方法,其特征在于,包括如下步驟向FIFO輸入數(shù)據(jù),所述輸入檢測(cè)模塊負(fù)責(zé)檢測(cè)輸入數(shù)據(jù)中是否包含SKP,如果輸入數(shù)據(jù)中包含SKP給出指示信號(hào),這個(gè)指示信號(hào)和閾值監(jiān)視模塊給出的刪除或者插入SKP信號(hào)一起,用來控制讀寫控制模塊完成SKP的刪除或者插入; 所述同步模塊利用所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的格雷碼來實(shí)現(xiàn)格雷碼讀寫指針在讀寫時(shí)鐘域之間的同步,所述二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊產(chǎn)生的二進(jìn)制碼作為存儲(chǔ)單元的地址輸入,將格雷碼的讀指針,經(jīng)過兩個(gè)寫時(shí)鐘控制的寄存器同步到寫時(shí)鐘域中,然后將寫指針和同步到寫時(shí)鐘域的讀指針做比較產(chǎn)生FIFO滿的標(biāo)志,將寫指針同步到讀時(shí)鐘域中產(chǎn)生FIFO空的標(biāo)志;將讀寫指針地址的次高位到最低位作為存儲(chǔ)單元的地址,當(dāng)讀寫地址相同時(shí)FIFO為空,當(dāng)讀寫指針最高位不同而其余所有位相同時(shí)FIFO為滿; 所述閾值監(jiān)視模塊將同步到寫時(shí)鐘域中的格雷碼讀指針轉(zhuǎn)化為二進(jìn)制碼并且與二進(jìn)制碼的寫指針比較來判斷FIFO中的有效數(shù)據(jù),當(dāng)FIFO中的數(shù)據(jù)少于等于6時(shí),添加SKP,add_skp信號(hào)有效,當(dāng)FIFO中的數(shù)據(jù)大于等于10時(shí)刪除SKP,dele_skp信號(hào)有效; 寫指針控制模塊根據(jù)dele_Skp或者add_skp信號(hào)是否有效,來完成刪除輸入數(shù)據(jù)中的SKP或者是在FIFO中插入新的SKP的功能,所述輸出控制模塊和所述寫指針控制模塊一起完成SKP的插入功能; 讀指針控制模塊,根據(jù)symbol_lock信號(hào)來控制讀使能信號(hào); 當(dāng)讀時(shí)鐘快于寫時(shí)鐘,即讀出的數(shù)據(jù)多于寫入的數(shù)據(jù),通過寫控制模塊向FIFO添加SKP,使得FIFO維持半滿狀態(tài),并且寫指針向前進(jìn)行跳躍間隔,并保存跳躍點(diǎn)的位置,當(dāng)讀指針讀到跳躍區(qū)間時(shí),通過輸出控制模塊,完成SKP添加; 當(dāng)讀時(shí)鐘慢于寫時(shí)鐘,即寫入的數(shù)據(jù)多于讀出的數(shù)據(jù),此時(shí),F(xiàn)IFO應(yīng)該刪除輸入數(shù)據(jù)中的SKP,使得FIFO維持半滿,以此來調(diào)節(jié)時(shí)鐘。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述刪除輸入數(shù)據(jù)中的SKP具體包括如下步驟;用一個(gè)保持寄存器中用來暫存輸入刪除SKP模塊的數(shù)據(jù),當(dāng)刪除SKP閾值信號(hào)dele_skp無效時(shí),不需要?jiǎng)h除SKP,保持寄存器的輸入和輸出數(shù)據(jù)比特?cái)?shù)均與輸入刪除SKP模塊的數(shù)據(jù)相同,所述保持寄存器高位字節(jié)的數(shù)據(jù)作為輸出,為ram的寫數(shù)據(jù),輸入的數(shù)據(jù)寫入保持寄存器的低位字節(jié)上,同時(shí)保持寄存器的低位字節(jié)的數(shù)據(jù)移位到高位字節(jié)上作為輸出;同時(shí),通過保持寄存器中的字節(jié)的個(gè)數(shù)的計(jì)數(shù)器hr_cnt記錄此時(shí)保持寄存器中存在的字節(jié)個(gè)數(shù); 當(dāng)刪除SKP閾值信號(hào)dele_Skp信號(hào)有效時(shí),且輸入刪除SKP模塊的數(shù)據(jù)中存在SKP時(shí),輸入數(shù)據(jù)經(jīng)過刪除SKP模塊后,將SKP剔除,僅僅將有效數(shù)據(jù)寫入到保持寄存器的低位字節(jié)中,如果在下一個(gè)時(shí)鐘周期時(shí),輸入的數(shù)據(jù)不包含SKP,那么保持寄存器中保持原來數(shù)據(jù)個(gè)數(shù)不變,如果一段時(shí)間后,如果輸入的數(shù)據(jù)中又包含SKP,而此時(shí)dele_skp信號(hào)仍然有效,則刪除SKP模塊剔除數(shù)據(jù)中SKP,將有效數(shù)據(jù)寫入到保持寄存器中,如果保持寄存器中存儲(chǔ)數(shù)據(jù)為其整個(gè)容量的一半時(shí),,則刪除SKP模塊將dele_Skp_en信號(hào)有效,使寫使能信號(hào)無效一個(gè)時(shí)鐘周期,不把保持寄存器中數(shù)據(jù)寫入到ram中。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述插入輸入數(shù)據(jù)中的SKP具體包括如下步驟;寫指針計(jì)算FIFO中的有效數(shù)據(jù)個(gè)數(shù),根據(jù)FIFO中有效數(shù)據(jù)的個(gè)數(shù)與FIFO全滿數(shù)據(jù)個(gè)數(shù)的差距,決定二進(jìn)制寫地址所指向的下一個(gè)指針點(diǎn),在寫指針模塊的控制下完成寫指針的跳躍,即為寫指針跳躍,并且在寫時(shí)鐘域把當(dāng)前的寫指針和下一個(gè)指針點(diǎn)保存到當(dāng)前的二進(jìn)制寫地址和下一個(gè)二進(jìn)制寫地址中;同時(shí)在寫時(shí)鐘域給出通知讀指針信號(hào),當(dāng)讀指針讀到斷點(diǎn)的起始地址時(shí),插入skp使能信號(hào)有效,并反饋應(yīng)答信號(hào),當(dāng)寫時(shí)鐘域檢測(cè)到ack信號(hào)有效時(shí)撤銷通知讀指針信號(hào),輸出控制模塊檢測(cè)到插入skp使能信號(hào)有效后,根據(jù)此時(shí)輸入的skp的RD運(yùn)行差異參數(shù)的值插入新的skp,輸出控制模塊保證插入所有的skp均滿足8B10B編碼的要求;當(dāng)讀指針讀到斷點(diǎn)的結(jié)束地址時(shí),插入skp使能信號(hào)變?yōu)闊o效,同時(shí)撤銷ack信號(hào),完成skp的插入,使FIFO維持半滿狀態(tài); 所述讀指針信號(hào)和ack信號(hào)是一對(duì)握手信號(hào),保證了一次寫指針跳躍在讀時(shí)鐘域完成一次SKP的插入,避免了在讀指針域中重復(fù)插入skp。
全文摘要
本發(fā)明公開了一種應(yīng)用于USB3.0的彈性緩沖結(jié)構(gòu)和方法,包括輸入檢測(cè)模塊、二進(jìn)制碼和格雷碼讀寫指針產(chǎn)生模塊、同步模塊、讀寫控制模塊、閾值監(jiān)視模塊和輸出控制模塊;通過分析彈性緩沖的作用機(jī)制,根據(jù)USB3.0的協(xié)議要求,采用具有寫指針屏蔽、指針跳躍、斷點(diǎn)保存與握手、輸出控制等具有創(chuàng)新功能的異步FIFO來設(shè)計(jì)彈性緩沖,很好實(shí)現(xiàn)了時(shí)鐘頻率補(bǔ)償?shù)哪康?,本發(fā)明設(shè)計(jì)的彈性緩沖采用并行40位數(shù)據(jù),讀寫時(shí)鐘可達(dá)到125MHz的頻率。
文檔編號(hào)G06F13/42GK102708086SQ20121014549
公開日2012年10月3日 申請(qǐng)日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者朱小明 申請(qǐng)人:無錫華大國(guó)奇科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乌苏市| 洛阳市| 中宁县| 安泽县| 那坡县| 高雄县| 新建县| 木里| 壤塘县| 夏邑县| 涿鹿县| 鄱阳县| 兴山县| 大理市| 东城区| 苏尼特左旗| 东方市| 义马市| 兴宁市| 义乌市| 忻州市| 凤翔县| 琼海市| 沂南县| 南部县| 武强县| 德阳市| 牟定县| 邯郸县| 朝阳市| 灵石县| 绥化市| 上虞市| 三台县| 重庆市| 明溪县| 三河市| 南川市| 平远县| 皋兰县| 新野县|