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

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

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

Tweake生成Timing 文件及生成Tweaker的主腳本介紹

芯華章科技 ? 來(lái)源:芯行紀(jì) ? 作者:芯行紀(jì) ? 2021-07-28 16:07 ? 次閱讀

作為第一次使用Tweaker的新手,可能會(huì)擔(dān)心Tweaker流程很麻煩。

不過(guò)無(wú)需擔(dān)心,Tweaker功能豐富,而且提供了完整的、經(jīng)過(guò)大量項(xiàng)目驗(yàn)證的、可以直接使用的參考流程。只要簡(jiǎn)單配置一下輸入文件,就可以快速地把Tweaker運(yùn)行起來(lái)。

這篇短文將手把手教大家運(yùn)行Tweaker,讓你們直觀感受Tweaker參考流程的魅力。

Job Monitor

分析剩余沒(méi)有修掉的原因

查看修復(fù)結(jié)果

P&R工具里實(shí)現(xiàn)ECO

Testcase介紹

這里是一個(gè)真實(shí)的設(shè)計(jì)。剛運(yùn)行完icc2,拿到了route_opt的database,PTSI的結(jié)果如下:

53d4aa94-ed0e-11eb-a97a-12bb97331649.png

Setup Violation有1710條,Hold Violation有816條。注:這里的條數(shù)是按Endpoint(nworst=1)算的,不是按照Path來(lái)算的。

Hold時(shí)序還可以,但是Setup有點(diǎn)差了。不過(guò)沒(méi)關(guān)系,可以拿來(lái)試下流程,不用追求Signoff Quality的PR結(jié)果。

接下來(lái)開(kāi)始搭建Tweaker的流程,一共3個(gè)步驟:生成Timing文件、生成Tweaker的主腳本和運(yùn)行Tweaker修Timing。

Tweaker流程step 1:生成Timing文件

Tweaker需要讀PT的Timing文件,包括SDF、TWF、Violated Path Report等。

Tweaker提供了腳本,可快速?gòu)腜T的Session里dump這些文件出來(lái)。腳本在Tweaker的安裝目錄下:。/etc/scripts/tcl/pt,如下圖(局部截圖)所示:

54318d68-ed0e-11eb-a97a-12bb97331649.png

只需要用其中一個(gè)主腳本即可。因?yàn)檫@個(gè)Design的STA用的是GBA Mode,所以可用如下腳本:dump_pt_to_tweaker.tcl。

用PT直接source這個(gè)腳本(需指定PT Session的位置),就能生成所有需要的Timing文件,如下圖所示:

546f60a2-ed0e-11eb-a97a-12bb97331649.png

Tweaker流程step 2:生成Tweaker的主腳本

搭建Tweaker流程腳本不用從零開(kāi)始,Tweaker的安裝目錄下,有大量的、完整的、可以直接使用的參考腳本。

54abc15a-ed0e-11eb-a97a-12bb97331649.png

從上圖可以看到,基本上所有的ECO功能和主流的工藝,都有參考腳本。而我們也不用自己去挑所需的工藝或功能,Tweaker自帶的Scripts Generator功能,能快速生成所需的Tweaker腳本。

在Tweaker的安裝目錄下(。/ect/template/twk_

utilities/special_command/script_generator),有個(gè)Script Generator的腳本,只需要去配置兩個(gè)config文件:tweaker_settings.config和script_tmplate。配置完這兩個(gè)文件后,就可以生成Tweaker的腳本,然后可以開(kāi)始做ECO。

第一個(gè)配置文件tweaker_settings.config:用于配置Tweaker的輸入(如下圖)。

55188cea-ed0e-11eb-a97a-12bb97331649.png

把lib庫(kù)、lef/def、網(wǎng)表,還有上一步生成的Timing文件等都填進(jìn)去,修Timing所需的Buffer、Delay Cell等也可以填進(jìn)去。

