您可點(diǎn)擊開發(fā)者分享|AMD Versal 自適應(yīng) SoC 器件 Advanced Flow 概覽(上)查看上篇文章。
新流程的使用指南
在 AMD Vivado DesignSuite 2024.2 版本中,Advanced Flow 自動(dòng)為所有 AMD Versal 自適應(yīng) SoC器件啟用。請(qǐng)注意,Advanced Flow 不支持上一代 7 系列、AMD UltraScale FPGA 和 UltraScale plus 器件。
由于新流程包含在 Vivado 后端布局布線中并集成于用戶熟悉的 Vivado IDE,因此 Vivado 前端設(shè)計(jì)流程沒有變化,用戶無需學(xué)習(xí)新的設(shè)計(jì)環(huán)境。IP Integrator,IP 定制和 RTL 開發(fā)與舊流程相同。Project 和 non-project 流程以及相關(guān)的 Tcl 描述基本保持不變。
下表記錄了由于引入 Advanced Flow 而導(dǎo)致的 Implementation 中的一些關(guān)鍵變化。

盡管整體設(shè)計(jì)流程不會(huì)發(fā)生變化,但 Placer Directive 存在顯著差異。
與先前 Vivado 版本不同,Advanced Flow 將 Directive列表簡化為下圖所示的五個(gè):Quick、RuntimeOptimized、Default 和 Explore以及 AggressiveExplore。其中,前四個(gè)與以前一致,AggressiveExplore 為新添的 Directive。這些選項(xiàng)為 place_design 命令提供了不同的行為模式,并影響所有布局器階段。

Advanced Flow 對(duì) Directive 使用與前相同的選項(xiàng)和語法。例如,place_design -directive AggressiveExplore 以最大的努力運(yùn)行布局器以滿足時(shí)序約束,但代價(jià)是更長的運(yùn)行時(shí)間。另一方面,選擇 Runtime Optimized 會(huì)犧牲一些滿足時(shí)序的努力來換取更快的編譯速度。與以前一樣,指令在工具設(shè)置菜單中可用,可用于創(chuàng)建Implementation 策略。
Subdirective 是 Advanced Flow 中的新布局選項(xiàng)。此選項(xiàng)提供對(duì)布局的不同階段的更細(xì)粒度控制:布局規(guī)劃(Floorplan)、全局布局(GPlace)和詳細(xì)布局(DPlace)。與 Directive 互斥使用不同,用戶可以同時(shí)應(yīng)用多個(gè)Subdirective,這意味著您還可以將多個(gè) Subdirective 與一個(gè) Directive 選項(xiàng)組合起來以進(jìn)行更廣泛的探索。
下面的表格顯示了當(dāng)前支持的 Subdirective 列表及其主要用途。不同的 Subdirective 可以應(yīng)用于布局的一個(gè)或多個(gè)階段。借助 Advanced Flow,這些 Subdirective 可以解鎖更多可能性,以探索不同的選項(xiàng)組合,從而增加極具挑戰(zhàn)性的設(shè)計(jì)的時(shí)序收斂可能性。這比原始單一的 Directive 選項(xiàng)涵蓋了更多的解決方案空間。

Tcl 用法示例:

每個(gè) Subdirective 選項(xiàng)都以布局器階段名稱作為前綴,如果適用,后面會(huì)跟 high|med|low 的級(jí)別值。而有些只需要指定 Subdirective 表示啟用此優(yōu)化,格式如下:

在此示例中,由于 -directive 選項(xiàng)是 Explore,布局器最初會(huì)為 Floorplan、GPlace 和 DPlace 的每個(gè)階段選擇 Explore 設(shè)置。然后,除了 Explore選 項(xiàng)之外,還會(huì)應(yīng)用 Subdirective 選項(xiàng)。對(duì)于此示例,在 Floorplan 階段使用BalancedSLR 中級(jí),在 GPlace 階段應(yīng)用 ReduceCongestion 高級(jí),在 DPlace 階段使用 ReducePinDensity 高級(jí)。
前面提到過,不同的 Subdirective 可以應(yīng)用于不同的布局階段,了解每個(gè)布局階段可以應(yīng)用哪些 Subdirective 非常重要。下圖將 Floorplanning,GPlace 和 DPlace 階段適用的 Subdirective 做了一個(gè)梳理:

