流水线技术在高速数字电路设计中的应用
摘要:流水線技術(shù)是設(shè)計高速數(shù)字電路的一種最佳選擇之一,對其實現(xiàn)原理作了較形象的闡述。針對加法器在DSP中的重要作用,對流水線加法器中流水線技術(shù)的應(yīng)用作了較深入的說明。同時,對流水線技術(shù)中引入寄存器事項也作了較全面的闡述。
1? 前言
???
數(shù)字信號處理技術(shù)(DSP)在許多領(lǐng)域都得到廣泛的應(yīng)用,在數(shù)字電路設(shè)計時,設(shè)計者都希望設(shè)計出具有理想速度的電路系統(tǒng)。目前,并行技術(shù)、流水線技術(shù)等都是很好的備選方案。對于組合邏輯電路占主要成分的電路中,流水線技術(shù)是首先考慮的技術(shù)。
???
現(xiàn)在,現(xiàn)場可編程門陣列FPGA的集成度已達(dá)到很高的程度,且設(shè)計靈活,可在實驗室里進(jìn)行,并具有豐富的寄存器,適合設(shè)計人員使用流水線技術(shù)來進(jìn)行設(shè)計以提高數(shù)字電路的整體運行速度。
2? 流水線技術(shù)的作用原理
???
流水線技術(shù)就是把在一個時鐘周期內(nèi)執(zhí)行的操作分成幾步較小的操作,并在多個較高速的時鐘內(nèi)完成。如圖1、2所示,對圖1中的兩個寄存器間的數(shù)據(jù)通路,在圖2中將其分成了3級,并在其間插入了兩個寄存器,這就是流水線技術(shù)的使用。
?
圖1常規(guī)的數(shù)據(jù)通路
?
圖2采用流水線技術(shù)數(shù)據(jù)通路
對圖1中的數(shù)據(jù)通路,設(shè)tpd≈x,則該電路(不考慮寄存器的影響)從輸入到輸出的最高時鐘頻率就為1/x。而在圖z中,假設(shè)在理想情況下所分成的3級,每級的tpd≈x/3,則該電路從輸入到輸出的最高頻率可提高到原來的3倍,采用流水線技術(shù)有效地提高了系統(tǒng)的時鐘頻率,因而在多個時鐘周期連續(xù)工作情況下,就提高了整個系統(tǒng)的數(shù)據(jù)處理量。當(dāng)然,這不包括電路中所加入的寄存器時延,因此每級的實際延遲應(yīng)比x/3稍大。但在多個時鐘周期連續(xù)工作情況下,可忽略不計,所以流水線技術(shù)能提高系統(tǒng)的數(shù)據(jù)流量。
3 流水線技術(shù)的設(shè)計應(yīng)用
???
加法運算是最基本的數(shù)字信號處理(DSP)運算,減法、乘法、除法或FFT運算都可分解為加法運算。因此進(jìn)行加法運算的加法器就成為實現(xiàn)DSP的最基本器件,因而研究如何提高其運行速度很有必要。
???
流水線技術(shù)在提高系統(tǒng)整體運行速率方面績效顯著,因而采用流水線技術(shù)的流水線加法器就成為繼串聯(lián)加法器、并行加法器之后在選擇加法器時的首選。當(dāng)然并行加法器也可使用流水線技術(shù)(即并行流水線加法器)來進(jìn)一步提高加法器的運算速度。
???
下面就以一個4位流水線加法器的實現(xiàn)為例來說明流水線技術(shù)的應(yīng)用,并以此說明流水線技術(shù)在高位加法器的應(yīng)用。
3.1應(yīng)用示例
???
在沒有采用流水線技術(shù)時由二位加法器串聯(lián)組成的4位加法器原理圖,如圖3所示(這是在沒有加入寄存器情況下的二進(jìn)制并行進(jìn)位4位加法器構(gòu)成原理圖)。采用流水線技術(shù)時由二位加法器組成的4位加法器原理圖如圖4所示。圖4是在圖3中加入了一級流水線,將低位和(運算結(jié)果)用一個2位寄存器暫存,為了保證低位的進(jìn)位與高4位同步進(jìn)入高位加法器,因而將高4位用一個4位的寄存器暫存。這就實現(xiàn)了一個4位并行流水線加法器。對于8位并行流水線加法器同樣可在低位加法器輸出時采用寄存器暫存,并將高位輸入加數(shù)用寄存器暫存。如果8位加法器是由4位加法器所構(gòu)成,則至少可加入兩級流水線,而更高位的流水線加法器的實現(xiàn)與這類同,并且其他數(shù)字電路在實現(xiàn)流水線技術(shù)也基本如此,可作類似推廣。
?
圖3由2位加法器構(gòu)成的4位加法器
圖4由2位加法器構(gòu)成的4位流水線并行加法器
3.2用VHDL實現(xiàn)
???
沒有加入流水線的4位加法器或8位以至更高位的加法器,在用VHDL作硬件語言描述時,在任何一本有關(guān)VHDL的書中都有實例,特別是4位加法器。而如前所述,流水線技術(shù)其實質(zhì)就是在適當(dāng)?shù)牡胤郊尤爰拇嫫?#xff0c;將前面的運算結(jié)果或輸入數(shù)據(jù)暫存,并在下一個時鐘到來時將寄存值作為后一級運算的輸入,因此在用VHDL描述時只需將書上描述加法器的代碼作適當(dāng)改寫,施加必要的設(shè)計約束,就可達(dá)到目的。一般就是加入Wait語句或IF-THEN語句來測試敏感信號邊沿,實現(xiàn)寄存器或鎖存器。如對Wait語句,常用的描述形式為:wait until clk'event and clk='1'(上升沿觸發(fā))或wait until clk'event and clk='0'(下降沿觸發(fā))。對IF-THEN語句的常用描述方式為:IF(clk'event and clk='1')THEN…或IF(clk'event and clk='0') THEN…。
另外就是一般是在進(jìn)程中使用,來達(dá)到實現(xiàn)寄存器或鎖存器,可描述為
process
begin
wait until clk'event and clk='1';
reg<=X;
end process;
其中的X是指輸入所加流水線寄存器REG中的數(shù)據(jù)。? IF-THEN語句與之類似。
3.3 FPGA中的實現(xiàn)
???
FPGA中一般有較豐富的寄存器資源,因此可用于實現(xiàn)流水線技術(shù)。FPGA的主要廠家有Altera、Xilinx等,這兩家都各自針對自己的產(chǎn)品開發(fā)了相應(yīng)的開發(fā)工具,Altera的MAX+PLUS II易學(xué),易用,并易獲得,且是一個全集成化的可編程設(shè)計環(huán)境,因而對FPGA初學(xué)者是最適宜的開發(fā)工具。因此就運用Altera的開發(fā)工具M(jìn)AX+PLUS II實現(xiàn)流水線技術(shù)的問題作一說明。
(1)如果設(shè)計是用原理圖輸入,則應(yīng)充分利用凡帶有LPM_PIPELINE的LPM(Library of Parameterized Module)。當(dāng)使用了帶有LPM_PIPELINE的LPM函數(shù),MAX+PLUS II編譯器會給出LPM_PIPELINE的最佳數(shù)值(即最佳流水線級數(shù)),從而可以由此設(shè)定LPM_PIPELINE的最佳值。在MAX+PLUS II 10.1中,一共所提供了41種LPM函數(shù),其中LPM_COMPARE、LPM_DIVIDE、LPM_ADD_SUB、LPM_DECODE、LPM_MULT、LPM_MUX和LPM_PARALLEL_ADD共7種都帶有LPM_PIPELINe設(shè)定項,包括并行加法器宏函數(shù)LPM_PARALLEI_ADD,可根據(jù)提示的最佳值來設(shè)定。
???
(2)如果設(shè)計是用VHDL作設(shè)計輸入,那么在程序的適當(dāng)?shù)胤教砑蛹拇嫫骰蜴i存器描述語句,則在綜合時就能夠?qū)崿F(xiàn)流水線技術(shù)。另外,在用VHDL作設(shè)計輸入時也可以利用Altera所提供的LPM函數(shù),但必須在設(shè)計實體前使用LPM庫語句及相應(yīng)的USE語句,即在一般庫使用語句最前面加入:LABRARY lpm;USE lpm.lpm_components.ALL。
4? 應(yīng)用要點
???
下面主要針對用VHDL編程,在引入寄存器或鎖存器實現(xiàn)流水線技術(shù)的注意事項:
???
(1)一個進(jìn)程中只能引入一個寄存器。
(2)用于產(chǎn)生寄存器的賦值語句絕不能放在ELSE條件分支語句上。因為沒有這樣的硬件電路與之對應(yīng)。
(3)如果一個變量已在IF邊沿檢測語句中被賦了值,那么它的值就不能再賦給別的變量了。
如:IF(clk'event and clk='1')THEN edge_var:=x; a_val:=edge_var;END IF;
(4)邊沿表達(dá)式不能當(dāng)作操作數(shù)。
如:IF NOT(clk'event and clk='1') THEN…
(5)條件語句中,由于條件涵蓋的不完整,綜合器將引入多余的鎖存器。因此一定要考慮到條件所涵蓋的整個范圍。一般的處理辦法是加上ELSE語句來補全條件。
(6)在子程序中引入的變量不可能引出寄存器。因為在子程序中,變量具有局部性。每當(dāng)子程序被調(diào)用時,其中的變量都要被初始化,其值不能保持到下一個時鐘到來時。因此不能考慮從子程序中引出寄存器。
(7)寄存器不是引入的越多越好,要綜合考慮所實現(xiàn)的器件的速度與所耗硬件資源量。如果硬件資源足夠且速度又是主要考慮的因素,則可適當(dāng)多引入寄存器,從而提高時鐘速率達(dá)到提高數(shù)據(jù)處理量。
5? 結(jié)束語
???
本文介紹流水線技術(shù)的原理和特點,并通過流水線加法器的實現(xiàn)來說明流水線技術(shù)在高速數(shù)字電路設(shè)計中的應(yīng)用。最后對用寄存器實現(xiàn)流水線技術(shù)的應(yīng)用要點作了較全面的說明。
參考文獻(xiàn):
[1]潘松,王國棟.VHDL實用教程[M].成都:電子科技大學(xué)出版社,2000.
[2]朱明程.XILINX數(shù)字系統(tǒng)現(xiàn)場集成技術(shù)[M].南京:東南大學(xué)出版社,2001.
[3]趙雅興.FPGA原理、設(shè)計與應(yīng)用[M].天津:天津大學(xué)出版社,1999.
[4]周政海,鄧先燦.流水線技術(shù)在實現(xiàn)高速DSP運算中的應(yīng)用[J].杭州電子工業(yè)學(xué)院學(xué)報,2002,23(4):5-8.
[5]謝锘.FPGA在數(shù)字信號處理中的應(yīng)用[J].無線通信技術(shù),2001,27(5):56—57.
[6]尹廷輝.借助EDA邏輯綜合工具實現(xiàn)16位快速加法器[J].軍事通信技術(shù),2002,23(2):48—50。
[7]宋萬杰,羅? 豐,吳順君.CPLD技術(shù)及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2000.
[8]戴泰初,闕沛文.基于FPGA的數(shù)字邏輯器件開發(fā)及優(yōu)化設(shè)計[J].微電子學(xué),2002,23(5):397—400.
總結(jié)
以上是生活随笔為你收集整理的流水线技术在高速数字电路设计中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你我贷一般几点到账
- 下一篇: 哪些借贷平台利息低,比较容易借