基於FPGA的自然對數變換器的設計與實現

2021-01-10 電子產品世界

摘要:本文利用CORD IC算法在FPGA上實現了自然對數運算器。實驗結果表明該對數運算器的輸出誤差為10-4數量級,最高頻率可達到80MHz。該運算器適用於高速大數據量的數據處理。

本文引用地址:http://www.eepw.com.cn/article/86941.htm

關鍵詞:對數運算;CORD IC算法;FPGA;對數變換器

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

引言

  在需要硬體實現對數運算的場合[1],其精度和速度是必須考慮的問題。目前硬體實現對數變換的方法主要有查表法、泰勒公式展開法和線性近似法。查表法[2]所需要的存儲單元隨著精度的增加或輸入值範圍的增大而成指數增加;泰勒公式展開法[3]需要乘法器,面積大不易實現;線性近似法[4]的精度有限,且需要誤差校正電路,實現較難。

  本文利用CORD IC算法在FPGA上實現了高速自然對數變換器。CORD IC算法即坐標旋轉數字計算方法最初由J.D.Volder[5]於1959年提出,其基本思想是用一系列與運算基數相關的角度的不斷偏擺從而逼近所需旋轉的角度。1971年J.S.Walter[6]提出統一的CORD IC算法,把圓周旋轉、直線旋轉和雙曲旋轉統一到同一個CORD IC迭代方程裡,為同一硬體實現多功能運算提供了前提。由於它將許多複雜的算術運算化成簡單的加法和移位操作,在不影響運算速度和精度的情況下,極大的降低了硬體設計的複雜性,節約了硬體資源。利用CORD IC算法可以直接實現乘法、除法、正餘弦函數,反正切函數、雙曲函數等,對輸入進行適當的初始化可以實現正切、雙曲正切、對數和指數等函數。

  在數位訊號處理領域用的較多的是DSP和FPGA。DSP的優勢源於多數信號處理算法的乘-累加運算(MAC)都是非常密集的。FPGA通過多極流水線架構也能夠用來實現MAC單元,並且FPGA技術可以通過一個晶片上的多級MAC單元來提供更多的帶寬,速度可以比數位訊號處理晶片快,並且功耗較低。CORD IC算法完全由移位和加法操作完成,因此利用FPGA可以實現更高的運算速度。本文採用流水線結構在FPGA上實現基於CORD IC的對數變換,可以達到80MHz的處理速度。

CORD IC算法實現自然對數運算

  CORD IC算法最初是用於計算三角函數的,後來由於其算法的簡單、硬體易於實現等多種優勢,而被廣泛的用於多種初等函數的運算中(包括三角函數、乘除法運算、指數運算、對數運算等)。本文主要利用CORD IC算法的雙曲旋轉法實現自然對數運算。

  在雙曲坐標系下,CORD IC算法的迭代方程為:

  由於 ,所以迭代序列必須從n=1開始,為保證迭代序列收斂,因此迭代序列n的取值從第4項開始每隔3n+1項必須重複一次,即n=1,2,3,4,4,5,…,40,40,…。

  在向量模式下,經n次迭代後的輸出方程為:

  因為

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

  則

  所以對於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→∞,反雙曲正切的定義域為(-1,1),可見函數的輸入範圍受到了限制。解決的方法是增加n為負數的迭代,改進的算法公式為:

  當n≤0時

  當n>0時


  收斂的範圍變成

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

  其中   

  當M=5時,θmax=12.4264,函數tanh-1的範圍是[-12.4264,12.4264]。也就是說此時y/x可以接近於[-1,1],幾乎覆蓋tanh-1的整個定義域。因此硬體實現過程中可以從-5開始迭代。

對數運算的FPGA實現

  CORD IC算法完全由移位和相加完成,很容易在硬體上實現。由於FPGA具有並行處理能力,利用FPGA實現對數變換,速度可以比數位訊號處理晶片快,以滿足某些高速處理的要求。本文採用的FPGA晶片是Altera公司的cyclone系列晶片EP1C6Q240C8。該晶片內部共有邏輯單元5980個,支持近12萬門的設計,內部嵌有約12Kbyte的RAM,包含2個生成時鐘的鎖相環,最大用戶I/O數185個,滿足設計要求。

鎖相環相關文章:鎖相環原理

