日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 艾思后端實現(xiàn)


In-place MBFF實現(xiàn)

相較于僅基于邏輯連接的MBFF封裝,如果考慮到布局的實際情況,那么就有physical aware的in-place的MBFF封裝實現(xiàn),這種思路可以應(yīng)用在常見的DCT/DCG/genus_PLE 等綜合流程。
和in-compilre相比,這種in-place的MBFF封裝,最大的優(yōu)勢,就是physical aware。譬如如下示意圖:

可見,工具將距離較近的SBFF封裝成了MBFF,簡單而言,工具的在封裝MBFF時候會更為謹(jǐn)慎(嚴(yán)苛),相應(yīng)的MBFF的封裝比率也自然會下降。

這里以DCT為例,它提供了一種in-place的MBFF實現(xiàn)方式:一種基于綜合結(jié)果的MBFF封裝方法。具體實現(xiàn)方法如下

		

set_multibit_options -mode none compile_ultra -gate_clock -scan -spg identify_register_banks source MBFF_SCR compile_ultra -gate_clock -scan -incremental -spg

和In-compile相比,這里需要注意兩個地方

  • 在compile命令中,跳過MBFF封裝步驟
  • 使用spg模式運行compile命令
  • 基于綜合結(jié)果使用命令identify_register_banks,完成MBFF的in-place體交換。效果見下圖:

    PS:封裝后的MBFF的坐標(biāo),是在原始SBFF的中間位置
  • MBFF優(yōu)化后,需要使用compile -incremental進行進一步增量優(yōu)化,來平抑MBFF帶來的QoR影響
這種in-place的MBFF替換有下列好處
  • 基于實際物理布局的情形進行MBFF有效替換:
    • 相較常規(guī)的MBFF有了物理布局影響的考量,可以有針對性地進行MBFF封裝,這個對于最終的物理實現(xiàn)有很好的幫助
    • 傳統(tǒng)的in-compilre的MBFF封裝,先做封裝,再做優(yōu)化,這樣很有可能導(dǎo)致優(yōu)化受限
  • 可選擇的基于WNS的封裝方式,可以有效控制MBFF封裝對WNS的影響
綜上可以看出,如果是使用了in-place方式進行MBFF優(yōu)化,那么這個布局的結(jié)果,一定是要傳遞給后端版圖工具,所以需要SYN和APR聯(lián)動起來,S家的流程如下:
# SYN flow: dc_shell> set hdlin_infer_multibit never\|default_none
dc_shell> compile_ultra -gate_clock -scan -spg dc_shell> identify_register_banks 
dc_shell> compile_ultra -gate_clock -scan -incremental -spg dc_shell> write_file -format ddc -hierarchy top.ddc #APR flow: icc_shell> create_mw_lib ...
icc_shell> read_ddc
icc_shell> ...... icc_shell> place_opt_design -spg ...... 
可以看到。S家是通過SPG flow將此信息緊密聯(lián)動的,所以說,如果用戶使用了in-place的MBFF的流程,那么需要使用SPG流程完成這個信息的有效傳遞。相較傳統(tǒng)的in-compile的MBFF流程,MBFF的對APR實現(xiàn)的挑戰(zhàn)會變小。

APR階段的MBFF封裝

從上述的描述可以看到,綜合里邊可以有效地處理MBFF的封裝實現(xiàn)。對應(yīng)的,基于MBFF的封裝原理,除過上述SPG的MBFF流程外,APR階段也可以自己對MBFF進行封裝,以實現(xiàn)PPA的優(yōu)化。市面上常見的APR工具是S家ICC/ICC2和C家的innovus,這兩個工具都可以對MBFF進行封裝,原理是類似的,具體描述見下:
  • ICC flow
基于對place 步驟的拆解,這里可以分為三個方法
  1. Flow1:SPG flow,參見上述綜合的In-place MBFF封裝方法
  2. Flow2:coarse placement MBFF flow
icc_shell> create_mw_lib ...
icc_shell> read_verilog
icc_shell> ...... icc_shell> set_banking_guidance_strategy \ -input_map_file MBFF_map.file \ -register_group_file MBFF_reg_grp.rpt \ -output_file MBFF_assembly.tcl
icc_shell> create_placement ...... icc_shell> source ./MBFF_assembly.tcl
icc_shell> place_opt_design -skip_initial_placement ...... 
先配置MBFF的應(yīng)用策略,再創(chuàng)建粗布局(coarse placement),工具這個時候會根據(jù)粗布局的結(jié)果,構(gòu)建MBFF封裝方式,這個和in-place的MBFF封裝流程類似,然后用戶將導(dǎo)出的文件MBFF_assembly.tcl讀入,完成MBFF的封裝動作。最后使用place_opt_desing進行增量式優(yōu)化,完成MBFF的封裝實現(xiàn)。上述的兩個輸入文件:MBFF_map.fileMBFF_reg_grp.rpt都是在DC工具通過命令write_multibit_guidance_files來導(dǎo)出,以便指導(dǎo)ICC的MBFF封裝方式。
  1. Flow3:place_opt MBFF flow
