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

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

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

時鐘樹:芯片的大動脈

sanyue7758 ? 來源:小蔡讀書 ? 2023-07-15 09:28 ? 次閱讀

我覺得稱時鐘樹為芯片的大動脈一點(diǎn)也不夸張,因為所有flipflop 翻轉(zhuǎn)都要受到它的控制。而時鐘樹的設(shè)計到實(shí)現(xiàn)是一個很復(fù)雜的過程,從流程上說,它牽扯到使用的工具,流程,flow等。從人的角度講,它需要設(shè)計,綜合,dft ,pr, sta 工程師的通力合作。從知識上講它需要一定的芯片架構(gòu)設(shè)計知識,一定的綜合,STA 知識,一定的dft知識,包括一定的pr 長clock tree的知識。我這里結(jié)合我的個人有限知識,結(jié)合實(shí)踐經(jīng)歷以及理解對這些問題做多方面的闡述,難免有缺漏,也是為了拋磚引玉,歡迎同仁討論。集思廣益。

本文所涉及的工具綜合DC, 時序分析PT, 物理實(shí)現(xiàn)工具innovus.

大家需要什么樣的clocktree呢?

設(shè)計:我要更少的PLL, (更多的PLL 帶來配值的麻煩,能用各種分頻產(chǎn)生的頻率。盡量用分頻電路產(chǎn)生,能不多加PLL就不要多加。)我要沒有毛刺,PLL jitter抖動更小(設(shè)計上沒有毛刺需要電路結(jié)構(gòu)上的改變 如glitch free mux , PLL jitter需要電路上更給力的模擬單元。)。我要更低的功耗 (設(shè)計通過powerpro 添加更多的ICG 上去,ICG的效率提上去。盡量不要有組合邏輯clock gating檢查。)

DFT: 我要配值更少的PLL (盡量相同頻率的邏輯用一個PLL 去拉通,更多的PLL 需要更多的tdr 配值增加面積還帶來不確定性)。我要更少的occ (相同頻率的fanout 盡量墊一個occ, 更少的occ ,更少的面積,處理起來也更簡便)

SYN&PR :我要更精準(zhǔn)的SDC ( 更精準(zhǔn)的SDC 去除更多的假path, 在PR SI 分析上也能過濾掉不該分析的部分,還能指導(dǎo)clocktree的生長 )。我要更好的useful skew (需要flow,分析,try run和調(diào)整,來達(dá)到不平的clock tree 與setup hold 之間微妙的平衡)。我要更長的common path ,更短的clock tree (長的common path 更短的clocktree, 可能需要設(shè)計clock tree結(jié)構(gòu)調(diào)整, sdc 的調(diào)整,ccopt spec 調(diào)整, place 調(diào)整等等)。

我要PLL 的REF CLOCK 走更短的距離 (PLL ref clock 需要高的時鐘質(zhì)量。提前有好的規(guī)劃,不要插多余的cell到ref clock 路徑上,pr floorplan 的迭代 控制PLL 與ref clock 的距離, 綜合過程不要給這種net上加?xùn)|西。)。我要更小的SI (pr clock tree 布線上更好的布線層規(guī)劃,良好的shielding )。我要tree更好的平衡 (該balance的地方balance,不該balance的地方不要相互拖拽,需要良好的ccopt_spec, sdc ,以及setting配合。)

等等,還有很多,所有的需求都需要相互trade off 來達(dá)到一個平衡。

我以圖片舉例來挑其中一些問題針對的談?wù)劇?/p>

能不要多點(diǎn)長tree平衡,盡量不要多點(diǎn)長tree,除非迫不得已。如圖從物理實(shí)現(xiàn)角度說 綠色是一個block ,A 和B 兩個clock 從port進(jìn)來需要相互balance。這種結(jié)構(gòu)block的PR工程師好不容易把A 和B 調(diào)的tree平衡。但是到了頂層,頂層pr工程師還需要保證紅色的到A &B兩個hier pin的tree路線是平衡的。對時序收斂是不友好的。

