<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 流水線(xiàn)技術(shù)在基于FPGA的DSP運算中的應用

流水線(xiàn)技術(shù)在基于FPGA的DSP運算中的應用

作者: 時(shí)間:2009-09-01 來(lái)源:網(wǎng)絡(luò ) 收藏

  在數字信號處理()領(lǐng)域,需要處理的數據量很大,并且實(shí)時(shí)性要求很高。傳統的設計方法主要有采用固定功能的器件和采用DSP處理器兩種,由于它們靈活性差以及軟件算法在執行時(shí)的順序性,限制了它們在高速和實(shí)時(shí)系統中的應用。隨著(zhù)深亞微米半導體制造工藝的不斷創(chuàng )新,百萬(wàn)門(mén)可編程器件的不斷推出,為DSP提供了第3種有效的解決方案,即利用實(shí)現DSP硬件化。它能夠在集成度、速度和系統功能方面滿(mǎn)足DSP應用的需要。

  然而在應用進(jìn)行系統設計綜合過(guò)程中,選擇芯片的運行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,對速度指標要求高的設計優(yōu)化常常要占用較大的芯片資源,而減小芯片面積的設計又需要以降低系統速度為代價(jià)。從發(fā)展趨勢和DSP要求看,系統速度指標的意義比面積指標更趨重要,需要我們進(jìn)一步深入研究提高芯片的最高工作速度的設計策略。本文討論在基于FPGA的DSP系統設計中采用,充分利用硬件內部的并行性,在FPGA有限資源芯片面積上提高單位時(shí)間里的數據處理能力即數據吞吐率(throughput),提高系統的工作速度的具體做法。

  0 基本原理和FPGA結構特征

  流水線(xiàn)是一種在時(shí)間上串行,在空間上并行的技術(shù),其基本原理如圖1所示。將整個(gè)電路劃分為若干個(gè)流水線(xiàn)級,流水線(xiàn)每級之間設置寄存器鎖存上一級輸出的數據;每一級只完成數據處理的一部分;一個(gè)時(shí)鐘周期完成一級數據處理,然后在下一個(gè)時(shí)鐘到來(lái)時(shí)將處理后的數據傳遞給下一級;第一組數據進(jìn)入流水線(xiàn)后,經(jīng)過(guò)一個(gè)時(shí)鐘周期傳到第二級,同時(shí)第二組數據進(jìn)入第一級,數據隊列依次前進(jìn)。每組數據都要經(jīng)過(guò)所有的流水級后才能得到最后的計算結果,但是對整個(gè)流水線(xiàn)而言,每個(gè)時(shí)鐘都能計算出一組結果,所以平均計算一組數據只需要一個(gè)時(shí)鐘周期的時(shí)間,這樣就大大提高了數據處理速度,電路在單位時(shí)間內處理的數據量就愈大,即電路的吞吐量就越大,保證整個(gè)系統以較高的頻率工作。

  FPGA的結構特點(diǎn)很適合采用流水線(xiàn)設計,以Altera低成本系列Cyclone II為例,不僅有最多達68416個(gè)邏輯單元(LE),而且提供嵌入式存儲資源支持各種存儲應用和低成本DSP應用(如乘法器模塊、PLL)。每個(gè)LE均含有一個(gè)四輸入查找表LUT、一個(gè)可編程觸發(fā)器等。一般設計中,這個(gè)觸發(fā)器或者沒(méi)有用到,或者用來(lái)存儲布線(xiàn)資源。設計中可將一個(gè)算術(shù)操作分解成一些小規模的基本操作配置到LUT中,將進(jìn)位和中間值存儲在寄存器中,在下一個(gè)時(shí)鐘內繼續。因此,在FPGA中采用,只需要極少或者根本不需要額外的資源成本。特別是在需要進(jìn)行大批量重復運算的場(chǎng)合,如數字信號處理中的卷積操作、FFT或FIR濾波器設計,采用流水線(xiàn)技術(shù),可以大大提高系統運行速度。

  1 FPGA中基本DSP運算的流水線(xiàn)設計與性能分析

  加法器和乘法器是DSP中最基本的運算部件。在Quartus軟件平臺上設計加法器或乘法器可以采用原理圖法和VHDL語(yǔ)言?xún)煞N基本方法??紤]到參數可設置宏模塊(Library of Parameterrized Modtlles-LPM)經(jīng)過(guò)嚴格測試和優(yōu)化,可以發(fā)揮最佳性能,所以,我們采用原理圖設計方式,通過(guò)MegaWizard P1ug-In Manager工具引入1pm add sub和1pm mult兩種可設置流水線(xiàn)的LPM模塊,實(shí)現了不同位寬、不同流水線(xiàn)級數的加法器和乘法器設計,并選用CycloneII系列EP2C5Q208C7器件進(jìn)行了綜合、布局布線(xiàn)、時(shí)序分析和仿真設計,以比較其性能的變化特征。

  1.1 不同流水線(xiàn)級數的運算器性能比較

  對16位加法器和8位乘法器分別選用不同的流水線(xiàn)級數進(jìn)行設計,比較結果如表1、2所示。

  由比較結果可見(jiàn):

  (1)采用流水線(xiàn)技術(shù)普遍比不用流水線(xiàn)工作速度顯著(zhù)提高,體現流水線(xiàn)技術(shù)在高速DSP運算上的優(yōu)勢。

  (2)采用流水線(xiàn)技術(shù)在資源耗用(邏輯單元與寄存器個(gè)數、存儲器位數)上有所增加。

  (3)采用不同的流水線(xiàn)級數在速度指標和資源耗用率上有所不同,流水線(xiàn)級數增加,速度指標不一定增加,但資源耗用大大增加,所以應注意速度和資源耗用指標的權衡。如對16位加法器,如不用M4K(專(zhuān)用存儲器資源),以采用2級流水線(xiàn)最佳;如選用M4K,則取6級流水最佳。8位乘法器則以2級或6級流水最佳。對于其他DSP運算,在設計時(shí)必須通過(guò)反復比較、設計,選擇符合系統性能要求的流水線(xiàn)級數。

  1.2 不同位寬運算器相同流水線(xiàn)級數的性能比較

  對采用6級流水的加法器和乘法器的數據位寬加以改變,通過(guò)綜合仿真,分析其性能指標的變化,見(jiàn)表3。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>