加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

2023/12/01
5826
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

背景

為什么需要分段去做時鐘樹呢?因為在某些情況下,按照傳統(tǒng)的方法讓每一個clock group單獨去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的時鐘肯定做不平,因為從Macro的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實現(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)建單獨的skew group,因為這個時鐘不是全局時鐘樹都要去做,而是單獨去做寄存器B1和B2;也就是Macro的clock out pin到寄存器B1和B2的時鐘pin之間的這一部分,這部分的時鐘起點是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的時鐘起點(即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é)果

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
350180-2 1 TE Connectivity TEST PROBE REC130L SPCL RED GPBR

ECAD模型

下載ECAD模型
$5.05 查看
0039281023 1 Molex Rectangular Power Connector, 2 Contact(s), Male, Solder Terminal, HALOGEN FREE AND ROHS COMPLIANT

ECAD模型

下載ECAD模型
$0.74 查看
474817 1 ERNI Board Connector, 6 Contact(s), 1 Row(s), Male, Straight, Surface Mount Terminal,

ECAD模型

下載ECAD模型
$3.23 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術(shù)圈成員。

微信公眾號