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

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

3天內不再提示

時鐘樹綜合CTS階段如何去降低Latency和Skew

sanyue7758 ? 來源:處芯積律 ? 2023-05-22 09:38 ? 次閱讀

對于時鐘樹綜合,各位后端工程師應該都很熟悉,做好一個模塊/一個chip的時鐘樹,對整個項目的功耗和Timing影響都是巨大的。一個優(yōu)秀的后端工程師,也不會只是單純的放置幾個TAP點,來工具根據(jù)source group來自己分點做Tree,這樣只會跑flow 做樹的工程師在面對工具搞不定的復雜時鐘結構的時候,只能束手無策,導致繞線完返修,花費很多時間在signoff階段,對時序和功耗硬修,甚至導致流片delay,今天我們就來根據(jù)項目經(jīng)驗來幫助大家做出更好,更完美的時鐘樹!

cb1ced08-f812-11ed-90ce-dac502259ad0.png

圖一 一個最常見的muti Clock的時鐘樹結構

首先我們要明白做樹的最終目的—當然是為了PPA的提升,其實不做樹可不可以?當然可以!當你當前的模塊規(guī)模比較小,且沒啥時序風險和PV,PI風險的時候,甚至可以不做樹。但是時鐘結構復雜/時序功耗本身就有風險的模塊就不行了,樹做的不好將會導致ecoRoute完signoff階段的時序收不下來,功耗很差,甚至根本沒法收斂,導致最后回退版本,老老實實回去做樹!那小編覺得就完全沒有必要了,我們以innovus為例,來幫助大家快速做到對樹的收斂,從而對CTS有更深的理解,而非只會跑flow看結果。

其實對于CTS這個步驟,我們可以把從初始時鐘結構到最終的時鐘樹結構分為三個階段,并且在這三個階段分別去存對應的Database,以方便分析究竟是哪一步出問題了?

第一部分—分點,這一部分主要靠工具去完成,工具會識別后端工程師提供的source group(這個根據(jù)工程師設置的tap點來定組),并將同一skew group下source group下面的對應tap點(可以是MUX,BUFF,INV,ICG等等)的OutPutPin的generate clk視為一樣的時鐘結構,進而工具會clone主Gating下除Sink點以外的原本時鐘路徑上的邏輯單元和時序單元,并將整條Path包含Sink點掛到離其最近,時序更優(yōu)的Tap點下,這一分點形成初始樹的過程,在Innovus下通過以下命令實現(xiàn):

cb3b7bd8-f812-11ed-90ce-dac502259ad0.png

對于復雜的時鐘結構,即多個分頻時鐘,倍頻CRG子時鐘,工具沒辦法很好的去分點或者說沒有過多的考慮時序,而是單純考慮距離,對Sink點進行暴力切分,導致Common Path的長度非常的短,共同路徑由source port到clone gating變成只有source port到主 ICG,這有可能會使得不同分點下的兩個Sink的local skew偏大,進而影響postCTS后的timing。這種情況我們可以通過分點完后自己手動ec掛點/分點前在Spec約束文件添加preserve port來控制工具的分點結果。

第二部分—Cluster解DRV,這一部分也主要靠工具去完成,在開始這步驟之前,工程師需要檢測對于部分Net有么有設置dont touch,有沒有設置ideal net,以免CTS綜合后發(fā)現(xiàn)部分CK Cell的transition過大,一追溯發(fā)現(xiàn)是DRV沒有解決,這一部分引起latency增大的原因其實主要是因為Placement擺放CK cell位置的不合理,使得時鐘路徑發(fā)生了detour,增加了Net delay和部分本可以不存在的解transiton的INV。這一部分遇到問題的主要解決辦法為:1.檢查place階段是不是有些Sink的局部density過大/過小,導致工具在修DRV的時候拉扯較遠/沒有位置擺放INV;2.手動ec,將最后一級INV的Fanout Sink直接掛到最近一級Clone的gating上,再解DRV(記得帶個強驅動的BUFF一起掛,否則可能會因為clone gating的outputload突然增大而導致transition解的不好,傳遞到下幾級,導致latency增大)

