流水線技術在高速數位電路設計中的應用

2021-04-21 19:22:20 字數 4057 閱讀 8093

流水線技術在高速數位電路設計中的應用

譚欣 摘要:流水線技術是設計高速數位電路的一種最佳選擇之一,對其實現原理作了較形象的闡述。針對加法器在dsp中的重要作用,對流水線加法器中流水線技術的應用作了較深入的說明。同時,對流水線技術中引入暫存器事項也作了較全面的闡述。

1  前言

數字訊號處理技術(dsp)在許多領域都得到廣泛的應用,在數位電路設計時,設計者都希望設計出具有理想速度的電路系統。目前,並行技術、流水線技術等都是很好的備選方案。對於組合邏輯電路佔主要成分的電路中,流水線技術是首先考慮的技術。

現在,現場可程式設計門陣列fpga的整合度已達到很高的程度,且設計靈活,可在實驗室裡進行,並具有豐富的暫存器,適合設計人員使用流水線技術來進行設計以提高數位電路的整體執行速度。

2  流水線技術的作用原理

流水線技術就是把在乙個時鐘週期內執行的操作分成幾步較小的操作,並在多個較高速的時鐘內完成。如圖1、2所示,對圖1中的兩個暫存器間的資料通路,在圖2中將其分成了3級,並在其間插入了兩個暫存器,這就是流水線技術的使用。

圖1常規的資料通路

圖2採用流水線技術資料通路

對圖1中的資料通路,設tpd≈x,則該電路(不考慮暫存器的影響)從輸入到輸出的最高時鐘頻率就為1/x。而在圖z中,假設在理想情況下所分成的3級,每級的tpd≈x/3,則該電路從輸入到輸出的最高頻率可提高到原來的3倍,採用流水線技術有效地提高了系統的時鐘頻率,因而在多個時鐘週期連續工作情況下,就提高了整個系統的資料處理量。當然,這不包括電路中所加入的暫存器時延,因此每級的實際延遲應比x/3稍大。但在多個時鐘週期連續工作情況下,可忽略不計,所以流水線技術能提高系統的資料流量。

3 流水線技術的設計應用

加法運算是最基本的數字訊號處理(dsp)運算,減法、乘法、除法或fft運算都可分解為加法運算。因此進行加法運算的加法器就成為實現dsp的最基本器件,因而研究如何提高其執行速度很有必要。

流水線技術在提高系統整體執行速率方面績效顯著,因而採用流水線技術的流水線加法器就成為繼串聯加法器、並行加法器之後在選擇加法器時的首選。當然並行加法器也可使用流水線技術(即並行流水線加法器)來進一步提高加法器的運算速度。

下面就以乙個4位流水線加法器的實現為例來說明流水線技術的應用,並以此說明流水線技術在高位加法器的應用。

3.1應用示例

在沒有採用流水線技術時由二位加法器串聯組成的4位加法器原理圖,如圖3所示(這是在沒有加入暫存器情況下的二進位制並行進製4位加法器構成原理圖)。採用流水線技術時由二位加法器組成的4位加法器原理圖如圖4所示。圖4是在圖3中加入了一級流水線,將低位和(運算結果)用乙個2位暫存器暫存,為了保證低位的進製與高4位同步進入高位加法器,因而將高4位用乙個4位的暫存器暫存。這就實現了乙個4位並行流水線加法器。對於8位並行流水線加法器同樣可在低位加法器輸出時採用暫存器暫存,並將高位輸入加數用暫存器暫存。如果8位加法器是由4位加法器所構成,則至少可加入兩級流水線,而更高位的流水線加法器的實現與這類同,並且其他數位電路在實現流水線技術也基本如此,可作類似推廣。

圖3由2位加法器構成的4位加法器

圖4由2位加法器構成的4位流水線並行加法器

3.2用vhdl實現

沒有加入流水線的4位加法器或8位以至更高位的加法器,在用vhdl作硬體語言描述時,在任何一本有關vhdl的書中都有例項,特別是4位加法器。而如前所述,流水線技術其實質就是在適當的地方加入暫存器,將前面的運算結果或輸入資料暫存,並在下乙個時鐘到來時將寄存值作為後一級運算的輸入,因此在用vhdl描述時只需將書上描述加法器的**作適當改寫,施加必要的設計約束,就可達到目的。一般就是加入wait語句或if-then語句來測試敏感訊號邊沿,實現暫存器或鎖存器。如對wait語句,常用的描述形式為:wait until clk'event and clk='1'(上公升沿觸發)或wait until clk'event and clk='0'(下降沿觸發)。對if-then語句的常用描述方式為:if(clk'event and clk='1')then…或if(clk'event and clk='0') then…。

另外就是一般是在程序中使用,來達到實現暫存器或鎖存器,可描述為

process

begin

wait until clk'event and clk='1';

reg<=x;

end process;

其中的x是指輸入所加流水線暫存器reg中的資料。  if-then語句與之類似。

3.3 fpga中的實現

