簡介
傳統上,人們常常將工作時鐘頻率作為高性能的積體電路的特性之一。為了測試電路在指定速率下運行的能力,人們需要在設計過程中測量電路在不同工作階段的延遲。此外,在不同的設計階段(例如邏輯綜合、布局、布線以及一些後續階段)需要對時間最佳化程式內部進行延遲計算(Delay calculation)。儘管可以通過嚴格的SPICE電路仿真來進行此類時間測量,但是這種方法在實用中耗費大量時間。靜態時序分析在電路時序快速、準確的測量中扮演了重要角色。靜態時序分析能夠更快速地完成任務,是因為它使用了簡化的模型,而且它有限地考慮了信號之間的邏輯互動。靜態時序分析在最近幾十年中,成為了相關設計領域中的主要技術方法。
靜態時序分析的最早描述之一是基於1966年的計畫評核術。它的一些更現代的版本和算法則出現於1980年代前期。
目的
在一個同步數字系統中,數據的流動應當以一致的步伐進行,即時間脈衝信號每改變一次,數據能夠改變一次。這種運作方式是通過同步的數字電路器件,例如觸發器或鎖存器來實現的,這類器件以時鐘信號為指示將其輸入端的數據複製到其輸出端。在同步電路中,只存在兩種時序錯誤:
•保持時間違例:時鐘信號有效變化之後,如果輸入信號沒能保持足夠長的時間,數據將不能在下一個時鐘信號變化時被記錄下來;
•建立時間違例:時鐘信號有效變化之前,如果輸入信號沒能保持足夠長的時間,數據將不能在那個時鐘信號變化時被記錄下來。
電路所需信號可能在不同的時間到來,其原因可能是輸入數據本身產生的時間不同,或是電路進行了不同的操作,器件溫度和偏置電壓不同,也可能是因為電路中不同部分的製造工藝不同。採用硬體描述語言進行設計時,使用不同語言結構,例如if或者case來表示看似相同的功能,邏輯綜合後硬體的時序很可能不同。靜態時序分析的主要目的是在上述可能的電路偏移情況存在的情況下,驗證所有信號能夠準時到達,並保證電路的正常功能。
靜態時序分析可以檢查電路中各條路徑諸如毛刺、延遲路徑和時鐘偏移等問題。
概念定義
•關鍵路徑被定義為從輸入端到達輸出端所經歷的最大延遲路徑。一旦電路時序通過下面所述的方法進行計算,關鍵路徑可以很容易地通過追溯的方法被找到。
•到達時間是指信號到達電路指定位置所需要經歷的時間。一般將時鐘信號的到達時間作為參考時間,或零時刻。為了計算到達時間,需要進行該路徑上所有組件的延遲計算。到達時間通常涉及一對數據,即信號改變後可能的最早到達時間以及最晚的到達時間。
•另一個有用的概念是需求時間,它是指信號能夠到達而不至於使整體電路違背時序的設計要求。
•與連線有關的鬆弛量是指所需時間與到達時間之間的差值。 節點處一個正的鬆弛量表示此處的到達時間可以再增加鬆弛量表示的時間,仍然不會影響電路的總體延遲情況。相反的,負的鬆弛量則表示路徑上的傳輸過慢,此路徑的傳輸速率必須提高,否則由它組成的整體電路不能夠以預期的速率運行。
最突出的靜態時序分析技術
靜態時序分析中的“靜態”一詞,暗示了這種時序分析是一種與輸入激勵無關的方式進行的,並且其目的是通過遍歷所有傳輸路徑,尋找所有輸入組合下電路的最壞延遲情況。這種方法的計算效率使得它有著廣泛的套用,儘管它也存在一些限制。一種被稱為PERT的方法在靜態時序分析中使用較為普遍。事實上,PERT這個稱呼是一種錯誤用法,在許多有關靜態時序分析的文獻中,所謂的PERT方法是指關鍵路徑法,它在許多項目管理中被套用。雖然基於關鍵路徑的方法在目前占據優勢,但是其他方法,例如深度優先搜尋方法,同樣被一些時序分析器所使用。
接口時序分析
在晶片設計中,許多常見的問題都與設計中不同組件接口的時序有關。這些問題的產生通常是由於許多因素,包括仿真模式不完善、驗證接口時序的測試情形考慮不全面、要求同步化、接口描述有誤以及設計者對於黑盒組件內部了解不夠等。有一些專用的計算機輔助設計工具被設計用來分析接口時序,正如另外一些專用工具被用來驗證接口的功能與設計是否相符。
統計靜態時序分析
統計靜態時序分析(Statistical Static timing analysis, SSTA)對於處理積體電路中複雜過程、環境變數正在變得越來越重要。