56cd44cc-224f-11ee-962d-dac502259ad0.jpg

設(shè)計牽扯到從block穿clock出來到頂層的結(jié)構(gòu)那么紅色的這路去頂層的clock路徑不要帶多余的邏輯,如果有多余的邏輯分配到A 那部分去, 因為綠色的地方dft要加occ, 而occ一般是不級聯(lián)的。

56df708e-224f-11ee-962d-dac502259ad0.jpg

設(shè)計中驅(qū)動兩個hinst如果是同頻的能用一個occ (紅色) 就盡量不要用兩個(綠色)。造成面積浪費(fèi)不說,且如果A和B再有timing talk 會導(dǎo)致非 common path 變長。

56f21bc6-224f-11ee-962d-dac502259ad0.jpg

分頻模塊在功能模式下的分頻系數(shù)頻率與dft 模式下的分頻系數(shù)盡量一致。當(dāng)功能模式時候toggle fun_reset 就能讓div模塊配置到需要的系數(shù)上。當(dāng)dft模式下toggle dft cgu reset 也能讓div模塊配置到相同的系數(shù)上。否則需要dft通過tdr或者其它連線來配值自己想要的參數(shù),增加多余邏輯。不過具體情況具體分析。沒有通解。

570b85f2-224f-11ee-962d-dac502259ad0.jpg

STA 工程師盡量通過良好的使用 set_clock_group -physically_exclusive -logically_exclusive -asyncronus / set_clock_exclusivity 等命令去過濾掉C 位置不應(yīng)該A B共存導(dǎo)致的SI 分析。

571beea6-224f-11ee-962d-dac502259ad0.jpg

多種mode sdc 能merge的盡量merge ,不能merge再具體問題具體分析。多個mode sdc會產(chǎn)生更多需要分析的constraint mode 產(chǎn)生更多scenario 耗費(fèi)更多時間。舉個例子類似我遇到的這種結(jié)構(gòu)的clock 就是相對不那么好做的 A B C三個mux會從ip上去選clock。而且A B C之間相互還需要balance, 那么就是2 * 2 * 2 = 8 種可能性。關(guān)鍵是這8種可能性在真實(shí)情況下可能只有5種是真實(shí)會產(chǎn)生的。

你如果只通過create_clock create_generated_clock set_clock_group set_false_path 方式來做,那么就會產(chǎn)生過約,因為會額外約束多余那3種可能性,如果我通過給mux sel set_case_analysis 來case的話那么就會產(chǎn)生更多的sdc mode, 更多的view.事實(shí)上當(dāng)時這種類似mode有好幾十種情況。

57262ac4-224f-11ee-962d-dac502259ad0.jpg

合理的使用set_clock_sense set_sense.應(yīng)用場景有時會有個A clock 高頻clock和B clock 低頻clock 經(jīng)過mux去驅(qū)動后面的A INST 與B INST, 真實(shí)情況是可能B clock 只會打到A INST 模塊進(jìn)行搬運(yùn)數(shù)據(jù), 比如芯片boot階段。它不會去B INST 那么一定要用set_sense 去把B clock在B INST 前面停掉,這有利于timing分析也有利于PR 進(jìn)行長clock tree。默認(rèn)情況下innovus create ccopt spec 會轉(zhuǎn)換 set_sense /set_clock_sense 為 set_ccopt_property -sink_type igore [get_pin xxx] 這樣對于B clock 來說B INST 里面的sink點(diǎn)就不會被balance 。去掉不該balance的 sink點(diǎn)自然tree就會更好。

5732ec8c-224f-11ee-962d-dac502259ad0.jpg

合理利用useful skew ECF/ccd

真實(shí)的設(shè)計中clock是不可能長的完全平的。那么可以通過useful skew 來達(dá)到data clock setup&hold 微妙的平衡。

