两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于fpga的高速低延遲浮點(diǎn)累加器及其實(shí)現(xiàn)方法

文檔序號:6339125閱讀:756來源:國知局
專利名稱:基于fpga的高速低延遲浮點(diǎn)累加器及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及FPGA技術(shù)及高性能計(jì)算技術(shù)領(lǐng)域,具體來說是一種基于FPGA的高速 低延遲浮點(diǎn)累加器及其實(shí)現(xiàn)方法。
背景技術(shù)
浮點(diǎn)累加運(yùn)算是浮點(diǎn)計(jì)算中的一個重要操作,在過程控制、數(shù)字信號處理等領(lǐng)域 廣泛存在。以前的浮點(diǎn)運(yùn)算系統(tǒng)通常采用通用浮點(diǎn)處理器或DSP實(shí)現(xiàn),雖然具有技術(shù)較為 成熟、實(shí)現(xiàn)工具完善、編程簡單等優(yōu)點(diǎn),但是由于其內(nèi)部結(jié)構(gòu)的限制,處理器在進(jìn)行計(jì)算時(shí) 經(jīng)常會出現(xiàn)緩存撲空(Cache Miss)等現(xiàn)象,影響系統(tǒng)計(jì)算性能。基于通用處理器和DSP技 術(shù)的設(shè)計(jì)通常持續(xù)計(jì)算性能只能維持在其峰值計(jì)算性能的10% 33%,無法取得很高的 計(jì)算性能。
近年來FPGA技術(shù)取得了飛速發(fā)展,已經(jīng)從最初只能面向純邏輯替代的應(yīng)用轉(zhuǎn)變 為能夠面向復(fù)雜的計(jì)算密集型應(yīng)用。最新推出的FPGA器件中,不僅集成有豐富的可配置邏 輯塊資源(Configurable Logic Block,CLB),還包括大量面向計(jì)算密集應(yīng)用的DSP單元、塊 狀RAM(Block RAM, BRAM)和用于高速串行通信的RocketIO GTP收發(fā)器單元。同時(shí)為方便 FPGA的調(diào)試,各FPGA廠商還推出了片內(nèi)邏輯分析測試工具(如Xilinx公司的Chipkope), 在軟硬件上保證了在FPGA上實(shí)現(xiàn)高性能計(jì)算的可行性。在浮點(diǎn)運(yùn)算方面,憑借著更靈活的 配置特性和較低的功耗,F(xiàn)PGA也正獲得越來越多的應(yīng)用。
在FPGA內(nèi)部,浮點(diǎn)加法器通常通過邏輯資源或可配置的DSP模塊實(shí)現(xiàn),為了獲得 更高的運(yùn)算速度,浮點(diǎn)加法器往往需要使用多達(dá)10級以上的流水線實(shí)現(xiàn),這樣浮點(diǎn)加法結(jié) 果的輸出往往具有較大延遲。因此,在常規(guī)設(shè)計(jì)中,基于FPGA的浮點(diǎn)累加器通常對不同級 數(shù)的加法運(yùn)算依照級數(shù)大小順序進(jìn)行,通過內(nèi)部緩沖器存儲每一級加法運(yùn)算結(jié)果,并用于 下一級運(yùn)算。這樣,對于一些累加次數(shù)與浮點(diǎn)加法器流水線級數(shù)相當(dāng)甚至更小的情形,由于 需要等待加法流水線操作完成的時(shí)間比輸入數(shù)據(jù)的時(shí)間更長,加法器往往出現(xiàn)空閑工作狀 態(tài),最終累加結(jié)果的輸出相對于原始數(shù)據(jù)的輸入往往具有很大的時(shí)間延遲。在這種情況下, 下一次浮點(diǎn)累加操作的原始數(shù)據(jù)需要等待上一次浮點(diǎn)累加操作接近全部完成的時(shí)候才允 許輸入,從而造成較大的延遲。在一些實(shí)時(shí)性要求很高的場合,這種累加器就無法滿足應(yīng)用 需求。雖然可以通過增加浮點(diǎn)加法器的數(shù)目來解決該問題,但是由于浮點(diǎn)運(yùn)算的復(fù)雜度,對 FPGA的邏輯資源或DSP模塊消耗急劇增加。發(fā)明內(nèi)容
本發(fā)明提供了一種具備優(yōu)良實(shí)時(shí)性能的、基于FPGA的高速低延遲浮點(diǎn)累加器及 其實(shí)現(xiàn)方法,能夠有效提高浮點(diǎn)加法器的利用率,在所需邏輯或DSP資源基本不變的同時(shí) 具有較低的延遲。
一種基于FPGA的高速低延遲浮點(diǎn)累加器,包括
—個浮點(diǎn)加法器單元,用于對輸入的浮點(diǎn)數(shù)進(jìn)行加法操作,所述的浮點(diǎn)數(shù)包括原始數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù);以及用于對輸入的浮點(diǎn)數(shù)的標(biāo)志位進(jìn)行與相 應(yīng)的浮點(diǎn)數(shù)的加法操作同步的延遲;所述的浮點(diǎn)加法器單元包括一個常規(guī)的浮點(diǎn)加法模塊 和一個標(biāo)志位同步延遲邏輯模塊,可使用FPGA內(nèi)部邏輯資源或可配置的DSP模塊實(shí)現(xiàn);為 了獲得更高的運(yùn)算速度,浮點(diǎn)加法器單元通常采用多級流水線的方式實(shí)現(xiàn);
N個中間結(jié)果緩沖器單元,分別與各級浮點(diǎn)累加運(yùn)算對應(yīng),用于緩存各級浮點(diǎn)累 加運(yùn)算的中間結(jié)果;所述的中間結(jié)果緩沖器單元利用FPGA內(nèi)部fifo實(shí)現(xiàn),由于各級浮點(diǎn) 累加運(yùn)算得到的中間結(jié)果數(shù)據(jù)總量并不一致,對中間結(jié)果緩沖器單元的大小需求也會有所 差別,因此,為了獲得更高的資源利用率,可以根據(jù)各級浮點(diǎn)累加運(yùn)算得到的中間結(jié)果數(shù)據(jù) 量,為存儲不同浮點(diǎn)累加運(yùn)算級數(shù)中間結(jié)果的中間結(jié)果緩沖器單元選擇合適大小和類型的 fifo,從而減少對FPGA內(nèi)部存儲資源的消耗;
輸入控制單元,用于接收原始數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù),并對不 同來源的數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同優(yōu)先級的成對數(shù)據(jù)輸入到浮點(diǎn)加 法器單元進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn)加法器單元的數(shù)據(jù)設(shè)立標(biāo)志位,標(biāo)示對于 當(dāng)前數(shù)據(jù)對進(jìn)行加法操作所屬的浮點(diǎn)累加運(yùn)算級數(shù);其中,對不同來源的數(shù)據(jù)設(shè)立不同的 優(yōu)先級,為將原始數(shù)據(jù)設(shè)為最高優(yōu)先級,對于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù),其對應(yīng) 的浮點(diǎn)累加運(yùn)算級數(shù)越高,越是靠近最終結(jié)果,其優(yōu)先級越高;
輸出控制單元,用于根據(jù)所述的浮點(diǎn)加法器單元同步延遲輸出的標(biāo)志位,確定浮 點(diǎn)加法器單元當(dāng)前輸出的數(shù)據(jù)所屬的浮點(diǎn)累加運(yùn)算級數(shù),判斷所述的浮點(diǎn)加法器單元輸出 的當(dāng)前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最終結(jié)果,將中間結(jié)果存入相應(yīng)浮點(diǎn)累加運(yùn)算 級數(shù)的中間結(jié)果緩沖器單元;將最終結(jié)果輸出。
一種基于FPGA的高速低延遲浮點(diǎn)累加的實(shí)現(xiàn)方法,包括
(1)原始浮點(diǎn)數(shù)據(jù)輸入步驟每個時(shí)鐘周期從前級計(jì)算或處理模塊輸入一個原始 浮點(diǎn)數(shù)據(jù)到浮點(diǎn)加法器單元,所述原始浮點(diǎn)數(shù)據(jù)WM = 2n+1個數(shù)據(jù)為一組被累加,各組原始 浮點(diǎn)數(shù)據(jù)被連續(xù)輸入;N為累加級數(shù);
(2)輸入控制步驟輸入控制單元接收原始浮點(diǎn)數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間 結(jié)果浮點(diǎn)數(shù)據(jù),并對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同優(yōu)先 級的成對浮點(diǎn)數(shù)據(jù)輸入到浮點(diǎn)加法器單元進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn)加法器單 元的浮點(diǎn)數(shù)據(jù)設(shè)立標(biāo)志位,標(biāo)示對于當(dāng)前浮點(diǎn)數(shù)據(jù)對進(jìn)行加法操作所屬的浮點(diǎn)累加運(yùn)算 級數(shù);其中,對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立不同的優(yōu)先級,為將原始浮點(diǎn)數(shù)據(jù)設(shè)為最高優(yōu)先 級,對于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果浮點(diǎn)數(shù)據(jù),其對應(yīng)的浮點(diǎn)累加運(yùn)算級數(shù)越高,越是靠 近最終結(jié)果,其優(yōu)先級越高;
(3)浮點(diǎn)累加運(yùn)算步驟,浮點(diǎn)加法器單元對每個時(shí)鐘周期輸入的成對浮點(diǎn)數(shù)據(jù)進(jìn) 行加法計(jì)算,同時(shí)也對輸入控制單元設(shè)立的與該對浮點(diǎn)數(shù)據(jù)對應(yīng)的標(biāo)志位進(jìn)行同步延遲;
(4)輸出控制步驟,根據(jù)所述的浮點(diǎn)加法器單元同步延遲輸出的標(biāo)志位,輸出控制 單元確定浮點(diǎn)加法器單元輸出的當(dāng)前加法操作的計(jì)算結(jié)果所屬的浮點(diǎn)累加運(yùn)算級數(shù),從而 判斷所述的浮點(diǎn)加法器單元輸出的當(dāng)前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最終結(jié)果,將 中間結(jié)果存入相應(yīng)浮點(diǎn)累加運(yùn)算級數(shù)的中間結(jié)果緩沖器單元;將最終結(jié)果輸出。
當(dāng)原始浮點(diǎn)數(shù)據(jù)按照時(shí)鐘周期連續(xù)輸入到浮點(diǎn)加法器單元時(shí),上述過程各步驟以 流水線方式進(jìn)行,各組原始浮點(diǎn)數(shù)據(jù)累加最終結(jié)果以M = 2n+1-1個時(shí)鐘為間隔持續(xù)輸出。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果
本發(fā)明中,所述的高速低延遲浮點(diǎn)累加器內(nèi)部僅使用一個浮點(diǎn)加法器單元,減少 了對浮點(diǎn)運(yùn)算所需的大量FPGA內(nèi)部邏輯資源或DSP資源的消耗。采用所述的高速低延遲 浮點(diǎn)累加器進(jìn)行浮點(diǎn)累加運(yùn)算時(shí),對整個累加計(jì)算過程進(jìn)行分級,不同級數(shù)的累加計(jì)算過 程交叉進(jìn)行,不同級數(shù)的累加計(jì)算中間結(jié)果分級存儲;同時(shí),完全采用流水線方式工作,大 大提高內(nèi)部浮點(diǎn)加法器單元利用效率,浮點(diǎn)累加計(jì)算最終結(jié)果的輸出具有較低的延遲。
本發(fā)明通過對輸入到內(nèi)部浮點(diǎn)加法器單元的數(shù)據(jù)的動態(tài)分配,在等待浮點(diǎn)加法器 單元流水線輸出的同時(shí),保持浮點(diǎn)加法器單元各級流水線的運(yùn)作,有效提高浮點(diǎn)加法器單 元的利用率,從而能夠在所需邏輯或DSP資源消耗不大的同時(shí),保證較高的運(yùn)算速度和較 低的延遲。


