TWI474207B - 偵測時序限制衝突的方法與裝置 - Google Patents

偵測時序限制衝突的方法與裝置 Download PDF

Info

Publication number
TWI474207B
TWI474207B TW99106168A TW99106168A TWI474207B TW I474207 B TWI474207 B TW I474207B TW 99106168 A TW99106168 A TW 99106168A TW 99106168 A TW99106168 A TW 99106168A TW I474207 B TWI474207 B TW I474207B
Authority
TW
Taiwan
Prior art keywords
directed
timing
weights
module
test points
Prior art date
Application number
TW99106168A
Other languages
English (en)
Other versions
TW201131407A (en
Inventor
Suo Ming Pu
Hong Hua Song
hong wei Dai
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Priority to TW99106168A priority Critical patent/TWI474207B/zh
Publication of TW201131407A publication Critical patent/TW201131407A/zh
Application granted granted Critical
Publication of TWI474207B publication Critical patent/TWI474207B/zh

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

偵測時序限制衝突的方法與裝置
本發明涉及特殊應用積體電路設計的技術領域,尤其是關於在特殊應用積體電路設計中的一種偵測時序限制衝突的方法和裝置。
ASIC(Application Specific Integrated Circuits特殊應用積體電路)設計可以分為前端設計和後端設計,前端設計人員根據設計要求文檔輸出網表(netlist)文件和時序限制(Timing Constraint)文件。網表文件說明了晶片設計使用的各個裝置以及裝置之間的邏輯連接關係,但並沒有說明各裝置物理上是如何放置的;時序限制文件用於制定資料信號(和/或時脈信號)相對於時脈信號(和/或資料信號)需要提前或者滯後到達多少時間。由此,對電路中各電路的時間延遲作出了規定。後端設計人員根據前端設計人員輸出的網表文件和時序限制文件,對網表級的設計進行布局布線,轉變成由標準單元、區集單元和連接點(Pad)組成的佈線設計,其中標準單元庫是由一些基本的邏輯閘電路組成的庫,每個單元都有相同的佈線高度,並且具有多種不同的視圖;區集單元包括RAM、ROM和專門的IP模組;Pad包括輸入、輸出和電源Pad。後端設計人員的設計的一個重要任務是要滿足時序限制文件中要求的時序限制。
因此時序限制是ASIC設計要求中的一個重要因素,時序限制衝突是指對同一電路作出了互相矛盾的時序限制要求,比如限制1,要求信號A早於信號B到達,限制2要求信號A晚於信號B到達,則對於信號A就存在時序限制衝突等等。顯然,時序限制如果存在衝突,是不可能達到設計要求的。但是由於不同的原因,在幾乎所有晶片的設計中,都存在時序限制衝突這一問題。
設計人員對於時序限制文件中時序限制是否可以得到滿足的偵測,目前常用方法是STA法(static timing analysis method靜態時序分析方法),靜態時序分析套用了特定的時序模型(Timing Model),針對特定電路分析其是否違反設計者給定的時序限制。靜態時序分析工具的輸入是:網表、時序限制以及時序模型,靜態時序分析工具實現一些功能幫助使用者進行時序分析,業界工具主要有Sysnopsys的PrimeTime和Cadence的ETS(Encounter Timing System)。在STA過程中,為了能偵測出衝突的時序限制,需要通過手動分析時序報告,並偵錯錯誤的時序限制。然而,現在的ASIC設計的時序限制報告的項目從10000到100000行,偵錯工作對於靜態時間分析工程師會花費大量時間(幾天到幾個星期)。ASIC時間驅動佈線工具也要花費大量的時間來完成這些目標。如果時序限制文件本身存在時序限制衝突,這一設計目標幾乎是不可完成的。在實際的ASIC設計中,經常因為這一原因造成交付的延遲。因此,如果能夠在早期獲取時序限制衝突,會顯著地減少設計中的設計週轉時間(turnaround time)。
在現有的多種STA工具中,IBM Einstimer工具提供了這樣的功能:在同樣的連接埠如果存在UDT(User Defined Test使用者定義測試)和RAT(Required arrival Time要求到達時間),就提供警告資訊。該功能只能針對連接埠,而不能應用於內部邏輯,並且只有在上述兩種測試重疊時才警告,如果內部邏輯的時序限制衝突,該工具是沒有偵測功能的。其它STA工具甚至沒有相關功能。
上述解决方案的另一個缺陷是對於10000到100000行的時序報告,僅憑手工工作,很難達到100%偵測並涵蓋全部時序限制衝突,時序限制偵錯效率非常低。
因此,需要一種能夠自動100%偵測時序限制衝突的方法來減少ASIC項目中的設計週轉時間和工程師資源。
根據本發明的一個態樣,提供了一種偵測時序限制衝突的方法,包括:接收時序限制文件;將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊及該有向邊的權重,建立一個有向圖;搜索所述有向圖的全部有向圈;對於每個有向圈,如果組成該有向圈的有向邊的權重之和滿足要求的條件,則確定組成該有向圈的測試點和時序限制存在時序限制衝突。
根據本發明的另一個態樣,提供了一種偵測時序限制衝突的裝置,包括:接收模組,用於接收時序限制文件;建立模組,用於將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊及該有向邊的權重,建立一個有向圖;搜索模組,用於搜索所述有向圖的全部有向圈;確定模組,用於對於每個有向圈,如果組成該有向圈的有向邊的權重之和滿足要求的條件,則確定組成該有向圈的測試點和時序限制存在時序限制衝突。
將參照附圖更加詳細地描述本發明的較佳實施方式,在附圖中顯示了本發明的較佳實施例。然而,本發明可以以各種形式實現而不應該理解為被這裏闡述的實施例所限制。相反,提供這些實施例是為了使本發明更加透徹和完整,並且,完全將本發明的範圍傳達給本領域的技術人員。
為了更好地理解本發明,這裏首先說明一些基本概念:
(1)最小要求提前時間量MRTA(Minimum Required Time advanced):如果信號在A點的到達時間(ATA )比信號在B點的到達時間(ATB )至少晚X,
ATA -ATB X (1)
則,對於信號到達B點,X為最小要求提前時間量。
(2)電路中的每個點有不同的時間偵測類型,包括信號到達時間的早模式(Early mode signal arrival time)和信號到達時間的晚模式(Late mode signal arrival time),信號到達時間的早模式提供該點的信號最早到達時間,信號到達時間的晚模式提供該點的信號最晚到達時間。在有向圖(directed graph)中,使用兩個節點表達這種有不同的時間偵測類型的節點。
圖1示意性地顯示了根據本發明的偵測時序限制衝突的方法的流程圖。這裏首先說明流程的基本輪廓,再詳細說明各步驟的實現方法。首先在步驟S101,接收時序限制文件;時序限制文件提供時序測試點的時序限制。然後在步驟S102,將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊(directed edge)及該有向邊的權重,建立一個有向圖。具體如何建立有向圖,後面將詳細描述,這裏省略。在步驟S103,搜索所述有向圖的全部有向圈(directed cycle),最後在步驟S104,對於每個有向圈,如果組成該有向圈的有向邊的權重之和滿足要求的條件,則確定組成該有向圈的測試點以及時序限制存在時間限制衝突。本方法較佳還包括輸出存在時間限制衝突的組成有向圈的測試點以及時序限制。可以以各種方式輸出,包括但不限於文件、列印輸出、圖形使用者界面輸出等。
在步驟S102,將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊及該有向邊的權重,建立一個有向圖時,具體包含了多個步驟,下面詳細討論。
這裏的有向圖包含節點,有向邊和有向邊的權重。圖2提供了最小要求提前時間量(MRTA)概念的有向圖表示。MRTA就是從節點B到節點A的有向邊的權重,即有向邊的權重為該有向邊連接的兩個節點信號到達的最小要求提前時間量MRTA。一般由網表中的資料和時序限制文件中的資料推導得出。該圖中如果有向邊的方向指向信號到達是晚的節點,則MRTA>0。顯然,也可以將有向邊的方向由B指向A,這時,MRTA<0。這兩種有向圖都是可以的,但是,在一個有向圖中,只能採用一種方式,例如,所有有向邊的方向不是都指向較晚節點,就是都指向較早節點。以下都以有向邊的方向都指向較晚節點為例來描述。
另外,電路中的一個點由於有不同的時序偵測類型,雖然只有一個節點,這裏也可以表示為一個有向圖,圖3顯示了一個有不同的時序偵測類型的節點在MRTA=0的有向圖。這裏使用有向圖的兩個節點表達電路中一個節點的不同時序偵測類型。
時序限制文件中提出的時序限制本質上是含有測試點資訊的,但是很多時候的測試點資訊不完整,例如某個時序限制,採用匹配符的方式提供:reg[*]/D,其中,*代表任何的字符,這時要完整解析所有的測試點必須要有網表,網表記載了設計時使用的各個裝置以及裝置之間的邏輯連接關係,到網表中搜索,才能知道到底有多少裝置符合這個匹配條件,比如網表中有reg[0]~reg[20]滿足該條件,就得到搜索結果。因此,圖4a示意性地顯示了根據本發明實施例的一種在網表中搜索不完整測試點資訊的流程。因應於將時序限制文件中的全部測試點作為節點要求,首先在步驟S401,判斷時序限制文件中的全部測試點資訊是否完整;如果全部測試點中的部分測試點資訊不完整,在步驟S402在網表中檢索(retrieval)獲得該部分測試點的完整資訊。這樣就獲得了完整的測試點資訊,可以建立有向圖的全部節點。
另外,有些時序限制是一些隱性時序限制,是由使用的裝置帶來的,這樣的隱性時序限制也必須檢查;該隱性時序限制在時序限制文件中並沒有提供而是由網表的裝置庫中提供。這時也需要查詢網表中的庫文件,獲得該裝置的隱性時序限制,將隱性時序限制和時序限制文件中提供的時序限制結合,組成廣義的時序限制,來建立時序限制有向圖。廣義時序限制包含隱性時序限制和時序限制文件中提供的時序限制的其中至少一種。實際上,結合隱性時序限制和時序限制文件中提供的時序限制,可以簡單地將其時序限制放在一起,例如,隱性時序限制包含限制(1)和(2),時序限制文件中提供的時序限制包含限制(3)和(4),則廣義時序限制包含限制(1)、(2)、(3)和(4)。圖4b說明了根據本發明的實施例的一種獲得廣義時序限制的方法,首先在步驟S404在網表中檢索隱性時序限制,所述隱性時序限制由網表中使用的裝置限定,並且沒有在時序限制文件中提供;然後在步驟S405,將隱性時序限制和時序限制文件中提供的時序限制結合,組成廣義時序限制。
圖4c示意性地顯示了根據本發明實施例的一種建立有向圖的流程。在步驟S407,解析廣義時序限制,將獲得的全部測試點作為節點,其中所述廣義時序限制包含隱性時序限制和時序限制文件中提供的時序限制的至少一種;在步驟S408中,根據解析後的廣義時序限制,獲得全部節點間的有向邊和有向邊的權重;在步驟S409中,將全部節點、有向邊和有向邊上的權重組成有向圖。
下面以一些例子來描述建立有向圖的過程。
例子1提出了一個隱性時序限制。圖5a和圖5b分別提出了一個觸發器建立檢查(setup check)和保持檢查(hold check)的網表。這裏沒有時序限制文件。該觸發器包含兩個檢查點,資料點和時脈點,組成有向圖的節點。根據圖5a,在建立檢查中,要求資料最晚到達時間(LateDataAT)要比時脈最早到達時間(EarlyClockA T)早MRTAsetup (MRTAsetup =ClockJitter+Setup GuardTime-ClockPeriod),其中,ClockJitter為時脈抖動;SetupGuardTime是一個由裝置決定的時間參數;ClockPeriod為時脈周期;根據圖5b,在保持檢查中,要求時脈最晚到達時間(LateClockAT)要比資料最早到達時間早MRTAhold (MRTAhold =HoldGuardTime),HoldGuardTime也是一個由裝置決定的時間參數。這樣該裝置的隱性時序限制可以被解析成如下方式:
LateDataAT≦EarlyClockAT+ClockPeriod-ClockJitter-SetupGuardTime EarlyClockAT-LateDataAT≧ClockJitter+SetupGuardTime-ClockPeriod=MRTAsetup  (2)
EarlyDataAT≧LateClockAT+HoldGuardTime EarlyDataAT-LateClockAT≧HoldGuardTime=MARThold  (3)
時序限制的解析可以由STA工具來完成,也可以獨立程式化實現。
根據解析出的隱性時序限制,可知包含兩個節點,資料節點和時脈節點,由於每個節點有兩個時序偵測類型,因此,有向圖中包含4個節點。圖6顯示了根據圖5網表以及時序限制關係得到的有向圖,顯然是一個有向圈。
例子2提出了一個使用者定義的扭斜偵測的建立有向圖過程。圖7顯示了該使用者定義的扭斜偵測的網表和有向圖。根據網表,電路中有兩個輸入/輸出裝置和一些邏輯相連,有兩個連接點,這兩個連接點也就是測試點,PAD1和PAD2,但是由於有兩個時序偵測類型,因此有向圖有4個節點,時序限制文件內容為:
set_skew_test pins{PAD1/A PAD2/A} min SkewGuard
其含義為裝置的連接點PAD1和連接點PAD2信號到達時間在SkewGuard的範圍內。這裏時序限制文件中不包含不完整資訊;並且,網表中的裝置也不包含隱性時序限制。解析結果可以表示為:
ATlate1 -SkewGuard≦ATearly2 ATearly2 -ATlate1 ≧-SkewGuard=MRTAskew  (4)
ATlate2 -SkewGuard≦ATearly1 ATearly1 -ATlate2 ≧-SkewGuard=MRTAskew  (5)
根據節點,時序限制中的有向邊和權重,建立的有向圖如圖7右側所示。
例子3提出了一個點到點的延遲偵測建立有向圖過程。點到點的延遲偵測在晶片設計中用於控制兩點間的延遲,廣泛用於非同步介面邏輯中。圖8顯示了該點到點的延遲偵測的網表和有向圖。圖8顯示的網表中兩個觸發器通過一些邏輯相連接,連接點即為測試點。根據圖8上部分的網表,測試點有3個A,B和C,但是由於有兩個時序偵測類型,因此有向圖有6個節點。時序限制文件內容為:
set_point_to_point_delay from A to B max P2Pguard_AB
set_point_to_point_delay from B to C max P2Pguard_BC
set_point_to_point_delay from A to C max P2Pguard_AC
其含義為:A點到B點的最大延遲為P2PGuard_AB,B點到C點的最大延遲為P2PGuard_BC,A點到C點的最大延遲為P2PGuard_AC。這裏時序限制文件中不包含不完整資訊;並且網表中的裝置不包含隱性時序限制。解析結果可以表示為:
ATearlyB -P2PGuard_AB≦ATearlyA ATearlyA -ATearlyB ≧-P2PGuard_AB=MRTAp2Pba  (6)
ATearlyC -P2PGuard_BC≦ATearlyB ATearlyB -ATearlyC ≧-P2PGuard_BC=MRTAp2pCB  (7)
ATearlyC -ATearlyA ≧P2PGuard_AC=MRTAp2pAC  (8)
根據節點,時序限制中的有向邊和權重,建立的有向圖如圖8下側所示。
有向圖建立以後,要搜索所述有向圖的全部有向圈。搜索有向圖中的有向圈有很多種方法。
一種應用較為廣泛的方法是首先搜索全部強連通分量,然後對搜索的強連通分量搜索有向圈。強連通分量是指有向圖中任何兩個節點都能夠互相到達的部分,搜索強連通分量的算法在圖論技術中有很多種,例如深度優先搜索算法,Kosaraju-Sharir算法等。下面說明了深度優先搜索算法的流程。
(1)在有向圖G上,從某個頂點出發沿以該頂點為尾的弧進行深度優先遍歷搜索,並按其所有鄰接點的搜索都完成的順序將頂點排列起來。求有向圖G的強連通分支的算法步驟:
1)對G進行深度優先搜索並按遞迴調用(recursive calls)完成的先後順序對各頂點編號;
2)改變G的每條邊的方向,構造出新的有向圖Gr;
3)按1)中的確定的頂點編號,從編號最大的頂點開始對Gr進行深度優先搜索。如果搜索的過程中沒有訪問遍Gr的所有頂點,則從未被訪問過的頂點中選取編號最大的頂點,並從此頂點開始繼續做深度優先搜索;
4)在最後得到的Gr的深度優先生成森林(depth-first spanning forest)中,每棵樹上的頂點組成G的一個強連通分支。
以上只是示意性說明,本領域技術人員可以知道,任何搜索有向圖的強連通區域算法在這裏都可以使用。
搜索到有向圖的強連通區域後,可以使用圖論中的算法搜索強連通區域中的有向圖,例如,可以採用Dijkstra,FLOYD算法等,對於Floyd算法,代碼描述可以參考http://www.zjtg.cn/itjs/suanfa/2 4.asp
這裏,仍然以圖為例子來說明:
圖9示意性地顯示了根據網表文件和時序限制文件獲得的一個有向圖。圖10示意性地顯示對圖9的有向圖搜索強連通區域的結果。圖11示意性地顯示對圖10的強連通區域搜索有向圖的結果。
本領域技術人員可以瞭解,搜索強連通區域目的是搜索有向圈。圖論中不經搜索強連通區域而直接搜索有向圖的算法可以直接應用於本發明。
對於最後的步驟S104,對於每個有向圈,如果組成該有向圈的有向邊的權重之和滿足要求的條件,則確定組成該有向圖的測試點和時序限制存在時間限制衝突。具體來說,如果有向圖的所有有向邊的方向指向信號到達更晚的節點,這時MRTA>0,則組成該有向圈的有向邊的權重之和要求滿足的條件是權重之和大於0。當然,如果將有向邊的方向指向信號到達更早的節點,這時,MRTA<0,則有組成該有向圈的有向邊的權重之和要求滿足的條件是權重之和小於0。
這樣,可以根據組成該有向圈的有向邊的權重之和滿足條件的有向圈確定相關的測試點和時序限制,這些時序限制是衝突的時序限制。
由以上描述可以看出,本發明可以全部採用軟體進行自動偵測,將工程師從繁瑣的手工工作解脫出來,並且提高了偵測效率,可以達到衝突的時序限制100%偵測。
基於同一個發明構思,本發明還公開了一種偵測時序限制衝突的裝置,如圖12所示,該裝置包括:接收模組1201,用於接收時序限制文件;建立模組1202,用於將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊及該有向邊的權重,建立一個有向圖;搜索模組1203,用於搜索所述有向圖的全部有向圈;確定模組1204,用於對於每個有向圈,如果組成該有向圈的有向邊的權重之和滿足要求的條件,則確定組成該有向圈的測試點和時序限制存在時序限制衝突。較佳地,該裝置還包括:輸出模組1205,用於輸出存在時間限制衝突的組成有向圈的測試點和時序限制。
根據本發明的一種實施方式,所述建立模組1202包括(圖中未顯示):判斷模組,用於判斷時序限制文件中的全部測試點資訊是否完整;網表檢索模組,用於如果全部測試點中的部分測試點資訊不完整,在網表中檢索獲得該部分測試點的完整資訊。
根據本發明的另一種實施方式,所述建立模組1202包括(圖中未顯示):解析模組,用於解析廣義時序限制,將獲得的全部測試點作為節點,其中所述廣義時序限制包含隱性時序限制和時序限制文件中提出的時序限制的至少一種;有向邊和權重建立模組,用於根據解析後的廣義時序限制,獲得全部節點間的有向邊和有向邊的權重;有向圖建立模組,用於將全部節點、有向邊和有向邊上的權重形成有向圖。
根據本發明的又一種實施方式,所述解析模組包括(圖中未顯示):網表檢索模組,用於在網表中檢索隱性時序限制,所述隱性時序限制由網表中使用的裝置限定,並且沒有在時序限制文件中提出;組合模組,用於將隱性時序限制和時序限制文件中提出的時序限制結合,形成廣義時序限制。
根據本發明的一種實施方式,如果所述有向邊指向信號到達時間晚的節點,該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和大於0。
根據本發明的另一種實施方式,如果所述有向邊指向信號到達時間早的節點,所述該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和小於0。
根據本發明的再一種實施方式,所述搜索模組1203還包括搜索強連通分量模組(圖中未顯示),用於搜索所述有向圖的全部強連通分量。
本發明中所述有向邊的權重為該有向邊連接的兩個節點信號到達的最小要求提前時間量。
雖然這裏參照附圖描述了本發明的示例性實施例,但是應該理解本發明不限於這些精確的實施例,並且在不背離本發明的範圍和宗旨的情况下,本領域普通技術人員能對實施例進行各種變化的修改。所有這些變化和修改意欲包含在所附申請專利範圍中限定的本發明的範圍中。
並且根據上述描述,所屬技術領域的技術人員知道,本發明可以體現為裝置、方法或電腦程式產品。因此,本發明可以具體實現為以下形式,即,可以是完全的硬體、完全的軟體(包括韌體、常駐軟體、微碼等)、或者本文一般稱為"電路"、"模組"或"系統"的軟體態樣與硬體態樣的組合。此外,本發明還可以採取體現在任何有形的表達媒體(medium of expression)中的電腦程式產品的形式,該媒體中包含電腦可用的程式碼。
可以使用一個或多個電腦可用的或電腦可讀的媒體的任何組合。電腦可用的或電腦可讀的媒體例如可以是--但不限於--電的、磁的、光的、電磁的、紅外線的、或半導體的系統、設備、裝置或傳播媒體。電腦可讀媒體的更具體的例子(非窮舉的列表)包括以下:有一個或多個導線的電連接、可攜式電腦磁碟、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟唯讀記憶體(CD-ROM)、光儲存裝置、諸如支援網際網路或企業網路的傳輸媒體、或者磁性儲存裝置。注意電腦可用的或電腦可讀的媒體甚至可以是上面印有程式的紙張或者其它合適的媒體,這是因為,例如可以通過電子掃描這種紙張或其它媒體,以電子方式獲得程式,然後以適當的方式加以編譯、解譯或處理,並且必要的話在電腦記憶體中儲存。在本文件的內容中,電腦可用的或電腦可讀的媒體可以是任何含有、儲存、傳達、傳播、或傳輸程式供指令執行系統、設備或裝置使用的媒體,或與指令執行系統、設備或裝置相連接的媒體。電腦可用的媒體可包括在基頻中或著作為載波的一部分傳播的、由其體現電腦可用的程式碼的資料信號。電腦可用的程式碼可以用任何適當的媒體傳輸,包括--但不限於--無線、電線、光纜、RF等等。
用於執行本發明的操作的電腦程式碼,可以以一種或多種程式設計語言的任何組合來編寫,所述程式設計語言包括物件導向程式設計語言--諸如Java、Smalltalk、C++之類,還包括常規的程序性程式設計語言--諸如"C"程式設計語言或類似的程式設計語言。程式碼可以完全地在使用者的電腦上執行、部分地在使用者的電腦上執行、作為一個獨立的軟體套件執行、部分在使用者的電腦上部分在遠端電腦上執行、或者完全在遠端電腦或伺服器上執行。在後一種情形中,遠端電腦可以通過任何種類的網路--包括區域網路(LAN)或廣域網路(WAN)--連接到使用者的電腦,或者,可以(例如利用網際網路服務提供商來連通網際網路)連接到外部電腦。
此外,本發明的流程圖和/或區塊圖的每個區塊以及流程圖和/或區塊圖中各區塊的組合,都可以由電腦程式指令實現。這些電腦程式指令可以提供給一般電腦、專用電腦或其它可程式化資料處理裝置的處理器,從而生產出一種機器,使得通過電腦或其它可程式化資料處理裝置執行的這些指令,產生實現流程圖和/或區塊圖中的區塊所指明的功能/操作的裝置(means)。
也可以把這些電腦程式指令儲存在能指示電腦或其它可程式化資料處理裝置以特定方式工作的電腦可讀媒體中,這樣,儲存在電腦可讀媒體中的指令產生一個包括實現流程圖和/或區塊圖中的區塊所指明的功能/操作的指令裝置(instruction means)的製造品。
也可以把電腦程式指令加載到電腦或其它可程式化資料處理裝置上,使得在電腦或其它可程式化資料處理裝置上執行一系列操作步驟,以產生電腦實現的過程,從而在電腦或其它可程式化裝置上執行的指令就提供實現流程圖和/或區塊圖中的區塊所指明的功能/操作的過程。
附圖中的流程圖和區塊圖,圖示了按照本發明各種實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或區塊圖中的每個區塊可以代表一個模組、程式段、或代碼的一部分,所述模組、程式段、或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,區塊中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個接連地表示的區塊實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,區塊圖和/或流程圖中的每個區塊、以及區塊圖和/或流程圖中的區塊的組合,可以用執行規定的功能或操作的專用的基於硬體的系統來實現,或者可以用專用硬體與電腦指令的組合來實現。
1201...接收模組
1202...建立模組
1203...搜索模組
1204...確定模組
1205...輸出模組
通過對附圖中本發明示例實施例方式的更詳細描述,本發明的上述、以及其它目的、特徵和優勢將變得更加明顯,其中,相同的參考標號通常代表本發明示例實施例方式中的相同部件。
圖1示意性地顯示了根據本發明的偵測時序限制衝突的方法的流程圖;
圖2說明了最小要求提前時間量(MRTA)概念的有向圖表示;
圖3顯示了一個有不同的時序偵測類型的節點在MRTA=O的有向圖;
圖4a示意性地顯示了根據本發明實施例的一種在網表中搜索不完整測試點資訊的流程;
因4b說明了根據本發明的實施例的一種獲得廣義時序限制的方法;
圖4c示意性地顯示了根據本發明實施例的一種建立有向圖的流程;
圖5a和圖5b分別顯示一個觸發器建立檢查(setup check)和保持檢查(hold check)的網表;
圖6顯示了根據圖5網表以及時序限制關係得到的有向圖;
圖7顯示了使用者定義的扭斜偵測的網表和有向圖;
圖8顯示了點到點的延遲偵測的網表和有向圖;
圖9示意性地顯示了根據網表文件和時序限制文件獲得的一個有向圖;
圖10示意性地顯示了對圖9的有向圖搜索強連通區域的結果;
圖11示意性地顯示了對圖10的強連通區域搜索有向圈的結果;以及
圖12示意性地顯示了一種偵測時序限制衝突的裝置。

