當今時代已經成為信息化時代,而信息的數字化也越來越為研究人員所重視。數字化技術已經引發了一場范圍廣泛的產業革命,各種家用電器設備,信息處理設備都將向著數字化的方向變化。如數字電視、數字廣播、數字電影、DVD等等,同時現在的通信網絡也向著數字化的方向發展。隨著數字化的發展,數字集成電路也得到了廣泛應用。20世紀80年代中期,Altera和Xilinx分別推出了類似于PAL結構的擴展型CPLD和與標準門陣列類似的FPGA,它們都具有體系結構和邏輯單元比較靈活、集成度高以及適用范圍廣等特點。同時,這兩種器件也兼容了PLD和通用門陣列的優點,可實現較大規模的電路編程同時也很靈活。
漢明距離在信息論中的定義是兩個等長字符串之間的漢明距離,也就是兩個字符串對應位置的不同字符的個數。例如:*1011101與1001 001之間的漢明距離就是2;*2143896與2233796之間的漢明距離為3;*“toned”與“roses”之間的漢明距離為3。
在通信中,累計定長二進制字中發生翻轉的錯誤數據位通常也被稱為信號距離。事實上,漢明重量分析在包括信息論、編碼理論、密碼學等領域都有應用。
1 硬件設計
在擴頻通信和數字突發通信系統中,接收機進行的數字相關檢測或獨特碼檢測,實際上就是本地一組確定序列的一位二進制數,接收機將接收到的數據連續不斷的送入N位移位寄存器中,這樣,任一瞬間移位寄存器中的內容即為一串二進制碼,移位寄存器的輸出作為ROM的地址輸入,這樣,經查找表運算后,ROM就可輸出所需的數據,并將所得數據送入漢明計算電路以得到漢明距離,再經過門限判決輸入的漢明距離。其漢明距離的計算電路框圖如圖1所示。
1.1 8位并入串出移位寄存器
圖2是本系統中的并入串出移位寄存器電路圖。圖2中,當移位/置入控制端()為低時,并行數據(A—H)被置入寄存器;而當
為高電平時,并行置數功能被禁止。當CLK和CLK INK有一個為低電平且
為高電平時,另一個時鐘則可以輸入;當CLK和CLK INK有一個為高電平時,另一個時鐘被禁止:而只有在CLK為高電平時,CLK INK才可變為高電平。
1.2 ROM查找表的設計
用FPGA設計漢明距離電路的另一個關鍵是存儲器ROM,圖3所示是一個lpm_rom的器件圖。設計時,移位寄存器的輸出作為ROM的地址輸入,這樣,經查找表運算后,ROM就可以輸出所需的漢明數據。
1.3 邏輯計算電路
圖4所示是本系統中的邏輯計算電路的c5in3out的器件圖。通過c5in3out可計算出序列D6~D32的漢明距離。序列D0~D5(即圖4中的A,B,C,D,E)的漢明距離可以采用邏輯函數獲得。邏輯計算電路有三個二進制輸出變量,由最高有效位到最低有效位依次為A、B、C(即圖4中的X,Y,Z),其邏輯表達式為:
1.4 漢明加法器
圖5所示是一個漢明加法器的add器件圖。add通常是采用求和網絡法求和。求和網絡法將ROM輸出的數據兩兩通過一個加法器相加后,可將得出的結果再兩兩通過一個加法器相加,依次將各項計算結果相加在一起,其最終的累加結果便是漢明距離。
2 漢明電路的仿真調試
2.1 8位并入串出移位寄存器的maxpluslI仿真
8位并入串出移位寄存器maxplusII波形仿真如圖6所示。其中的Clk為移位時鐘信號;Load為并行數據預置使能信號;Din是8位二進制并行預置數據端口;Qb表示當前值reg(0)向qb輸出;Reg(8)為當前值和移位值(如:9A 1001 1010B;移位后:4D 0100 1101 B:第二次移位:A6 10100110 B)。
2.2 32位序列漢明距離電路的實現仿真
選取查找表-求和網絡法來實現32位漢明距離的計算時,可分別將(D6~D14)、 (D15~D23)、(D24~D32)作為查找表的地址線,再由此計算出序列D6~D32的漢明距離。而其序列D0~D5的漢明距離可以采用邏輯函數獲得,具體的波形仿真如圖7所示。
圖7中,Datain『31..0』為漢明距離電路的輸入端口;Out『4..0』為漢明距離計算輸出端口(內置的32位數可用十六進制表示為000000 00)。例如F800A08C即1111 1000 0000 0000 1010 0000 10001100B,輸出的漢明距離d為10。
3 結束語
設計完成后,可使用FPGA(即現場可編程門陣列)進行下載驗證,FPGA是專用集成電路(ASIC)領域中的一種半定制電路,FPGA既可解決定制電路的不足,又可克服原有可編程器件門電路數有限的缺點。而使用MaxPlusⅡ軟件和VHDL語言進行電路設計,不僅可以進行邏輯仿真,還可以進行時序仿真。由于本設計在編寫過程中使用了較多的與門和異或門,所以,在波形仿真圖中,波形顯示具有比較長的延時。但是,自行編寫的計數器功能完善,程序簡單明了,完全可以實現32位漢明距離的計算。