高速數字串列加法器及其應用

admin @ 2014-03-26 , reply:0

摘要:與傳統加法器相比,數字串列加法器具有工作頻率高、佔用資源少、設計靈活等優點。介紹了數字串列加法器的原理,說明了該加法器在FPGA上的實現要點及其在匹配濾波器設計中的應用。
  
         與傳統DSP相比,定製DSP具有速度更高、設計靈活、易於更改等優點,常常應用於設計方案和關鍵演算法的驗證。

  在DSP運算中,加法是最常用的。常見的加法器是位并行的(Bit-parallel),在一個時鐘周期內完成加法運算。其速度較高,佔用的資源較多。但是,在很多應用中,並不需要這麼高的速度,而且希望減小資源消耗。這時可以採用數字串列(Digit-serial)加法器,利用多個時鐘周期完成一個完整的加法運算,從而使佔用的資源大幅度減少。為了使數字串列加法器具有更廣泛的應用範圍,設計的關鍵是要使電路達到儘可能高的工作頻率,以取得高的數據吞吐量 (Throughput),從而滿足系統其它部分的速度要求。

  1 數字串列加法器

    在數字串列加法器中,字長為W的操作數被分為P個位寬為N(N能被W整除,P=W/N)的數字,然後從低位開始相加,在P個時鐘內完成加法操作。P個時鐘周期稱為一個採樣周期(Sample Period)。
圖1 N=2的數字串列加法器

   
   

    N=2的數字串列加法器結構如圖1所示。如果輸入操作數的字長為8,那麼串列加法器可以在4個時鐘周期內完成加法運算。這個加法器只用了兩個全加器的資源,比一般的8bit行波進位加法器小。

    數字串列加法器的控制也比較簡單,輸入移位寄存器完成并行-串列轉換功能,通過移位操作不斷為加法器提供位寬為N的操作數;Control信號指示了新採樣周期的開始,此時carry清零;輸出移位寄存器完成串列-并行轉換,輸出計算結果。

    對於特定的輸入字長,通過選擇不同的N,可以實現速度、面積不同的數字串列加法器。這樣,設計者可以根據實際情況加以選擇,提高了設計的靈活性。


  2 高速數字串列加法器在FPGA上的實現

   由於數字串列加法器要用P個時鐘周期才能完成整個加法操作,因此其工作頻率必須足夠高。這樣,在FPGA上實現時,如何使串列加法器具有盡量高的工作頻率就將成為關鍵問題。下面以Xilinx公司的VirtexE系列FPGA為例,說明如何設計高速數字串列加法器。
圖2 2bit全加器連接示意圖


    VirtexE的一個CLB(Configurable Logic Block)包含兩個slice,圖2為在一個slice上實現2bit全加器的連接示意圖(不相關的邏輯已略去)。

    數字串列加法器的結構是行波進位加法器,因此必須盡量減小進位邏輯上的延遲。VirtexE的slice中提供了專用的進位邏輯和布線,充分利用這些資源可以提高加法器的性能。

   對VirtexE系列,數字串列加法器應選用奇數位寬,這是因為在VirtexE中一個slice包括兩個LUT(查找表)、兩個觸發器和一些其它的組合邏輯,因此使用一個slice剛好可以實現一個1bit的全加器,使用兩個slice可以實現一個3bit的全加器。如果要實現2bit的全加,則需要一個slice完成2bit的相加和保存,另外還需要一個slice中的一個寄存器用來存儲進位,這樣兩個slice整體的利用率就降低很多。數據位寬為 2、4、6、8等偶數時都存在這樣的問題。圖3為N=3時加法器的布局布線示意圖。由於專用的進位鏈布線資源僅存在於縱向的兩個slice之間,所以在實現3bit加法器時,使用縱向相鄰的兩個slice。
