為便于說明,這里我們給出一個應用案例。DFX設計中有兩個RP:count和shift。每個RP下分別有兩個RM,即count下有count_down和count_up兩個RM,shift下有shift_left和shift_right兩個RM,如下圖所示。

標準的DFX流程會形成兩個configuration,如下圖所示。config_1為static + count_up +shift_right,config_2為static +count_down + shift_left。在此基礎上形成兩個Design Runs,其中parent run為impl_1,child run為child_0_impl_1,如下圖所示。


執行impl_1,直至生成布線后的.dcp文件,共4個。top_routed.dcp:整個設計布線后的.dcp文件(static + count_up + shift_right)top_routed_bb.dcp:靜態區布線后的.dcp文件(static + count_blacbox + shift_blackbox)此時,靜態區布局布線信息被鎖定,每個RP被當作黑盒子。u_count_count_up_routed.dcp:RM count_up布線后的.dcpu_shift_shift_right_routed.dcp:RM shift_right布線后的.dcp
Abstract Shell流程和標準的DFX流程至此操作是相同的。接下來Abstract Shell流程就需要對每個RP生成相應的Abstract Shell。此時需要用到的文件是top_routed.dcp。打開該文件執行命令write_abstract_shell,如下圖所示。
以圖中第19行代碼為例,write_abstract_shell會首先通過命令update_design -blackbox將RP count的RM換為黑盒子,之后鎖定相關靜態區與之的接口信息以及RP count的位置信息,并生成相應的.dcp文件即ab_sh_count.dcp。這個過程中還會執行pr_verify命令(這些命令都被包含在wrtie_abstract_shell中,不需要單獨執行)。

打開ab_sh_count.dcp,可以看到Netlist窗口下顯示的信息除了靜態區部分cell之外就是RP count對應的黑盒子u_count,同時左側Physical Constraints窗口表明RP count的位置信息已經被鎖定。
同樣地,也要生成另外一個RP即RP shift對應的Abstract Shell文件:ab_sh_shift.dcp。接下來分別用這兩個AbstractShell文件生成各自RP下新的RM對應的.dcp文件。例如,對于RP count,添加ab_sh_count.dcp,添加count_down綜合后的.dcp文件count.dcp,執行布局布線,生成相應的.dcp,相關命令如下圖所示。
同樣地,需要生成RP shift下新的RM對應的.dcp。由于這兩個操作只需要各自對應的Abstract Shell,故相互獨立互不干擾,從而可并行執行,縮短編譯時間。


最后,生成相應的Partial Bitstream文件。比較簡單的方法是直接利用Abstract Shell方式生成的.dcp文件生成對應的Bitstream。例如:利用abstract_shell_count_down_routed.dcp可生成count_down對應的Bitstream文件。

對比標準DFX設計流程和AbstractShell流程如下圖所示。

編輯:jq
-
RM
+關注
關注
0文章
14瀏覽量
36667 -
DCP
+關注
關注
0文章
30瀏覽量
17862 -
DFx
+關注
關注
0文章
36瀏覽量
11113
原文標題:Abstract Shell流程分析(2)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Air8000-LuatOS exvib擴展庫實操指南:全流程技術細節深度解讀
shell基本介紹及常用命令之shell基本介紹
HarmonyOSAI編程智能代碼解讀
RK3128 Android 7.1 進入深度休眠流程分析
直播 | GB/T 45086與ISO11451標準深度解讀研討會筆記請查收!
瑞薩365 深度解讀
蘋果A20芯片的深度解讀
ARM Mali GPU 深度解讀
Arm 公司面向 PC 市場的 ?Arm Niva? 深度解讀
Arm 公司面向移動端市場的 ?Arm Lumex? 深度解讀
PCB表面處理丨沉錫工藝深度解讀
英偉達Cosmos-Reason1 模型深度解讀
樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本!
深度解讀Abstract Shell流程
評論