我們一起學習適用于高宏數(shù)、難時序設計的快速平面布局方法。微捷碼Talus可基于邏輯組產生所有宏和標準單元的快速布局。我們可通過利用這種布局信息來突出并劃分適合的“宏組”,對于高宏數(shù)設計來說,這種方法要較一般的分組方法更快速更合理。對于時序關鍵設計,我們可使用積極的“宏布局”方法來顯示關鍵邏輯組,然后再通過增量(incremental)的“宏布局”來調整布局形狀(無宏或其它邏輯組阻塞的前提下將關鍵邏輯聚集在一起);這種方法可為我們常規(guī)設計帶好更好時序(包括WNS/TNS)和更好布線結果(總線長)。
1.介紹
一般來說,邏輯塊級設計平面布局的主要工作就是宏布局。傳統(tǒng)上,我們初始宏布局可以之前平面布局模式為基礎;布局時我們應考慮到IO連接,需要先了解宏與IO間邏輯關系,然后再將宏設置于相關IO的旁邊;我們傾向于將宏設置于邊界周圍;我們想要將名稱模式相似的宏設置在一起;我們會先運行布局(fix_cell)功能,然后再基于關鍵時序路徑或擁塞來調整宏布局,而且我們還可以通過顯示往返宏的飛線來觀察宏和STD(標準)單元的布局是否合理。
對于傳統(tǒng)平面布局方法,我們可能要花很長時間來了解我們的設計,可能要與前端設計師進行探討,可能要通過多次物理布局迭代來完成時序收斂。對于宏數(shù)量巨大的設計來說,這可是項非??植赖墓ぷ鳌?/p>
現(xiàn)在我們有了一種基于邏輯組的新平面布局方法,它可更快速有效地完成平面布局工作。這個流程共分為3個步驟:
1)同時進行宏和STD單元布局(粗布局,“run place cluster”);
2)劃分邏輯組(針對宏和STD單元同時進行);
3)增量布局,調整邏輯組形狀和位置。
2.粗布局(Coarse placement)
我們可將整個布局工作(fix_cell)分為2個步驟:
1)粗布局:執(zhí)行設計的初始布局;
2)基于粗布局的增量優(yōu)化。
步驟1)是取得好布局結果的關鍵點,我們的一切討論都將圍繞“粗布局”展開。
在Talus中,有兩個不同“粗布局”命令——“run place cluster”和“run place global”,這兩個命令可基于邏輯組(群)進行粗布局。“run place cluster”可同時完成宏和STD單元的布局,而“run place global”則會在考慮擁塞情況的前提下進行STD單元布局。就我們所知,“fix_cell”一般是使用“place global”來完成粗布局。根據(jù)我們的測試,若宏的位置相同,那么“place global”和“place cluster”布局結果也將十分接近,因此我們可基于“place cluster”結果來預測“fix_cell”粗布局結果。