System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及芯片,尤其是涉及一種基于eda工具的芯片電路布局方法、裝置、設備及介質。
技術介紹
1、布圖規劃在芯片設計中占據著重要的地位,它的合理與否直接關系到芯片的時序收斂、布線通暢、電源穩定以及良品率。在傳統設計流程中,布圖規劃可能會占用芯片后端總設計時間的10%至20%,甚至更多。在數字后端電子設計自動化(electronic?designautomation,eda)工具中通常提供一種可視化視圖,eda內置算法對芯片中各個電路模塊自動生成可視化矩形塊并優化布局。設計人員可以直接在視圖中拖拽和調整模塊的位置,實時預覽布圖效果,幫助設計人員快速、準確地完成物理設計的第一步,為后續步驟奠定基礎。現有可視化視圖對齊排樣算法是將電路模塊分布在芯片的兩側分別進行線性對齊排列顯示,如圖1中所示,此種排列方式更大的空間利用率不高且無法展示芯片中各電路模塊的層次關系。現有可視化視圖“切玻璃”算法,可以展示電路模塊的層次關系,但電路模塊的實際面積并不能夠精確的被展示。同時,當遇到一些較小的電路模塊時,其區域會被切成很窄的細條,視圖不美觀且不利于編輯操作。此外,該算法無法支持可視化視圖的展示。所以,如何提高芯片電路布局的空間利用率成為了不容小覷的技術問題。
技術實現思路
1、有鑒于此,本申請的目的在于提供一種基于eda工具的芯片電路布局方法、裝置、設備及介質,不僅可以將不同類型的電路模塊在遵循電路層次關系的情況下擺放在一起,并對擺放過程中產生的空閑區域進行再次利用,從而能夠在空閑區域擺放更多的電路
2、本申請實施例提供了一種基于eda工具的芯片電路布局方法,所述芯片電路布局方法包括:
3、基于待布局芯片的面積確定出初始擺放矩形區域,并對所述待布局芯片的多個不同類型的電路模塊的矩形塊按照高度從大到小進行排序,得到矩形塊序列;
4、基于所述矩形塊序列中的第一個矩形塊對所述初始擺放矩形區域進行劃分,確定出條狀區域;
5、將所述矩形塊序列中符合所述條狀區域的所述矩形塊進行擺放,并基于所述條狀區域內已經擺放的所述矩形塊的寬度對所述條狀區域分割成多個子區域;
6、遍歷每個所述子區域內的空閑區域,將所述矩形塊序列中剩余的所述矩形塊擺放至所述空閑區域內,在對所述條狀區域填滿后基于未擺放的矩形塊中的高度最大的矩形塊確定出剩余的所述初始擺放矩形區域中新的條狀區域,繼續將剩余的矩形塊進行擺放完畢后,對每個所述電路模塊下的層級電路進行相應的區域擺放,生成所述待布局芯片的電路模塊布局。
7、在一種可能的實施方式之中,將所述矩形塊序列中符合所述條狀區域的所述矩形塊進行擺放,包括:
8、基于從左向右的擺放順序依次將所述矩形塊序列中高度從大到小的矩形塊按照預設間隔擺放在所述條狀區域的底部,直至到達所述條狀區域的最右側時停止擺放矩形塊。
9、在一種可能的實施方式之中,所述遍歷每個所述子區域內的空閑區域,將所述矩形塊序列中剩余的所述矩形塊擺放至所述空閑區域內,包括:
10、基于從下至上、從左至右的擺放順序將剩余的所述矩形塊按照高度從小到大的順序擺放在所述空閑區域內;
11、檢測所述空閑區域內是否還存在多個頂部空閑區域;
12、若是,則對多個頂部空閑區域進行合并生成新的空閑區域,繼續對所述新的空閑區域進行矩形塊擺放。
13、在一種可能的實施方式之中,針對于第一空閑區域,所述基于從下至上、從左至右的擺放順序將剩余的所述矩形塊按照高度從小到大的高度順序擺放在所述空閑區域內,包括:
14、檢測剩余的所述矩形塊之中的高度最小的矩形塊是否符合擺放在所述第一空閑區域的左下角位置處;
15、若否,則停止對所述第一空閑區域的矩形塊擺放;
16、若是,在對高度最小的矩形塊進行擺放之后,將剩余的所述矩形塊中的下一所述矩形塊置于高度最小的矩形塊的上方,直至所述第一空閑區域內擺放不下所述矩形塊的高度時對所述第一空閑區域進行縱向切割確定出列空間區域,繼續對所述列空間區域進行矩形塊擺放。
17、在一種可能的實施方式之中,所述停止對所述第一空閑區域的矩形塊擺放,包括:
18、若所述第一空閑區域的高度不滿足所述高度最小的矩形塊的高度時,則結束遍歷多個所述空閑區域;
19、若所述第一空閑區域的寬度不滿足所述高度最小的矩形塊的寬度時,則結束所述第一空閑區域的擺放切換至對下一空閑區域進行矩形塊擺放。
20、在一種可能的實施方式之中,對每個所述電路模塊下的層級電路進行相應的區域擺放,包括:
21、確定出所述電路模塊下的層級電路的矩形塊;
22、將所述層級電路的矩形塊在所述電路模塊所在的矩形塊區域之中進行擺放,若所述電路模塊所在的矩形塊的區域內無法對每個所述層級電路的矩形塊進行擺放,則對所述電路模塊所在的矩形塊的區域進行等比例擴大。
23、在一種可能的實施方式之中,在所述生成所述待布局芯片的電路模塊布局之后,所述芯片電路布局方法還包括:
24、響應于用戶對所述電路模塊下的層級電路進行展示的請求后,控制該電路模塊所對應的矩形塊的背景顏色處于透明色將所述層級電路的矩形塊進行顯示,并對位于所述電路模塊右側以及上側的矩形塊進行位置偏移。
25、本申請實施例還提供了一種基于eda工具的芯片電路布局裝置,所述芯片電路布局裝置包括:
26、初始設置模塊,用于基于待布局芯片的面積確定出初始擺放矩形區域,并對所述待布局芯片的多個不同類型的電路模塊的矩形塊按照高度從大到小進行排序,得到矩形塊序列;
27、區域劃分模塊,用于基于所述矩形塊序列中的第一個矩形塊對所述初始擺放矩形區域進行劃分,確定出條狀區域;
28、矩形塊放置模塊,用于將所述矩形塊序列中符合所述條狀區域的所述矩形塊進行擺放,并基于所述條狀區域內已經擺放的所述矩形塊的寬度對所述條狀區域分割成多個子區域;
29、填充空閑區域模塊,用于遍歷每個所述子區域內的空閑區域,將所述矩形塊序列中剩余的所述矩形塊擺放至所述空閑區域內,在對所述條狀區域填滿后基于未擺放的矩形塊中的高度最大的矩形塊確定出剩余的所述初始擺放矩形區域中新的條狀區域,繼續將剩余的矩形塊進行擺放完畢后,對每個所述電路模塊下的層級電路進行相應的區域擺放,生成所述待布局芯片的電路模塊布局。
30、本申請實施例還提供一種電子設備,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過總線通信,所述機器可讀指令被所述處理器執行時執行如上述的基于eda工具的芯片電路布局方法的步驟。
31、本申請實施例還提供一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,該計算機程序被處理器運行時執行如上述的基于eda工具的芯片電路布局方法的步本文檔來自技高網...
【技術保護點】
1.一種基于EDA工具的芯片電路布局方法,其特征在于,所述芯片電路布局方法包括:
2.根據權利要求1所述的芯片電路布局方法,其特征在于,將所述矩形塊序列中符合所述條狀區域的所述矩形塊進行擺放,包括:
3.根據權利要求1所述的芯片電路布局方法,其特征在于,所述遍歷每個所述子區域內的空閑區域,將所述矩形塊序列中剩余的所述矩形塊擺放至所述空閑區域內,包括:
4.根據權利要求3所述的芯片電路布局方法,其特征在于,針對于第一空閑區域,所述基于從下至上、從左至右的擺放順序將剩余的所述矩形塊按照從小到大的高度順序擺放在所述空閑區域內,包括:
5.根據權利要求4所述的芯片電路布局方法,其特征在于,所述停止對所述第一空閑區域的矩形塊擺放,包括:
6.根據權利要求1所述的芯片電路布局方法,其特征在于,對每個所述電路模塊下的層級電路進行相應的區域擺放,包括:
7.根據權利要求1所述的芯片電路布局方法,其特征在于,在所述生成所述待布局芯片的電路模塊布局之后,所述芯片電路布局方法還包括:
8.一種基于EDA工具的芯片電路布
9.一種電子設備,其特征在于,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過所述總線進行通信,所述機器可讀指令被所述處理器運行時執行如權利要求1至7任一所述的基于EDA工具的芯片電路布局方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器運行時執行如權利要求1至7任一所述的基于EDA工具的芯片電路布局方法的步驟。
...【技術特征摘要】
1.一種基于eda工具的芯片電路布局方法,其特征在于,所述芯片電路布局方法包括:
2.根據權利要求1所述的芯片電路布局方法,其特征在于,將所述矩形塊序列中符合所述條狀區域的所述矩形塊進行擺放,包括:
3.根據權利要求1所述的芯片電路布局方法,其特征在于,所述遍歷每個所述子區域內的空閑區域,將所述矩形塊序列中剩余的所述矩形塊擺放至所述空閑區域內,包括:
4.根據權利要求3所述的芯片電路布局方法,其特征在于,針對于第一空閑區域,所述基于從下至上、從左至右的擺放順序將剩余的所述矩形塊按照從小到大的高度順序擺放在所述空閑區域內,包括:
5.根據權利要求4所述的芯片電路布局方法,其特征在于,所述停止對所述第一空閑區域的矩形塊擺放,包括:
6.根據權利要求1所述的芯片電路布局方法,其特征在于,對每個所述電路...
【專利技術屬性】
技術研發人員:霍凱,趙琪,王磊,
申請(專利權)人:深圳鴻芯微納技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。