周慶芳
摘 要:隨著人們生活水平的提高和生產力的發展,計算機現代技術的發展也越來越快。VHDL語言的出現和ASIC的應用進入了一個新的階段,現代通信技術也隨之發展起來。本文基于誤碼檢測原理和M序列產生的原理,通過VHDL硬件描述語言,實現了一種簡單的逐位比較型誤碼檢測器的設計以及各功能模塊的仿真。
關鍵詞:誤碼檢測器;FPGA;M序列 中圖分類號:TN912.16 文獻標識碼:C 收稿日期:2015-12-15
一、偽隨機序列及誤碼檢測器原理
偽隨機碼(或稱偽隨機序列)是模仿隨機序列的隨機特性而產生的一種碼字,也稱為偽噪聲碼或偽噪聲序列。偽隨機序列在數字通信中分為許多種,而在通信工程中,因為它常采用二進制偽隨機序列,所以在序列中有“0”和“1”兩種狀態。
在通信過程中,各種原因都有可能造成誤碼形式的出現,比如機器故障、傳播問題、信道干擾等因素都可能造成系統性能惡化甚至造成通信中斷。判決電路對數字通信接收系統是不可缺少的,有以下幾種原因可能造成判決錯誤:①電平的偏移;②抽樣時刻偏移;③疊加噪聲。
誤碼檢測器,又稱之為誤碼儀。由多種形式可以組成一個誤碼儀,而它的工作過程可以分為以下幾個方面:①以相同相位的本地碼作為比較標準,生成與發送碼組相同的碼型;②將本地與接收的兩組碼組逐個進行比較,然后輸出誤碼脈沖信號;③對誤碼脈沖信號進行統計,并給出相應的誤碼率。
二、誤碼檢測器設計
誤碼檢測器也就是逐位比較型誤碼檢測器,其基本原理是將發送端和接收端的兩組類型相同的序列進行分析,經過同步處理之后,把逐個碼元進行比較,假如出現誤碼,則兩列碼序列中本來相同的碼元就會變得不同;通過這些差異,在位同步時鐘的控制下通過異或門逐個碼元進行比較,然后把結果通過計數器發送到可以顯示的電路中進行顯示。
在時鐘的控制下,偽隨機序列是可以進行移位的,若原來的和接收到的偽碼序列不同步,則不可以實現兩種序列的正確比較;所以首先要從接收序列中抽取出位同步信號。停扣時鐘電路的功能是當序列對應位狀態不一致的時候,也就是狀態不同步時,同步和保護電路輸出一個控制信號,然后通過停扣時鐘電路扣除一個時鐘脈沖。通過這種方法經過停扣時鐘電路的時鐘信號來觸發本地偽碼發生器,也就相當于本地偽碼序列延遲一個時鐘周期,也就是說,本地序列可以等待一個時鐘周期;同步與保護電路其中的一個功能是同步控制作用,另一個是在系統狀態同步后,一旦出現誤碼或不同步的情況,就設置一定的失鎖保護時間,以保證系統同步的穩定性,而不是馬上進行同步捕獲。
三、誤碼檢測器模塊仿真
在誤碼檢測器設計工作結束之后,我們需要對其進行模塊仿真。誤碼檢測器設計的主要原理就是采用四位移位寄存器來對接收序列進行移位和串/并變換。
主要的工作過程為:①等待時鐘“CLK”的上升沿觸發,然后接收從“inp”端輸入的m序列;②按順序進行移位:inp→A3→A2→A1→A0;③分別把A3,A2,A1,A0的數據對應輸出到B3,B2,B1,B0端,完成串并變換。④A0端獲取Q端的信號并作為移位4位后的串行m序列信號。
本文中m序列的生成原理為:當load標志位的值為1時,信號發生器向移位寄存器置初值;當標志位的值為0時,根據反饋信號發生器進行移位,并按照規律生成偽隨機的m序列信號。
在設計誤碼統計和門限檢測模塊時,根據時鐘節拍,分別對誤碼脈沖和時鐘脈沖進行計數,并進行比較。根據公式計算誤碼率,若誤碼率高于30%,則認為誤碼率很高,兩序列狀態不同步,需要將門限檢測器的值設為0,并開始同步搜索;反之,若誤碼率較低,則認為檢測到的是真正的序列誤碼,將門限檢測器的值設為1,并無需同步搜索,此時可以得到時序仿真波形。
系統中采用連“1”計數器模塊與輸出控制電路對系統進行控制。對狀態比較器連“1”狀態的輸出進行計數,當數值與預設值一致時,系統控制“并行輸入與狀態控制”電路,將各并行輸出設為“0”,計數器輸出設為“1”,表示狀態已同步;反之,若計數器的輸出始終為“0”,則狀態不同步。
參考文獻:
[1]邢建平.VHDL程序設計教程[M].北京:清華大學出版社,2005.
[2]劉睿強,童貞理,尹洪劍.Verilog HDL數字系統設計與實踐[M].北京:電子工業出版社,2011.
[3]周潤景.基于Quartus II的FPGA/CPLD數字系統設計實例(第2版)[M].北京:電子工業出版社,2013.