• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA的矩陣尺寸自適應的雙精度浮點數矩陣乘法器

      2017-07-10 07:08朱耀國黨皓
      電腦知識與技術 2017年14期
      關鍵詞:自適應

      朱耀國+黨皓

      摘要:設計了一種基于FPGA的矩陣尺寸自適應的高速雙精度浮點數矩陣乘法器。采用了基于XihnxISE中雙口RAM及浮點數運算IP核,對矩陣元素進行緩存后,在運算的過程中根據矩陣的尺寸進行自適應處理,可支持矩陣尺寸最大32×32的矩陣乘法;同時通過流水線處理,弱化浮點數運算核自身延遲對設計帶來的延遲效應。該設計通過基于TEXTIO的仿真對MATLAB產生的數據進行了運算及檢驗,驗證了設計的功能與性能。

      關鍵詞:自適應;雙精度浮點數;矩陣乘法器;流水線處理

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)14-0085-02

      1概述

      矩陣乘法在遠程通信,網絡傳輸,圖像與信號處理等領域中有著廣泛的應用。矩陣乘法在這些應用中,不僅需要面對大量的數據,還需要滿足高精度與高速度的要求;針對不同的應用場合,被處理的矩陣的尺寸也不同。為了滿足矩陣處理高速度高精度,適用于不同尺寸的被處理矩陣的要求,本文介紹了一種基于FPGA的設計,用于處理雙精度浮點數矩陣的乘法器,該設計可適用于兩個最大尺寸32×32的矩陣相乘,并采用了流水線技術提高運算效率,以滿足高速度需求。

      IEEE754標準規(guī)定了兩種浮點格式,32bit單精度浮點數以及64bit雙精度浮點數。這兩種數據均包括符號位S、階碼E以及尾數M。根據浮點數類型的不同,階碼E和尾數M的位數有所不同。IEEE754標準所規(guī)定的雙精度浮點數格式如圖1所示。

      根據IEEE754規(guī)定,尾數M隱含了一位數值為1的最高位,雙精度浮點數的階碼包含了bias=+1023的偏移量,雙精度浮點數的數值可由公式1獲得:

      2乘法器設計

      對于矩陣乘法C=A×B,其中A、B和C分別是M×K、K×N和M×N維矩陣,其計算方法如公式2所示:

      矩陣尺寸自適應的高速雙精度浮點數矩陣乘法器的結構如圖2所示。設計中,根據輸入矩陣的矩陣尺寸對兩組輸入矩陣A、B進行緩存,并判斷輸出矩陣的尺寸對結果矩陣C進行緩存;利用有限狀態(tài)機,對初始、緩存矩陣A、緩存矩陣B、計算、完成提示,這5個狀態(tài)進行控制。圖中的信號分別為:

      1)時鐘輸入Clock;

      2)重置輸入Reset,寫入使能輸入WriteEnable,輸入緩沖器片選輸入BufferSel(0),讀取結果的使能輸入ReadEnable,指示運算完成的輸出ReadReadv;

      3)輸入矩陣尺寸的輸入MatrixSizeAy(4,0),MatrixSizeAxBy(4,0),MatrixSizeAxBy(4,0);

      4)10位輸入地址總線輸入WriteAdd(9,0),64位輸入數據總線輸人WriteData(63,0);

      5)10位輸出地址總線輸入ReadAdd(9,0),64位輸入數據總線輸出ReadData(63,0)。

      2.1矩陣尺寸自適應處理

      當外部矩陣尺寸提供給算法后,在初始階段中,算法對輸入矩陣A和B的尺寸進行運算;根據運算結果,依次進人緩存矩陣A階段,緩存矩陣B階段,在每個時鐘周期對矩陣中單個元素進行緩存,分別需MxK和KxN個時鐘周期;當完成緩存后,算法進入計算階段,在每個時鐘周期分別從緩存中讀取矩陣A和B的元素并進行計算,當矩陣C中MxN個元素均完成計算并被緩存后,進入完成提示階段;在完成提示階段中,FPGA輸出ReadReady信號,高電平有效,提示外部設備可以對RAM C中的矩陣c進行數據讀取。

      2.2雙口RAM

      根據Xilinx ISE 13.4中的Core Generator可對所需的雙口RAM進行配置,對矩陣A、B和C的輸入緩存及讀取。雙口RAM的結構圖和時序圖分別如圖3、4所示。其中clka和clkb為共享同一時鐘。

      2.3雙精度浮點數乘法器,加法器

      與雙口RAM類似,雙精度浮點數的乘法器和加法器通過配置相應的IP CORE實現,其結構框圖均可由圖5表示。

      雙精度浮點數加法器的工作時序圖如圖6所示,加法器需要12個時鐘周期方可獲得計算結果;乘法器的工作時序圖與加法器相同,但需要9個時鐘周期方可獲得計算結果。需要注意的是,如果輸入數據是連續(xù)的,那么在相應的處理時鐘周期后,其輸入結果也為連續(xù)輸出的,且互不干擾,具有流水線處理能力,該要點為本設計的基礎。

      2.4計算流水化處理

      1)矩陣C中單個元素Ci,j的得出,由公式(2)可知,需要K次乘法,以及K次累加(第一次與0累加);因為加法器與乘法器工作均有時間延遲,在完成單個ci,j的所有計算后再進行下一個ci,j的計算,將會將加法器和乘法器空置的時間最大化,效率最低,無法進行流水線處理;

      2)為了避免乘法器的空置,將按時鐘周期向乘法器提供緩存在Buffer A和B中的數據,在9個時鐘周期后,乘法器按時鐘依次輸出雙精度浮點數乘法結果;

      3)為了避免加法器的空置,將按時鐘周期向加法器提供乘法器的輸出及加法器上一輪的累加結果,在12個時鐘周期后,加法器依次輸出雙精度浮點數加法結果;

      41加法器可視作一個深度為12的FIFO,在外部再添加一個深度為x的FIFO對加法器的輸出進行緩沖,即加法器從輸入到輸出需要(12+X)個時鐘周期;當乘法器按時鐘依次對(12+X)個Ci,j各進行1次乘法運算,此時乘法器的輸出便可與加法器的輸出匹配;

      5)當(12+X)個Ci,j的各所需的K次乘法和累加完成后,在各個ci,j的最后一次累加輸出時,該數據便可依次緩存至Buf-fer C中;

      6)當所有的ci,j還未完成運算,算法會進入下一組的(12+X)個Ci,j的運算,直至得出矩陣C中所有的元素并緩存;

      7)完成運算后發(fā)出ReadReady信號,提示外部可對BufferC進行讀取。

      3設計驗證

      VHDL測試程序以100ns為時鐘周期,向設計實體提供控制信號及地址信號,而數據信號為從TXT文件中讀取的矩陣A、B的雙精度浮點數;當矩陣A、B分別被緩存至設計實體后,測試程序進入等待。當設計實體完成矩陣C的運算后,測試程序接收到ReadReadv的高電平信號,向設計實體提供控制信號及地址信號,開始逐個讀取設計實體所得出矩陣C中的元素,寫入新的TXT1文件,并同時讀取對照組TXT文件中的矩陣CO,將對比結果同時寫入TXT1文件。設計驗證結果如圖8所示。計算過程用時(不含數據緩存)見表1。

      猜你喜歡
      自適應
      散亂點云的自適應α—shape曲面重建
      淺談網絡教育領域的自適應推送系統
      電子節(jié)氣門非線性控制策略
      多天線波束成形的MIMO-OFDM跨層自適應資源分配
      計算機虛擬客戶在電子商務教學中的應用
      阳新县| 乌恰县| 定西市| 会理县| 明星| 阿图什市| 喀喇沁旗| 抚州市| 瑞金市| 温泉县| 肇源县| 德格县| 凉城县| 海盐县| 洛川县| 资源县| 寻甸| 贵定县| 敦煌市| 团风县| 页游| 合水县| 万载县| 姚安县| 永清县| 景东| 陆川县| 布尔津县| 若尔盖县| 遂平县| 盈江县| 横峰县| 余庆县| 仙游县| 红桥区| 茌平县| 始兴县| 潼关县| 灵石县| 大余县| 高州市|