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

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

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

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

CHANBAEK ? 來源:志芯 ? 作者: Jack Xu ? 2023-12-04 14:42 ? 次閱讀

背景

為什么需要分段去做時鐘樹呢?因?yàn)樵谀承┣闆r下,按照傳統(tǒng)的方法讓每一個clock group單獨(dú)去balance,如果不做額外干預(yù),時鐘樹天然是做不平的。

圖片

如上圖所示,存在三種寄存器序列A、B(包括B1和B2)和C,這三種寄存器序列代表三種不同時鐘樹情景的寄存器。A是比較普遍的情況,就是時鐘樹信號通過時鐘樹單元從clock port送到寄存器的時鐘pin;C是某個Macro(硬核IP或特定子模塊)內(nèi)部的寄存器,正常情況下工具無法識別到該寄存器,也無法將寄存器C的時鐘和外部寄存器的時鐘做平;寄存器B1和B2的時鐘pin是圖中Macro通過clock feedthrough(也可以叫時鐘飛線)。

如果按默認(rèn)設(shè)置去做時鐘樹綜合,那么A和B的時鐘將會做balance;但是C的時鐘肯定做不平,因?yàn)閺腗acro的clock in pin到寄存器C的時鐘pin之間的delay不可控且沒被工具識別和考慮到。

所以為了將A、B和C的時鐘樹做平,必須采取分段長時鐘樹的方法。采用兩步法,先做A和C的時鐘樹,A和C的時鐘樹做好后,就可以根據(jù)已經(jīng)長好的時鐘樹上Macro的clock out pin之前的時鐘樹總延遲情況去對寄存器B的時鐘樹做針對性調(diào)整,最終就能將A、B和C的時鐘樹做平。

做寄存器A和C的時鐘樹

案例中時鐘樹使用innovus實(shí)現(xiàn)。

先將Macro的clock out pin到寄存器B1和B2之間的時鐘樹net設(shè)置為don’t touch,讓做A和C的時鐘的時候不要動到B1和B2,使用的命令是set_dont_touch_network。具體命令是:

set_dont_touch_network [get_pins B1/CK]

set_dont_touch_network [get_pins B2/CK]

圖片

再將Macro的clock in pin設(shè)為時鐘stop pin,并將clock in pin到寄存器C的時鐘pin之間的延遲(假設(shè)該值為delay1)標(biāo)定到Macro的clock in pin上,這樣工具就能將寄存器A和C的時鐘做平。使用的命令是set_ccopt_property。具體命令是:

set_ccopt_property sink_type stop -pin macro/clk_in

set_ccopt_property insertion_delay -pin macro/clk_in $ delay1

圖片

然后開始做寄存器A和寄存器C的時鐘樹。

做寄存器B的時鐘樹

首先給寄存器B1和B2創(chuàng)建單獨(dú)的skew group,因?yàn)檫@個時鐘不是全局時鐘樹都要去做,而是單獨(dú)去做寄存器B1和B2;也就是Macro的clock out pin到寄存器B1和B2的時鐘pin之間的這一部分,這部分的時鐘起點(diǎn)是Macro的clock out pin,所以就定義一個Macro的clock out pin為clock port的skew group,假設(shè)主時鐘域的skew group叫做main_clock,使用的命令是create_ccopt_clock_tree、create_ccopt_clock_tree_spec和create_ccopt_skew_group。具體命令是:

create_ccopt_clock_tree_spec

create_ccopt_clock_tree -name from_macro_to_c -source macro/clk_out

create_ccopt_skew_group -name from_macro_to_c -balance_skew_groups main_clock
圖片

圖片

圖片

再將main_clock的時鐘port到Macro的clock out pin之間的delay(假設(shè)為delay2)以clock source latency的形式標(biāo)記到新創(chuàng)建的from_macro_to_c skew group的時鐘起點(diǎn)(即Macro的clock out pin)上,具體命令如下:

set_ccopt_property source_latency $delay2 -clock_tree from_macro_to_c

再告訴工具長時鐘樹時將clock source latency考慮進(jìn)去,具體命令如下:

set_ccopt_property include_source_latency -skew_group from_macro_to_c

