之前做的一個超寬帶非均勻采樣系統(tǒng)中遇到的一些問題,雖然本文所述方法并未實際用到并解決遇到的問題,但也是給了很大的啟發(fā)和參考,所以今天專門整理出來作為備忘。
在高速信號處理時的時許約束不僅僅包括片內(nèi)時序約束,要想實現(xiàn)高速信號的有效傳輸就必須進(jìn)行片外靜態(tài)時序分析。本文作為在高速信號處理時信號輸入輸出的理論參考,之所以說作為理論參考是因為由于高速信號處理,具體的一些參數(shù)無法實際計算出來,只能在理論參考的方向進(jìn)行不斷嘗試。
對于建立時間和保持時間本文就不再過多敘述,可參考【FPGA】幾種時序問題的常見解決方法-------3,可以說在數(shù)字高速信號處理中最基本的概念就是建立時間和保持時間,而我們要做的就是解決亞穩(wěn)態(tài)問題和傳輸穩(wěn)定問題。
下面就IO口時序約束分析進(jìn)行原理性的討論,首先在分析時要考慮的時序范圍是信號的兩端(FPGA和另一端器件)、信號傳輸路徑,三部分,這三部分中信號傳輸路徑可以包括邏輯器件或者單純外部信號線路。先將FPGA的建立時間和保持時間按照觸發(fā)器的定義方式進(jìn)行一下定義:
如上圖所示:
?。?) Tdin為從FPGA的IO口到FPGA內(nèi)部寄存器輸入端的延時;
?。?) Tclk為從FPGA的IO口到FPGA內(nèi)部寄存器時鐘端的延時;
?。?) Tus/Th為FPGA內(nèi)部寄存器的建立時間和保持時間;
?。?) Tco為FPGA內(nèi)部寄存器傳輸時間;
?。?) Tout為從FPGA寄存器輸出到IO口輸出的延時;
FPGA的建立時間和保持時間可定義為:
?。?) FPGA建立時間:FTsu = Tdin + Tsu – Tclk;
?。?) FPGA保持時間:FTh = Th + Tclk - Tdin;
?。?) FPGA數(shù)據(jù)傳輸時間:FTco = Tclk + Tco + Tout;
-----------------------------------------------進(jìn)行輸入的最大延遲和最小延遲-----------------------------------------------
有了上述的重新定義的參數(shù),就可以將FPGA和器件之間的時序分析按照內(nèi)部分析的模式來進(jìn)行分析了,對FPGA的IO口進(jìn)行輸入最大最小延時約束是為了讓FPGA設(shè)計工具能夠盡可能的優(yōu)化從輸入端口到第一級寄存器之間的路徑延遲,使其能夠保證系統(tǒng)時鐘可靠的采到從外部芯片到FPGA的信號。
輸入延時即為從外部器件發(fā)出數(shù)據(jù)到FPGA輸入端口的延時時間。其中包括時鐘源到FPGA延時和到外部器件延時之差、經(jīng)過外部器件的數(shù)據(jù)發(fā)送Tco,再加上PCB板上的走線延時。如圖1.4所示,為外部器件和FPGA接口時序。
1,最大輸入延時
最大輸入延時(input delay max)為當(dāng)從數(shù)據(jù)發(fā)送時鐘沿(lanuch edge)經(jīng)過最大外部器件時鐘偏斜(Tclk1),最大的器件數(shù)據(jù)輸出延時(Tco),再加上最大的PCB走線延時(Tpcb),減去最小的FPGA時鐘偏移(FTsu)的情況下還能保證時序滿足的延時。這樣才能保證FPGA的建立時間,準(zhǔn)確采集到本次數(shù)據(jù)值,即為setup slack必須為正,計算公式如下式所示:
Setup slack =(Tclk + Tclk2(min))–(Tclk1(max) +Tco(max) +Tpcb(max) +FTsu)≥0
推出如下公式:
Tclk1(max) + Tco(max) + Tpcb(max) –Tclk2(min) ≤ Tclk - FTsu
PS:上式中max和min是為了保證傳輸質(zhì)量所必需的條件,如果不加max和min就會有可能導(dǎo)致系統(tǒng)有些情況不滿足上式,從而導(dǎo)致信號傳輸產(chǎn)生錯誤。Tclk為同步時鐘的周期。
可以得出最大輸入時延表達(dá)式為上述不等式的左半部分而其最大值為上述不等式的右半部份,即:
最大輸入延時(input delay max) =Tclk - FTsu
歸根結(jié)底就是輸入信號的各部分時延必須滿足Tclk1(max) + Tco(max) + Tpcb(max) –Tclk2(min) ≤ Tclk - FTsu這個公式。但是式中Tco(max)可以通過對片外器件延時實現(xiàn)手動調(diào)節(jié),Tclk2(min)也可以通過時許約束(offset)或者FPGA內(nèi)部DCM實現(xiàn)相移等操作。最大最小輸入延時指的是數(shù)據(jù)的最大輸入延時,可通過始終約束其最大輸入延時來保證時序正確。
2,最小輸入延時
最小輸入延時(input delay min)為當(dāng)從數(shù)據(jù)發(fā)送時鐘沿(lanuch edge)經(jīng)過最小外部器件時鐘偏斜(Tclk1),最小器件數(shù)據(jù)輸出延時(Tco),再加上最小PCB走線延時(Tpcb),此時的時間總延時值一定要大于FPGA的最大時鐘延時和建立時間之和,這樣才能不破壞FPGA上一次數(shù)據(jù)的保持時間,即為hold slack必須為正,計算公式如下式所示:
Hold slack = (Tclk1(min) + Tco(min) + Tpcb(min))–(FTh + Tclk2(max))≥ 0
推出如下公式:
Tclk1(min) + Tco(min) + Tpcb(min) – Tclk2(max) ≥ FTh
可以得出最大輸入時延表達(dá)式為上述不等式的左半部分而其最大值為上述不等式的右半部份,即:
最小輸入延時(input delay min) = FTh
歸根結(jié)底就是輸入信號的各部分時延必須滿足Tclk1(min) + Tco(min) + Tpcb(min) – Tclk2(max) ≥ FTh這個公式。但是式中Tco(max)可以通過對片外器件延時實現(xiàn)手動調(diào)節(jié),Tclk2(min)也可以通過時許約束(offset)或者FPGA內(nèi)部DCM實現(xiàn)相移等操作。外部器件輸出數(shù)據(jù)通過PCB板到達(dá)FPGA端口的最大值和最小值Tpcb,PCB延時經(jīng)驗值為600mil/ns,1mm = 39.37mil。
本文所述為高速信號處理時,片間信號傳輸?shù)撵o態(tài)時許分析,中間的很多參數(shù)需要查看數(shù)據(jù)手冊,另外對于FPGA輸出的靜態(tài)時許分析大家可以參考FPGA輸入的靜態(tài)時序分析進(jìn)行對照分析,在此就不再贅述。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<