日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 艾思后端實(shí)現(xiàn)

在經(jīng)歷了前面的place、cts和一些優(yōu)化以后,工具進(jìn)入到了route階段,這也是apr里邊的重要的auto-route步驟。

工具在這里很聰明,使用了化繁為簡(jiǎn)的策咯來(lái)實(shí)現(xiàn)繞線。生活中也有一個(gè)類似的問(wèn)題,大家可以思考一下,如何把一個(gè)雜亂無(wú)章的毛線球快速的理順?

通常的做法是,先解決主要問(wèn)題,然后再是次要問(wèn)題,最終是逐步修正細(xì)節(jié)。ICC的繞線很好的體現(xiàn)了這個(gè)化繁為簡(jiǎn)的策咯。

由于數(shù)據(jù)庫(kù)的復(fù)雜程度不同,工具要想解決非常復(fù)雜的場(chǎng)景,那么就一定要將各種場(chǎng)景進(jìn)行歸一化,這種歸一化的過(guò)程就是簡(jiǎn)化問(wèn)題。為此,ICC工具構(gòu)建了下面的一些名詞和步驟來(lái)完成繞線:

· Glink

· gCell

· GRCs

· Overflow

· Global-route

· Track/layer

· Track-assignment

· Detail-route

· Verify route

喝口咖啡,一個(gè)個(gè)的來(lái)梳理下:

  • GlinkGlobal link,

這是一個(gè)標(biāo)準(zhǔn)的曼哈頓距離模型:通過(guò)Glink任何連線都只有水平和豎直兩種方向,這也是給后期做routingcongestion核算的一個(gè)重要參考信息。數(shù)據(jù)庫(kù)里所有的連接關(guān)系都會(huì)以Glink的形式存在。作為真實(shí)route的起點(diǎn)信息。如下圖所示:


  • gCell: grid Cell ,

這個(gè)是工具在數(shù)據(jù)庫(kù)里創(chuàng)建的虛擬格點(diǎn)cell,這是一個(gè)非常高效的處理。每一個(gè)die的形狀大小都不一樣,為了更好的進(jìn)行繞線,工具基于工藝的信息,把die分割成無(wú)數(shù)個(gè)gCell的小邊框。通常這個(gè)gCell的大小,是一個(gè)基于工藝site_row的數(shù)值的一個(gè)正方形。由于繞線都是基于繞線layer的,所以在每一個(gè)繞線層,die就被分割成了無(wú)數(shù)個(gè)小正方形,整個(gè)數(shù)據(jù)庫(kù)包含的gCell的總數(shù)量計(jì)算公式是:

gCell_rount = layer_count * die_area/ (site_row_width * site_row_width)

如圖所示

在上邊的示例圖里,如果考慮到有nlayer,那么數(shù)據(jù)庫(kù)里就會(huì)有

gCells_count=  n * 254

而后,工具在每一個(gè)gCell的邊界上核算穿過(guò)每個(gè)gCell邊界上的Glink連接的需求,從而計(jì)算真實(shí)的routingcongestion

  • GRCsGlobal Routing Cells

這個(gè)就是將gCells分割回每層的一個(gè)信息,由于實(shí)際的繞線是通盤考慮的,gCells會(huì)更加的真實(shí),就是支持繞線跳層,而GRCs是基于每層的計(jì)算,這個(gè)更適用于評(píng)估當(dāng)前層次的routingcongestion。

  • Overflow:


工具會(huì)對(duì)每一層的GRCs進(jìn)行評(píng)估,所有穿過(guò)這個(gè)虛擬cell邊界的需求和供給之間的差,公式如下

Overflow  = requirement – demand

工具會(huì)對(duì)可以看到,這個(gè)值可正:需求大于供給;可零:需求等于共計(jì);可負(fù):需求小于供給。對(duì)于后兩種,繞線資源都是足夠的,不是問(wèn)題。如果為正值,這個(gè)就是真正意義上的congestion了。如下圖:overflow3的一個(gè)示例:

這里有24個(gè)水平方向的穿線(glink)需求,但是實(shí)際上只能提供21個(gè)資源,在所有的水平繞線稍層上(m2/m4/m6/m8),所以這里的overflow就是3

由于GRCsoverflow的評(píng)估是基于單個(gè)繞線層的,就水平方向而言,如果通過(guò)打開不同的layer,在同樣數(shù)據(jù)庫(kù)里overflow的結(jié)果是會(huì)發(fā)生變化的。視圖里的overflow是所有打開版層overflow的總和,所以,開的層越多,數(shù)值大overflow的數(shù)量就越多,例如下圖,注意看一下overflow3在打開不同版層時(shí)的細(xì)微變化:

  • Global-route

