資料介紹
如果數字信號處理器內核沒有您需要的確切功能,可使用插值查找表(ILUT)來解決這一問題。
作為賽靈思的現場工程師,我常常問這樣的問題:我們是否能夠提供一款其功能可滿足客戶所有獨特設計要求的DSP內核。有時候內核會太大,太小或者不夠快。有時,我們會開發一款能確切滿足客戶需求的內核,并迅速以CORE Generator商標推出。不過即便在這種情況下,客戶仍然想要一套特定的DSP功能,而且刻不容緩。在這些情況下,我常常建議他們使用我們器件中的插值查找表來定制他們的DSP功能。
查找表(LUT)實質上是一個存儲元件,能夠根據任何給定的輸入狀態組合,“查找”輸出,以確保每個輸入都有確切的輸出。采用LUT來實現DSP功能具有一些重大優勢:
● 可用諸如MATLAB或Simulink等高抽象層編程語言改變LUT內容。
● 可以設計一項DSP功能來運行那些采用離散邏輯運算將極度困難的數學函數,比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。
● LUT還可輕松執行在可配置邏輯塊(CLB)芯片,以及嵌入式乘法單元或DSP48可編程乘法累加(MAC)單元方面可能要求過多FPGA資源的復雜數學函數。
不過,以這種方式使用LUT當然也會存在一些弊端。當您使用LUT來實現DSP功能時,您必須使用塊RAM(BRAM)元件。若執行函數y=sqrt(x)(其中x表示16位輸入,y表示18位輸出),每個變量則需要約64個18KB BRAM單元。如果,比如說,您的目標是實現小型化Spartan器件,或者您有太多的運算需要執行,無法為每個變量省出64個BRAM單元,建議您放棄這種需要如此大量BRAM單元的方法,從系統架構的角度來看,這種方法代價太大。
插值LUT方法不僅具有LUT方法在實現DSP功能時所帶來的各種優勢,而且無需使用太多BRAM單元。采用這種方法,您可以使用來自容量較小的LUT(比如,1000字LUT)的連續輸出,線性地對其內插,以模擬更大容量的LUT。這樣,您就可以實現比1000字LUT更高的數值分辨率。此外,通過這種方法,僅需1個BRAM、1個嵌入式乘法器(或DSP48),以及少數幾個CLB芯片便可實施控制邏輯,因此LUT的使用成本變得更加合理化。而且,從信噪比的角度來看,其數值精度也是非常讓人滿意。
當然,應用插值LUT(ILUT)方法需要一定的技巧。舉例來說,采用該方法執行y=sqrt(x)函數時,可以清楚地顯示ILUT在空間占用、時序和數值精度方面的性能。我們先大致看一下這個示例,然后我再講解部分實例,說明如何使用這種方法來滿足客戶截然不同的需求,比如讓傳遞函數呈非線性的傳感器實現線性化,以及實施自適應有限脈沖響應(FIR)濾波器以消除合成孔徑雷達(SAR)圖像上的斑點噪聲。
使用System Generator for DSP進行設計
為在賽靈思FPGA上實施DPS算法,我借助了采用MathWorks Simulink基于模型設計方法的System Generator for DSP設計與綜合工具。 System Generator得益于賽靈思在Simulink環境中的DSP模塊組,可自動調用CORE Generator為DSP構建塊生成高度優化的網表。Simulink是一種雙精度浮點設計工具,而System Generator則是一款定點運算工具。不管怎樣,您只要將這兩種工具協同使用,就可以定義每個信號的總位數以及每個信號的二進制位置,從而在定點運算中巧妙處理分數。仿真結果周期精確、位真,因此您可以方便地將它們與MATLAB腳本或Simulink模塊生成的浮點參考值相比較,以檢查量化誤差。
圖1顯示了System Generator中ILUT方案的頂層結構圖。為讓這個方法盡可能一般化,假設nx=16位中的輸入變量x的取值范圍為0≤x《1,因此其格式為 “無符號16位加上二進制點右邊的16位”,也稱為Ufix_16_16格式。最高有效位(MSB)和最低有效位(LSB)模塊分別對應輸入數據 nb=10的最高位和nx-nb=6的最低位。這些信號被命名為x0和dx。y=sqrt(x)輸出則以ny=17位二進制數表示,格式為:Ufix_17_17。
圖2顯示了1000字小容量LUT通過雙端口RAM模塊的部署步驟。由于該模塊系只讀存儲器,布爾常數模塊We_const強制將寫入歸零。信號X0和X0+1則用作ROM表上后續的兩個地址。Data_const模塊的零常數定義了任何ROM字的大小(即本例中的ny)。
作為賽靈思的現場工程師,我常常問這樣的問題:我們是否能夠提供一款其功能可滿足客戶所有獨特設計要求的DSP內核。有時候內核會太大,太小或者不夠快。有時,我們會開發一款能確切滿足客戶需求的內核,并迅速以CORE Generator商標推出。不過即便在這種情況下,客戶仍然想要一套特定的DSP功能,而且刻不容緩。在這些情況下,我常常建議他們使用我們器件中的插值查找表來定制他們的DSP功能。
查找表(LUT)實質上是一個存儲元件,能夠根據任何給定的輸入狀態組合,“查找”輸出,以確保每個輸入都有確切的輸出。采用LUT來實現DSP功能具有一些重大優勢:
● 可用諸如MATLAB或Simulink等高抽象層編程語言改變LUT內容。
● 可以設計一項DSP功能來運行那些采用離散邏輯運算將極度困難的數學函數,比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。
● LUT還可輕松執行在可配置邏輯塊(CLB)芯片,以及嵌入式乘法單元或DSP48可編程乘法累加(MAC)單元方面可能要求過多FPGA資源的復雜數學函數。
不過,以這種方式使用LUT當然也會存在一些弊端。當您使用LUT來實現DSP功能時,您必須使用塊RAM(BRAM)元件。若執行函數y=sqrt(x)(其中x表示16位輸入,y表示18位輸出),每個變量則需要約64個18KB BRAM單元。如果,比如說,您的目標是實現小型化Spartan器件,或者您有太多的運算需要執行,無法為每個變量省出64個BRAM單元,建議您放棄這種需要如此大量BRAM單元的方法,從系統架構的角度來看,這種方法代價太大。
插值LUT方法不僅具有LUT方法在實現DSP功能時所帶來的各種優勢,而且無需使用太多BRAM單元。采用這種方法,您可以使用來自容量較小的LUT(比如,1000字LUT)的連續輸出,線性地對其內插,以模擬更大容量的LUT。這樣,您就可以實現比1000字LUT更高的數值分辨率。此外,通過這種方法,僅需1個BRAM、1個嵌入式乘法器(或DSP48),以及少數幾個CLB芯片便可實施控制邏輯,因此LUT的使用成本變得更加合理化。而且,從信噪比的角度來看,其數值精度也是非常讓人滿意。
當然,應用插值LUT(ILUT)方法需要一定的技巧。舉例來說,采用該方法執行y=sqrt(x)函數時,可以清楚地顯示ILUT在空間占用、時序和數值精度方面的性能。我們先大致看一下這個示例,然后我再講解部分實例,說明如何使用這種方法來滿足客戶截然不同的需求,比如讓傳遞函數呈非線性的傳感器實現線性化,以及實施自適應有限脈沖響應(FIR)濾波器以消除合成孔徑雷達(SAR)圖像上的斑點噪聲。
使用System Generator for DSP進行設計
為在賽靈思FPGA上實施DPS算法,我借助了采用MathWorks Simulink基于模型設計方法的System Generator for DSP設計與綜合工具。 System Generator得益于賽靈思在Simulink環境中的DSP模塊組,可自動調用CORE Generator為DSP構建塊生成高度優化的網表。Simulink是一種雙精度浮點設計工具,而System Generator則是一款定點運算工具。不管怎樣,您只要將這兩種工具協同使用,就可以定義每個信號的總位數以及每個信號的二進制位置,從而在定點運算中巧妙處理分數。仿真結果周期精確、位真,因此您可以方便地將它們與MATLAB腳本或Simulink模塊生成的浮點參考值相比較,以檢查量化誤差。
圖1顯示了System Generator中ILUT方案的頂層結構圖。為讓這個方法盡可能一般化,假設nx=16位中的輸入變量x的取值范圍為0≤x《1,因此其格式為 “無符號16位加上二進制點右邊的16位”,也稱為Ufix_16_16格式。最高有效位(MSB)和最低有效位(LSB)模塊分別對應輸入數據 nb=10的最高位和nx-nb=6的最低位。這些信號被命名為x0和dx。y=sqrt(x)輸出則以ny=17位二進制數表示,格式為:Ufix_17_17。
圖2顯示了1000字小容量LUT通過雙端口RAM模塊的部署步驟。由于該模塊系只讀存儲器,布爾常數模塊We_const強制將寫入歸零。信號X0和X0+1則用作ROM表上后續的兩個地址。Data_const模塊的零常數定義了任何ROM字的大小(即本例中的ny)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 新型雙聲道音頻-+DAC小面積插值濾波器的設計實現
- 基于預測緩存的OpenFlow虛擬流表查找方法 11次下載
- 如何使用查找表和Newton插值算法實現正余弦函數的FPGA 29次下載
- FPGA查找表LUT和編程方式的基礎知識說明 16次下載
- 如何使用LUT實現FPGA中的DSP功能 19次下載
- 高速并行成型濾波器的FPGA實現方法 0次下載
- OpenFlow流表查找方法 0次下載
- 局部多項式的方法對圖像進行插值 1次下載
- 基于CFA插值的圖像拼接篡改檢測方法 9次下載
- 基于AIS線性插值的綜合插值方法 13次下載
- 基于小波變換的分形插值圖像放大方法 0次下載
- 基于多項式插值函數的翼型參數化設計方法 2次下載
- CCD圖像的顏色插值算法研究及其FPGA實現 12次下載
- 基于B樣條插值的圖像邊緣檢測實現 40次下載
- 插值查找表:實現DSP功能的簡便方法
- 直流接地故障的查找程序和方法 656次閱讀
- 中性點接地10 kV線路故障的查找方法 131次閱讀
- 什么是線性插值?一維線性插值和雙線性插值在BMS開發中的應用 1w次閱讀
- 圖像插值理論研究之雙三次插值 1191次閱讀
- CIC插值濾波器與直接頻率合成器DDS的FPGA實現 1618次閱讀
- 基于深度學習構造DL-SR網絡結構和實現方法 2273次閱讀
- 直插式元器件的焊接方法,有哪些注意事項? 1.7w次閱讀
- 固定連接器插針的三種方法 1.1w次閱讀
- 一種不同于雙線性插值的上采樣方法 6447次閱讀
- 常用的插值算法盤點 8190次閱讀
- 如何利用LUT來實現FPGA中的DSP功能 1.2w次閱讀
- matlab-插值 1771次閱讀
- 基于FPGA的雙線性CFA插值算法的設計 4465次閱讀
- FPGA查找表實現原理分析 1.4w次閱讀
- 用插值查找表實現FPGA的DSP功能 2077次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1489次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多