TWI386826B - 双端邏輯元件的方位決定方法 - Google Patents
双端邏輯元件的方位決定方法 Download PDFInfo
- Publication number
- TWI386826B TWI386826B TW097108511A TW97108511A TWI386826B TW I386826 B TWI386826 B TW I386826B TW 097108511 A TW097108511 A TW 097108511A TW 97108511 A TW97108511 A TW 97108511A TW I386826 B TWI386826 B TW I386826B
- Authority
- TW
- Taiwan
- Prior art keywords
- double
- ended logic
- ended
- signal
- determining
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本案係為一種双端邏輯元件的方位決定方法,尤指一種積體電路實體化過程中,於信號連鎖路徑中双端邏輯元件的最佳方位決定方法。
以邏輯元件資料庫(Cell-Based library)為基礎的積體電路設計流程中,需先利用硬體電路描述語言(例如Verilog’s netlist)來描述其使用了哪些標準邏輯元件(Standard logic cells)以及元件與元件之間的連線宣告,然後再將電路實體化,然而在實體化的過程中,為了因應電路特性的需求或維持連線之間的信號完整性,通常會用加入双端邏輯元件(2-pin logic cell)的方法來達到電路的特性需求及改善傳送信號完整度的目的。
於現今的IC邏輯元件擺放程序(Placement stage)流程中,可分為時間驅動策略(Timing driven strategy)及線長驅動策略(Wire-length driven strategy)兩種方式,此兩種方式都是用來配置擺放所有設計電路時所用到的標準邏輯元件。
所謂的時間驅動策略就是計算由信號起始輸入端到信號最終輸出端所需的信號路徑延遲時間(Signal path delay time)來決定擺放標準邏輯元件的優先順序。信號傳遞延遲時間越長的路徑代表有較高的優先擺放權,使得這些路徑上的標準邏輯元件實際擺放位置會較為接近,進而使得信號由起始端到輸出端的時間傳遞延遲(Propagation delay)較低。
而線長驅動策略就是計算由信號起始端到信號最終輸出端所需的信號繞線長度(Signal routing length)來決定擺放標準邏輯元件的優先順序。信號繞線長度越長的代表有較高的優先擺放權,使得這些路徑上的標準邏輯元件實際擺放位置會較為接近,進而使得信號由起始端到信號輸出端的繞線長度(Routing length)較短。
然而,以現今的電腦輔助設計軟體工具CAD(Computer-Aided Design Tool)來看,不論是採用何種驅動策略來擺放邏輯元件,都沒有考慮到將以端邏輯元件的方位做進一步的最佳化,以同時達到信號路徑延遲時間能更少及繞線長度能更短的目的。所以,若能在執行配置程序(Placement stage)之前或之後,適時地藉由双端邏輯元件單一輸入單一輸出的特性來進行方位最佳化,則可以達到總體繞線長度縮短的效果及避免交錯繞線(Wire crossing)的現象產生。
請參照第一圖A,其所繪示圖為双端邏輯元件所組成的信號傳送路徑於配置程序(Placement stage)後未考慮方位最佳化的示意圖。其中,大的長方型方塊代表双端邏輯元件,包括第一双端邏輯元件(L1)、第二双端邏輯元件(L2)、第三双端邏輯元件(L3)。再者,每個双端邏輯元件中的圓形圖案代表双端邏輯元件的輸入端(in)與輸出端(out),而圓形圖案中的方型圖案為連接不同金屬層的透孔(via)V1~V13。
亦即,信號傳遞方向由左至右依序為第一双端邏輯元件(L1)、第二双端邏輯元件(L2)、第三双端邏輯元件(L3)。第一双端邏輯元件(L1)輸入端(in1)在右側,輸出端(out1)在左側;第二双端邏輯元件(L2)輸入端(in2)在右側,輸出端(out2)在左側;第三双端邏輯元件(L3)輸入端(in3)在右側,輸出端(out3)在左側。而實際的連線組成即是由第一双端邏輯元件(L1)輸入端(in1)連線至前一級双端邏輯元件(未繪示)的輸出端(out0),而第一双端邏輯元件(L1)輸出端(out1)連線至第二双端邏輯元件(L2)輸入端(in2),第二双端邏輯元件(L2)輸出端(out2)連線至第三双端邏輯元件(L3)輸入端(in3),而第三双端邏輯元件(L3)輸出端(out3)再連線至下一級双端邏輯元件(未繪示)的輸入端(in4)。
由第一圖A可知,在第一双端邏輯元件(L1)、第二双端邏輯元件(L2)及第三双端邏輯元件(L3)中,皆有交錯繞線(Wire crossing)的現象產生,而在實際的IC製程上就必須利用不同的金屬層以及透孔(via)來達成上述的連線。舉例來說,第零透孔(v0)、第一透孔(v1)、第二透孔(v2)、第三透孔(v3)、第四透孔(v4)、第五透孔(v5)及第六透孔(v6)為連接第一層金屬層與第二層金屬層;而第七透孔(v7)、第八透孔(v8)、第九透孔(v9)、第十透孔(v10)、第十一透孔(v11)、第十二透孔(v12)及第十三透孔(v13)為連接第二層金屬層與第三層金屬層。再者,繞線m0為第一金屬層的繞線;繞線m1、m3、m4、m6、m7、m9、m10為第二金屬層的繞線;而繞線m2、m5、m8、m11為第三金屬層的繞線。
因此,第一双端邏輯元件(L1)的輸入端(in1)會經由第二透孔(v2)、第二層金屬層繞線m3、第九透孔(v9)、第三層金屬層繞線(m2)、第七透孔(v7)、第二層金屬層繞線(m1)、第零透孔(v0)及第一層金屬繞線(m0)與上一級的信號輸出端(out0)連接;第一双端邏輯元件(L1)的輸出端(out1)會經由第一透孔(v1)、第二層金屬層繞線(m4)、第八透孔(v8)、第三層金屬層繞線(m5)、第十一透孔(v11)、第二層金屬層繞線(m6)及第四透孔(v4)與第二双端邏輯元件(L2)的輸入端(in2)連接;以此類推,第三双端邏輯元件(L3)的輸出端(out3)會經由第五透孔(v5)、第二層金屬層繞線(m10)、第十二透孔(v12)及第三層金屬層繞線(m11)將信號送至下一級的輸入端(in4)。
由上述可知,在第一圖A中由双端邏輯元件所組成的信號傳遞路徑若未經過方位最佳化,則需要有三層金屬連接層及兩種共十四顆的透孔(V0~V13)來完成前一級信號輸出端(out0)與下一級信號輸入端(in4)之間的電路連線,如此一來,便使得双端邏輯元件與元件之間的連線極為複雜。
若於配置程序進行時即考慮双端邏輯元件前後的位置並適時進行双端邏輯元件的方位最佳化,則原來的三個双端邏輯元件的擺放方位會如第一圖B所示。
從第一圖B可看出經過双端邏輯元件方位最佳化後,所有第一、第二及第三双端邏輯元件(L1、L2及L3)的輸入端(in1、in2及in3)皆改成在左側,而輸出端(out1、out2及out3)皆改成在右側。很明顯地,於之前第一、第二及第三双端邏輯元件(L1、L2及L3)的線路交錯的現象消失了,如此,僅利用第一層金屬層繞線(m0)、(m1)、(m2)、(m3)就可完成由上一級的信號輸出端(out0)至下一級信號輸入端(in4)之間的所有信號連線。
比較第一圖A與第一圖B即可得知,如果双端邏輯元件能夠於適當的時機進行方位最佳化,實際上可以縮短積體電路繞線上的總長度。然而,一般積體電路上的双端邏輯元件有數萬個或數十萬個以上,並且其連線關係並非由左到右的排列順序。再者,例如時脈樹(Clock tree)是由許多緩衝元件(Buffer)所串接並組成許多不同方向路徑的分支(Branch),因此,如何適時的翻轉双端邏輯元件也是此領域的技術人員所欲解決的問題。
於2006年,美國的設計自動化研討會上(DAC:Design Automation Conference),有學者提出一種於標準元件配置時的最佳邏輯元件翻轉方法“Optimal Cell Flipping in Placement and Floorplanning”。該期刊中提出的方式是以連線基礎翻轉法(Nets-based flip)為架構。以下簡述該連線基礎翻轉法的基本原理。
請參照第二圖A~D,其所繪示圖為連線基礎翻轉法(Nets-based flip)基本原理示意圖。在第二圖A中,第一級(First stage)的第一双端邏輯元件(L1)需傳送信號至三個第二級(Second stage)的双端邏輯元件,亦即第二双端邏輯元件(L2)、第三双端邏輯元件(L3)及第四双端邏輯元件(L4)。其中,第一双端邏輯元件(L1)配置於左側且輸入端(in1)在左側,輸出端(out1)在右側。而第二級的三個双端邏輯元件配置於右側,由上而下依序為第二双端邏輯元件(L2)、第三双端邏輯元件(L3)及第四双端邏輯元件(L4)。其中,第二双端邏輯元件(L2)輸入端(in2)在左側,輸出端(out2)在右側;第三双端邏輯元件(L3)輸入端(in3)在右側,輸出端(out3)在左側;第四双端邏輯元件(L4)輸入端(in4)在左側,輸出端(out4)在右側。所以第一双端邏輯元件的輸出端(out1)將與第二、第三及第四双端邏輯元件的輸入端(in2、in3及in4)連接。
首先,先定義連線方框(Net bounding box)。亦即,將第一級双端邏輯元件的輸出端(out1)以及第二級双端邏輯元件所有的輸入端(in2、in3及in4)連接起來所形成的方框便為一連線方框。也就是說,連線方框在第二圖A中所走的路徑必須要能經過第一級双端邏輯元件的輸出端(out1)以及第二級所有的双端邏輯元件輸入端(in1、in2及in3),就如第二圖A中的第一連線方框所示。再者,此期刊定義連接該些双端邏輯元件的最短線長即為連線方框(Net bounding box)周長的一半(Half perimeter bounding box)。如第二圖A中虛線所形成的路徑即代表該些双端邏輯元件之間連線所需的最短距離,也就是說,連接這些双端邏輯元件所需的最短繞線距離(Routing length)為連線方框周長的一半(Half perimeter bounding box)。
由上述的理論可知,如果形成的連線方框越小,實際連接双端邏輯元件所需的繞線距離就可以越短。因此,如第二圖B所示,若將第三双端邏輯元件(L3)進行Y軸的翻轉。使得第三双端邏輯元件(L3)輸入端(in3)改成在左側,輸出端(out3)改成在右側,則所形成新的第二連線方框很明顯地會小於在第二圖A中的第一連線方框(Netl bounding box)。因此,連線基礎翻轉法(Nets-based Flip)的主要目的即是找出連接双端邏輯元件之間的連線方框並且經由適當地翻轉其中部分的双端邏輯元件用以獲得最小的連線方框並進而獲得最短繞線線長(Routing length)的效果。
然而,連線基礎翻轉法(Nets-based Flip)還有一個要件,若前一級連線方框經過翻轉之後會造成下一級連線方框變大時,則前一級連線方框中的双端邏輯元件便不允許進行翻轉,以防止繞線線長(Routing length)變長。
舉例來說,以第二圖C例子說明,假設第三双端邏輯元件(L3)的輸出端(out3)會連接至第三級的二個双端邏輯元件,亦即第五双端邏輯元件(L5)的輸入端(in5)及第六双端邏輯元件(L6)輸入端(in6)。其中,第五双端邏輯元件(L5)輸入端(in5)在右側,輸出端(out5)在左側;第六双端邏輯元件(L6)輸入端(in6)在右側,輸出端(out6)在左側。在第二圖C中,第一級與第二級双端邏輯元件形成第一個的連線方框,而由第二級與第三級双端邏輯元件形成第三連線方框。
為了要縮小第二圖C中的第一連線方框,可以翻轉第三双端邏輯元件(L3),使得第三双端邏輯元件(L3)的輸入端(in3)改為在左側,輸出端(out3)改為在右側,如第二圖D所示。
從第二圖D中,我們可看出翻轉第三双端邏輯元件(L3)後,使得第一連線方框縮小成為第二連線方框,然而,第二級的第三連線方框卻變大成為第四連線方框,根據連線基礎翻轉法(Nets-based Flip)的理論描述,若為了要縮短連線方框而翻轉任一双端邏輯元件,進而造成另一連線方框變大,則翻轉双端邏輯元件動作是不被允許的,以避免造成另一繞線長度變長。
在美國專利公開號US2007/0204252提出一種配置程序的方法與系統“Methods and systems for placement”,該發明也是基於連線基礎翻轉法(Nets-based Flip)的改進發明。
然而,當有連續個双端邏輯元件所組成的信號傳遞路徑且前後分歧時,利用連線基礎翻轉法(Nets-based Flip)則無法正確地判斷哪一個級數的双端邏輯元件該進行方位最佳化。接下來以時脈樹(Clock tree)上的双端邏輯元件來証明,首先為了要平衡時脈信號的延遲時間能一致,時脈樹中的双端邏輯元件會被配置成為H樹(H tree)的路徑。請參照如下的第三圖A,其所繪示圖為H樹路徑示意圖。
在第三圖A中,第一双端邏輯元件(L1)傳送時脈信號至第二双端邏輯元件(L2),而第二双端邏輯元件(L2)再以H樹的方式同時分別傳送四個分支(Branch)時脈信號至第三双端邏輯元件(L3)、第四双端邏輯元件(L4)、第五双端邏輯元件(L5)及第六双端邏輯元件(L6)。也就是說,H樹路徑是從第一双端邏輯元件(L1)、第二双端邏輯元件(L2)、第三双端邏輯元件(L3)、第四双端邏輯元件(L4)、第五双端邏輯元件(L5)及第六双端邏輯元件(L6)依路徑走勢所組成。
最後,在每一個分支末的双端邏輯元件輸出端(out3、out4、out5及out6)將時脈信號分別傳送至四個需要時脈信號的標準邏輯元件。亦即,第三双端邏輯元件(L3)的輸出端(out3)輸入四個時脈輸入端(clk3a)、(clk3b)、(clk3c)及(clk3d)、第四双端邏輯元件(L4)的輸出端(out4)輸入四個時脈輸入端(clk4a)、(clk4b)、(clk4c)及(clk4d)、第五双端邏輯元件(L5)的輸出端(out5)輸入四個時脈輸入端(clk5a)、(clk5b)、(clk5c)及(clk5d)及第六双端邏輯元件(L6)的輸出端(out6)輸入四個時脈輸入端(clk6a)、(clk6b)、(clk6c)及(clk6d)。其中,需要時脈信號的標準邏輯元件可為例如D型正反器元件(D flip-flop cell)其包括了一輸入端(Din)、輸出端(Dout)以及一時脈輸入端(clk)。
由第三圖A可知,時脈信號的線路由第一双端邏輯元件(L1)輸出端(out1)連線至第二双端邏輯元件(L2)輸入端(in2)。接著,第二双端邏輯元件(L2)輸出端(out2)要連線至第三双端邏輯元件(L3)、第四双端邏輯元件(L4)、第五双端邏輯元件(L5)及第六双端邏輯元件(L6)的各個輸入端(in3、in4、in5及in6)。因此,以第三双端邏輯元件(L3)為例,在未翻轉的情況下會有三個連線方框,一個為輸入端(in3)的第一連線方框(連接out2、in3及in5端點),另外二個為輸出端(out3)的第二連線方框(連接out3、Clk3b及Clk3d端點)及第三連線方框(連接out3、Clk3a及Clk3c端點),如第三圖B所示。
根據連線基礎翻轉法(Nets-based Flip),若欲將第一連線方框變小,則需將第三双端邏輯元件(L3)及第五双端邏輯元件(L5)做翻轉,使其輸入端點(in3及in5)靠近輸出端點(out2),但會導致第二連線方框變大,如第三圖C所示。因此,第三双端邏輯元件(L3)並不允許進行翻轉。同理,第五双端邏輯元件(L5)也不允許被翻轉。
很明顯地,無論第三双端邏輯元件(L3)是否進行翻轉,第三双端邏輯元件(L3)的輸出端(out3)連線至四個D型正反器的總繞線長度都不會改變,因為第二連線方框雖然變大了,但第三連線方框卻變小了,一消一長,剛好可以互相抵消,況且,翻轉第三双端邏輯元件(L3)的好處在於可以減少第二双端邏輯元件(L2)的輸出端(out2)與第三双端邏輯元件(L3)輸入端(in3)之間連線的線長。也就是說,根據連線基礎翻轉法(Nets-based Flip)來判斷双端邏輯元件可否進行翻轉的結果無法達到双端邏輯元件本身的方位最佳化(Cell orientation optimization)。
因此,提出一種双端邏輯元件的方位決定最佳化方法用以決定双端邏輯元件的最佳方位係為發展本發明案之最主要目的。
本案係為一種双端邏輯元件的方位決定最佳化方法,包含:(a)由複數個双端邏輯元件中決定至少一信號連鎖路徑,該至少一信號連鎖路徑開始於一信號起始源並可將該信號依序傳遞至M個双端邏輯元件;以及,(b)設定M個双端邏輯元件中的第N個双端邏輯元件的輸出端為一重力點並使得該第N+1個双端邏輯元件的輸入端被該重力點所吸引。
再者,本發明更提出一種双端邏輯元件的方位決定方法,使用於一信號起始源以及一双端邏輯元件,包含:(a)設定該信號起始源為一重力點;以及,(b)利用該重力點吸引該双端邏輯元件的一輸入端。
再者,本發明更提供一種双端邏輯元件的方位決定方法,包含:提供一電路描述語言,該電路描述語言中提供A個双端邏輯元件的信號傳遞關係;進行一配置程序用以配置該A個双端邏輯元件;進行一時脈樹合成步驟用以新增B個双端邏輯元件以及該B個双端邏輯元件的信號傳遞關係;進行一時間最佳化步驟用以改變該A+B個双端邏輯元件中部分双端邏輯元件的大小並且增加C個双端邏輯元件;以及,利用一路徑基礎翻轉方法來決定所有双端邏輯元件的方位。
再者,本發明更提供一種双端邏輯元件的方位決定方法,包含:提供一電路描述語言,該電路描述語言中提供A個双端邏輯元件的信號傳遞關係;利用一路徑基礎翻轉方法來進行一配置程序用以配置並決定該A個双端邏輯元件的方位;利用該路徑基礎翻轉方法於進行一時脈樹合成步驟時決定新增B個双端邏輯元件的方位;以及,利用該路徑基礎翻轉方法於進行一時間最佳化步驟時決定新增C個双端邏輯元件的方位。
根據本發明的實施例,由於本發明為一種根據信號連鎖路徑來決定其路徑上所有的双端邏輯元件最佳擺放方位,所以稱之為路徑基礎翻轉方法(Paths-based flip)。該路徑基礎翻轉方法(Paths-based flip)適用於所有的双端邏輯元件(2-pin logic cell),例如反向器(Inverter)、緩衝器(Buffer)、延遲元件(Delay cell)。
請參考第四圖,其所繪示圖為本發明路徑基礎翻轉法(Paths-based flip)的方位最佳化過程示意圖。假設,此繞線是起始於信號起始源(s0)並依序連接至三個双端邏輯元件(L1~L3),因此,上述元件即可組成一信號連鎖路徑I(Signal chain path)。接著,設定在信號連鎖路徑I上的信號起始源(s0)以及所有双端邏輯元件的輸出端(out1~out3)為重力點(Gravity point),其目的為吸引(Attract)下一級所有双端邏輯元件的輸入端點(in1~in3)。也就是說,下一級双端邏輯元件(Standard 2-pin logic cells)的擺置方位會藉著其本身輸入端點(Input pin)被上一級的重力點吸引而有所改變,進而達到方位最佳化(Orientation optimization)的目的。
也就是說,由於信號起始源(s0)被設定為重力點,因此,於配置第一双端邏輯元件(L1)時就必須翻轉第一双端邏輯元件(L1)(因為第一双端邏輯元件(L1)的輸入端(in1)被信號起始源(s0)所吸引)。同理,於配置第二双端邏輯元件(L2)時就必須翻轉第二双端邏輯元件(L2)(因為第二双端邏輯元件(L2)的輸入端(in2)被第一双端邏輯元件(L1)的輸出端(out1)所吸引)。同理,於配置第三双端邏輯元件(L3)時就必須翻轉第三双端邏輯元件(L3)(因為第三双端邏輯元件(L3)的輸入端(in3)被第二双端邏輯元件(L2)的輸出端(out2)所吸引)。因此,配置完成後的信號連鎖路徑I不變,但是總繞線長度會縮短且減少線路交錯(wire crossing)的狀況發生。
也就是說,在利用電路描述語言(例如Verilog’s netlist)來描述個別標準邏輯元件(Standard logic cell)之間的信號連接關係之後,進入配置程序步驟(Placement stage)或進行時脈最佳化(Timing Optimization)過程時,同時搜尋所有双端邏輯元件所串成的信號連鎖路徑(Signal chain paths)。之後,設定在信號連鎖路徑上(Signal chain path)所有双端邏輯元件(Standard 2-pin logic cells)的輸出端點為一重力點(Gravity point),使得下一級双端邏輯元件(Standard 2-pin logic cells)的擺置方位會藉著其本身輸入端點(Input pin)被上一級的重力點吸引而有所改變,進而達到方位最佳化(Orientation optimization)的目的。
請參照第五圖A與B,其所繪示為本發明的第一實施例。第一實施例中包括10個双端邏輯元件(L1~L10),且根據電路描述語言可知10個双端邏輯元件(L1~L10)連接成三條信號連鎖路徑(I~III)。
根據本發明的實施例,在進行IC實際繞線之前(Detail routing),先搜尋所有双端邏輯元件所構成的信號連鎖路徑。接著,設定在信號連鎖路徑上(Signal chain path)所有双端邏輯元件(Standard 2-pin logic cells)的輸出端點為一重力點(Gravity point),用以吸引(Attract)下一級所有双端邏輯元件的輸入端點(Input pins),使得下一級双端邏輯元件(Standard 2-pin logic cells)的輸入端點被上一級的重力點所吸引進而達到方位最佳化(Orientation optimization)的目的。如第五圖B即為方位最佳化完成後的示意圖。
請參照第六圖A與B,其所繪示為本發明的第二實施例。第二實施例中共有四條信號連鎖路徑(I~IV)。其中,第一双端邏輯元件(L1)輸出端(out1)可視為信號起始源(Signal start source),第一信號連鎖路徑I由第一双端邏輯元件(L1)開始,經第二双端邏輯元件(L2)至第三双端邏輯元件(L3);第二信號連鎖路徑II由第一双端邏輯元件(L1)開始,經第二双端邏輯元件(L2)至第四双端邏輯元件(L4);第三信號連鎖路徑III由第一双端邏輯元件(L1)開始,經第二双端邏輯元件(L2)至第五双端邏輯元件(L5);第四信號連鎖路徑IV由第一双端邏輯元件(L1)開始,經第二双端邏輯元件(L2)至第六双端邏輯元件(L6)。
當所有信號連鎖路徑(I~IV)搜尋完成後,將每一個双端邏輯元件的輸出端點(out1、out2、out3、out4、out5及out6)設為重力點(圓形斜線區域)以吸引下一級双端邏輯元件的輸入端點(in2、in3、in4、in5及in6),如第六圖B所示。
在設完所有重力點後,每一級的双端邏輯元件輸入端點都會被上一級的重力點吸引,舉例來說,第二双端邏輯元件(L2)的輸入端點(in2)將會被第一重力點(Gravity point 1)所吸引(Attract),以此類推,第三双端邏輯元件(L3)、第四双端邏輯元件(L4)、第五双端邏輯元件(L5)及第六双端邏輯元件(L6)的輸入端點(in3、in4、in5及in6)將會被第二重力點(Gravity point 2)所吸引(Attract)。
因此,如第六圖C所示,每一級双端邏輯元件的擺置方位會因為其本身的輸入端點被重力點吸引而有所改變,也就是說,第三双端邏輯元件(L3)及第五双端邏輯元件(L5)的擺置方位會因為其本身輸入端(in3及in5)被第二重力點(out2)的吸引而做出一個Y軸鏡射動作,使其輸入端與輸出端的座標互相交換。
從第六圖C中可看出,原本在使用連線基礎翻轉法(Nets-based Flip)時,第三双端邏輯元件(L3)及第五双端邏輯元件(L5)是不被允許做翻轉的動作。但若使用本發明的方法,亦即路徑基礎翻轉法(Paths-based flip),第三双端邏輯元件(L3)及第五双端邏輯元件(L5)是可以被允許做翻轉的動作,其結果就如第六圖C所示,而且,以總體繞線長度(Total routing length)來看,其繞線長度是比用連線基礎翻轉法(Nets-based Flip)時來得短。
總而言之,相較於習知的連線基礎翻轉方法(Net-based flip),本發明的路徑基礎翻轉方法(Paths-based flip)提供更正確的双端邏輯元件方位最佳化以達到總體繞線長度縮短的目的。再者,請參照第七圖,此為利用本發明路徑基礎翻轉方法所減少的線長統計表。
統計表中有三個微處理器,以第一微處理器為例,該第一微處理器的晶片面積(Chip area)為1774 μm X 1995 μm,且該第一微處理器由177393個標準邏輯元件(Standard logic cell)所組成,其中,双端邏輯元件的數目為60043個。於配置程序時未考慮双端邏輯元件方位最佳化時,所產生的總線長為8342801 μm;反之,於配置程序時利用路徑基礎翻轉法(Paths-based flip)來將双端邏輯元件的方位執行最佳化,於1分鐘的程式執行時間(Run time)中共可最佳化18837個双端邏輯元件,並且讓最後所產生的總體繞線長度縮短為8337571 μm。因此,利用本發明的路徑基礎翻轉方法(Paths-based flip)總共可以減少5230 μm的總體繞線線長。
再者,本發明的路徑基礎翻轉方法並不限定於配置程序中使用。請參照第八圖,其所繪示為本發明積體電路的設計流程。首先,於步驟300中,利用電路描述語言來描述個別標準邏輯元件之間的信號連接關係。接著,進入邏輯元件配置程序(Standard cell placement)(步驟310),也就是將電路描述語言中的所有双端邏輯元件實際的配置(place)於半導體基板上。接著,進行時脈樹合成(clock tree synthesize)步驟(步驟320),於時脈樹合成步驟中系統會根據實際情況增加双端邏輯元件。再者,進入時間最佳化(timing optimize)步驟(步驟330),於時間最佳化步驟中系統會計算双端邏輯元件的延遲時間,並適時的更換双端邏輯元件的大小(size)或者增減双端邏輯元件的數目。當上述的步驟(步驟300~330)完成之後再利用本發明的路徑基礎翻轉方法(paths-based flip)來執行双端邏輯元件方位最佳化程序(步驟340)後即可以獲得双端邏輯元件的最佳方位。之後,進行線路繞線程序(步驟350)並使得設計完成後的晶片繞線總長度為最短。
再者,本發明的路徑基礎翻轉方法也可以在上述步驟310~330中各別執行。也就是說,於邏輯元件配置程序(Standard cell placement)(步驟310)時即利用路徑基礎翻轉方法來設定双端邏輯元件的輸出端為一重力點,並運用於配置程序的過程;以及,於時脈樹合成步驟(步驟320)完成後將新增的双端邏輯元件利用路徑基礎翻轉方法來決定最佳方位;以及,於時間最佳化步驟(步驟330)完成後將改變的双端邏輯元件利用路徑基礎翻轉方法來決定最佳方位。
綜上所述,本發明的實施例提出路徑基礎翻轉方法來決定双端邏輯元件的方位使得晶片中的總線長有效地縮短,並且有效地減少線路交錯(wire crossing)的狀況發生。
以上所述僅為本發明案之較佳實施例而已,並非用以限定本發明案之申請專利範圍,本發明得由熟習此技藝之人士任施匠思而為諸般修飾,然皆不脫如附申請專利範圍所欲保護者。
本案圖式中所包含之各元件列示如下:
300~350...步驟流程
本案得藉由下列圖式及詳細說明,俾得一更深入之了解:第一圖A所繪示圖為双端邏輯元件所組成的信號傳送路徑於配置程序後未考慮方位最佳化的示意圖。
第一圖B所繪示圖為双端邏輯元件所組成的信號傳送路徑於配置程序後有考慮方位最佳化的示意圖。
第二圖A~D所繪示為連線基礎翻轉法示意圖。
第三圖A~C所繪示為H樹示意圖。
第四圖所繪示為本發明路徑基礎翻轉方法示意圖。
第五圖A與B所繪示為本發明路徑基礎翻轉方法的第一實施例。
第六圖A~C所繪示為本發明路徑基礎翻轉方法的第二實施例。
第七圖為利用本發明路徑基礎翻轉方法所減少的線長統計表。
第八圖所繪示為本發明積體電路的設計流程。
Claims (10)
- 一種双端邏輯元件的方位決定方法,包含:(a)由複數個双端邏輯元件中決定至少一信號連鎖路徑,該至少一信號連鎖路徑開始於一信號起始源並可將該信號依序傳遞至M個双端邏輯元件;以及(b)設定M個双端邏輯元件中的第N個双端邏輯元件的輸出端為一重力點並使得該第N+1個双端邏輯元件的輸入端被該重力點所吸引,其中N與M皆為正整數,且N小於等於M-1。
- 如申請專利範圍第1項所述的双端邏輯元件的方位決定方法,其中該双端邏輯元件為一反向器、一緩衝器或一延遲元件。
- 一種双端邏輯元件的方位決定方法,使用於一信號起始源以及一双端邏輯元件,包含:(a)設定該信號起始源為一重力點;以及(b)利用該重力點吸引該双端邏輯元件的一輸入端。
- 如申請專利範圍第3項所述的双端邏輯元件的方位決定方法,其中該双端邏輯元件為一反向器、一緩衝器或一延遲元件。
- 一種双端邏輯元件的方位決定方法,包含:提供一電路描述語言,該電路描述語言中提供A個双端邏輯元件的信號傳遞關係;進行一配置程序用以配置該A個双端邏輯元件; 進行一時脈樹合成步驟用以新增B個双端邏輯元件以及該B個双端邏輯元件的信號傳遞關係;進行一時間最佳化步驟用以改變該A+B個双端邏輯元件中部分双端邏輯元件的大小並且增加C個双端邏輯元件;以及利用一路徑基礎翻轉方法來決定所有双端邏輯元件的方位,其中A、B與C皆為正整數。
- 如申請專利範圍第5項所述的双端邏輯元件的方位決定方法,其中該路徑基礎翻轉方法,包含:(a)由所有的双端邏輯元件中決定至少一信號連鎖路徑,該至少一信號連鎖路徑開始於一信號起始源並可將該信號依序傳遞至M個双端邏輯元件;以及(b)設定M個双端邏輯元件中的第N個双端邏輯元件的輸出端為一重力點並且使得該第N+1個双端邏輯元件的輸入端被該重力點所吸引,其中N與M皆為正整數,且N小於等於M-1。
- 如申請專利範圍第6項所述的双端邏輯元件的方位決定方法,其中該双端邏輯元件為一反向器、一緩衝器或一延遲元件。
- 一種双端邏輯元件的方位決定方法,包含:提供一電路描述語言,該電路描述語言中提供A個双端邏輯元件的信號傳遞關係;利用一路徑基礎翻轉方法來進行一配置程序用以配置並決定該A個双端邏輯元件的方位,其中A為正整數; 利用該路徑基礎翻轉方法於進行一時脈樹合成步驟時決定新增B個双端邏輯元件的方位,其中B為正整數;以及利用該路徑基礎翻轉方法於進行一時間最佳化步驟時決定新增C個双端邏輯元件的方位,其中C為正整數。
- 如申請專利範圍第8項所述的双端邏輯元件的方位決定方法,其中該路徑基礎翻轉方法,包含:(a)由所有的双端邏輯元件中決定至少一信號連鎖路徑,該至少一信號連鎖路徑開始於一信號起始源並可將該信號依序傳遞至M個双端邏輯元件;以及(b)設定M個双端邏輯元件中的第N個双端邏輯元件的輸出端為一重力點並且使得該第N+1個双端邏輯元件的輸入端被該重力點所吸引,其中N與M皆為正整數,且N小於等於M-1。
- 如申請專利範圍第9項所述的双端邏輯元件的方位決定方法,其中該双端邏輯元件為一反向器、一緩衝器或一延遲元件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097108511A TWI386826B (zh) | 2008-03-11 | 2008-03-11 | 双端邏輯元件的方位決定方法 |
US12/147,729 US7913219B2 (en) | 2008-03-11 | 2008-06-27 | Orientation optimization method of 2-pin logic cell |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097108511A TWI386826B (zh) | 2008-03-11 | 2008-03-11 | 双端邏輯元件的方位決定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200939056A TW200939056A (en) | 2009-09-16 |
TWI386826B true TWI386826B (zh) | 2013-02-21 |
Family
ID=41064373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097108511A TWI386826B (zh) | 2008-03-11 | 2008-03-11 | 双端邏輯元件的方位決定方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7913219B2 (zh) |
TW (1) | TWI386826B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8742464B2 (en) | 2011-03-03 | 2014-06-03 | Synopsys, Inc. | Power routing in standard cells |
US8612914B2 (en) * | 2011-03-23 | 2013-12-17 | Synopsys, Inc. | Pin routing in standard cells |
US8631374B2 (en) | 2011-03-30 | 2014-01-14 | Synopsys, Inc. | Cell architecture for increasing transistor size |
JP6099985B2 (ja) * | 2013-01-18 | 2017-03-22 | エスアイアイ・セミコンダクタ株式会社 | 半導体装置 |
JP2014211824A (ja) * | 2013-04-19 | 2014-11-13 | 富士通株式会社 | 設計支援装置、設計支援方法、および設計支援プログラム |
CN109947555A (zh) * | 2017-12-21 | 2019-06-28 | 北京比特大陆科技有限公司 | 数据处理装置、数据发送方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW550746B (en) * | 2001-06-15 | 2003-09-01 | Stc Unm | Pass-transistor very large scale integration |
TW552536B (en) * | 2001-04-12 | 2003-09-11 | Ibm | Hierarchical layout method for integrated circuits |
TW200537805A (en) * | 2004-05-12 | 2005-11-16 | Nat Universuity Corp Okayama University | Integrated circuit with multidimensional switch topology |
US20070204252A1 (en) * | 2005-06-29 | 2007-08-30 | Furnish Geoffrey M | Methods and Systems for Placement |
-
2008
- 2008-03-11 TW TW097108511A patent/TWI386826B/zh active
- 2008-06-27 US US12/147,729 patent/US7913219B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW552536B (en) * | 2001-04-12 | 2003-09-11 | Ibm | Hierarchical layout method for integrated circuits |
TW550746B (en) * | 2001-06-15 | 2003-09-01 | Stc Unm | Pass-transistor very large scale integration |
TW200537805A (en) * | 2004-05-12 | 2005-11-16 | Nat Universuity Corp Okayama University | Integrated circuit with multidimensional switch topology |
US20070204252A1 (en) * | 2005-06-29 | 2007-08-30 | Furnish Geoffrey M | Methods and Systems for Placement |
Non-Patent Citations (1)
Title |
---|
Chiu-wing Sham; Young, E.R.Y.; Chu, C.; "Optimal cell flipping in placement and floorplanning," 43rd IEEE Design Automation Conference, 2006, pp. 1109 - 1114. * |
Also Published As
Publication number | Publication date |
---|---|
TW200939056A (en) | 2009-09-16 |
US20090235210A1 (en) | 2009-09-17 |
US7913219B2 (en) | 2011-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625522B2 (en) | Method and apparatus for generating three-dimensional integrated circuit design | |
US12039251B2 (en) | Cell layout of semiconductor device | |
TWI386826B (zh) | 双端邏輯元件的方位決定方法 | |
US9171124B2 (en) | Parasitic extraction in an integrated circuit with multi-patterning requirements | |
US20090189641A1 (en) | Integrated circuit device and layout design method therefor | |
US6425115B1 (en) | Area efficient delay circuits | |
JP2003092352A (ja) | 半導体集積回路装置のクロック信号分配回路 | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
US20060136854A1 (en) | Method for placement of pipeline latches | |
JP2001267429A (ja) | レイアウト設計装置およびレイアウト設計方法 | |
JPH113945A (ja) | 半導体集積回路のクロックツリー設計方法及びそれによる半導体集積回路 | |
JP5063958B2 (ja) | 半導体集積回路および半導体集積回路の設計方法 | |
JP5696407B2 (ja) | 半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路 | |
US20230259684A1 (en) | Novel approach to child block pinning | |
JP2000029562A (ja) | 半導体集積回路及びクロック供給回路の設計方法 | |
EP1557775A1 (en) | A method for placement of pipeline latches | |
US20200125691A1 (en) | Integrated circuit design | |
JP3028938B2 (ja) | 半導体集積回路のレイアウト方法 | |
JPH06216249A (ja) | Icチップ自動レイアウト設計システム | |
CN114548010A (zh) | 一种基于时延数据库的快速fpga时延评估方法 | |
JPH01137372A (ja) | 半導体装置の製造方法 | |
JP2006106838A (ja) | 半導体集積回路、その設計装置、設計方法、設計プログラム、テストベクタ検証装置、およびテストベクタ作成装置 | |
JP2001257269A (ja) | 遅延時間調整方法および半導体集積回路 | |
JP2004157627A (ja) | 配置配線プログラムおよび半導体装置の製造方法 | |
JP2002076125A (ja) | 半導体集積回路のレイアウト設計方法 |