這個(gè)是工具在繞線初始階段,所使用的一個(gè)主命令,它的目的就是化繁為簡(jiǎn),在經(jīng)歷過(guò)這個(gè)命令后,數(shù)據(jù)庫(kù)里就會(huì)保存到Glink、gCell、GRCsoverflow的信息,并且在globalrouting 的結(jié)束,都會(huì)輸出如下圖的信息:

這是一個(gè)信息量很大的report,一起來(lái)梳理一下它的具體含義。

首先,工具將繞線的資源分為了兩個(gè)方向,在一些工藝?yán)镞?,允許板層的prefer-routingnone-prefer-routing并存,但是有些工藝不允許這么做,簡(jiǎn)單起見,假設(shè)當(dāng)下的工藝是不允許none-prefer-routing的,那么,所有的繞線資源就是,這個(gè)層做對(duì)應(yīng)的繞線方向的所有track數(shù)量的總和。

這個(gè)report里邊,Both direction的數(shù)量,就是水平和豎直數(shù)量的總和,比如overflow的數(shù)值

Overflow:  4697  (Both) = 4606 (H)  + 91  (V)

Max,這個(gè)好理解,就是兩個(gè)方向里邊最大的GRCs overflow 的值。

GRCs   : 這里邊有兩個(gè)GRCs的地方。如下圖:

第一個(gè)GRCs GRCs = 21),是指所有overflow2Max)的GRCs的數(shù)量。

