一種基於時分復用的自相關運算VLSI設計方法與流程
2023-12-03 22:08:11

本發明涉及集成電路設計領域,尤其涉及一種基於時分復用的自相關運算VLSI設計方法。
背景技術:
在統計通信及數位訊號處理中,相關(或稱線性相關)的概念十分重要。相關函數和信號的功率譜有密切關係。在隨機信號處理中,可以用相關函數來描述一個平穩隨機信號的統計特性。自相關運算是隨機信號在不同時刻的值之間的依賴性的度量,可以用來檢測淹沒在隨機噪聲幹擾中的信號。
自相關算法的函數公式為:對於1×M階復向量A=[a0,a1,...,ai,...,aM-1],A的自相關函數R(j)表示為:
如果按照此公式實現,運算過程就是乘累加的過程,時間複雜度為O(M2)。當源數據點數增大時,計算量大,該算法模塊所需的運算時間會迅速增長,而且對存儲空間的需求也較大,不利於實現。
使用FFT計算自相關的算法原理為:
(1)將長度為N1的輸入序列x(n)補零至長N,其中N≥2N1-1,且N=2m。令
(2)求N點FFT,X(k)=DFT[x(n)];
(3)求共軛點乘,R(k)=X*(k)X(k);
(4)求N點IFFT,r(n)=IDFT[R(k)];
(5)對r(n)向右循環移位N1即得自相關結果。
FFT算法有基於時域抽取和頻域抽取兩種,又分為正序輸入逆序輸出和逆序輸入正序輸出兩種輸入輸出模式。常見的正序輸入逆序輸出使用頻域抽取,逆序輸入正序輸出使用時域抽取。
技術實現要素:
本發明的目的是克服上述背景技術的不足,提供一種基於時分復用的自相關運算VLSI設計方法。本設計通過使用FFT,可以有效地降低自相關算法的時間複雜度。本設計實現了128K點及以下的自相關運算。為達到上述目的,本發明的技術方案是這樣實現的:
所述基於時分復用的自相關運算VLSI設計方法,包括如下步驟:
(1)通過FFT模塊將源數據補零後做2的冪次方傅立葉變換,並輸出一次中間結果;
(2)將所述中間結果進行共軛點乘,並將二次中間結果存回原地址;
(3)最後通過逆FFT模塊,對所述二次中間結果做逆傅立葉變換,得到自相關結果。
所述基於時分復用的自相關運算VLSI設計方法的進一步設計在於,FFT模塊由地址生成單元、蝶形運算單元以及旋轉因子生成單元組成。
所述基於時分復用的自相關運算VLSI設計方法的進一步設計在於,逆FFT模塊為基於頻域抽取,復用FFT模塊的地址生成單元、蝶形運算單元和旋轉因子生成單元,並通過狀態機控制旋轉因子生成規律、調整蝶形運算單元輸入輸出順序。
所述基於時分復用的自相關運算VLSI設計方法的進一步設計在於,所述逆FFT模塊根據狀態機的輸出,復用正序輸入、逆序輸出FFT模塊中的地址生成單元和蝶形運算單元;進行逆序輸入,正序輸出的傅立葉變換操作。
所述基於時分復用的自相關運算VLSI設計方法的進一步設計在於,共軛點乘由原位共軛點乘模塊執行,原位共軛點乘模塊由狀態機控制產生讀寫地址,並根據所述讀寫地址串行流水讀入不同內存庫的數據,並共軛送入原位共軛點乘模塊中的複數乘法運算單元執行並行流水運算,並將運算結果存回原地址。
所述基於時分復用的自相關運算VLSI設計方法的進一步設計在於,原位共軛點乘模塊採用四路並行,將32個內存庫每4個分成一組,每次從4個內存庫中讀數送入複數乘法運算單元。
本發明的有益效果為:
(1)本發明可以通過增減存儲資源和計算資源,滿足不同點數自相關運算的性能需求。
(2)本發明通過分時復用的方式最大限度地提高硬體資源的利用率以及運算效率。逆FFT模塊復用頻域抽取,正序輸入逆序輸出FFT模塊的地址生成單元和計算單元,省去結果逆序變正序的過程,只需改變內部狀態機和進數順序就能實現頻域抽取方式下,逆序輸入,正序輸出的逆FFT。
附圖說明
圖1為用FFT計算自相關函數算法流程。
圖2為源數據補零過程。
圖3為結果數據循環移位搬出過程。
圖4為共軛點乘模塊架構圖。
圖5為逆FFT狀態轉換圖。
具體實施方式
下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
本發明的具體實施完成了基於2MB單埠Memory,4路複數乘法器資源的算法硬體實現。可進行128K點及以下的自相關運算。
自相關分三步驟進行,分別是FFT、原位共軛點乘、逆FFT,使用一個狀態機控制先後順序,並且通過控制複選器,分時復用運算資源和存儲資源,算法過程如圖1,具體如下:
(1)補零後FFT運算
如圖2,首先讀取源數據要進行補零,做2的冪次方的FFT運算。
(2)原位共軛點乘
共軛點乘模塊採用4個複數乘法器並行計算,復乘器流水出數,結果存回原地址。分為乘法運算,讀寫地址控制,讀寫信號控制。
由於系統採用四路並行,將所有32個bank每4個分成一組,每次從4個bank中讀數送入運算單元,參見如圖4。由狀態機控制每次讀寫的存儲地址,流水輸出運算結果存回原址。
(3)逆FFT運算
逆FFT模塊復用FFT模塊中的地址生成單元,蝶形運算單元和旋轉因子生成單元。採用狀態機控制(如圖5),改變混合基執行順序,旋轉因子生成規律以及調整運算模塊輸入輸出順序。實現一種基於頻域抽取,逆序輸入正序輸出的FFT,而無需另外的索引轉換過程,節約了硬體資源和運算時間。待計算完成後還要控制讀取索引順序變化使得結果順序正確,參見如圖3。
本設計具體實施採用仿真/綜合工具和40nm CMOS工藝,主頻達到1GHz。基於1GHz時鐘頻率下,複數乘法器、複數加法器、實數乘法器、實數加法器均為4拍延遲的流水運算單元,所有運算單元均為單精度浮點運算單元,存儲器的取數延遲為6拍。當運算點數為8K點時,本設計方法所需的運算時間為常用乘累加實現所需時間的1%。由於本設計方法中的FFT模塊被復用於實現FFT,逆FFT和自相關運算三種算法,相比於分開的硬體實現方法節約硬體面積64%。
本實施例可以通過增減存儲資源和計算資源,滿足不同點數自相關運算的性能需求。另一方面,通過分時復用的方式最大限度地提高硬體資源的利用率以及運算效率。逆FFT模塊復用頻域抽取,正序輸入逆序輸出FFT模塊的地址生成單元和計算單元,省去結果逆序變正序的過程,只需改變內部狀態機和進數順序就能實現頻域抽取方式下,逆序輸入,正序輸出的逆FFT。
以上所述,僅為本發明較佳的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以權利要求的保護範圍為準。