在這里,我們看到左側(cè)的三個(gè)選項(xiàng):RuntimeOptimized、ExtraTimingUpdate 和 ExtraTimingOpt 適用于所有布局階段。
在右側(cè),我們可以看到哪些選項(xiàng)僅適用于某些階段。例如,BalancedSLR 只能在布局規(guī)劃階段的早期應(yīng)用,因?yàn)樗鼤?huì)影響設(shè)計(jì)的分區(qū)方式,后面的階段就太晚了。此外,像 ReducePinDensity 這樣的設(shè)置只能在 Detailed Placement 期間應(yīng)用,因?yàn)樗婕霸诮咏猜曤A段對(duì)單元布局進(jìn)行微調(diào)。
對(duì)于不同 Subdirective 是否需要指定

讓我們進(jìn)一步看看舊流程(Standard Flow)的 Directive 如何映射到 Advanced Flow 中與其等效的 Subdirective。
如前所述,Versal 的 Advanced Flow 支持熟悉的 Default、Explore、RuntimeOptimized 和 Quick directive。

許多 Standard Flow Directive 可以使用 Subdirective 和其他布局器選項(xiàng)轉(zhuǎn)換為 Advanced Flow。一個(gè)簡單的例子是“EarlyBlockPlacement”,它直接映射到 Subdirective“Gplace.EarlyBlockPlacement”。
某些指令(如 Alt Spread Logic)需要更復(fù)雜的轉(zhuǎn)換,Alt Spread Logic 映射到所有布局器階段的多個(gè)子指令。

在某些情況下,Directive 被其他選項(xiàng)替換。Extra net delay high 和 Extra net delay low 分別被新的 Advanced Flow place_design 選項(xiàng)替換,該選項(xiàng)具有類似的名稱 net_delay_weight,取值 high 和 low。一個(gè)主要優(yōu)點(diǎn)是,與額外的 -direcvite ExtraNetDelay 不同,-net_delay_weight可以與其他 Directive 和 Subdirective 一起使用,從而解鎖更多可能的組合。
另外,并非所有指令都可以轉(zhuǎn)換為 Advanced Flow 等效選項(xiàng),如不支持的表格中所示。

使用 Advanced Flow placer directive 實(shí)現(xiàn)時(shí)序收斂,請(qǐng)參考以下的推薦方法。

在第一組運(yùn)行中,嘗試三個(gè)基本 Directive:Default、Explore 和 AggressiveExplore,看看是否有任何 Directive 符合時(shí)序要求。
如果時(shí)序要求不滿足,請(qǐng)使用 Run #1 中性能最佳的 directive,并與圖中所示的幾個(gè)關(guān)鍵 Subdirective 相結(jié)合。
如果第二組運(yùn)行仍未產(chǎn)生時(shí)序收斂結(jié)果,請(qǐng)采用 Run #2 中性能最佳的組合,并應(yīng)用如 Run #3 中所示的其他Subdirective。
這種有條不紊的方法比簡單地迭代整個(gè) Directive 和 Subdirective 集合更有效,后者在編譯時(shí)間和計(jì)算資源方面成本極高。
請(qǐng)務(wù)必記住,Advanced Flow 不能替代良好的設(shè)計(jì)方法,檢查方法違規(guī)行為(report_methodology)也很重要,因?yàn)檫@些違規(guī)行為可能會(huì)導(dǎo)致時(shí)序收斂障礙。
舊版本的 AMD Versal 自適應(yīng) SoC 設(shè)計(jì)移植
所有 AMD Versal 自適應(yīng) SoC工程升級(jí)到 2024.2 時(shí),都需要切換到 Advanced Flow。如果您有一個(gè) 2024.1 Versal 的 AMD Vivado Design Suite 工程,在 2024.2 中打開此工程時(shí),您將看到一個(gè)對(duì)話框,指示必須升級(jí)工程。

