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

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

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

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

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-08-15 10:01 ? 次閱讀

對于高性能CPU設(shè)計,特別是在16 nm以及更高級的工藝節(jié)點上,signoff的corner很多,增加公共時鐘路徑長度、改善各RC端角下時鐘延遲的一致性、降低設(shè)計的局部時鐘偏斜已經(jīng)成為數(shù)字后端設(shè)計師的共識。Cadence innovus工具新增的multi-tap FlexHtree結(jié)構(gòu)時鐘樹方案不僅提供了H-tree對稱的時鐘緩沖器單元結(jié)構(gòu)和相等的線長特點,而且其對幾何對稱性降低了要求,確保了時序單元擺放完畢后就可以進(jìn)行時鐘樹綜合。建立了一個自動化的FlexHtree實現(xiàn)流程來降低不同corner下的時鐘偏斜。詳細(xì)討論了FlexHtree tap點的數(shù)量以及子樹時鐘綜合引擎對時鐘偏斜和設(shè)計時序的影響,進(jìn)而找到了一個較好的FlexHtree實現(xiàn)方案。最后從時序、功耗和單元數(shù)量等方面對FlexHtree、CCOPT和魚骨型Fishbone結(jié)構(gòu)時鐘樹進(jìn)行了較為全面的比較,從而得出該設(shè)計更適合采用靈活的FlexHtree結(jié)構(gòu)。

0 引言

現(xiàn)代高性能處理器對數(shù)據(jù)傳輸和數(shù)據(jù)處理需求越來越高,時鐘樹作為處理器時鐘信號傳遞的載體,對整個處理器的計算性能有著直接的影響。要想在低時鐘偏差(clock skew)的要求下將時鐘信號分配到各個局部區(qū)域在高性能系統(tǒng)中變得極富挑戰(zhàn)。

時鐘結(jié)構(gòu)主要分為兩種:樹形結(jié)構(gòu)與網(wǎng)狀結(jié)構(gòu)。樹形結(jié)構(gòu)設(shè)計比較成熟,以CadenceinnovusCCOPT為典型代表,EDA工具能夠根據(jù)指定的約束條件自動生成時鐘樹,并且可以選擇平衡樹還是借用有用偏差(useful skew)的不平衡樹,樹形結(jié)構(gòu)廣泛應(yīng)用于手機(jī)物聯(lián)網(wǎng)芯片設(shè)計中;而網(wǎng)狀型時鐘結(jié)構(gòu)需要大量的手工工作,并經(jīng)過大量的嘗試調(diào)整之后才能體現(xiàn)出優(yōu)勢,其見諸于高性能計算芯片中。

數(shù)字同步邏輯電路時鐘樹實現(xiàn)方案的合理選擇才能使得CPU的高性能不是浮云。例如,網(wǎng)狀型(Mesh)、魚骨型(Fishbone)時鐘結(jié)構(gòu)作為Intel和IBM CPU處理器慣常采用的結(jié)構(gòu),其共同特點是時鐘傳播延時(latency)、時鐘偏斜(skew)、片上偏差(OCV)都很低。Mesh結(jié)構(gòu)的缺點是功耗(power)偏大、布線資源開銷大,而魚骨型結(jié)構(gòu)由于子樹手工劃分比較難,手工操作比較多。目前以Flexible H-tree(縮寫為FlexHtree)結(jié)構(gòu)為代表的時鐘樹近年來廣泛應(yīng)用于ARM架構(gòu)處理器,其特點是使用靈活、功耗低、各工藝端角(corner)下時鐘偏差比較小。

本文將以帶多末梢點(multi-tap)的FlexHtree作為研究對象,嘗試在降低clock skew的同時不對建立時序(setup)和功耗帶來明顯的影響。本文的設(shè)計結(jié)果給高性能CPU的時鐘樹設(shè)計提供了一個較優(yōu)的解決方案,同時對目前自主高性能芯片的后端物理實現(xiàn)提供了工程參考。

1 Multi-tap FlexHtree和Fishbone時鐘結(jié)構(gòu)介紹

以高性能CPU為研究對象,本文主要討論和對比兩種時鐘結(jié)構(gòu),multi-tap FlexHtree和Fishbone,以下將從結(jié)構(gòu)及特點方面對兩種結(jié)構(gòu)進(jìn)行簡單描述。

