0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度解讀Abstract Shell流程

OpenFPGA ? 來源:TeacherGaoFPGAHub ? 作者: TeacherGJ ? 2021-09-01 09:36 ? 次閱讀

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

7935e9b8-fd3c-11eb-9bcf-12bb97331649.png

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

7955ae4c-fd3c-11eb-9bcf-12bb97331649.png

79a348a0-fd3c-11eb-9bcf-12bb97331649.png

執(zhí)行impl_1,直至生成布線后的.dcp文件,共4個。top_routed.dcp:整個設(shè)計布線后的.dcp文件(static + count_up + shift_right)top_routed_bb.dcp:靜態(tài)區(qū)布線后的.dcp文件(static + count_blacbox + shift_blackbox)此時,靜態(tài)區(qū)布局布線信息被鎖定,每個RP被當(dāng)作黑盒子。u_count_count_up_routed.dcp:RM count_up布線后的.dcpu_shift_shift_right_routed.dcp:RM shift_right布線后的.dcp

Abstract Shell流程和標(biāo)準(zhǔn)的DFX流程至此操作是相同的。接下來Abstract Shell流程就需要對每個RP生成相應(yīng)的Abstract Shell。此時需要用到的文件是top_routed.dcp。打開該文件執(zhí)行命令write_abstract_shell,如下圖所示。

以圖中第19行代碼為例,write_abstract_shell會首先通過命令update_design -blackbox將RP count的RM換為黑盒子,之后鎖定相關(guān)靜態(tài)區(qū)與之的接口信息以及RP count的位置信息,并生成相應(yīng)的.dcp文件即ab_sh_count.dcp。這個過程中還會執(zhí)行pr_verify命令(這些命令都被包含在wrtie_abstract_shell中,不需要單獨執(zhí)行)。

79ea4d4a-fd3c-11eb-9bcf-12bb97331649.png

打開ab_sh_count.dcp,可以看到Netlist窗口下顯示的信息除了靜態(tài)區(qū)部分cell之外就是RP count對應(yīng)的黑盒子u_count,同時左側(cè)Physical Constraints窗口表明RP count的位置信息已經(jīng)被鎖定。

同樣地,也要生成另外一個RP即RP shift對應(yīng)的Abstract Shell文件:ab_sh_shift.dcp。接下來分別用這兩個AbstractShell文件生成各自RP下新的RM對應(yīng)的.dcp文件。例如,對于RP count,添加ab_sh_count.dcp,添加count_down綜合后的.dcp文件count.dcp,執(zhí)行布局布線,生成相應(yīng)的.dcp,相關(guān)命令如下圖所示。

同樣地,需要生成RP shift下新的RM對應(yīng)的.dcp。由于這兩個操作只需要各自對應(yīng)的Abstract Shell,故相互獨立互不干擾,從而可并行執(zhí)行,縮短編譯時間。

7a373632-fd3c-11eb-9bcf-12bb97331649.png

7a805664-fd3c-11eb-9bcf-12bb97331649.png

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

7ab2383c-fd3c-11eb-9bcf-12bb97331649.png

對比標(biāo)準(zhǔn)DFX設(shè)計流程和AbstractShell流程如下圖所示。

7b8571e8-fd3c-11eb-9bcf-12bb97331649.png

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RM
    RM
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    36377
  • DCP
    DCP
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    17182
  • DFx
    DFx
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    10501

原文標(biāo)題:Abstract Shell流程分析(2)

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之流程控制

    1、條件語句shell語句的流程控制與C語言不一樣,流程控制中不能為空。shell中if語法如下,其中confition表示條件判斷式,command為程序段落。if else語法
    發(fā)表于 09-05 09:06

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之流程控制

    1、條件語句 shell語句的流程控制與C語言不一樣,流程控制中不能為空。 shell中if語法如下,其中confition表示條件判斷式,command為程序段落。 if else
    發(fā)表于 09-04 10:12

    shell具有的功能和特點

    Shell 是一個命令行解釋器,用于與操作系統(tǒng)進行交互。它提供了一種方便的方式來執(zhí)行命令、管理文件和目錄、運行程序等。以下是 Shell 的功能和特點的介紹: 命令執(zhí)行 Shell 最基本的功能
    的頭像 發(fā)表于 08-30 14:48 ?273次閱讀

    shell基本介紹及常用命令之shell介紹

    一、Shell是什么?我們在剛開始接觸Linux的時候,經(jīng)常會聽到工程師提到Shell這個詞,剛開始不知道這是個干什么的,簡單的說,它是一個應(yīng)用,接收用戶命令,調(diào)用相應(yīng)的內(nèi)核接口函數(shù)或應(yīng)用程序,并
    發(fā)表于 08-15 09:28

    深度解讀 VCXO VG7050CDN:可變晶體振蕩器的卓越之選

    深度解讀 VCXO VG7050CDN:可變晶體振蕩器的卓越之選
    的頭像 發(fā)表于 07-24 10:58 ?271次閱讀

    100個Linux Shell腳本總結(jié)

    不知道大家有沒有發(fā)現(xiàn),會編寫shell腳本的運維,工資不會低,并且他的工作會很輕松!今天浩道跟大家分享每一個Linux運維應(yīng)知必會的100個shell腳本,雖然你工作中可能用不上,但是卻不能
    的頭像 發(fā)表于 12-05 09:28 ?1063次閱讀

    python shell怎么用

    Python Shell是一種交互式解釋器,可以通過命令行直接運行Python代碼。在Shell中,可以輸入一行代碼并立即得到結(jié)果,非常適合于測試、嘗試新代碼或進行簡單的任務(wù)。本文將詳細介紹
    的頭像 發(fā)表于 11-29 14:36 ?1035次閱讀

    Shell基本介紹及目錄常用命令

    01、Shell是什么?我們在剛開始接觸Linux的時候,經(jīng)常會聽到工程師提到Shell這個詞,那么Shell到底是什么呢?簡單的說,它是一個應(yīng)用,接收用戶命令,調(diào)用相應(yīng)的內(nèi)核接口函數(shù)或應(yīng)用程序,并
    的頭像 發(fā)表于 11-15 13:06 ?434次閱讀
    <b class='flag-5'>Shell</b>基本介紹及目錄常用命令

    linux命令行與shell編程實戰(zhàn)

    Linux命令行與Shell編程實戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行的基本操作,如文件管理、進程管理、網(wǎng)絡(luò)配置等。熟悉使用命令行能夠提高工作效率,提升自己的技能水平
    的頭像 發(fā)表于 11-08 10:57 ?687次閱讀

    linux命令和shell編程有什么聯(lián)系

    Linux命令和Shell編程之間存在密切的聯(lián)系。 首先,Shell是Linux命令行下的解釋器,它提供了一個用戶界面,使用戶能夠與Linux內(nèi)核進行交互。Shell解釋器可以解釋和執(zhí)行用戶輸入
    的頭像 發(fā)表于 11-08 10:53 ?845次閱讀

    shell運行javamain的方法

    Shell中運行Java Main類的方法可以通過以下步驟實現(xiàn): 確保你已經(jīng)安裝了Java開發(fā)工具包(Java Development Kit,JDK)。你可以通過在終端中輸入 java
    的頭像 發(fā)表于 11-08 10:30 ?759次閱讀

    shell并行執(zhí)行java腳本

    Shell是一種用于解釋執(zhí)行命令的腳本語言,而Java是一種跨平臺的面向?qū)ο缶幊陶Z言。在某些情況下,我們可能需要在Shell腳本中執(zhí)行Java程序。本文將介紹如何在Shell中執(zhí)行Java,并提
    的頭像 發(fā)表于 11-08 10:29 ?606次閱讀

    如何利用shell進行腳本程序的設(shè)計?

    利用Shell進行腳本程序的設(shè)計可以按照以下步驟進行: 選擇Shell解釋器:在Unix和Linux系統(tǒng)中,通常會默認安裝一個或多個Shell解釋器,其中最常見且功能強大的是Bash(Bourne
    的頭像 發(fā)表于 11-08 10:17 ?511次閱讀

    shell腳本基本命令

    Shell腳本是一種可執(zhí)行文件,它包含了一組用某種特定語言編寫的命令,這些命令可以被解釋器(如bash)執(zhí)行。以下是一些常見的shell腳本基本命令: echo命令:用于輸出字符串。例如, echo
    的頭像 發(fā)表于 11-08 10:08 ?1923次閱讀

    常見的一些shell script規(guī)則

    shell script對于硬件嵌入式行業(yè)從業(yè)者來說應(yīng)該是一個常用的工具,它是程序化腳本,是一種自動化管理linux的好工具了,所以對于嵌入式開發(fā)的工程師來說也是一個非常實用的工具。 并且在硬件行業(yè)
    的頭像 發(fā)表于 11-07 10:29 ?458次閱讀
    常見的一些<b class='flag-5'>shell</b> script規(guī)則