Claims (16)

  1. 一種偵測時序限制衝突的方法,包括:接收時序限制文件;將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊(directed edge)及該有向邊的權重,建立一個有向圖(directed graph),其包含:解析廣義時序限制,將獲得的全部測試點作為節點,其中該廣義時序限制包含隱性時序限制和時序限制文件中提供的時序限制的至少一種;根據解析後的廣義時序限制,獲得全部節點間的有向邊和有向邊的權重;以及利用全部節點、有向邊和有向邊上的權重形成有向圖;搜索該有向圖的全部有向圈(directed cycle);以及對於每個有向圈,在確定組成該有向圈的有向邊的權重之和滿足要求的條件之後,則確定組成該有向圈的測試點和時序限制存在時序限制衝突;其中該方法係由一個或多個電腦處理器所執行。
  2. 如申請專利範圍第1項所述的方法,其中該有向邊的權重為該有向邊連接的兩個節點信號到達的最小要求提前時間量。
  3. 如申請專利範圍第1或2項所述的方法,其中該將時序限制文件中的測試點作為節點進一步包括:判斷時序限制文件中的全部測試點資訊是否完整;以及 在確定全部測試點中的部分測試點資訊不完整之後,在網表中檢索(retrieval)獲得該部分測試點的完整資訊。
  4. 如申請專利範圍第1項所述的方法,其中該解析廣義時序限制包括:在網表中檢索隱性時序限制,該隱性時序限制由網表中使用的裝置限定,並且沒有在時序限制文件中提供;以及將隱性時序限制和時序限制文件中提供的時序限制結合,形成廣義時序限制。
  5. 如申請專利範圍第1或2項所述的方法,其中在確定該有向邊指向信號到達時間晚的節點之後,則該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和大於0。
  6. 如申請專利範圍第1或2項所述的方法,其中在確定該有向邊指向信號到達時間早的節點之後,則該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和小於0。
  7. 如申請專利範圍第1或2項所述的方法,其中該搜索該有向圖的全部有向圈包括搜索該有向圖的全部強連通分量。
  8. 如申請專利範圍第1或2項所述的方法,其中還包括:輸出存在時間限制衝突的組成有向圈的測試點和時序限制。
  9. 一種偵測時序限制衝突的裝置,包括: 接收模組,用於接收時序限制文件;建立模組,用於將時序限制文件中的全部測試點作為節點,根據時序限制文件中測試點相關的時序限制確定節點間的有向邊及該有向邊的權重,建立一個有向圖,該建立模組包含:解析模組,用於解析廣義時序限制,將獲得的全部測試點作為節點,其中該廣義時序限制包含隱性時序限制和時序限制文件中提供的時序限制的至少一種;有向邊和權重建立模組,用於根據解析後的廣義時序限制,獲得全部節點間的有向邊和有向邊的權重;以及有向圖建立模組,用於利用全部節點、有向邊和有向邊上的權重形成有向圖;搜索模組,用於搜索該有向圖的全部有向圈;以及確定模組,用於對於每個有向圈,在確定組成該有向圈的有向邊的權重之和滿足要求的條件之後,則確定組成該有向圈的測試點和時序限制存在時序限制衝突。
  10. 如申請專利範圍第9項所述的裝置,其中該有向邊的權重為該有向邊連接的兩個節點信號到達的最小要求提前時間量。
  11. 如申請專利範圍第9或10項所述的裝置,其中該建立模組包括:判斷模組,用於判斷時序限制文件中的全部測試點資訊是否完整;以及網表檢索模組,用於如果全部測試點中的部分測試點資訊不完整,在網表中檢索獲得該部分測試點的完整資訊。
  12. 如申請專利範圍第10項所述的裝置,其中該解析模組包括:網表檢索模組,用於在網表中檢索隱性時序限制,該隱性時序限制由網表中使用的裝置限定,並且沒有在時序限制文件中提供;以及組合模組,用於將隱性時序限制和時序限制文件中提供的時序限制結合,形成廣義時序限制。
  13. 如申請專利範圍第9或10項所述的裝置,其中在確定該有向邊指向信號到達時間晚的節點之後,則該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和大於0。
  14. 如申請專利範圍第9或10項所述的裝置,其中在確定該有向邊指向信號到達時間早的節點之後,則該組成該有向圈的有向邊的權重之和要求滿足的條件為權重之和小於0。
  15. 如申請專利範圍第9或10項所述的裝置,其中該搜索模組包括:搜索強連通分量模組,用於搜索該有向圖的全部強連通分量。
  16. 如申請專利範圍第9或10項所述的裝置,其中還包括:輸出模組,用於輸出存在時間限制衝突的組成有向圈的測試點和時序限制。