1.1 帶multi-tap的H-tree時鐘樹結(jié)構(gòu)

傳統(tǒng)單一的H-tree多用于Mesh、Fishbone時鐘結(jié)構(gòu)的前級驅(qū)動,或者部分對clock skew有要求的電路結(jié)構(gòu)進(jìn)行時鐘的平衡。圖1中所示帶multi-tap點的H-tree的結(jié)構(gòu)可以與時鐘樹綜合(CTS)相結(jié)合來控制整個時鐘樹的clock skew[1]。時鐘根節(jié)點(root pin)可以是時鐘輸入端口,也可以是時鐘緩沖器,借助H-tree將時鐘信號傳遞到各個葉節(jié)點(sink)。最上面7個驅(qū)動器組成了H-tree的“H”形結(jié)構(gòu),當(dāng)tap點比較多時可以采用多級的H-tree網(wǎng)絡(luò)實現(xiàn)tap點之間的多工藝端角(multi-corner)下時鐘延遲的平衡。最后一級驅(qū)動器為子樹的根節(jié)點,該子樹可以使用普通的CTS完成。

FlexHtree結(jié)構(gòu)具有實現(xiàn)流程簡單,易于嵌入到整個P&R(布局和布線)流程中實現(xiàn)的特點。并且對于含有存儲器(memory)和宏模塊(macro)的布局也可以采用H-tree實現(xiàn)。還有其對時鐘門控單元(clock gating)結(jié)構(gòu)的復(fù)雜度也沒有過多要求。由于其不需要過分關(guān)注H-tree上時鐘緩沖器和時鐘主干的幾何對稱性,只要能保證在multi-corner下RC參數(shù)電氣對稱性也可實現(xiàn)clock skew的降低。而對于傳統(tǒng)的H-tree,出于幾何對稱性的考慮,必須對H-tree sink數(shù)量以及sink位置進(jìn)行約束[1]。

1.2 Fishbone時鐘結(jié)構(gòu)

顧名思義,F(xiàn)ishbone時鐘結(jié)構(gòu)就是其形狀類似于魚骨頭的一種時鐘結(jié)構(gòu)。依據(jù)主干的條數(shù),通常將Fishbone時鐘網(wǎng)絡(luò)分為單魚骨結(jié)構(gòu)、雙魚骨結(jié)構(gòu)與多魚骨結(jié)構(gòu)。圖2中是一個單魚骨結(jié)構(gòu)的示意圖,灰色三角形為前級驅(qū)動器,白色三角形為主干驅(qū)動器?;疑珵闀r鐘分支。Fishbone前級驅(qū)動一般多采用H-tree結(jié)構(gòu)來驅(qū)動多扇入緩沖器陣列,根據(jù)負(fù)載點的數(shù)量來選擇金字塔形狀的多扇入驅(qū)動緩沖器陣列級數(shù)。正是由于最后一級主干驅(qū)動器并聯(lián)提供的驅(qū)動能力,魚骨(trunk)才可以“橫穿”整個floorplan,保證每根魚刺(branch)上的局部緩沖器時鐘到達(dá)延時相同。這里的局部緩沖器作為子樹的根節(jié)點,使用CTS生成時鐘樹。

Fishbone結(jié)構(gòu)的優(yōu)點是skew小,時鐘latency短,OCV小,只需要很少的緩沖器,功耗低,布線開銷小,可實現(xiàn)useful skew。缺點就是不能自動化,需要大量手工調(diào)整[2]。其比較適用于長條形較為對稱的floorplan。

2 Multi-tap FlexHtree實現(xiàn)

本節(jié)主要介紹FlexHtree的時鐘樹綜合流程,對各步驟進(jìn)行了說明。然后分別討論tap點個數(shù)對clock skew的影響,并對比了子樹使用innovus ICTS和CCOPT引擎生成時鐘樹對時序的影響。本節(jié)也同時對比了CTS、FlexHtree和Fishbone 3種結(jié)構(gòu)實現(xiàn)時鐘樹的clock skew變化,指導(dǎo)芯片設(shè)計者更進(jìn)一步挖掘3種結(jié)構(gòu)的特點。

2.1 FlexHtree時鐘樹綜合流程