然后開始長寄存器B1和B2的時鐘樹。

結(jié)果

最終三種寄存器之間的時鐘樹都做平了。

圖片

聲明:本文內(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)注

    31

    文章

    5250

    瀏覽量

    119195
  • IC設(shè)計
    +關(guān)注

    關(guān)注

    37

    文章

    1287

    瀏覽量

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

    關(guān)注

    0

    文章

    53

    瀏覽量

    10709
  • 數(shù)字IC
    +關(guān)注

    關(guān)注

    1

    文章

    37

    瀏覽量

    12414
收藏 人收藏

    評論

    相關(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>延遲

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

    在RFID芯片中的功耗主要有模擬射頻前端電路,存儲器,數(shù)字邏輯三部分,而在數(shù)字邏輯電路時鐘樹上的功耗會占邏輯功耗不小的部分。本文著重從降低數(shù)字
    發(fā)表于 03-24 14:36 ?4153次閱讀

    #硬聲創(chuàng)作季 #IC設(shè)計 數(shù)字IC設(shè)計-47 ICC-時鐘綜合-1

    IC設(shè)計
    水管工
    發(fā)布于 :2022年11月30日 21:53:01

    #硬聲創(chuàng)作季 #IC設(shè)計 數(shù)字IC設(shè)計-47 ICC-時鐘綜合-4

    IC設(shè)計
    水管工
    發(fā)布于 :2022年11月30日 21:54:58

    系統(tǒng)框圖和時鐘

    。1、芯片介紹;2、軟件安裝MDK5;3、開發(fā)板介紹;(核心板和控制底板);4、系統(tǒng)框圖和時鐘;5、閱讀程序(看別人的代碼:LED、按鍵、定時器)6、IO輸出:LED燈;7、IO輸入:按鍵查詢;8、IO輸入:按鍵中斷;8.1
    發(fā)表于 08-03 08:22

    時鐘我們可以得知哪些

    時鐘我們可以得知(1)高級定時器timer1, timer8以及通用定時器timer9, timer10, timer11的時鐘來源是APB2總線(2)通用定時器timer2~t
    發(fā)表于 08-13 07:23

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

    時鐘綜合(CTS)相結(jié)合來控制整個時鐘的clock skew[1]。時鐘根節(jié)點(diǎn)(root
    的頭像 發(fā)表于 08-15 10:01 ?9961次閱讀
    multi-tap的FlexHtree自動化<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>綜合</b>流程

    STM32時鐘

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

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

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

    大型多GHz時鐘時鐘偏斜

    大型時鐘通過多個時鐘設(shè)備、使用多種傳輸線類型以及跨多個板和同軸電纜路由時鐘信號的情況并不少見。即使遵循最佳實(shí)踐,這些介質(zhì)的任何一種都可能
    的頭像 發(fā)表于 12-22 15:19 ?899次閱讀
    大型多GHz<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>中</b>的<b class='flag-5'>時鐘</b>偏斜

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

    數(shù)字設(shè)計時鐘與約束 本文作者 IClearner 在此特別鳴謝 最近做完了synopsys的DC workshop,涉及到時鐘的建模/約束,這里就來聊聊
    的頭像 發(fā)表于 01-28 07:53 ?2713次閱讀
    詳解<b class='flag-5'>數(shù)字</b>設(shè)計<b class='flag-5'>中</b>的<b class='flag-5'>時鐘</b>與約束

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

    對于時鐘綜合,各位后端工程師應(yīng)該都很熟悉,做好一個模塊/一個chip的時鐘,對整個項(xiàng)目 的功耗和Timing影響都是巨大的。
    的頭像 發(fā)表于 05-22 09:38 ?2866次閱讀
    <b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>綜合</b>CTS階段如何去降低Latency和Skew

    CTS時鐘綜合對uncertainty的影響

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

    大型多GHz時鐘的相位偏差設(shè)計

    電子發(fā)燒友網(wǎng)站提供《大型多GHz時鐘的相位偏差設(shè)計.pdf》資料免費(fèi)下載
    發(fā)表于 11-22 16:56 ?0次下載
    大型多GHz<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>中</b>的相位偏差設(shè)計

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

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