通過分析DC 的timing報告人為通過set_clock_latency -clock xxx [get_pins xxxx]去調(diào)整clock tree 長度,讓DC按照不平的clock tree 長度進(jìn)行優(yōu)化。進(jìn)入INNOVUS的時候 INNOVUS create_ccopt_spec 會轉(zhuǎn)換set_clock_latency 命令為

set_ccopt_property -insertion_delay xxx [get_pins xxxx] 來調(diào)整clock tree長度,達(dá)到更好的平衡。

或者在DC 中開啟ccd , 通過write_scripts 寫出工具根據(jù)組合邏輯和你的設(shè)置推出來的tree長度腳本set_clock_latency -offset , 通過腳本轉(zhuǎn)換set_clock_latency -offset 為標(biāo)準(zhǔn)set_clock_latency -clock xxx [get_pins xxx] SDC ,進(jìn)入INNOVUS 優(yōu)化。

或者INNOVUS 刪除set_clock_latency 開啟Cadence 自己的useful skew ECF 來自動進(jìn)行不平clock tree優(yōu)化。

至于結(jié)果,不好說,不同設(shè)計反映不一,推的過多會導(dǎo)致hold難修。當(dāng)然Synopsys會推薦DC 可以開hold corner 然后來估計hold的影響,讓推的不要太兇。

針對這種結(jié)構(gòu)一個M clock驅(qū)動兩坨邏輯紅色和上面黑色。

通常做法是整一個M 整一個GCLK G1 GCLK G2 然后設(shè)置clock_group 來解決。

不要嘗試直接在G2 位置create一個master clk, 然后設(shè)置clock_group

這種會導(dǎo)致G2 前面的source latency 丟失,導(dǎo)致無法分析前面路徑的延時SI 等影響,也不能用來signoff

5743a220-224f-11ee-962d-dac502259ad0.jpg

但是這種類型的SDC 用來INNOVUS ccopt 來長clock tree是極好的。尤其是當(dāng)你不怎么熟悉innovus的ccopt spec ,但是你又很熟悉sdc和clock結(jié)構(gòu)的時候。

innovus默認(rèn)create的spec就不會balance 紅色和藍(lán)色因為你的G2 地方的create的是一個master_clock

當(dāng)然別忘了update_constraint update回來,更別忘了手動call update_io_latency/set_propagate_clock 來propagated clock 否則你長完tree你的clock還是ideal的。

最后強(qiáng)調(diào)一點(diǎn),默認(rèn)innovus create ccopt spec 是不識別sdc里面的 clock_group , false_path 的,它只根據(jù)你的clock 物理連接結(jié)構(gòu)走。 當(dāng)然有setting可以讓create ccopt spec去識別 clock_group 和false_path ,但是只是大家都不這么做而已。具體原因可能是工具不完善吧,也有可能是這樣創(chuàng)建的spec 文件太大,或者太多的這種ccopt的設(shè)置會導(dǎo)致不期望的結(jié)果之類的。

著重注意IP 位置的clock ,有的情況是一個ip是liberty ,internal pin會打數(shù)據(jù) D 出來同時這個internalpin又會打clock出來 IP 外面會有flipflop來接數(shù)據(jù),這種path由于launch clock 無法調(diào)整。導(dǎo)致timing不好收斂。

5751aece-224f-11ee-962d-dac502259ad0.jpg

或者是這種IP 作為liberty internal pin會打clock出來給flipflop launch 然后再用這個internalpin到IP 邊界上去check。這種由于capture clock 沒法控制同樣不好收斂。

575f3d96-224f-11ee-962d-dac502259ad0.jpg

針對這種情況及時syn pr, 聯(lián)系vendor 與設(shè)計, 確認(rèn)路徑的正確。設(shè)計能retime flipflop 多次打拍就提前做。方便timing收斂。