第二個(gè)配置文件script_template:用于配置ECO的流程,比如修Timing的策略、修哪些Violation、用的什么工藝等等(如下圖)。

557385c8-ed0e-11eb-a97a-12bb97331649.png

對(duì)這個(gè)Case,PR工具可以選擇icc2,STA工具選擇pt。它提供了很多ECO的功能選擇,這個(gè)Design可以先只修Setup和Hold。還有這個(gè)Design規(guī)模比較小,選擇用twf的模式來(lái)修,可以減少ECO迭代次數(shù)。

同時(shí)可以把Job Monitor打開(kāi),方便進(jìn)行Debug。

配置完兩個(gè)文件后,用Script Generator生成Tweaker主腳本:

5598d3f0-ed0e-11eb-a97a-12bb97331649.png

主腳本run.tcl生成后,run.tcl就會(huì)去調(diào)用所需要的各種腳本,不用我們親自去找。接下來(lái)就可以運(yùn)行Tweaker了。

Tweaker流程step 3:運(yùn)行Tweaker修Timing

這一流程用一個(gè)命令即可搞定:tweaker -t -cmd run.tcl。它就能按照我們的配置,去做Setup ECO和Hold ECO。

此外,除了簡(jiǎn)單的Tweaker Flow,Tweaker還提供強(qiáng)大的Debug功能:Job Monitor。

Job Monitor

剛才我們?cè)谂渲梦募锇袹ob Monitor設(shè)為1,所以運(yùn)行Tweaker時(shí)會(huì)自動(dòng)彈出Job Monitor界面,此處可以查看ECO的進(jìn)度以及其他信息。

55d2b408-ed0e-11eb-a97a-12bb97331649.png

Job Monitor里有大量非常有用的信息,比如可以看到“Task Table”里的步驟,包括它們都做了什么,每個(gè)步驟分別花了多少時(shí)間:

先是Datain,包括verilog、def、slack rpt、spef、sdf、twf等;

其次是Consistency Check,確保輸入的文件沒(méi)有問(wèn)題;

然后開(kāi)始修Setup,用了6種不同的方法去修;

接著開(kāi)始修Hold,用了8種不同的方法去修;

修復(fù)結(jié)束,寫(xiě)ECO腳本、報(bào)告和存Session。

如果想看修Setup的6種方法分別有什么效果,可以點(diǎn)擊左上角的“Scripts Finished”按鈕,然后得到以下曲線:

56337860-ed0e-11eb-a97a-12bb97331649.png

由上圖可見(jiàn),一開(kāi)始有1706個(gè)Violated Endpoints,然后Fix Setup第一個(gè)步驟將Violated Endpoints數(shù)目降到了446個(gè),第二個(gè)步驟繼續(xù)降到了347個(gè)……直到第6個(gè)步驟降到了315。然后是修Hold的步驟,可以看到修Hold時(shí)并沒(méi)有損害Setup,Setup保持得非常好。

也可以看修Hold的曲線:

5660004c-ed0e-11eb-a97a-12bb97331649.png

最開(kāi)始有809個(gè)Hold Violated Endpoints。Setup修完后,Hold還有762條,保持得非常好。這是因?yàn)門weaker在修Setup時(shí)會(huì)看Hold,同時(shí)在修Hold時(shí)也會(huì)看Setup。

Hold第一個(gè)步驟從762條修到了549條,第二個(gè)步驟修到了80條……到最后一個(gè)步驟,Hold只剩下54條了。

通過(guò)這張圖,不僅能看到修復(fù)的過(guò)程及結(jié)果如何,還可以快速分析出哪些步驟是最有效的,哪些步驟是低效或者無(wú)效的,然后可以有針對(duì)性地去改進(jìn)。

查看修復(fù)結(jié)果

可繼續(xù)用Job Monitor查看Summary。點(diǎn)擊Job Monitor界面上的Action Buttons -》 Tweaker QoR Info -》 QoR summary,會(huì)彈出網(wǎng)頁(yè)格式的Summary,信息非常豐富,此處可挑一些重點(diǎn)看看:

