本公開總體(ti)(ti)(ti)上(shang)涉(she)(she)及(ji)(ji)用于集成(cheng)電路(lu)設(she)計的(de)(de)技術,并且具體(ti)(ti)(ti)地(di)但不排他地(di)涉(she)(she)及(ji)(ji)集成(cheng)電路(lu)布局中的(de)(de)晶(jing)體(ti)(ti)(ti)管放置的(de)(de)迭代優化。
背景技術:
1、用于集(ji)成(cheng)電路(lu)設計(ji)的(de)(de)(de)常規(gui)(gui)方(fang)法(fa)包括基(ji)于規(gui)(gui)則的(de)(de)(de)放(fang)置(zhi)引擎,涉及確定(ding)標(biao)準(zhun)(zhun)單(dan)(dan)體(ti)(ti)(cell)或硬宏(hong)(hong)(hong)(hard?macros)的(de)(de)(de)最(zui)優或接近最(zui)優放(fang)置(zhi)的(de)(de)(de)一個或多個軟件應(ying)用,而不(bu)是單(dan)(dan)獨(du)的(de)(de)(de)晶(jing)(jing)體(ti)(ti)管(guan)(guan)。在(zai)集(ji)成(cheng)電路(lu)設計(ji)的(de)(de)(de)場境中(zhong),標(biao)準(zhun)(zhun)單(dan)(dan)體(ti)(ti)描(miao)述了提供布(bu)爾邏輯(ji)功能(例如,and、or、xor、xnor、反相(xiang)器(qi)(qi))或存儲功能(觸發(fa)器(qi)(qi)或鎖存器(qi)(qi))的(de)(de)(de)一組晶(jing)(jing)體(ti)(ti)管(guan)(guan)和互(hu)連結構。類似地,“硬宏(hong)(hong)(hong)”是指針對給(gei)定(ding)半導體(ti)(ti)制造(zao)工藝(yi)(例如,在(zai)設計(ji)規(gui)(gui)則方(fang)面)預先驗證(zheng)的(de)(de)(de)晶(jing)(jing)體(ti)(ti)管(guan)(guan)的(de)(de)(de)塊級布(bu)置(zhi)。以此(ci)方(fang)式,常規(gui)(gui)晶(jing)(jing)體(ti)(ti)管(guan)(guan)放(fang)置(zhi)在(zai)單(dan)(dan)獨(du)的(de)(de)(de)晶(jing)(jing)體(ti)(ti)管(guan)(guan)上方(fang)的(de)(de)(de)階層級處(chu)操作,其(qi)中(zhong)待放(fang)置(zhi)的(de)(de)(de)每個對象(xiang)是標(biao)準(zhun)(zhun)單(dan)(dan)體(ti)(ti)或硬宏(hong)(hong)(hong),并且每個網(wang)列表示與對象(xiang)(單(dan)(dan)體(ti)(ti)或宏(hong)(hong)(hong))或設計(ji)的(de)(de)(de)輸入/輸出相(xiang)關聯的(de)(de)(de)各(ge)種(zhong)輸入/輸出引腳(jiao)而非單(dan)(dan)獨(du)的(de)(de)(de)晶(jing)(jing)體(ti)(ti)管(guan)(guan)當中(zhong)的(de)(de)(de)邏輯(ji)連接。因此(ci),單(dan)(dan)獨(du)的(de)(de)(de)晶(jing)(jing)體(ti)(ti)管(guan)(guan)是參考其(qi)相(xiang)應(ying)標(biao)準(zhun)(zhun)單(dan)(dan)體(ti)(ti)或宏(hong)(hong)(hong)的(de)(de)(de)放(fang)置(zhi)而放(fang)置(zhi)。此(ci)外,已經針對不(bu)托管(guan)(guan)在(zai)標(biao)準(zhun)(zhun)單(dan)(dan)體(ti)(ti)或宏(hong)(hong)(hong)外部(bu)的(de)(de)(de)連接的(de)(de)(de)那些晶(jing)(jing)體(ti)(ti)管(guan)(guan)確定(ding)了網(wang)(net)布(bu)線。
2、諸如(ru)(ru)二次(ci)規(gui)劃和非線(xian)性規(gui)劃的(de)(de)(de)分析(xi)公(gong)式化(hua)已經成為商業工具鏈內的(de)(de)(de)主流解決(jue)方(fang)案,以處理基(ji)于標準(zhun)單體(ti)(ti)(ti)的(de)(de)(de)設(she)(she)計(ji)。著重于標準(zhun)單體(ti)(ti)(ti)或(huo)硬宏級(ji)(ji)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi)導致對(dui)(dui)直(zhi)接并且自動(dong)地促進晶(jing)體(ti)(ti)(ti)管(guan)級(ji)(ji)的(de)(de)(de)設(she)(she)計(ji)的(de)(de)(de)公(gong)式化(hua)的(de)(de)(de)需(xu)要未(wei)得(de)到滿(man)足。已經針(zhen)對(dui)(dui)標準(zhun)單體(ti)(ti)(ti)和硬宏的(de)(de)(de)布局探索了晶(jing)體(ti)(ti)(ti)管(guan)級(ji)(ji)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi),其中標準(zhun)單體(ti)(ti)(ti)在晶(jing)體(ti)(ti)(ti)管(guan)計(ji)數、對(dui)(dui)象計(ji)數和/或(huo)網計(ji)數方(fang)面通(tong)常處于相(xiang)對(dui)(dui)小的(de)(de)(de)尺(chi)度(<100)。即便如(ru)(ru)此,用(yong)于基(ji)于規(gui)則(ze)的(de)(de)(de)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi)引(yin)擎的(de)(de)(de)常規(gui)技術很大(da)程度上(shang)忽略了有利于基(ji)于圖的(de)(de)(de)搜索或(huo)組合求(qiu)解器的(de)(de)(de)分析(xi)公(gong)式化(hua)。因此,仍需(xu)要一種(zhong)用(yong)于集成電路設(she)(she)計(ji)的(de)(de)(de)晶(jing)體(ti)(ti)(ti)管(guan)級(ji)(ji)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi)引(yin)擎,所述(shu)晶(jing)體(ti)(ti)(ti)管(guan)級(ji)(ji)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi)引(yin)擎被配置(zhi)(zhi)(zhi)為相(xiang)對(dui)(dui)于一個(ge)或(huo)多個(ge)分析(xi)目標優化(hua)單獨的(de)(de)(de)晶(jing)體(ti)(ti)(ti)管(guan)放(fang)(fang)(fang)(fang)置(zhi)(zhi)(zhi)并且可以自動(dong)操作(例如(ru)(ru),無需(xu)人為干(gan)預(yu))。
技術實現思路
1、在一些實(shi)(shi)施例中(zhong),提供了一種用(yong)(yong)于(yu)使(shi)用(yong)(yong)晶(jing)體管(guan)(guan)放(fang)(fang)(fang)置(zhi)(zhi)(zhi)優(you)化(hua)來設計(ji)(ji)集成(cheng)電路(lu)的(de)(de)(de)計(ji)(ji)算(suan)(suan)機實(shi)(shi)現的(de)(de)(de)方法(fa)。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)接(jie)(jie)收集成(cheng)電路(lu)的(de)(de)(de)規(gui)范。該規(gui)范包括(kuo)描述(shu)多個(ge)晶(jing)體管(guan)(guan)和(he)多個(ge)晶(jing)體管(guan)(guan)的(de)(de)(de)端(duan)子之間的(de)(de)(de)連接(jie)(jie)的(de)(de)(de)網列表。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)為多個(ge)晶(jing)體管(guan)(guan)中(zhong)的(de)(de)(de)每個(ge)晶(jing)體管(guan)(guan)確定畫布(bu)(bu)上(shang)的(de)(de)(de)初(chu)始(shi)位(wei)置(zhi)(zhi)(zhi)和(he)取(qu)向(xiang)。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)使(shi)用(yong)(yong)至少部(bu)分地(di)基于(yu)多個(ge)晶(jing)體管(guan)(guan)的(de)(de)(de)初(chu)始(shi)位(wei)置(zhi)(zhi)(zhi)和(he)取(qu)向(xiang)的(de)(de)(de)目標函數來生(sheng)成(cheng)具有(you)多個(ge)晶(jing)體管(guan)(guan)的(de)(de)(de)全局優(you)化(hua)的(de)(de)(de)位(wei)置(zhi)(zhi)(zhi)和(he)取(qu)向(xiang)的(de)(de)(de)粗(cu)略放(fang)(fang)(fang)置(zhi)(zhi)(zhi)。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)使(shi)用(yong)(yong)局部(bu)細(xi)(xi)化(hua)技術(shu)來優(you)化(hua)粗(cu)略放(fang)(fang)(fang)置(zhi)(zhi)(zhi)以生(sheng)成(cheng)精細(xi)(xi)放(fang)(fang)(fang)置(zhi)(zhi)(zhi)。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)使(shi)用(yong)(yong)布(bu)(bu)線技術(shu)來生(sheng)成(cheng)用(yong)(yong)于(yu)精細(xi)(xi)放(fang)(fang)(fang)置(zhi)(zhi)(zhi)的(de)(de)(de)布(bu)(bu)線以生(sheng)成(cheng)完(wan)(wan)整的(de)(de)(de)設計(ji)(ji)。計(ji)(ji)算(suan)(suan)系統(tong)(tong)(tong)將完(wan)(wan)整的(de)(de)(de)設計(ji)(ji)存儲在布(bu)(bu)局數據倉儲中(zhong)。
2、在一些(xie)實施例中(zhong)(zhong)(zhong),提供了一種(zhong)其上存(cun)儲(chu)有計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)機(ji)可(ke)執(zhi)行指令(ling)的(de)(de)非暫時性(xing)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)機(ji)可(ke)讀介質。所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)指令(ling)響應(ying)于(yu)(yu)由計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)的(de)(de)一個或多個處(chu)理器執(zhi)行而使所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)執(zhi)行用(yong)(yong)于(yu)(yu)使用(yong)(yong)晶(jing)體(ti)(ti)管(guan)(guan)放置(zhi)優(you)化來設計(ji)(ji)(ji)(ji)(ji)集成電(dian)路(lu)的(de)(de)動作(zuo),所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)動作(zuo)包括(kuo):由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)接收用(yong)(yong)于(yu)(yu)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)集成電(dian)路(lu)的(de)(de)規(gui)范(fan),其中(zhong)(zhong)(zhong)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)規(gui)范(fan)包括(kuo)描述(shu)(shu)(shu)(shu)(shu)(shu)多個晶(jing)體(ti)(ti)管(guan)(guan)及(ji)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)多個晶(jing)體(ti)(ti)管(guan)(guan)的(de)(de)端子之(zhi)間(jian)的(de)(de)連(lian)接的(de)(de)網列表(biao);由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)確(que)定用(yong)(yong)于(yu)(yu)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)多個晶(jing)體(ti)(ti)管(guan)(guan)中(zhong)(zhong)(zhong)的(de)(de)每個晶(jing)體(ti)(ti)管(guan)(guan)的(de)(de)畫布(bu)(bu)上的(de)(de)初(chu)始位置(zhi)及(ji)取向;由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)使用(yong)(yong)至少部(bu)分地基(ji)于(yu)(yu)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)多個晶(jing)體(ti)(ti)管(guan)(guan)的(de)(de)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)初(chu)始位置(zhi)及(ji)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)取向的(de)(de)目(mu)標(biao)函(han)數來產生具有用(yong)(yong)于(yu)(yu)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)多個晶(jing)體(ti)(ti)管(guan)(guan)的(de)(de)全(quan)局(ju)(ju)優(you)化的(de)(de)位置(zhi)及(ji)取向的(de)(de)粗(cu)略(lve)放置(zhi);由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)使用(yong)(yong)局(ju)(ju)部(bu)細化技術來優(you)化所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)粗(cu)略(lve)放置(zhi)以產生精細放置(zhi);由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)使用(yong)(yong)布(bu)(bu)線技術來產生用(yong)(yong)于(yu)(yu)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)精細放置(zhi)的(de)(de)布(bu)(bu)線以產生完(wan)整(zheng)設計(ji)(ji)(ji)(ji)(ji);及(ji)由所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)計(ji)(ji)(ji)(ji)(ji)算(suan)(suan)系(xi)統(tong)將(jiang)所(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)完(wan)整(zheng)設計(ji)(ji)(ji)(ji)(ji)存(cun)儲(chu)于(yu)(yu)布(bu)(bu)局(ju)(ju)數據倉儲(chu)中(zhong)(zhong)(zhong)。
1.一種用(yong)于使用(yong)晶(jing)體管放置優(you)化來設計集成電路(lu)的計算機實現的方(fang)法,所述方(fang)法包括(kuo):
2.根據權利要求1所(suo)述的(de)計(ji)(ji)算(suan)機實現的(de)方法,還包括(kuo)將(jiang)所(suo)述完整(zheng)的(de)設計(ji)(ji)提供給(gei)用于(yu)制(zhi)造所(suo)述集成電(dian)路的(de)制(zhi)造系(xi)統。
3.根據(ju)權利要求1所述的(de)計算機實現(xian)的(de)方法,還(huan)包(bao)括:
4.根據權利要求3所述的(de)計算機實現的(de)方法,還包括:
5.根據權利要求1所述(shu)的(de)(de)(de)計(ji)算機實現的(de)(de)(de)方(fang)法,其中,使(shi)用所述(shu)目(mu)標函數來(lai)生成具有所述(shu)多個晶體管的(de)(de)(de)全局優(you)化的(de)(de)(de)位置(zhi)和取向的(de)(de)(de)所述(shu)粗略放置(zhi)包括:
6.根據權利要求5所(suo)(suo)述的計算機實現的方法,其中,將所(suo)(suo)述多個晶體管在所(suo)(suo)述連續(xu)坐標(biao)空間中的所(suo)(suo)述優(you)化位置轉(zhuan)換為所(suo)(suo)述離散(san)坐標(biao)空間中的位置包括:
7.根據權利(li)要求5所述(shu)的計算機實(shi)現的方法,其中(zhong),所述(shu)分析(xi)技術包括(kuo)梯度下降技術。
8.根(gen)據權利要求1所(suo)述的(de)計(ji)算機實(shi)現的(de)方(fang)法,其中,使用所(suo)述目(mu)標函(han)數來生成具有所(suo)述多個(ge)晶體管(guan)的(de)全局優化的(de)位(wei)置(zhi)和取向(xiang)的(de)粗略(lve)放置(zhi)包(bao)括:
9.根(gen)據權利要求(qiu)8所述(shu)的(de)計算機實現的(de)方法,其中(zhong),所述(shu)模(mo)擬退火技術的(de)至少(shao)(shao)一個(ge)移動包括修改至少(shao)(shao)一個(ge)晶(jing)體管的(de)取向。
10.根據權利要求1所(suo)述的(de)(de)計(ji)算機實現的(de)(de)方法,其中,所(suo)述目標函數包括加權半周長(chang)線(xian)長(chang)度(du)(hpwl)函數。
11.一(yi)種其(qi)上存儲有計(ji)(ji)算機(ji)可執行(xing)(xing)指令的非(fei)暫(zan)時(shi)性計(ji)(ji)算機(ji)可讀介質(zhi),所述計(ji)(ji)算機(ji)可執行(xing)(xing)指令響應于(yu)由計(ji)(ji)算系統(tong)的一(yi)個(ge)或(huo)多個(ge)處(chu)理器執行(xing)(xing)而(er)使所述計(ji)(ji)算系統(tong)執行(xing)(xing)用于(yu)使用晶體管放(fang)置優化來設(she)計(ji)(ji)集成電路的動作(zuo),所述動作(zuo)包括:
12.根據(ju)權利要(yao)求11所述的(de)非(fei)暫時性計(ji)(ji)算機可讀(du)介質,其中(zhong),所述動作還包括將所述完(wan)整的(de)設計(ji)(ji)提供給用于制(zhi)造(zao)所述集成(cheng)電(dian)路的(de)制(zhi)造(zao)系統。
13.根據權利要求(qiu)11所述(shu)的非(fei)暫時性計算(suan)機可讀介質,其中,所述(shu)動作還(huan)包括:
14.根據(ju)權利要求13所(suo)(suo)述的非暫時(shi)性計算機可讀介(jie)質,其(qi)中,所(suo)(suo)述動(dong)作還包括(kuo):
15.根(gen)據(ju)權利要求11所述(shu)的(de)(de)非暫(zan)時性(xing)計(ji)算(suan)機可讀介(jie)質,其中,使用所述(shu)目標函數(shu)來生成具有所述(shu)多個(ge)晶體管的(de)(de)全局優化(hua)的(de)(de)位置和取向的(de)(de)所述(shu)粗略放置包括:
16.根(gen)據權(quan)利要(yao)求15所(suo)述的(de)非暫時性計(ji)算機(ji)可讀介質,其中,將所(suo)述連續坐標空(kong)間中的(de)所(suo)述多(duo)個晶體管的(de)所(suo)述優化位(wei)置(zhi)轉換(huan)為所(suo)述離散坐標空(kong)間中的(de)位(wei)置(zhi)包(bao)含:
17.根據(ju)權利要求15所(suo)述(shu)的非暫時性計算機可(ke)讀介(jie)質(zhi),其(qi)中,所(suo)述(shu)分析(xi)技(ji)術(shu)包括(kuo)梯度下降技(ji)術(shu)。
18.根據(ju)權(quan)利要求(qiu)11所述(shu)的非暫時性(xing)計算機可讀介質(zhi),其中,使用所述(shu)目(mu)標函數來生(sheng)成(cheng)具有所述(shu)多個晶體管的全(quan)局優(you)化的位置和取向的粗(cu)略放置包括(kuo):
19.根據權利要求18所述的(de)非暫時性計(ji)算機可讀介質(zhi),其中,所述模(mo)擬退火技術的(de)至(zhi)少一個(ge)移(yi)動包(bao)括修(xiu)改(gai)至(zhi)少一個(ge)晶體管的(de)取(qu)向。
20.根(gen)據權利要(yao)求11所(suo)述(shu)的非(fei)暫時性計算機可讀(du)介質,其中,所(suo)述(shu)目標(biao)函(han)數包括(kuo)加(jia)權半周(zhou)長線(xian)長度(hpwl)函(han)數。