FPGA型DSP需求增加 控制電路實現高效能DSP

2005 年 11 月 14 日

FPGA的用途近來又有突破性的發展,因為FPGA現在可被用作建置各種高效能訊號處理功能的引擎,而且可作為取代ASIC或為運用DSP處理器的訊號處理鏈提供效能加速之機制。在本文中,我們將談到如何在以FPGA作為訊號處理器的系統中建構控制電路。
 

在針對FPGA型DSP系統建置控制電路時,大概會有兩項關鍵決定:
 

‧控制電路應該建置在硬體元件中,或是設計成軟體演算法?
 

‧哪些元件能協助迅速且輕鬆地開發控制電路?
 

軟硬體方案如何選擇?
 

在第一個階段,您必須在建置於硬體中的演算法,以及比較適合建置在搭配軟型微處理器(Xilinx PicoBlazeTM與MicroBlazeTM處理器)的軟體或硬式嵌入式微處理器(PowerPCTM 405)等方案之間做取捨。表1列出硬體與軟體方案的優缺點,在選擇這些方案時,需考慮許多因素,其中包括:
 

‧演算法的複雜度-您可以在軟體與硬體中建置簡單的演算法(例如只需數行C-code就可完成的演算法)。雖然至今尚沒有絕對的估算標準能算出一個區塊需要多少行C-code程式碼,但依據經驗法則,一行程式碼約等於1至10個區塊。當演算法複雜度持續提高時,在硬體中建置與測試演算法的難度也持續攀升。可能輕易利用數行的C-code程式碼建置複雜的演算法,並在微處理器上執行,這種模式是大多數研發業者優先考慮的選擇。
 

‧需要即時作業系統(RTOS)-如果控制演算法必須要在即時作業系統下執行,較理想的作法是在Virtex- IITMPro或VirtexTM-4 FX FPGA,或者外部微處理器上運用搭配硬型嵌入式PowerPC的軟體,目前這些微處理器有包括Wind River與MontaVista等廠商提供RTOS的支援。
 

‧與主處理器溝通-與主要處理器之間的通訊往往(但不是必然)需要透過匯流排架構,在這種狀況下,像MicroBlaze處理器或PowerPC處理器等這類微處理器是理想的選擇,因為兩種微處理器都支援像OPB的匯流排架構。硬體型主系統通訊須運用各種狀態機器(State Machine),因此設計的工作較為繁瑣。
 

‧判斷的速度-如果每項決定都有特定時脈作為判斷的速度,對於需要高時脈的方案而言,硬體電路會是較優先的選擇。對於門檻值在數百或數千時脈的方案而言,軟體型演算法就足以應付效能的需求。
 

‧浮點運算的需求-雖然大多數控制功能很少用到浮點運算,但有些系統的控制作業的確需要浮點運算,例如過濾器係數的計算作業。對於需要進行逆向矩陣運算的聲納系統(Sonar System),浮點運算的控制往往是最優先考慮的方案,因為它們的開發工作比較容易。當控制的精準度較高,而且演算法不支援固定小數點的數值格式時,浮點運算控制亦是優先的選擇。
 

當決定採用硬體與軟體平台後,可著手運用許多元件,每種元件都能對不同種類控制作業提供適當的支援。
 

多種控制作業之類型
 

控制作業可分成許多不同類型。在本文中,我們將範圍鎖定在以下類型的問題,這些都是經常出現在訊號處理系統設計上的難題。
 

‧硬體方面
 

‧資料多向傳輸
 

‧建置有限狀態機器(FSM)
 

‧取樣率的控制
 

‧排序–模式產生
 

‧軟體方面
 

‧建置各種低傳輸率控制演算法
 

‧實體層資料通道(媒體存取控制層)的高複雜控制作業(本文將不會討論這個問題)
 

表2是各種工具與典型控制作業種類的摘要。這些資料只是一些較理想選擇的建議,不能算是嚴謹的推薦。Xilinx專為DSP而設的System Generator是在FPGA中DSP系統模型化與設計的其中一項可選用工具,因此將藉由在System Generator中提供的免費實例說明運用控制電路的方法。
 

資料多向傳輸採用即時模式
 

資料多向傳輸是一個不需監控狀態控制作業之範例,以即時模式對資料進行監控與測試,這些測試的結果決定控制電路的輸出內容,圖1顯示資料多向傳輸的範例,這裡的函式是MATLAB中名為xlmax的簡單函式。除非x大於y,否則選擇y作為輸入值,在這個範例中我們選擇x。
 

建置FSM的兩種主要方式
 

