基于FPGA的高速數字相關器設計
摘要:在數字通信的數據傳輸過程中,需要保持數據在傳輸過程中的同步,因此要在數據傳輸過程中插入幀同步字進行檢測,從而有效避免發送數據和接收數據在傳輸過程中出現的異步問題。文中提出了一種采用流水線技術、基于 FPGA設計高速數字相關器的方法。仿真結果表明設計方案是可行的。
本文引用地址:http://www.j9360.com/article/191861.htm在數字通信系統中,常用一個特定的序列作為數據開始的標志,稱為幀同步字。在數字傳輸的過程中,發送端要在發送數據之前插入幀同步字。接收機需要在已解調的數據流中搜尋幀同步字,以確定幀的位置和幀定時信息。幀同步字一般為一系列連續的碼元,在接收端需要對這一系列連續的碼元進行檢測,如果與預先確定的幀同步字吻合,則說明接收端與發送端的數據是保持同步的,開始接收,否則不能進行接收。完成幀同步字檢測工作的正是數字相關器。本文采用流水線技術,研究了基于 FPGA的高速數字相關器的設計方法,并給出了 MAX+PLUSII環境下的仿真結果。
1 數字相關器原理
數字相關器在通信信號處理中實質是起到數字匹配濾波器的作用,它可對特定碼序列進行相關處理,從而完成信號的解碼,恢復出傳送的信息。其實現方法是進行兩個數字信號之間的相關運算,即比較等長度的兩個數字序列之間有多少位相同,多少位不同。昀基本的相關器是異或門,例如,y=ab,當 a=b時,y=0,表示兩位數據相同;當 a≠b時,y=1,表示兩位數據不同。多位數字相關器可以由一位相關器級連構成。 N位數字相關器的運算通常可以分解為以下兩個步驟:對應位進行異或運算,得到 N個 1位相關運算結果;統計 N位相關運算結果中 0或 1的數目,得到 N位數字中相同位和不同位的數目。
當數字相關器接收到一組數據時,在時鐘的上升沿對幀同步字進行檢測。對于幀同步字是一個連續 16位的碼元,數字相關器在進行檢測的過程中,只有當連續檢測到 16位的碼元與預先設定的幀同步字完全相同時,才由輸出端輸出信號表示幀同步。否則,任何一位出現不相等,數字相關器又將重新開始進行檢測,直到出現連續的 16位碼元與預先設定的 16位碼元完全相等時才進行輸出。數字相關器的設計一般考慮采用串行輸入或并行輸入兩種輸入檢測方式,由于串行輸入是在 16個時鐘周期內依次對兩路串行輸入信號 A、B進行異或運算,并統計數據位相同個數,檢測速度較慢,要提高檢測速度,就要考慮采用并行輸入檢測方式。
在 16位并行數字相關器中,由于實現 16位并行相關器需要的乘積項、或門過多,因此為降低耗用資源,可以分解為 4個 4位相關器,然后用兩級加法器相加得到全部 16位的相關結果,其結構圖如圖 1所示,如果直接實現該電路,整個運算至少要經過三級門延時。隨著相關數目的增加,速度還將進一步降低。為提高速度,采用“流水線技術”進行設計,模塊中對每一步運算結果都進行鎖存,按照時鐘節拍逐級完成運算的全過程。雖然每組輸入值需要經過三個節拍后才能得到運算結果,但是,每個節拍都有一組新值輸入到第一級運算電路,每級運算電路上都有一組數據同時進行運算,所以總的來講,每步運算花費的時間只有一個時鐘周期,從而使系統工作速度基本等于時鐘工作頻率。
評論