當前位置:首頁 > 工業(yè)控制 > 電子設計自動化

在最近幾年中日益流行在高性能嵌入式應用中使用現(xiàn)場可編程門陣列(FPGA)。FPGA已經(jīng)被證明有能力處理各種不同的任務,從相對簡單的控制功能到更加復雜的算法操作。雖然FPGA在某些功能上比設計專用ASIC硬件具有時間和成本上的優(yōu)勢,但在面向軟件應用中FPGA比傳統(tǒng)處理器和DSP的優(yōu)勢并沒有體現(xiàn)出來。這很大程度上是由于過去割裂了硬件和軟件開發(fā)工具和方法之間的關系。
  然而最近FPGA在面向軟件設計工具方面的發(fā)展,及器件容量的持續(xù)增加為軟件開發(fā)者創(chuàng)造了新的環(huán)境。在這種環(huán)境下,F(xiàn)PGA可視為軟件編譯器的一個可能的目標(連同傳統(tǒng)和非傳統(tǒng)處理器架構(gòu))。現(xiàn)在,工具能夠幫助軟件工程師利用FPGA平臺,同時在結(jié)合了傳統(tǒng)處理器(或處理器核)和FPGA的單一目標平臺上,幫助這些開發(fā)者利用其所具有的高度算法并行性。
  基于FPGA的計算平臺,尤其是那些具有嵌入式“軟”處理器的平臺,有能力實現(xiàn)非常高性能的應用,而沒有建立專用定點功能硬件的前期風險。通過使用最新一代的硬件/軟件協(xié)同設計工具,有可能使用多種面向軟件(圖形和基于語言)設計方式作為FPGA設計過程的一部分。
  使用基于FPGA的參考平臺
  FPGA中使用嵌入式處理器的優(yōu)勢之一是能夠在單個可編程器件上建立硬件/軟件開發(fā)對象——等效硬件參考平臺,這常常被忽視。即使終端產(chǎn)品不包括嵌入式處理器(將替換外部處理器或其他硬件子系統(tǒng)的接口),快速下載和測試新的軟件/硬件配置(試驗可改變軟件/硬件劃分方案)的能力也能大大地提高設計生產(chǎn)率。通過使用嵌入式處理器作為測試生成器,單獨的硬件部件(或硬件編譯的軟件過程)也可以快速地驗證功能。

  這種快速原型平臺的典型例子是Altera公司提供的Nios開發(fā)包。Cyclone或Stratix FPGA中都包括這個工具包,除了高性能的Nios 32位軟核處理器核之外還包括多種硬件和軟件外設接口。在設計過程中可以選擇這種核,使用Altera SOPC Builder工具配置并下載到相應的FPGA中。板上本身的連接容許直接和各種不同的外部部件連接,從串口(RS232和USB)到Flash存儲器和網(wǎng)絡接口。
  在開發(fā)過程中使用這種板并結(jié)合Altera工具,容許嵌入式系統(tǒng)設計者用應用原型所需的部件(包括嵌入式處理器)組成目標平臺。然后,軟件開發(fā)者能夠關注應用本身,分析和試驗不同的硬件/軟件劃分方案。
  權衡硬件和軟件資源
  在一些高性能嵌入式應用中,從產(chǎn)品構(gòu)建費用和開發(fā)成本考慮最佳的資源使用方案是混合處理器方案。在這種方案中應用非關鍵性能的部件位于主處理器(它們可能是或不是嵌入式處理器核),而大計算量的部件是一個或多個DSP芯片、其它標準硬件或?qū)S肁SIC或FPGA硬件。這種的解決方案通常需要硬件設計方式和工具的知識,但是在性能和成本方面上具有最佳的收益。
  對于系統(tǒng)中的每個處理單元(即標準處理器、DSP、FPGA或ASIC),需要不同水平的專用技能。例如,雖然DSP是軟件可編程的,在工具上的初期投入小,但他們需要在DSP專門的設計技術方面有一些專門經(jīng)驗,通常需要匯編級的編程技能。在另一方面,F(xiàn)PGA在設計和工具經(jīng)驗上需要相對高的投入,在硬件設計語言作為主要的設計輸入方式時尤其如此。
  然而FPGA和專用ASIC設計所需的經(jīng)驗和工具投入相比,顯然FPGA在開發(fā)專用硬件上具有更低的風險。的確,相對于專用ASIC方案的簡單性和低風險的設計過程是為任何產(chǎn)品選擇FPGA的關鍵因素是。最近基于軟件的FPGA設計工具使這種設計過程具有甚至獲得更大的生產(chǎn)效率。這反過來讓系統(tǒng)設計者和軟件應用開發(fā)者在實際的硬件上能夠更快地嘗試新的算法方式和測試設想,使用迭代方式進行設計。
  這種迭代方式重要好處是能夠一次改變一個單元(例如將關鍵的算法移至FPGA)的設計。應用最初是完全用軟件進行原型設計,并驗證其正確性,然后由FPGA完成特定的功能,這是在每個步驟都要對系統(tǒng)重新進行驗證的硬件過程。這種方式被證實能大大地縮短調(diào)試時間,降低引入難以調(diào)試的系統(tǒng)錯誤的風險。
  你如何在考慮“將應用的哪部分以硬件實現(xiàn)”上做出最明智的選擇?一個普遍采用的方式是從用C,Matlab,SystemC或其它一些軟件編程語言的軟件模型開始。隨著應用模型和部件算法的發(fā)展,設計者確定并發(fā)揮設計中粗略的并行性(或重新設計算法)利用可編程硬件在建立并行結(jié)構(gòu)方面的獨有能力。增加并行度通常轉(zhuǎn)化為增加硬件資源,它必須在降低大I/O量的算法性能增益上取舍。使用軟件模型驗證假設,建立可重復的測試組,這些測試組可以作為模型,進一步提煉為某些可以進行軟件和硬件編譯的內(nèi)容。
  混合軟硬件設計方法
  現(xiàn)今如何開發(fā)混合軟件和硬件應用呢?如果應用是軟件驅(qū)動的(現(xiàn)今越來越多的設計是這樣),軟件或系統(tǒng)工程師從編寫代碼(如上所述)來建立系統(tǒng)原型。另一種是,工程師用更高 級的工具如Simulink(來自Mathworks),基于UML的工具或其它系統(tǒng)設計環(huán)境開始設計。在這個過程中,系統(tǒng)設計者或軟件工程師將采用更高級的設計抽象以獲得最大的生產(chǎn)率,但是可能獲得很低的性能結(jié)果。因為以這種方式自動選用的處理器類型是受限的,為性能目標轉(zhuǎn)換低級代碼的機會相對更少。有經(jīng)驗的嵌入式開發(fā)者可能會進一步用匯編語言優(yōu)化應用的各個部分,或使用專用處理器(即DSP芯片)來提高性能。硬件工程師可以參與優(yōu)化面向FPGA和ASIC實現(xiàn)的設計中的那部分接口。
  初始系統(tǒng)設計和劃分完成之后,應用中需要最高性能的各個部分可以手工描述出來,交給硬件工程師。這個工程師為FPGA或ASIC部分編寫低層的HDL代碼,他們的設計生產(chǎn)率通常非常低(軟件工程師1/10或更少)。結(jié)果是應用速度增加了,但是代碼和最初的軟件代碼無法對應,設計周期不再一致,系統(tǒng)規(guī)格的改變可能很痛苦。
  在這種情況下,系統(tǒng)設計者必須作為硬件/軟件仲裁者,指定硬件/軟件接口,鎖定設計反映設計的前期時間。一旦硬件開發(fā)認真地展開,可能幾乎沒有機會再次從整體上把握應用和它的組成算法。
  基于C的設計和原型工具加速開發(fā)
  在上述的方式中,最終的軟件/硬件應用是軟件和硬件源文件的組合,一些需要軟件編譯/調(diào)試工具流程,其它需要硬件為主的工具流程和專業(yè)知識。然而,隨著基于C的FPGA設計工具的出現(xiàn),使得在大部分的設計中采用熟悉的軟件設計工具和標準C語言成為可能,尤其在那些本身就是算法的硬件部分。后面的性能轉(zhuǎn)換可能會引入手工的硬件描述語言(HDL)取代自動生成的硬件(正如面向DSP處理器的源代碼通常用匯編重新編寫),但是因為設計直接從C代碼編譯成最初的FPGA實現(xiàn),硬件工程師要參與性能轉(zhuǎn)換的時間會進一步提早至設計階段,系統(tǒng)作為整體可以用更高生產(chǎn)率的軟件設計模式來設計。

  如CoDeveloper工具(Impluse Accelerated Technologies提供)允許C語言的應用編譯后以FPGA網(wǎng)表形式建立硬件,包括允許描述高度并行和多過程應用描述所必須的C語言擴展。對于包括嵌入式處理器(如Altera的Nios軟核處理器)的目標平臺,CoDeveloper可以用來生成必要的硬件/軟件接口,及生成特定過程的低級硬件描述。
  采用這種工具和硬件/軟件方式獲得成功的關鍵是軟件和硬件處理資源之間合理的劃分。好的劃分方案不僅要考慮給定算法部件對計算量的需求,而且要考慮數(shù)據(jù)帶寬需求。這是因為硬件/軟件接口可能是主要的性能瓶頸。
  合理地利用高并行應用的編程模型也很重要。雖然它試圖用傳統(tǒng)編程方式如遠程過程調(diào)用(RPC)將特定功能交由FPGA處理,但是研究表明交替的更面向數(shù)據(jù)流的通信方式更有效率,它更不可能引入阻塞或造成應用死鎖。在一些情況下,這意味著重新從整體上考慮應用,尋找新的方式對數(shù)據(jù)進行搬移和處理。這么做的結(jié)果是非常顯著的:通過增加應用級的并行性,充分利用可編程邏輯資源,這可能將使一般算法比純軟件實現(xiàn)提升幾個數(shù)量級。
  在這種應用的開發(fā)過程中(或重新工程化),設計工具是可視化的,能調(diào)試多個并行過程的互連。例如應用監(jiān)視能夠在標準C調(diào)試器控制運行時提供應用和組成過程的整體概念。這樣的工具有助于量化地給出劃分方式的結(jié)果,識別可能表示應用瓶頸的高數(shù)據(jù)吞吐量的區(qū)域。當同時使用熟悉軟件性能評價方式,這些工具允許特定的代碼段可識別為更詳細的分析或進行性能調(diào)整(圖1)。

