新一代高級綜合 (HLS) 工具目前用于兩個主要目的。首先是出于性能原因在硬件中實現(xiàn)軟件。第二個是出于生產(chǎn)力、重用、架構(gòu)探索和更好的結(jié)果質(zhì)量 (QoR) 的原因,將半導體設(shè)計推向更高的抽象級別。
同時,一種新的寄存器傳輸級 (RTL) 綜合方法稱為芯片綜合,它比以往任何時候都更容易實現(xiàn)對最終性能的快速準確評估,而無需創(chuàng)建完整的物理實現(xiàn)。結(jié)合這兩種技術(shù),設(shè)計人員可以快速改變設(shè)計參數(shù),獲得正確的性能數(shù)字,并在面積、性能和功耗方面達到最佳組合的設(shè)計。
更大的馬力,更好的抽象
各類嵌入式軟件,尤其是高清視頻處理等具有高吞吐量要求的軟件,經(jīng)常會遇到性能問題。雖然可以使用一些軟件方法來提高性能,但當性能下降幾個數(shù)量級時,唯一可行的方法是更改??運行軟件的底層計算結(jié)構(gòu),這可能就像切換到多核處理器一樣簡單。然而,通常由于功率或成本的原因,改變計算結(jié)構(gòu)并不是最優(yōu)的。
HLS 是一種越來越有吸引力的方法,它采用軟件的一部分并在硬件中自動實現(xiàn)它,無論是在片上系統(tǒng) (SoC) 上的原始門中,還是在 FPGA 中更好。AutoESL 的 AutoPilot 是一個將 C、C++ 或 SystemC 作為輸入并快速生成 RTL Verilog 或 VHDL 作為輸出的工具的示例。
與此同時,SoC 設(shè)計人員正在尋找將設(shè)計推向更高抽象層次的方法,用 C 或 SystemC 描述他們的算法,自動將其轉(zhuǎn)換為 RTL 代碼,并達到面積(成本)的正確權(quán)衡點,功率和性能。通過在更高級別上工作,設(shè)計人員可以顯著提高他們的生產(chǎn)力,并確保 QoR 接近或優(yōu)于手動編碼結(jié)果。同樣,HLS 工具是執(zhí)行從輸入到 RTL 代碼的優(yōu)化轉(zhuǎn)換的鏈接。然后,傳統(tǒng)的 RTL 實現(xiàn)流程可以接管。
進入評估
說 HLS 使硬件編譯像軟件的 C 語言編譯一樣簡單可能有些夸張,但它確實使軟件到硬件的轉(zhuǎn)換變得簡單,尤其是與手動創(chuàng)建復雜的 RTL 實現(xiàn)相比。硬件編譯比軟件編譯更復雜的一個原因是 HLS 工具需要考慮一組更豐富的權(quán)衡。
例如,數(shù)據(jù)路徑可以簡單地實現(xiàn)、流水線化或復制。這些選項中的每一個都具有不同的性能、面積和功率特性,其變化因子高達 1,000。可以為 HLS 工具提供指令,以將實現(xiàn)導向設(shè)計人員想要的最佳位置。但是有一個問題:鑒于 HLS 的輸出是 RTL 代碼,設(shè)計人員如何快速確定特定候選實現(xiàn)的面積、功耗和性能?
缺少的環(huán)節(jié)是難以評估這些特征并獲得有關(guān)任何問題的快速反饋。雖然 HLS 工具提供了合理但相當粗略的估計,但通常需要更高的準確性。但是,用于將 RTL 代碼縮減為實現(xiàn)的傳統(tǒng)工具的性能與 HLS 工具的性能之間存在不匹配。
盡管 HLS 運行速度極快(大約一個小時左右),但減少 RTL 實現(xiàn)以實現(xiàn)準確的性能可能需要半天的綜合時間,然后是一天半的物理設(shè)計。這幾乎不是 HLS 用戶想要的快速反饋循環(huán),因為它浪費了每天迭代五到六次的潛力,并將其最小化為每周幾次。這些較新的 HLS 工具的功能與語言無關(guān),可以同時優(yōu)化時序、面積和性能,從而生成高度可實現(xiàn)的 RTL 代碼,但被下游 RTL 綜合邊緣化。
塊和芯片
另一個細微差別是,塊的詳細性能不僅取決于塊本身,還取決于它周圍的其他塊。有時,從高層綜合的整個設(shè)計包括傳統(tǒng)模塊、第三方 IP 模塊和在 RTL 級別手工設(shè)計的模塊。當這些塊一起實現(xiàn)時,任何特定塊的性能都與共享某些相同物理資源的其他塊的性能相互關(guān)聯(lián)。
對于傳統(tǒng)的 RTL 綜合,設(shè)計人員面臨著一個沒有吸引力的選擇:快速但粗略的反饋或準確但極慢的反饋。所需要的是一種提供快速和準確反饋的方法。Oasys Design Systems 的 RealTime Designer 等芯片綜合工具提供了這種功能組合。
芯片綜合通過直接將 RTL 代碼簡化為布局元素來運行,因此與傳統(tǒng)綜合相比具有兩大優(yōu)勢:布局和布線。這個過程很快,而且時間和尺寸數(shù)據(jù)與最終實現(xiàn)設(shè)計時最終獲得的數(shù)據(jù)有很好的相關(guān)性。HLS 和芯片綜合的結(jié)合使獲取大量 C 代碼并快速獲得性能和面積的出色估計成為可能。這使設(shè)計人員可以更有效地專注于最合適的實施位置。此外,由于芯片合成可以快速處理巨大的塊,它可以合成正在設(shè)計的塊以及影響性能的周圍塊。
區(qū)別很明顯
芯片合成的工作方式與傳統(tǒng)合成不同。一旦 RTL 代碼被解析,它就會被分割(基于連通性)成更小的段,最終將被簡化為門。每個分區(qū)都足夠小,不會包含任何長線,這會導致時序的高度可變性,并且足夠大,可以包含具有潛在不同區(qū)域/時間權(quán)衡的實現(xiàn)。每個分區(qū)都獨立于其他分區(qū)。當然,需要所有其他分區(qū)的時序編號才能對整個芯片進行計時,但并不需要同時要求每個分區(qū)的詳細內(nèi)部結(jié)構(gòu)。因為不再需要在門級同時查看整個芯片,所以減少了內(nèi)存需求。
RTL 分區(qū)方法是芯片綜合能夠如此快速和有效的主要原因。通過在更高的層次上運行,這種方法一次智能地綜合和計時設(shè)計一個分區(qū)。然后,在滿足時序之前,它會重新綜合、替換(并更新全局路由)并重新劃分設(shè)計的各個部分,直到滿足約束條件。
使用最新的 HLS 和芯片合成技術(shù)在更高水平上工作會產(chǎn)生數(shù)量級的更好性能。對于 HLS 創(chuàng)建的典型設(shè)計規(guī)模,芯片綜合的運行時間與 HLS 大致相同。將這兩種創(chuàng)新技術(shù)結(jié)合使用意味著可以在一兩個小時內(nèi)對設(shè)計進行迭代,從而每天可以考慮多次試驗實施。通過這種方法騰出的額外時間可以用于更緊湊的時間表或探索更豐富的替代空間。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1644文章
21989瀏覽量
615140 -
芯片
+關(guān)注
關(guān)注
459文章
52287瀏覽量
437551 -
soc
+關(guān)注
關(guān)注
38文章
4357瀏覽量
221950
發(fā)布評論請先 登錄
電纜隧道綜合監(jiān)測的技術(shù)應用分析

如何綜合性測試一款電源芯片?——以ASP3605芯片為例
綜合配線柜是干什么的
機房動環(huán)綜合監(jiān)控系統(tǒng)功能
電磁兼容與電磁環(huán)境綜合測試系統(tǒng)

設(shè)備綜合管理階段的特點

什么是綜合能源管理平臺?

軟件在芯片設(shè)計中有什么作用
基于FPA的軟件工作量綜合評估研究與實踐
淺析綜合能耗監(jiān)測系統(tǒng)在大型園區(qū)的應用

評論