569611a0-ed0e-11eb-a97a-12bb97331649.png

在這里能快速看到,這個(gè)Design總共有224k的Instance,但在ECO Domain里只有8.5k的Instance,只占總Cell的1/3。這就是為什么ECO Domain能大大降低Memory使用和減少Runtime的重要原因之一。如果不用TWF Mode來(lái)修,而是基于slack rpt來(lái)修,ECO Domain可以繼續(xù)降低到10%,Runtime還可以再加快4倍!

看修復(fù)率:

56ccdb2c-ed0e-11eb-a97a-12bb97331649.png

Setup:按Endpoint個(gè)數(shù)算,修復(fù)率是83%;按Total Path TNS算,修復(fù)率是90%。

Hold:按Endpoint個(gè)數(shù)算,修復(fù)率是93%;按Total Path TNS算,修復(fù)率是64%。

最后再看看ECO的Cost:

56d90834-ed0e-11eb-a97a-12bb97331649.png

情況一目了然——總共插了1133個(gè)Cell(Buffer、Inverter、Delay Cell等),Size了32017個(gè)Cell,Cell面積約增加438.2,時(shí)間約20分鐘,用了近6.7GB的Memory。

分析剩余沒(méi)有修掉的原因

根據(jù)修復(fù)結(jié)果,Setup/Hold還有一些沒(méi)有修掉,為什么呢?Tweaker提供了多種分析功能,可選擇其中一種方法來(lái)分析——

打開(kāi)Slack Review,如下圖:

56fca802-ed0e-11eb-a97a-12bb97331649.png

總共290條Setup Violated Endpoints,都在ssgnp_0p675v_125c里。其中Clock Gating占了24條,core_clock_0占了266條。

點(diǎn)擊clock_gating_default那一行,下面就會(huì)列出這個(gè)Group所有的Violated Path。

可以看到,這些Path雖然還有Slack,但是Slack都已經(jīng)有所改進(jìn)(Diff這一欄是改進(jìn)的值),有的改進(jìn)少些(比如Path 3679,改善了17ps),有的改進(jìn)了很多(比如Path 3478,改進(jìn)了57ps)。

ICG的Timing本來(lái)就很難修,加上Clock Skew很大(參考Skew那一行),所以剩下的Path的確難以修復(fù)。但可以繼續(xù)看看具體是哪些潛在因素導(dǎo)致修不下去,比如雙擊第一條Path 3679,可得到如下Path View:

576ac24c-ed0e-11eb-a97a-12bb97331649.png

最后一列是Blocking Code,它解釋了這個(gè)Cell不能繼續(xù)修的原因是什么。隨意點(diǎn)擊上面一個(gè)B086做參考,出現(xiàn)下圖:

5795e562-ed0e-11eb-a97a-12bb97331649.png

它除了解釋Blocking Code的意思,同時(shí)還給出了可能的解決方案,即相關(guān)的三個(gè)變量,我們可以調(diào)整這三個(gè)變量的值來(lái)進(jìn)一步改進(jìn)修復(fù)率。

由于篇幅限制,此處不展開(kāi)敘述。

P&R工具里實(shí)現(xiàn)ECO

把剛才Tweaker寫(xiě)出來(lái)的ECO tcl文件給icc2做ECO:

icc2_shell》 source ECO.icc2_high_level.tcl。

icc2執(zhí)行結(jié)果如下:

57b7603e-ed0e-11eb-a97a-12bb97331649.png

可以看到,所有的ECO動(dòng)作都沒(méi)有問(wèn)題,都被成功地執(zhí)行了。

然后檢查L(zhǎng)egality:check_legality

57d1b2cc-ed0e-11eb-a97a-12bb97331649.png

可以發(fā)現(xiàn),新加的Cell和Size的Cell沒(méi)有任何的Legality的問(wèn)題。這就是Tweaker的Physical-Aware的強(qiáng)大之處。0 Displacement能讓ECO Route帶來(lái)的影響最小!