第三部分—Full階段長樹,這一部分工具會根據(jù)你的Spec約束來對Sink之間的Skew進行平衡,在innovus中我們一般通過ccopt_design來進行長tree和OPT同步的操作,實際上innovus在ccopt階段初期,首先會確定placement的信息,其中包括density和DRC的相關信息的check,然后在準備階段,innovus會刷新一遍IO的skew,并判斷各個skewgroup之間的關系,哪個是主clk,哪個是generateclk,是否存在復制關系?在判斷完skewgroup的復制關系后,innovus會進行early global route,進行快速繞線,以判斷有沒有繞線風險,并且檢查檢查NDR以及track的完整性等等。

所以基于以上工具的三個階段操作,后端APR工程師們需要明確分點做樹的階段目標是什么?1.降低latency,以與其他模塊的時鐘樹串起來對齊;2.降低local skew,以減少后期fix timing工作量,降低timing風險;3.增加common path的delay,目的也是為了降低latency和local skew;4.減少CK cell的數(shù)量,有利于降低面積和功耗。在這里,小編基于日常項目給出幾種做短樹的latency和做小skew的方法:

增加TAP點的數(shù)量,這個方法雖然可以有效的降低skew和latency,但是會帶來功耗負擔以及面積浪費,并且隨著TAP點增加到一定數(shù)量,收益其實會逐漸收斂。所以這個方法后端工程師最好建立在規(guī)定數(shù)量TAP點實在修不下來delay和skew的時候再使用。

修改target來優(yōu)化工具的分點和balance長樹,內容主要包括(注: 修改要在clk spec生產(chǎn)后,即generate spec后分點前)

cbf2f1a0-f812-11ed-90ce-dac502259ad0.png

增加new skrewgroup以及generated clk來指導工具解drv和長tree(這個主要優(yōu)化latency,skew變化并不大),以圖一的CLK結構為例子,F(xiàn)ast Clk下MUX的ZN端可以設置generate CLK,并以這個為source,設置一個新的skew group.

cc142244-f812-11ed-90ce-dac502259ad0.png

Size up時鐘路徑上的icg以及buffer/inv,logic等instance,這樣可以增加驅動,降低transition,進而降低latency(這種方式不僅會優(yōu)化latency,skew也會由一定的優(yōu)化),比如D4的DCCKBUF換成D8的BUFF,H12的BUFF換成H9的BUFF等等。

可以通過提樹/推樹的xxx ps的方法,來做長做短樹,Place階段推樹/cts階段設置insertation delay都有利于樹的做短(這個方法主要影響的是balance長tree階段),這個通??梢葬槍luster階段latency不大,但是balance長tree階段突然樹長變長的path,例如

cc355b80-f812-11ed-90ce-dac502259ad0.png

修改Space中的CK Pin的類型,有些不影響Timing的前提下把Pin設置成為stop ignore throughpin(這個方法主要影響的是balance長tree階段)

一些ec操作,一般是工具分點/解DRV有問題的時候,才需要工程師去手動,比如重新掛點,presever pin,手動clone icg掛點等等

掌握了以上這些內容,想必各位ICer將會對CTS有更深的理解,CTS的實現(xiàn)其實隨著模塊時鐘復雜的變化會有更多其他方法去降低Latency以及Skew,例如調整flowPlan,與前端商量修改RTL代碼的時鐘結構,修改綜合時候map的lib cell,引入Mesh Cell等等。但是所有的一切,都是為了芯片有個更好的PPA,這樣才能讓你和大家的加班沒有白費!





審核編輯:劉清

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

    關注

    0

    文章

    18

    瀏覽量

    20624
  • 時鐘樹
    +關注

    關注

    0

    文章

    53

    瀏覽量

    10709
  • Mux
    Mux
    +關注

    關注

    0

    文章

    38

    瀏覽量

    23308
  • CTS
    CTS
    +關注

    關注

    0

    文章

    34

    瀏覽量

    13969