圖3所示為使用Cadence innovus工具綜合帶multi-tap的FlexHtree的流程,先將做完memory、macro和標(biāo)準(zhǔn)單元布局的數(shù)據(jù)庫作為FlexHtree綜合的起點,此時數(shù)據(jù)路徑延時優(yōu)化已經(jīng)做好。具體步驟:(1)工具依據(jù)標(biāo)準(zhǔn)時序約束(SDC)來創(chuàng)建時鐘樹spec;(2)定義時鐘樹繞線規(guī)則,對時鐘主干和分支指定不同的繞線規(guī)則;(3)確定時鐘樹設(shè)計約束,以達(dá)到預(yù)期的skew、transition和時鐘緩沖器扇出數(shù)量;(4)定義FlexHtree創(chuàng)建規(guī)范,如時鐘源點、是否對稱、tap點個數(shù)及位置區(qū)域等;(5)對定義的Flex-Htree主干進(jìn)行綜合,綜合之后檢查tap點位置及trunk繞線是否比較合理;(6)對放好的multi-tap點創(chuàng)建時鐘以及定義時鐘分組;(7)對定義子樹進(jìn)行綜合,子樹內(nèi)部可以采取平衡樹,也可以采取借用useful skew的不平衡樹,此時子樹綜合后的時序不理想就要分析子樹的劃分是否合理,是否依據(jù)邏輯關(guān)系、物理位置進(jìn)行了合理的掛載,同時要注意單個子樹的clock latency是否過長。

用帶multi-tap點FlexHtree實現(xiàn)時鐘樹的難點在于tap點數(shù)量的確定以及不同tap點下合理掛載sink問題。

2.2 不同tap點個數(shù)對clock skew影響

本節(jié)tap點子樹使用了ICTS引擎進(jìn)行平衡樹生成,保證tap點以下子樹內(nèi)的clock latency也能做平。為了探討不同tap點對clock skew的影響,分別選取了4、6、8、18個tap點生成FlexHtree,圖4為tap點個數(shù)與clock skew分布關(guān)系圖。橫軸為clock skew范圍,每50 ps一個步長,縱軸是各clock skew區(qū)間下條數(shù)占總條數(shù)百分比。

從圖4中可以看出,菱形setup折線的峰值點主要出現(xiàn)在-150 ps~125 ps區(qū)間內(nèi),圖4(b)和圖4(c)skew分布比較集中于-150 ps~0 ps范圍,這與工具使用負(fù)的useful skew來修保持時序(hold)違反有關(guān)系;圖4(b)和圖4(c)中正的useful skew集中于25 ps~100 ps,說明工具將時鐘樹做得比較平衡,而圖4(a)和圖4(d)比較離散,時鐘樹做得不是很平。對hold折線來說,圖4(b)和圖4(c)的skew分布更為集中在-75 ps~0 ps和25 ps~175 ps這兩個區(qū)間,因此其setup時序好于其他兩者。圖4(c)中clock skew更為集中在-75 ps~0 ps以及25 ps~125 ps區(qū)間,這說明8個tap點在兼顧setup時序的同時也修了hold。從4個圖中可以看出8個tap點下clock skew較小,且比較集中, setup和hold好于其他3種情況。

2.3 Multi-tap FlexHtree tap點合理劃分分析

為了深一步搞清楚8個tap點下時序好的原因,圖5提供了8個tap點FlexHtree在floorplan中的sink分布。從圖中可以看出,本設(shè)計為典型的長方形結(jié)構(gòu),memory成對稱放置,沿上下出pin區(qū)域左右兩邊分別歸屬于l3c_pipeline_0和l3c_pipeline_1 module。圖中8塊位置用不同顏色以及邊界折線區(qū)分開來,同時在相應(yīng)區(qū)塊中標(biāo)記了sink所屬module,高亮的直線為8tap點H-tree結(jié)構(gòu)。這樣的tap點劃分充分考慮到了sink點的物理位置以及module間交互(talk)關(guān)系,避免了tap點與sink距離過遠(yuǎn)和tap點下所帶sink數(shù)過大導(dǎo)致的子樹clock latency偏大,從而不利于子樹間talk path時序的收斂。圖5中module的切分考慮到了減少talk path,更多將某些小的module都掛載到一個tap點下,因此這種8個tap的定義才獲得了時序容易滿足的好處。