icc_shell> place_opt 
icc_shell> set_banking_guidance_strategy \ -input_map_file MBFF_map.file \ -output_file MBFF_assembly.tcl
icc_shell> create_banking_guidance
icc_shell> source MBFF_assembly.tcl
icc_shell> psynopt 
基于SBFF的網(wǎng)表,完成正常的place_opt,然后基于物理布局結(jié)果,進行MBFF的封裝實現(xiàn),最后再做一次增量優(yōu)化,即可完成MBFF的優(yōu)化實現(xiàn)過程。如下圖示例:
  • INVS flow
相較于S家的多個流程的選擇,C家的流程比較簡單,這個也符合兩家一貫的風(fēng)格,S家細致貼心,C家直接高效。C家除過對MBFF的封裝(merge)以外,也會支持對MBFF打散(split),這些只需要在place階段進行直接配置就好
invs_shell> setOptMode \ -multiBitFlopOpt {true| false | mergeOnly | splitOnly} \ -multiBitFlopOptIgnoreSDC {true | false} 
其中:
multiBitFlopOpt==true: timing_driven 下的MBFF封裝和打散 multiBitFlopOpt==false: 禁止MBFF操作,數(shù)據(jù)庫里邊有的MBFF不受影響 multiBitFlopOpt==mergeOnly: timing_driven 下MBFF的封裝操作 multiBitFlopOpt==splitOnly: timing_driven 下MBFF的打散操作 
任何階段設(shè)置了setOptMode配置,任何階段使用place_opt_design | optDesign等命令,都會根據(jù)這個設(shè)定進行相應(yīng)的優(yōu)化,這個選項也會被完整地保存在invs的數(shù)據(jù)庫中。在invs的任何優(yōu)化后的數(shù)據(jù)庫中,可以使用命令reportMultiBitFFs -statistics 對MBFF的替換結(jié)果進行統(tǒng)計報告:這個評價系統(tǒng)和DC有一些相似之處,但是對于MBFF替換比率的表達,這里采用了Bit Per Flop:平均計算下,單個FF可以承擔(dān)的FF bit數(shù)量。這個值越高,說明MBFF的替換比率就越高,反之亦然。Invs還提供了一個pin map的報告文件,(PS:這個需要在invs的session里邊導(dǎo)出),命令是:dumpMultiBitFlopMappingFile。這個可以生成
  • MBFF的封裝(merge)和打散(splie)的動作細節(jié);
  • 原先的SBFF(D/Q)和MBFF(D*/Q*)的pin mapping的對應(yīng)關(guān)系

MBFF的命名

基于上述MBFF的實現(xiàn)方法和流程,MBFF的產(chǎn)生通常分為四種
  • DC的in-compile 封裝MBFF
  • DC的in-place封裝MBFF
  • ICC的in-place封裝MBFF
  • Invs的in-place封裝MBFF
  1. 手冊給出的示范如下
但是經(jīng)過測試,得到的是類似下列的封裝方式:這種命名方式可能會對formal的mapping有一定挑戰(zhàn),需要注意一下
  1. 第二種和第三種都是in-place的方式,也是使用工具導(dǎo)出的命令進行MBFF的封裝,這樣如果命名不是很友好,用戶可以通過調(diào)整腳本進行命名維護,對用戶后期的工作較為友好
這個默認模式就是簡單將FF的名字使用”_”進行連接。
  1. 第四種是invs是在in-place步驟進行封裝的,用戶對命名不能干預(yù),
Invs的方法比較友好,前邊使用了CDN_MBIT作為MBFF的引示,中間每一個SBFF都用MB進行引示,這個命名規(guī)則比較好理解,formal也比較容易區(qū)分。常言道,簡潔即簡單,看來invs不讓用戶干預(yù)命名,還是對自己的處理很有自信的。

流程梳理和推薦

基于上述陳述,對于MBFF的優(yōu)化方式已經(jīng)有了比較全面的理解,這里提供一些具體的數(shù)據(jù)供各位參考:
  1. DCT采用in-place的MBFF封裝流程:

  1. invs基于netlist,進行的MBFF封裝流程

  1. invs基于DCT in-place的netlist,進行的MBFF封裝流程

結(jié)合上述結(jié)果,和各個流程的特點,這里有一些建議和推薦
  • MBFF可以在三個步驟進行封裝實現(xiàn):RTL,SYN,APR
  • 綜合階段通常只作封裝,不做打散,
  • APR階段需要基于時序進行封裝和打散,timing driven依賴
  • MBFF的封裝對SBFF的布局有嚴(yán)重依賴:這點符合timing driven的目的
基于此,這里推薦兩個flow供大家選擇
  • SYN-APR MBFF flow
    • SYN 打開MBFF優(yōu)化流程
    • APR需要加載SYN吐出的initial placement DEF或者ddc。
    • APR 使用skip_initial_placement 的place_opt命令,完成對MBFF的APR實現(xiàn)
  • APR MBFF flow
    • 基于SBFF的綜合數(shù)據(jù),在APR的place_opt階段開始實現(xiàn)MBFF
    • 時序驅(qū)動模式下,工具可以自動實現(xiàn)后續(xù)步驟的MBFF的封裝和打散操作

【敲黑板劃重點】

MBFF的流程貫穿在整個設(shè)計實現(xiàn),最終的服務(wù)對象還是APR和時序分析。通過理解其流程,可以做出適用于自身設(shè)計的方案選擇,有效利用其優(yōu)勢,讓MBFF助力設(shè)計實現(xiàn),


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