DSP正在成為一種幾乎無處不在的技術,不僅應用在眾多消費電子、汽車與電話產品中,而且也進入越來越先進的設備。
諸如無線基站、雷達信號處理、指紋識別以及軟件無線電等應用都要求極高的處理能力。這些新類型的高性能DSP應用推動獨立處理器的性能走高,而為了提升性能,硬件解決方案也在不斷發展。
在90年代初,設計者面臨的挑戰是,如何采用多個處理器以匯聚更多的處理能力,從而滿足他們的性能要求。但是在協調多個處理器的功能時,系統級設計變得極為困難,更不用說這種方法既昂貴又浪費資源。
當第一種實現DSP的FPGA出現時,DSP設計者開始利用這種器件來支援處理器的能力。在這種方法中,FPGA通過加速DSP算法的關鍵部分(這對性能至關重要),可以補充處理器的不足。
今天的專用FPGA,如Xilinx公司的Virtex 4或Altera公司的Stratix II等蘊藏著巨大的潛力,可通過并行化來提高性能。的確,DSP專用FPGA技術已顯示出可提供比其它實現方案高100倍的性能優勢(表1)。
圖1:FPGA提供100倍于DSP的
MACOPS(每秒乘/加運算數)。MACOPS是
時鐘頻率與乘法器個數的乘積。
因此,在FPGA中包含一顆標準DSP的情況變得越來越普遍,而且預計以此種方式來使用FPGA的設計將迅速增加。
設計挑戰
不過,伴隨著這種強大的硬件能力,設計者面臨如何有效實現這些基于FPGA的DSP系統的問題。這種大型的復雜設計對傳統的 DSP設計方法提出了挑戰。這在很大程度上是因為以下事實,即在DSP應用中,傳統的FPGA設計流程沒有充分利用一個高效設計流程的兩個關鍵要素:綜合技術與可移植IP。
那些利用綜合技術來設計ASIC的人都很清楚綜合技術的優勢。對基于FPGA的DSP來說,該技術是關鍵,它使設計進入處于高級的抽象水平并能自動探索面積與性能之間的折衷。快速設計進入與高抽象水平及自動化的結合,不僅能提供單一的設計示例,而且還能提供各種可供選擇的實現結果。
對于性能優先于面積的應用來說,它可能需要包含數百個乘法器的實現方案。這種方法將具有很快的速度,但也會消耗大量硅片面積。同樣,對于那些對面積更敏感的應用來說,實現方案應使用性能較低、數量較少的乘法器,以得到占位面積更小的結果。這些類型的折衷對基于FPGA的高級 DSP的開發來說至關重要,因而要求有功能強大的工具。
高效DSP開發的另一個關鍵要素是擁有恰當的構建模塊或IP。適合于這些應用的IP具有兩個主要屬性:可擴展性與可移植性。
與適用性相對較低的同類IP相比,可擴展IP使設計者無需犧牲效率即能構建定制IP功能。新功能模塊是高效的,因為在后續的綜合過程中,未用的或不必要的部分將被優化掉。
可移植性也能保證效率。DSP設計者必須能在設計出算法以后,無需進行修改即可在任何FPGA供應商的產品上運行它們。這種可移植性將提供極大的效率與自由度,以方便選擇一種最佳實現方案。
DSP驗證也構成挑戰。當驗證DSP時,信號調試與分析變得更復雜,并不僅僅限于檢查時域、頻域曲線及散布圖。由于數字信號的特征取決于其采樣時間和離散幅度,DSP驗證工具必須能有效定義及操作多速率DSP應用中的時間。
此外,它們還必須易于從全精度浮點仿真轉換到有限字長定點仿真。同時,它們還需要一種用于對DSP算法進行建模的語言,包括對時間、定點資源與并行性等概念的本地支持。
整合方法
設計技術方面的最新進展為解決DSP設計者的獨特挑戰提供了令人興奮的解決方案。由Mathworks公司提供的 Simulink是一種基于數學模型的系統設計環境,為DSP設計者提供了強大的建模與仿真功能。該環境能處理多速率離散時間定義與管理以及單源浮點仿真等DSP問題。
圖2:基于FPGA的DSP設計流程。
對于FPGA實現來說,DSP綜合是一項將DSP驗證與最佳DSP實現鏈接在一起的關鍵創新。借助嵌入在Synplify DSP工具中的能力,設計者可以采用一種自動式且獨立于器件的方法來檢查實現過程的折衷并完成目標映射。
將DSP綜合與Simulink聯合使用,可將系統架構師與硬件設計師的專長整合到一個公共環境中。系統架構師可以為Simulink創建一個獨立于供應商的模型,使設計進入點保持在純算法層面,從而將他的注意力集中在更高層次的設計功能上。
當模型轉交給硬件設計師時,規范沒有任何架構含義。只要建模環境中的DSP驗證工具允許無縫集成綜合引擎,硬件設計師無需修改驗證源就可檢查架構方面的折衷。
由于驗證源保持一致,所以系統架構師不用擔心硬件實現問題,而硬件設計師也不必費勁地去研究DSP算法規范。此外,這還能保證設計完整性與最優化,并提高兩個團隊成員的工作效率。
該設計方法的關鍵是采用通用DSP庫。供應商專有的IP會使算法設計陷入到不必要的實現細節中。采用一個與架構參數無關的通用DSP功能庫,設計將根據高層規范來產生輸出。
借助一個高層功能庫,甚至與DSP功能有關的延時也能被推遲到架構優化階段來處理。這是通過DSP綜合來完成的。諸如DSP 綜合、Simulink及可移植庫等創新都是改進DSP設計的關鍵元素,但將這些能力集成到一個總的方法學中也非常關鍵。最佳的DSP設計流程可為現有設計能力增加通用庫以及整合DSP綜合與Simulink的能力(參見圖2)。
在設計規范時,系統架構師只需在純粹的算法抽象層面上操作。通過使用功能塊,設計師可用類似的DSP概念來捕獲算法。
在設計流程的后期,由于Simulink具有DSP驗證環境特性,算法驗證因而變得非常容易。可視化、調試以及內置的加速器等能力使設計者更容易實現離散時間設計的快速仿真。
這種設計方法的引擎就是DSP綜合,它決定了面積、性能等系統級目標。這個步驟旨在創造出一種能消耗最少的資源并達到所需性能的架構。通過采用折疊、系統范圍重定時以及增加延時等適當的系統級優化技術,DSP綜合能滿足系統級性能目標。
所得到的架構可由獨立于供應商的可綜合RTL代碼來生成。由于設計保留了獨立于供應商的特性,RTL綜合工具的全部能力可以被用于執行進一步的設計優化。
與傳統設計流程相比,上述DSP設計方法具有明顯的優勢。隨著設計規模增大,僅是由于其無延時的算法及無需時間來同步多條路徑,DSP綜合流程就超過了傳統方法。
比較DSP綜合與傳統流程的設計結果表明,即使在不同的優化情況下,前者也一樣有改進。當在DSP綜合期間不執行高級優化時,所得到的任何優化主要歸功于RTL綜合。即使沒有DSP綜合優化,在所有測試電路中采用的邏輯單元數量也會一如既往地減少,而性能也會得到改善。
我們需要考慮幾種不同的優化情況。當允許進行資源共享時,常常希望在資源利用上有明顯的改進,即使以犧牲某些性能為代價。測試電路已經證明了這一點,即以性能的明顯下降為代價可以顯著減少消耗的資源。
這種優化技術最適合在資源有限但允許性能有一定下降的情況下使用。重定時優化技術是增強DSP綜合結果的另一個選項。采用這種方法時,盡管可能要以消耗更多的資源為代價,但與單獨的DSP綜合及傳統設計方法相比,性能將有顯著提升。
為達到定時目的,一些DSP綜合解決方案在架構層上重新分配寄存器并引入一些管道。采用門級重定時可以補充這種高級定時,兩者的結合使用將獲得最佳的優化結果,且無需增加任何資源即可獲得明顯的性能改進。