新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 專家點撥:如何發揮FPGA設計的無限潛力

        專家點撥:如何發揮FPGA設計的無限潛力

        作者: 時間:2010-06-11 來源:網絡 收藏

        盡管為嵌入式設計帶來了強大的功能與靈活性,但額外的開發流程也給設計工作增加了新的復雜性和限制問題。整合傳統的硬件--軟件設計流程并充分利用的可再編程功能是我們的一個解決之道。

        隨著FPGA技術逐步延伸至軍事電子系統以及嵌入式電子產業的幾乎全部領域,能發揮可編程邏輯優勢的應用已經占據主流地位。通信、機載和控制系統尤其受益于FPGA的設計靈活性、現場重構和并行處理功能。同時,較短的設計周期和更加簡化的驗證過程則有助于加快應用投入現場的進程。

        盡管FPGA無所不在,但能真正全面發揮FPGA靈活設計潛力的應用卻很少。之所以存在這種局限性,原因在于FPGA開發很大程度上只是簡單地疊加,或者最多也只是連接于傳統的軟硬件工作流程上。這個孤立的FPGA開發階段會導致整個設計流程的復雜性大幅上升——并最終限制軟硬件領域可用的設計選擇范圍。

        為了簡化整體設計工作,并豐富設計選項,硬件設計、軟件開發和可編程硬件設計等獨立的設計過程需集成在一起,以作為一個整體的任務進行處理。只有在基礎層面上讓所有設計進程都能共享統一的設計數據庫和通用的設計環境,FPGA的可再編程性這一最主要的獨特優勢才能得到充分發揮,從而將FPGA設計推向前所未有的水平。全面發揮FPGA靈活性優勢的關鍵在于了解其發展趨勢及所面臨的設計挑戰,并掌握如何讓包含FPGA系統中的三大設計方面(硬件、可編程硬件和軟件)實現協調整合。

        FPGA從膠合邏輯向方向發展

        FPGA剛進入嵌入式市場領域時,被認為是用于實施大量簡單膠合邏輯的方便而有效的替代技術。在這種應用中,嵌入式硬件是主要軟硬件設計的附屬部分,其開發過程不涉及其他組件的設計流程,也不需要與這些流程進行交互。

        不過,現在的FPGA器件及其使用方式已經在海量數字邏輯便捷容器概念的基礎上發生了重大變化。大容量FPGA現在能承載整個設計,其中處理器、內存以及高速數據處理等核心功能元素都在可編程領域實施。在軍用嵌入式系統中,由于受產量相對較低的影響,很難采用ASIC設計方案,而FPGA則為充分發揮設計方案的物理簡單性和可靠性等優勢提供了一條經濟高效的可行之道。

        相對于簡單的膠合邏輯設計而言,SoC實施的一個重大不同點在于,軟硬件開發現在基本上都是關聯于、且依賴于FPGA設計。這是因為FPGA器件和支持外設是物理設計的中心與核心元素,而嵌入式應用軟件也要裝載在FPGA上發揮作用。因此,FPGA域的任何更改都會對軟硬件域造成顯著影響。

        受限制的創新

        如果將硬件、軟件乃至當前的嵌入式硬件等設計的各個部分視作是彼此分開、互不關聯的任務,則無論設計域之間如何相互依存,FPGA產品設計的常規開發流程采用的仍然是傳統方案。

        某個設計域的變動往往會對其他域造成具有破壞性影響且耗時巨大的重新設計。也就是說,必須在設計階段早期就做出(并且鎖定)軟硬件分區等重大決策,這與傳統的非FPGA嵌入式設計別無二致。實際上,FPGA器件和外設硬件等物理硬件和隨后的可編程硬件元素在有意義的軟件開發之前都被依次一一鎖定了。

        這些最初的決策決定了后續開發流程的參數和限制,因此設計的可選項會隨著流程的逐步推進而越來越少。例如,選定的FPGA器件(和硬件外設)將定義包括確定采用哪種嵌入式IP等在內的性能上限,嵌入式硬件設計進而定義軟件可用的功能。或者說,FPGA器件只能支持該器件廠商提供的軟處理器,這進而也定義了應用軟件可用的編程選擇。

        此外,要想微調設計方案的性能,比如將軟件算法轉移到嵌入式硬件中、或者從嵌入式處理器轉為硬連接的處理器、抑或是選擇不同的FPGA類型等,都會導致對硬件、可編程硬件和軟件等所有域進行大規模重新設計。對開發時間緊迫的軍事/航空系統而言,這種重新設計對設計周期造成的中斷影響極大,因此大多數工程師都會全力避免這種設計風險的發生。不過,高性能和設計穩定性同樣至關重要,因此檢查處理器選項并充分利用軟算法的優勢來替代硬算法也是必不可少的。


        上一頁 1 2 下一頁

        關鍵詞: FPGA SoC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沾益县| 南汇区| 平度市| 苏尼特左旗| 新竹市| 雷州市| 敦化市| 杂多县| 同江市| 岚皋县| 六安市| 崇信县| 微山县| 子洲县| 连山| 海兴县| 星子县| 汨罗市| 理塘县| 革吉县| 汶川县| 郁南县| 韶山市| 三明市| 唐海县| 惠水县| 虞城县| 柳河县| 昌吉市| 正阳县| 基隆市| 清流县| 泸水县| 孙吴县| 绵阳市| 麦盖提县| 睢宁县| 吉安县| 黄梅县| 雅江县| 阿合奇县|