時脈擴展對使用賽靈思Vivado設計套件的工程師來說,是一個很大的挑戰,但不是一個不可逾越的障礙。
隨著越來越多的賽靈思用戶開始使用Vivado®設計套件,部分使用者對未擴展時脈感到困惑。什麼是未擴展時脈呢?它們是如何進行關聯及計時的?應對未擴展時脈的標準方法又是什麼呢?以下將詳細探討這些問題,並針對讓設計人員可確保使用正確的同步技術,在未擴展時脈之間安全地通過時脈域交叉(Clock Domain Crossing; CDC)的方法。
隨著Vivado工具的推出,賽靈思現可以業界標準Synopsys Design Constraints(SDC)格式支援時序限制。這是ISE設計套件工具在處理時序方式上的重大轉變。Vivado套件最根本的區別在於所有時脈在預設條件下都彼此關聯。因此,在ISE中處於無限制狀態的時序路徑,在Vivado設計套件中則會處於受限制狀態。當兩個時脈之間不存在週期性關係時,此種限制會造成非常嚴格的時序需求。
未擴展時脈是指在1,000個時脈週期內與另一個時脈之間不存在週期性關係的時脈。Vivado BFT 內核設計範例,便是體現未擴展時脈工作方式的良好方法。
啟動和擷取
時序路徑從啟動事件 (Launching Event)開始,並由擷取事件 (Capture Event)結束。啟動事件發生在同步單元的時脈,從停工狀態轉變成工作狀態的時候。擷取事件發生在下游的或者負責擷取同步單元的時脈,從非工作狀態轉入工作狀態的時候。從啟動事件到擷取事件之間所需的時間稱為「路徑要求」,其代表從啟動事件後到擷取單元引腳處,出現有效資料所需的時間。
當啟動時脈和擷取時脈位於同一物理時脈連線中,路徑要求便是指時脈週期。以250MHz時脈為例,假設啟動單元和擷取單元的作用邊緣相同(正緣對正緣或負緣對負緣),那麼啟動事件和擷取事件之間的時脈週期則恰好為4納秒。如果啟動單元和擷取單元的作用邊緣不同,時脈週期就必須按時脈頻率的一半進行時間計算。舉個例子便是一個250MHz的時脈,當其時脈轉換為正緣對負緣或負緣對正緣時,所需時脈週期則為 2納秒。