當需要依據當前「儲存」的輸入狀態進行決策時,就需要用到有限狀態機器,對於硬體型高效能DSP系統而言,時常看到每個時脈狀態監控作業時的電路,可採用許多種建置方式,但在System Generator中建置FSM最常見的方法是透過m-code的CASE敘述(演算法研發業者常用的方法)以及撰寫HDL(硬體工程師偏愛的方法)。HDL可透過黑盒模式輕易整合至System Generator中,若有需要亦可運用ModelSim進行協同模擬。
 

圖2顯示可運用m-code模塊輕易在System Generator中建置FSM,並在這個模塊擷自detect1011_w_state中的MATLAB描述檔,這個描述檔的目的是從MATLAB工作空間傳來的訊號中偵測出1011的訊號模式。
 

分時模式的取樣率控制方法
 

在高效能DSP系統中,樣本傳至系統或系統某部份的速度通常與FPGA的時脈不同步時,會建議工程師可以採用控制取樣率的技術。在System Generator中設計控制取樣率的方法包括向上/向下取樣率、時域、FIFO、以及Clock Enable啟用時脈。圖3顯示如何運用單一分時Second-order(Biquad階段)資源建置多個IIR過濾器。因此可以產生15個不同的IIR過濾器,每個過濾器含有4個層疊的Biquad階段,運用單一硬體Biquad階段建構「交疊」(Folded)的架構。硬體交疊是一種分時多工的技術,讓許多演算法能在單一功能單元(加法器、乘法器)上運作。對於像音效與控制這類低取樣率的應用而言,運用硬體資源的分時作業模式,可大幅降低矽元件的空間。這種設計運用許多控制電路,其中包括計量受限的計數器,將訊號饋送到兩個輸入端的多工器(在序列資料與回饋通道之間作選擇)以及向上採樣與向下採樣模塊(負責在Biquad階段控制資料傳輸率)中。
 

簡化模式產生器解決排序問題
 

排序問題通常涉及到需要一個週期性的控制模式,不但必須具備可預測的特性,而且不必依賴目前「儲存」的狀態,排序問題常用的解決方案是運用一個簡單的模式產生器,可運用各種計數器、比較器、延遲、ROM、或是System Generator模塊中的邏輯描述模塊來建構一個模式產生器。這種低度使用模式的優點在於其簡化的形式─許多研發業者通常選擇較複雜的狀態機器。
 

圖3顯示Biquad模塊中模式產生器的實例。Biquad模塊(未列於圖中)裡的定址產生器能產生RAM與ROM的所有位址,並且能針對在交疊Biquad模組中的單埠RAM產生寫入啟動的訊號功能。
 

微處理器建置低速率演算法
 

愈來愈多業者運用Xilinx微處理器來建置各種低速演算法。在其中三種主流處理器中,8位元PicoBlaze處理器、32位元MicroBlaze處理器、以及嵌入式32位元IBM PowerPC 405處理器,可根據目前的作業選擇適合的處理器。需要用到晶片內建處理器的常見作業包括計算過濾器係數、作業排程、偵測封包(例如像FEC接收器)、以及建置即時作業系統等。
 

除此之外,運用PicoBlaze微處理器而建置的簡單控制電路的例子形成在16-QAM解調器中的接收通道,以執行調適性通道等化,以及針對QAM輸入來源的載波回復功能執行,傳送器套上的附屬同步標記(ASM)從解調後的資料中被取下,然後再進行FEC,並且PicoBlaze微控制器負責控制RS解碼器;維持接收封包的訊框位置;以及針對反映至(De-mapping)QAM-16限象參考訊號執行定期調整。
 

簡易化的FPGA型DSP解決方案
 

在針對高效能FPGA型DSP系統建置控制電路時,System Generator裡眾多欄位(Building Block),即可輕鬆完成設計工作也可成為一項選擇。表1與表2列出一些考量因素,並歸納出一些可行的控制方案。
 

(Narinder Lall與Brad Taylor分別為Xilinx公司DSP資深行銷經理以及System Generator Applications經理)
 

(詳細圖表請見新電子236期11月號)
 

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

數位電視呼聲高漲 單晶片整合考驗重重

2008 年 07 月 30 日

強化DPD演算效能 SoC FPGA提升蜂巢網路設備整合度

2013 年 09 月 16 日

濕式蝕刻技術助力 TSV顯露製程成本再下降

2016 年 07 月 16 日

高速LED閃光驅動有斬獲 機器視覺動態感測力升級

2018 年 10 月 04 日

慣性導航/多頻GNSS聯手 都會區精準定位帶動創新應用

2022 年 07 月 11 日

簡單/雙向/彈性溝通 I²C協定串接晶片間通訊

2022 年 07 月 25 日
前一篇
瞄準全球Triple Play服務熱潮 英飛凌力推新一代網通解決方案
下一篇
瑞薩單晶片LSI採用ACCESS IrFront v2.1 提供FOMA手機4Mbps紅外線通訊解