專利名稱:一種實現(xiàn)位填充的并行設計電路的制作方法
技術領域:
本發(fā)明涉及USB接口設計電路,尤其涉及一種實現(xiàn)位填充的并行設計電路。
背景技術:
隨著微電子技術的快速發(fā)展,USB2. 0接口的設備已經(jīng)大量應用于日常生活的電子產品中。USB是一種串行總線,數(shù)據(jù)逐位依次傳送。USB系統(tǒng)中數(shù)據(jù)傳輸采用反向非歸零 (NRZI,Non Return to Zero Invert)編碼方式,這種編碼方式既能保證數(shù)據(jù)傳送的完整性, 又不需要獨立的時鐘信號和數(shù)據(jù)一起發(fā)送。當遇到O信號時NRZI編碼數(shù)據(jù)流發(fā)生跳變;當遇到1信號時保持不變。數(shù)據(jù)流中的跳變使解碼器可以與收到的數(shù)據(jù)保持同步,因而不必提供獨立的時鐘信號。但一長串的連續(xù)1將會導致無電平跳變,從而引起接收端最終丟失同步信號。解決的辦法是采用位填充技術,即在連續(xù)傳輸六個1的情況下填充一個0,使得 NRZI編碼數(shù)據(jù)流中發(fā)生跳變,這就確保接收器至少可以在每七個的時間間隔內從數(shù)據(jù)流中會檢測到一次跳變,從而使接收器和傳送的數(shù)據(jù)保持同步。UTMI發(fā)送端負責在NRZI編碼前的數(shù)據(jù)流中插入一個O填充位。UTMI接收端須在NRZI解碼后的數(shù)據(jù)中,當出現(xiàn)六個連續(xù)1 后,把其后的一個O給填充出來并丟棄,實現(xiàn)位填充操作。如果留個連續(xù)的1后,跟隨的不是O而是1,則產生出錯信號。
發(fā)明內容
本發(fā)明目的提供一種實現(xiàn)位填充的并行設計電路,采用位寬為8比特,時鐘為 60MHz的設計電路實現(xiàn)串行處理位填充操作,與普通應用中的串行設計電路相比,能大大地降低電路的功耗。一種實現(xiàn)位填充的并行設計電路,包含延遲單元、判斷對象重組單元、參照對象重組單元、判斷單元、填充單元以及累加單元。延遲單元,用于對輸入數(shù)據(jù)進行時鐘周期的延遲;判斷對象重組單元,用于對經(jīng)時鐘周期延遲的數(shù)據(jù)進行重組并輸出判斷對象;參照對象重組單元,用于對電路的輸出數(shù)據(jù)進行重組并輸出參照對象;判斷單元,用于根據(jù)參照對象,對判斷對象進行判斷,哪些需要被填充,并輸出判斷結果到填充單元;填充單元,用于進行位填充操作,并把當前填充的位的個數(shù)輸出到累加單元,把位填充后的結果作為整個電路的運行結果輸出;累加單元,用于對被填充的位的個數(shù)進行累加,并將結果輸出到判斷對象重組單元輸入端;輸入端輸入數(shù)據(jù)的位寬為8比特,輸出數(shù)據(jù)的位寬為8比特,工作時鐘為60MHz,延遲單元產生三個延遲后的數(shù)據(jù),其中,din_dl是延遲一個時鐘周期后的數(shù)據(jù),din_d2是延遲兩個時鐘周期后的數(shù)據(jù),din_d3是延遲三個時鐘周期后的數(shù)據(jù)。延遲單元產生的三個輸出數(shù)據(jù)都集中輸入到判斷對象重組單元,重組輸出判斷對象。參照對象重組單元通過取電路輸出結果來重組參照對象。參照對象的設定方法為取電路輸出結果的高6位,判斷對象的設定方法為1)當已被填充的0的個數(shù)為0時,判斷對象為din_dl[7:0];2)當已被填充的0的個數(shù)為1時,判斷對象為{din_dl[6:0],din_d2[7]};3)當已被填充的0的個數(shù)為2時,判斷對象為{din_dl[5:0],din_d2[7:6]};4)當已被填充的0的個數(shù)為3時,判斷對象為{din_dl[4:0],din_d2[7:5]};5)當已被填充的0的個數(shù)為4時,判斷對象為{din_dl[3:0],din_d2[7:4]};6)當已被填充的0的個數(shù)為5時,判斷對象為{din_dl[2:0], din _2[7:3]};7)當已被填充的0的個數(shù)為6時,判斷對象為{din_dl[l:0],din_d2[7:2]};8)當已被填充的0的個數(shù)為7時,判斷對象為{din_dl
,din_d2[7:l]};9)當已被填充的0的個數(shù)為8時,判斷對象為din_d2[7:0],情況與當已被填充的 0的個數(shù)為0時類似;10)當已被填充的0的個數(shù)為9時,判斷對象為{din_d2[6:0], din_d3 [7]},情況與當已被填充的0的個數(shù)為1時類同;當被填充的0的個數(shù)為9時,情況與當被填充的0的個數(shù)為1時類同,依此類推。 其中設定din[7:0]是當前這個時鐘周期輸入的8比特數(shù)據(jù),din_dl[7:0]是din[7:0]的前一個時鐘周期的8比特數(shù)據(jù),din_d2[7:0]是din_dl[7:0]的前一個時鐘周期的8比特數(shù)據(jù),din_d3[7]是din_d2[7:0]的前一個時鐘周期的1比特數(shù)據(jù)。參照對象重組單元輸出的參照對象直接輸入判斷單元,判斷對象重組單元輸出的判斷對象分別連接到判斷單元和填充單元的輸入端,判斷單元根據(jù)位填充的數(shù)量和對象的查找方法來判斷判斷對象中哪些需要被填充,并把判斷結果輸出到填充單元。位填充的數(shù)量和對象的查找方法為(其中refer_obj為參考對象,judge_obj為判斷對象)1)當參照對象refer_obj[5:0]的值為6’ bll_llll時,如果判斷對象judge_ obj [5:0]的值為 6,bll_llll 時,填充兩位在 judge_obj
前和 judge_obj [6]前各填充一位0 ;如果判斷對象judge_obj[6:0]的值為V blll_1110時,在judge_obj
前和 judge_ob j [7]前各填充一位0 ;否則只在judge_obj
前填充一位0 ;2)當參照對象refer_obj[5:0]的值為6’ bll_1110時,如果判斷對象judge_ obj
的值為 1,bl,且 judge_obj[6:l]的值為 6,bll_llll 時,在 judge_obj[l]前和judge_obj [7]前各填充一位0 ;如果判斷對象judge_obj
的值為1,bl,且judge, obj [6:1]的值不為6,bll_llll時,在judge_obj[l]前填充一位0 ;如果判斷對象judge, obj [6:0]的值為7’ blll_1110時,在judge_0bj[7]前填充一位0 ;否則不填充數(shù)據(jù);3)當參照對象refer_obj[5:l]的值為5’ bl_1110時,如果判斷對象judge_ obj [1:0]的值為2,bll時,在judge_obj[2]前填充一位0 ;如果判斷對象judge_obj [60] 的值為7’ blll_1110時,在judge_ob j [7]前填充一位0 ;否則不填充數(shù)據(jù);4)當參照對象refer_ob j [5:2]的值為4’ bl 110時,如果判斷對象judge_ obj [2:0]的值為3’blll時,在judge_obj[3]前填充一位0 ;如果判斷對象judge_obj W0] 的值為7,blll_1110時,在judge_0bj[7]前填充一位0 ;否則不填充數(shù)據(jù);5)當參照對象refer_obj[5:3]的值為3'bllO時,如果判斷對象judge_obj [30] 的值為4,bllll時,在judge_obj[4]前填充一位0 ;如果判斷對象judge_obj [60]的值為V blll_1110時,在judge_0bj[7]前填充一位0 ;否則不填充數(shù)據(jù);6)當參照對象refer_obj[5:4]的值為2’ blO時,如果判斷對象judge_obj 的值為5,bl_llll時,在judge_obj[5]前填充一位0 ;如果判斷對象judge_obj [60]的值為V blll_1110時,在judge_obj [7]前填充一位0 ;否則不填充數(shù)據(jù);7)當參照對象refer_obj [5]的值為1,b0時,如果判斷對象judge_obj [5:0]的值為6,bll_llll時,在judge_obj [6]前填充一位0 ;如果判斷對象judge_obj [60]的值為7,blll_1110時,在judge_obj [7]前填充一位0 ;否則不填充數(shù)據(jù);填充單元進行位填充操作,把當前被填充的位的個數(shù)輸出給累加單元,將位填充后的結果作為整個電路的運行結果輸出。
圖1位填充操作示意2判斷對象的設定示意3本發(fā)明提出的位填充的并行設計電路結構圖
具體實施方案以下結合各附圖對本發(fā)明提出的實現(xiàn)位填充的并行設計電路進行詳細的描述。結合如圖1所示,第一個波形表示原始數(shù)據(jù),第二個波形表示位填充處理后的數(shù)據(jù);可以看到在數(shù)據(jù)流中第7個和第8個1之間的0 (用箭頭表示)被選中為需填充的位, 填充操作完成后,被填充位后的數(shù)據(jù)串與被填充位前的數(shù)據(jù)串連接在一起,數(shù)據(jù)多了一比特,如第二個波形所示。如圖2所示,陰影部分是8比特數(shù)據(jù)的判斷對象。以圖1數(shù)據(jù)串為例進行詳細的說明,有助于理解本發(fā)明的技術解決方案及所產生的有益效果。原始的數(shù)據(jù)為M ‘blllOOllllOOlllllllllllOl,當前一個時鐘周期的輸出結果為8’ bllll_1101,則根據(jù)本發(fā)明提出的參照對象的設定方法可知,參照對象refer_ obj [5:0]是6’ bll_llll ;假設當前已填充0的個數(shù)為0,根據(jù)本發(fā)明提出的判斷對象的設定方法中當已被填充的0的個數(shù)為0時,判斷對象judge_Obj[7:0]為8,bl001_llll ; 根據(jù)本發(fā)明提出的位填充的數(shù)量和對象的查找方法,即當參照對象refer_obj [5:0]的值為6’ bll_llll時,如果判斷對象judge_obj[5:0]的值為6’ bll_llll時,填充兩位在 judge_ob j
前和judge_obj[6]前各填充一位0 ;如果判斷對象judge_ob j W 0]的值為 7,blll_1110時,填充兩位在judge_ob j
前和judge_ob j [7]前各填充一位0 ;否則,只在judge_0b j
前填充一位0。在judge_0b j
前填充一位0,填充操作完成后,數(shù)據(jù)序列如圖1第二個波形所示,輸出的結果為8,b0011_1110。
權利要求
1.一種實現(xiàn)位填充的并行設計電路,其特征在于所述電路包含延遲單元、判斷對象重組單元、參照對象重組單元、判斷單元、填充單元和累加單元。
2.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述延遲單元對輸入端數(shù)據(jù)進行延遲。
3.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述判斷對象重組單元設定并輸出判斷對象。
4.如權利要求1或3所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述判斷對象重組單元采用以下模式設定判斷對象1)當已被填充的0的個數(shù)為0時,判斷對象為din_dl[7:0];2)當已被填充的0的個數(shù)為1時,判斷對象為{din_dl[6:0],din_d2[7]};3)當已被填充的0的個數(shù)為2時,判斷對象為{din_dl[5:0],din_d2[7:6]};4)當已被填充的0的個數(shù)為3時,判斷對象為{din_dl[4:0],din_d2[7:5]};5)當已被填充的0的個數(shù)為4時,判斷對象為{din_dl[3:0],din_d2[7:4]};6)當已被填充的0的個數(shù)為5時,判斷對象為{din_dl[2:0],din_d2[7:3]};7)當已被填充的0的個數(shù)為6時,判斷對象為{din_dl[l:0],din_d2[7:2]};8)當已被填充的0的個數(shù)為7時,判斷對象為{din_dl
,din_d2[7:l]};9)當已被填充的0的個數(shù)為8時,判斷對象為din_d2[7:0],情況與當已被填充的0的個數(shù)為0時類同;10)當已被填充的0的個數(shù)為9時,判斷對象為{din_d2[6:0],din_d3 [7]},情況與當已被填充的0的個數(shù)為1時類同。
5.如權利要求4所述的種實現(xiàn)位填充的并行設計電路,其特征在于當已被填充的0的個數(shù)為8或9的時候,輸入數(shù)據(jù)停止一個時鐘周期。
6.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述判斷對象重組單元輸出的判斷對象分別連接到判斷單元和填充單元的輸入端。
7.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述參照對象重組單元通過取電路輸出結果的高6位來設定參照對象。
8.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述參照對象重組單元輸出的參照對象連接到判斷單元的輸入端。
9.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述判斷單元判斷需進行位填充的數(shù)量和查找哪些位需要被填充,并把判斷結果輸出到填充單元。
10.如權利要求1或9所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述判斷單元判斷位填充的數(shù)量和查找哪些位需要被填充的方法為1)當參照對象refer_obj[5:0]的值為6’bll_llll時,如果判斷對象judge_obj[50] 的值為6,bll_llll時,在judge_obj
前和judge_obj [6]前各填充一位0 ;如果判斷對象 judge_obj[6:0]的值為 7,blll_1110 時,在 judge_ob j
前和 judge_ob j [7]前各填充一位0,否則只在judge_ob j
前填充一位0 ;2)當參照對象refer_obj[5:0]的值為6’bll_1110時,如果判斷對象judge_obj
的值為 1,bl,且 judge_obj[6:l]的值為 6,bll_llll 時,在 judge_obj[l]前和 judge_ obj [7]前各填充一位0 ;如果判斷對象judge_obj
的值為1,bl,且judge_0bK6:l]的值不為6,bll_llll時,在judge_obj[l]前填充一位0 ;如果判斷對象judge_obj [60]的值為7,blll_1110時,在judge_0bj[7]前填充一位0,否則不填充數(shù)據(jù);3)當參照對象refer_obj[5:l]的值為5’bl_1110時,如果判斷對象judge_ob j [1 0] 的值為2,bll時,在judge_0bj[2]前填充一位0 ;如果判斷對象judge_obj[6:0]的值為 7’ blll_1110時,在judge_ob j [7]前填充一位0,否則不填充數(shù)據(jù);4)當參照對象refer_obj[5:2]的值為4’blllO時,如果判斷對象judge_obj [20] 的值為3,bill時,在judge_obj [3]前填充一位0 ;如果判斷對象judge_obj [60]的值為 7’ bll 1_1110時,在judge_obj [7]前填充一位0,否則不填充數(shù)據(jù);5)當參照對象refer_obj[5:3]的值為3’bllO時,如果判斷對象judge_obj [3:0]的值為4,bllll時,在judge_obj[4]前填充一位0 ;如果判斷對象judge_obj [60]的值為 7,blll_1110時,在judge_0bj[7]前填充一位0,否則不填充數(shù)據(jù);6)當參照對象refer_obj[5:4]的值為2’bl0時,如果判斷對象judge_obj的值為5,bl_llll時,在judge_obj[5]前填充一位0 ;如果判斷對象judge_obj [60]的值為 7,blll_1110時,在judge_0bj[7]前填充一位0,否則不填充數(shù)據(jù);7)當參照對象refer_obj[5]的值為1’b0時,如果判斷對象judge_obj [50]的值為6,bll_llll時,在judge_obj [6]前填充一位0 ;如果判斷對象judge_obj [60]的值為 7,blll_1110時,在judge_0bj[7]前填充一位0 ;否則不填充數(shù)據(jù)。
11.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述填充單元處理位填充操作,把當前被填充的位的個數(shù)輸出給累加單元,并把位填充后的結果作為整個電路的運行結果輸出。
12.如權利要求1所述的一種實現(xiàn)位填充的并行設計電路,其特征在于所述累加單元對被填充的位的個數(shù)進行累加,將結果輸出到判斷對象重組單元輸入端。
全文摘要
本發(fā)明提供一種實現(xiàn)位填充的并行設計電路,包含延遲單元、判斷對象重組單元、參照對象重組單元、判斷單元、填充單元和累加單元。延遲單元對輸入數(shù)據(jù)進行延遲,判斷對象重組單元對經(jīng)過時鐘周期延遲的數(shù)據(jù)進行重組并輸出判斷對象。參照對象重組單元對電路輸出的數(shù)據(jù)進行重組并輸出參照對象。判斷單元根據(jù)參照對象,對判斷對象重組單元輸出的判斷對象進行判斷,哪些位需要被填充,并輸出判斷結果到填充單元。填充單元進行位填充操作,并把當前填充的位的個數(shù)輸出到累加單元,位填充后的結果作為整個電路的運行結果輸出。累加單元對被填充的位的個數(shù)進行累加,并將結果輸出到判斷對象重組單元輸入端。本發(fā)明與傳統(tǒng)電路的設計及位填充操作相比,能大大地降低電路中的功耗。
文檔編號G06F13/38GK102541784SQ20101057238
公開日2012年7月4日 申請日期2010年12月21日 優(yōu)先權日2010年12月21日
發(fā)明者左耀華 申請人:上海華虹集成電路有限責任公司