圖1,在應用調(diào)試和監(jiān)視過程中連接硬件和軟件過程顯示為模塊

  設計實例:基于FPGA的圖像慮波器
  為了演示這些工具如何用來把算法過程移至FPGA,我們以圖像慮波器為例,其中輸入數(shù)據(jù)流必須非??焖俚靥幚恚奢敵鰯?shù)據(jù)流。這樣的問題可能涉及大量的計算,而且也是帶寬密集的:最終的實現(xiàn)方式不能為了增加整體性能而影響數(shù)據(jù)吞吐量。
  圖2說明一個簡單的圖像慮波器如何工作。在所示的示例中(邊緣檢測慮波器),尤其是3×3窗口的像素數(shù)據(jù)必須以流方式組合和處理。

圖2,圖像慮波器過程一次處理輸入圖像一個像素,在最近的八個像素進行卷積

  有許多可能的方法實現(xiàn)這種算法。在本例中,兩個流水式硬件處理器用C描述完成這種功能:一個過程生成匹配源圖像的匹配行像素(以像素流讀?。瑫r第二個過程接受第一個流(三個代表三個偏移列的流)的結(jié)果,將對每個像素窗口卷積,生成一個輸出圖像,用第二個過程中單一的卷積像素流表示。這個過程和流用Impulse C庫(見附文《Impluse C編程模型》)提供的C兼容的流I/O例程來聲明和讀/寫。
  因為算法是用標準C(外加Impulse C庫)描述的,我們能從軟件測試應用(用Microsoft Visual Studio開發(fā))開始,它在桌面仿真環(huán)境下完成圖像算法。這種測試應用將兩種硬件過程和圖像卷積功能結(jié)合到軟件測試平臺應用中(它可以編譯, 并以基于PC的臺式機應用或運行在Nios處理器中的嵌入式應用運行),它從TIFF格式文件中讀取數(shù)據(jù)進行處理。這種測試用標準桌面調(diào)試工具和CoDeveloper Application Monitor進行設置和運行。在這種方式下,算法結(jié)果可以在進入下一階段和編譯至目標FPGA平臺之前進行驗證。
  編譯為硬件
  用標準桌面C開發(fā)工具仿真它的功能之后,我們準備用Altera Stratix開發(fā)原型板,在混合FPGA/處理器目標上實現(xiàn)該應用。Altera Nios開發(fā)包包括所有編譯和綜合硬件和軟件應用至FPGA目標所需的硬件和軟件(包括自動生成的表示硬件過程的HDL源文件和表示軟件過程的C源代碼)。Altera提供的軟件結(jié)合Impulse CoDeveloper,為我們提供了從C語言編譯和執(zhí)行測試應用所需的一切。
  我們第一步是為圖像濾波器本身生成硬件。為了達到這一目的,我們從CoDeveloper工具中選用Altera Nios Platform Support Package,處理相關的Impulse C源文件。這將產(chǎn)生大約1200行的RTL和相關的硬件/軟件接口源文件。
  接下來,用A

ltera Quartus工具建立新的項目,生成包括必要外設的Nios處理器核(用Altera的SOPC Builder)。CoDeveloper的輸出軟件和輸出硬件功能將從CoDeveloper輸出生成的硬件和軟件文件給新創(chuàng)建的Quartus項目。使用Altera的框圖工具,我們通過Avalon片內(nèi)總線將生成的硬件過程和Nios處理器相連。
  包括Nios處理器和生成硬件的整個系統(tǒng)用Altera Quartus綜合。應用的軟件部分(主要由測試生成器和客戶功能組成,包括組函數(shù))也導入Quartus項目,用所包含的Nios編譯器編譯。
  最后,用Altera工具生成bit文件,通過提供的并口電纜下載到平臺上。在這個平臺按預期要求上電和運行。
  在這個例子中,顯式流水的兩個圖像濾波器過程和由CoDeveloper C自動為硬件編譯器生成的流水在每兩個FPGA時鐘周期獲得最佳的單像素圖像處理速率,相當于大約10ms完成整個512×512圖像的處理速度。
  當然,在FPGA上任何算法的絕對性能是取決于I/O因素及算法本身。在我們的圖像濾波器測試方案中,圖像數(shù)據(jù)從Nios上運行的測試生成器通過Avalon片內(nèi)互連傳送到生成的FPGA硬件上,這樣可以獲得比上述最大像素速率低得多的有效吞吐量。另一個算法版本中,像素數(shù)據(jù)直接從FPGA硬件接口傳送和讀取,這樣做的結(jié)果會最接近最佳的結(jié)果。因此考慮帶寬的限制是非常重要的——可能的化在硬件上測試,因為帶寬是確定應用劃分的因素。象CoDeveloper這樣的工具可以更容易和更快地進行這方面的評估和實驗。

  附文:Impluse C編程模型
  建立將軟件和硬件相結(jié)合的應用需要對并行編程技術有所了解,尤其是以差別很大的有效速率操作的獨立同步過程。為了幫助建立高度并行的混合硬件/軟件應用,Impulse C庫包括了設置和管理多個獨立過程的功能,它可以通過數(shù)據(jù)流、信號和可選的共享存儲資源相連接。
  在典型的Impulse C應用中,編寫一個或多個軟件過程,作為生成器和客戶數(shù)據(jù)或(可選)和其它直接用FPGA邏輯實現(xiàn)的硬件/軟件過程通信和同步的控制器。Impulse C編程模型(概念上和1980年C.A.R.Hoare描述的通信時序處理模型類似)提供了對硬件/軟件劃分和同步的系統(tǒng)級控制,同時允許用標準C構(gòu)造編寫和自動優(yōu)化獨立過程。

圖a,Impulse C編程模型:通信主要通過數(shù)據(jù)流(映射為生成硬件中的FIFO),其它需要同步的信號,及非流數(shù)據(jù)的共享和本地存儲器(即系數(shù))。

  使用Impulse C庫功能,C語言可用來描述高度并行的應用,具有最小的軟件編程復雜度,同時具有用標準C開發(fā)環(huán)境下編譯和調(diào)試的能力。例如,使用Impulse C庫功能,一個簡單的圖像濾波器可以用如下的代碼風格描述(實際算法省略):
  提供另外的Impulse C功能(和從C應用的主函數(shù)間接調(diào)用)用數(shù)據(jù)流和信號建立和連接這些過程,指定存儲器和其它外部接口。這個編程模型的結(jié)果是底層硬件平臺的實際情況(假設是傳統(tǒng)處理器和可編程硬件的混合)被抽象,用戶(他可能是有經(jīng)驗的C程序員,但幾乎沒有硬件設計知識)不必學習硬件設計方法,就可以描述和運行混合軟件/硬件應用。

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