相關焦點

  • 基於DSP和FPGA的機器人聲控系統設計與實現
    2 系統硬體總體設計 系統的硬體功能是實現語音指令的採集和步進電機的驅動控制,為系統軟體提供開發和調試平臺。如圖1所示。 系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。
  • 基於FPGA的複數浮點協方差矩陣實現
    故目前國內外協方差運算的FPGA實現都是採用定點運算方式。 在所有運算都是定點運算的情況下,每次乘法之後數據位寬都要擴大一倍。若相乘後的數據繼續做加減運算,為了保證數據不溢出,還必須將數據位寬擴展一位,而協方差矩陣的運算核心就是乘累加單元,隨著採樣點數的增加,位寬擴展呈線性增加。最終導致FPGA器件資源枯竭,無法實現設計。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於MC33067的LLC諧振全橋變換器的應用設計
    摘要:LLC變換器以其卓越的性能迅速成為DC/DC變換器的首選拓撲,而目前該拓撲大多應用在小功率半橋變換器,而在大功率全橋變換器中的應用還較少。
  • 基於FPGA IP核的FFT實現
    目前現有的文獻大多致力於研究利用FFT算法做有關信號處理、參數估計、F+FT蝶形運算單元與地址單元設計、不同算法的FFT實現以及FFT模型優化等方面。而FPGA廠商Altera公司和Xilinx公司都研製了FFT IP核,性能非常優越。在FFT的硬體實現中,需要考慮的不僅僅是算法運算量,更重要的是算法的複雜性、規整性和模塊化,而有關利用FFT IP核實現FFT算法卻涉及不多。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於Matlab的FIR型希爾伯特變換器設計
    為了實現數字解調,通常需要藉助希爾伯特變換器對信號進行分解,利用Matlab設計希爾伯特變換器是一種最為快捷、有效的方法。通過具體的設計、仿真及對原始信號和經過希爾伯特變換器輸出延遲信號的比較,說明Matlab是一個在濾波器設計方面很有力的工具。
  • 基於FPGA的伺服驅動器分周比設計與實現
    為此提出一種基於FPGA的整數分周比實現方法。該方法邏輯結構簡單,配置靈活,易於擴展,具有很高的實用價值。  1 電子齒輪比與分周比  電子齒輪比與分周比是數控工具機和數控加工中心中一個很重要的概念。國外的各種驅動器一般都帶有分周比功能,對利用FPGA實現分周比進行研究和探討,電子齒輪比、分周比功能示意圖如圖1所示。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • 基於DSP控制的數字式雙向DC/DC變換器的實現
    基於對全橋隔離型的雙向DC/DC變換器工作原理的分析,從簡化硬體電路的角度出發,設計了數字控制的雙向DC/DC變換器。試驗控制功能全部由軟體實現,電壓可調性和穩壓輸出都得到滿足。同時也由軟體實現電路的雙向運行,對蓄電池可以進行恆流充電。
  • 基於FPGA的並行掃頻DDS的實現
    相位累加器、相位/幅度變換電路的時鐘以及選擇器選擇端S的信號為fck1,它是由DDS電路系統時鐘fck分頻得到,即fck1=fck/2.而選擇器後面的鎖存器以及SINC函數補償濾波器、D/A變換器的時鐘為系統時鐘。為了簡化電路實現,採用直接中頻方法取出D/A變換器的中頻信號輸出,同時,為了補償D/A變換輸出信號幅度隨頻率增加引起的衰減,圖1中增加了SINC函數補償濾波器。
  • 基於DSP器件和PLD邏輯器件實現矩陣變換器系統的設計
    基於DSP器件和PLD邏輯器件實現矩陣變換器系統的設計 王勇,呂徵宇,汪槱 發表於 2020-12-03 09:58:36 1 引言 矩陣式變換器是一種具有優良的輸入輸出特性的新型交
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於三電平LLC諧振型變換器在新能源汽車充電機的設計研究*
    為了提高整機的效率和大功率的設計要求,本設計研究在文獻[1-2]中提出前級採用三相六開關的PFC拓撲電路,以提高功率因數,為後級的DC/DC變換器提供穩定在700 V的輸入電壓,半橋三電平LLC諧振變換器實現輸出280~400 V的寬範圍電壓,是本充電機的核心部位。
  • 基於FPGA的巴特沃茲IIR數字帶通濾波器設計
    數字濾波器通常採用計算機軟體、專用數字濾波器、DSP器件或可編程邏輯器件(如FPGA) 實現。因為,用FPGA實現數字濾波器具有實時性強、靈活性高、處理速度快以及小批量生產成本低等優點,所以得到了較為廣泛的應用。本文以巴特沃思數字帶通濾波器為例,較為詳細地介紹了其設計和實現方法。給定巴特沃茲數字帶通濾波器的抽樣頻率為500Hz,上、下邊帶截止頻率分別為150Hz和30Hz.
  • 基於FPGA的RCN226絕對式編碼器通信接口設計
    絕對式編碼器廠家大多為其編碼器配套了接收晶片,實現串行編碼到並行編碼的轉換,便於控制器的讀取操作。但是此類晶片通常價格比較昂貴,大約佔絕對式編碼器價格的四分之一。目前國內外高端交流伺服系統中普遍採用FPGA+DSP結構。
  • 基於Spartan-6 FPGA的Sinc3 Filter設計
    Sinck結構的濾波器適合Σ-Δ調製器使用,可有效濾除高頻噪聲,且其實現不需要乘法即可完成。其原理結構如圖1所示。 濾波器相關文章:濾波器原理 fpga
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    為說明使用FPGA實現FIR的靈活性,文中列舉了一個多階串行FIR濾波器實例,並給出主要的原始碼和相關模塊的時序和功能說明,最後使用Matlab和Quartusii聯合仿真驗證了FPGA硬濾波器工程的正確性。
  • 如何在FPGA中實現狀態機
    FPGA常常用於執行基於序列和控制的行動,比如實現一個簡單的通信協議。對於設計人員來說,滿足這些行動和序列要求的最佳方法則是使用狀態機。狀 態機是在數量有限的狀態之間進行轉換的邏輯結構。一個狀態機在某個特定的時間點只處於一種狀態。
  • 實現LLC變換器寬電壓輸出的方法
    LLC諧振變換器一般採用脈衝頻率調節(PFM)方式控制輸出電壓,因此在最大開關頻率受限的情況下輸出電壓範圍同樣會受到限制。強電磁工程與新技術國家重點實驗室(華中科技大學電氣與電子工程學院)的研究人員石林、劉邦銀、段善旭,在2019年第22期《電工技術學報》上撰文,提出一種基於突發控制-變佔空比控制(Burst-PWM)的混合控制模式,以實現LLC變換器的寬電壓範圍輸出。