PR 盡量和dft以及sdc owner多溝通。了解dft test_clock sdc里面是怎么下的。通常情況test_clock 會通過不同的occ去trigger 幾乎所有的flipflop 。一般情況下dft 穿chain是分clock domain 穿的。也就是各個occ是相互不check的。當(dāng)你的pr sdc為了簡便下的比較粗的情況比如一個create 一個test_clock 完事,沒有在各個occ上做test_clock的分開處理。那么建議在ccopt spec里面把test_clock skew group 設(shè)置成none不要讓它去balance。否則它會退拽整個設(shè)計的tree。

576e5542-224f-11ee-962d-dac502259ad0.jpg

設(shè)計時鐘樹時候盡量不要讓block 的clock 穿兩個port到頂層再去trigger 兩個flipflop相互拍數(shù)據(jù)。這樣會導(dǎo)致clock branch point 在block內(nèi)部,導(dǎo)致cppr過小timing不好收斂。

577b6840-224f-11ee-962d-dac502259ad0.jpg

這對這個問題其實(shí)還有變形,原理其實(shí)都是控制clock tree 的branch point 來控制cppr來優(yōu)化timing

如圖A block 產(chǎn)生clock 到B block 拍數(shù)據(jù)給C block 左邊連接是不是branch point 在A block內(nèi)部這樣cppr 就小。

如果改成右邊的結(jié)構(gòu) branch point 就在B block cppr 就會變大。當(dāng)然要注意這時候可能capture path就會過長也許對hold不利。所以要做trade off。本質(zhì)點(diǎn)在于移動clock branck point.

578b6d80-224f-11ee-962d-dac502259ad0.jpg

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

    關(guān)注

    450

    文章

    49631

    瀏覽量

    417120
  • pll
    pll
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

    134852
  • 時序分析
    +關(guān)注

    關(guān)注

    2

    文章

    127

    瀏覽量

    22527
  • 時鐘樹
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    10709

