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

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

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

簡單介紹optimize的內(nèi)容以及它的一些實(shí)際運(yùn)用

數(shù)字后端IC芯片設(shè)計(jì) ? 來源:未知 ? 作者:李倩 ? 2018-05-07 15:46 ? 次閱讀

前面主要介紹了Optimize的一些基本概念,那么今天就來講解一下它的一些實(shí)際運(yùn)用,以及我們?cè)趺床拍苡煤眠@個(gè)強(qiáng)大的命令??!

說到Optimize,那和它聯(lián)系最緊密的就是Timing了。在做實(shí)際design中,從place到signoff,Timing violation是伴隨著整個(gè)流程揮之不去的陰影。那P&R中,Timing violation的趨勢是怎么樣的呢?

很多人腦海里浮現(xiàn)的是左邊呈倒金字塔形的這張吧,認(rèn)為每前進(jìn)一步就會(huì)修掉一些violation。其實(shí)則不然,右邊那張才是更合理化的趨勢圖。工具P&R的核心,placement和routing,其實(shí)都不是那么的timing aware。Routing以后甚至?xí)霈F(xiàn)violation path的增多(因?yàn)镽oute之前都不care DRC)。那其實(shí)整個(gè)Timing closure的過程中,出力最大的就是Optimize。因此,我們非常有必要來了解一些傳統(tǒng)的Optimize的注意點(diǎn)

1Before Optimize

正所謂"臨陣磨槍,不亮也光",Optimize可是個(gè)超級(jí)命令,通常運(yùn)行時(shí)間都在幾個(gè)小時(shí),甚至幾十個(gè)小時(shí)以上。耗費(fèi)這么大的財(cái)力物力,我們可不希望它跑得毫無價(jià)值。在開始運(yùn)行place_opt之前,對(duì)design的基本情況進(jìn)行一些基本檢查真的是非常有必要的。整理了一下,以下幾點(diǎn)是比較有用的:

1)跑一遍check_design,檢查一下design中包括(netlist,Timing library,F(xiàn)loorplan)

2)檢查sdc文件是否clean。是否有一些定義不合理的約束。

3)報(bào)一遍zero wireload model的timing,如果zwl timing的結(jié)果都不理想的話,試著要去調(diào)整下sdc文件等等

4)采用get_attribute [get_lib_cell *] dont_use或者report_dont_use報(bào)出當(dāng)前設(shè)計(jì)中的dont use cell,一些特別weak的cell我們需要禁用。

5)檢查一下有沒有打開需要的active scenarios

set_scenario_status -active true

6)檢查所需要的Optimize mode。

Performance(opt.timing.effort)

Power(opt.power.effort)

Density(-max_density)

2During Optimize

這個(gè)期間,是Optimize自己后臺(tái)運(yùn)行的過程。我們也做不了什么操作,正好來復(fù)習(xí)一下Optimize的transform。我們知道它可以做很多的動(dòng)作,而工具中可以讓它操作的object又有很多,這兩者之間的關(guān)系在下面這張表中可以體現(xiàn)出來:

3After Optimize

當(dāng)Optmize做完,結(jié)果不理想該腫么辦呢?

Debug唄~~

提供以下幾點(diǎn)建議:

1)從log入手:

1.查看下各個(gè)Path Group的WNS/TNS的收斂趨勢。

2.查看下DRV的收斂趨勢。

3.查看下Optimize過程中各個(gè)transform的detail report。包括move的instance數(shù)目,距離。包括routing conestion等等,檢查下有沒有異常值。

2)分析Timing情況

1. 總體概括性地檢查一下critical path,而不是去看最差的一條,通常Path Group的timing變差具有共性

2. 分析一下path上的cell/net delay, 看看有沒有“bad buffering,bad sizing,weak cell”這些情況

3. 檢查一下Placement結(jié)果吧,看看某些區(qū)域的density是不是較大,可以采用keepout margin或者cell spacing constraint來增大cell之間的距離

4. macro是否擺放不合理,channel留太少,或者macro上的routing過差,可以采用添加合適的blockage,或者重新擺放macro位置來解決

5. 可以自己創(chuàng)建Path Group來優(yōu)化timing,Optimize默認(rèn)創(chuàng)建的Path Group是reg2reg, reg2cgate. 我們可以采用group_path來自己創(chuàng)建需要重點(diǎn)優(yōu)化的Path。

3)通過report相關(guān)的命令來檢查一些潛在的誤操作或者工具的bug

report_dont_use可以報(bào)出當(dāng)前design中的dont use cell

report_dont_touch可以報(bào)出當(dāng)前design中的dont touch cell

4)運(yùn)行incremental的optimize

它會(huì)基于當(dāng)前Placement的結(jié)果來優(yōu)化density,以及基于Optimize的結(jié)果來繼續(xù)優(yōu)化WNS和TNS

optimize的介紹就到此為止了,看似簡單的一個(gè)命令其實(shí)要用好他卻不容易。如何挖掘工具潛能,取得較好的優(yōu)化結(jié)果,這是一個(gè)反復(fù)迭代,反復(fù)分析設(shè)計(jì)的過程??傊?,多嘗試,多跑跑設(shè)計(jì),才能對(duì)工具愈發(fā)熟練。

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

    關(guān)注

    0

    文章

    156

    瀏覽量

    45693
  • timing
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    10175

原文標(biāo)題:芯片誠可貴,時(shí)序價(jià)更高——Optimize(二)

