<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的自然對(duì)數(shù)變換器的設(shè)計(jì)與實(shí)現(xiàn)

          基于FPGA的自然對(duì)數(shù)變換器的設(shè)計(jì)與實(shí)現(xiàn)

          —— Design and Implementation of FPGA-Based Logarithmic Converter
          作者:李剛 萬(wàn)里 林凌 天津大學(xué)生物醫(yī)學(xué)檢測(cè)技術(shù)與儀器重點(diǎn)實(shí)驗(yàn)室(天津300072) 時(shí)間:2008-08-14 來(lái)源:電子產(chǎn)品世界 收藏

          摘要:本文利用上實(shí)現(xiàn)了自然器。實(shí)驗(yàn)結(jié)果表明該器的輸出誤差為10-4數(shù)量級(jí),最高頻率可達(dá)到80MHz。該運(yùn)算器適用于高速大數(shù)據(jù)量的數(shù)據(jù)處理。

          本文引用地址:http://www.ex-cimer.com/article/86941.htm

          關(guān)鍵詞:;;

            *國(guó)家自然科學(xué)基金項(xiàng)目(No.60174032,60674111)
            2008年4月28日收到本文。李剛:教授,從事信號(hào)檢測(cè)與處理、智能儀器儀表的研究。

          引言

            在需要硬件實(shí)現(xiàn)對(duì)數(shù)運(yùn)算的場(chǎng)合[1],其精度和速度是必須考慮的問(wèn)題。目前硬件實(shí)現(xiàn)對(duì)數(shù)變換的方法主要有查表法、泰勒公式展開(kāi)法和線(xiàn)性近似法。查表法[2]所需要的存儲(chǔ)單元隨著精度的增加或輸入值范圍的增大而成指數(shù)增加;泰勒公式展開(kāi)法[3]需要乘法器,面積大不易實(shí)現(xiàn);線(xiàn)性近似法[4]的精度有限,且需要誤差校正電路,實(shí)現(xiàn)較難。

            本文利用上實(shí)現(xiàn)了高速自然。CORD IC算法即坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算方法最初由J.D.Volder[5]于1959年提出,其基本思想是用一系列與運(yùn)算基數(shù)相關(guān)的角度的不斷偏擺從而逼近所需旋轉(zhuǎn)的角度。1971年J.S.Walter[6]提出統(tǒng)一的CORD IC算法,把圓周旋轉(zhuǎn)、直線(xiàn)旋轉(zhuǎn)和雙曲旋轉(zhuǎn)統(tǒng)一到同一個(gè)CORD IC迭代方程里,為同一硬件實(shí)現(xiàn)多功能運(yùn)算提供了前提。由于它將許多復(fù)雜的算術(shù)運(yùn)算化成簡(jiǎn)單的加法和移位操作,在不影響運(yùn)算速度和精度的情況下,極大的降低了硬件設(shè)計(jì)的復(fù)雜性,節(jié)約了硬件資源。利用CORD IC算法可以直接實(shí)現(xiàn)乘法、除法、正余弦函數(shù),反正切函數(shù)、雙曲函數(shù)等,對(duì)輸入進(jìn)行適當(dāng)?shù)某跏蓟梢詫?shí)現(xiàn)正切、雙曲正切、對(duì)數(shù)和指數(shù)等函數(shù)。

            在數(shù)字信號(hào)處理領(lǐng)域用的較多的是DSP和FPGA。DSP的優(yōu)勢(shì)源于多數(shù)信號(hào)處理算法的乘-累加運(yùn)算(MAC)都是非常密集的。FPGA通過(guò)多極流水線(xiàn)架構(gòu)也能夠用來(lái)實(shí)現(xiàn)MAC單元,并且FPGA技術(shù)可以通過(guò)一個(gè)芯片上的多級(jí)MAC單元來(lái)提供更多的帶寬,速度可以比數(shù)字信號(hào)處理芯片快,并且功耗較低。CORD IC算法完全由移位和加法操作完成,因此利用FPGA可以實(shí)現(xiàn)更高的運(yùn)算速度。本文采用流水線(xiàn)結(jié)構(gòu)在FPGA上實(shí)現(xiàn)基于CORD IC的對(duì)數(shù)變換,可以達(dá)到80MHz的處理速度。

          CORD IC算法實(shí)現(xiàn)自然對(duì)數(shù)運(yùn)算

            CORD IC算法最初是用于計(jì)算三角函數(shù)的,后來(lái)由于其算法的簡(jiǎn)單、硬件易于實(shí)現(xiàn)等多種優(yōu)勢(shì),而被廣泛的用于多種初等函數(shù)的運(yùn)算中(包括三角函數(shù)、乘除法運(yùn)算、指數(shù)運(yùn)算、對(duì)數(shù)運(yùn)算等)。本文主要利用CORD IC算法的雙曲旋轉(zhuǎn)法實(shí)現(xiàn)自然對(duì)數(shù)運(yùn)算。

            在雙曲坐標(biāo)系下,CORD IC算法的迭代方程為:

            由于 ,所以迭代序列必須從n=1開(kāi)始,為保證迭代序列收斂,因此迭代序列n的取值從第4項(xiàng)開(kāi)始每隔3n+1項(xiàng)必須重復(fù)一次,即n=1,2,3,4,4,5,…,40,40,…。

            在向量模式下,經(jīng)n次迭代后的輸出方程為:

            因?yàn)?img class="" height="46" alt="" width="144" src="http://editerupload.eepw.com.cn/200808/941ddd211c8f9ff09a531d8e8a2039be.JPG" />

            所以令x=t+1,y=t-1

            則

            所以對(duì)于t,如果我們要求lnt,只要做如下初始化:

            X=t+1,y=t-1,z=0

            則輸出z=0.5ln(t),只需要在CORD IC之后做一次左移即可。

            如(2)式所示,為保證迭代序列的收斂,|tanh-1(y0/x0)|≤1.1182,因此|y/x|max≈0.8069,n→∞,反雙曲正切的定義域?yàn)?-1,1),可見(jiàn)函數(shù)的輸入范圍受到了限制。解決的方法是增加n為負(fù)數(shù)的迭代,改進(jìn)的算法公式為:

            當(dāng)n≤0時(shí)

            當(dāng)n>0時(shí)


            收斂的范圍變成

            |tanh-1(y/x)|≤θmax

            其中   

            當(dāng)M=5時(shí),θmax=12.4264,函數(shù)tanh-1的范圍是[-12.4264,12.4264]。也就是說(shuō)此時(shí)y/x可以接近于[-1,1],幾乎覆蓋tanh-1的整個(gè)定義域。因此硬件實(shí)現(xiàn)過(guò)程中可以從-5開(kāi)始迭代。

          對(duì)數(shù)運(yùn)算的FPGA實(shí)現(xiàn)

            CORD IC算法完全由移位和相加完成,很容易在硬件上實(shí)現(xiàn)。由于FPGA具有并行處理能力,利用FPGA實(shí)現(xiàn)對(duì)數(shù)變換,速度可以比數(shù)字信號(hào)處理芯片快,以滿(mǎn)足某些高速處理的要求。本文采用的FPGA芯片是Altera公司的cyclone系列芯片EP1C6Q240C8。該芯片內(nèi)部共有邏輯單元5980個(gè),支持近12萬(wàn)門(mén)的設(shè)計(jì),內(nèi)部嵌有約12Kbyte的RAM,包含2個(gè)生成時(shí)鐘的鎖相環(huán),最大用戶(hù)I/O數(shù)185個(gè),滿(mǎn)足設(shè)計(jì)要求。

          鎖相環(huán)相關(guān)文章:鎖相環(huán)原理

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();