用于設計集成電路的計算機實現的方法和裝置制造方法
【專利摘要】本發明涉及一種用于設計集成電路的計算機實現的方法和裝置。所述計算機實現的方法包括接收所述集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件。所述計算機實現的方法包括檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個,所述檢測基于包括以下項中的至少一個的問題:缺失斷言、一個或多個缺失鎖存器、輸入源轉換率大于源轉換率限制閾值的源驅動器,以及輸入宿轉換率大于宿轉換率限制閾值的宿。所述計算機實現的方法包括使用與所述問題無關的不同元件替換該元件,以及基于所述不同元件而測試所述多個元件中的其它元件。
【專利說明】用于設計集成電路的計算機實現的方法和裝置
【技術領域】
[0001]本發明主題的實施例一般地涉及計算機領域,更具體地說,涉及不同設計(例如,電子電路)的早期設計周期優化。
【背景技術】
[0002]在半導體的襯底上組織電路是一項這樣的任務:當在數據處理系統上處理電子設計自動化指令以減少電路操作延遲時,可以實現整體電路速度效率。超大規模集成(VLSI)電路設計中的延遲源是與信號從一個元件傳送到另一個元件關聯的時間延遲。
[0003]傳統上,對于某些電路設計,多名設計人員同時設計不同的元件。在早期設計周期中,在分層設計的單元或頂層處,緩沖器可能占主導地位;網表可能缺失斷言;隨機邏輯宏(RLM)尚未被優化;以及可能缺失鎖存器。這種電路設計的優化可能沒有認識到這些問題,因此通過大量層分配過度提升設計,并導致設計中產生較大擁擠或過度插入緩沖器,從而使得設計占據面積較大并且耗電量增加。相應地,在早期設計周期中,設計人員并不明確了解擁擠和計時。傳統上,設計人員假設這種未完成計時信息可隨后在設計過程中得以解決,或者宏設計人員可能隨后更正宏緩沖器位置。但是,完全忽略存在問題的元件可能低估完成設計所需的資源。
【發明內容】
[0004]某些實例實施例包括一種用于設計集成電路的計算機實現的方法。所述計算機實現的方法包括接收所述集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件。所述計算機實現的方法包括檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個,所述檢測基于包括以下項中的至少一個的問題:缺失斷言、一個或多個缺失鎖存器、輸入源轉換率(slew)大于源轉換率限制閾值的源驅動器,以及輸入宿轉換率大于宿轉換率限制閾值的宿。所述計算機實現的方法包括使用與所述問題無關的不同元件替換該元件,以及基于所述不同元件而測試所述多個元件中的其它元件。
[0005]某些實例實施例包括一種用于設計集成電路的計算機實現的方法。所述計算機實現的方法包括接收所述集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件。所述計算機實現的方法包括檢測所述多個元件中的第一元件具有失敗計時和未完成計時中的至少一個,所述檢測基于包括缺失斷言和一個或多個缺失鎖存器中的至少一個的問題,其中所述第一元件包括連接所述多個元件中的第二元件和第三元件的連線。所述計算機實現的方法包括使用與所述問題無關的不同元件替換所述第一元件,以及基于所述不同元件而測試所述多個元件中的其它元件。
【專利附圖】
【附圖說明】
[0006]通過參考附圖,可以更好地理解本發明,并且眾多目標、特性和優點將對本領域的技術人員變得顯而易見,這些附圖是:[0007]圖1示出了根據某些實例實施例的用于對包含具有未完成或失敗計時的元件的設計進行早期設計周期優化的系統;
[0008]圖2示出了根據某些實例實施例的具有弱源(weak source)的未完成元件的替換;
[0009]圖3示出了根據某些實例實施例的具有弱宿(flabby sink)的未完成元件的替換;
[0010]圖4示出了根據某些實例實施例的具有一個或多個缺失鎖存器的未完成元件的替換;
[0011]圖5示出了根據某些實例實施例的具有錯誤斷言的未完成元件的替換;
[0012]圖6示出了根據某些實例實施例的用于對包含具有未完成或失敗計時的元件的設計進行早期設計周期優化的流程圖;以及
[0013]圖7示出了根據某些實例實施例的計算機系統。
【具體實施方式】
[0014]下面的描述包括包含本發明主題的技術的示例性系統、方法、技術、指令序列和計算機程序產品。但是,應當理解,可以在沒有這些特定的細節的情況下實現所述實施例。例如,盡管各實例涉及基于分層網絡的集成電路,但某些實施例可以使用任何類型的集成電路。在其它情況下,未詳細示出公知的指令實例、協議、結構和技術以避免使說明書變得模糊不清。
[0015]在某些實例實施例中,集成電路包括多個要設計的元件。某些實例實施例適用于具有多個層的分層網絡設計,其中設計中的某些元件尚未完成。設計中的元件實例可以包括源元件、宿元件、連接其它元件的導線等。某些實例實施例識別具有失敗或未完成數據的元件(“未完成元件”)。這些未完成元件可能具有非優化數據,例如元件內部的非優化長路徑、缺失互連導線邏輯或錯誤斷言(輸入)。可以通過測量元件行為并將這些測量值與理想元件的測量值相比較而識別這些未完成元件。例如,要測量的元件行為可以包括被傳輸和處理的信號的計時。
[0016]可以使用理想元件替換這些未完成元件,從而使能優化網絡的其余部分。此外,可以將替換元件定義的約束返回給被替換的未完成元件的設計人員。這種具有替換元件的設計可防止這些未完成元件通過過度緩沖和過度使用較高金屬層而在設計中產生擁擠,從而使能在集成級別正確測試完成的其它元件。因此,對于分層網絡設計,設計人員可以同時在不同級別進行設計,即使設計中的其它元件尚未完成。
[0017]某些實例實施例識別具有以下一個或多個問題的元件:1)缺失或失敗的斷言,2)一個或多個缺失鎖存器,3)弱源,以及4)弱宿。此外,給定元件可能沒有這些問題,或者具有其中某些或全部問題。將這些元件視為設計的不同類型的未完成元件。此外,使用替換元件替換未完成元件,以便最小化由過度緩沖導致的設計中的擁擠,并最大程度地減少使用設計中的較高金屬層。這種實施例能夠使不同元件的不同設計人員仍然明確了解擁擠和計時權衡。此外,不同設計人員可以確定設計中是否具有其它可能存在問題的路徑。不同設計人員可以確定是否需要更改設計的平面圖,或者是否需要調整引腳分配。
[0018]可以使用不同方法識別和替換設計中的未完成元件。為了識別包括缺失或失敗的斷言或者一個或多個缺失鎖存器的問題,可以理想化分層設計中的頂層元件,以便具有零導線加載建模。備選地,對于該問題,可以使用“理想緩沖”建模,該建模假設可以在最高金屬層插入緩沖器,所述最高金屬層具有最佳寄生電阻和電容以及最佳斯坦納拓撲(例如,忽略堵塞的斯坦納樹或者最佳堵塞感知斯坦納樹)。將識別不滿足定義的計時裕度(slack)閾值的元件。對于這些元件,可以更改斷言以使裕度變成正裕度和/或將下一個裕度標記為“不用于層提升”但仍然允許緩沖以修復轉換率違反。但是,在這些元件的某些實例實施例中,不允許提升到設計中的較高層。
[0019]為了識別弱源的問題,在某些實例實施例中,斷開設計頂層處的元件的連接。通過在邊界處添加緩沖器,然后將如下元件識別為具有弱源(下面進一步描述)的元件:在該緩沖器處具有大于定義的源轉換率限制閾值的輸入源轉換率。修改這些元件,以便在其輸出邊界處布置緩沖器。在該緩沖器的輸入側斷言理想的輸入源轉換率,并且該緩沖器的輸出轉換率將小于所述源轉換率限制閾值。此外,可以在分層設計的頂層執行這種緩沖。
[0020]為了識別弱宿的問題,在某些實例實施例中,斷開設計頂層處的元件的連接。然后將如下元件識別為具有弱宿(下面進一步描述)的元件:其輸入宿轉換率大于定義的宿轉換率限制閾值。修改這些元件,以便在其輸入邊界處布置緩沖器,從而使輸入宿轉換率小于所述宿轉換率限制閾值。此外,可以在分層設計的頂層執行這種緩沖。
[0021]某些實例實施例并不限于集成電路。某些實例實施例適用于其它設計,所述其它設計具有由不同設計人員同時設計的多個元件。某些實例實施例適用于能源網絡設計。例如,這種設計中的未完成元件可以包括變壓器。某些實例實施例還適用于包括備用能源(例如,發電廠、風力、太陽能等)的設計。其中某些備用能源可能不會持續可用或者具有緊急故障。例如,局部電源連接導線可能斷開。需要穩定網絡,以便不僅修復故障元件,而且還不會導致網絡的大規模中斷或更改。在這種配置中,可以監視網絡中的元件。當元件屬性不匹配元件數據庫中的預期值時,發出警報。可以針對故障網絡啟用備份網絡。此外,可以使用模塊對這些故障元件進行建模,以便對于網絡外部的元件而言網絡看似正常運行。
[0022]圖1示出了根據某些實例實施例的用于對包含具有未完成或失敗計時的元件的設計進行早期設計周期優化的系統。系統100包括電路設計模塊102和用于存儲理想設計元件的數據庫104。例如,與微處理器進行通信的通信邏輯元件的設計和LI高速緩存作為微處理器設計的一部分。該設計可以包括布圖、計時等。數據庫104還可以定義理想元件的轉換率限制閾值、裕度閾值等,下面將進一步進行描述。分層設計106中包括多個元件。這些元件可以位于設計的不同層級,并且盡管未示出,可以在通信上耦合在一起。
[0023]分層設計106可以表示為可由電路設計模塊102處理的代碼或語言。在該實例中,分層設計106包括已優化的元件或未完成的元件。已優化元件包括已優化元件108、110、114、116、118、120、122、124和126。未完成元件包括未完成元件112、128和130。電路設計模塊102被配置為接收和處理分層設計106 (如下面更詳細地描述的那樣)。具體而言,電路設計模塊102可以處理分層設計106的不同元件以識別未完成元件并使用替換元件140替換未完成元件。在某些實例實施例中,對未完成元件及其替換元件的識別基于存儲在理想元件數據庫104中的元件。可通過測試元件來確定哪些元件具有未完成或失敗計時。根據不同的問題測試和替換元件的實例將在下面參考圖2-5進行描述。
[0024]圖2示出了根據某些實例實施例的具有弱源的未完成元件的替換。圖2示出在設計中具有弱源的元件的三個階段。第一階段250在元件測試之前。第二階段252在測試元件以判定該元件是否具有弱源之時。第三階段254在測試之后并包括替換未完成元件。
[0025]在第一階段250,未完成元件202包括通過導線214與兩個接收器210和212 (處于未完成元件外部)耦合的驅動器208。驅動器208將信號驅動到兩個接收器210和212。另外,信號到達驅動器208的時間被定義為到達時間I (Α?\)。
[0026]圖1的電路設計模塊102在其中包括源的分層設計中測試元件。對于該實例,電路設計模塊102將測試緩沖器216置于在驅動器208與接收器210和212之間的未完成元件的202的邊界處(如在第二階段252處所示)。電路設計模塊102然后測量測試緩沖器216處的輸入轉換率。如果輸入轉換率大于源轉換率限制閾值,則由于是弱源,將該元件視為未完成元件。源轉換率限制閾值可以是根據特定設計、技術類型、設計規格等變化的值。
[0027]在響應期間(在第三階段254示出),電路設計模塊102將在分層設計中使用替換元件(被示為替換元件206)替換未完成元件。在該替換元件中,未完成元件的內部網絡被移除并被替換元件206的邊界處的用于將信號發送到接收器210和212的緩沖器218所替換。另外,緩沖器218被移到分層設計的頂層。信號到達緩沖器的時間被定義為到達時間2 (AT2),該時間被定義為:
[0028]AT2=ATAL*傳送時間(內層)
[0029]其中L被定義為將驅動器208連接到測試緩沖器216所在邊界的導線長度。傳送時間的單位可基于皮秒/毫米。因此,AT2的單位可以是皮秒。AT2計算在元件的宏中假設理想的緩沖和層分配。此外,針對替換元件206定義新的輸入轉換率。指定新輸入轉換率小于源轉換率限制閾值,并且可根據設計技術和元件而變化。
[0030]圖3示出了根據某些實例實施例的具有弱宿的未完成元件的替換。圖3示出在設計中具有弱宿的元件的三個階段。第一階段350在元件測試之前。第二階段352在測試元件以判定該元件是否具有弱源之時。第三階段354在測試之后并包括替換未完成元件。
[0031]在第一階段350,未完成元件302包括通過導線310與驅動器306 (處于未完成元件外部)耦合的接收器308。驅動器306通過導線310將信號驅動到接收器308。另外,信號需要到達接收器308的時間被定義為必要到達時間I (RAT1X
[0032]圖1的電路設計模塊102在其中包括宿的分層設計中測試元件。對于該實例,電路設計模塊102將測試緩沖器310置于在驅動器306與接收器308之間的未完成元件的302的邊界處(如在第二階段352所示)。在測試緩沖器310處斷言理想的輸入轉換率。電路設計模塊102然后在接收器處執行測量。如果輸入轉換率大于宿轉換率限制閾值,則由于是弱宿,將該元件視為未完成元件。宿轉換率限制閾值可以是根據特定設計、技術類型、設計規格等而變化的值。
[0033]在響應期間(在第三階段354示出),電路設計模塊102將在分層設計中使用替換元件(被示為替換元件306)替換未完成元件。在該替換元件中,未完成元件的內部網絡被移除并被替換元件306的邊界處的用于從驅動器306接收信號的緩沖器312所替換。另外,緩沖器312被移到分層設計的頂層。信號到達緩沖器的時間被定義為必要到達時間2(RAT2),該時間被定義為:
[0034]RAT2=RAT1+l*傳送時間(內層)
[0035]其中L被定義為將測試緩沖器310在邊界處的位置連接到接收器308的導線長度。傳送時間的單位可基于皮秒/毫米。因此,RAT2的單位可以是皮秒。RAT2計算在元件的宏中假設理想的緩沖和層分配。
[0036]圖4示出了根據某些實例實施例的具有一個或多個缺失鎖存器的未完成元件的替換。圖4可以表示作為設計中其它兩個元件的連接件(例如,連線)的元件。在該實例中,第一元件的引腳406通過導線410連接到第二元件的引腳408。圖4針對在設計中具有一個或多個缺失鎖存器的元件示出兩個階段。第一階段420在測試元件以判定該元件是否具有一個或多個缺失鎖存器之前以及之時。第二階段452在測試之后并包括替換未完成元件。
[0037]在第一階段450,被測元件是連接第一元件的引腳406和第二元件的引腳408的導線410。導線410的長度為L。圖1的電路設計模塊102將測試連接分層設計中其它元件的元件。對于所示的兩個引腳網絡(pin nets),電路設計模塊102將針對沿著導線410從引腳406到引腳408的信號傳輸做出如下假設:
[0038]最佳延遲=L*傳送時間(層)
[0039]因此,忽略阻塞并且使用最強大的緩沖器。不考慮緩沖資源和區域阻塞。另外,電路設計模塊102假設最佳層(通常為頂層)。電路設計模塊102然后確定沿著導線410到達引腳408的信號的裕度值(slack value)。如果裕度值小于該元件的已定義閾值,則該元件(導線410)被定義為未完成。例如,假設分層設計是針對5千兆赫(GHz)微處理器的設計,其中周期時間為200皮秒。另外對于該實例,假設沿著導線410從引腳406到引腳408的信號的到達時間為150皮秒;L是3毫米(mm);并且最佳層上的傳送時間為20皮秒/毫米。在該實例中,裕度將為90皮秒(150-3*20皮秒)。因此,該元件被視為無希望。在某些實例實施例中,電路設計模塊102可通過迭代發現相關性元件。具體而言,電路設計模塊102可以通過默認層在第一輪標注被視為無希望的元件。電路設計模塊102然后可以再次運行以查找依賴于這些無希望元件的元件。
[0040]響應于元件未完成(無希望)(如在第二階段452所示),電路設計模塊102將在分層設計中使用替換元件(被示為替換元件404)替換未完成元件。具體而言,理想的方式是添加一個或多個鎖存器(參見鎖存器418)以使裕度為正(在導線中間添加一個鎖存器將使裕度等于200-150-1.5*20=20皮秒)。但是,邏輯設計者可能未準備好添加鎖存器。因此,可以更改斷言(參見更改斷言420)。例如,到達時間可以更改為150-30=120皮秒并且最佳裕度將為200-120-3*20=20皮秒。需要指出,通過此調整,電路設計模塊102仍需插入真實的緩沖器以獲得“最佳裕度”。在某些實例實施例中,不允許電路設計模塊102更改元件的層分配以嘗試校正該無希望的元件。例如,電路設計模塊102被阻止將元件移到較高的層以增加信號速度。具體而言,已假設最佳延遲情景并且不校正無希望的元件。因此,允許電路設計模塊102將元件移到分層設計中的較高層將不會校正無希望元件,卻會無謂地阻塞較高的層(這些層否則將由其它元件使用)。在某些實例實施例中,設計者可以根據預測的鎖存器數量預定義層的特性。
[0041]在某些實例實施例中,電路設計模塊102可以判定元件內連線的裕度是否小于裕度閾值。電路設計模塊102針對頂層元件應用零線延遲模塊并針對元件內的網絡(nets)應用真實的線延遲模塊。如果網絡的裕度小于裕度閾值,則將該網絡視為無希望。因此,電路設計模塊102可以添加緩沖器以減小網絡內的裕度。另外在一些實例實施例中,不允許電路設計模塊102更改該網絡的層分配(如上所述)。
[0042]圖5示出了根據某些實例實施例的具有錯誤斷言的未完成元件的替換。與圖4類似,圖5的未完成元件可以表示作為設計中其它兩個元件的連接件(例如,連線)的元件。元件的斷言可以是不同的輸入。現在返回作為5GHz微處理器(其中周期時間為200皮秒)的集成電路一部分的元件實例。錯誤或缺失斷言可以定義引腳處不可能的到達時間。例如,假設引腳處信號的到達時間為250皮秒。該斷言是錯誤的,因為即使使用零延遲,裕度也會為50皮秒。
[0043]在圖5的實例中,第一元件的引腳506通過導線510連接到第二元件的引腳508。圖5針對在設計中具有錯誤斷言的元件示出兩個階段。第一階段550在測試元件以判定該元件是否具有缺失或錯誤斷言之前以及之時。第二階段552在測試之后并包括替換未完成元件。
[0044]在第一階段550,被測元件是連接第一元件的引腳506和第二元件的引腳508的導線510。導線510的長度為L。圖1的電路設計模塊102將測試連接分層設計中其它元件的元件。對于所示的兩個引腳網絡(pin nets),電路設計模塊102將針對沿著導線510從引腳506到引腳508的信號傳輸做出如下假設:
[0045]最佳延遲=L*傳送時間(層)
[0046]因此,忽略阻塞并且使用最強大的緩沖器。不考慮緩沖資源和區域阻塞。另外,電路設計模塊102假設最佳層(通常為頂層)。電路設計模塊102然后確定沿著導線510到達引腳508的信號的裕度值。如果裕度值小于該元件的已定義閾值,則該元件(導線510)被定義為未完成。因此,該元件被視為無希望。在某些實例實施例中,電路設計模塊102可通過迭代發現相關性元件。具體而言,電路設計模塊102可以通過默認層在第一輪標注被視為無希望的元件。電路設計模塊102然后可以再次運行以查找依賴于這些無希望元件的元件。
[0047]響應于元件未完成(無希望)(如在第二階段552所示),電路設計模塊102將在分層設計中使用替換元件(被示為替換元件504)替換未完成元件。具體而言,可以更改斷言(參見更改斷言520)。例如,到達時間可以更改為150-30=120皮秒并且最佳裕度將為200-120-3*20=20皮秒。在某些實例實施例中,不允許電路設計模塊102更改元件的層分配以嘗試校正該無希望的元件。例如,電路設計模塊102被阻止將元件移到較高的層以增加信號速度。具體而言,已假設最佳延遲情景并且不會校正無希望的元件。因此,允許電路設計模塊102將元件移到分層設計中的較高層將不會校正無希望元件,卻會無謂地阻塞較高的層(這些層否則將由其它元件使用)。
[0048]在某些實例實施例中,電路設計模塊102可以判定元件內連線的裕度是否小于裕度閾值。電路設計模塊102針對頂層元件應用零線延遲模塊并針對元件內的網絡(net)應用真實的線延遲模塊。如果網絡的裕度小于裕度閾值,則將該網絡視為無希望。因此,電路設計模塊102可以添加緩沖器以減小網絡內的裕度。另外在一些實例實施例中,不允許電路設計模塊102更改該網絡的層分配(如上所述)。
[0049]圖6示出了根據某些實例實施例的用于對包含具有未完成或失敗計時的元件的設計進行早期設計周期優化的流程圖。圖6示出了流程圖600。流程圖600的操作參考圖
1-5進行描述,并且由圖1的電路設計模塊102執行。流程圖600的操作從方框602開始。[0050]在方框602,電路設計模塊102接收集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件。現在參考圖1,電路設計模塊102接收表示為可由電路設計模塊102處理的代碼或語言的分層設計106。流程圖600的操作繼續到方框604。
[0051]在方框604,電路設計模塊102判定任何元件是否具有失敗計時和未完成計時中的至少一個,所述判定基于包括缺失斷言、一個或多個缺失鎖存器、弱源和弱宿中的至少一個的問題。如上參考圖2-5所述,電路設計模塊102根據不同的問題判定任何元件是否具有失敗或未完成計時。如果根據其中一個問題判定任何元件具有失敗或未完成計時,則流程圖600的操作繼續到方框606。否則,操作繼續到方框610。
[0052]在方框606,電路設計模塊102使用與所述問題無關的其它元件替換具有失敗計時和未完成計時中的至少一個的元件。如上參考圖2-5所述,電路設計模塊102使用依賴于問題類型的替換元件替換未完成元件。此外,電路設計模塊102可將替換元件定義的約束提供回被替換的未完成元件的設計者。流程圖600的操作繼續到方框608。
[0053]在方框608,電路設計模塊102基于替換元件而測試所述多個元件中的其它元件。因此,可以在不使用會對元件當中的信號計時產生負面影響的未完成元件的情況下,測試分層設計中的其它元件。流程圖600的操作沿著該路徑完成。
[0054]在方框610,電路設計模塊102在不使用不同元件進行替換的情況下測試元件。具體而言,采取分層設計的元件不被視為未完成。因此,可以使用一組當前元件測試設計中的元件。流程圖600的操作完成。
[0055]所屬【技術領域】的技術人員知道,本發明主題的各個方面可以實現為系統、方法或計算機程序產品。因此,本發明主題的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統稱為“電路”、“模塊”或“系統”。此外,本發明主題的各個方面還可以實現為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0056]可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何能夠包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0057]計算機可讀的信號介質可以包括例如在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括一但不限于一電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0058]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。[0059]可以以一種或多種程序設計語言的任意組合來編寫用于執行本發明主題的各個方面的操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言一諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN) —連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0060]下面將參照根據本發明主題的實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發明主題的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0061]也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其它設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的制造品(article of manufacture)0
[0062]也可以把計算機程序指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機或其它可編程裝置上執行的指令提供實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的過程。
[0063]圖7示出了根據某些實例實施例的計算機系統。具體地說,計算機系統700可以表示耦合到一個或多個鏈路本地區域的節點(如在此描述的)。計算機系統700包括處理器單元701 (可能包括多個處理器、多個核心、多個節點和/或實現多線程等)。計算機系統700包括易失性機器可讀介質707。易失性機器可讀介質707可以是系統存儲器(例如,以下一項或多項:高速緩存、SRAM、DRAM、零電容器RAM、雙晶體管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS, PRAM等),或者上面已經描述的機器可讀介質的可能實現的任意一種或多種。計算機系統700還包括總線703 (例如,PC1、ISA、PC1-Express,
HyperTransport?、infiniBand?、NuBus 等)、網絡接口 705 (例如,ATM接口、以太
網接口、幀中繼接口、SONET接口、無線接口等),以及非易失性機器可讀介質709 (例如,光存儲裝置、磁存儲裝置等)。網絡接口 705可以包括一個或多個要被配置的接口(如在此描述的)。計算機系統700包括電路設計模塊725,其可以表示圖1的電路設計模塊102并可以執行操作(如在此描述的)。這些功能的任意一種都可以部分(或全部)在硬件和/或處理單元701中實現。例如,功能可以使用專用集成電路實現、以在處理單元701中實現的邏輯實現、在外圍設備或卡中的協處理器中實現等。此外,實現可以包括未在圖7中示出的更少或其它元件(例如,視頻卡、音頻卡、其它網絡接口、外圍設備等)。處理器單元701、非易失性機器可讀介質709、易失性機器可讀介質707、網絡接口 705和接口配置模塊725都耦合到總線703。盡管被示為耦合到總線703,但易失性機器可讀介質707可以耦合到處理器單元701。
[0064]雖然參考各種實現和利用描述實施例,但應當理解,這些實施例是示例性的,并且本發明主題的范圍并不限于這些實施例。一般而言,可以使用與任何一個或多個硬件系統一致的工具,實現在此描述的用于頁面轉換的技術。可能具有許多變化、修改、增加和改進。
[0065]可以為作為單個實例在此描述的元件、操作或結構提供多個實例。最后,各種元件、操作和數據存儲之間的界限具有某種程度的任意性,并且在特定示例性配置的上下文中示出特定操作。將設想其它功能分配,并且這些分配可以落入本發明主題的范圍之內。一般而言,在示例性配置中作為單獨元件提供的結構和功能可以被實現為組合的結構或元件。同樣,作為單個元件提供的結構和功能可以被實現為單獨元件。這些和其它變化、修改、增加和改進可以 落入本發明主題的范圍之內。
【權利要求】
1.一種用于設計集成電路的計算機實現的方法,所述計算機實現的方法包括: 接收所述集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件; 檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個,所述檢測基于包括以下項中的至少一個的問題: 缺失斷目, 一個或多個缺失鎖存器, 輸入源轉換率大于源轉換率限制閾值的源驅動器,以及 輸入宿轉換率大于宿轉換率限制閾值的宿; 使用與所述問題無關的不同元件替換該元件;以及 基于所述不同元件而測試所述多個元件中的其它元件。
2.根據權利要求1的計算機實現的方法,其中所述問題包括所述輸入源轉換率大于源轉換率限制閾值的源驅動器,其中該元件包括所述源驅動器,其中檢測包括: 在所述源驅動器的邊界處添加測試緩沖器;以及 確定所述測試緩沖器處的所述輸入源轉換率大于所述源轉換率限制閾值。
3.根據權利要求2的計算機實現的方法,其中使用不同元件替換該元件包括: 在所述源驅動器的輸出端處斷 言新緩沖器; 斷言小于所述源驅動器的所述源轉換率限制閾值的轉換率; 斷言所述新緩沖器處的數據的新到達時間,所述新到達時間近似等于該元件中的驅動器處的到達時間,加上連接所述測試緩沖器和所述驅動器的導線的長度乘以數據沿著所述驅動器和所述測試緩沖器之間的所述導線的傳送時間。
4.根據權利要求1的計算機實現的方法,其中所述問題包括所述輸入宿轉換率大于宿轉換率限制閾值的宿,其中該元件包括所述宿,其中檢測包括: 在所述宿的邊界處添加測試緩沖器;以及 確定該元件中的接收器處的所述輸入宿轉換率大于所述宿轉換率限制閾值。
5.根據權利要求4的計算機實現的方法,其中使用不同元件替換該元件包括: 在所述宿的輸入端處斷言新緩沖器; 斷言小于所述宿的所述宿轉換率限制閾值的轉換率; 斷言所述新緩沖器處的數據的新到達時間,所述新到達時間近似等于該元件中的所述接收器處的到達時間,減去連接所述測試緩沖器和所述接收器的導線的長度乘以數據沿著所述驅動器和所述測試緩沖器之間的所述導線的傳送時間。
6.根據權利要求1的計算機實現的方法,其中所述問題包括缺失斷言和一個或多個缺失鎖存器中的至少一個,其中該元件包括連接所述多個元件中的兩個其它元件的連線,其中檢測包括: 基于所述兩個其它元件之間的最佳延遲,使用該元件配置所述兩個其它元件的連接,其中所述最佳延遲被定義為所述連線的長度乘以沿著所述連線傳送的信號的傳送時間;以及 基于所述最佳延遲,判定所述兩個其它元件中接收所述信號的接收器元件處的裕度是否小于裕度閾值; 其中使用不同元件替換該元件包括沿著所述兩個其它元件之間的所述連線插入一個或多個鎖存器,使得所述接收器元件處的裕度大于所述裕度閾值,其中使用不同元件替換該元件與所述不同元件在所述分層設計中相對于該元件的層的層提升無關。
7.一種用于設計集成電路的計算機實現的方法,所述計算機實現的方法包括: 接收所述集成電路的分層網絡設計,其中所述分層設計包括耦合在一起的多個元件; 檢測所述多個元件中的第一元件具有失敗計時和未完成計時中的至少一個,所述檢測基于包括缺失斷言和一個或多個缺失鎖存器中的至少一個的問題,其中所述第一元件包括連接所述多個元件中的第二元件和第三元件的連線; 使用與所述問題無關的不同元件替換所述第一元件;以及 基于所述不同元件而測試所述多個元件中的其它元件。
8.根據權利要求7的計算機實現的方法,其中檢測包括: 基于所述第二元件和所述第三元件之間的最佳延遲,使用所述第一元件配置所述第二元件到所述第三元件的所述連接,其中所述最佳延遲被定義為所述連線的長度乘以沿著所述連線傳送的信號 的傳送時間;以及 基于所述最佳延遲,判定所述第三元件處的裕度是否小于裕度閾值;
9.根據權利要求8的計算機實現的方法,其中使用不同元件替換所述第一元件包括沿著所述第二元件和所述第三元件之間的所述連線插入一個或多個鎖存器,使得所述第三元件處的裕度大于所述裕度閾值。
10.根據權利要求9的計算機實現的方法,其中使用不同元件替換所述第一元件與所述不同元件在所述分層設計中相對于所述第一元件的層的層提升無關。
11.一種用于設計集成電路的裝置,所述裝置包括: 配置為接收所述集成電路的分層網絡設計的模塊,其中所述分層設計包括耦合在一起的多個元件; 配置為檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個的模塊,所述檢測基于包括以下項中的至少一個的問題: 缺失斷目, 一個或多個缺失鎖存器, 輸入源轉換率大于源轉換率限制閾值的源驅動器,以及 輸入宿轉換率大于宿轉換率限制閾值的宿; 配置為使用與所述問題無關的不同元件替換該元件的模塊;以及 配置為基于所述不同元件而測試所述多個元件中的其它元件的模塊。
12.根據權利要求11的裝置,其中所述問題包括所述輸入源轉換率大于源轉換率限制閾值的源驅動器,其中該元件包括所述源驅動器,其中配置為基于問題而檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個的模塊包括: 配置為在所述源驅動器的邊界處添加測試緩沖器的模塊;以及 配置為確定所述測試緩沖器處的所述輸入源轉換率大于所述源轉換率限制閾值的模塊。
13.根據權利要求12的裝置,其中配置為使用不同元件替換該元件的模塊包括: 配置為在所述源驅動器的輸出端處斷言新緩沖器的模塊; 配置為斷言小于所述源驅動器的所述源轉換率限制閾值的轉換率的模塊;配置為斷言所述新緩沖器處的數據的新到達時間的模塊,所述新到達時間近似等于該元件中的驅動器處的到達時間,加上連接所述測試緩沖器和所述驅動器的導線的長度乘以數據沿著所述驅動器和所述測試緩沖器之間的所述導線的傳送時間。
14.根據權利要求11的裝置,其中所述問題包括所述輸入宿轉換率大于宿轉換率限制閾值的宿,其中該元件包括所述宿,其中配置為基于問題而檢測所述多個元件中的一個元件具有失敗計時和未完成計時中的至少一個的模塊包括: 配置為在所述宿的邊界處添加測試緩沖器的模塊;以及 配置為確定該元件中的接收器處的所述輸入宿轉換率大于所述宿轉換率限制閾值的模塊。
15.根據權利要求14的裝置,其中配置為使用不同元件替換該元件的模塊包括: 配置為在所述宿的輸入端處斷言新緩沖器的模塊; 配置作為斷言小于所述宿的所述宿轉換率限制閾值的轉換率的模塊; 配置為斷言所述新緩沖器處的數據的新到達時間的模塊,所述新到達時間近似等于該元件中的所述接收器處的到達時間,減去連接所述測試緩沖器和所述接收器的導線的長度乘以數據沿著所述驅動器和所述測試緩沖器之間的所述導線的傳送時間。
16.根據權利要求11的裝置,其中所述問題包括缺失斷言和一個或多個缺失鎖存器中的至少一個,其中該元件包括連接所述多個元件中的兩個其它元件的連線,其中配置為基于問題而檢測所述多個 元件中的一個元件具有失敗計時和未完成計時中的至少一個的模塊包括: 配置為基于所述兩個其它元件之間的最佳延遲,使用該元件配置所述兩個其它元件的連接的模塊,其中所述最佳延遲被定義為所述連線的長度乘以沿著所述連線傳送的信號的傳送時間;以及 配置為基于所述最佳延遲,判定所述兩個其它元件中接收所述信號的接收器元件處的裕度是否小于裕度閾值的模塊; 其中使用不同元件替換該元件包括操作,所述操作配置為沿著所述兩個其它元件之間的所述連線插入一個或多個鎖存器,使得所述接收器元件處的裕度大于所述裕度閾值,其中使用不同元件替換該元件與所述不同元件在所述分層設計中相對于該元件的層的層提升無關。
17.一種用于設計集成電路的裝置,所述裝置包括: 配置為接收所述集成電路的分層網絡設計的模塊,其中所述分層設計包括耦合在一起的多個元件; 配置為檢測所述多個元件中的第一元件具有失敗計時和未完成計時中的至少一個的模塊,所述檢測基于包括缺失斷言和一個或多個缺失鎖存器中的至少一個的問題,其中所述第一元件包括連接所述多個元件中的第二元件和第三元件的連線; 配置為使用與所述問題無關的不同元件替換所述第一元件的模塊;以及 配置為基于所述不同元件而測試所述多個元件中的其它元件的模塊。
18.根據權利要求17的裝置,其中配置為基于問題而檢測所述多個元件中的第一元件具有失敗計時和未完成計時中的至少一個的模塊包括: 配置為基于所述第二元件和所述第三元件之間的最佳延遲,使用所述第一元件配置所述第二元件到所述第三元件的所述連接的模塊,其中所述最佳延遲被定義為所述連線的長度乘以沿著所述連線傳送的信號的傳送時間;以及 配置為基于所述最佳延遲,判定所述第三元件處的裕度是否小于裕度閾值的模塊;
19.根據權利要求18的裝置,其中配置為使用不同元件替換所述第一元件的模塊包括: 配置為沿著所述第二元件和所述第三元件之間的所述連線插入一個或多個鎖存器,使得所述第三元件處的裕度大于所述裕度閾值的模塊,其中使用不同元件替換所述第一元件與所述不同元件在所述分 層設計中相對于所述第一元件的層的層提升無關。
【文檔編號】G06F17/50GK103455655SQ201310214539
【公開日】2013年12月18日 申請日期:2013年5月31日 優先權日:2012年6月1日
【發明者】C·J·阿爾伯特, R·M·阿弗里爾, 李卓, J·L·P·尼夫斯, S·T·奎 申請人:國際商業機器公司