<del id="cqywy"></del>
  • <ul id="cqywy"></ul>
  • <ul id="cqywy"></ul>
  • <del id="cqywy"></del>
  • <strike id="cqywy"><rt id="cqywy"></rt></strike>
    <ul id="cqywy"></ul><cite id="cqywy"><input id="cqywy"></input></cite>
    <tfoot id="cqywy"></tfoot>
    <ul id="cqywy"></ul>
    • <ul id="cqywy"></ul>
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      數字IC設計中的分段時鐘樹綜合

       字善 2024-07-03

      背景

      為什么需要分段去做時鐘樹呢?因為在某些情況下,按照傳統的方法讓每一個clock group單獨去balance,如果不做額外干預,時鐘樹天然是做不平的。

      image.png

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

      如果按默認設置去做時鐘樹綜合,那么A和B的時鐘將會做balance;但是C的時鐘肯定做不平,因為從Macro的clock in pin到寄存器C的時鐘pin之間的delay不可控且沒被工具識別和考慮到。

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

      做寄存器A和C的時鐘樹

      案例中時鐘樹使用innovus實現。

      先將Macro的clock out pin到寄存器B1和B2之間的時鐘樹net設置為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]

      image.png

      再將Macro的clock in pin設為時鐘stop pin,并將clock in pin到寄存器C的時鐘pin之間的延遲(假設該值為delay1)標定到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    

      image.png

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

      做寄存器B的時鐘樹

      首先給寄存器B1和B2創建單獨的skew group,因為這個時鐘不是全局時鐘樹都要去做,而是單獨去做寄存器B1和B2;也就是Macro的clock out pin到寄存器B1和B2的時鐘pin之間的這一部分,這部分的時鐘起點是Macro的clock out pin,所以就定義一個Macro的clock out pin為clock port的skew group,假設主時鐘域的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  

      image.png

      image.png

      image.png

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

      set_ccopt_property source_latency $delay2 -clock_tree from_macro_to_c

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

      set_ccopt_property  include_source_latency -skew_group from_macro_to_c

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

      結果

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

      image.png

      END

      作者:Jack Xu
      文章來源:志芯

      更多IC設計干貨請關注IC設計專欄。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 美女内射毛片在线看免费人动物 | 亚洲精品国产精品乱码视色| 国产成人最新三级在线视频| 精品人妻日韩中文字幕| 国产精品中文字幕在线| 国产网友愉拍精品视频手机| 精品人妻中文字幕在线| 翘臀少妇被扒开屁股日出水爆乳| 少妇高潮水多太爽了动态图| 办公室强奷漂亮少妇同事| 亚洲精品无码久久千人斩| 翘臀少妇被扒开屁股日出水爆乳| 最新日韩精品中文字幕| FC2免费人成在线视频| 午夜精品一区二区三区免费视频| 久久精品人人做人人爽电影蜜月| 亚洲国产超清无码专区| 久久午夜色播影院| 亚洲爆乳WWW无码专区| 国产在线超清日本一本| 国内少妇偷人精品免费| 日本久久99成人网站| 久久亚洲色WWW成人男男| 无码人妻精品一区二区三区蜜桃 | 人妻系列无码专区免费| 免费大片黄国产在线观看| 亚洲乱码中文字幕小综合| 中文字幕人成乱码中文乱码 | 亚洲AV无码专区国产乱码电影 | 成人午夜av在线播放| 2020国产欧洲精品网站| 夜夜影院未满十八勿进| 亚洲AV无码不卡私人影院| 四虎永久精品免费视频| 2020国产激情视频在线观看| 久久99国内精品自在现线| 无码国产精品一区二区免费I6| 亚洲精品中文av在线| 乱码中字在线观看一二区| 亚洲综合色在线视频WWW| 国产永久免费高清在线|