后端在floorplan階段,如何擺放macro是一個(gè)很重要的問(wèn)題。如果采用層次化設(shè)計(jì),對(duì)于每一個(gè)block來(lái)說(shuō)都需要在block內(nèi)部把所分配的macro擺好。
如果某一個(gè)block里的macro很多,又很大,std cell再多一些,utilization就會(huì)很大,相應(yīng)的這個(gè)block的floorplan就比較難做,而其他block的utilization很小,這樣的design就不太好。
我們總是希望所有的block都能有差不多的utilization,平均且充分地利用芯片的每一塊面積,這就需要在block劃分初期就做好預(yù)估。
這個(gè)問(wèn)題需要前端與后端協(xié)調(diào)配合,block的劃分是需要前端提供帶有hierarchical結(jié)構(gòu)的netlist,然而前端在做hierarchical的綜合的時(shí)候,并不會(huì)過(guò)多考慮后端物理層面的信息,因此可能綜合出的netlist各個(gè)block物理上不是那么均衡。
當(dāng)然,這種netlist也是可以物理實(shí)現(xiàn)的,只是對(duì)于有些要求比較高的design來(lái)說(shuō),最后出來(lái)的芯片性能可能會(huì)有所不足。
這個(gè)時(shí)候后端工程師就可以反饋,比如說(shuō),把某個(gè)block的某個(gè)macro綜合到另一個(gè)block里去,或者兩個(gè)block就直接merge變?yōu)榫C合成一個(gè)block。收到反饋以后,前端工程師就可以重新綜合,再給我們新的netlist來(lái)做物理實(shí)現(xiàn)。
以上這個(gè)過(guò)程可能需要迭代幾次才能達(dá)到最佳效果,但這樣會(huì)需要花費(fèi)很多時(shí)間,導(dǎo)致芯片設(shè)計(jì)周期變長(zhǎng)。一種更快速的方案是,前端首先綜合出flatten的netlist,就是不帶任何hierarchical信息的,出這種netlist的速度應(yīng)該相對(duì)快一點(diǎn)。
后端拿到flatten的netlist之后,就知道了macro以及有關(guān)的std cell的面積了,這樣后端就可以直接通過(guò)這些物理信息和邏輯信息來(lái)劃分block,再把分配好的結(jié)果給前端,前端就可以參考這樣的分配來(lái)做hierarchical層級(jí)。
不管是flatten的綜合還是hierarchical的綜合,出來(lái)的cell的count或area是差不多的,因此后端在拿到hierarchical的netlist之后,做出來(lái)的block物理情況應(yīng)該也與之前用flatten netlist的預(yù)估差不多。
有一個(gè)可能疑惑的地方是,這里前端給的netlist永遠(yuǎn)是總的芯片的所有的netlist,不管是flatten還是帶hierarchical結(jié)構(gòu)的netlist都是一個(gè)file。
我們后端也會(huì)做netlist的劃分,不過(guò)是根據(jù)前端給的那份netlist切割成好多個(gè)netlist給不同的block來(lái)用,相當(dāng)于把一個(gè)文件變成多個(gè)文件,每個(gè)block拿一個(gè),分割的依據(jù)是總的netlist的hierarchical結(jié)構(gòu)。
有的時(shí)候資本家覺(jué)得上面的方法還是慢,并且還想追求比較好的芯片性能,就有人想出了更為討巧的辦法。這個(gè)方法犧牲了一定的準(zhǔn)確度,但大大提高了速度。
就是說(shuō)前端在綜合之前就把ip和所用macro的信息提供給后端,而后專(zhuān)門(mén)有工程師來(lái)利用大數(shù)據(jù)機(jī)器學(xué)習(xí)的方法預(yù)估出每個(gè)ip相關(guān)的std cell的area和count。
沒(méi)錯(cuò),機(jī)器學(xué)習(xí)也應(yīng)用到芯片領(lǐng)域了,一個(gè)ip在之前的芯片中用的越多,樣本量就越大,學(xué)習(xí)的效果就越好。
后端就可以根據(jù)這一份預(yù)估的結(jié)果來(lái)進(jìn)行block劃分,然后把劃分結(jié)果反饋給前端,前端就可以直接按這個(gè)方案綜合,綜合次數(shù)最少僅需一次!芯片設(shè)計(jì)周期大大縮短,但相應(yīng)的劃分的準(zhǔn)確度也較難保證。
-
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
1026瀏覽量
54960 -
STD
+關(guān)注
關(guān)注
0文章
36瀏覽量
14379 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8436瀏覽量
132887
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論