第二個(gè)GRCs GRCs =  5681),是指所有overflowGRCs的數(shù)量綜合,(0< overflow <=Max,在這個(gè)例子里,Max2,所以細(xì)節(jié)就是,overflow 2GRCs21個(gè),overflow1GRCs5660個(gè),

在上圖的最后一列有一個(gè)百分比,0.06%,這是說(shuō),在這個(gè)方向(版層)下,所有帶來(lái)overflowGRCs占所有當(dāng)前方向(版層)整個(gè)GRCs的百分比,所以可以反推出來(lái),當(dāng)前方向(版層)的GRCs大概就是

9468333=5681 / 0.06%

這個(gè)數(shù)值對(duì)理解設(shè)計(jì)的數(shù)據(jù)有一定的幫助。

再看一下下圖GRCsreport圖例

對(duì)于兩個(gè)方向的GRCs總和的計(jì)算公式如下:

5822  (Both) = 5681 (H) + 141 (V)

  • Track/layer

Track是一個(gè)在floorplan里邊出現(xiàn)的概念,是指當(dāng)前繞線層的繞線可以使用的“軌道”信息。layer就是常說(shuō)的繞線版層。由于工藝制作的區(qū)別,在某些工藝下,在不同的layer,所有track都是一樣的,在近些年來(lái)的更為高級(jí)的工藝下,track開始在不同的layer出現(xiàn)了區(qū)別,layer越低,track之間的pitch就越小,layer越高則反之。

這個(gè)track就是前邊核算overflow的供給。

基于上述理論,在規(guī)定的長(zhǎng)度內(nèi)(site_row),每一層的供給是可以不同的,如下如所示:在單位長(zhǎng)度內(nèi)M2M4track供給數(shù)量的區(qū)別很明顯


  • track assignment

有了global routing的信息,track assignment就簡(jiǎn)單了,穿過(guò)這個(gè)GRCsglink連接被實(shí)現(xiàn)到了每層的對(duì)應(yīng)的track上,但是,要注意一點(diǎn),工具為了簡(jiǎn)化這一步驟,只是做了簡(jiǎn)單的track  assignment,所以,實(shí)現(xiàn)的速度很快,但是會(huì)有很多net shape都是overlap的結(jié)果,類似下圖的結(jié)果

在這個(gè)有3個(gè)overflow的區(qū)域,這里有一個(gè)占用同一個(gè)track的兩個(gè)net shape,這就是典型的short的繞線。

到這里為止,可以感覺(jué)到overflow對(duì)真實(shí)繞線的影響了吧。固然,一般的設(shè)計(jì)都不可能保證GRCs overflow是零(如果是零,理論上,在trackassignment之后,就不會(huì)有任何的short出現(xiàn)了,那樣的數(shù)據(jù)庫(kù)就真厲害了?。?,但是工具之所以這樣做,只是為了簡(jiǎn)化track的步驟,后面還有大招,來(lái)修復(fù)細(xì)節(jié)問(wèn)題。這就是下面要說(shuō)到的。Detailroute

  • Detail-route

能看到這里的同學(xué)都是好同學(xué)J

講了半天,這里的detail route其實(shí)才是大家通常最先接觸到的真實(shí)的router,在老一點(diǎn)的icc版本里邊,就是就route_detail,由于新的工藝的要求,icc推出了一個(gè)route_zrt_detail的命令,來(lái)滿足更復(fù)雜的工藝需求,原先的繞線就稱為了classicrouter?,F(xiàn)今,進(jìn)入了icc2的時(shí)代,這個(gè)命令,又變成了route_detail,但本質(zhì)上其實(shí)就是route_zrt_detail的演化版本。歷史捋清楚了,下面就來(lái)看一下,這個(gè)命令的厲害。

書接上文,在track assignment結(jié)束后,由于工具的策咯不同,雖然所有的netshape都被創(chuàng)建了,但是由于GRCsoverflow的影響和繞線細(xì)節(jié)等問(wèn)題,會(huì)出現(xiàn)大量的DRC問(wèn)題。例如下例:

可以看到,這里會(huì)有非常多的DRCshort,基于前面的理論,這個(gè)現(xiàn)象其實(shí)也沒(méi)有超出預(yù)期太多

所以,icc這個(gè)時(shí)候就會(huì)調(diào)用detail route來(lái)對(duì)這些DRC進(jìn)行精修。這個(gè)就是detailroute要干的事情。

本質(zhì)上來(lái)講,如果繞線資源不夠,short是不能被修復(fù)的,因?yàn)榫蛦蝹€(gè)GRC  cell而言,供給是一定的,需求也是死的,這兩個(gè)是的差異是天生的,不能被克服的。

有趣的是,工具在將一切分割后的節(jié)點(diǎn)(track assignment),它又可以經(jīng)寂靜分隔開的GRCs進(jìn)行二次、三次等重排。言下之意就是,在當(dāng)前GRCcell出現(xiàn)問(wèn)題的地方,可以去周邊的GRC尋找出路,這其實(shí)就是典型的面積換short:迂回(detour),如下圖的short演進(jìn)過(guò)程:

這個(gè)從ICC的命令log可以清楚地看到這個(gè)動(dòng)作的影響,如下例

可以明顯的看到,數(shù)據(jù)庫(kù)的總線長(zhǎng)在不斷的增加,但是對(duì)應(yīng)的short實(shí)在不斷地減少,如下圖:

Detail  route之后再來(lái)看一下那兩根short的繞線,如下圖:

工具通過(guò)跳層。和迂回有效地解決了short。

這個(gè)GRCs的重組和的策咯看似簡(jiǎn)單,但是非常高效,通過(guò)借道和迂回可以有效地解決short。當(dāng)然,天下沒(méi)有免費(fèi)的午餐,任何的detour都會(huì)增加timing的問(wèn)題,這個(gè)時(shí)候,就需要postroute的優(yōu)化,和PTtiming ECO了。但整體上來(lái)說(shuō),這個(gè)代價(jià)是值得的,通常都可以保證physicaltiming同步收斂。

由于工具對(duì)GRCs的重組是有一定范圍的,加上timing driven的需求,并非所有的short都可以被解決,尤其是在某些local short 數(shù)量很多的區(qū)域,工具是無(wú)能為力的。例如,如果要在一個(gè)非常密集的區(qū)域里,需要解決很多short,就要迂回繞線非常多的net,可以想象,要完全躲開這個(gè)高密度區(qū)域,才能解決這些short,這對(duì)于timing是很不利的。簡(jiǎn)而言之:沒(méi)有解不掉的short,只有修不干凈的timing。

除過(guò)對(duì)于short的修復(fù),Detail route黑可以修復(fù)各種各樣類型的DRC問(wèn)題。簡(jiǎn)單的一個(gè)類型列表如下

  • Verify_route


detail route完成后,用戶就可以使用verifyroute來(lái)檢查繞線質(zhì)量了,通過(guò)觀察這個(gè)結(jié)果,來(lái)整體評(píng)估數(shù)據(jù)庫(kù)的繞線質(zhì)量,主要的關(guān)注點(diǎn),還是那句老話:控制short。當(dāng)然,別的類型也有注意,尤其是數(shù)量巨大的時(shí)候,有時(shí)候,由于某些配置的不合理,會(huì)導(dǎo)致在某些層的繞線質(zhì)量顯著增加,甚至?xí)霈F(xiàn)open,這個(gè)時(shí)候就要去好好的debug了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