文章出處:【微信號(hào):IC_Physical_Design,微信公眾號(hào):數(shù)字后端IC芯片設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    介紹一些簡單的項(xiàng)目

    學(xué)51單片機(jī)已經(jīng)個(gè)多月,簡單的操作感覺還好。 想找一些簡單的項(xiàng)目做下,在項(xiàng)目中學(xué)習(xí),求介紹
    發(fā)表于 08-18 12:35

    介紹藍(lán)牙的一些概念

    . 聲明本專欄文章我們會(huì)以連載的方式持續(xù)更新,本專欄計(jì)劃更新內(nèi)容如下:第篇:藍(lán)牙綜合介紹 ,主要介紹藍(lán)牙的
    發(fā)表于 07-22 06:03

    介紹下UPS的一些基礎(chǔ)知識(shí)

    機(jī)房UPS電源實(shí)際負(fù)載容量與負(fù)載量是怎么計(jì)算的?2018-09-16正文:、首先介紹下UPS的一些基礎(chǔ)知識(shí)1、為什么用UPS?UPS的作
    發(fā)表于 11-16 07:16

    分享一些學(xué)習(xí)STM32的內(nèi)容

    這里大概的羅列了一些學(xué)習(xí)STM32的內(nèi)容,以及學(xué)習(xí)順序。如果是新手的話,建議邊看中文手冊(cè)和學(xué)習(xí)視頻(般都看原子的,視頻的話百度就可以了,如果實(shí)在是找不到的話,我給大家推薦
    發(fā)表于 11-22 08:19

    介紹一些MOV與ADD指令的簡單例子

    因?yàn)榍度胧较到y(tǒng)學(xué)習(xí)需要,開始學(xué)習(xí)匯編語言學(xué)習(xí)資料是B站的視頻:匯編語言程序 P9目錄、一些簡單的指令例子二、個(gè)練習(xí)、
    發(fā)表于 01-07 06:39

    羅列一些學(xué)習(xí)STM32的內(nèi)容以及學(xué)習(xí)順序

    羅列一些學(xué)習(xí)STM32的內(nèi)容以及學(xué)習(xí)順序
    發(fā)表于 01-19 07:04

    關(guān)于stm32的一些簡單介紹

    #序言本文章是關(guān)于stm的一些簡單介紹,全部都是個(gè)人學(xué)習(xí)的一些經(jīng)驗(yàn)總結(jié),分享給想要自學(xué)stm32的朋友們用于入門。其中部分內(nèi)容借鑒于《st
    發(fā)表于 02-24 06:30

    Allegro中網(wǎng)絡(luò)表的導(dǎo)入以及回編到Capture中的一些

    Allegro中網(wǎng)絡(luò)表的導(dǎo)入以及回編到Capture中的一些注意事項(xiàng):網(wǎng)絡(luò)表(Netlist)是溝通電路原理圖和Layout實(shí)際板子的橋梁網(wǎng)絡(luò)表包含的內(nèi)容有零件Pin的連接線關(guān)系
    發(fā)表于 09-20 18:08 ?0次下載

    如何處理實(shí)際布線中的一些理論沖突的問題

    如何處理實(shí)際布線中的一些理論沖突的問題         基本上, 將模/數(shù)地分割隔離是對(duì)的。 要注意的是信號(hào)走線盡量
    發(fā)表于 03-20 13:54 ?627次閱讀

    討論 fmt 的基本用法以及提供的一些主要功能

    好在,有個(gè)命令可以滿足至少部分的文本格式化的需求。這個(gè)工具就是 fmt。本教程將會(huì)討論 fmt 的基本用法以及提供的一些主要功能。文中
    的頭像 發(fā)表于 01-16 09:00 ?6292次閱讀
    討論 fmt 的基本用法<b class='flag-5'>以及</b><b class='flag-5'>它</b>提供的<b class='flag-5'>一些</b>主要功能

    Verilog HDL語言組合邏輯設(shè)計(jì)方法以及QuartusII軟件的一些高級(jí)技巧

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog HDL語言組合邏輯設(shè)計(jì)方法以及QuartusII軟件的一些高級(jí)技巧。
    發(fā)表于 07-03 17:36 ?20次下載
    Verilog HDL語言組合邏輯設(shè)計(jì)方法<b class='flag-5'>以及</b>QuartusII軟件的<b class='flag-5'>一些</b>高級(jí)技巧

    簡單介紹LoRa網(wǎng)關(guān)日常管理和維護(hù)的一些實(shí)用知識(shí)

    ? 本文旨在介紹LoRa網(wǎng)關(guān)日常管理和維護(hù)的一些實(shí)用知識(shí)。 、LoRa網(wǎng)關(guān)管理和維護(hù)的困難 LoRa網(wǎng)關(guān)由于其借助LoRa通信技術(shù),因此通信距離長,尤其適用于比如智慧農(nóng)場、智能工業(yè)等覆蓋范圍較大的應(yīng)用場景。 在
    發(fā)表于 07-21 15:24 ?1485次閱讀

    電腦的一些硬件問題講解

    本文檔的主要內(nèi)容詳細(xì)介紹的是電腦的一些硬件問題講解。
    發(fā)表于 10-20 08:00 ?14次下載
    電腦的<b class='flag-5'>一些</b>硬件問題講解

    一些簡單趣味小電子制作教程

    一些簡單趣味小電子制作教程
    發(fā)表于 09-26 14:05 ?28次下載

    介紹一些大功率IGBT模塊應(yīng)用中的一些技術(shù)

    PPT主要介紹了大功率IGBT模塊應(yīng)用中的一些技術(shù),包括參數(shù)解讀、器件選型、驅(qū)動(dòng)技術(shù)、保護(hù)方法以及失效分析等。
    發(fā)表于 09-05 11:36 ?776次閱讀