TW99106168A 2010-03-03 2010-03-03 偵測時序限制衝突的方法與裝置 TWI474207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW99106168A TWI474207B (zh) 2010-03-03 2010-03-03 偵測時序限制衝突的方法與裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW99106168A TWI474207B (zh) 2010-03-03 2010-03-03 偵測時序限制衝突的方法與裝置

Publications (2)

Publication Number Publication Date
TW201131407A TW201131407A (en) 2011-09-16
TWI474207B true TWI474207B (zh) 2015-02-21

Family

ID=50180366

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99106168A TWI474207B (zh) 2010-03-03 2010-03-03 偵測時序限制衝突的方法與裝置

Country Status (1)

Country Link
TW (1) TWI474207B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784510B (zh) * 2021-03-10 2025-01-24 国微集团(深圳)有限公司 基于均衡权值和最小边割的条件循环电路分割方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW477128B (en) * 1997-03-21 2002-02-21 Scientific Atlanta Using a receiver model to multiplex variable-rate bit streams having timing constraints
US6836753B1 (en) * 2001-06-13 2004-12-28 Cadence Design Systems, Inc. Cone slack allocator for computing time budgets
US20050198601A1 (en) * 2004-03-05 2005-09-08 Picocraft Design Systems, Inc. Method for analyzing and validating clock integration properties in circuit systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW477128B (en) * 1997-03-21 2002-02-21 Scientific Atlanta Using a receiver model to multiplex variable-rate bit streams having timing constraints
US6836753B1 (en) * 2001-06-13 2004-12-28 Cadence Design Systems, Inc. Cone slack allocator for computing time budgets
US20050198601A1 (en) * 2004-03-05 2005-09-08 Picocraft Design Systems, Inc. Method for analyzing and validating clock integration properties in circuit systems