原文標(biāo)題:芯片的動脈CLOCK TREE

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    裁員裁到“大動脈”?理想汽車召回部分被裁員工

    的員工,其合同將直接延續(xù),目前還不清楚召回規(guī)模和各部門比例。 有業(yè)者稱,理想汽車此次裁員裁到了“大動脈”,測試人員出現(xiàn)了不足的情況,影響了產(chǎn)品的研發(fā)測試。 ? 理想汽車此前規(guī)模性裁員 今年4月7日,理想汽車宣布新一
    的頭像 發(fā)表于 06-06 00:19 ?4803次閱讀

    STM32芯片時鐘

    下面是一個STM32芯片時鐘圖1、LSI是低速內(nèi)部時鐘,RC振蕩器,頻率為32kHz左右。供獨(dú)立看門狗和自動喚醒單元使用。 2、LSE是低速外部
    發(fā)表于 08-12 07:45

    電源紋波噪聲測試的相關(guān)資料分享

    前言: 任何電子產(chǎn)品的運(yùn)行,都少不了“電源”這個大動脈,這個大動脈的穩(wěn)定,強(qiáng)健就是保證產(chǎn)品穩(wěn)定,可靠,長期運(yùn)行的關(guān)鍵。 產(chǎn)品電源的測試包括:電壓測試,紋波噪聲測試,電...
    發(fā)表于 11-12 07:31

    時鐘網(wǎng)格與時鐘設(shè)計方法對比研究

    基于片上偏差對芯片性能的影響,分析對比了時鐘設(shè)計與時鐘網(wǎng)格設(shè)計,重點(diǎn)分析了時鐘網(wǎng)格抗OCV影響的優(yōu)點(diǎn),并利用實(shí)際電路應(yīng)用兩種方法分別進(jìn)行設(shè)
    發(fā)表于 05-07 14:13 ?36次下載
    <b class='flag-5'>時鐘</b>網(wǎng)格與<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>設(shè)計方法對比研究

    射頻識別芯片設(shè)計的時鐘功耗實(shí)戰(zhàn)

    芯片設(shè)計是每個國家的發(fā)展重點(diǎn)之一,而壯大中國芯片設(shè)計行業(yè)將有利于降低我國對國外芯片的依賴程度。再往期文章中,小編曾對芯片設(shè)計的正反向流程、芯片
    的頭像 發(fā)表于 01-25 17:43 ?3234次閱讀
    射頻識別<b class='flag-5'>芯片</b>設(shè)計的<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>功耗實(shí)戰(zhàn)

    什么樣IP網(wǎng)絡(luò)才能在“新基建”中,充當(dāng)好“大動脈”角色?

    但是,歷經(jīng)30年發(fā)展的IP網(wǎng)絡(luò),在承接電信運(yùn)營商、園區(qū)、數(shù)據(jù)中心的豐富應(yīng)用時,稍顯力不從心。什么樣IP網(wǎng)絡(luò),才能在火熱的“新基建”中,充當(dāng)好“大動脈”角色?
    的頭像 發(fā)表于 05-18 15:15 ?1959次閱讀

    電源紋波的噪聲測試解析

    任何電子產(chǎn)品的運(yùn)行,都少不了“電源”這個大動脈,這個大動脈的穩(wěn)定,強(qiáng)健就是保證產(chǎn)品穩(wěn)定,可靠,長期運(yùn)行的關(guān)鍵。
    的頭像 發(fā)表于 12-19 10:55 ?4357次閱讀

    美東海岸供油“大動脈”斷線,有地區(qū)現(xiàn)恐慌囤油

    的一條“大動脈”,該管道為東海岸供應(yīng)了45%的汽油、柴油、航空燃料,還為軍方供油?!都~約時報》評價,襲擊事件暴露出美國基礎(chǔ)設(shè)施的脆弱,是“令人不安的信號”。 專家警告,如果未來幾天內(nèi)不解決這個問題,美國東南部各州將首當(dāng)其沖,迅速出現(xiàn)大規(guī)模
    的頭像 發(fā)表于 05-14 10:03 ?1501次閱讀

    【硬件篇之電源紋波噪聲測試】

    前言: 任何電子產(chǎn)品的運(yùn)行,都少不了“電源”這個大動脈,這個大動脈的穩(wěn)定,強(qiáng)健就是保證產(chǎn)品穩(wěn)定,可靠,長期運(yùn)行的關(guān)鍵。 產(chǎn)品電源的測試包括:電壓測試,紋波噪聲測試,電...
    發(fā)表于 11-07 11:51 ?20次下載
    【硬件篇之電源紋波噪聲測試】

    STM32時鐘

    STM32時鐘問題1:為什么需要時鐘?答:STM 32的時鐘系統(tǒng)類似于人的心臟,需要為芯片提供時鐘
    發(fā)表于 12-06 09:51 ?16次下載
    STM32<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>

    評價時鐘質(zhì)量的方法

    時鐘綜合,通常我們也叫做CTS。時鐘綜合就是建立一個時鐘網(wǎng)絡(luò),使時鐘信號能夠傳遞到各個時序器
    的頭像 發(fā)表于 09-05 10:11 ?1775次閱讀

    TI芯科技 賦能中國新基建 | 西電東輸大動脈暢通的背后——TI芯科技賦能中國新基建之特高壓

    TI芯科技 賦能中國新基建 | 西電東輸大動脈暢通的背后——TI芯科技賦能中國新基建之特高壓
    發(fā)表于 10-28 11:59 ?0次下載
    TI芯科技 賦能中國新基建 | 西電東輸<b class='flag-5'>大動脈</b>暢通的背后——TI芯科技賦能中國新基建之特高壓

    大家需要什么樣的clocktree呢?芯片動脈CLOCK TREE介紹

    我覺得稱時鐘芯片大動脈一點(diǎn)也不夸張,因為所有flipflop 翻轉(zhuǎn)都要受到它的控制。而時鐘
    的頭像 發(fā)表于 07-21 15:42 ?2509次閱讀
    大家需要什么樣的clocktree呢?<b class='flag-5'>芯片</b>的<b class='flag-5'>動脈</b>CLOCK TREE介紹

    時鐘是什么?介紹兩種時鐘樹結(jié)構(gòu)

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