原文標題:細聊時鐘樹綜合CTS階段如何去降低Latency和Skew

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    時鐘優(yōu)化與有用時鐘延遲

    時鐘優(yōu)化與有用時鐘延遲在 “后端時序修正基本思路” 提到了時序優(yōu)化的基本步驟。其中,最關鍵的階段就是時鐘
    發(fā)表于 10-26 09:29 ?4304次閱讀
    <b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>優(yōu)化與有用<b class='flag-5'>時鐘</b>延遲

    射頻識別芯片設計中時鐘功耗的優(yōu)化與實現(xiàn)

    TypeC協(xié)議的UHF RFID標簽基帶處理器的的優(yōu)化和實現(xiàn)。##降低功耗主要方法##RTL階段手工加時鐘門控##綜合階段工具插于集成門控
    發(fā)表于 03-24 14:36 ?4153次閱讀

    數(shù)字IC設計中的分段時鐘綜合

    為什么需要分段去做時鐘呢?因為在某些情況下,按照傳統(tǒng)的方法讓每一個clock group單獨balance,如果不做額外干預,時鐘天然
    的頭像 發(fā)表于 12-04 14:42 ?1440次閱讀
    數(shù)字IC設計中的分段<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>綜合</b>

    哪些因此會導致時鐘skew過大呢?FPGA中降低時鐘skew的幾種方法

    在時序報告中,會顯示出clock path skew,如果時鐘偏移超過0.5ns,就需要額外關注了。
    的頭像 發(fā)表于 03-13 09:06 ?1135次閱讀
    哪些因此會導致<b class='flag-5'>時鐘</b><b class='flag-5'>skew</b>過大呢?FPGA中<b class='flag-5'>降低</b><b class='flag-5'>時鐘</b><b class='flag-5'>skew</b>的幾種方法

    CTS的前世今生

    時鐘,也是衡量時鐘性能的重要指標。并不是單一地認為這些參數(shù)越小越好,有利必有弊,整個PR流程中沒有絕對的概念,而如何綜合考慮這些參數(shù),
    發(fā)表于 01-18 17:35

    如何使用基于STM32的時鐘和通用定時器呢

    如何使用基于STM32的時鐘和通用定時器呢?怎樣分析基于STM32的通用定時器復用功能重映射呢?
    發(fā)表于 11-09 06:42

    如何做好ARM Cortex-A7時鐘

    根據(jù)之前的介紹,我們已經(jīng)掌握了ICC2和Innovus中如何根據(jù)工具提供的Clock Tree Analysis Window來分析時鐘的結構(Innovus對應的是Clock Tree
    發(fā)表于 05-31 11:55

    ccopt主要有幾個步驟?每個步驟都做了什么事

    這里前面的檢查階段就完成了。1.4 optDesignGlobalRouteStep執(zhí)行時鐘綜合進程:先對時鐘
    發(fā)表于 08-19 16:27

    !大量收購/回收CTS60綜合測試儀CTS60 孫峰/何S:13549469921

    !大量收購/回收CTS60綜合測試儀CTS60 孫峰/何S:13549469921 東莞市宏達電子儀器有限公司 聯(lián)系人:孫峰/何S(銷售工程師):13549469921 客 服QQ
    的頭像 發(fā)表于 03-27 05:11 ?1227次閱讀

    multi-tap的FlexHtree自動化時鐘綜合流程

    時鐘綜合CTS)相結合來控制整個時鐘的clock s
    的頭像 發(fā)表于 08-15 10:01 ?9961次閱讀
    multi-tap的FlexHtree自動化<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>綜合</b>流程

    如何能讓自己的芯片變得更有競爭力

    時鐘latency如果比較長,則需要想到定制大尺寸時鐘單元。這樣可以減小時鐘樹上的latency
    的頭像 發(fā)表于 04-25 17:06 ?2358次閱讀

    評價時鐘質量的方法

    時鐘綜合,通常我們也叫做CTS時鐘綜合就是建立
    的頭像 發(fā)表于 09-05 10:11 ?1776次閱讀

    詳解數(shù)字設計中的時鐘與約束

    : ·同步電路與異步電路; ·時鐘/時鐘的屬性:偏移(skew)與時鐘的抖動(jitter)、延時(l
    的頭像 發(fā)表于 01-28 07:53 ?2713次閱讀
    詳解數(shù)字設計中的<b class='flag-5'>時鐘</b>與約束

    CTS時鐘綜合對uncertainty的影響

    時鐘電路的設計中,存在 jitter 和 skew 問題。
    的頭像 發(fā)表于 06-26 16:49 ?1836次閱讀
    <b class='flag-5'>CTS</b><b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>綜合</b>對uncertainty的影響

    時鐘是什么?介紹兩種時鐘樹結構

    今天來聊一聊時鐘。首先我先講一下我所理解的時鐘是什么,然后介紹兩種時鐘樹結構。
    的頭像 發(fā)表于 12-06 15:23 ?1336次閱讀