Also Published As

Publication number Publication date
TW201131407A (en) 2011-09-16

Similar Documents

Publication Publication Date Title
JP5579492B2 (ja) タイミング制約の競合を検出するための方法および装置
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
TWI627547B (zh) 用於ic設計協定的自動化功能覆蓋生成和管理的系統和方法
US8627249B1 (en) Method and system for generating design constraints
US20170060734A1 (en) Method and system for creating functional model of test cases
US8661383B1 (en) VLSI black-box verification
US10489534B1 (en) Support for multiple user defined assertion checkers in a multi-FPGA prototyping system
US6564365B1 (en) Method of simultaneously displaying schematic and timing data
US8938703B1 (en) Method and apparatus for comprehension of common path pessimism during timing model extraction
JP2000148808A (ja) スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法
JP2002514822A (ja) 有限状態機械を識別して回路設計を検査するシステムおよび方法
US9600398B2 (en) Method and apparatus for debugging HDL design code and test program code
US9817930B1 (en) Method, system, and computer program product for verifying an electronic circuit design with a graph-based proof flow
US11520959B1 (en) Pruning of buffering candidates for improved efficiency of evaluation
US8000951B2 (en) Timing analysis method and apparatus for enhancing accuracy of timing analysis and improving work efficiency thereof
TWI474207B (zh) 偵測時序限制衝突的方法與裝置
US7263678B2 (en) Method of identifying floorplan problems in an integrated circuit layout
US8713509B2 (en) Circuit design approximation
US11514222B1 (en) Cell-width aware buffer insertion technique for narrow channels
JP6146224B2 (ja) 判定方法、判定プログラム、および判定装置
CN119047415B (zh) 基于层次化的时钟树建模方法、装置、设备及存储介质
US11556406B2 (en) Automatic root cause analysis of complex static violations by static information repository exploration
US8769460B1 (en) Device recognition engine
US11675956B2 (en) Pruning redundant buffering solutions using fast timing models
US11620417B1 (en) User interface for interactive skew group analysis

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees