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