專利名稱:一種用于cordic算法模校正的電路裝置及方法
技術(shù)領(lǐng)域:
本方法屬于數(shù)字電路處理的技術(shù)領(lǐng)域,具體的說,涉及CORDIC算法的模校正單元的處理電路裝置。
背景技術(shù):
坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(CoordinateRotation Digital Computer,簡稱 CORDIC) 是由J. Voider在1959年提出的,是一種在平面直角坐標(biāo)系和極坐標(biāo)系之間自由坐標(biāo)變換算法。1971年,Walther提出了統(tǒng)一的CORDIC算法,把圓周系統(tǒng),線性系統(tǒng)和雙曲系統(tǒng)的 CORDIC算法統(tǒng)一到了同一個(gè)迭代方程中去,從而推動(dòng)了 CORDIC算法的發(fā)展。CORDIC算法從廣義上講是一種數(shù)值逼近算法,通過迭代的方式不斷去逼近真實(shí)數(shù)值,逼近的過程是通過一系列微旋轉(zhuǎn)角度的偏擺,整個(gè)算法只需要移位和加法運(yùn)算。在乘法,除法,向量旋轉(zhuǎn),三角函數(shù)等運(yùn)算中,CORDIC算法得到了廣泛的應(yīng)用。雖然CORDIC算法得到了廣泛的應(yīng)用,但是它還是暴露除了一些缺點(diǎn)。由于算法采用的旋轉(zhuǎn)方式,導(dǎo)致旋轉(zhuǎn)完成之后的向量的模會(huì)大于原始向量,這樣就需要我們對經(jīng)過旋轉(zhuǎn)完成后的向量進(jìn)行模校正處理,根據(jù)旋轉(zhuǎn)的級數(shù)不同,校正因子的大小也不一樣。傳統(tǒng)的模校正方法是根據(jù)旋轉(zhuǎn)級數(shù)計(jì)算出校正因子的大小,并在旋轉(zhuǎn)的最后一級結(jié)束后直接乘以校正因子的方法來進(jìn)行模校正,這種方法的缺點(diǎn)在于模校正單元破壞了整個(gè)電路統(tǒng)一的迭代結(jié)構(gòu),引入的乘法運(yùn)算也將會(huì)降低系統(tǒng)的工作頻率從而影響到系統(tǒng)的吞吐效率。
發(fā)明內(nèi)容
為了克服傳統(tǒng)模校正方法對系統(tǒng)工作頻率的影響,本發(fā)明提供了一種用于CORDIC 算法模校正的電路裝置及方法。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明的技術(shù)方案是一種用于CORDIC算法模校正的電路裝置,其特征在于,包括原始計(jì)算通路和模校正通路,所述原始計(jì)算通路的輸出連接兩個(gè)RAM 即RAM-I和RAM-2,RAM-U RAM-2的輸出分別連接模校正通路的x、y兩個(gè)通道的輸入端;所述原始計(jì)算通路包括χ通道和y通道,其中每個(gè)通道都含有一個(gè)加法器,一個(gè)移位器和一個(gè)多路選擇器,多路選擇器的輸入端連接本通道的原始輸入和加法器的輸出端, 當(dāng)新開始一個(gè)運(yùn)算時(shí),多路選擇器選擇本通道的原始輸入,其他的時(shí)間均選擇加法器的輸出,多路選擇器的輸出端連接至本通道加法器的輸入端和另一通道的移位器的輸入端,移位器的輸入端連接另一通道的多路選擇器的輸出端,加法器的輸入端則連接本通道移位器和本通道多路選擇器的輸出端;所述模校正通路同樣包括χ通道和y通道,模校正因子存儲(chǔ)在模校正因子模塊中, 每一條通道均包括一個(gè)多路選擇器、兩個(gè)移位器、一個(gè)判決器和一個(gè)加法器;對于X通道, 第一移位器的輸入端連接模校正因子模塊和本通道的RAM-1,第一移位器的輸出端連接第一判決器,第一判決器的輸出端連接χ通道加法器,多路選擇器的輸入端連接加法器的輸出端,多路選擇器的另一個(gè)輸入端是初始值,當(dāng)?shù)谝患夁M(jìn)行模校正時(shí)多路選擇器選擇初始值,其他時(shí)間均選擇加法器的輸出,多路選擇器的輸出端連接至本通道加法器的輸入端和y 通道的第四移位器的輸入端,第三移位器的輸入端連接y通道的多路選擇器的輸出端,加法器的輸入端則連接本通道第三移位器的輸出端,本通道多路選擇器的輸出端以及本通道第一移位器的輸出端;所述y通道的連接情況與χ通道連接情況相同。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明的另一技術(shù)方案是一種用于CORDIC算法模校正的方法,包括步驟步驟1.首先計(jì)算出模校正的值K的大小,每一級運(yùn)算都對應(yīng)一個(gè)模校正因子 , 且 e {0,2力,并將每一級的模校正因子存入模校正因子模塊;步驟2.原始計(jì)算通路按照傳統(tǒng)CORDIC算法的旋轉(zhuǎn)結(jié)構(gòu)進(jìn)行迭代,從每一級迭代后的X通道與y通道的值都存儲(chǔ)下來,分別存入RAM-I,RAM-2 ;步驟3.模校正通路首先根據(jù)當(dāng)前運(yùn)算的級數(shù)選擇模校正因子模塊中的模校正因子,根據(jù)模校正因子為0或Ρ對原始計(jì)算通路的輸出值進(jìn)行移位,若模校正因子為24,則需要進(jìn)行移位數(shù)等于當(dāng)前級數(shù)i的移位操作,若模校正因子為0,則不需要對原始計(jì)算通路的輸出值進(jìn)行移位操作;步驟4.多路選擇器根據(jù)當(dāng)前運(yùn)算的級數(shù)選擇使用初始值還是加法器上一級輸出的值,只有當(dāng)是第一級模校正運(yùn)算時(shí)多路選擇器才選擇初始值,其余級運(yùn)算多路選擇器均選擇加法器上一級的輸出;步驟5.多路選擇器的輸出進(jìn)行移位操作,移位的位數(shù)與本級微旋轉(zhuǎn)級數(shù)相同;步驟6.當(dāng)本級微旋轉(zhuǎn)對應(yīng)的模校正因子為0時(shí),此時(shí)判決器不將原始計(jì)算通路的計(jì)算結(jié)果送入加法器,所以加法器對多路選擇器的輸出和另一通道經(jīng)過移位后的數(shù)據(jù)進(jìn)行運(yùn)算;當(dāng)本級微旋轉(zhuǎn)對應(yīng)的模較正因子不為0時(shí),此時(shí)判決器將原始計(jì)算通路本級運(yùn)算對應(yīng)的計(jì)算結(jié)果經(jīng)過步驟3移位后的數(shù)據(jù)送入加法器,所以加法器對多路選擇器的輸出、另一通道經(jīng)過移位后的數(shù)據(jù)以及原始計(jì)算通路中本級運(yùn)算對應(yīng)的結(jié)果經(jīng)過步驟3進(jìn)行移位后的數(shù)據(jù)進(jìn)行運(yùn)算;步驟7.按照以上步驟1到6經(jīng)過與原始計(jì)算通路相同級數(shù)的操作,模校正通路輸出的值即為經(jīng)過模校正后的值。本發(fā)明的有益效果是由于進(jìn)行模校正后的數(shù)據(jù)的迭代運(yùn)算與CORDIC運(yùn)算式的迭代規(guī)律相同,因此本文提出的模校正電路結(jié)構(gòu)可以采用與CORDIC運(yùn)算式中的迭代單元類似的電路來進(jìn)行,模校正的電路裝置的結(jié)構(gòu)中設(shè)置模校正通路從而避免了使用乘法器造成的電路不規(guī)則的情況,有效的突破了系統(tǒng)的速度瓶頸。
圖1為向量旋轉(zhuǎn)的示意圖。圖2為CORDIC算法完成向量旋轉(zhuǎn)的示意圖。圖3為用于CORDIC算法模校正的電路裝置。
具體實(shí)施例方式下面結(jié)合附圖和具體的實(shí)施例對本發(fā)明做進(jìn)一步的說明。為了方便后面對方案的介紹,這里先將傳統(tǒng)CORDIC算法進(jìn)行推導(dǎo)
如圖1所示,對于向量(X(1,yQ),需要按照e G
進(jìn)行旋轉(zhuǎn)至U' ’1')。那么根據(jù)三角函數(shù)運(yùn)算法則,旋轉(zhuǎn)向量U' ,1')可以表示為X' = X0Cos 6 +y0sin 6(1)y' = y0cos 9-X(|Sin 0式中X(l,y(l為待旋轉(zhuǎn)的向量坐標(biāo),X',ず為需要旋轉(zhuǎn)到的坐標(biāo),e為目標(biāo)旋轉(zhuǎn)角, 將式(1)寫為矩陣形式為
權(quán)利要求
1.一種用于CORDIC算法模校正的電路裝置,其特征在于,包括原始計(jì)算通路和模校正通路,所述原始計(jì)算通路的輸出連接兩個(gè)RAM即RAM-I和RAM-2,RAM-U RAM-2的輸出分別連接模校正通路的χ、y兩個(gè)通道的輸入端;所述原始計(jì)算通路包括χ通道和y通道,其中每個(gè)通道都含有一個(gè)加法器,一個(gè)移位器和一個(gè)多路選擇器,多路選擇器的輸入端連接本通道的原始輸入和加法器的輸出端,當(dāng)新開始一個(gè)運(yùn)算時(shí),多路選擇器選擇本通道的原始輸入,其他的時(shí)間均選擇加法器的輸出,多路選擇器的輸出端連接至本通道加法器的輸入端和另一通道的移位器的輸入端,移位器的輸入端連接另一通道的多路選擇器的輸出端,加法器的輸入端則連接本通道移位器和本通道多路選擇器的輸出端;所述模校正通路同樣包括χ通道和y通道,模校正因子存儲(chǔ)在模校正因子模塊中,每一條通道均包括一個(gè)多路選擇器、兩個(gè)移位器、一個(gè)判決器和一個(gè)加法器;對于χ通道,第一移位器的輸入端連接模校正因子模塊和本通道的RAM-1,第一移位器的輸出端連接第一判決器,第一判決器的輸出端連接χ通道加法器,多路選擇器的輸入端連接加法器的輸出端, 多路選擇器的另一個(gè)輸入端是初始值,當(dāng)?shù)谝患夁M(jìn)行模校正時(shí)多路選擇器選擇初始值,其他時(shí)間均選擇加法器的輸出,多路選擇器的輸出端連接至本通道加法器的輸入端和y通道的第四移位器的輸入端,第三移位器的輸入端連接y通道的多路選擇器的輸出端,加法器的輸入端則連接本通道第三移位器的輸出端,本通道多路選擇器的輸出端以及本通道第一移位器的輸出端;所述y通道的連接情況與χ通道連接情況相同。
2.一種用于CORDIC算法模校正的方法,包括步驟步驟1.首先計(jì)算出模校正的值K的大小,每一級運(yùn)算都對應(yīng)一個(gè)模校正因子 ,且 Bi e {0,2力,并將每一級的模校正因子存入模校正因子模塊;步驟2.原始計(jì)算通路按照傳統(tǒng)CORDIC算法的旋轉(zhuǎn)結(jié)構(gòu)進(jìn)行迭代,從每一級迭代后的 χ通道與y通道的值都存儲(chǔ)下來,分別存入RAM-I,RAM-2 ;步驟3.模校正通路首先根據(jù)當(dāng)前運(yùn)算的級數(shù)選擇模校正因子模塊中的模校正因子, 根據(jù)模校正因子為0或Ρ對原始計(jì)算通路的輸出值進(jìn)行移位,若模校正因子為2_i,則需要進(jìn)行移位數(shù)等于當(dāng)前級數(shù)i的移位操作,若模校正因子為0,則不需要對原始計(jì)算通路的輸出值進(jìn)行移位操作。步驟4.多路選擇器根據(jù)當(dāng)前運(yùn)算的級數(shù)選擇使用初始值還是加法器上一級輸出的值,只有當(dāng)是第一級模校正運(yùn)算時(shí)多路選擇器才選擇初始值,其余級運(yùn)算多路選擇器均選擇加法器上一級的輸出;步驟5.多路選擇器的輸出進(jìn)行移位操作,移位的位數(shù)與本級微旋轉(zhuǎn)級數(shù)相同; 步驟6.當(dāng)本級微旋轉(zhuǎn)對應(yīng)的模校正因子為0時(shí),此時(shí)判決器不將原始計(jì)算通路的計(jì)算結(jié)果送入加法器,所以加法器對多路選擇器的輸出和另一通道經(jīng)過移位后的數(shù)據(jù)進(jìn)行運(yùn)算;當(dāng)本級微旋轉(zhuǎn)對應(yīng)的模較正因子不為0時(shí),此時(shí)判決器將原始計(jì)算通路本級運(yùn)算對應(yīng)的計(jì)算結(jié)果經(jīng)過步驟3移位后的數(shù)據(jù)送入加法器,所以加法器對多路選擇器的輸出、另一通道經(jīng)過移位后的數(shù)據(jù)以及原始計(jì)算通路中本級運(yùn)算對應(yīng)的結(jié)果經(jīng)過步驟3進(jìn)行移位后的數(shù)據(jù)進(jìn)行運(yùn)算;步驟7.按照以上步驟1到6經(jīng)過與原始計(jì)算通路相同級數(shù)的操作,模校正通路輸出的值即為經(jīng)過模校正后的值。
全文摘要
本發(fā)明涉及一種用于CORDIC算法模校正的電路裝置及方法。一種用于CORDIC算法模校正的電路裝置,包括原始計(jì)算通路和模校正通路,所述原始計(jì)算通路的輸出連接兩個(gè)RAM即RAM-1和RAM-2,RAM-1、RAM-2的輸出分別連接模校正通路的x、y兩個(gè)通道的輸入端。一種用于CORDIC算法模校正的方法,包括步驟步驟1.首先計(jì)算出模校正的值K的大小,每一級運(yùn)算都對應(yīng)一個(gè)模校正因子ai,且ai∈{0,2-i},并將每一級的模校正因子存入模校正因子模塊。本發(fā)明的有益效果是模校正的電路裝置中的模校正通路的設(shè)置避免了使用乘法器造成的電路不規(guī)則的情況,有效的突破了系統(tǒng)的速度瓶頸。
文檔編號G06F7/544GK102323878SQ20111014487
公開日2012年1月18日 申請日期2011年5月31日 優(yōu)先權(quán)日2011年5月31日
發(fā)明者何春, 宗竹林, 敖思遠(yuǎn), 武鵬, 田忠, 陸永彩 申請人:電子科技大學(xué)