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