一種應(yīng)用fpga定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)cordic算法收斂域擴(kuò)張的方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)函數(shù)CORDIC算法收斂域擴(kuò)張的方法,該方法包括:由雙曲系統(tǒng)CORDIC算法推導(dǎo)收斂域內(nèi)指數(shù)函數(shù)CORDIC算法;應(yīng)用區(qū)間壓縮方法實(shí)現(xiàn)指數(shù)函數(shù)CORDIC算法的收斂域擴(kuò)張;應(yīng)用定點(diǎn)化技術(shù)在FPGA實(shí)現(xiàn)指數(shù)函數(shù)CORDIC算法收斂域擴(kuò)張。本發(fā)明只用兩條數(shù)據(jù)鏈,即對(duì)角度zi與坐標(biāo)xi進(jìn)行迭代,能有效節(jié)省1/3硬件資源,提高算法實(shí)時(shí)性;應(yīng)用定點(diǎn)化技術(shù)在FPGA實(shí)現(xiàn)收斂域擴(kuò)張方法,其求解方法巧妙,只需使用兩個(gè)乘法器,避免除法器的使用;采用15級(jí)流水線結(jié)構(gòu),用FPGA實(shí)現(xiàn)雙曲系統(tǒng)CORDIC算法來(lái)求解指數(shù)函數(shù),運(yùn)算結(jié)果相對(duì)誤差達(dá)到了10-4,滿足實(shí)際工程精度要求。
【專(zhuān)利說(shuō)明】-種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORD 1C算法收斂域擴(kuò) 張的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)C0RDIC算法收斂域擴(kuò)張的方法。
【背景技術(shù)】
[0002] 指數(shù)函數(shù)和對(duì)數(shù)函數(shù)在超聲檢測(cè)、無(wú)線通信、圖像信號(hào)處理等領(lǐng)域應(yīng)用非常廣泛, 用較低的硬件代價(jià)實(shí)現(xiàn)快速高精度的指、對(duì)數(shù)函數(shù)運(yùn)算電路變得非常重要。目前在硬件實(shí) 現(xiàn)指數(shù)/對(duì)數(shù)函數(shù)求值的方法主要有查表法、泰勒展開(kāi)式法、查表相加法、基于查找表的多 項(xiàng)式逼近和坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算(Coordinate Rotation Digital Computer, C0RDIC)算法 等。C0RDIC算法由于硬件實(shí)現(xiàn)簡(jiǎn)單而備受關(guān)注,它是1959年由Voider J提出,通過(guò)一系 列固定與運(yùn)算基數(shù)有關(guān)角度不斷偏擺迭代以逼近所需旋轉(zhuǎn)角度,由簡(jiǎn)單加法、移位操作即 可完成三角函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等超越函數(shù)的計(jì)算。1971年Walther J D把旋轉(zhuǎn)模 式、向量模式和線性模式統(tǒng)一成標(biāo)準(zhǔn)C0RDIC迭代方程,并根據(jù)旋轉(zhuǎn)角度分為圓周系統(tǒng)和雙 曲系統(tǒng)。指數(shù)函數(shù)就是在雙曲系統(tǒng)下采用旋轉(zhuǎn)模式實(shí)現(xiàn)的。
[0003] 為實(shí)現(xiàn)指數(shù)函數(shù)的C0RDIC算法,國(guó)內(nèi)外開(kāi)展很多有益研究,主要從指數(shù)C0RDIC算 法實(shí)現(xiàn)機(jī)理、算法改進(jìn)思路、算法收斂域擴(kuò)張等進(jìn)行研究,但大多文獻(xiàn)只給出了指數(shù)C0RDIC 算法的仿真實(shí)現(xiàn)及理論探索,對(duì)硬件實(shí)現(xiàn)很少作詳細(xì)討論,更沒(méi)有涉及FPGA實(shí)現(xiàn)技巧的研 究。為此,本發(fā)明針對(duì)指數(shù)函數(shù)C0RDIC算法在FPGA實(shí)現(xiàn)的技巧問(wèn)題,研究FPGA定點(diǎn)化技 術(shù)實(shí)現(xiàn)收斂域擴(kuò)張的方法,在FPGA實(shí)現(xiàn)指數(shù)函數(shù)C0RDIC算法。
【發(fā)明內(nèi)容】
[0004] 為解決上述技術(shù)問(wèn)題,本發(fā)明的目的是提供一種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù) 函數(shù)C0RDIC算法收斂域擴(kuò)張的方法,該方法降低結(jié)構(gòu)復(fù)雜度、節(jié)省系統(tǒng)資源、收斂域范圍 寬和計(jì)算精度高。
[0005] 本發(fā)明目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
[0006] 1、一種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)C0RDIC算法收斂域擴(kuò)張的方法,包括:
[0007] A由雙曲系統(tǒng)C0RDIC算法推導(dǎo)收斂域內(nèi)指數(shù)函數(shù)C0RDIC算法;
[0008] B采用區(qū)間壓縮方法實(shí)現(xiàn)指數(shù)函數(shù)C0RDIC算法的收斂域擴(kuò)張;
[0009] C應(yīng)用定點(diǎn)化技術(shù)在FPGA實(shí)現(xiàn)指數(shù)函數(shù)C0RDIC算法收斂域擴(kuò)張。
[0010] 與現(xiàn)有技術(shù)相比,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可以具有如下優(yōu)點(diǎn):算法只用兩條 數(shù)據(jù)鏈,即對(duì)角度Zi與坐標(biāo)Xi進(jìn)行迭代,能有效節(jié)省1/3硬件資源,提高算法實(shí)時(shí)性;應(yīng)用 定點(diǎn)化技術(shù)在FPGA實(shí)現(xiàn)收斂域擴(kuò)張方法,其求解方法巧妙,只需使用兩個(gè)乘法器,避免除 法器的使用;采用15級(jí)流水線結(jié)構(gòu),用FPGA實(shí)現(xiàn)雙曲系統(tǒng)C0RDIC算法來(lái)求解指數(shù)函數(shù), 運(yùn)算結(jié)果相對(duì)誤差達(dá)到了 ΚΓ4,滿足實(shí)際工程精度要求。本指數(shù)C0RDIC算法在超聲相控 TCG(Time Complement Gain)應(yīng)用具有有重要的實(shí)際意義。
【專(zhuān)利附圖】
【附圖說(shuō)明】 toon] 附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí) 施例共同用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0012] 圖1是應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)C0RDIC算法收斂域擴(kuò)張的方法流程圖;
[0013] 圖2是雙曲函數(shù)坐標(biāo)旋轉(zhuǎn)模型;
[0014] 圖3是整數(shù)Q和小數(shù)Θ定點(diǎn)化值求解原理框架圖;
[0015] 圖4是雙曲系統(tǒng)C0RDIC算法求解指數(shù)函數(shù)流水線結(jié)構(gòu)圖;
[0016] 圖5是FPGA實(shí)現(xiàn)雙曲系統(tǒng)C0RDIC算法指數(shù)函數(shù)部分流水線電路圖;
[0017] 圖6是C0RDIC算法指數(shù)函數(shù)在Modelsim的仿真圖。
【具體實(shí)施方式】
[0018] 容易理解,根據(jù)本發(fā)明的技術(shù)方案,在不變更本發(fā)明的實(shí)質(zhì)精神下,本領(lǐng)域的一般 技術(shù)人員可以提出本發(fā)明的多個(gè)結(jié)構(gòu)方式和制作方法。因此以下【具體實(shí)施方式】以及附圖僅 是本發(fā)明的技術(shù)方案的具體說(shuō)明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為本發(fā)明技術(shù)方案的 限定或限制。
[0019] 下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
[0020] 圖1是應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)C0RDIC算法收斂域擴(kuò)張的方法流程圖,該 方法包括:
[0021] 步驟10由雙曲系統(tǒng)C0RDIC算法推導(dǎo)指數(shù)函數(shù)C0RDIC算法,實(shí)現(xiàn)步驟如下:
[0022] 圖2為雙曲函數(shù)坐標(biāo)旋轉(zhuǎn)模型圖,圖中Θ為射線〇Vn、雙曲線和X軸圍成面積的 2倍,φ為射線0'、雙曲線和X軸圍成面積的2倍,分別對(duì)應(yīng)陰影部分面積的2倍,雙曲線 x2-y2 = C上點(diǎn)(Xp yj沿著上半軸曲線移動(dòng)到點(diǎn)Vn(xn, yn),可表示為:
[0023] fxn = Ccosh{q) + 0) - CcoshqycoshO + €$?ηΗφ$?ηΗ0 - x^coshO + y\sinh0 yyn - C.sinh{(p + 0) - Csinl^coshO + Ccosl^sinhQ - x.sinhO + \\coshO (1)
[0024] 矩陣形式表示為
[0025]
【權(quán)利要求】
1. 一種應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方法,該方法包括: A由雙曲系統(tǒng)C0RDIC算法推導(dǎo)收斂域內(nèi)指數(shù)函數(shù)C0RDIC算法; B采用區(qū)間壓縮方法實(shí)現(xiàn)指數(shù)函數(shù)CORDIC算法的收斂域擴(kuò)張; C應(yīng)用定點(diǎn)化技術(shù)在FPGA實(shí)現(xiàn)指數(shù)函數(shù)CORDIC算法收斂域擴(kuò)張。
2. 根據(jù)權(quán)利要求1所述的應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方 法,其特征在于,所述步驟A具體包括: 在雙曲系統(tǒng)旋轉(zhuǎn)模式下,根據(jù)所述單位向量%移動(dòng)到Vn的關(guān)系式得到CORDIC公式,把 計(jì)算轉(zhuǎn)化為旋轉(zhuǎn)方向的移位和加法運(yùn)算; 讓迭代序列i在3k+l項(xiàng)處重復(fù)一次迭代所述k e Z+,以保證算法收斂; 根據(jù)中間角度變量Zi確定旋轉(zhuǎn)方向屯,在一定初始條件下可獲得指數(shù)函數(shù)的CORDIC算 法;所述單位向量%和Vn的坐標(biāo)分別為Xp yi和xn, yn。
3. 根據(jù)權(quán)利要求1所述的應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方 法,其特征在于,所述步驟B具體包括: 應(yīng)用區(qū)間壓縮方法,對(duì)收斂域內(nèi)輸入值z(mì)in作區(qū)間壓縮變換,令zin = Qln2+0,Q e Z, 使I θ |〈1η2,保證Θ處于收斂區(qū)間內(nèi); 對(duì)指數(shù)函數(shù)進(jìn)行數(shù)學(xué)處理,由
7的計(jì)算等效轉(zhuǎn)化為e0 的計(jì)算,把運(yùn)算問(wèn)題轉(zhuǎn)化為求解整數(shù)Q和小數(shù)Θ,通過(guò)區(qū)間壓縮方法實(shí)現(xiàn)指數(shù)函數(shù)收斂域 的擴(kuò)張。
4. 根據(jù)權(quán)利要求1所述的應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方 法,其特征在于,所述步驟C具體包括: 應(yīng)用FPGA定點(diǎn)化技術(shù),對(duì)輸入值z(mì)in = Qln2+ Θ進(jìn)行定點(diǎn)化,擴(kuò)大216倍實(shí)現(xiàn)定點(diǎn)化,再 通過(guò)右移實(shí)現(xiàn)除法,恢復(fù)到原始值; 分析FPGA定點(diǎn)數(shù)的運(yùn)算模式,獲得Q、Θ的定點(diǎn)化值; FPGA實(shí)現(xiàn)上,通過(guò)采用二個(gè)乘法器和移位操作實(shí)現(xiàn)整數(shù)部分Q和小數(shù)部分Θ定點(diǎn)化值 的求解,實(shí)現(xiàn)收斂域擴(kuò)張的指數(shù)函數(shù)CORDIC算法。
5. 根據(jù)權(quán)利要求4所述的應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方 法,其特征在于,應(yīng)用FPGA定點(diǎn)化技術(shù)求解整數(shù)Q和小數(shù)Θ所述步驟具體包括: 定點(diǎn)化求解整數(shù)Q值,通過(guò)對(duì)輸入值z(mì)in定點(diǎn)化后取整,用[zin · 216]表示,其位寬為 24bit ;Χ?
定點(diǎn)化后取整,用[zin · 216 · 216/1η2]表示,其位寬為42bit,用Η10表示 bit[41:32]共lObit,為整數(shù)部分,用L32表示bit[31:0]共32bit,為小數(shù)部分,則H10即 為整數(shù)部分Q ;所述輸入值z(mì)in定點(diǎn)化是對(duì)輸入值z(mì)in擴(kuò)大216倍;所述
定點(diǎn)化是對(duì) 擴(kuò)大216倍。
求解Θ定點(diǎn)化值,定點(diǎn)化小數(shù)部分為:
,其中L16表示L32的高 16. bit [31:16],即 216 · θ = 1η2 · L16,定點(diǎn)化即擴(kuò)大 216 倍后為 216 · 216 · Θ = 1η2 · 216 · L16 ?45426 · L16,[45426 · L16]位寬為 32bit。用 Η17 表示 bit[32:16]共 17bit,右移16位可得216· θ = H17,即H17為Θ小數(shù)部分的定點(diǎn)化值。
6.根據(jù)權(quán)利要求4所述的應(yīng)用FPGA定點(diǎn)化技術(shù)實(shí)現(xiàn)指數(shù)CORDIC算法收斂域擴(kuò)張的方 法,其特征在于,F(xiàn)PGA實(shí)現(xiàn)上采用二條數(shù)據(jù)鏈實(shí)現(xiàn)指數(shù)函數(shù)CORDIC,所述步驟具體包括: 坐標(biāo)Xn、y n的初值與迭代模式相同,合成一個(gè)迭代通道,省掉坐標(biāo)yn的迭代過(guò)程,用兩 條數(shù)據(jù)鏈,即對(duì)角度 Zi與坐標(biāo)Xi進(jìn)行迭代,可節(jié)省約1/3硬件資源。
【文檔編號(hào)】G06F7/556GK104102471SQ201410344474
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2014年7月18日 優(yōu)先權(quán)日:2014年7月18日
【發(fā)明者】劉桂雄, 唐文明, 林若波 申請(qǐng)人:華南理工大學(xué)