Physic Design:Floorplan算法概覽

僅用於學習交流,轉載請聯繫本人。算法

 

1 floorplan是什麼函數

floorplan常被翻譯成布圖規劃,是指在芯片級別上對模塊進行佈局,也就是哪一個單元放在什麼地方,可是單元內部的具體佈局並不關心。該步驟爲芯片版圖設計中的關鍵步驟之一,由於在這一步會影響芯片的面積、可否成功布線以及佈線線長等諸多關鍵指標和步驟。工具

布圖規劃就是肯定這些Block的形狀和相對位置,可是對Block內部不關注,一個Block多是一個加法器或者其它什麼。圖片引用自http://www.signoffsemi.com/floorplan-placement-2/

圖1. 布圖規劃就是肯定這些Block的形狀和相對位置,可是對Block內部不關注,一個Block多是一個加法器或者其它什麼。至於圖中所示的三種類型(臨接,通道、臨界+通道),目前是不重要的。圖片引用自 http://www.signoffsemi.com/floorplan-placement-2/佈局

 

2 目標是什麼學習

floorplan的首要目標就是給模塊指定一個最佳的形狀(若是須要指定的話),給出模塊間的最佳的相對位置關係。這裏須要先區分一個概念,module和block(這裏對應的中文我記成模塊磚塊)。一個加法器的原理圖是一個模塊,也就是咱們知道一個加法器是由一個半加器和進位電路組成的,可是在版圖中這個加法器長寬分別是多少,咱們是不知道的。當其長寬肯定下來以後,就稱成爲一個磚塊(Block),就至關於磚,和建房子的磚沒啥區別,就是說能夠用這個磚塊來構建版圖啦,因此翻譯成磚塊。在設計好芯片的邏輯關係後,更具輸入的是磚塊仍是模塊可能面臨三種情況:優化

(1)輸入的對象都是磚塊(block)。也就是說,構建版圖時,使用的基本構圖單元(加法器)已經被規定好了,只能使用,不能改變形狀和大小。可是這些磚塊間的位置是floorplan須要去肯定的。spa

(2)輸入的對象是模塊(module)。也就是說,構建版圖時,使用的基本構圖單元(加法器)沒有被規定死,能夠指定其長寬比例(面積基本上變不了,由於加法器裏的東西須要地方放)。這種狀況下,floorplan須要爲這些模塊指定長寬比例使得模塊變成磚塊,而後還要指出這些磚塊之間的相對位置。翻譯

(3)固然是混合型,輸入既有磚塊又有模塊。略。設計

 

可是這裏有一個問題就是什麼樣算是最佳?或者換一種說法,顯然floorplan是一個優化問題,那麼優化的目標是什麼呢?通常來講有一下幾點:對象

(1)使芯片面積最小;

(2)使得模塊之間的連線最短,這也就意味着延遲小;

(3)模塊之間擁塞儘量小,也就是說,模塊之間有足夠的空間讓互連線經過;

優化目標多是其中一個也多是其中的不少,若是要同時知足多個優化目標的話,能夠爲這些目標分配權重,造成一個綜合的優化目標函數。(但筆者認爲,這實在是一種有些天真但在必定程度上可接受的作法,至關於超參數)

f=a*area+b*wirelength+c*congestion (a+b+c=1)

3 常見的算法有哪些

在這裏,再重述一遍floorplan的主要目標,(1)指定模塊的形狀,(2)給出模塊間的相對位置。目前幾乎全部的數字芯片設計都會使用物理設計EDA工具,其中天然就包含floorplan工具,既然是自動化工具,就比然有相應的算法。整體上來講,floorplan能夠分爲三類(Susmita Sur-Koay):

(1)構造型算法。這一類算法旨在指出磚塊之間的相對位置。這一類算法有slicing embedding,hierarchical enumeration和dual graph等。

(2)迭代型算法。這一類算法旨在將模塊變成磚塊,也就是爲模塊肯定長寬比。這一類算法有模擬退火,遺傳算法,力導向等。

(3)基於特定知識的算法。這一類算法企圖同時完成這兩件事情。

 

參考文獻

Susmita Sur-Koay. Handbook of Algorithms for Physical Design Automation. p140.

相關文章
相關標籤/搜索