圖3 N=3時數字串列加法器布局布線圖


    加法器的關鍵路徑在進位鏈上,其延時為:

   

    式中,TCKO為DFF的CLK到XQ/YQ的延時,TBXCY為BX到COUT的延時,TCKCY為CIN到DFF的建立時間。這些延時的數值可以從手冊[1]演獲得。連線延時包括$Net_Carry_reg和$Net_Carry_out的延時。前者是進位鏈,延時為0;後者為普通連線,延時約為0.47ns。因此,總延時約為3.31ns,即工作頻率約為 300MHz。

    為了減小延時、提高工作頻率,使用FPGA Editor對布局布線進行精確控制,並把加法器做成硬宏,有利於保證多次實例化時的性能。現將使用宏完成的設計和使用HDL語言完成的設計在工作頻率上做一個比較。使用Virtex50E-6pq240器件、xst綜合器時,用宏完成的3bit數字串列加法器的最高工作頻率為300MHz,而用HDL完成的相同設計的最高工作頻率只有186MHz。這是由於設計用HDL輸入時,布局布線工具用了3個slice,第一個slice完成2bit全加器,第二個slice完成1bit全加器,第三個slice只用了內部的一個觸發器來存儲進位,第一、二個slice之間用進位鏈連接,延時為0,但是第二、三個 slice之間只能使用普通連線,而且第三個slice的輸入CIN到觸發器的建立時間較大,因而影響了串列加法器的運行速度。


  3 數字串列加法器的應用

    數字串列加法器可以代替傳統加法器用在濾波器、乘法器、累加器等電路的設計中,能大大減小資源佔用。下面以在CDMA/WCDMA系統中廣泛應用的匹配濾波器為例說明數字串列加法器的應用。

    匹配濾波器是一種無源相關技術,它可以快速實現相關器的功能。匹配濾波器的衝激響應為:

   


    可知濾波輸出R(t-T)是輸入信號的自相關函數。

   在CDMA、WCDMA等系統中,匹配濾波使用本地碼系列來匹配輸入到接收機的採樣數據。在濾波器中,本地碼序列與接收數據進行相乘、求和操作,得到相關值,相關值越大說明相關程度越高。其工作過程如圖4所示。匹配濾波器可以使用移位寄存器和加法器來實現,結構如圖5所示,其中,濾波器的係數因子h(n) 為本地碼序列,輸入x(n)為接收數據,數據每移位一次,濾波器計算一次輸出結果。當移動到兩個序列相位對齊時,就產生一個相關峰值輸出。


    系統對匹配濾波的設計要求是:匹配長度為256,輸入四路數據,每一路經過7bit量化、速率為7.68MHz,即濾波器的處理速度為4×7.68=30.72MHz。對於這樣一個匹配濾波器,有很多種實現方法,例如在高速率下可以通過旋轉數據/旋轉本地碼序列或者通過動態、靜態數據互換來簡化設計[2]。這些方法都用到一個比較大型的加法樹,如果用一般加法器實現,將佔用大量的資源,因此有必要加以改進。

   設計中用到的加法樹有256個7bit輸入,計算結果為15bit。採用一般加法器實現的結構如圖6(a)所示,在VirtexE中約佔1100個 slice,資源消耗過大。為了減小資源消耗、提高設計密度,使用上述3bit數字串列加法器對加法樹進行改進,改進后的結構如圖6(b)所示。由於減小了加法器的運算寬度,大大降低了使用的邏輯資源,整個加法樹大約只用512個slice。

   使用數字串列加法樹完成加法運算需要的時鐘周期與加法器的位寬有關,增加加法器的位寬可以減小運算需要的時鐘周期、提高濾波器的數據吞吐量,但是也增加了硬體資源的消耗。所以在處理能力滿足的條件下,應該選擇比較小的位寬。表1列出了用不同位寬的數字串列加法器實現的加法樹的工作頻率和佔用資源,選用器件為XCV200E-6BG352,綜合工具為XST。
 


   對於本設計,如果使用1bit的數字串列加法器,數據經過加法樹之後從7bit擴展成15bit,所以數據完全輸出需要15個時鐘周期。根據這些要求,為了使得濾波器達到30.72MHz的處理速度,1bit的串列加法器必須工作在15×30.72=460.8MHz。如果使用3bit串列加法器,數據完全輸出需要15/3個時鐘周期,即加法器的工作頻率應為5×30.72=153.6MHz。從表1可見,3bit的數字串列加法樹可以滿足設計要求,而資源佔用是一般加法樹的50%


[admin via 研發互助社區 ] 高速數字串列加法器及其應用已經有591次圍觀

http://www.cocdig.com/docs/show-post-45157.html