新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 分布式運算單元的原理及其實現方法

        分布式運算單元的原理及其實現方法

        作者: 時間:2009-08-31 來源:網絡 收藏

         隨著FPGA集成度的不斷提高,在單片FPGA中完成復雜的數字信號處理過程變成了現實。譬如:FIR濾波器、FFT以及雷達信號處理中的數字脈沖壓縮、數字鑒相等,都可以在單片FPGA中實現。在基于Xilinx XC4000系列FPGA設計的DSP中,單元DA扮演著重要的角色。本文介紹其及其
        1 單元
          DA的非常簡單,但是它的應用卻十分廣泛。
          一個線性時不變網絡的輸出可以用下式表示:
          
          其中, y(n)為第n時刻網絡的輸出;Xk(n)為第n時刻的第k個輸入變量;Ak為第k個輸入變量的權值。
          在線性時不變系統中,對于所有n時刻,Ak都是常量。如果該網絡表現為濾波器,常量Ak 即為濾波器系數,變量Xk為單一數據源的抽樣數據(如A/D的輸出)。而在時-頻轉換系統中(如離散傅立葉變換及快速傅立葉變換),常數Ak即為旋轉因子值,變量Xk為單一數據源的數據塊(多源數據的例子可以在圖像處理系統中發現)。
          仔細觀察式(1)可以看出,單個輸出y(n) 需要將k個乘積累加。在以XC4000系列FPGA中的可配置邏輯功能塊(CLB)的查找表(Look-Up Table)結構[1]為基礎的DA中,這種乘積累加可以由查找表來實現。XC4000系列的CLB結構特點使得它很容易被高效的配置。
          為了使得乘法之后的數據寬度不至于展寬,先把數據源數據格式規定為浮點數2的補碼形式。需要注意的是,常數Ak 不一定要進行格式轉換來匹配輸入數據的格式,它可以根據所要求的精度進行定義。
          變量Xk可以用下式表示:
          

        本文引用地址:http://www.104case.com/article/191941.htm

          其中,Xkb為二進制數,即取值為0或1;Xk0為符號位,Xk0為1表示數據為負,為0表示數據為正。
          將式(2)代入式(1)可以得到:
          
          可以看出,每個方括號中進行的是輸入變量的某一個數據位和所有常數(A1~Ak)的每一位進行位與并求和。而指數部分則說明了求和結果的位權。現在就可以建立查找表來實現方括號中的操作了,其查找表用所有輸入變量的同一位進行尋址,如圖1所示。


          圖1中所示的DA查找表,其寬度為對常數Ak 定義的寬度,深度為2K,K是能夠對數據源抽樣數據進行處理的數據長度,對于濾波器就表現為濾波器階數;對于FFT就表現為FFT點數。
          這樣,式(1)所表示的方程就可以由加法、減法和二進制除法來實現了。但是,DA僅僅是運算方程(1)的核心,要完成式(1)還需要根據系統對時間以及FPGA資源的考慮,選擇相應的方法。
        2 幾種
        2.1 全并行
          市場上已經有大量的通用DSP芯片,這些芯片以并行的乘法、加法運算,地址產生器和片內存儲器為主要特點,如TMS320C620x、 ADSP2106x、及各種通用的FFT芯片(如PDSP16510)。為什么還要選擇FPGA呢?主要是考慮速度。要實現一個64階FIR濾波器,如果采用全并行方式,FPGA可做到50MHz的數據率,可以和系統時鐘相匹配,這是通用DSP芯片無法做到的。下面就舉出全并行的例子。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 稻城县| 鞍山市| 八宿县| 新巴尔虎右旗| 蒙山县| 泰安市| 米脂县| 长海县| 普宁市| 东乡族自治县| 绵阳市| 新晃| 鸡泽县| 淮阳县| 古蔺县| 东乡族自治县| 新泰市| 栖霞市| 四子王旗| 弥勒县| 衡阳县| 安福县| 青田县| 金湖县| 奎屯市| 边坝县| 乳山市| 博客| 大渡口区| 金湖县| 荣昌县| 库伦旗| 钦州市| 定兴县| 乐平市| 郸城县| 乡城县| 阿瓦提县| 长海县| 砀山县| 浮梁县|