邏輯設計領(lǐng)域正發(fā)生著(zhù)根本變化,新一代設計工具能夠幫助軟件開(kāi)發(fā)者將其算法表達直接轉換成硬件,而無(wú)需學(xué)習傳統的硬件設計技術(shù)。這些工具及相關(guān)設計方法學(xué)一起被歸類(lèi)為電子系統級 (ESL) 設計,廣義上指從比目前主流的寄存器傳輸級 (RTL) 更高的抽象級別上開(kāi)始的系統設計與驗證方法學(xué)。與硬件語(yǔ)言如 Verilog 和 VHDL比起來(lái),ESL 設計語(yǔ)言在語(yǔ)法和語(yǔ)義上與流行的 ANSI C 比較接近。 ESL 與 FPGA 的關(guān)系 ESL 工具已經(jīng)存在了一段時(shí)間,而許多人覺(jué)得這些工具主要專(zhuān)注于 ASIC 設計流程。然而事實(shí)上,越來(lái)越多的 ESL 工具提供商正在專(zhuān)注于可編程邏輯。ESL 流程是對 FPGA 設計工具的一種自然演進(jìn),可以使更多和更廣泛以軟件為中心的用戶(hù)群更容易地使用可編程硬件的靈活性。 我們來(lái)考慮一些由 ESL 和 FPGA 構成重大組合的情景。 1. ESL 工具和可編程硬件一起構成一個(gè)基于桌面的硬件開(kāi)發(fā)環(huán)境,符合軟件開(kāi)發(fā)者的工作流程模型。工具可提供針對特定的基于 FPGA 的參考板的優(yōu)化支持,軟件開(kāi)發(fā)者可以利用這些支持啟動(dòng)項目評估或原型構建。這些板及相應的參考應用程序均使用更高級別的語(yǔ)言編寫(xiě),這使創(chuàng )建定制、硬件加速的系統更為快速和容易。實(shí)際上,現在軟件程序員能夠以使用微處理器參考板及工具大體相同的方式,使用基于 FPGA 的參考板及工具。 2. 通過(guò)使用現在FPGA 中已很普遍的高性能嵌入式處理器,軟件和硬件設計組件可以裝入到一個(gè)器件中。從系統的軟件描述開(kāi)始,您可以根據應用程序的性能要求,將每個(gè)設計塊用硬件或軟件來(lái)實(shí)現。ESL 工具支持智能分割和軟件功能到等效硬件功能的自動(dòng)導出,從而增加了價(jià)值。ESL 提升了“探測式設計和優(yōu)化”的概念。ESL 方法學(xué)與可編程硬件的結合使用,使嘗試大量可能的應用實(shí)現以及對極大不同的軟件/硬件分割策略快速進(jìn)行實(shí)驗成為可能。這種實(shí)驗的能力——嘗試新方法和快速分析性能與尺寸平衡——使 ESL/FPGA 用戶(hù)能夠比使用傳統的 RTL 方法以更短的時(shí)間實(shí)現更高的總體性能。通過(guò)在更抽象的級別上工作,您可以使用更少的擊鍵和更少的代碼行來(lái)表達您的意圖。這通常意味著(zhù)更快地完成設計,和更少的犯錯機會(huì ),而這些錯誤將需要繁雜的、低級調試。 圖 1 大多數用于 FPGA 的 ESL 工具均針對以軟件為中心的用戶(hù)群 ESL 的目標受眾 ESL 流程對預期 FPGA 用戶(hù)的主要好處是其生產(chǎn)率和易用性。通過(guò)將產(chǎn)生硬件電路的實(shí)現細節進(jìn)行抽象,這些工具向以軟件為中心的用戶(hù)群(圖 1)發(fā)出了召喚。在更高的抽象級別上工作,使擁有 C 語(yǔ)言等傳統軟件編程語(yǔ)言技能的設計者能夠更快地以硬件探究其想法。以軟件為中心的應用程序和算法開(kāi)發(fā)者已將該方法的優(yōu)點(diǎn)應用于 FPGA,他們包括系統工程師、科學(xué)家、數學(xué)家、和嵌入式與固件開(kāi)發(fā)者。適合 ESL 方法學(xué)的應用程序的特征包括具有大量?jì)妊h(huán)的計算密集型算法。這些應用程序可以通過(guò)硬件中的并發(fā)并行執行實(shí)現巨大加速。ESL 工具已在音頻/視頻/圖像處理、加密、信號與分組處理、基因排列、生物信息、地球物理和天體物理等應用領(lǐng)域成功幫助進(jìn)行了項目部署。 圖 2 ESL 工具抽象了在 FPGA 中加速處理器應用程序有關(guān)的細節 ESL 設計流程 與 FPGA 相關(guān)的 ESL 工具包含兩個(gè)主要設計流程。 1. 高級語(yǔ)言 (HLL) 綜合。HLL 綜合覆蓋算法或行為綜合,可從C或C類(lèi)的軟件語(yǔ)言生成硬件電路。各種合作伙伴解決方案采用不同的方法將高級設計描述轉換為 FPGA 實(shí)現。如何完成這一點(diǎn)構成了各種 ESL 產(chǎn)品之間的根本不同。 您可以將 HLL 綜合用于各種應用情況,包括: 模塊生成。在這種使用模式下,HLL 編譯器可以將以 C 表示的功能塊(例如一個(gè) C 子程序)轉換成相應的硬件塊。生成的硬件塊隨后被收入整個(gè)硬件/軟件設計,這樣HLL 編譯器生成了整個(gè)設計的一個(gè)子模塊。模塊生成通過(guò)快速生成,然后集成算法硬件組件,允許軟件工程師參與整個(gè)系統的設計。那些尋求以更快的方式構建新的、以計算為導向的硬件塊的硬件工程師們,也可以使用模塊生成。 處理器加速。在這種使用模式下,HLL 編譯器允許通過(guò)在 FPGA 的可編程結構中創(chuàng )建定制加速器塊,來(lái)加速在處理器中運行的時(shí)間關(guān)鍵功能或瓶頸功能。除創(chuàng )建加速器外,這些工具還可以自動(dòng)推斷存儲器并生成所需的硬件-軟件接口電路,以及實(shí)現處理器與硬件加速器塊之間通信的軟件設備驅動(dòng)程序(圖 2)。與運行在 CPU 中的代碼相比,FPGA 加速的代碼其運行速度可以快幾個(gè)數量級,而消耗的功率則大大降低。 2. 系統建模。對于大型設計,或處理器用作整個(gè)設計的一部分時(shí),使用傳統的 RTL 模型進(jìn)行系統仿真可能會(huì )非常慢。一種流行的新興 ESL 方法采用了高速事務(wù)級模型,通常使用 C++ 編寫(xiě),以大大加快系統仿真速度。 ESL 工具為您提供了一種基于虛擬平臺的驗證環(huán)境,您可以在其中分析和調整設計的功能和性能屬性。這意味著(zhù)可以更早使用系統的虛擬表示,實(shí)現更大的設計探索和假設分析。 您可以評估和改進(jìn)性能問(wèn)題,如延遲、吞吐率和帶寬,以及選擇性的軟件/硬件分割策略。一旦設計滿(mǎn)足性能目標,就可將其付諸硅實(shí)現。 賽靈思 ESL 倡議 賽靈思認為 ESL 工具具有極大地改變硬件和軟件設計者創(chuàng )建、優(yōu)化和驗證復雜電子系統方式的潛力。為了將這一新興技術(shù)的全部?jì)?yōu)點(diǎn)帶給客戶(hù),和建立一種適用于特別針對 FPGA 的 ESL 技術(shù)的公共平臺,賽靈思積極聯(lián)絡(luò )其生態(tài)系統合作伙伴,成立了協(xié)作性的聯(lián)合 ESL 倡議(表 1)。 該倡議的宗旨是加快針對 FPGA 的 ESL 創(chuàng )新步伐,和使該技術(shù)更貼近以軟件為中心的用戶(hù)群的需求。作為倡議的一部分,有以下兩個(gè)重點(diǎn): 1. 工程協(xié)作。賽靈思將與合作伙伴緊密合作,繼續進(jìn)一步提升 ESL產(chǎn)品陣營(yíng)的價(jià)值,包括改進(jìn)編譯器結果質(zhì)量和增強工具互操作性及總體易用性等工作。 2. ESL 認識與宣傳。賽靈思將向當前及預期新客戶(hù)宣傳面向 FPGA 的 ESL 流程的價(jià)值和優(yōu)點(diǎn)。該計劃將試圖告知和教育用戶(hù)有關(guān)目前已有 ESL 解決方案類(lèi)型的知識,以及各種產(chǎn)品如何提供解決現有問(wèn)題的更好方法。目的是幫助用戶(hù)就各種合作伙伴 ESL 產(chǎn)品滿(mǎn)足其專(zhuān)用需求的適合性做出信息全面的決策。 表 1 賽靈思 ESL 合作伙伴采用從高級語(yǔ)言到 FPGA 實(shí)現?不同方法 結語(yǔ) 面向 FPGA 的 ESL 工具為您提供了通過(guò)可編程硬件探索您的想法而無(wú)需學(xué)習與硬件設計有關(guān)的低層細節的能力。今天,您有機會(huì )從廣泛的創(chuàng )新和生產(chǎn)率增強解決方案中選擇專(zhuān)門(mén)針對賽靈思 FPGA 優(yōu)化的解決方案。隨著(zhù) ESL 倡議的正式發(fā)布,賽靈思全面投入與第三方生態(tài)系統的合作,力圖為當前及潛在未來(lái)客戶(hù)提供最佳的 ESL 工具。面向持續更新和新開(kāi)發(fā)隨時(shí)做好準備。 |