fpga中一般有較豐富的暫存器資源,因此可用於實現流水線技術。fpga的主要廠家有altera、xilinx等,這兩家都各自針對自己的產品開發了相應的開發工具,altera的max+plus ii易學,易用,並易獲得,且是乙個全整合化的可程式設計設計環境,因而對fpga初學者是最適宜的開發工具。因此就運用altera的開發工具max+plus ii實現流水線技術的問題作一說明。

(1)如果設計是用原理圖輸入,則應充分利用凡帶有lpm_pipeline的lpm(library of parameterized module)。當使用了帶有lpm_pipeline的lpm函式,max+plus ii編譯器會給出lpm_pipeline的最佳數值(即最佳流水線級數),從而可以由此設定lpm_pipeline的最佳值。在max+plus ii 10.1中,一共所提供了41種lpm函式,其中lpm_compare、lpm_divide、lpm_add_sub、lpm_decode、lpm_mult、lpm_mux和lpm_parallel_add共7種都帶有lpm_pipeline設定項,包括並行加法器巨集函式lpm_parallei_add,可根據提示的最佳值來設定。

(2)如果設計是用vhdl作設計輸入,那麼在程式的適當地方新增暫存器或鎖存器描述語句,則在綜合時就能夠實現流水線技術。另外,在用vhdl作設計輸入時也可以利用altera所提供的lpm函式,但必須在設計實體前使用lpm庫語句及相應的use語句,即在一般庫使用語句最前面加入:labrary lpm;use lpm.lpm_components.all。

4  應用要點

下面主要針對用vhdl程式設計,在引入暫存器或鎖存器實現流水線技術的注意事項:

(1)乙個程序中只能引入乙個暫存器。

(2)用於產生暫存器的賦值語句絕不能放在else條件分支語句上。因為沒有這樣的硬體電路與之對應。

(3)如果乙個變數已在if邊沿檢測語句中被賦了值,那麼它的值就不能再賦給別的變數了。

如:if(clk'event and clk='1')then edge_var:=x; a_val:=edge_var;end if;

(4)邊沿表示式不能當作運算元。

如:if not(clk'event and clk='1') then…

(5)條件語句中,由於條件涵蓋的不完整,綜合器將引入多餘的鎖存器。因此一定要考慮到條件所涵蓋的整個範圍。一般的處理辦法是加上else語句來補全條件。

(6)在子程式中引入的變數不可能引出暫存器。因為在子程式中,變數具有區域性性。每當子程式被呼叫時,其中的變數都要被初始化,其值不能保持到下乙個時鐘到來時。因此不能考慮從子程式中引出暫存器。

(7)暫存器不是引入的越多越好,要綜合考慮所實現的器件的速度與所耗硬體資源量。如果硬體資源足夠且速度又是主要考慮的因素,則可適當多引入暫存器,從而提高時鐘速率達到提高資料處理量。

5  結束語

本文介紹流水線技術的原理和特點,並通過流水線加法器的實現來說明流水線技術在高速數位電路設計中的應用。最後對用暫存器實現流水線技術的應用要點作了較全面的說明。

參考文獻:

[1]潘松,王國棟.vhdl實用教程[m].成都:電子科技大學出版社,2000.

[2]朱明程.xilinx數字系統現場整合技術[m].南京:東南大學出版社,2001.

[3]趙雅興.fpga原理、設計與應用[m].天津:天津大學出版社,1999.

[4]周政海,鄧先燦.流水線技術在實現高速dsp運算中的應用[j].杭州電子工業學院學報,2002,23(4):5-8.

[5]謝鍩.fpga在數字訊號處理中的應用[j].無線通訊技術,2001,27(5):56—57.

[6]尹廷輝.借助eda邏輯綜合工具實現16位快速加法器[j].軍事通訊技術,2002,23(2):48—50。

[7]宋萬傑,羅  豐,吳順君.cpld技術及其應用[m].西安:西安電子科技大學出版社,2000.

[8]戴泰初,闕沛文.基於fpga的數字邏輯器件開發及優化設計[j].微電子學,2002,23(5):397—400.

流水線技術理解

流水線,這個詞語最早出於工廠裡面,是資本家為了提高產品的產量而採用的一種技術。我們姑且不去看他的定義,我們從生活中的例子理解什麼是流水線技術 假如我們有很多衣服要洗,現在有一台洗衣機和一台乾衣機,洗衣機用時30分鐘,乾衣機用時60分鐘。如果洗一桶衣服,如下圖所示 很顯然,總時間 洗衣時間 乾衣時間 ...

ARM ARM流水線技術

處理器按照一系列步驟來執行每一條指令,典型的步驟如下 1 從儲存器讀取指令 fetch 2 解碼以鑑別它屬於哪一條指令 decode 3 從指令中提取指令的運算元 這些運算元往往存在於暫存器 reg 中 4 將運算元進行組合以得到結果或儲存器位址 alu 5 如果需要,則訪問儲存器以儲存資料 mem...

數電基礎 流水線

流水線設計將原來乙個時鐘週期完成的較大的組合邏輯,通過切割後分由多個時鐘完成,形式上,在切割處安排乙個暫存器。例如乙個組合邏輯由a0,a1,a2四個部分組成,每一部分延遲都是1ns,在流水線形式之前總共延遲3ns,暫存器建立時間1ns,那 時鐘週期最小tclk1 tsetup tpd critica...