本發明涉及超大規模集成電路的數字信號處理領域,具體涉及一種基于擴展cordic算法的立方根求解方法及求解裝置。
背景技術:
1、立方根計算作為一項重要的基礎數學操作,在現代數字信號處理、圖像處理以及高性能計算等領域中應用廣泛。例如,在三維圖像渲染中,立方根運算可用于計算光線跟蹤算法中的空間距離或體積參數;在機器學習和數據科學中,立方根常被用于標準化和數據變換;在通信系統中,它可以幫助解決功率計算和調制解調等問題。
2、目前,立方根的求解方法主要有以下幾種:數值迭代法(如牛頓迭代法)、查找表法和基于多項式近似的插值法。這些方法在軟件實現中具有一定的靈活性,但在硬件實現中卻面臨較大挑戰。數值迭代法通常需要大量的乘法運算,導致硬件資源消耗較大;查找表法雖然速度較快,但表的存儲需求會隨著輸入精度的提高迅速增加,難以滿足資源受限的嵌入式系統需求;而多項式插值法在硬件實現中容易受到高階多項式的復雜性影響,從而增加電路的延時和功耗。因此,現有方法在硬件實現方面存在效率、資源占用和精度之間的權衡問題,難以同時滿足高效性、低功耗和高精度的需求。
3、立方根計算的表達式可以進行等價轉換,即可以看出,等價表達式復合了自然對數、除法和e指數三種函數運算,直接設計硬件計算電路上實現復雜度較高。cordic(coordinate?rotation?digital?computer)算法,即坐標旋轉數字計算機算法,是一種僅依賴于移位和加法操作便可實現三角函數、對數、指數、平方根等復雜計算,非常適合在硬件電路上應用的方法。cordic算法為構建上述立方根求解裝置提供有效的技術途徑。
4、標準cordic算法可以在圓周坐標系、線性坐標系和雙曲坐標系三種坐標系下進行運算,每種坐標系具有旋轉和向量兩種工作模式。標準cordic算法在雙曲坐標系下的迭代過程如下式所示:
5、
6、其中包含了x、y、z三條處理鏈路,迭代系數i為從1開始的整數,x、y表示二維坐標平面上的向量坐標,z表示角度累加器,對每次迭代的角度進行累加,以跟蹤整體的旋轉角度;在向量模式和旋轉模式下,使用符號函數sign計算di的正負取值,即di=sign(yi)和di=sign(zi),用于判斷該次迭代的旋轉方向;tanh-1(2-i)表示每次迭代的固定角度,可根據迭代系數提前計算。
7、此外,在雙曲坐標系下,當迭代系數滿足i=3n+1(n為正整數),即i=4,7,10,…時,為確保結果收斂需重復一次迭代計算。最終,結果需再乘以由總迭代次數n確定的伸縮因子1/kn,即:
8、
9、在硬件電路實現時,固定旋轉角度和伸縮因子一般提前計算后設置為固定參數,存放在rom表中。
10、標準cordic算法在線性坐標系下向量模式的迭代過程如下式所示:
11、
12、其中,i為從0開始的整數,di=-sign(yi),通過sign(yi)判斷該次迭代的旋轉方向。
13、從立方根計算的等效表達式可以看出,從表達式的內層到外層,在具體實現時需要調用3次cordic算法模塊,首先使用雙曲坐標系下cordic算法的向量模式計算ln(r),然后使用線性坐標系下cordic算法的向量模式計算ln(r)/3,最后使用雙曲坐標系下cordic算法的旋轉模式計算得到最終的計算結果。這種基于標準cordic算法的實現方法雖然可以實現立方根計算,但其計算范圍有限,在數字系統的實際應用場景中,所需計算的值往往會超出該立方根求解方法的支持范圍。同時,為滿足數字系統實際應用當中實時處理和高性能計算的需求,求解裝置在設計時可以采用流水線架構設計,將多個計算階段并行處理以提高計算的吞吐率。
技術實現思路
1、本發明的目的是基于擴展cordic算法,提出一種高效、低功耗、高精度的立方根求解方法,并進一步提供了一種適用于超大規模集成電路的數字信號處理領域的立方根求解裝置。特別的,該方法通過擴展cordic算法和全流水線架構的設計,克服了傳統方法在硬件實現中的效率、資源占用和精度之間的權衡問題,能有效滿足實時數字信號處理系統的計算需求。
2、本發明提供一種基于擴展cordic算法的立方根求解方法,特別針對數字信號處理領域的相關計算問題,具體步驟如下:
3、首先,對于一個正實數r(在數字信號處理中,r可以表示信號的幅度、功率值等),立方根的計算可等效為:
4、
5、具體來說,立方根計算在數字信號處理中的應用可以包括以下幾個方面:
6、1.音頻信號的增益調整:r可以代表音頻信號的幅度或強度,通過計算能夠對音頻的動態范圍進行平滑處理,從而在聲音播放過程中避免過度放大的失真。
7、2.圖像處理中的光照調整:假設r代表場景中的光源強度或像素亮度值,通過對其立方根計算,可以確保圖像的亮度或對比度保持在合適的范圍,改善圖像效果。
8、3.信號功率的計算:在無線通信中,r可以代表接收到的信號的幅度。例如,在調制解調技術中,通過對信號強度r進行立方根計算,可以幫助系統調整傳輸功率,優化信號質量,避免過度干擾。
9、4.數據標準化與預處理:在數據科學中,r可以表示需要標準化或歸一化的數據值。例如,當處理大量數據時,使用立方根計算可以幫助將數據壓縮到更合適的范圍,減少極端值對模型訓練的影響。
10、根據上述等式,考慮到超大規模集成電路中數字信號處理的特性,可以將立方根計算的結構分為三個步驟:
11、步驟1:求解自然對數ln(r),其中r是輸入的數字信號,表示待處理的信號的幅度,這一步驟將信號轉化為其對數形式,得到自然對數信號。該步驟通過擴展cordic算法在雙曲坐標系下的向量模式實現。
12、步驟2:對自然對數信號進一步處理,求解除法得到ln(r)/3,得到除法結果信號。該步驟通過擴展cordic算法在線性坐標系下的向量模式實現。
13、步驟3:求解e指數,對除法結果信號進行指數處理,得到即為所求立方根
14、本發明裝置采用的技術方案為:一種基于擴展cordic算法的立方根求解裝置,包括自然對數計算模塊、除法計算模塊和e指數計算模塊,這些模塊專為數字信號的處理與計算設計,以適應超大規模集成電路應用的高效性與低功耗需求。
15、步驟1:自然對數計算模塊
16、在自然對數計算中,采用基于雙曲坐標系下的擴展cordic算法向量模式來實現,具體擴展方法為,將迭代系數的范圍從i=0,1,2,…,n擴展到i=m,m+1,…,0,1,2,…,n;其具體迭代公式如下:
17、當i≤0時,迭代公式中如下:
18、
19、當i>0時,迭代公式保持與標準cordic迭代公式一致:
20、
21、上述公式中,參數的具體含義如下:di=-sign(yi),這個參數決定了每次迭代的旋轉方向;xi、yi表示當前迭代中的向量坐標,存儲每次迭代后的中間結果;zi表示當前的角度,通過迭代旋轉逐步逼近目標值;與tanh-1(2-i)表示迭代的固定角度值。
22、擴展后伸縮因子kn可以根據迭代次數提前計算設置為常數,用于調整最終計算結果,其計算公式如下:
23、
24、在具體的自然對數模塊設計中,根據輸入信號r進行初始化:x0=r+1,y0=r+1,z0=0,經過n次迭代運算,可以計算出的值,接著,將左移一位,可以得到用于r的自然對數值ln(r),并將自然對數計算結果信號傳遞給除法計算模塊。
25、步驟2:除法計算模塊
26、在除法計算模塊中,采用基于線性坐標系下的擴展cordic算法的向量模式來實現,具體擴展方法為,將迭代系數的范圍從i=0,1,2,…,n擴展到i=m,m+1,…,0,1,2,…,n,并保持標準cordic的迭代公式不變:
27、
28、其中,上述公式中,參數的具體含義如下:di=-sign(yi),這個參數決定了每次迭代的旋轉方向;xi、yi表示當前迭代中的向量坐標,存儲每次迭代后的中間結果;zi表示當前的角度,通過迭代旋轉逐步逼近目標值;(2-i)表示迭代的固定角度值。
29、在具體的除法計算模塊設計中,將輸入初始化為x0=3,y0=ln(r),z0=0,經過迭代計算后可以得出被除數為ln(r),除數為3的計算結果ln(r)/3,并將除法計算結果信號傳遞給指數計算模塊。
30、步驟3:指數計算模塊
31、針對步驟3,可以采用基于雙曲坐標系下的擴展cordic算法旋轉模式來實現,具體擴展方法為,將迭代系數的范圍從i=0,1,2,…,n擴展到i=m,m+1,…,0,1,2,…,n:其具體迭代公式如下:
32、當i≤0時,迭代公式如下:
33、
34、當i>0時,迭代公式與標準cordic算法一致:
35、
36、上述公式中,參數的具體含義如下:di=sign(zi),這個參數決定了每次迭代的旋轉方向;xi、yi表示當前迭代中的向量坐標,存儲每次迭代后的中間結果;zi表示當前的角度,通過迭代旋轉逐步逼近目標值;與tanh-1(2-i)表示迭代的固定角度值。
37、在具體的e指數計算模塊的設計中,將輸入初始化為經過迭代計算后可以得出將兩者相加可以得到以e為底數,ln(r)/3為指數的指數計算結果即為立方根計算結果,最終輸出至立方根計算結果信號。
38、收斂約束條件:
39、在具體實施過程中,收斂約束條件對實時的有效性至關重要。具體來說:
40、1.自然對數計算模塊的收斂條件:要求滿足
41、
42、2.除法計算模塊的收斂條件:滿足
43、
44、3.指數計算模塊的收斂條件:滿足
45、|z0|≤θmax
46、通過添加有限次的迭代,根據收斂約束條件,確可以保在硬件實現中高效、準確地進行立方根計算,并且在數字信號處理中的應用范圍大大擴展。
47、計算范圍:
48、根據擴展cordic算法的收斂約束條件,當m的值取1時,可以得到:
49、
50、由此得出r的計算范圍為:[4.840×10-4,2.067×103]。遠遠大于基于標準cordic算法所支持的范圍進一步地,當m的值取2時,所設計的立方根計算實現方法的計算范圍可以達到[9.468×10-7,1.056×106]。綜上,本發明提供的基于擴展cordic算法的立方根求解方法能顯著擴展計算范圍,基本滿足數字系統的實際應用需求。
51、所述自然對數計算模塊包含以下關鍵部分:
52、系統輸入/啟動控制模塊:該模塊負責與外部的信號交互與運行狀態管理,通過接收系統時鐘信號(clk),提供統一的時序基準;通過復位信號(reset),清零寄存器和狀態信號,確保系統進入初始狀態;通過啟動信號(start),觸發自然對數計算流程的啟動。
53、初始化模塊:該模塊在復位信號有效時清零寄存器和狀態信號;啟動信號激活后,接收輸入實數r,并根據輸入設定將其用于初始化x、y、z的初始值,為迭代計算流程提供準確的初始條件。
54、時序控制模塊:該模塊通過多級d觸發器對啟動信號進行延遲采樣,生成各階段的時序控制信號,確保流水線各階段按照嚴格按照時間順序執行;通過多級觸發器的級聯設計,時序控制模塊實現了核心迭代模塊的高效流水線控制,并在最后階段生成控制信號,進入結果輸出階段。
55、參數定義模塊:該模塊定義自然對數計算所需的固定迭代角度參數(atanh_1至atanh_18),并將其通過定點化處理存儲在硬件寄存器中供直接調用。預定義參數顯著減少了動態運算,并支持調整參數精度以滿足不同應用需求。
56、核心迭代模塊:該模塊通過24個迭代階段完成自然對數值的逐步計算。模塊動態選擇計算公式:當迭代系數為-1或0時,使用擴展cordic算法;當迭代系數為正時,使用標準cordic算法,并在特定階段(如i=4,7,10...)重復迭代以提高精度。通過時序控制模塊生成的各級控制信號,實現迭代觸發與結果傳遞。
57、結果輸出模塊:該模塊處理核心迭代模塊的最終計算結果,在檢測到最后階段時生成計算完成標志信號(finish),通過左移一位操作完成最終處理,同時拉高finish信號指示計算流程完成,結果輸出至ln信號,并將計算結果ln(r)傳遞給除法計算模塊。
58、所述除法計算模塊包含以下關鍵部分:
59、系統輸入/啟動控制模塊:該模塊負責與外部信號的交互與運行狀態的管理,通過接收系統時鐘信號(clk),為各個計算單元提供統一的時序基準;通過復位信號(reset),清空寄存器和狀態信號,確保系統進入初始狀態;通過啟動信號(start),觸發除法計算流程的啟動。
60、初始化模塊:在復位信號有效時,清除所有寄存器和狀態信號;啟動信號激活后,接收輸入ln(r),并根據輸入設定初始化x、y、z的值,為迭代計算流程提供準確的初始條件。
61、時序控制模塊:該模塊通過多級d觸發器對啟動信號進行延遲采樣,生成各階段的時序控制信號,確保除法計算的各個步驟按嚴格的時間順序執行。時序控制模塊通過多級觸發器的設計,高效地管理每個階段的計算流水線,并最終生成控制信號,進入最終結果輸出階段。
62、參數定義模塊:該模塊定義除法運算所需的固定迭代角度參數(atan_1至atan_18),并將其通過定點化處理存儲在硬件寄存器中供直接調用。預定義參數顯著減少了動態運算,并支持調整參數精度以滿足不同應用需求。
63、核心迭代模塊:該模塊通過19個迭代階段完成除數為3的除法運算,通過時序控制模塊生成的各級控制信號,實現迭代觸發與結果傳遞。
64、結果輸出模塊:該模塊處理除法運算的最終結果。當檢測到最后階段時,生成計算完成標志信號(finish),將計算結果傳遞至最終輸出信號(div),并將計算結果ln(r)/3傳遞給e指數計算模塊。
65、所述e指數計算模塊包含以下關鍵部分:
66、系統輸入/啟動控制模塊:該模塊負責與外部的信號交互與運行狀態管理,通過接收系統時鐘信號(clk),提供統一的時序基準;通過復位信號(reset),清零寄存器和狀態信號,確保系統進入初始狀態;通過啟動信號(start),觸發e指數計算流程的啟動。
67、初始化模塊:該模塊在復位信號有效時清零寄存器和狀態信號;啟動信號拉高后,接收輸入ln(r)/3,并根據輸入設定將其用于初始化x、y、z的初始值,為迭代計算流程提供準確的初始條件。
68、時序控制模塊:該模塊通過多級d觸發器對啟動信號進行延遲采樣,生成各階段的時序控制信號,確保流水線各階段按照嚴格按照時間順序執行;通過多級觸發器的級聯設計,時序控制模塊實現了核心迭代模塊的高效流水線控制,并在最后階段生成控制信號,進入結果輸出階段。
69、參數定義模塊:該模塊定義自然對數計算所需的固定迭代角度參數(atanh_1至atanh_18),并將其通過定點化處理存儲在硬件寄存器中供直接調用。預定義參數顯著減少了動態運算,并支持調整參數精度以滿足不同應用需求。
70、核心迭代模塊:該模塊通過24個迭代階段完成自然對數值的逐步計算。模塊動態選擇計算公式:當迭代系數為-1或0時,使用擴展cordic算法的迭代公式;當迭代系數為正時,使用標準cordic算法,并在特定階段(如i=4,7,10...)重復迭代以提高精度。通過時序控制模塊生成的各級控制信號,實現迭代觸發與結果傳遞。
71、結果輸出模塊:該模塊處理核心迭代模塊的最終計算結果,在檢測到最后階段時生成計算完成標志信號(finish),將最后一次迭代計算的x鏈路和y鏈路結果相加輸出至exp信號,得到的最終計算結果即為立方根計算結果。
72、本發明的特點
73、本發明提供一種基于擴展cordic算法的立方根求解方法及求解裝置,主要包括以下特點:本發明將立方根計算分為三個獨立步驟,分別計算自然對數、除法以及指數函數,分別基于雙曲坐標系擴展cordic算法的向量模式、線性坐標系擴展cordic算法的向量模式實現、雙曲坐標系擴展cordic算法的旋轉模式來實現,擴展cordic算法顯著提升了該計算方法的支持范圍,且求解精度能達到10^-4量級,基本滿足實際數字系統的應用需求;本發明將求解裝置的硬件電路實現分為三個模塊:自然對數計算模塊、除法計算模塊、指數計算模塊,各模塊支持高效的全流水線計算,每一迭代計算階段由控制信號嚴格按照時序觸發,使多個計算階段并行處理,降低延遲,滿足實時處理和高性能計算的需求,最大工作頻率可達300mhz以上。