專利名稱:一種cordic算法的實現(xiàn)裝置的制作方法
技術領域:
本發(fā)明涉及一種CORDIC算法的實現(xiàn)裝置,屬于數(shù)字信號處理領域。
背景技術:
CORDIC(坐標旋轉數(shù)字計算機)算法由J.E.Volder于1959年提出,其思想是通過一系列固定的、與運算基數(shù)相關的角度的不斷偏擺來逼近所需的旋轉角度,用簡單的移位、加法運算代替了復雜的乘法運算。該算法最早應用于導航系統(tǒng),使得矢量旋轉和定向運算不再需要做三角函數(shù)查表、乘法、開方以及反三角函數(shù)等復雜處理。1971年,Walther把CORDIC算法推廣到各種初等函數(shù)的統(tǒng)一計算中,隨著VLSI(超大規(guī)模集成電路)技術的發(fā)展,CORDIC算法得到了廣泛的應用。由于CORDIC算法包括多次迭代過程,為降低時鐘要求,其電路實現(xiàn)摒棄了單級結構,一般采用流水線形式。例如,發(fā)明專利200410013670.3公開了一種基于CORDIC單元的陣列式可重構DSP引擎芯片結構,通過使用模塊化的結構實現(xiàn)了對不同字寬CORDIC計算的兼容,但基本結構仍為傳統(tǒng)的流水線;發(fā)明專利200580003296.1公開了一種用于復合相旋轉的CORDIC算法的實現(xiàn),采用復合相矢量旋轉實現(xiàn)CORDIC算法雖然減少了流水線級數(shù),但由于計算不能使用簡單的“移位-加”實現(xiàn),硬件資源消耗仍然很大。流水線結構的CORDIC具有速度快、電路實現(xiàn)簡單等優(yōu)點,但是,由于流水線級數(shù)多,導致時延和資源消耗亦相當可觀,因此有必要尋找一種新的CORDIC算法實現(xiàn)結構,在速度和芯片面積上取得較好的優(yōu)化。
發(fā)明內容
本發(fā)明的目的是提供一種CORDIC算法的實現(xiàn)裝置,用于縮短流水線形式的CORDIC時延,并節(jié)約資源。
本發(fā)明的一種CORDIC算法實現(xiàn)裝置包括控制單元、m1級方向向量發(fā)生單元、m1級角度旋轉單元、m2級模校正單元和輸出單元。該裝置能夠對輸入復數(shù)實施角度為θ(0≤θ<2π)的旋轉。該裝置的輸入時鐘包括數(shù)據(jù)時鐘clk1和迭代時鐘clk2,其中,clk2為clk1的n倍頻。根據(jù)輸出數(shù)據(jù)精度、時鐘要求,可對方向向量發(fā)生單元、角度旋轉單元的級數(shù)m1和模校正單元的級數(shù)m2以及參數(shù)n進行配置,這里m1、m2、n均為自然數(shù),一般取2≤n≤8,3≤m1≤6,2≤m2≤4。
上述的控制單元,包括一個沿檢測器和一個計數(shù)器。沿檢測器對clk1的上升沿進行檢測,實現(xiàn)clk1與clk2的同步,產生選擇控制信號。計數(shù)器對clk2進行計數(shù),對迭代過程進行同步和控制,產生迭代計數(shù)信號。
上述的m1級方向向量發(fā)生單元,各級單元均包括一個多路選擇器、一個存儲器、一個運算器和一個D觸發(fā)器。多路選擇器對外部輸入角度θ(或前級D觸發(fā)器的輸出)和本級D觸發(fā)器的輸出進行選擇,然后把輸出的符號位作為方向向量δ輸出。存儲器用于存儲偏移角度γi(1≤i≤m1·n),當1 ≤i≤ 6時,γi=π/4;當6<i≤m·n時,γi=arctan(26-i)。其中第k(1≤k≤m1)級方向向量發(fā)生單元存儲器內的偏移角度為γi((k-1)·n+1≤i≤k·n),存儲器根據(jù)控制單元發(fā)出的迭代計數(shù)信號,選擇相應的偏移角度送入運算器與多路選擇器的輸出進行計算,計算方式由方向向量確定。計算結果寄存于D觸發(fā)器中。
上述的m1級角度旋轉單元,各級單元均包括一個多路選擇器、一個移位器、一個運算器和一個D觸發(fā)器。角度旋轉單元與方向向量發(fā)生單元的各級單元一一對應,并且工作方式類似,多路選擇器用于輸入選擇,運算器的計算方式由第k級方向向量發(fā)生單元產生的方向向量確定,D觸發(fā)器用于寄存計算結果。不同之處在于,角度旋轉單元在方向向量發(fā)生單元中存儲器的位置代之以移位器。移位器根據(jù)控制單元發(fā)出的迭代計數(shù)信號,對多路選擇器的輸出進行右移位處理,與偏移角度γi對應,右移位數(shù)si(1≤i≤m1·n)為當1≤i≤6時,si=0;當6<i≤m·n時,si=i-6。其中,第k級角度旋轉單元中移位器的右移位數(shù)為si((k-1)·n+1≤i≤k·n)。多路選擇器與移位器的輸出將被送入至運算器中進行計算。
上述的m2級模校正單元,各級單元均包括一個多路選擇器、一個移位器、一個運算器和一個D觸發(fā)器。模校正單元用于完成最后一級角度旋轉單元輸出與模校正系數(shù)(0.075906617)的乘法操作。本領域內公知,常數(shù)乘法可用“移位-加”計算實現(xiàn),模校正單元即采用此方式進行。各級模校正單元的工作方式與角度旋轉單元類似,不同之處在于,迭代過程中移位器的右移位數(shù)由模校正系數(shù)確定,運算器中只進行減法計算,不需要提供方向向量。
上述的輸出單元接收最后一級模校正單元的計算結果,并將其輸出到裝置外部。
上述的m1級方向向量發(fā)生單元之間、m1級角度旋轉單元之間、m2級模校正單元之間以及第m1級角度旋轉單元與第1級模校正單元之間均采用級聯(lián)方式進行連接,在迭代計數(shù)信號的控制下,每個clk1周期內,各級單元同步完成n次迭代。
綜上所述,本發(fā)明提供的CORDIC算法實現(xiàn)裝置與傳統(tǒng)的流水線CORDIC在一個clk1周期內每級單元只進行一次迭代計算相比,該裝置通過在每級單元內同步進行多次迭代,減少了CORDIC計算級數(shù),從而降低了資源消耗。該裝置可廣泛應用于數(shù)字信號處理領域。
圖1為4級CORDIC運算結構示意圖。
圖2為控制單元示意圖。
圖3為方向向量發(fā)生單元示意圖。
圖4為角度旋轉單元示意圖。
圖5為模校正單元示意圖。
其中10是控制單元CU、20是m1級方向向量發(fā)生單元DGU、30是m1級角度旋轉單元ARU、40是m2級模校正單元MRU、50是輸出單元OU、101是CU沿監(jiān)測器、102是CU計數(shù)器、201是DGU多路選擇器、202是DGU存儲器、203是DGU運算器、204是DGU的D觸發(fā)器、301是ARU多路選擇器、302是ARU移位器、303是ARU運算器、304是ARU的D觸發(fā)器、401是MRU多路選擇器、402是MRU移位器、403是MRU運算器、404是MRU的D觸發(fā)器。
具體實施例方式
下面將結合附圖和實施例對本發(fā)明作進一步的詳細說明。
實施例1以4級CORDIC運算結構(m1=4,m2=2,n=4)為例。
4級CORDIC運算結構如圖1所示,該運算裝置由控制單元CU10、4級方向向量發(fā)生單元DGU20、4級角度旋轉單元ARU30、2級模校正單元MRU 40以及輸出單元OU 50構成。clk2為clk1的4倍頻,在一個clk1周期內,各級方向向量發(fā)生單元DGU、角度旋轉單元ARU與模校正單元MRU進行4次迭代計算。
控制單元CU10由沿檢測器101與計數(shù)器102組成(如圖2所示)。在clk1上升沿到達后的第2個clk2周期內,沿檢測器101將選擇控制信號sc拉高,其余時間則置低,計數(shù)器對clk2進行計數(shù),當sc為高電平時開始清零,計數(shù)器的輸出ic最大值為3,信號sc與ic輸入到方向向量發(fā)生單元DGU、角度旋轉單元ARU和模校正單元MRU單元中,用于迭代計算過程的控制與同步。
四級方向向量發(fā)生單元DGU 20的每級單元均由一個多路選擇器201、一個存儲器202、一個運算器203和一個D觸發(fā)器204組成(如圖3所示)。取多路選擇器201輸出的符號位作為方向向量δ輸出。當ic=3,sc=1時,多路選擇器201將外部輸入角度θ(對于第一級DGU 20單元)或前級D觸發(fā)器204的輸出(對于第2~4級DGU 20單元)送入運算器203,同時進入運算器203的還有存儲器202內的第1個偏移角度。當δ=0時,運算器203執(zhí)行減法運算;當δ=1時,運算器203執(zhí)行加法運算,運算結果寄存于D觸發(fā)器204中。當ic=0,1,2時,sc=0,多路選擇器201將本級D觸發(fā)器204的輸出送入運算器203,同時進入運算器203的還有存儲器202內的第2、第3或第4個偏移角度,運算結果同樣寄存于D觸發(fā)器204中。在一個clk1周期內,DGU 20的各級單元產生4個方向向量。
四級角度旋轉單元ARU 30的每級旋轉角度單元均由一個多路選擇器301、一個移位器302、一個運算器303和一個D觸發(fā)器304組成(如圖4所示)。當ic=3時,sc=1,多路選擇器301將外部輸入復數(shù)(對于第一級ARU 30單元)或前級D觸發(fā)器304的輸出(對于第2~4級ARU 30單元)送入運算器303,多路選擇器301的輸出經過右移位處理后也進入運算器303中。當δ=0時,運算器303通過減法運算得到實部結果,通過加法運算得到虛部結果;當δ=1時,實部與虛部分別通過加法與減法得到。當ic=0,1,2時,sc=0,多路選擇器301將本級D觸發(fā)器304的輸出與移位器302的輸出一塊送入運算器303,運算結果同樣寄存于D觸發(fā)器304中。移位過程中的右移位數(shù)由ic控制。
兩級模校正單元MRU 40的每級單元均由一個多路選擇器401、一個移位器402、一個運算器403和一個D觸發(fā)器404組成(如圖5所示)。當ic=3時,sc=1,多路選擇器401將第四級ARU 30單元中D觸發(fā)器304的輸出(對于第一級MRU40單元)或前級D觸發(fā)器404的輸出(對于第二級MRU 40單元)送入運算器403,多路選擇器401的輸出經過右移位處理后也進入運算器403中,運算器403只執(zhí)行減法操作。當ic=0,1,2時,sc=0,多路選擇器401將本級D觸發(fā)器404的輸出與移位器402的輸出一塊送入運算器403,運算結果同樣寄存于D觸發(fā)器404中。移位過程中的右移位數(shù)由ic控制。
在輸出單元OU50中,當sc=1時,對第二級MRU40單元中D觸發(fā)器404的輸出進行接收與寄存,輸出最終結果(即輸入復數(shù)經過角度為θ旋轉后的結果)。
上述的CORDIC運算結構采用4級方向向量發(fā)生單元、4級角度旋轉單元實現(xiàn)了16次迭代計算,采用2級模校正單元實現(xiàn)了8次迭代計算,若采用流水線結構完成同樣的迭代計算次數(shù),則分別需要16級方向向量發(fā)生單元、16級角度旋轉單元以及8級模校正單元,與傳統(tǒng)的CORDIC流水線結構相比,4級CORDIC運算結構較大程度上降低了硬件資源消耗。
權利要求
1.一種CORDIC算法的實現(xiàn)裝置,其特征在于該裝置包括控制單元,對數(shù)據(jù)時鐘clk1和迭代時鐘clk2進行同步,控制迭代計算過程,clk2為clk1的n(n為自然數(shù),一般取2≤n≤8)倍頻;m1級方向向量發(fā)生單元,(m1為自然數(shù),一般取3≤m1≤6),根據(jù)輸入角度θ和存儲的偏移角度產生方向向量;m1級角度旋轉單元,根據(jù)方向向量對輸入復數(shù)進行“移位-加”計算;m2級模校正單元,(m2為自然數(shù),一般取2≤m2≤4),對角度旋轉后的輸出乘以模校正系數(shù),也采用“移位-加”計算實現(xiàn);輸出單元,接收并輸出模校正的計算結果;上述的m1級方向向量發(fā)生單元之間、m1級角度旋轉單元之間、m2級模校正單元之間以及第m1級角度旋轉單元與第1級模校正單元之間均采用級聯(lián)方式進行連接。
2.如權利要求1所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的控制單元由沿檢測器與計數(shù)器構成,沿檢測器實現(xiàn)clk1與clk2的同步,產生選擇控制信號,計數(shù)器產生迭代計數(shù)信號,對迭代過程進行同步和控制。
3.如權利要求1所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的m1級方向向量發(fā)生單元,各級單元分別由一個多路選擇器、一個存儲器、一個運算器和一個D觸發(fā)器構成,多路選擇器輸出的符號位作為方向向量輸出,存儲器用于存儲偏移角度,根據(jù)控制單元發(fā)出的迭代計數(shù)信號進行選擇并把選擇的相應的偏移角度送入運算器,與多路選擇器的輸出進行計算,計算方式由方向向量確定。
4.如權利要求1所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的m1級角度旋轉單元,各級單元分別由一個多路選擇器、一個移位器、一個運算器和一個D觸發(fā)器構成,各級角度旋轉單元與方向向量發(fā)生單元是對應的,并且工作方式類似,根據(jù)控制單元發(fā)出的迭代計數(shù)信號,移位器對多路選擇器的輸出進行右移位處理,多路選擇器與移位器的輸出將被送入至運算器中進行計算,計算方式由方向向量發(fā)生單元產生的方向向量確定。
5.如權利要求1所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的m2級模校正單元,各級單元分別由一個多路選擇器、一個移位器、一個運算器和一個D觸發(fā)器構成,各級模校正單元與角度旋轉單元的工作方式類似,使用“移位-加”迭代計算實現(xiàn)最后一級角度旋轉輸出與模校正系數(shù)的乘法操作,迭代過程中移位器的右移位數(shù)由模校正系數(shù)確定,運算器中只進行減法計算。
6.如權利要求1或2或3或4或5所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于在控制單元產生的迭代計數(shù)信號的控制下,每個clk1周期內,各級方向向量發(fā)生單元、角度旋轉單元、模校正單元分別同步完成n次迭代。
7.如權利要求1或3或4或5所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的多路選擇器,當選擇控制信號為高電平時,選擇外部輸入數(shù)據(jù)或前級D觸發(fā)器的輸出,當選擇控制信號為低電平時,選擇對本級D觸發(fā)器的輸出。
8.如權利要求1或3或4或5所述的一種CORDIC算法的實現(xiàn)裝置,其特征在于所述的D觸發(fā)器,用于寄存運算器的輸出。
全文摘要
本發(fā)明提供一種CORDIC算法的實現(xiàn)裝置。應用該裝置,可對輸入復數(shù)實施角度為θ(0≤θ<2π)的旋轉。該裝置由控制單元、m
文檔編號G06F7/48GK101082858SQ20071011869
公開日2007年12月5日 申請日期2007年7月12日 優(yōu)先權日2007年7月12日
發(fā)明者劉榮科, 戚達平 申請人:北京航空航天大學