圖1為本發(fā)明的高速低延遲浮點(diǎn)累加器的內(nèi)部結(jié)構(gòu)示意框圖2為本發(fā)明的高速低延遲浮點(diǎn)累加實(shí)現(xiàn)方法中一組數(shù)據(jù)進(jìn)行多級浮點(diǎn)累加運(yùn) 算過程示意圖,累加級數(shù)N= 2。
具體實(shí)施方式
下面結(jié)合實(shí)施例和附圖來詳細(xì)說明本發(fā)明,但本發(fā)明并不僅限于此。
如圖1所示,一種基于FPGA的高速低延遲浮點(diǎn)累加器,具體包括
浮點(diǎn)加法器單元110,用于對輸入的浮點(diǎn)數(shù)進(jìn)行加法操作,所述的浮點(diǎn)數(shù)包括原始 數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù);以及用于對輸入的浮點(diǎn)數(shù)的標(biāo)志位進(jìn)行與相應(yīng) 的浮點(diǎn)數(shù)的加法操作同步的延遲;浮點(diǎn)加法器單元110包括一個常規(guī)的浮點(diǎn)加法模塊和一 個標(biāo)志位同步延遲邏輯模塊,使用FPGA內(nèi)部邏輯資源或可配置的DSP模塊實(shí)現(xiàn);為了獲得 更高的運(yùn)算速度,浮點(diǎn)加法器單元110通常采用多級流水線的方式實(shí)現(xiàn);
N個中間結(jié)果緩沖器單元120,包括:fifo_Ufifo_2......f ifo_N,分別與各級浮點(diǎn)累加運(yùn)算相對應(yīng),用于緩存各級浮點(diǎn)累加運(yùn)算的中間結(jié)果;中間結(jié)果緩沖器單元120利 用FPGA內(nèi)部fifo實(shí)現(xiàn),由于各級浮點(diǎn)累加運(yùn)算得到的中間結(jié)果數(shù)據(jù)總量并不一致,對中間 結(jié)果緩沖器單元120的大小需求也會有所差別,因此,為了獲得更高的資源利用率,可以根 據(jù)各級浮點(diǎn)累加運(yùn)算得到的中間結(jié)果數(shù)據(jù)量,為存儲不同浮點(diǎn)累加運(yùn)算級數(shù)中間結(jié)果的中 間結(jié)果緩沖器單元120選擇合適大小和類型的fifo,從而減少對FPGA內(nèi)部存儲資源的消 耗;
輸入控制單元130,用于根據(jù)當(dāng)前輸入的原始數(shù)據(jù)和各個緩沖器內(nèi)數(shù)據(jù)存儲量,控 制浮點(diǎn)加法器單元110的輸入。
由于一次加法操作需要同時(shí)兩個數(shù)據(jù)輸入,因此在原始數(shù)據(jù)每個時(shí)鐘連續(xù)輸入的 情況下,每隔2個時(shí)鐘才能進(jìn)行一次原始數(shù)據(jù)的加法運(yùn)算,空余的那個時(shí)鐘間隔將被用來 對讀取自中間結(jié)果緩沖器單元120的中間結(jié)果進(jìn)行運(yùn)算。當(dāng)有多個中間結(jié)果緩沖器單元 120內(nèi)有兩個以上數(shù)據(jù)、可以進(jìn)行一次加法運(yùn)算操作時(shí),將根據(jù)這些中間結(jié)果緩沖器單元 120對應(yīng)的優(yōu)先級、選擇優(yōu)先級更高的數(shù)據(jù)進(jìn)行加法運(yùn)算。為了獲得最小的時(shí)間延遲,浮點(diǎn) 累加運(yùn)算級數(shù)高的數(shù)據(jù)緩沖區(qū)將被賦以更高的優(yōu)先級。
此外,為了便于輸出控制單元140識別浮點(diǎn)加法器單元110當(dāng)前輸出結(jié)果對應(yīng)的 浮點(diǎn)累加運(yùn)算級數(shù),輸入控制單元130會為每個輸入到浮點(diǎn)加法器單元110的數(shù)據(jù)設(shè)立對 應(yīng)的標(biāo)志位,這些標(biāo)志位采用同步移位的方式延遲,保持與對應(yīng)加法操作的一致,當(dāng)一對輸 入數(shù)據(jù)的浮點(diǎn)加法運(yùn)算結(jié)束時(shí),該加法運(yùn)算的結(jié)果和與該加法運(yùn)算對應(yīng)的同步移位之后的 標(biāo)志位被浮點(diǎn)加法器單元110同時(shí)送到輸出控制單元140。
因此,輸入控制單元130在接收原始數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù) 時(shí),會給不同來源的數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同優(yōu)先級的成對數(shù)據(jù)輸 入到浮點(diǎn)加法器單元110進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn)加法器單元110的數(shù)據(jù)設(shè) 立與當(dāng)前加法操作同步延遲的標(biāo)志位,標(biāo)示對于當(dāng)前數(shù)據(jù)對進(jìn)行加法操作所屬的浮點(diǎn)累加 運(yùn)算級數(shù);其中,對不同來源的數(shù)據(jù)設(shè)立不同的優(yōu)先級,為將原始數(shù)據(jù)設(shè)為最高優(yōu)先級, 對于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù),其對應(yīng)的浮點(diǎn)累加運(yùn)算級數(shù)越高,越是靠近最終 結(jié)果,其優(yōu)先級越高。
輸出控制單元140,用于根據(jù)浮點(diǎn)加法器單元110同步延遲輸出的標(biāo)志位,確定浮 點(diǎn)加法器單元110當(dāng)前輸出的數(shù)據(jù)所屬的浮點(diǎn)累加運(yùn)算級數(shù),判斷浮點(diǎn)加法器單元110輸 出的當(dāng)前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最終結(jié)果,并將中間結(jié)果存入相應(yīng)浮點(diǎn)累加 運(yùn)算級數(shù)的中間結(jié)果緩沖器單元,或?qū)⒆罱K結(jié)果輸出。
采用上述高速低延遲浮點(diǎn)累加器實(shí)現(xiàn)浮點(diǎn)累加的方法,包括
(1)原始浮點(diǎn)數(shù)據(jù)輸入步驟每個時(shí)鐘周期從前級計(jì)算或處理模塊輸入一個原始 浮點(diǎn)數(shù)據(jù)到浮點(diǎn)加法器單元110,所述原始浮點(diǎn)數(shù)據(jù)以M = 2n+1個數(shù)據(jù)為一組被累加,各組 原始浮點(diǎn)數(shù)據(jù)被連續(xù)輸入;N為累加級數(shù);
(2)輸入控制步驟輸入控制單元130接收原始浮點(diǎn)數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的 中間結(jié)果浮點(diǎn)數(shù)據(jù),并對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同 優(yōu)先級的成對浮點(diǎn)數(shù)據(jù)輸入到浮點(diǎn)加法器單元110進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn) 加法器單元110的浮點(diǎn)數(shù)據(jù)設(shè)立標(biāo)志位,標(biāo)示對于當(dāng)前浮點(diǎn)數(shù)據(jù)對進(jìn)行加法操作所屬的浮 點(diǎn)累加運(yùn)算級數(shù),所述標(biāo)志位與當(dāng)前加法操作同步延遲;其中,對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立 不同的優(yōu)先級,為將原始浮點(diǎn)數(shù)據(jù)設(shè)為最高優(yōu)先級,對于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果浮 點(diǎn)數(shù)據(jù),其對應(yīng)的浮點(diǎn)累加運(yùn)算級數(shù)越高,越是靠近最終結(jié)果,其優(yōu)先級越高;
(3)浮點(diǎn)累加運(yùn)算步驟,浮點(diǎn)加法器單元110對每個時(shí)鐘周期輸入的成對浮點(diǎn)數(shù) 據(jù)進(jìn)行加法計(jì)算,同時(shí)也對輸入控制單元設(shè)立的與該對浮點(diǎn)數(shù)據(jù)對應(yīng)的標(biāo)志位進(jìn)行同步延 遲;
(4)輸出控制步驟,根據(jù)所述的浮點(diǎn)加法器單元110同步延遲輸出的標(biāo)志位,輸出 控制單元140確定浮點(diǎn)加法器單元110輸出的當(dāng)前加法操作的計(jì)算結(jié)果所屬的浮點(diǎn)累加運(yùn) 算級數(shù),從而判斷浮點(diǎn)加法器單元110輸出的當(dāng)前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最 終結(jié)果,將中間結(jié)果存入相應(yīng)浮點(diǎn)累加運(yùn)算級數(shù)的中間結(jié)果緩沖器單元120 ;將最終結(jié)果 輸出。
當(dāng)原始浮點(diǎn)數(shù)據(jù)按照時(shí)鐘周期連續(xù)輸入到浮點(diǎn)加法器單元110時(shí),上述過程各步 驟以流水線方式進(jìn)行,各組原始浮點(diǎn)數(shù)據(jù)累加最終結(jié)果以M = 2n+1-1個時(shí)鐘為間隔持續(xù)輸 出ο
為了進(jìn)一步詳細(xì)說明高速低延遲浮點(diǎn)累加實(shí)現(xiàn)方法中的多級浮點(diǎn)累加運(yùn)算,圖2給出了相應(yīng)的累加級數(shù)N = 2(即累加次數(shù)為8)的一組數(shù)據(jù)的浮點(diǎn)累加運(yùn)算過程。通過對 浮點(diǎn)累加運(yùn)算過程進(jìn)行如下表1所示的劃分,不同浮點(diǎn)累加運(yùn)算級數(shù)的中間計(jì)算結(jié)果被存 儲到不同fifo,同時(shí),按照不同fifo內(nèi)數(shù)據(jù)的存儲量,浮點(diǎn)加法器單元110被動態(tài)的分配用 于不同浮點(diǎn)累加運(yùn)算級數(shù)的加法計(jì)算。
不同級數(shù)存儲器數(shù)據(jù)和原始數(shù)據(jù)輸入優(yōu)先級劃分如表1所示。
權(quán)利要求
1.一種基于FPGA的高速低延遲浮點(diǎn)累加器,其特征在于,包括一個浮點(diǎn)加法器單元,用于對輸入的浮點(diǎn)數(shù)進(jìn)行加法操作,所述的浮點(diǎn)數(shù)包括原始數(shù) 據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù);以及用于對輸入的浮點(diǎn)數(shù)的標(biāo)志位進(jìn)行與相應(yīng)的 浮點(diǎn)數(shù)的加法操作同步的延遲;N個中間結(jié)果緩沖器單元,分別與各級浮點(diǎn)累加運(yùn)算對應(yīng),用于緩存各級浮點(diǎn)累加運(yùn)算 的中間結(jié)果;輸入控制單元,用于接收原始數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù),并對不同來 源的數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同優(yōu)先級的成對數(shù)據(jù)輸入到浮點(diǎn)加法器 單元進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn)加法器單元的數(shù)據(jù)設(shè)立標(biāo)志位,標(biāo)示對于當(dāng)前 數(shù)據(jù)對進(jìn)行加法操作所屬的浮點(diǎn)累加運(yùn)算級數(shù);其中,對不同來源的數(shù)據(jù)設(shè)立不同的優(yōu)先 級,為將原始數(shù)據(jù)設(shè)為最高優(yōu)先級,對于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果數(shù)據(jù),其對應(yīng)的浮 點(diǎn)累加運(yùn)算級數(shù)越高,其優(yōu)先級越高;輸出控制單元,用于根據(jù)所述的浮點(diǎn)加法器單元同步延遲輸出的標(biāo)志位,確定浮點(diǎn)加 法器單元當(dāng)前輸出的數(shù)據(jù)所屬的浮點(diǎn)累加運(yùn)算級數(shù),判斷所述的浮點(diǎn)加法器單元輸出的當(dāng) 前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最終結(jié)果,將中間結(jié)果存入相應(yīng)浮點(diǎn)累加運(yùn)算級數(shù) 的中間結(jié)果緩沖器單元;將最終結(jié)果輸出。
2.如權(quán)利要求1所述的基于FPGA的高速低延遲浮點(diǎn)累加器,其特征在于,所述的浮點(diǎn) 加法器單元使用FPGA內(nèi)部邏輯資源或可配置的DSP模塊實(shí)現(xiàn)。
3.如權(quán)利要求1或2所述的基于FPGA的高速低延遲浮點(diǎn)累加器,其特征在于,所述的 浮點(diǎn)加法器單元采用多級流水線的方式實(shí)現(xiàn)。
4.如權(quán)利要求1所述的基于FPGA的高速低延遲浮點(diǎn)累加器,其特征在于,所述的中間 結(jié)果緩沖器單元利用FPGA內(nèi)部fifo實(shí)現(xiàn)。
5.如權(quán)利要求1或4所述的基于FPGA的高速低延遲浮點(diǎn)累加器,其特征在于,所述的 中間結(jié)果緩沖器單元的大小和類型由各級浮點(diǎn)累加運(yùn)算得到的中間結(jié)果數(shù)據(jù)量確定。
6.一種基于FPGA的高速低延遲浮點(diǎn)累加的實(shí)現(xiàn)方法,其特征在于,包括(1)原始浮點(diǎn)數(shù)據(jù)輸入步驟每個時(shí)鐘周期從前級計(jì)算或處理模塊輸入一個原始浮點(diǎn) 數(shù)據(jù)到浮點(diǎn)加法器單元,所述原始浮點(diǎn)數(shù)據(jù)以M = 2n+1個數(shù)據(jù)為一組被累加,各組原始浮點(diǎn) 數(shù)據(jù)被連續(xù)輸入;N為累加級數(shù);(2)輸入控制步驟輸入控制單元接收原始浮點(diǎn)數(shù)據(jù)和各級浮點(diǎn)累加運(yùn)算的中間結(jié)果 浮點(diǎn)數(shù)據(jù),并對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立不同的優(yōu)先級,按照優(yōu)先級高低將相同優(yōu)先級的 成對浮點(diǎn)數(shù)據(jù)輸入到浮點(diǎn)加法器單元進(jìn)行加法操作,同時(shí)給每對輸入到浮點(diǎn)加法器單元的 浮點(diǎn)數(shù)據(jù)設(shè)立標(biāo)志位,標(biāo)示對于當(dāng)前浮點(diǎn)數(shù)據(jù)對進(jìn)行加法操作所屬的浮點(diǎn)累加運(yùn)算級數(shù); 其中,對不同來源的浮點(diǎn)數(shù)據(jù)設(shè)立不同的優(yōu)先級,為將原始浮點(diǎn)數(shù)據(jù)設(shè)為最高優(yōu)先級,對 于各級浮點(diǎn)累加運(yùn)算的中間結(jié)果浮點(diǎn)數(shù)據(jù),其對應(yīng)的浮點(diǎn)累加運(yùn)算級數(shù)越高,其優(yōu)先級越 尚;(3)浮點(diǎn)累加運(yùn)算步驟,浮點(diǎn)加法器單元對每個時(shí)鐘周期輸入的成對浮點(diǎn)數(shù)據(jù)進(jìn)行加 法計(jì)算,同時(shí)也對輸入控制單元設(shè)立的與該對浮點(diǎn)數(shù)據(jù)對應(yīng)的標(biāo)志位進(jìn)行同步延遲;(4)輸出控制步驟,根據(jù)所述的浮點(diǎn)加法器單元同步延遲輸出的標(biāo)志位,輸出控制單元 確定浮點(diǎn)加法器單元輸出的當(dāng)前加法操作的計(jì)算結(jié)果所屬的浮點(diǎn)累加運(yùn)算級數(shù),從而判斷所述的浮點(diǎn)加法器單元輸出的當(dāng)前加法操作的計(jì)算結(jié)果是中間結(jié)果還是最終結(jié)果,將中間 結(jié)果存入相應(yīng)浮點(diǎn)累加運(yùn)算級數(shù)的中間結(jié)果緩沖器單元;將最終結(jié)果輸出。
7.如權(quán)利要求6所述的實(shí)現(xiàn)方法,其特征在于,所述的浮點(diǎn)加法器單元使用FPGA內(nèi)部 邏輯資源或可配置的DSP模塊實(shí)現(xiàn)。
8.如權(quán)利要求6或7所述的實(shí)現(xiàn)方法,其特征在于,所述的浮點(diǎn)加法器單元采用多級流 水線的方式實(shí)現(xiàn)。
9.如權(quán)利要求6所述的實(shí)現(xiàn)方法,其特征在于,所述的中間結(jié)果緩沖器單元利用FPGA 內(nèi)部fifo實(shí)現(xiàn)。
10.如權(quán)利要求6或9所述的實(shí)現(xiàn)方法,其特征在于,所述的中間結(jié)果緩沖器單元的大 小和類型由各級浮點(diǎn)累加運(yùn)算得到的中間結(jié)果數(shù)據(jù)量確定。
全文摘要
本發(fā)明公開了一種基于FPGA的高速低延遲浮點(diǎn)累加器及其實(shí)現(xiàn)方法。本發(fā)明的浮點(diǎn)累加器包括一個浮點(diǎn)加法器單元、N個中間結(jié)果緩沖器、輸入控制單元和輸出控制單元。本發(fā)明的浮點(diǎn)累加實(shí)現(xiàn)方法對整個累加計(jì)算過程進(jìn)行分級,不同級數(shù)的累加計(jì)算過程交叉進(jìn)行,不同級數(shù)的累加計(jì)算中間結(jié)果分級存儲;同時(shí),完全采用流水線方式工作,大大提高內(nèi)部浮點(diǎn)加法器利用效率,浮點(diǎn)累加計(jì)算最終結(jié)果的輸出具有較低的延遲。本發(fā)明通過對內(nèi)部浮點(diǎn)加法器單元輸入數(shù)據(jù)的動態(tài)分配,提高浮點(diǎn)加法器的利用效率,從而能夠在所需邏輯或DSP資源消耗不大的同時(shí),保證較高的運(yùn)算速度和較低的延遲。
文檔編號G06F7/57GK102033732SQ20101059492
公開日2011年4月27日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者周凡, 袁龍濤, 陳耀武 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
长春市| 泰宁县| 阿拉善盟| 正阳县| 黑山县| 宿迁市| 济阳县| 呼伦贝尔市| 葫芦岛市| 宜丰县| 西安市| 兴隆县| 公主岭市| 洞头县| 新泰市| 建宁县| 无为县| 东兰县| 汉寿县| 贺州市| 柳江县| 鹿邑县| 将乐县| 台东市| 博爱县| 孝昌县| 乐平市| 乌兰浩特市| 丰台区| 镇康县| 宣恩县| 库伦旗| 城固县| 当阳市| 永年县| 太白县| 盐城市| 班戈县| 抚顺市| 仁化县| 岫岩|