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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA高精度浮點(diǎn)運(yùn)算器的FFT設(shè)計(jì)與仿真

          基于FPGA高精度浮點(diǎn)運(yùn)算器的FFT設(shè)計(jì)與仿真

          作者: 時(shí)間:2012-03-09 來源:網(wǎng)絡(luò) 收藏

          1.3.1 蝶形處理單元
          蝶形處理單元是整個(gè)的中心環(huán)節(jié),采用復(fù)數(shù)表示,將實(shí)部與虛部分別存儲(chǔ),利用基2的DIT-算法實(shí)現(xiàn)運(yùn)算。

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

          e.jpg


          蝶形運(yùn)算過程包括一個(gè)乘法運(yùn)算o.jpg和一個(gè)加/減法運(yùn)算f.jpg。數(shù)據(jù)的讀取由時(shí)鐘單元的信號來控制:當(dāng)時(shí)鐘為c0時(shí),讀取y;c1時(shí),讀取Y;c2時(shí),讀取x;c3時(shí),讀取X。經(jīng)蝶形運(yùn)算后得到x’=x+(ycosφ+Ysinφ),X’=X+(Ycosφ-ysinφ),y’=x-(ycosφ+Ysinφ),Y’=X-(Ycosφ-ysinφ)然后將數(shù)據(jù)寫入同樣地址的RAM中,至此,2點(diǎn)的蝶形運(yùn)算單元完成。在蝶形運(yùn)算共需一個(gè)乘法器和兩個(gè)加法器。
          (1)浮點(diǎn)乘法器。乘法過程對浮點(diǎn)數(shù)的符號位、指數(shù)以及尾數(shù)分別進(jìn)行計(jì)算,符號異或,指數(shù)相加再減127,尾數(shù)加入隱含的‘1’后再進(jìn)行乘法運(yùn)算,如果尾數(shù)相乘的結(jié)果有溢出則指數(shù)加1尾數(shù)取前23位,若無溢出,則取最高位后的23位。但若輸入的數(shù)據(jù)有一個(gè)是0,則輸出為0。
          g.jpg
          圖5的波形為兩浮點(diǎn)數(shù)的乘法運(yùn)算,輸入以16進(jìn)制表示,分別將不同類型的數(shù)據(jù)搭配進(jìn)行測試,結(jié)果表示仿真正確。

          h.jpg


          (2)浮點(diǎn)加法器。加法運(yùn)算是將兩數(shù)指數(shù)比較,存儲(chǔ)較大的指數(shù),將指數(shù)小的尾數(shù)移位,再進(jìn)行加減操作,規(guī)格化后輸出。加法過程由多個(gè)模塊組合實(shí)現(xiàn),包括比較模塊,右移模塊、加/減法模塊、前導(dǎo)零檢測模塊、左移模塊和結(jié)果整合輸出模塊。
          比較模塊主要對指數(shù)操作,判斷指數(shù)的大小,較大的指數(shù)暫作結(jié)果的指數(shù),較小指數(shù)的數(shù)做移位操作,其階差為移位量。以下程序采用for循環(huán)來實(shí)現(xiàn)移位,S(5 downto 0)存儲(chǔ)階差,最大值是32。
          i.jpg

          fpga相關(guān)文章:fpga是什么




          評論


          相關(guān)推薦

          技術(shù)專區(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); })();