表1為8個tap點所帶sink數(shù)目以及tap點common path clock latency(簡稱CPCL)在子樹平均clock latency中百分比。從表中可以看出Htree_tap0下面掛載sink數(shù)量最多,對應(yīng)圖5liu_pre_processor module所在區(qū)域;Htree_tap1下掛載sink數(shù)量次之,對應(yīng)圖5 L3c_cfg和L3c_pipeline_0 module所在區(qū)域;Htree_tap4下掛載sink數(shù)量最少,對應(yīng)圖5中間右下位置L3c_pipeline_1 module區(qū)域。其他tap點下掛載sink數(shù)量基本接近。8個tap點下CPCL都在40%以上,這樣OCV對tap點下sink的影響就沒那么大。從tap點下sink數(shù)量與CPCL的對應(yīng)關(guān)系看,Htree_tap0和Htree_tap1并沒有因為sink數(shù)量多平均clock latency就越大,出現(xiàn)這種情況說明工具對tap0和tap1 sink切分合理,子樹下sink clock latency做得比較平。從另外一個方面來看,8個tap點的CPCL百分之間偏差不大,8個子樹之間做得也比較平,這樣對子樹間hold響主要就是OCV了。所以,分析FlexHtree做得好不好,可以從子樹sink module劃分、物理位置、子樹sink數(shù)目和CPCL百分比出發(fā)。

圖6為8個tap點在5個不同corner下公共clock latency的比較圖。從柱狀圖中可以看出tap點時鐘clock latency在不同corner下的偏差不超過70 ps,tap點之間的clock latency相差不到3 ps,這也證實了前面1.1節(jié)所提到的FlexHtree特點:multi-corner下RC參數(shù)的電氣對稱性,以及tap點之間的RC參數(shù)電氣對稱性。這樣保證了各corner下時序的一致性。

2.4 使用平衡和非平衡樹綜合tap點子樹

本節(jié)中討論了分別使用innovus的ICTS和CCOPT引擎綜合tap點子樹的時序結(jié)果,如表2、表3所示,表格中wns(worst negative slack)代表時序違反最差路徑,tns(total negative slack)代表所有時序違反路徑的違反值之和。兩表格中的setup和hold結(jié)果均為postroute階段innovus報出的結(jié)果。從表2和表3中wns和tns結(jié)果來看,8個tap點效果最好,不論setup和hold;tap點多的情況下hold的wns和tns會好于tap點少的情況。

將表2與表3進(jìn)行比較可知,使用CCOPT引擎綜合的子樹對于4個、6個和8個tap點時wns和tns均會變差,但tap點為18個時,setup的wns和tns會變好。因此可以得出如下結(jié)論:tap點多更適合于降低hold違反條數(shù),在tap點比較多情況下,使用CCOPT引擎綜合子樹的時序效果好于ICTS引擎。

3 3種不同結(jié)構(gòu)實現(xiàn)時鐘樹時序、面積和功耗比較

本節(jié)將3種不同結(jié)構(gòu)時鐘樹FlexHtree、CCOPT和Fishbone從時序、面積和功耗方面進(jìn)行比較,進(jìn)而選出一種更優(yōu)的時鐘樹實現(xiàn)方案。從表4中可以看出8個tap點的FlexHtree setup和hold時序均要好于CCOPT和Fishbone結(jié)構(gòu),從側(cè)面也反映了8個tap點方案對clock skew控制要好于另外兩種結(jié)構(gòu),并且其density利用率也是最低的,從clock buff count也進(jìn)一步證明了其使用了較少的useful skew。從average clock latency來看,由于FlexHtree使用了高層繞線,其值要低于CCOPT,但高于Fishbone。從功耗來看,F(xiàn)lexHtree的功耗,尤其是使用ICTS引擎綜合子樹的FlexHtree,其clock network功耗要高于CCOPT和Fishbone結(jié)構(gòu)。表格中一個顯著的特征就是,F(xiàn)ishbone結(jié)構(gòu)時鐘樹功耗最小,這與其占用的布線資源少、使用的時鐘緩沖器少有直接的關(guān)系。但是對于Fishbone結(jié)構(gòu),由于必須手工進(jìn)行,子樹的劃分是一個難題,本文也只是做了大量的嘗試,但時序結(jié)果看起來并未有多少好處。這也是本文選用FlexHtree的原因。

4 結(jié)論

