TWI509408B - 死結偵測方法以及機器可讀媒體 - Google Patents
死結偵測方法以及機器可讀媒體 Download PDFInfo
- Publication number
- TWI509408B TWI509408B TW102102476A TW102102476A TWI509408B TW I509408 B TWI509408 B TW I509408B TW 102102476 A TW102102476 A TW 102102476A TW 102102476 A TW102102476 A TW 102102476A TW I509408 B TWI509408 B TW I509408B
- Authority
- TW
- Taiwan
- Prior art keywords
- vertex
- target path
- resource
- group
- dead
- 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/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Power Sources (AREA)
Description
本發明所揭露之實施例係有關於電路設計的驗證,尤指一種檢查電路路徑是否發生死結的死結偵測方法以及機器可讀媒體。
隨著積體電路技術的發展,積體電路上可容納的電晶體數目大致上符合摩爾定律(Moore’s Law)而不斷穩定地上升,因此造成電路的規模與複雜度亦越來越龐大,為了保證實際上的設計與規範之間的一致性,設計驗證便成為積體電路設計中所面臨的最大挑戰。一般來說,靜態的型式驗證速度較快,但是只能儘可能地找出設計中潛在的錯誤或是缺陷,並不能證明電路設計在功能上完全正確。而模擬驗證雖然可以相當準確地模擬出真實晶片中的電路行為,但卻因為龐大的設計而常常讓模擬驗證變得曠日廢時,特別是在數位-類比混合訊號的電路設計中。因此積體電路設計者通常會將各個電路模塊(module)分開進行模擬驗證以在合理的模擬時間下得到足夠的模擬結果。然而,這樣的作法雖然可以快速地獲得各個電路模塊的功能性驗證,但各個電路模塊之間有可能會有死結(deadlock)的發生,換句話說,各個電路模塊都分別運作正常,但整個系統卻可能發生鎖死的狀況,傳統上,這樣的狀況在最終需要靠電路設計者之間的溝通以及事先的人工檢查來避免,不僅不夠嚴密而且效率不彰。
因此,為了同時滿足對於快速驗證以及驗證正確性的需求,需要一種創新的死結偵測方法來處理包含所有電路模塊的完整電路系統的驗證。
本發明之一目的為提供一種檢查電路路徑是否發生死結的死結偵測方法以及機器可讀媒體以解決上述的問題。
本發明之一實施例揭露一種死結偵測方法,包含有:找出一積體電路之一電路設計檔案的至少一電源節點輸入;找出該至少一電源節點輸入之間的一啟動順序;依據該啟動順序由一特定節點開始找出一目標路徑;以及依據該啟動順序以及該目標路徑來進行死結偵測。
本發明之另一實施例揭露一種機器可讀媒體,儲存一程式碼,當該程式碼被一處理器所執行時,該程式碼會致使該處理器執行以下的步驟:找出一積體電路之一電路設計檔案的至少一電源節點輸入;找出該至少一電源節點輸入之間的一啟動順序;依據該啟動順序由一特定節點開始找出一目標路徑;以及依據該啟動順序以及該目標路徑來進行死結偵測。
藉由本發明所揭露的示範性實施例可以將一積體電路之一電路設計檔案轉換為資源分配圖,再利用該資源分配圖演算法來對資源
分配圖進行靜態的死結偵測,便可以快速而且正確地檢驗該積體電路之該電路設計檔案中是否存在有死結的問題。
請參考第1圖,第1圖為本發明死結偵測方法的一示範性實施例的流程圖。倘若大體上可達到相同的結果,並不需要一定遵照第1圖所示之流程中的步驟順序來進行,且第1圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中,此外,第1圖中的某些步驟亦可根據不同實施例或設計需求省略之。該方法主要會包含有以下步驟:步驟100:找出一積體電路之一電路設計檔案的至少一電源節點輸入;步驟102:找出該至少一電源節點輸入之間的一啟動順序;步驟104:將該電路設計檔案中的複數個元件劃分為至少一群組;步驟106:找出該至少一群組相對應之至少一電源節點輸入;步驟108:依據該啟動順序由一特定節點開始找出一目標路徑;步驟110:依據該啟動順序以及該目標路徑來進行死結偵測。較佳地,步驟110之死結偵測可以依據一資源分配圖演算法(resource allocation graph algorithm)來進行。
由於本發明係針對積體電路之電路設計檔案中的迴路的死結偵
測方法,因此首先如以上的步驟100所示,先找出積體電路之電路設計檔案中所有的電源節點輸入,如此一來,便可以依據該些電源節點輸入之間的關係來找出該些電源節點輸入之間的一啟動順序(步驟102)。接下來請一併參考第2圖,第2圖為採用本發明死結偵測方法的一示範性實施例的示意圖。第2圖中的電源控制電路200包含有一第一反向器202、一第二反向器204、一電平轉換器(level shifter)206、一帶差(bandgap)電路208以及一低壓降穩壓器(low dropout regulator,LDO)210。由於積體電路當中的基本元件單元相當瑣碎,舉例來說,一個簡單的加法器可能由數十個邏輯閘所組成,因此為了分析上的方便,可以先將電路設計檔案中的複數個元件按照所屬的上層模塊以及功能相關性來進行分類,並且劃分為若干個群組。例如在一訊號路徑上的多個串接的反相器(或緩衝器),若其電壓源(或電源節點)相同,則可保留頭尾兩個反相器即可表達其功能性,亦即可以電壓源(或電源節點)相同下,在不影響訊號的功能性路徑下來簡化積體電路之電路設計檔案。在此實施例中,電源控制電路200中複雜的基本元件單元可以依據第2圖中的五個功能元件來進行分類,換句話說,第一反向器202、第二反向器204、電平轉換器206、帶差電路208以及低壓降穩壓器210之中各自的基本元件單元由於具有各自的關連性,因此會分別被歸屬在五個群組之中(步驟104)。
關於步驟106中所述之找出上述五個群組所對應的五個電源節點輸入,一般來說,係由內往外來分別找出第一反向器202、第二
反向器204、電平轉換器206、帶差電路208以及低壓降穩壓器210所對應之上述步驟100中所找出的該些電源節點輸入,如此一來,亦可以由上述步驟102中的該些電源節點輸入之間的該啟動順序來得到該五個群組所對應之五個電源節點輸入之間的一啟動順序。舉例來說,第2圖中的第一反向器202、第二反向器204以及電平轉換器206係屬於一第一電源節點P1,而第2圖中的帶差電路208以及低壓降穩壓器210係屬於一第二電源節點P2,除此之外,由於低壓降穩壓器210所輸出的輸出電壓V12係提供給第一反向器202、第二反向器204以及電平轉換器206的供應電壓,因此可以得知第二電源節點P2的啟動順序應早於第一電源節點P1的啟動順序。
接下來,在積體電路之電路設計檔案中指定一啟動訊號(enable signal)來作為步驟108中的一特定節點,並且從該特定節點開始,依據所經過之至少一群組、該至少一群組所對應之至少一電源節點輸入以及該啟動順序來找出一目標路徑。例如一第一連接線207係連接第2圖中的電平轉換器206的一電平轉換器輸出以及用來致能(enable)帶差電路208的一啟動端,因此可指定電平轉換器206之該電平轉換器輸出為上述之該啟動訊號,而從該電平轉換器輸出開始往前以及往後尋找(即從第一連接線207開始往前以及往後尋找),可以由積體電路之電路設計檔案中得到該目標路徑(即從連結第一反向器202的一輸入端的一第一連接線201開始,經過第一反向器202、一第二連接線203、第二反向器204、一第三連接線205、電平轉換器206、第四連接線207、帶差電路208、一第五連接線209、
低壓降穩壓器210以及一第六連接線211)。如此一來,便可以依據該啟動順序以及該五個群組所對應之電源節點輸入來對該目標路徑進行死結偵測(步驟110)。較佳地,其可以依據該資源分配圖演算法來進行,以進一步加速該死結偵測的速度。
請注意,該資源分配圖演算法可參考Gagne,G.,Galvin,P.B.,& Silberschatz,A.(2011)的Operating System Concepts,第八版,第七章中所述之資源分配圖演算法,應注意的是,Operating System Concepts中所述之資源分配圖演算法僅是針對軟體(例如作業系統)中的死結進行偵測,然而本發明所揭露之實施例係基於Operating System Concepts中所述之資源分配圖演算法,並經由深入的研究與開發而將資源分配圖演算法轉用至對硬體中的死結進行偵測,換句話說,本發明提出能夠將Operating System Concepts中所述之資源分配圖演算法應用在積體電路之電路設計檔案中的迴路的死結偵測方法。請參考第3圖,第3圖為本發明死結偵測方法中依據該資源分配圖演算法來對該目標路徑進行死結偵測的步驟的一示範性實施例的流程圖。倘若大體上可達到相同的結果,並不需要一定遵照第3圖所示之流程中的步驟順序來進行,且第3圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中,此外,第3圖中的某些步驟亦可根據不同實施例或設計需求省略之。該方法主要會包含有以下步驟:步驟300:將該目標路徑上之至少一目標群組設定為至少一程序頂
點(process vertex);步驟302:將該目標路徑上之至少一接線設定為至少一資源頂點(resource vertex);步驟304:將該目標路徑上之該至少一目標群組之至少一輸入設定為至少一請求邊(request edge);步驟306:將該目標路徑上之該至少一目標群組之至少一輸出設定為至少一指派邊(assignment edge);步驟308:將該至少一程序頂點、該至少一資源頂點、該至少一請求邊以及該至少一指派邊來構成一資源分配圖;步驟310:依據該資源分配圖演算法以及該資源分配圖來對該目標路徑進行死結偵測。
接下來請一併參考第4圖,第4圖為對應第2圖所示之電路設計的資源分配圖400。如以上的步驟300所示,首先將第2圖中之該些目標群組(也就是第一反向器202、第二反向器204、電平轉換器206、帶差電路208以及低壓降穩壓器210)分別設定為第4圖中的一第一程序頂點402、一第二程序頂點404、一第三程序頂點406、一第四程序頂點408以及一第五程序頂點410。接下來,再依據步驟302來將第2圖中之該目標路徑上之接線(也就是第一連接線201、第二連接線203、第三連接線205、第四連接線207、第五連接線209以及第六連接線211分別設定為一第一資源頂點401、一第二資源頂點403、一第三資源頂點405、一第四資源頂點407、一第五資源頂點409以及一第六資源頂點411)。在得到上述之該些程
序頂點以及該些資源頂點之後,還需要依據第2圖之電源控制電路200之目標路徑上之該些目標群組之輸入來設定請求邊,舉例來說,第2圖中的第一反向器202之輸入端連接至第一連接線201,因此第4圖中的第一程序頂點402與第一資源頂點401之間的箭頭應該被設定為一第一請求邊,且該第一請求邊的方向係由第一程序頂點402指向第一資源頂點401。依此類推,第二程序頂點404與第二資源頂點403之間的箭頭應該被設定為一第二請求邊,且該第二請求邊的方向係由第二程序頂點404指向第二資源頂點403。第三程序頂點406與第三資源頂點405之間的箭頭應該被設定為一第三請求邊,且該第三請求邊的方向係由第三程序頂點406指向第三資源頂點405。第四程序頂點408與第四資源頂點407之間的箭頭應該被設定為一第四請求邊,且該第四請求邊的方向係由第四程序頂點408指向第四資源頂點407。第五程序頂點410與第五資源頂點409之間的箭頭應該被設定為一第五請求邊,且該第五請求邊的方向係由第五程序頂點410指向第五資源頂點409。
應注意的是,該資源分配演算法的請求觀念包括程序頂點對訊號(例如小訊號)的請求以及對電源的請求,也就是說,亦應包括低壓降穩壓器210經由第六連接線211輸出電源至第一反向器202、第二反向器204以及電平轉換器206,因此第4圖中的第一程序頂點402、第二程序頂點404以及第三程序頂點406與第六資源頂點411之間的箭頭應該分別被設定為一第六請求邊、一第七請求邊以及一第八請求邊,且該第六請求邊、該第七請求邊以及該第八請求
邊的方向係由第一程序頂點402、第二程序頂點404以及第三程序頂點406指向第六資源頂點411。
除此之外,還需要依據第2圖之電源控制電路200之目標路徑上之該些目標群組之輸出來設定指派邊,舉例來說,第2圖中的第一反向器202之一第一反向器輸出連接至第二連接線203,因此第4圖中的第一程序頂點402與第二資源頂點403之間的箭頭應該被設定為一第一指派邊,且該第一指派邊的方向係由第二資源頂點403指向第一程序頂點402。依此類推,第二程序頂點404與第三資源頂點405之間的箭頭應該被設定為一第二指派邊,且該第二指派邊的方向係由第三資源頂點405指向第二程序頂點404。第三程序頂點406與第四資源頂點407之間的箭頭應該被設定為一第三指派邊,且該第三指派邊的方向係由第四資源頂點407指向第三程序頂點406。第四程序頂點408與第五資源頂點409之間的箭頭應該被設定為一第四指派邊,且該第四指派邊的方向係由第五資源頂點409指向第四程序頂點408。
應注意的是,該資源分配圖演算法的指派觀念包括程序頂點對訊號的指派以及對電源的指派,也就是說,亦應包括低壓降穩壓器210經由第六連接線211輸出電源至第一反向器202、第二反向器204以及電平轉換器206,因此第4圖中的第五程序頂點410與第六資源頂點411之間的箭頭應該被設定為一第五指派邊,且該第五指派邊的方向係由第六資源頂點411指向第五程序頂點410。
經由以上段落的敘述,可根據第一程序頂點402、第二程序頂點404、第三程序頂點406、第四程序頂點408、第五程序頂點410、第一資源頂點401、第二資源頂點403、第三資源頂點405、第四資源頂點407、第五資源頂點409、第六資源頂點411、第一請求邊、第二請求邊、第三請求邊、第四請求邊、第五請求邊、第六請求邊、第七請求邊、第八請求邊、第一指派邊、第二指派邊、第三指派邊、第四指派邊以及第五指派邊來構成資源分配圖400,並且依據Operating System Concepts第七章中所述之資源分配圖演算法來對電源控制電路200中的目標路徑所構成的資源分配圖400進行死結偵測,即可偵測出電源控制電路200中是否存在有死結問題(即低壓降穩壓器210的啟動訊號源頭來自第一反向器202,然而第一反向器202的電源來自低壓降穩壓器210,此即為一死結)。
請參考第5圖,第5圖為本發明死結偵測方法的另一示範性實施例的示意圖。第5圖中的時脈控制電路500包含有一晶體振盪器502、一第一正反器(flip flop)504以及一第二正反器506。為了分析上的方便,可以將時脈控制電路500中複雜的基本元件單元依據第5圖中的三個功能元件來分類,換句話說,晶體振盪器502、第一正反器504以及第二正反器506之中各自的基本元件單元由於具有各自的關連性,因此會分別被歸屬在三個群組之中(步驟104)。接下來,依據上述步驟102中之該些電源節點輸入之間的該啟動順序來得到該三個群組所對應之三個電源節點輸入之間的一啟動順序,其
中該三個電源節點可以從屬於同一電源或不同電源。此外,指定一啟動訊號來作為步驟108中的一特定節點,例如一第四連接線507係連接第5圖中的第二正反器506之一第二正反器輸出以及用來致能晶體振盪器502的一啟動端,因此可指定第二正反器506之第二正反器輸出為上述之該啟動訊號,而從該第二正反器輸出開始往前以及往後尋找(即從第四連接線507開始往前以及往後尋找),可以由積體電路之電路設計檔案中得到該目標路徑(即從一第二連接線503開始,經過第一正反器504、一第三連接線505、第二正反器506、第四連接線507、晶體振盪器502以及第一連接線501)。如此一來,便可以依據該資源分配圖演算法、該啟動順序以及該五個群組相對應之電源節點輸入來對該目標路徑進行死結偵測(步驟110)。
請一併參考第6圖,第6圖為對應第5圖所示之電路設計的資源分配圖600。如以上的步驟300所示,首先將第5圖中之該些目標群組(也就是晶體振盪器502、第一正反器504以及第二正反器506)分別設定為第6圖中的一第一程序頂點602、一第二程序頂點604以及一第三程序頂點606。接下來,再依據步驟302來將第2圖中之目標路徑上之該些接線(也就是第一連接線501、第二連接線503、第三連接線505以及第四連接線507)分別設定為一第一資源頂點601、一第二資源頂點603、一第三資源頂點605以及一第四資源頂點607。在得到上述之該些程序頂點以及該些連接線之後,還需要依據第2圖之電源控制電路200之目標路徑上之該些目標群組之輸入來設定請求邊,舉例來說,第5圖中的晶體振盪器502之輸
入端連接至第四連接線507,因此第6圖中的第一程序頂點602與第四資源頂點607之間的箭頭應該被設定為一第一請求邊,且該第一請求邊的方向係由第一程序頂點602指向第四資源頂點607。依此類推,第二程序頂點604與第一資源頂點601之間的箭頭應該被設定為一第二請求邊,且該第二請求邊的方向係由第二程序頂點604指向第一資源頂點601。第三程序頂點606與第一資源頂點601之間的箭頭應該被設定為一第三請求邊,且該第三請求邊的方向係由第三程序頂點606指向第一資源頂點601。第二程序頂點604與第二資源頂點603之間的箭頭應該被設定為一第四請求邊,且該第四請求邊的方向係由第二程序頂點604指向第二資源頂點603。第三程序頂點606與第三資源頂點605之間的箭頭應該被設定為一第五請求邊,且該第五請求邊的方向係由第三程序頂點606指向第三資源頂點605。
除此之外,還需要依據第5圖之時脈控制電路500之目標路徑上之該些目標群組的輸出來設定指派邊,舉例來說,第5圖中的晶體振盪器502之一晶體振盪器輸出連接至第一連接線501,因此第6圖中的第一程序頂點602與第一資源頂點601之間的箭頭應該被設定為一第一指派邊,且該第一指派邊的方向係由第一資源頂點601指向第一程序頂點602。依此類推,第二程序頂點604與第三資源頂點605之間的箭頭應該被設定為一第二指派邊,且該第二指派邊的方向係由第三資源頂點605指向第二程序頂點604。第三程序頂點606與第四資源頂點607之間的箭頭應該被設定為一第三指派
邊,且該第三指派邊的方向係由第四資源頂點607指向第三程序頂點606。
經由以上段落的敘述,可根據第一程序頂點602、第二程序頂點604、第三程序頂點606、第一資源頂點601、第二資源頂點603、第三資源頂點605、第四資源頂點607、第一請求邊、第二請求邊、第三請求邊、第四請求邊、第五請求邊、第一指派邊、第二指派邊以及第三指派邊來構成資源分配圖600,並且依據Operating System Concepts第七章中所述之該資源分配圖演算法來對時脈控制電路500中該目標路徑所構成的資源分配圖600進行死結偵測,即可偵測出時脈源控制電路500中是否存在有死結問題(即晶體振盪器502的啟動訊號源頭來自第一正反器504,然而第一正反器504的時脈源來自晶體振盪器502,此即為一死結)。
請參閱第7圖,第7圖為本發明用以執行死結偵測之一電腦系統的一實施例的示意圖。電腦系統700包含有一處理器702以及一機器可讀媒體704,舉例來說,電腦系統700可以是一個人電腦,而機器可讀媒體704可以是個人電腦中任何具有資料儲存功能的儲存裝置,例如揮發性記憶體、非揮發性記憶體、硬碟、光碟等等。本實施例中,機器可讀媒體704中儲存一程式碼PROG,因此,當程式碼PROG被處理器702所載入並執行時,程式碼PROG會致使處理器702針對積體電路之電路設計檔案File_IN執行本發明所揭示的死結偵測方法(亦即第1圖所示的步驟100~110以及第3圖所
示之步驟300~310)。由於熟習技藝者於閱讀上述針對死結偵測方法的內容之後應可輕易瞭解處理器702執行程式碼PROG所進行的死結偵測操作,故進一步的說明並在此省略以求簡潔。
藉由本發明所揭露的示範性實施例可以將電源控制電路200以及時脈源控制電路500的電路設計分別轉換為資源分配圖400以及資源分配圖600,再利用Operating System Concepts第七章中所述之資源分配圖演算法來對資源分配圖400以及資源分配圖600進行靜態的死結偵測,便可以快速而且正確地檢驗電源控制電路200以及時脈源控制電路500中是否存在有死結的問題。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100~110‧‧‧步驟
200‧‧‧電源控制電路
201‧‧‧第一連接線
202‧‧‧第一反向器
203‧‧‧第二連接線
204‧‧‧第二反向器
205‧‧‧第三連接線
206‧‧‧電平轉換器
207‧‧‧第四連接線
208‧‧‧帶差電路
209‧‧‧第五連接線
210‧‧‧低壓降穩壓器
211‧‧‧第六連接線
300~310‧‧‧流程
400、600‧‧‧資源分配圖
401、601‧‧‧第一資源頂點
402、602‧‧‧第一程序頂點
403、603‧‧‧第二資源頂點
404、604‧‧‧第二程序頂點
405、605‧‧‧第三資源頂點
406、606‧‧‧第三程序頂點
407、607‧‧‧第四資源頂點
408‧‧‧第四程序頂點
409‧‧‧第五資源頂點
410‧‧‧第五程序頂點
411‧‧‧第六資源頂點
500‧‧‧時脈控制電路
501‧‧‧第一連接線
502‧‧‧晶體振盪器
503‧‧‧第二連接線
504‧‧‧第一正反器
505‧‧‧第三連接線
506‧‧‧第二正反器
507‧‧‧第四連接線
700‧‧‧電腦系統
702‧‧‧處理器
704‧‧‧機器可讀媒體
第1圖為本發明死結偵測方法的一示範性實施例的流程圖。
第2圖為採用本發明死結偵測方法的一示範性實施例的示意圖。
第3圖為本發明死結偵測方法中依據該資源分配圖演算法來對該目標路徑進行死結偵測的步驟的一示範性實施例的流程圖。
第4圖為對應第2圖所示之電路設計的資源分配圖。
第5圖為本發明死結偵測方法的另一示範性實施例的示意圖。
第6圖為對應第5圖所示之電路設計的資源分配圖。
第7圖為本發明用以執行死結偵測之一電腦系統的一實施例的示意圖。
100~110‧‧‧步驟
Claims (13)
- 一種死結偵測方法,包含有:找出一積體電路之一電路設計檔案的至少一電源節點輸入;找出該至少一電源節點輸入之間的一啟動順序;依據該啟動順序由一特定節點開始找出一目標路徑;以及依據該啟動順序以及該目標路徑來進行一死結偵測。
- 如申請專利範圍第1項所述之死結偵測方法,其中該死結偵測的步驟依據一資源分配圖演算法(resource allocation graph algorithm)來進行。
- 如申請專利範圍第2項所述之死結偵測方法,另包含有:將該電路設計檔案中的複數個元件劃分為至少一群組;以及找出該至少一群組相對應之至少一電源節點輸入。
- 如申請專利範圍第3項所述之死結偵測方法,其中將該電路設計檔案中的該複數個元件劃分為該至少一群組的步驟包含有:依據該複數個元件的功能相關性來將該電路設計檔案中的複數個元件劃分為同一群組。
- 如申請專利範圍第3項所述之死結偵測方法,其中該特定節點為一啟動訊號節點。
- 如申請專利範圍第3項所述之死結偵測方法,其中依據該啟動順序由由該特定節點開始找出該目標路徑的步驟包含有:由該特定節點開始,依據所經過之至少一群組、該至少一群組相對應之該至少一電源節點輸入以及該啟動順序來找出該目標路徑。
- 如申請專利範圍第3項所述之死結偵測方法,其中依據該資源分配圖演算法來進行該死結偵測的步驟包含有:將該目標路徑上之至少一目標群組設定為至少一程序頂點(process vertex);將該目標路徑上之至少一接線設定為至少一資源頂點(resource vertex);將該目標路徑上之該至少一目標群組之至少一輸入設定為至少一請求邊(request edge);將該目標路徑上之該至少一目標群組之至少一輸出設定為至少一指派邊(assignment edge);將該至少一程序頂點、該至少一資源頂點、該至少一請求邊以及該至少一指派邊來構成一資源分配圖;以及依據該資源分配圖演算法以及該資源分配圖來對該目標路徑進行死結偵測。
- 一種機器可讀媒體,儲存一程式碼,當該程式碼被一處理器所執行時,該程式碼會致使該處理器執行以下的步驟: 找出一積體電路之一電路設計檔案的至少一電源節點輸入;找出該至少一電源節點輸入之間的一啟動順序;依據一特定節點找出一目標路徑;以及依據該啟動順序以及該目標路徑來進行一死結偵測。
- 如申請專利範圍第8項所述之機器可讀媒體,其中該死結偵測的步驟依據一資源分配圖演算法來進行。
- 如申請專利範圍第9項所述之機器可讀媒體,其中該程式碼會致使該處理器另執行以下的步驟:將該電路設計檔案中的複數個元件劃分為至少一群組;以及找出該至少一群組相對應之至少一電源節點輸入。
- 如申請專利範圍第9項所述之機器可讀媒體,其中該特定節點為一啟動訊號節點。
- 如申請專利範圍第9項所述之機器可讀媒體,其中由該特定節點開始找出該目標路徑的步驟包含有:由該特定節點開始,依據所經過之至少一群組、該至少一群組相對應之該至少一電源節點輸入以及該啟動順序來找出該目標路徑。
- 如申請專利範圍第9項所述之機器可讀媒體,其中依據該資源 分配圖演算法來進行該死結偵測的步驟包含有:將該目標路徑上之至少一目標群組設定為至少一程序頂點;將該目標路徑上之至少一接線設定為至少一資源頂點;將該目標路徑上之該至少一目標群組之至少一輸入設定為至少一請求邊;將該目標路徑上之該至少一目標群組之至少一輸出設定為至少一指派邊;將該至少一程序頂點、該至少一資源頂點、該至少一請求邊以及該至少一指派邊來構成一資源分配圖;以及依據該資源分配圖演算法以及該資源分配圖來對該目標路徑進行死結偵測。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102102476A TWI509408B (zh) | 2013-01-23 | 2013-01-23 | 死結偵測方法以及機器可讀媒體 |
US14/051,459 US8726206B1 (en) | 2013-01-23 | 2013-10-11 | Deadlock detection method and related machine readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102102476A TWI509408B (zh) | 2013-01-23 | 2013-01-23 | 死結偵測方法以及機器可讀媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201430557A TW201430557A (zh) | 2014-08-01 |
TWI509408B true TWI509408B (zh) | 2015-11-21 |
Family
ID=50635809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102102476A TWI509408B (zh) | 2013-01-23 | 2013-01-23 | 死結偵測方法以及機器可讀媒體 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8726206B1 (zh) |
TW (1) | TWI509408B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2526052B (en) * | 2014-03-31 | 2016-04-13 | Imagination Tech Ltd | Deadlock detection using assertions |
TWI739556B (zh) * | 2020-08-19 | 2021-09-11 | 瑞昱半導體股份有限公司 | 時脈死結檢測系統、方法以及非暫態電腦可讀取媒體 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336204B1 (en) * | 1998-05-07 | 2002-01-01 | Applied Materials, Inc. | Method and apparatus for handling deadlocks in multiple chamber cluster tools |
US6580967B2 (en) * | 2001-06-26 | 2003-06-17 | Applied Materials, Inc. | Method for providing distributed material management and flow control in an integrated circuit factory |
US20030188278A1 (en) * | 2002-03-26 | 2003-10-02 | Carrie Susan Elizabeth | Method and apparatus for accelerating digital logic simulations |
TW200416603A (en) * | 2003-01-14 | 2004-09-01 | Ip First Llc | An apparatus for avoiding a deadlock condition in a microprocessor with a speculative branch target address cache |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6408262B1 (en) * | 1998-03-27 | 2002-06-18 | Iar Systems A/S | Method and an apparatus for analyzing a state based system model |
US7124405B1 (en) * | 2001-06-28 | 2006-10-17 | Microsoft Corporation | Class initialization method semantics |
CN101937365B (zh) * | 2009-06-30 | 2013-05-15 | 国际商业机器公司 | 并行程序的死锁检测方法和系统 |
JP2011028465A (ja) * | 2009-07-24 | 2011-02-10 | Renesas Electronics Corp | テストポイント挿入方法 |
CN102222016B (zh) * | 2010-04-16 | 2013-12-04 | 国际商业机器公司 | 程序死锁检测方法和系统 |
US8381148B1 (en) * | 2011-11-01 | 2013-02-19 | Jasper Design Automation | Formal verification of deadlock property |
-
2013
- 2013-01-23 TW TW102102476A patent/TWI509408B/zh active
- 2013-10-11 US US14/051,459 patent/US8726206B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336204B1 (en) * | 1998-05-07 | 2002-01-01 | Applied Materials, Inc. | Method and apparatus for handling deadlocks in multiple chamber cluster tools |
US6580967B2 (en) * | 2001-06-26 | 2003-06-17 | Applied Materials, Inc. | Method for providing distributed material management and flow control in an integrated circuit factory |
US20030188278A1 (en) * | 2002-03-26 | 2003-10-02 | Carrie Susan Elizabeth | Method and apparatus for accelerating digital logic simulations |
TW200416603A (en) * | 2003-01-14 | 2004-09-01 | Ip First Llc | An apparatus for avoiding a deadlock condition in a microprocessor with a speculative branch target address cache |
Also Published As
Publication number | Publication date |
---|---|
TW201430557A (zh) | 2014-08-01 |
US8726206B1 (en) | 2014-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
US10255403B1 (en) | Method and apparatus for concurrently extracting and validating timing models for different views in multi-mode multi-corner designs | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
US20210357314A1 (en) | Smart regression test selection for software development | |
US7882467B2 (en) | Test pattern evaluation method and test pattern evaluation device | |
TWI509408B (zh) | 死結偵測方法以及機器可讀媒體 | |
US8250504B2 (en) | Designing method of semiconductor integrated circuit | |
US8856708B1 (en) | Multi-tier field-programmable gate array hardware requirements assessment and verification for airborne electronic systems | |
TW201331775A (zh) | 用於硬體描述語言環境之全域時鐘處理常式物件 | |
US10747920B2 (en) | Semiconductor LSI design device and design method | |
US20150067629A1 (en) | Diagnosis and debug using truncated simulation | |
US10599802B2 (en) | Methods for automatic engineering change order (ECO) bug fixing in integrated circuit design | |
US20230005562A1 (en) | Scan chain compression for testing memory of a system on a chip | |
CN111383704A (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN115408967A (zh) | 通过结构分析标识安全相关端口与其安全机制的关联 | |
US8554522B2 (en) | Detection of design redundancy | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
CN114091393A (zh) | 一种执行工程变更指令的方法、装置、设备和存储介质 | |
CN111400994B (zh) | 网表形式验证方法、装置、计算机设备及存储介质 | |
CN103970917B (zh) | 死结检测方法以及机器可读媒体 | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
US10614181B2 (en) | Electronic design tools using non-synthesizable circuit elements | |
KR102613884B1 (ko) | Dvd 개선을 위한 q-게이팅 적용 장치 및 방법 | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 |