受諸如視頻和靜態圖像使用的增多以及軟件無線電等可重復配置系統需求的增長,數字信號處理(DSP)的應用繼續膨脹。其中許多應用把重要的DSP處理要求和對成本的敏感性、對高性能的需求以及低成本的DSP解決方案結合在一起。 通用的DSP芯片和FPGA是實現DSP功能的兩種普遍的方法。每種方法都各有優點,其最適宜的方法因應用要求的不同而各異。本文論述了通用DSP的功能,闡述了通用DSP和FPGA之間的差異,比較了現有的用FPGA實現DSP的解決方案,最后介紹了LatticeECP2M DSP的結構以及實現DSP的設計方法。 通用的DSP解決方案與FPGA實現方法的對比 帶有加法、減法或累加運算的乘法器是大多數DSP應用的核心。通用DSP芯片把這些功能的有效實現方法和一個通用微處理器結合在一起。乘法器的數目一般為數個,微處理器將數據串行地實現乘法或其它功能,中間結果存放在存儲器或累加器中。性能的提高主要通過提升用于乘法的時鐘速度來實現。典型的時鐘速度從數十MHz到1GHz。其性能,用每秒百萬次乘法累加(MMAC)來衡量,通常為10到4000。更高性能要求的功能不得不分拆在多個DSP引擎中實現。這些芯片的價格從低端性能的幾美元到高端性能的數百美元。這種方法的優點是能夠直接實現用諸如C這樣的高級編程語言編寫算法。 面向DSP的FPGA能在一個芯片上并行地實現許多功能。通用的布線、邏輯和存儲器資源用來實現各個功能之間的互連、實現額外的功能、定序或在必要的情況下存儲數據。一些基本的器件僅提供乘法器,需要用戶用邏輯構造所有其它的功能。更多的高級器件提供加法、減法和累加功能,作為一整套DSP構造模塊的一部分。FPGA通常擁有數十個乘法單元,可以在數百MHz的時鐘速度下工作。例如,LatticeECP2-70 FPGA擁有88個18x18的乘法器,運行速度可達325MHz,性能達到每秒28600MMAC。 設計者經常要實現結構化的DSP功能,這在FPGA內要占用大量的計算資源。通常在FPGA內實現的結構化功能為:有限脈沖響應濾波器(FIR)、無限脈沖響應濾波器(IIR)、快速傅立葉變換(FFT)和混頻器。每種功能都需要將乘法單元與加法、減法和累加結合在一起。圖1和圖2分別是典型的FIR濾波器和快速傅立葉變換(FFT)的實現方式。 目前在低成本FPGA中實現DSP功能有幾種方法。第一種方法是使用器件內的查找表(LUT)。這個方法提供相對低的性能而且占用許多FPGA資源。另外一種方法是在FPGA中用硬核實現乘法器。這減少了實現DSP所需的FPGA資源。然而正如前面所述,在FPGA中實現的大多數DSP功能需要在 乘法器之后進行加、減和累加。這些功能要占用大量的FPGA資源,最后的數據寬度可達36位。因此經常會在設計中形成瓶頸。為了面對這個挑戰,最新的FPGA利用有效的硬邏輯在乘法器之后進行可編程加、減和累加。用這種方法實現DSP功能后,大大減少了通用資源的使用,并能獲得很高的性能。 LatticeECP2/M器件結構 LatticeECP2和LatticeECP2M系列重新定義了低成本FPGA,在更低的成本下擁有更多最佳的FPGA特性。器件含有sysDSP塊和工程預制的源同步I/O。在LatticeECP2M中有高達5.3M位的RAM塊、在LatticeECP2中有高達1.1M位的RAM塊。在LatticeECP2M中有3.125Gbps嵌入式SERDES,支持PCIexpress、Ethernet (1GbE 和 SGMII)以及多個其它標準。集成了以前只有高成本、高性能FPGA才有的特點和性能,這些系列的產品極大地擴展了利用低成本FPGA的應用范圍。 LatticeECP2/M器件由一個低成本的FPGA結構加上3個~42個sysDSP塊構成(圖3為sysDSP塊)。圖4是ECP器件的整體結構圖。圖中紅色部分是sysDSP塊,專門用來實現DSP的功能。LatticeECP2/M系列中的sysDSP塊支持三種數據寬度下(9、18和36)的四種功能單元。用戶為一個DSP塊選擇一種功能單元,然后選擇數據寬度和操作數的類型(帶符號/無符號)。sysDSP塊中的操作數可以是帶符號或者無符號的,但在一個功能單元中不可以混合使用。類似的,操作數的寬度在一個塊中必須相同。每個sysDSP塊中的資源可以經過配置支持下面四種單元: ● MULT(乘法) ● MAC(乘法、累加) ● MULTADD(乘法、加/減) ● MULTADDSUM(乘法、加/減,累加) 每個塊中可用的單元數目取決于數據寬度。該寬度有三種數值可供選擇:x9,x18和x36。數個這樣的單元可以連接起來,從而以并行方式實現DSP功能。 DSP設計方法 Lattice提供便捷的方法讓設計者處理sysDSP塊的這些性能,下面分別敘述這些方法: ●ispLEVER工具中的Module/IP Manager是一個圖形接口,可以迅速地產生實現DSP單元的模塊。這些模塊可以在HDL設計中被適當地采用。 ●將特定的功能通過編代碼嵌入設計的HDL中,允許綜合工具推理出DSP塊的用法。 ●采用一個Lattice Block套件在MathWork的 Simulink中實現設計。然后,ispLEVER軟件中的ispLeverDSP可以適當地將這些模塊轉換成HDL。 ●直接在源代碼中用實例說明DSP組件。 任何設計方法選擇取決于DSP運算規則的設計方法以及物理實現時所要求的控制程度。圖5展示了在MathWork的Simulink工具中使用Lattice Block套件的情形。 結語 DSP技術的應用將進一步發展。對DSP應用中典型功能的分析表明:乘法器、加法、減法和累加單元的組合是必需的。LatticeECP2/M器件把DSP塊和低成本的FPGA結構組合在一起。通過在sysDSP塊內實現加法、減法、和累加功能,有很高的性能和LUT的利用率。 |