邏輯設(shè)計領(lǐng)域正在發(fā)生根本變化。新一代設(shè)計工具幫助軟件開發(fā)者將其算法表達(dá)直接轉(zhuǎn)換成硬件,而無需學(xué)習(xí)傳統(tǒng)的硬件設(shè)計技術(shù)。
這些工具及相關(guān)設(shè)計方法學(xué)一起被歸類為電子系統(tǒng)級 (ESL) 設(shè)計,廣泛地指從比目前主流的寄存器傳輸級 (RTL) 更高的抽象級別上開始的系統(tǒng)設(shè)計與驗證方法學(xué)。與硬件語言如 Verilog 和 VHDL比起來,ESL 設(shè)計語言在語法和語義上與流行的 ANSI C 比較接近。
ESL 與 FPGA 有何關(guān)系?
ESL 工具已經(jīng)存在了一段時間,而許多人覺得這些工具主要專注于 ASIC 設(shè)計流程。然而事實上,越來越多的 ESL 工具提供商正在專注于可編程邏輯;目前,市場上有多種工具支持專為賽靈思® FPGA 而優(yōu)化的系統(tǒng)設(shè)計流程。ESL 流程是對 FPGA 設(shè)計工具的一種自然演進(jìn),可以使更多和更廣泛以軟件為中心的用戶群更容易地使用可編程硬件的靈活性。
我們來考慮一些由 ESL 和 FPGA 構(gòu)成重大組合的情景:
1. ESL 工具和可編程硬件一起構(gòu)成一個基于桌面的硬件開發(fā)環(huán)境,符合軟件開發(fā)者的工作流程模型。工具可提供針對特定的基于
FPGA 的參考板的優(yōu)化支持,軟件開發(fā)者可以利用這些支持啟動項目評估或原型構(gòu)建。這些板及相應(yīng)的參考應(yīng)用程序均使用更高級別的語言編寫,這使創(chuàng)建定制的、硬件加速的系統(tǒng)更為快速和容易。實際上,現(xiàn)在軟件程序員能夠以使用微處理器參考板及工具大體相同的方式,使用基于 FPGA 的參考板及工具。2. 通過使用現(xiàn)在FPGA 中已很普遍的高性能嵌入式處理器,軟件和硬件設(shè)計組件可以裝入到一個器件中。從系統(tǒng)的軟件描述開始,您可以根據(jù)應(yīng)用程序的性能要求,將每個設(shè)計塊用硬件或軟件來實現(xiàn)。ESL 工具支持智能分割和軟件功能到等效硬件功能的自動導(dǎo)出,從而增加了價值。
ESL 提升了“探測式設(shè)計和優(yōu)化”的概念。ESL 方法學(xué)與可編程硬件的結(jié)合使用,使嘗試大量可能的應(yīng)用實現(xiàn)以及對極大不同的軟件/硬件分割策略快速進(jìn)行實驗成為可能。這種實驗的能力——嘗試新方法和快速分析性能與尺寸平衡——使 ESL/FPGA 用戶能夠比使用傳統(tǒng)的 RTL 方法以更短的時間實現(xiàn)更高的總體性能。
此外,通過在更抽象的級別上工作,您可以使用更少的擊鍵和更少的代碼行來表達(dá)您的意圖。這通常意味著快得多的設(shè)計完成,和更少的犯錯機(jī)會,而這些錯誤將需要繁雜的、低級調(diào)試。
ESL 的目標(biāo)受眾
ESL 流程對預(yù)期 FPGA 用戶的主要好處是其生產(chǎn)率和易用性。通過將產(chǎn)生硬件電路的實現(xiàn)細(xì)節(jié)進(jìn)行抽象,這些工具向以軟件為中心的用戶群(圖 1)發(fā)出了召喚。在更高的抽象級別上工作,使擁有 C 語言等傳統(tǒng)軟件編程語言技能的設(shè)計者能夠更快地以硬件探究其想法。在大多數(shù)情況下,您可以無需經(jīng)驗豐富的硬件設(shè)計者的幫助而完成整個設(shè)計的硬件實現(xiàn)。
以軟件為中心的應(yīng)用程序和算法開發(fā)者已將該方法的優(yōu)點(diǎn)應(yīng)用于 FPGA,他們包括系統(tǒng)工程師、科學(xué)家、數(shù)學(xué)家、和嵌入式與固件開發(fā)者。
適合 ESL 方法學(xué)的應(yīng)用程序的特征包括具有大量內(nèi)循環(huán)的計算密集型算法。這些應(yīng)用程序可以通過硬件中的并發(fā)并行執(zhí)行實現(xiàn)巨大加速。ESL 工具已在音頻/視頻/圖像處理、加密、信號與分組處理、基因排列、生物信息、地球物理和天體物理等應(yīng)用領(lǐng)域成功幫助進(jìn)行了項目部署。
ESL 設(shè)計流程
與 FPGA 相關(guān)的 ESL 工具包含兩個主要設(shè)計流程:
1. 高級語言 (HLL) 綜合。HLL 綜合覆蓋算法或行為綜合,可從 C 或C類的軟件語言生成硬件電路。各種合作伙伴解決方案采用不同的方法將高級設(shè)計描述轉(zhuǎn)換為 FPGA 實現(xiàn)。如何完成這一點(diǎn)構(gòu)成了各種 ESL 產(chǎn)品之間的根本不同。
您可以將 HLL 綜合用于各種應(yīng)用情況,包括:
• 模塊生成。在這種使用模式下,HLL 編譯器可以將以 C 表示的功能塊(例如一個 C 子程序)轉(zhuǎn)換成相應(yīng)的硬件塊。生成的硬件塊隨后被收入整個硬件/軟件設(shè)計。這樣,HLL 編譯器生成了整個設(shè)計的一個子模塊。
模塊生成通過快速生成,然后集成算法硬件組件,允許軟件工程師參與整個系統(tǒng)的設(shè)計。那些尋求以更快的方式構(gòu)建新的、以計算為導(dǎo)向的硬件塊的硬件工程師們,也可以使用模塊生成。
• 處理器加速。在這種使用模式下,HLL 編譯器允許通過在 FPGA 的可編程結(jié)構(gòu)中創(chuàng)建定制加速器塊,來加速在處理器中運(yùn)行的時間關(guān)鍵功能或瓶頸功能。 除創(chuàng)建加速器外,這些工具還可以自動推斷存儲器并生成所需的硬件-軟件接口電路,以及實現(xiàn)處理器與硬件加速器塊之間通信的軟件設(shè)備驅(qū)動程序(圖 2)。
來源:零八我的愛0次