TW202234283A - 產生方法 - Google Patents
產生方法 Download PDFInfo
- Publication number
- TW202234283A TW202234283A TW110134534A TW110134534A TW202234283A TW 202234283 A TW202234283 A TW 202234283A TW 110134534 A TW110134534 A TW 110134534A TW 110134534 A TW110134534 A TW 110134534A TW 202234283 A TW202234283 A TW 202234283A
- Authority
- TW
- Taiwan
- Prior art keywords
- clock
- macro
- circuit
- application
- integrated circuit
- Prior art date
Links
Images
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/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本發明提出一種產生方法,適用於對於特定應用積體電路設計之每一宏電路產生時脈傳送電路。產生方法包括接收以硬體描述語言描述之特定應用積體電路設計;將每一宏電路放置於半導體基板上之指定位置;基於宏時脈延遲模型,對每一宏電路產生定制時脈偏移資訊;基於定制時脈偏移資訊,對放置於半導體基板之每一宏電路產生時脈傳送電路;當時脈傳送電路不符合特定應用積體電路設計之時脈要求時,調整時脈傳送電路;以及輸出特定應用積體電路設計之物理佈局而以半導體製造程製造特定應用積體電路設計。
Description
本發明係有關於一種時脈傳送電路或時脈樹之產生方法。
電子設計自動化(Electronic Design Automation,EDA)工具以及方法通常用於半導體晶片上積體電路的設計以及佈局。通常,特定應用積體電路(application-specific integrated circuit,ASIC)由電晶體形成執行基本邏輯運算(例如,AND、OR、NAND、NOR等)的基本電路。接著可以將這些基本電路組成宏電路,例如多工器、加法器、乘法器、解碼器等,進而組成功能區塊。在特定應用積體電路的階層式設計(hierarchical design)中,每個個別的功能都被劃分至不同的宏電路,而這些宏電路通常是預先設計好,並放置於電子設計自動化工具之單元庫中。當各個功能皆設計完成後,透過將各個功能區塊相互連接即可完成整個積體電路的整體設計。
在同步數位系統時,時脈信號作為資料在特定應用積體電路中被驅動之時間基準。時脈信號被發送至功能區塊內的每個暫存器或閂鎖器,並且在理想情況下應在特定應用積體電路進行操作的期間同時到達每個閂鎖器,以符合某些時序要求,進而確保電路動作正常。然而,實際上並非如此。時脈的發送過程存在差異,使得時脈到達每個暫存器或閂鎖器的時間不一致,而時脈到達每個暫存器或閂鎖器的時間不一致通常稱之為”時脈偏移(clock skew)”。
發送時脈的技術試圖改善時脈發送網絡中各種路徑的時脈偏移,而時脈發送網絡也稱為時脈樹(clock tree)。當時脈偏移未被控制在可容忍的水平以下時,則時脈信號會不可控制的在不同時間點到達複數狀態單元(如,正反器),從而導致狀態單元儲存不正確的狀態值。通常,時脈樹係耦接於單一時脈源以及控制區塊閂鎖器、宏電路或宏區塊之間。當每個宏電路的內部時脈延遲反映在時脈樹的設計中時,可利用中間級來連接某些宏電路以及時脈樹。
如果時脈偏移低於設計規範中預定之偏移容忍位準以下時,則在整個特定應用積體電路設計中不存在時脈偏移問題。如果時脈偏移不符合偏移容忍規範時,則應進行調整以符合預定的偏移容忍值。然而,當時脈樹的一部分被修改時,其餘部分也因此而有所變化,因此實際上很難部分的校正時脈電路中的時脈樹。然而,修改時脈樹會導致時序設計迭代次數增加。此外,時序設計的迭代次數增加可能會延後特定應用積體電路設計之上市時間。
再者,為了設計所需的時脈樹,應估計各種宏電路之確切的總時脈偏移。當前通用的做法無法準確地估計宏電路的時脈偏移,導致宏電路不偏移或偏移的經驗值可能與宏電路的實際時脈偏移值相差很遠。另外,現有的宏電路模型無法提供用於精確時脈偏移計算的訊息。宏電路中時脈偏移的不正確估計還會導致特定應用積體電路的功率、性能以及面積(power, performance, and area,PPA)之特性較差,並導致整體的特定應用積體電路之時序違例。由於宏電路的時脈偏移估計不準確而導致之特定應用積體電路時序違例,將導致自動佈局佈線(Automatic Place and Route)工具浪費資源來修復時序違例。
因此,需要一種改進的時脈偏移系統和方法,以最小的時序設計迭代次數來實現特定應用積體電路晶片的最佳功率、性能以及面積之特性。
在該背景技術部分中公開的資訊僅旨在提供以下所述的本發明的各種實施例的前後關係,因此該背景技術部分可包括不一定是現有技術的資訊(即,已經為本領域具有通常知識者所知的資訊)。因此,目前所列之發明人的工作、在此背景技術段落中所描述的範圍以及在申請時可能不符合現有技術條件的說明書中的各方面,均未被明確或隱含地承認為相對於本公開的技術之現有技術。
本發明提出一種產生方法 ,適用於對於一特定應用積體電路設計之每一宏電路產生一時脈傳送電路。上述產生方法包括接收以一硬體描述語言描述之上述特定應用積體電路設計;將每一宏電路放置於一半導體基板上之指定位置;基於一宏時脈延遲模型,對每一宏電路產生一定制時脈偏移資訊(custom clock skew information);基於上述定制時脈偏移資訊,對放置於上述半導體基板之每一宏電路產生上述時脈傳送電路;當上述時脈傳送電路不符合上述特定應用積體電路設計之時脈要求時,調整上述時脈傳送電路;以及輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程製造上述特定應用積體電路設計。
本發明提出一種非時變機器可讀取媒體用以儲存複數指令,當一處理器執行上述指令時,上述處理器一產生方法而對一特定應用積體電路設計之每一宏電路產生一時脈傳送電路。上述產生方法包括接收以一硬體描述語言描述之上述特定應用積體電路設計;將每一宏電路放置於一半導體基板上之指定位置;基於一宏時脈延遲模型,對每一宏電路產生一定制時脈偏移資訊;基於上述定制時脈偏移資訊,對放置於上述半導體基板之每一宏電路產生上述時脈傳送電路;當上述時脈傳送電路不符合上述特定應用積體電路設計之時脈要求時,調整上述時脈傳送電路;以及輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程製造上述特定應用積體電路設計。
本發明更提出一種積體電路設計系統,包括一電腦以及一軟體應用。上述電腦具有一處理器及一記憶體。上述軟體應用由上述電腦之處理器所運行,且暫存於上述記憶體。上述軟體應用包括複數軟體功能模組,上述軟體功能模組包括一佈局佈線模組、一偏移決定模組、一時脈傳送調整模組以及一佈線模組。上述布局佈線模組用以接收以一硬體描述語言所指定之一特定應用積體電路設計,且將上述特定應用積體電路設計之每一宏電路放置於一半導體基板上之指定位置;上述偏移決定模組具有耦接至一宏時脈延遲模型之一時脈偏移計算引擎,其中上述偏移決定模組用以基於上述宏時脈延遲模型對每一宏電路產生一定制時脈偏移資訊,且用以基於上述定制時脈偏移資訊而對位於上述半導體基板之每一宏電路產生一時脈傳送電路。當上述時脈傳送電路不符合上述特定應用積體電路設計之時序要求時,上述時脈傳送調整模組用以調整上述時脈傳送電路。上述佈線模組用以輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程進行製造上述特定應用積體電路設計。
以下的揭露內容提供許多不同的實施例或範例以實施本案的不同特徵。以下的揭露內容敘述各個構件及其排列方式的特定範例,以簡化說明。當然,這些特定的範例並非用以限定。例如,若是本揭露書敘述了一第一特徵形成於一第二特徵之上或上方,即表示其可能包含上述第一特徵與上述第二特徵是直接接觸的實施例,亦可能包含了有附加特徵形成於上述第一特徵與上述第二特徵之間,而使上述第一特徵與第二特徵可能未直接接觸的實施例。另外,以下揭露書不同範例可能重複使用相同的參考符號及/或標記。這些重複係為了簡化與清晰的目的,並非用以限定所討論的不同實施例及/或結構之間有特定的關係。
如第1圖所示,同步特定應用積體電路 100包括可以從單元庫中選擇的宏電路101。在一些實施例中,宏電路101可用以執行邏輯或算術功能。單元庫還可包括其他功能宏電路,例如桶式移位器(barrel shifter)或隨機存取記憶體(random access memory,RAM)。在各種不同的實施例中,宏電路101的佈局係於單元庫中預先決定好的。宏電路101可以包括用以自輸入邏輯103接收輸入信號之宏輸入正反器119。此外,宏電路101還可以包括用以向輸出邏輯105發送輸出信號之宏輸出正反器121。在一些實施例中,宏輸入正反器119以及宏輸出正反器121可以被實現為D型正反器電路。然而,可實現其他類型的正反器以滿足特定應用之設計標準。宏電路101可以更包括用以執行目標功能之組合電路117。此外,宏電路101可以包括耦接至宏輸入正反器119以及宏輸出正反器121之內部時脈樹115。由於宏電路101之內部佈局係為固定的,所以在特定應用積體電路設計過程中,受幾何結構之電容以及電阻的影響及/或宏電路101中的單元或金屬線之間的關係之時脈延遲可能無法調整。
在一些實施例中,輸入邏輯103係耦接至宏電路101的輸入端子102,並且更包括用以接收輸入信號的輸入正反器107。在各種不同的實施例中,輸入邏輯103可以包括連接於輸入正反器107之輸出端以及宏電路101之輸入端子102之間的輸入預處理組合邏輯109。在一些實施例中,輸入正反器107可由外部時脈信號產生器114提供時脈,外部時脈信號產生器114連接到具有第一時脈分支111的外部時脈樹的根部,第一時脈分支111將時脈信號從外部時脈信號產生器114傳送至輸入正反器107以及輸入邏輯103中的任何其他時脈單元。在一些實施例中,時脈樹可包括第二時脈樹分支113以及第三時脈樹分支123。特別的是,第二時脈樹分支113可用以將時脈信號傳送至宏電路101。第三時脈樹分支123可將時脈信號傳送至輸出邏輯105。在一些實施例中,時脈樹包括一組緩衝器及/或反相器,用以提供用以在時脈樹分支的節點處散開時脈信號時所需的功率。此外,可將額外的緩衝器插入時脈樹的各個分支中以調整路徑延遲,使得時脈信號之邊緣同時到達輸入邏輯103、宏電路101以及輸出邏輯105。儘管為簡單起見,第1圖中所示的時脈樹僅具有三個分支,然而時脈樹通常具有更多的分支,且可將時脈信號提供至其他電路模組。
在其他實施例中,輸出邏輯105可耦接至宏電路101之輸出端子104。實際上,輸出邏輯105可更包括用以提供輸出信號之輸出正反器125。在各種不同的實施例中,輸出邏輯105可包括連接在宏電路101之輸出端子104以及輸出正反器125之間的輸出預處理組合邏輯127。在一些實施例中,輸出正反器125可由外部時脈信號產生器114經由第三時脈樹分支123提供時脈。
第2圖係顯示根據一些實施例所述之具有宏觀偏移引擎209之自動佈局佈線設計流程之示意圖。如第2圖所示,設計之自動佈局佈線基於輸入網表(netlist),而從初始放置201開始執行。在一些實施例中,例如,合成工具根據硬體描述語言(HDL)中提出之輸入設計規範來產生代表設計之輸入網表。在輸入網表中指定之宏電路放置於基板上其分配之位置後,自動佈局佈線流程會為特定應用積體電路設計中的每個宏電路產生時脈傳送電路或時脈樹203。在一些實施例中,產生時脈樹203係基於用於特定應用積體電路設計中之每個宏電路之定制時脈偏移資訊215所產生。此外,定制時脈偏移資訊215係由自動宏偏移策略(automatic macro skewing strategy,AMSS)單元209確定。下面將會更詳細地描述自動宏偏移策略單元209。
在產生時脈樹203之後,基於定制時脈偏移資訊215而在時脈樹時序違例205之操作中調整每個時脈樹分支的延遲區塊,以補償且消除每個時脈樹分支的時脈偏移。接著,自動佈局佈線設計流程在佈線207之步驟完成後,完成設計之佈局、佈線以及檢查,以完成積體電路之製造。
在一些實施例中,自動宏偏移策略單元209包括宏內部時脈延遲模型(macro internal clock delay module)211以及自動時脈偏移計算引擎213。在一些實施例中,自動時脈偏移計算引擎213基於宏內部時脈延遲模型211,針對每個宏電路決定定制時脈偏移資訊215。在進一步的實施例中,宏內部時脈延遲模型211包括自內部宏時脈樹之根部到每個輸入/輸出正反器(例如,宏輸入正反器119或宏輸出正反器121)的時脈插入延遲。在替代實施例中,宏內部時脈延遲模型211可包括從內部宏時脈樹的根部到一組輸入正反器或一組輸出正反器的時脈插入延遲。在另一個實施例中,宏內部時脈延遲模型211可包括對所有輸入/輸出正反器的平均時脈插入延遲。
在一些實施例中,時脈插入延遲模型係基於提取影響內部時脈偏移的寄生電路元件之宏電路。電阻以及電容的萃取(也稱為寄生提取)係提取宏電路之電路佈局之電性特性,以確定宏電路之內部時脈偏移。在一些實施例中,電阻以及電容萃取工具,如StarRC,可用以提取宏電路之電阻以及電容網絡,然後電阻以及電容網絡可用以建構宏內部時脈延遲模型211。在各種不同的實施例中,時序分析工具,例如Spice或Primetime,可基於提取之電阻以及電容網絡來確定從內部宏時脈樹的根部到每個輸入正反器以及輸出正反器的時脈插入延遲。此外,宏內部時脈延遲模型211可以任何其他時序格式(liberty timing formation)儲存。在其他實施例中,宏內部時脈延遲模型211可以以任何其他定時格式保存。在一些實施例中,內部時脈延遲模型211可包括從內部宏時脈樹的根部至每個輸入正反器/輸出正反器的平均時脈延遲。在一些實施例中,自由(Liberty)時序格式可包括從內部宏時脈樹之根部至每個輸入正反器/輸出正反器之一維時脈延遲表。
第3圖係顯示根據本發明之一些實施例所樹之自由(Liberty)格式之宏時脈延遲模型211之示意圖。因此,自由格式可以儲存公共查找表303,其中公共查找表303在宏電路101之時脈埠口處指定上升轉變延遲(rising transition delay)或下降轉變延遲(falling transition delay)之轉折點。在一些實施例中,上升轉變延遲或下降轉變延遲係指定宏電路101的時脈埠口處的時脈信號自一個邏輯位準改變至另一邏輯位準所需之延遲時間。在一些實施例中,可利用唯一標籤301,來標記公共查找表303。
在一些實施例中,宏時脈延遲模型211可包括自內部宏時脈樹之根部到每個輸入正反器/輸出正反器之宏內部時脈延遲,用以上升以及下降輸出。因此,可以在上升查找表(rising table)305中指定用以上升輸出之宏電路之內部時脈延遲,並且可以在下降查找表(falling table)307中指定用以下降輸出之宏電路之內部時脈延遲。在各種不同的實施例中,上升查找表305以及下降查找表307可為每個輸入正反器/輸出正反器、一組輸入正反器/輸出正反器指定時脈延遲值指定時脈延遲值,或者為所有輸入正反器/輸出正反器指定一個單一值,例如平均延遲。
在一些實施例中,公共查找表303中的時脈轉變值的索引指定了連結至上升查找表305以及下降查找表307之索引,其中上升查找表305以及下降查找表307指定了內部宏時脈樹延遲。舉例來說,當時脈轉變值係為0.028 ns(index(0.028)= 2)並且考慮到上升輸出時,則內部時脈延遲將為0.241 ns(index(0.241)= 2)。在一些實施例中,自動時脈偏移計算引擎213基於自由格式所儲存的宏內部時脈延遲模型211,決定每個宏電路之定制時脈偏移資訊215。
第4圖係顯示根據本發明之一些實施例所示之宏時脈偏移計算模組213的示意圖。在一些實施例中,宏時脈偏移計算引擎基於宏時脈延遲模型211確定內部時脈偏移,並為宏電路101之每個輸入正反器/輸出正反器或一組輸入正反器/輸出正反器輸出定制時脈偏移。在一些實施例中,宏時脈偏移計算模組213接收儲存在宏時脈延遲模型211中之資訊,該資訊用於提取自內部宏時脈樹的根部至輸入正反器/輸出正反器或一組輸入正反器/輸出正反器之時脈延遲405。在各種不同的實施例中,宏時脈偏移計算模組213還儲存於輸入網絡轉換數據庫403之中,該輸入網絡轉換數據庫403係指定特定應用積體電路設計中每個宏電路之時脈轉換延遲。在其他實施例中,時脈延遲405是基於輸入網絡轉換數據庫403中所儲存之自低到高或自高到低的時脈轉換延遲而決定的。在進一步的實施例中,自動佈局佈線工具可以自特定應用積體電路設計中基於宏電路的物理佈局佈線,而提供自低到高或自高到低的時脈轉換延遲。
在一些實施例中,偏移計算模組213可包括定制偏移計算引擎407。由於對於特定應用積體電路設計中之每個宏電路而言時脈轉換延遲、輸入負載以及輸出負載是不同的,所以定制偏移計算引擎407可用以接收特定應用積體電路設計中每個宏電路之輸入網絡轉換數據庫403之時脈轉換延遲以及輸入正反器/輸出正反器之時脈延遲405,並為特定應用積體電路設計中之宏電路之每個輸入正反器/輸出正反器的時脈提供定制時脈偏移。在一些實施例中,定制偏移計算引擎407基於宏內部時脈延遲模型211以及輸入網絡轉換數據庫403的時脈轉變延遲中宏電路之每個輸入正反器/輸出正反器或一組輸入正反器/輸出正反器,來計算輸入正反器/輸出正反器的時脈偏移。再者,定制偏移計算引擎407還可確認至輸入正反器/輸出正反器的時脈偏移是否滿足特定應用積體電路設計的時序限制。此外,偏移計算引擎可根據宏電路之物理佈局,為輸入正反器/輸出正反器提供實際的時脈偏移。在一些實施例中,偏移計算模組213可包括指定所有輸出正反器之平均總輸出設置寬鬆之平均輸出設置寬鬆(滿足或不滿足時序限制的餘裕)401。在一些實施例中,可以在設計之自動佈局佈線之放置階段201期間決定平均宏輸出設置寬鬆。
在一些實施例中,定制偏移計算引擎407將每個宏電路之輸入正反器/輸出正反器之定制時脈偏移,定為宏電路之輸入正反器/輸出正反器之時脈延遲405以及宏內部時脈延遲與平均輸出設置延遲寬鬆401之差值的最大值。輸入正反器/輸出正反器之定制時脈偏移如下:
,
其中OS
macroID係為內部時脈延遲模型211之上升查找表305或下降查找表307中所指定之輸入正反器/輸出正反器之時脈延遲405,macro
SLK係為平均輸出設置延遲寬鬆401。由偏移計算引擎407提供的偏移至少為OS
macroID,即到宏電路之輸入正反器/輸出正反器之時脈插入延遲。在一些實施例中,定制偏移計算引擎407可應用於特定應用積體電路設計中的每個宏電路,以產生針對輸入正反器/輸出正反器之一組定制時脈偏移。例如,如果宏電路具有五個輸出端口,並且自動佈局佈線工具提供以下輸出設置寬鬆度:-0.15、0.26、0.28、0.30以及0.15,則輸出設置鬆弛度的算術平均值可以計算為0.168。此外,如果自動佈局佈線工具提供之宏電路之時脈轉換延遲為0.054,則公共查找表303中0.054的索引係為3,該索引可用以從上升查找表305確定到輸入正反器/輸出正反器之時脈延遲405係為0.261。因此,可以將偏移確定為:
確定到輸入正反器/輸出正反器之定制時脈偏移的一個優點是,例如提供了更短的設計週期以及最佳的功率、性能以及面積之特性。此外,透過確定至每個宏電路之輸入正反器/輸出正反器之定制時脈偏移所獲得的最佳最佳的功率、性能以及面積之特性還可以提高良率,並使特定應用積體電路設計人員能夠將更多功能添加至到特定應用積體電路設計中。
第5圖係顯示根據本發明之一些實施例所述之用以基於宏時脈延遲模型來確定宏時脈偏移之方法之流程圖。在操作501中,可以接收用以描述現有特定應用積體電路設計之源邏輯閘層次(gate-level)網表。在一些實施例中,邏輯閘層次網表可以是通過暫存器傳輸級(register-transfer level,RTL)編譯器合成工具從暫存器傳輸級(RTL)原始碼所合成的文字檔案。在另外的實施例中,源邏輯閘層次網表可包括代表特定應用積體電路設計的階層式的(hierarchical)或平坦的邏輯閘層次網表。再者,源邏輯閘層次網表可包括元件以及元件之間互連的描述。此外,元件源邏輯閘層次網表可以簡化為組合邏輯閘或序列邏輯閘,或可以是較低層次的階層式區塊。在一些實施例中,源邏輯閘層次網表可以解析為,例如有向圖之數據結構,其中圖的頂點作為解析之標準單元,而有向邊作為解析之標準單元的輸入以及輸出。
在操作503中,基於以自由格式儲存之宏時脈延遲模型211,產生特定應用積體電路設計中每個宏電路之定制時脈偏移資訊。根據一些實施例,所儲存之宏時脈延遲模型211可基於萃取之電阻值以及電容值。
在操作505中,在將接收到的特定應用積體電路設計之宏電路自動佈局佈線至半導體基板上所分配之位置後,為每個放置之宏電路產生定制時脈傳送電路。在一些實施例中,定制時脈傳送電路係基於為特定應用積體電路設計之每個宏電路所產生之定制時脈偏移資訊而產生。
在操作507中,在產生時脈傳送電路後,檢查用以確保特定應用積體電路設計電路正常工作之時序限制。如果特定應用積體電路設計存在時序違例,則可在操作509處修改時脈傳送電路,以補償且因而消除時脈分配樹之每個分支的時脈偏移。
在操作511中,產生了所接收之特定應用積體電路設計之物理佈局,該物理佈局隨後可用於使用半導體製造程序來完成以及製造特定應用積體電路設計。該物理佈局通常被稱為”幾何形狀(geometry)”,可用於產生積體電路之工具,該工具係為一系列光罩,而每個光罩用以代表特定應用積體電路設計電路的一層。製造商隨後可使用該工具來製造積體電路。
在操作513中,可透過半導體製造系統根據特定應用積體電路設計的物理佈局,來製造特定應用積體電路設計。特別地,特定應用積體電路設計可被製造在包括多個晶片(die)的半導體晶圓(wafer)上。在一些實施例中,用以根據所接收之物理佈局來製造特定應用積體電路設計的半導體製造系統可包括但不限於,計量子系統(metrology subsystem)、沉積子系統(deposition subsystem)、光刻子系統(lithography subsystem)、蝕刻子系統(etching subsystem)、塗層子系統(coating subsystem)、緩衝子系統(buffering subsystem)、儲存子系統(storage subsystem)、檢查子系統(inspection subsystem)、加熱/冷卻子系統(heating/cooling subsystem)等等。
第6圖係顯示根據本發明之一些實施例所述之電子設計自動化工具600,其中電子設計自動化工具600包括用以基於宏時脈延遲模型609來決定宏時脈偏移之系統。第6圖並非用以顯示電子設計自動化工具所有功能之完整詳細方塊圖。例如,電子設計自動化工具600還可包括以下模組的組合:邏輯合成、行為合成、佈局佈線、靜態時序分析、形式驗證、硬體描述語言(HDL,如SystemC、Systemverilog/Verilog、VHDL)模擬器以及電晶體層次(transistor-level)電路模擬。這樣的模組可以在一或多個處理器(即,至少一個處理器)中實現,該處理器係用以執行儲存在耦接至至少一個處理器之一或多個儲存模組或記憶體中的電腦可執行指令以及相關數據。
如第6圖所示,電子設計自動化工具600可包括宏時脈偏移計算模組213以及用以在特定應用積體電路設計之邏輯閘層次描述以及GDS II佈局(電晶體層次)描述(或其他合適的佈局描述格式)之間轉換的多個模組。在一些實施例中,電子設計自動化工具600可以運行在至少一個處理器601上,該處理器601可以是,例如通用計算機或以專用計算機程序指令、宏內部時脈延遲模型211、儲存在永久性之第一機器可讀儲存媒體603中之平均輸出設置寬鬆401所編程之嵌入式處理器。在某些實施例中,第一機器可讀儲存媒體603還包括多個設計規則,其中設計規則包括特定半導體製造程序之特定參數。設計規則可以結合半導體製造系統所使用的參數。在一些實施例中,用於基於宏時脈延遲模型609而確定宏時脈偏移的系統包括自動時脈偏移計算引擎213以及定制時脈偏移資訊215,用於補償以及消除如第2圖或第4圖所述之時脈樹之每個分支的時脈偏移。
包括用於基於宏時脈延遲模型而確定宏時脈偏移之系統的電子設計自動化工具600可包括用於儲存特定應用積體電路設計之邏輯閘層次網表605之第二機器可讀取媒體607以及用於儲存在邏輯閘層次網表605中描述的特定應用積體電路設計之物理佈局621(例如GDS II數據)之第三機器可讀取媒體619。在一些實施例中,所有數據,如邏輯閘層次網表605、宏內部時脈延遲模型211、平均輸出設置寬鬆401以及物理佈局621可以儲存在同一個媒體中。在另外的實施例中,電子設計自動化工具600可以連接到顯示裝置615,該顯示裝置615用以顯示電子設計自動化工具的圖形用戶界面(graphical user interface,GUI)。在一些實施例中,電子設計自動化工具600也可以連接到用以接收使用者輸入的輸入裝置617。
儘管以上已經描述了本公開的各種實施例,但是應當理解的是,它們僅以示例的方式而不是限制的方式被呈現。同樣的,各種圖示可以指出示例性的架構或配置以使本領域具有通常知識者能夠理解本公開的示例性之特徵和功能。然而,這些人員將理解,本公開不限於所顯示的示例性之架構或配置,而是可以使用多種替代的架構以及配置來實現。另外,如本領域具有通常知識者將理解的是,一個實施例的一個或多個特徵可以與本文描述的另一實施例的一個或多個特徵相組合。因此,本公開的廣度和範圍不應受到任何上述示例性之實施例的限制。
還需理解的是,本文使用諸如”第一”、”第二”等的名稱對元件的任何引用,通常不用以限制那些元件的數量或順序,而是在本文中用作區分兩個或更多個元件或元件之實例的方便手段。因此,對第一元件以及第二元件的引用並不意味著只能採用兩個元件,或者第一元件必須以某種方式位於第二元件之前。
另外,本領域具有通常知識者將理解,可以使用各種不同科技以及技術中的任何一種來表示資訊以及信號。例如,在以上的描述中所引用之,例如數據、指令、命令、資訊、信號、位元以及符號,可由電壓、電流、電磁波、磁場或粒子、光場或粒子或它們的任何組合所表示。
本領域具有通常知識者將進一步理解,結合本文公開之各方面描述之各種說明性邏輯區塊、模組、處理器、裝置、電路、方法以及功能中的任何一者,都可以由電子硬體來實現(例如, 數字實現(digital implementation)、類比實現(analog implementation)或上述二者的組合)、韌體、結合指令之各種形式的程式碼或設計碼(為方便起見,在本文中稱為”軟體”或”軟體模組”),或上述方式的任意組合。
為了清楚地說明硬體、韌體以及軟體之可互換性,以上已經大體上根據其功能描述了各種說明性元件、區塊、模組、電路以及步驟。這種功能是以硬體、韌體、軟體、還是上述方式的組合之方式實現,係取決於特定的應用程序以及對整個系統之設計限制。技術人員可以針對每個特定應用以各種方式來實現所描述的功能,然而決定實現的方式不會造成背離本公開的範圍。根據各種實施例,處理器、裝置、元件、電路、結構、機器、模組等,可用以執行本文中描述的一個或多個功能。如本文針對特定操作或功能所使用的用語”配置為”,指的是被物理構建、編程、安排及/或格式化之處理器、裝置、元件、電路、結構、機器、模組、信號等,以執行指定的操作或功能。
此外,本領域具有通常知識者將理解,本文描述的各種說明性邏輯區塊、模組、裝置、元件以及電路可以在積體電路中實現或由其執行,其中上述積體電路包括數位信號處理器(digital signal processor,DSP)、特定應用積體電路(ASIC)、現場可編程邏輯閘陣列(field programmable gate array,FPGA)或其他可編程邏輯設備或其任意組合。邏輯區塊、模組以及電路可更包括天線及/或收發器,以與網絡內或設備內之各種元件進行通信。被編程以執行本文中所述之功能的處理器將變為經過特殊編程或專用的處理器,並且可以被實現為計算裝置的組合,例如數位信號處理器以及微處理器的組合、多個微處理器、與數位信號處理器之核心結合之一個或多個微處理器、或任何其他合適的配置以以執行本文所述的功能。
如果以軟體實現,則功能可以作為儲存在機器可讀取媒體上之一個或多個指令或程式碼。因此,本文公開的方法或演算法之步驟可被實現為儲存在機器可讀取媒體上的軟體。機器可讀取媒體包括計算機儲存媒體以及通信媒體,其中通信媒體包括能夠使計算機程序或程式碼從一個地方傳輸到另一地方的任何媒體。儲存媒體可以是計算機可以訪問的任何可用媒體。作為範例而非限制,此類機器可讀取媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電性可抹除可編程唯讀記憶體(EEPROM)、光碟唯讀記憶體(CD-ROM)或其他光碟儲存媒體、磁碟或其他磁性儲存設備,或可以用於儲存的任何其他媒體,可儲存由計算機訪問之指令或數據結構形式的所需程式碼。
在本文中,本文所使用的術語”模組”指的是軟體、韌體、硬體以及用於執行本文所描述的相關功能的這些元件的任何組合。另外,為了討論的目的,各種模組被描述為離散模組。然而,對於本領域具有通常知識者顯而易見的是,可以組合兩個或更多個模組以形成執行根據本公開的實施例的相關功能的單個模組。
本發明提出一種產生方法,適用於對於一特定應用積體電路設計之每一宏電路產生一時脈傳送電路。上述產生方法包括接收以一硬體描述語言描述之上述特定應用積體電路設計;將每一宏電路放置於一半導體基板上之指定位置;基於一宏時脈延遲模型,對每一宏電路產生一定制時脈偏移資訊;基於上述定制時脈偏移資訊,對放置於上述半導體基板之每一宏電路產生上述時脈傳送電路;當上述時脈傳送電路不符合上述特定應用積體電路設計之時脈要求時,調整上述時脈傳送電路;以及輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程製造上述特定應用積體電路設計。
根據本發明之一些實施例,上述宏時脈延遲模型係為自由格式(liberty formation)之一文字檔案,上述文字檔案包括複數一維時脈延遲查找表,其中上述一維時脈延遲查找表指定自一內部宏時脈數之根部至每一輸入/輸出狀態單元之一時脈延遲。
根據本發明之一些實施例,上述產生上述定制時脈偏移資訊之步驟更包括基於每一宏電路之一時脈端之一時脈信號之複數轉移延遲之複數轉折點(breakpoints)所決定之一索引,對上述一維時脈延遲查找表進行查找。
根據本發明之一些實施例,決定上述索引之步驟更包括對指定每一宏電路之上述時脈端之上述時脈信號之上述轉移延遲之一共同查找表進行查找,並且提取自最接近由一自動佈局佈線工具所提供之一轉移延遲的一轉折點之上述索引。
根據本發明之一些實施例,上述對每一宏電路產生上述定制時脈偏移資訊之步驟更包括決定自一內部宏時脈樹之根部至上述輸出狀態元件之一時脈延遲之最大值以及上述時脈延遲與上述宏電路之所有輸出狀態元件之一平均輸出設置寬鬆(setup slack)之差值。
本發明提出一種非時變(non-transitory)機器可讀取媒體,用以儲存複數指令,當一處理器執行上述指令時,上述處理器一產生方法而對一特定應用積體電路設計之每一宏電路產生一時脈傳送電路。上述產生方法包括接收以一硬體描述語言描述之上述特定應用積體電路設計;將每一宏電路放置於一半導體基板上之指定位置;基於一宏時脈延遲模型,對每一宏電路產生一定制時脈偏移資訊;基於上述定制時脈偏移資訊,對放置於上述半導體基板之每一宏電路產生上述時脈傳送電路;當上述時脈傳送電路不符合上述特定應用積體電路設計之時脈要求時,調整上述時脈傳送電路;以及輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程製造上述特定應用積體電路設計。
根據本發明之一些實施例,上述宏時脈延遲模型係為自由格式之一文字檔案,上述文字檔案包括複數一維時脈延遲查找表,其中上述一維時脈延遲查找表指定自一內部宏時脈數之根部至每一輸入/輸出狀態單元之一時脈延遲。
根據本發明之一些實施例,上述產生上述定制時脈偏移資訊之步驟更包括基於每一宏電路之一時脈端之一時脈信號之複數轉移延遲之複數轉折點所決定之一索引,對上述一維時脈延遲查找表進行查找。
根據本發明之一些實施例,決定上述索引之步驟更包括對指定每一宏電路之上述時脈端之上述時脈信號之上述轉移延遲之一共同查找表進行查找,並且提取自最接近由一自動佈局佈線工具所提供之一轉移延遲的一轉折點之上述索引。
根據本發明之一些實施例,上述對每一宏電路產生上述定制時脈偏移資訊之步驟更包括決定自一內部宏時脈樹之根部至上述輸出狀態元件之一時脈延遲之最大值以及上述時脈延遲與上述宏電路之所有輸出狀態元件之一平均輸出設置寬鬆之差值。
根據本發明之一些實施例,上述產生方法更包括透過利用電阻以及電容萃取工具提取每一宏電路之寄生電路元件,而產生上述宏時脈延遲模型。
本發明更提出一種積體電路設計系統,包括一電腦以及一軟體應用程式。上述電腦具有一處理器及一記憶體。上述軟體應用由上述電腦之處理器所運行,且暫存於上述記憶體。上述軟體應用包括複數軟體功能模組,上述軟體功能模組包括一佈局佈線模組、一偏移決定模組、一時脈傳送調整模組以及一佈線模組。上述布局佈線模組用以接收以一硬體描述語言所指定之一特定應用積體電路設計設計,且將上述特定應用積體電路設計設計之每一宏電路放置於一半導體基板上之指定位置;上述偏移決定模組具有耦接至一宏時脈延遲模型之一時脈偏移計算引擎,其中上述偏移決定模組用以基於上述宏時脈延遲模型對每一宏電路產生一定制時脈偏移資訊,且用以基於上述定制時脈偏移資訊而對位於上述半導體基板之每一宏電路產生一時脈傳送電路。當上述時脈傳送電路不符合上述特定應用積體電路設計之時序要求時,上述時脈傳送調整模組用以調整上述時脈傳送電路。上述佈線模組用以輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程進行製造上述特定應用積體電路設計。
根據本發明之一些實施例,上述宏時脈延遲模型係為自由格式之一文字檔案,上述文字檔案包括複數一維時脈延遲查找表,其中上述一維時脈延遲查找表指定自一內部宏時脈數之根部至每一輸入/輸出狀態單元之一時脈延遲。
根據本發明之一些實施例,上述偏移決定模組更用以基於每一宏電路之一時脈端之一時脈信號之複數轉移延遲之複數轉折點所決定之一索引,對上述一維時脈延遲查找表進行查找。
根據本發明之一些實施例,上述宏時脈延遲模型更包括一共同查找表以及複數一維時脈延遲查找表,其中上述共同查找表指定每一宏電路之上述時脈端之上述時脈信號之複數轉移延遲。
根據本發明之一些實施例,上述時脈偏移計算引擎更用以透過自一內部宏時脈樹之根部至一輸出狀態元件之一時脈延遲之最大值以及上述時脈延遲與上述宏電路之所有輸出狀態元件之一平均輸出設置寬鬆之差值,而決定上述宏電路之上述輸出狀態元件之上述時脈偏移資訊。
根據本發明之一些實施例,上述偏移決定模組更包括一輸入節點轉變資料庫,其中上述輸入節點轉變資料庫用以指定上述特定應用積體電路設計之每一宏電路之複數轉移延遲。
根據本發明之一些實施例,上述佈局佈線模組更用以基於上述特定應用積體電路設計之每一宏電路之物理佈局佈線,而提供上述轉移延遲。
根據本發明之一些實施例,上述一維時脈延遲查找表係利用電阻以及電容萃取工具提取每一宏電路之複數寄生電路元件而形成。
根據本發明之一些實施例,上述佈局佈線模組更用以決定上述特定應用積體電路設計之每一宏電路之上述平均輸出設置寬鬆。
前述內文概述了許多實施例的特徵,使本技術領域中具有通常知識者可以從各個方面更佳地了解本揭露。本技術領域中具有通常知識者應可理解,且可輕易地以本揭露為基礎來設計或修飾其他製程及結構,並以此達到相同的目的及/或達到與在此介紹的實施例等相同之優點。本技術領域中具有通常知識者也應了解這些相等的結構並未背離本揭露的發明精神與範圍。在不背離本揭露的發明精神與範圍之前提下,可對本揭露進行各種改變、置換或修改。
100:同步特定應用積體電路
101:宏電路
102:輸入端子
103:輸入邏輯
104:輸出端子
105:輸出邏輯
107:輸入正反器
109:輸入預處理組合邏輯
111:第一時脈分支
113:第二時脈樹分支
114:外部時脈信號產生器
115:內部時脈樹
117:組合電路
119:宏輸入正反器
121:宏輸出正反器
123:第三時脈樹分支
125:輸出正反器
127:輸出預處理組合邏輯
201:初始放置
203:產生時脈傳送電路或時脈樹
205:修正時脈樹時序違例
207:佈線
209:自動宏偏移策略單元
211:宏內部時脈延遲模型
213:自動時脈偏移計算引擎
215:定制時脈偏移資訊
301:唯一標籤
303:公共查找表
305:上升查找表
307:下降查找表
401:平均輸出設置寬鬆
403:輸入網絡轉換數據庫
405:時脈延遲
407:定制偏移計算引擎
501~511:操作流程
600:電子設計自動化工具
601:處理器
603:第一機器可讀儲存媒體
605:邏輯閘層次網表
607:第二機器可讀取媒體
609:宏時脈延遲模型
615:顯示裝置
617:輸入裝置
619:第三機器可讀取媒體
621:物理佈局
根據以下的詳細說明並配合所附圖式做完整揭露。應注意的是,根據本產業的一般作業,圖示並未必按照比例繪製。事實上,可能任意的放大或縮小元件的尺寸,以做清楚的說明。
第1圖係顯示根據本發明之一些實施例所述之包括同步特定功能積體電路之時脈樹之電路圖;
第2圖係顯示根據本發明之一些實施例所述之具有宏時脈偏移之自動佈局佈線設計流程之流程圖;
第3圖係顯示根據本發明之一些實施例所述之宏時脈延遲模型之示意圖;
第4圖係顯示根據本發明之一些實施例所述之宏時脈延遲計算模組之示意圖;
第5圖係顯示根據本發明之一些實施例所述之基於宏時脈延遲模型而判斷宏時脈偏移之判斷方法之流程圖;以及
第6圖係顯示根據本發明之一些實施例所述之執行判斷方法之電子設計自動化工具之示意圖。
100:同步特定應用積體電路
101:宏電路
102:輸入端子
103:輸入邏輯
104:輸出端子
105:輸出邏輯
107:輸入正反器
109:輸入預處理組合邏輯
111:第一時脈分支
113:第二時脈樹分支
114:外部時脈信號產生器
115:內部時脈樹
117:組合電路
119:宏輸入正反器
121:宏輸出正反器
123:第三時脈樹分支
125:輸出正反器
127:輸出預處理組合邏輯
Claims (1)
- 一種產生方法,適用於對於一特定應用積體電路設計之每一宏電路產生一時脈傳送電路,包括: 接收以一硬體描述語言描述之上述特定應用積體電路設計; 將每一宏電路放置於一半導體基板上之指定位置; 基於一宏時脈延遲模型,對每一宏電路產生一定制時脈偏移資訊; 基於上述定制時脈偏移資訊,對放置於上述半導體基板之每一宏電路產生上述時脈傳送電路; 當上述時脈傳送電路不符合上述特定應用積體電路設計之時脈要求時,調整上述時脈傳送電路;以及 輸出上述特定應用積體電路設計之一物理佈局而以一半導體製造程進行製造。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/184,184 | 2021-02-24 | ||
US17/184,184 US11494545B2 (en) | 2021-02-24 | 2021-02-24 | Apparatus and method for advanced macro clock skewing |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202234283A true TW202234283A (zh) | 2022-09-01 |
Family
ID=82364594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110134534A TW202234283A (zh) | 2021-02-24 | 2021-09-16 | 產生方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11494545B2 (zh) |
CN (1) | CN114764555A (zh) |
TW (1) | TW202234283A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230114858A1 (en) * | 2021-10-07 | 2023-04-13 | Xilinx, Inc. | Circuit design simulation and clock event reduction |
TWI808001B (zh) * | 2022-09-21 | 2023-07-01 | 中國鋼鐵股份有限公司 | 條鋼工場製程數據整合系統與方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8629548B1 (en) * | 2012-10-11 | 2014-01-14 | Easic Corporation | Clock network fishbone architecture for a structured ASIC manufactured on a 28 NM CMOS process lithographic node |
US10776547B1 (en) * | 2019-10-14 | 2020-09-15 | Cadence Design Systems, Inc. | Infinite-depth path-based analysis of operational timing for circuit design |
-
2021
- 2021-02-24 US US17/184,184 patent/US11494545B2/en active Active
- 2021-09-16 TW TW110134534A patent/TW202234283A/zh unknown
-
2022
- 2022-01-18 CN CN202210053291.5A patent/CN114764555A/zh active Pending
- 2022-10-10 US US17/963,080 patent/US20230036554A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220269847A1 (en) | 2022-08-25 |
US20230036554A1 (en) | 2023-02-02 |
CN114764555A (zh) | 2022-07-19 |
US11494545B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6845494B2 (en) | Method for generating design constraints for modules in a hierarchical integrated circuit design system | |
US7546567B2 (en) | Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip | |
US7216322B2 (en) | Clock tree synthesis for low power consumption and low clock skew | |
US20230036554A1 (en) | Apparatus and method for advanced macro clock skewing | |
TWI521370B (zh) | 用於產生時鐘網路拓撲之暫存器叢集方法、系統及其電腦可讀取記錄媒體 | |
US20050268268A1 (en) | Methods and systems for structured ASIC electronic design automation | |
US20050102643A1 (en) | Methodology to optimize hierarchical clock skew by clock delay compensation | |
JP2004342100A (ja) | 集積回路の物理設計用のツールフロープロセス | |
US20100070941A1 (en) | Achieving Clock Timing Closure in Designing an Integrated Circuit | |
US9189591B2 (en) | Path-based floorplan analysis | |
KR20090077692A (ko) | 반도체 장치의 제조 방법, 반도체 장치의 제조 프로그램 및반도체 장치의 제조 시스템 | |
US11003821B1 (en) | Deterministic loop breaking in multi-mode multi-corner static timing analysis of integrated circuits | |
US9842187B1 (en) | Representation of complex timing characteristics of startpoint-endpoint pairs in a circuit design | |
JP2001357090A (ja) | 論理合成方法及び論理合成装置 | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
US10963610B1 (en) | Analyzing clock jitter using delay calculation engine | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
US9721051B2 (en) | Reducing clock skew in synthesized modules | |
US20080141201A1 (en) | Black box timing modeling method and computer system for latch-based subsystem | |
US6931610B1 (en) | Method for rapid estimation of wire delays and capacitances based on placement of cells | |
KR20150130285A (ko) | 자동 클록 트리 합성 예외 생성 | |
US20110185335A1 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
US10437956B2 (en) | Pessimism reduction in static timing analysis | |
US20060136854A1 (en) | Method for placement of pipeline latches | |
Bernard | Physical Level Design using Synopsys® |