本文在innovus工具平臺下建立了帶multi-tap的FlexHtree自動化時鐘樹綜合流程。使用innovus實現(xiàn)了4、6、8和18個tap點的FlexHtree,同時針對tap點子樹要不要做平,分別選用了ICTS和CCOPT進(jìn)行子樹的綜合。為了更深入地說明為何選用FlexHtree結(jié)構(gòu),也嘗試了CCOPT綜合和Fishbone手工實現(xiàn)時鐘樹的方案,從clock skew、時序、面積和功耗等方面進(jìn)行了比較,最終確定了使用FlexHtree方案實現(xiàn)L3 cache設(shè)計。同時本文也對FlexHtree tap點合理劃分進(jìn)行了分析,有利于接下來對tap點位置和sink掛載進(jìn)一步優(yōu)化,控制clock skew,實現(xiàn)setup和hold均比較容易收斂的結(jié)果。本文的結(jié)果也對類似memory比較多的設(shè)計提供直接的時鐘樹設(shè)計經(jīng)驗,同時本文的分析方法也可以指導(dǎo)設(shè)計者探索時鐘樹物理空間。

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

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211763
  • 時鐘信號
    +關(guān)注

    關(guān)注

    4

    文章

    448

    瀏覽量

    28568

原文標(biāo)題:【學(xué)術(shù)論文】Multi-Tap FlexHtree在高性能CPU設(shè)計中的應(yīng)用

文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    TAITherm三維熱仿真分析工具的特點和耦合流程

    TAITherm三維熱仿真分析工具的特點COTHERM 自動控制耦合流程
    發(fā)表于 12-15 07:49

    求大神分享最全的Synopsys DC綜合流程教程

    求大神分享最全的Synopsys DC綜合流程教程
    發(fā)表于 06-23 17:56

    STM32時鐘案例詳解

    STM32時鐘案例詳解時鐘直接使用HSI作為時鐘源使用配置相應(yīng)的結(jié)構(gòu)體,最后調(diào)用HAL_RCC_OscConfig(), 和HAL_RC
    發(fā)表于 08-20 06:11

    2018年度Cadence中國用戶大會分享設(shè)計者們的成功案例和解決經(jīng)驗

    經(jīng)過專家評委的認(rèn)真評選,題為《Multi-Tap FlexHtree在高性能CPU設(shè)計中的應(yīng)用》的論文獲評2018年度最佳論文將,論文作者來自于天津飛騰信息技術(shù)有限公司的彭書濤、黃薇、邊少鮮。
    的頭像 發(fā)表于 08-17 10:12 ?4865次閱讀

    Vivado綜合引擎的增量綜合流程

    從 Vivado 2019.1 版本開始,Vivado 綜合引擎就已經(jīng)可以支持增量流程了。這使用戶能夠在設(shè)計變化較小時減少總的綜合運行時間。
    發(fā)表于 07-21 11:02 ?1675次閱讀

    機(jī)器流程自動化是什么

    RPA全稱Robotic Process Automation,即機(jī)器流程自動化,機(jī)器的作用是用來替代人工操作大量高重復(fù)、標(biāo)準(zhǔn)化的日常事務(wù),但這里的機(jī)器并非實體,而是虛擬性的軟件,因此也可稱為軟件流程
    的頭像 發(fā)表于 01-01 16:52 ?9215次閱讀

    智能流程自動化技術(shù)綜述

    智能流程自動化是不同技術(shù)的組合,用于實現(xiàn)更完整的端到端業(yè)務(wù)流程自動化。它是從基本的、基于規(guī)則的任務(wù)自動化到由眾多任務(wù)組成的整個業(yè)務(wù)
    發(fā)表于 06-14 16:43 ?5378次閱讀

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

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

    工業(yè)自動化時代的制造進(jìn)步

    工業(yè)自動化時代的制造進(jìn)步
    的頭像 發(fā)表于 12-29 10:02 ?631次閱讀
    工業(yè)<b class='flag-5'>自動化時</b>代的制造進(jìn)步

    一個自動化的測試流程

    一個自動化的測試流程
    發(fā)表于 05-04 17:48 ?0次下載

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

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

    時鐘:芯片的大動脈

    我覺得稱時鐘為芯片的大動脈一點也不夸張,因為所有flipflop 翻轉(zhuǎn)都要受到它的控制。而時鐘的設(shè)計到實現(xiàn)是一個很復(fù)雜的過程,從流程上說
    的頭像 發(fā)表于 07-15 09:28 ?5202次閱讀
    <b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>:芯片的大動脈

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

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