接下來(lái)做ECO 繞線:route_eco。

ECO繞線后,導(dǎo)出數(shù)據(jù),給STARRC和PT再做一次STA分析。看看ECO后,真實(shí)的Timing如何:

57f1db9c-ed0e-11eb-a97a-12bb97331649.png

可以看到,Tweaker修完后的Violation條數(shù),和PT看到的很接近,也就是Tweaker和PT的Correlation非常好。

Tweaker提供了強(qiáng)大的、易用的腳本,所以即使是新手,上手也非???。同時(shí),這些腳本經(jīng)過(guò)很多項(xiàng)目實(shí)踐,所以基本不用做什么修改,拿來(lái)即用。

同時(shí)Tweaker也提供了強(qiáng)大的Debug功能,即使是新手,也能快速分析問(wèn)題所在。

編輯:jq

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

    關(guān)注

    0

    文章

    51

    瀏覽量

    14837

原文標(biāo)題:Tweaker詳解系列 | ECO流程的典型實(shí)例應(yīng)用

文章出處:【微信號(hào):X-EPIC,微信公眾號(hào):芯華章科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    labview程序生成exe文件怎么還原

    在LabVIEW中,程序生成exe文件后,通常這個(gè)過(guò)程是不可逆的,即exe文件無(wú)法直接“還原”回原始的LabVIEW項(xiàng)目文件(.vi或.lvproj)。exe
    的頭像 發(fā)表于 09-04 17:12 ?596次閱讀

    labview工程文件如何生成exe

    生成可執(zhí)行文件(EXE)是LabVIEW程序開(kāi)發(fā)過(guò)程中的一個(gè)重要步驟,它允許用戶在沒(méi)有安裝LabVIEW的計(jì)算機(jī)上運(yùn)行程序。以下是步驟和注意事項(xiàng): 1. 準(zhǔn)備工作 在開(kāi)始生成EXE文件
    的頭像 發(fā)表于 09-04 17:09 ?762次閱讀

    labview怎么生成可執(zhí)行文件

    生成可執(zhí)行文件(EXE)是LabVIEW程序開(kāi)發(fā)中的一個(gè)重要步驟,它允許用戶將LabVIEW項(xiàng)目打包成一個(gè)獨(dú)立的應(yīng)用程序,便于在沒(méi)有安裝LabVIEW的計(jì)算機(jī)上運(yùn)行。 1. 準(zhǔn)備工作 在開(kāi)始生成
    的頭像 發(fā)表于 09-04 17:07 ?438次閱讀

    Efinity編譯生成文件使用指導(dǎo)-v1

    接上篇: (6)查看Unassigned Core Pins。 在placement下面的palce.rpt文件中搜索 Unassigned C ore Pins就可以看到。它說(shuō)明這些管腳沒(méi)有用于內(nèi)部連接。 大家可以點(diǎn)擊這個(gè)鏈接查看上文 Efinity編譯生成文件使用指導(dǎo)
    的頭像 發(fā)表于 08-13 14:22 ?575次閱讀
    Efinity編譯<b class='flag-5'>生成文件</b>使用指導(dǎo)-v1

    PSOC Creator無(wú)法生成Project_timing.html文件如何解決?

    PSOC Creator 無(wú)法生成 Project_timing.html 文件。 如何解決這個(gè)問(wèn)題? [圖片 1:成功建設(shè)的項(xiàng)目文件] [圖片 2:
    發(fā)表于 05-20 06:54

    Allegro生成光繪文件

    Allegro生成光繪文件
    發(fā)表于 05-06 10:37 ?1次下載

    labview生成exe后報(bào)表不能用

    LabVIEW是一款流程化的編程語(yǔ)言和開(kāi)發(fā)環(huán)境,廣泛應(yīng)用于工業(yè)自動(dòng)化、實(shí)驗(yàn)室研究、儀器儀表等領(lǐng)域。通過(guò)LabVIEW開(kāi)發(fā)的程序可以生成可執(zhí)行文件(.exe),方便用戶在沒(méi)有安裝LabVIEW開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 01-04 15:59 ?1856次閱讀

    labview生成exe文件如何配置文件

    LabVIEW是一種用于實(shí)時(shí)測(cè)試、控制和數(shù)據(jù)采集的編程環(huán)境。在開(kāi)發(fā)過(guò)程中,您可以使用LabVIEW軟件生成可執(zhí)行文件(.exe),以便在沒(méi)有LabVIEW開(kāi)發(fā)環(huán)境的計(jì)算機(jī)上運(yùn)行您的應(yīng)用程序。生成
    的頭像 發(fā)表于 12-27 16:28 ?1906次閱讀

    labview的opc生成配置文件

    的數(shù)據(jù)交互和通信。在 LabVIEW 中生成 OPC 配置文件有助于實(shí)現(xiàn)與其他設(shè)備的數(shù)據(jù)傳輸和共享,本文將詳細(xì)介紹如何生成 OPC 配置文件
    的頭像 發(fā)表于 12-26 17:57 ?1578次閱讀

    keil如何生成bin文件

    Keil是一種集成開(kāi)發(fā)環(huán)境(IDE),專為ARM架構(gòu)的嵌入式系統(tǒng)開(kāi)發(fā)而設(shè)計(jì)。在Keil中生成bin文件是將代碼編譯并轉(zhuǎn)換為可執(zhí)行文件的過(guò)程。本文將詳細(xì)介紹Keil
    的頭像 發(fā)表于 12-15 13:43 ?1.1w次閱讀

    ADgerber文件怎么生成PCB

    生成ADGerber文件是將電路板設(shè)計(jì)轉(zhuǎn)化為可供PCB加工廠制造的圖像文件的過(guò)程。下面詳細(xì)介紹關(guān)于如何生成ADGerber
    的頭像 發(fā)表于 12-07 17:19 ?3051次閱讀

    php生成動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容的方法

    PHP是一種廣泛用于Web開(kāi)發(fā)的腳本語(yǔ)言,可用于生成動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容。在本文中,我們將介紹使用PHP生成動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容的方法。 什么是動(dòng)態(tài)網(wǎng)頁(yè)? 動(dòng)態(tài)網(wǎng)頁(yè)是一種可以根據(jù)用戶請(qǐng)求和其他變量動(dòng)態(tài)
    的頭像 發(fā)表于 12-04 16:22 ?765次閱讀

    能夠生成java文檔注釋的命令

    文檔的包名和源代碼文件名,@files表示指定一個(gè)文本文件,它會(huì)列出其他要包含在生成的文檔中的包名和源代碼文件名。 下面是一些常用的選項(xiàng): -d directory :指定
    的頭像 發(fā)表于 11-29 14:12 ?729次閱讀

    simulink自動(dòng)生成ROS代碼

    Solver中的Type是否為Fixed-step,注意求解器一定要選離散型。 按下圖所示,打開(kāi)Build Model 完成后會(huì)生成一個(gè)sh文件和一個(gè)tgz文件。 找到以上文件
    的頭像 發(fā)表于 11-15 17:53 ?745次閱讀
    simulink自動(dòng)<b class='flag-5'>生成</b>ROS代碼

    如何適配新架構(gòu)?TPU-MLIR代碼生成CodeGen全解析!

    背景介紹TPU-MLIR的CodeGen是BModel生成的最后一步,該過(guò)程目的是將MLIR文件轉(zhuǎn)換成最終的Bmodel。本文介紹了CodeGen的基本原理和流程,并記錄了針對(duì)BM16
    的頭像 發(fā)表于 11-02 08:34 ?1514次閱讀
    如何適配新架構(gòu)?TPU-MLIR代碼<b class='flag-5'>生成</b>CodeGen全解析!