1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

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

      更新時間: 2007-09-04 17:30:00來源: 粵嵌教育瀏覽量:872

        摘要:流水線技術是設計高速數字電路的一種選擇之一,對其實現原理作了較形象的闡述。針對加法器在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.

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 久久精品女人天堂 | 伊人精品一区二区三区四区五区 | 中文字幕一区二区吉泽明步 | 亚洲高清一线视频在线播放 | 婷婷丁香五月中文字幕 | 亚洲午夜一区二区 |