假設(shè)您已查看流程中的關(guān)鍵更改(例如 Intelligent Design Runs 和 Incremental compile 流程還不支持),并同意升級(jí)到 2024.2,最好先存檔您的項(xiàng)目或設(shè)計(jì),因?yàn)榇诉w移不可逆,工具將重置所有的 Implementation run 并將選項(xiàng)設(shè)置為 Advanced Flow 布局和布線。
關(guān)于工程的 Implementation 策略,需要遵循一些實(shí)施指南:
為了便于項(xiàng)目流程遷移,大多數(shù)策略都直接在 Advanced Flow 中受支持,如前所述,布局器 Directive 映射到其等效的 Advanced Flow directive、subdirective 和布局器選項(xiàng)。
遇到不受支持的策略時(shí),Vivado 會(huì)生成警告消息,并在選擇默認(rèn)策略后繼續(xù)。
用戶自定義的策略無法自動(dòng)轉(zhuǎn)換為其 Advanced Flow 等效策略,而是映射到默認(rèn)策略。
可以使用新的布局器subdirective和選項(xiàng)創(chuàng)建新的用戶定義策略。策略編輯器完全支持 Advanced Flow。
如果使用 Tcl 命令的方式打開工程,設(shè)計(jì)將自動(dòng)升級(jí),并且消息將回顯到 Tcl 控制臺(tái),通知您進(jìn)度以及配置的選項(xiàng)和策略。DCP 文件 也需要升級(jí)。如果您將 place_design 之前的 DCP 添加到項(xiàng)目中,或者單獨(dú)打開 DCP,則 DCP 將在內(nèi)存中自動(dòng)讀取和升級(jí)。如果 DCP 是 place_design 完成后的,這將導(dǎo)致錯(cuò)誤情況,因?yàn)?DCP 中保存的現(xiàn)有布局和布線數(shù)據(jù)庫與 Advanced Flow 不兼容。
在使用 non-project 模式的情況下,用戶可以自己管理源文件和設(shè)計(jì)過程。在執(zhí)行 non-project Tcl 腳本期間,布局和布線過程中會(huì)出現(xiàn)一些含有“Advanced Flow”的 INFO 信息。
由于 Advanced Flow 僅適用于 Versal,因此非 Versal 項(xiàng)目不受此更改的影響。此外,如果您有一個(gè) 2024.1 設(shè)計(jì),并且已經(jīng)在使用 Advanced Flow 的 Early Access 版本,則應(yīng)該也不會(huì)受到任何影響。
總結(jié)
本文介紹了 AMD Versal 自適應(yīng) SoC的 Advanced Flow,這是 AMD Vivado Design Suite2024.2 版本提供的一套新的布局布線功能。
Advanced Flow 采用改進(jìn)的架構(gòu),可以更好地并行編譯分區(qū),并采用新算法來減少布線擁塞,更好地處理具有大量全局時(shí)鐘的復(fù)雜設(shè)計(jì)布局。
這些改進(jìn)縮短了整體設(shè)計(jì)周期,使您能夠在更短的時(shí)間內(nèi)完成時(shí)序收斂,提高設(shè)計(jì)效率。
-
amd
+關(guān)注
關(guān)注
25文章
5708瀏覽量
140448 -
soc
+關(guān)注
關(guān)注
40文章
4635瀏覽量
230272 -
命令
+關(guān)注
關(guān)注
5文章
759瀏覽量
23975 -
Versal
+關(guān)注
關(guān)注
1文章
176瀏覽量
8546
原文標(biāo)題:開發(fā)者分享|AMD Versal? 自適應(yīng) SoC 器件 Advanced Flow 概覽(下)
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在AMD Versal自適應(yīng)SoC上使用QEMU+協(xié)同仿真示例
使用Aurora 6466b協(xié)議實(shí)現(xiàn)AMD UltraScale+ FPGA與AMD Versal自適應(yīng)SoC的對(duì)接
【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計(jì)算加速平臺(tái)之 Versal 介紹(2)
AMD Versal自適應(yīng)SoC中eMMC燒錄/啟動(dòng)調(diào)試檢查表(上)
AMD Versal自適應(yīng)SoC內(nèi)置自校準(zhǔn)的工作原理
Versal 自適應(yīng)SoC設(shè)計(jì)指南
Versal自適應(yīng)SoC系統(tǒng)集成和 確認(rèn)方法指南
AMD率先推出符合DisplayPort? 2.1 8K視頻標(biāo)準(zhǔn)的FPGA和自適應(yīng)SoC
AMD發(fā)布第二代Versal自適應(yīng)SoC,AI嵌入式領(lǐng)域再提速
第二代AMD Versal Prime系列自適應(yīng)SoC的亮點(diǎn)
AMD Versal自適應(yīng)SoC CPM5 QDMA的Tandem PCIe啟動(dòng)流程介紹
AMD Versal自適應(yīng)SoC DDRMC如何使用Micron仿真模型進(jìn)行仿真
AMD Versal自適應(yīng)SoC器件Advanced Flow概覽(上)
第二代AMD Versal Premium系列SoC滿足各種CXL應(yīng)用需求
AMD Versal自適應(yīng)SoC器件Advanced Flow概覽(下)
評(píng)論