專利名稱:一種nrzi編解碼并行電路的制作方法
技術領域:
本發明涉及一種編解碼電路,特別是涉及一種NRZI編解碼并行電路。
背景技術:
隨著電子技術的發展,USB設備已經大量應用于日常生活中。USB技術采用串行總線,數據逐位依次傳送。USB系統中數據傳輸采用NRZI (NonReturn to Zero Invert,反向非歸零)編碼方式,這種編碼方式既能保證數據傳送的完整性,又不需獨立的時鐘信號和數據一起發送。當遇到O電平信號時NRZI編碼數據流發生跳變,而遇到I電平信號時保持不變。數據流中的跳變使解碼器可以與收到的數據保持同步,因而不必提供獨立的時鐘信號。大多數情況下,NRZI編碼與位填充一起使用,因為一長串的連續I將會導致無電 平跳變,從而引起接收器最終丟失同步信號,解決辦法是采用位填充技術。即在連續傳輸六個I的情況下填充一個0,使得NRZI編碼數據流中發生跳變,這就確保接收器至少可以在每七個的時間間隔內從數據流中會檢測到一次跳變,從而使接收器和傳送的數據保持同步。UTMI (USB2. O Transceiver Macrocell Interface)發送端負責在 NRZI 編碼前的數據流中插入一個O電平,即填充位操作;UTMI接收端須在NRZI解碼后的數據中,當出現六個連續I電平后,把其后的一個O電平給抽取出來丟棄,即位抽取操作。如果在接收到的數據中,六個連續的I后跟隨的不是O而是1,則產生錯誤,產生出錯信號。傳統的NRZI編解碼采用串行設計來實現的,由于高速模式下,USB的數據率是480Mbps,在串行處理NRZI解碼操作時,需要的工作時鐘為480MHz,極大地增加了電路功耗。
發明內容
本發明要解決的技術問題是提供一種NRZI編解碼并行電路,能實現NRZI編解碼操作,有效降低電路功耗。為解決上述技術問題,本發明的NRZI編解碼并行電路,包括N+1個二選一選擇器和N個同或運算單元,其中,一個二選一選擇器和一個同或運算單元組成一個數據選擇及運算的基本單元;第一個二選一選擇器受同步信號控制,接收NRZI編解碼電路的初始值和第N+1個二選一選擇器的輸出數據,輸出數據給第一個同或運算單元;第N+1個二選一選擇器受控制信號控制選擇的輸出數據直接輸出到第一個二選一選擇器;第M個二選一選擇器接收外部數據和第M-I個同或運算單元的輸出數據,并受控制信號控制選擇輸出數據,輸出到各自對應的同或運算單元,N;同或運算單元,接收外部數據和其各自對應的二選一選擇器的輸出數據,進行同或運算并輸出運算結果。
所述電路輸入數據和輸出數據的位寬為S比特,數據位寬S與同或運算單元個數N的關系為S = N。在傳統的電路中,發送數據通路需要一個NRZI編碼電路,接收數據通路需要一個NRZI解碼電路;本發明提供的NRZI編解碼并行電路在控制信號的控制下,既能進行NRZI編碼運算,又能進行NRZI解碼運算,應用于半雙工電路時,能替代發送數據通路的NRZI編碼電路和接收數據通路的NRZI解碼電路,能節省芯片資源,降低電路功耗。
圖I是本發明的NRZI編解碼并行電路一實施例的示意圖附圖標記MUXO是第一個二選一選擇器MUXl是第二個二選一選擇器 MUX2是第三個二選一選擇器MUX3是第四個二選一選擇器MUX4是第五個二選一選擇器MUX5是第六個二選一選擇器MUX6是第七個二選一選擇器MUX7是第八個二選一選擇器MUX8是第九個二選一選擇器XNORO是第一個同或運算單元XNORl是第二個同或運算單元XN0R2是第三個同或運算單元XN0R3是第四個同或運算單元XN0R4是第五個同或運算單元XN0R5是第六個同或運算單元XN0R6是第七個同或運算單元XN0R7是第八個同或運算單元。
具體實施例方式如圖I所示,本發明的一實施例中,NRZI編解碼并行電路包括八個同或XNOR運算單元,編號為XNORO至XN0R7 ;九個二選一選擇器,編號為MUXO至MUX8。第一個二選一選擇器MUXO在同步(sync)信號的控制下輸入NRZI解碼運算的初始值(ini_value),其它八個二選一選擇器在控制(encode_decode)信號的控制下選擇輸入數據,八個同或運算單元(XNOR)采樣外部輸入數據和其各自對應二選一選擇器的輸出數據,進行同或運算并輸出運算結果。當有數據和信號傳輸時,電路首先通過同步(sync)信號判斷當前這一字節的數據是否為第一字節數據。同步(sync)數據位寬為I比特,表示當前這字節數據是否為需進行NRZI解碼的數據。初始(ini_value)數據位寬為I比特,表示開始進行NRZI解碼的初始值,根據具體應用設定為I’ bl或I’ b0。輸入數據(din)位寬為8比特,表示需進行NRZI解碼的輸入數據;輸出數據(dout)位寬為8比特,表示經NRZI解碼后的輸出結果。如果同步數據為真時,表明當前這一字節的數據是當前這包數據中的第一字節數據,把預先設置或外部輸入的初始數據(in_value)通過二選一選擇器輸入到同或XNORO運算單元;否則,則表明當前這一字節的數據不是第一字節數據,把前一周期的第九個二選一選擇器的運算結果通過二選一選擇器輸入到同或XNORO運算單元。與此同時,把外部輸入的并行數據din[7:0]分別按位輸入到不同的同或XNOR運算單元,其中,din [O]表示din [7:0]中的第I位數據,din [I]表示din [7:0]中的第2位數據,din[2]表示din[7:0]中的第3位數據,din[3]表示din[7:0]中的第4位數據,din [4]表示din [7:0]中的第5位數據,din [5]表示din [7:0]中的第6位數據,din [6]表示din[7:0]中的第7位數據,din[7]表示din[7:0]中的第8位數據。由同或運算產生出當前這一位的輸出結果,通過dout [7:0]輸出出來;其中dout [O]表示dout [7:0]中的第I位數據,dout [I]表示dout [7:0]中的第2位數據,dout [2]表示dout [7:0]中的第3位數據,dout [3]表示dout [7:0]中的第4位數據,dout [4]表示dout [7:0]中的第5位數據,dout [5]表示dout [7:0]中的第6位數據,dout [6]表示dout [7:0]中的第7位數據,dout [7]表示dout [7:0]中的第8位數據。由控制信號(encode_decode)來判斷當前所做的是NRZI編碼操作還是NRZI解碼操作;當控制信號(encode_decode)為真時,電路進行NRZI編碼工作,此時,第二個二選一選擇器MUXl選擇把第一個同或運算單元XN0R0的輸出數據dout
輸出給第二個同 或運算單元XN0R1,第三個二選一選擇器MUX2選擇把第二個同或運算單元XN0R1的輸出數據dout [I]輸出給第三個同或運算單元XN0R2,第四個二選一選擇器MUX3選擇把第三個同或運算單元XN0R2的輸出數據dout[2]輸出給第四個同或運算單元XN0R3,第五個二選一選擇器MUX4選擇把第四個同或運算單元XN0R3的輸出數據dout[3]輸出給第五個同或運算單元XN0R4,第六個二選一選擇器MUX5選擇把第五個同或運算單元XN0R4的輸出數據dout [4]輸出給第六個同或運算單元XN0R5,第七個二選一選擇器MUX6選擇把第六個同或運算單元XN0R5的輸出數據dout [5]輸出給第七個同或運算單元XN0R6,第八個二選一選擇器MUX7選擇把第七個同或運算單元XN0R6的輸出數據dout [6]輸出給第八個同或運算單元XN0R7,第九個二選一選擇器MUX8選擇把第八個同或運算單元XN0R7的輸出數據dout [7]輸出給第一個二選一選擇器MUXO ;當控制信號(encode_decode)為假時,電路進行NRZI解碼工作,此時,第二個二選一選擇器MUXl選擇把外部輸入數據的第一位din
輸出給第二個同或運算單元XN0R1,第三個二選一選擇器MUX2選擇把外部輸入數據的第一位din[l]輸出給第三個同或運算單元XN0R2,第四個二選一選擇器MUX3選擇把外部輸入數據的第一位din[2]輸出給第四個同或運算單元XN0R3,第五個二選一選擇器MUX4選擇把外部輸入數據的第一位din[3]輸出給第五個同或運算單元XN0R4,第六個二選一選擇器MUX5選擇把外部輸入數據的第一位din [4]輸出給第六個同或運算單元XN0R5,第七個二選一選擇器MUX6選擇把外部輸入數據的第一位din [5]輸出給第七個同或運算單元XN0R6,第八個二選一選擇器MUX7選擇把外部輸入數據的第一位din[6]輸出給第八個同或運算單元XN0R7,第九個二選一選擇器MUX8選擇把外部輸入數據的第一位din[7]輸出給第一個二選一選擇器MUX0。以上通過具體實施方式
和實施例對本發明進行了詳細的說明,但這些并非構成對本發明的限制。在不脫離本發明原理的情況下,本領域的技術人員還可做出許多變形和改進,這些也應視為本發明的保護范圍。
權利要求
1.一種NRXI編解碼并行電路,包括 N+1個二選一選擇器和N個同或運算單元,一個二選一選擇器和一個同或運算單元組成一個數據選擇及運算的基本單元; 第一個二選一選擇器受同步信號控制,接收NRZI編解碼電路的初始值和第N+1個二選一選擇器的輸出數據,輸出數據給第一個同或運算單元; 第N+1個二選一選擇器受控制信號控制選擇的輸出數據直接輸出到第一個二選一選擇器; 第M個二選一選擇器接收外部數據和第M-I個同或運算單元的輸出數據,并受控制信號控制選擇輸出數據,輸出到各自對應的同或運算單元,N; 同或運算單元,接收外部數據和其各自對應的二選一選擇器的輸出數據,進行同或運算并輸出運算結果。
2.如權利要求I所述的并行電路,其特征是輸入數據和輸出數據的位寬為S比特,數據位寬S與同或運算單元個數N的關系為S = N。
全文摘要
本發明公開了一種NRZI編解碼并行電路,包括N+1個二選一選擇器和N個同或運算單元;第一個二選一選擇器受同步信號控制,接收NRZI編解碼電路的初始值和第N+1個二選一選擇器的輸出數據,輸出數據給第一個同或運算單元;第N+1個二選一選擇器受控制信號控制選擇的輸出數據直接輸出到第一個二選一選擇器;第M個二選一選擇器接受外部數據和第M-1個同或運算單元的輸出數據,并受控制信號控制選擇輸出數據,輸出到各自對應的同或運算單元,M≤N;同或運算單元,接收外部數據和其各自對應的二選一選擇器的輸出數據,進行同或運算并輸出運算結果。本發明的NRZI編解碼并行電路,應用于半雙工電路時,能實現NRZI編解碼功能,有效地降低電路功耗。
文檔編號H03M5/14GK102904577SQ20111021111
公開日2013年1月30日 申請日期2011年7月26日 優先權日2011年7月26日
發明者左耀華 申請人:上海華虹集成電路有限責任公司