流水線技術在基于FPGA的DSP運算中的應用研究
本文引用地址:http://butianyuan.cn/article/188737.htm
2 基于FPGA實現(xiàn)DSP流水線設計中應注意的其他問題
2.1 流水線設計方法的選擇
流水線設計可分為原理圖和VHDL兩種基本方法。
如前所述,用原理圖輸入法設計時,為提高設計效率,應充分利用帶有LPM_PIPELINE的LPM模塊,并利用QuartusII(提供了40多種LPM函數(shù))編譯器給出的LPM PIPELINE最佳數(shù)值(即最佳流水線級數(shù)),設定最佳LPM_PIPEINE值。
在無合適的I PM模塊可用時,需要用VHDL作為設計輸入。
流水線技術的實質就是在適當?shù)牡胤郊尤爰拇嫫?,將前面?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/運算">運算結果或輸入數(shù)據(jù)暫存,并在下一個時鐘到來時,將寄存值作為后一級運算的輸入。因此在用VHDL描述流水線時,只需對不含流水線的運算器描述代碼作適當改寫,施加必要的設計約束即可實現(xiàn)。一般通過在進程中加入WAIT語句或IF_THEN語句來測試敏感信號邊沿,實現(xiàn)寄存器或鎖存器。
如使用WAIT語句,常用的描述形式為:
PROCESS
BEGIN
wait until clk’event and clk=’1’; (上升沿觸發(fā))
reg=x;
END PROCESS;
其中的x是指輸入到所加流水線寄存器reg中的數(shù)據(jù)。
使用IF_THEN語句,常用描述方式為:
IF(clk’event and clk=’1’) THEN…
另外,用VHDL設計輸入時也可以利用Altera所提供的LPM函數(shù),但必須在設計實體前使LPM庫可現(xiàn),即加入以下語句:
LIBRARY lpm;
USE lpm.lpm_components.ALL;
2.2 流水線的首次延時和寄存器的觸發(fā)時間
對圖1所示系統(tǒng)進行延時分析,圖中組合邏輯的延遲包括兩級,合理設計的流水線結構中,其延遲時間應大致相等,設為2Tpd,插入每級寄存器組的觸發(fā)時間為Tco。因此,從輸入到輸出總的等待時延為:TDl=2(Tpd+Tco),稱為流水線設計的首次延時(First Latency)。對于連續(xù)的運算,由于加上寄存器組后,每級計算后的中間結果都能暫時保存,下一個時鐘到來時,可以直接參與下一級邏輯運算,無需等待從系統(tǒng)的輸入端傳來數(shù)據(jù)。因此,第二個結果及以后的運算結果的獲得只需要一個時鐘周期,等待的時延為:TD2=Tpd+TCO。
可見,流水線設計的首次延時與流水線正常延時相比要長得多。所以在選擇是否采用流水線技術時,要分析DSP運算的頻率。當需要進行連續(xù)運算(即流水線一直是滿負荷)時,采用流水線可以大大提高數(shù)據(jù)吞吐率;但如果只是偶爾需要加、乘運算,由于首次延時大于非流水線方式下的pin to pin延時,流水線應用效果變差,而且還犧牲了額外的芯片資源,所以不推薦使用流水線。在FPGA/CPLD中,器件的延時Tpd要比寄存器的觸發(fā)時間TCO長得多,一般分析流水線吞吐延時可以忽略TCO。但是在高速運算場合或流水線技術較多時(如視頻信號處理或無線通信中的數(shù)據(jù)處理),TCO與Tpd相比已不可忽略,必須仔細選擇流水線的級數(shù),防止TCO的影響造成流水線的瓶頸。
2.3 嵌入式存儲器塊資源的充分利用
在FPGA器件中,嵌入式存儲器塊(Embedded Memory)是為支持各種存儲器應用和DSP應用提供的專門資源。如Altera公司FLEX10K系列器件提供了3個嵌入式陣列塊EAB,每個EAB提供可靈活設置的2048位RAM,Cyclone系列提供了數(shù)十個M4K資源,每個M4K提供4608位RAM,可單獨使用,也可組合使用。使用EAB或M4K構建運算器如乘法器,實質是構成乘法查找表,其運算速度比采用LPM的乘法器速度更快,只是由于資源有限,只能實現(xiàn)小型乘法器。如能把基于嵌入式陣列塊的小型乘法器和流水線技術相結合,則能夠實現(xiàn)運算量和速度的進一步提高。
2.4 控制流水線和數(shù)據(jù)流水線的劃分
由于數(shù)字信號處理系統(tǒng)復雜性的不斷提高,在利用流水線技術實現(xiàn)DSP運算設計時,還有一個需要考慮的問題就是控制流水線和數(shù)據(jù)流水線的劃分問題。如在高速數(shù)據(jù)采集與處理系統(tǒng)中,采樣數(shù)據(jù)的處理主要涉及DSP運算,可以歸入數(shù)據(jù)流水線。各輸入通道傳感器與信號調理電路的選通控制、模數(shù)轉換、數(shù)據(jù)緩沖與傳送、數(shù)據(jù)運算控制則需要主控芯片完成,如圖2所示。高速主控芯片可以選用FPGA器件,采用流水線技術,將數(shù)據(jù)采集與處理過程中的通道選擇、模數(shù)轉換、數(shù)據(jù)緩沖與發(fā)送、數(shù)據(jù)運算四部分的控制過程設計為四級流水線進程,以減少數(shù)據(jù)采集與處理的平均作業(yè)時間,實現(xiàn)高速率的數(shù)據(jù)采集。主控芯片的流水線技術可以歸入控制流水線范疇。
3 結論
通過實驗對比,驗證了利用流水線技術可以實現(xiàn)基于FPGA器件的高速DSP運算。在具體運算器設計中要通過綜合過程,比較和優(yōu)選流水線級數(shù)以滿足速度和資源優(yōu)化的需要。DSP系統(tǒng)在進行流水線設計時要根據(jù)運算頻率明確用否流水線,合理劃分控制流水線和數(shù)據(jù)流水線,還要注意合理選用原理圖和VHDL描述,充分利用帶有LPM_PIPELINE的LPM和EAB(M4K)等資源,最大限度提高系統(tǒng)數(shù)據(jù)吞吐率和設計效率。
評論