前一段時間隻是以2410和6410時序圖簡單歸納了一下,現在将時序基礎概念和詳細計算過程徹底理一遍。
傳播延遲
信号從緩沖器出來之後,就要經過傳輸線到接收終端,信号在傳輸線上的傳輸的延時我們稱為傳播延遲(propagation delay),屬于器件外部的延遲,它隻和信号的傳播速度和線長有關。
最大/最小飛行時間
飛行時間(Flight Time)參數,包括最大飛行時間(Max Flight Time)和最小飛行時間(Min Flight Time)。飛行時間包含了傳播延遲和信号上升沿變化這兩部分因素。在較輕的負載(如單負載)情況下,驅動端的上升沿幾乎和接收端的信号的上升沿平行(如上圖),是以這時候平均飛行時間和傳播延遲時間大體相等;但如果在重負載(如多負載)的情況下,接收信号的上升沿明顯變緩,這時候平均飛行時間就會遠遠大于信号的傳播延遲。這裡說的平均飛行時間是指Buffer波形的Vms到接收端波形Vms之間的延時,這個參數隻能用于時序的估算,準确的時序分析一定要通過仿真測量最大/最小飛行時間來計算。上面隻是對信号上升沿的分析,對于下降沿來說,同樣存在着最大/最小飛行時間的參數,如下圖。在時序計算時我們實際取的最大飛行時間是在上升沿和下降沿中取最長的那個飛行時間,而最小飛行時間則是取上升和下降沿中最短的那個飛行時間。也有些時候,人們對信号的最大/最小飛行時間還有其它稱謂,比如在Cadence軟體中,就将最大飛行時間稱為最終穩定延時(Final Settle Delay),而将最小飛行時間稱為最早開關延時(First Switch Delay)。
如下進行詳細計算:
CPU範例
假設MCU的時鐘頻率為66MHz,時鐘周期為15.15ns,其SDRAM的接口參數見下表:

說明:MCU 在讀SDRAM資料時,對輸入資料的最小保持時間要求為3ns;對輸入資料的最小setup時間 Tsetup_MCUin_min=Tclk-Taccess_time_max=15.15ns-10ns=5.15ns。MCU在對SDRAM寫資料時,MCU的資料輸出的Tsetup_MCUout =3ns,Thold_MCUout =7.5ns
SDRAM(例)
說明:以133MHz為例,在對SDRAM讀資料時,SDRAM的資料輸出内部延遲時間
Tco_data_SDRAMout= Tacs_SDRAMout= Tclk-Tsetup_SDRAMout,其最大值為6ns(也即SDRAM的資料輸出的setup時間最小為15.15-6=9.15ns),其最小值由data-out hold time_min(2ns)決定。在對SDRAM寫資料時,SDRAM對輸入的資料的最小保持時間Thold_SDRAMin=0.8ns,最小建立時間Tsetup_SDRAMin =1.5ns。
SDRAM的讀時序
時序說明
MCU_CLK輸出 一 SDRAM_CLK輸入 一 經過 Tacs _ sdram之後資料送到SDRAM資料口一 資料傳到MCU資料口一 SDRAM的後續時鐘源資料保留Toh_sdram一 同時MCU側進行資料采樣。
由于SDRAM在輸出資料時,其選取時鐘來自于MCU,是以屬于變型的共同時鐘系統的通訊結構。
時序限制公式
由于MCU内部包含clock buffer,此時可忽略Tflt clka,也暫不考jitter,則時序限制公式簡化為:
Tsetup_marin_SDRAM_read = Tcycle- Tflt_clkb- Tflt_data- Tco_data – Tsetup
= Tclk- Tclk_delay – Tdata_delay – Tco_data – Tsetup
= Tsetup_SDRAMout_max - Tclk_delay – Tdata_delay – Tsetup
Thold_ margin_SDRAM_read = Tco_data + Tdata_delay + Tclk_delay – Thold
= Thold_SDRAMout_min + Tdata_delay + Tclk_delay – Thold
(備注:Tdata_delay 和Tclk_delay均為走線延遲時間,并忽略和Flight的差異)
讀時序的限制條件
計算時間裕量:
Tsetup_margin_SDRAM_read = Tsetup_SDRAMout_max - Tclk_delay – Tdata_delay – Tsetup
= 9.15ns - Tclk_delay – Tdata_delay-5.15ns
= 4ns - Tclk_delay – Tdata_delay > 0ns
即Tdata_delay + Tclk_delay < 4ns
(備注:因為SDRAM輸出的setup時間較長,相對于MCU的讀要求,有4ns的裕量,是以,資料線和時鐘線 的延遲之和,不能超過這個裕量。)
Thold_ margin_SDRAM_read = Thold_SDRAMout_min + Tdata_delay + Tclk_delay – Thold_MCUin_min
= 2ns + Tdata_delay + Tclk_delay – 3ns > 0ns
即Tdata_delay + Tclk_delay > 1ns
(備注:如果SDRAM輸出的hold時間大于MCU的hold要求,則上述限制條件自動滿足;但SDRAM器件輸出的hold時間趨于縮短,是以,需要通過走線延遲的方式來“縮短”setup時間,進而補償和加長在MCU接收端的資料hold時間。)
SDRAM的寫時序
時序說明
由于MCU在發送資料的同時,也負責發送資料選通時鐘,是以屬于源同步系統。
時序限制公式
Tsetup_margin_SDRAM_write= Tclk_delay + Tsetup_MCUout - Tdata_delay – Tsetup_SDRAMin
= Tclk_delay + 3ns- Tdata_delay –1.5ns
即Tclk_delay - Tdata_delay>-1.5ns
Thold_margin_SDRAM_write = Tdata_delay + Thold_MCUout –Tclk_delay– Thold_SDRAMin
= Tdata_delay +7.5ns –Tclk_delay–0.8ns
即Tclk_delay - Tdata_delay<6.7ns
限制條件總結
讀時序的限制條件
1ns < Tdata_delay + Tclk_delay < 4ns
考慮SDRAM各品牌的差異性,進一步加嚴限制,以提高設計的相容性:
即 1.5ns < Tdata_delay + Tclk_delay < 3ns
寫時序的限制條件
-1.5ns <Tclk_delay - Tdata_delay <6.7ns
實際布線時,時鐘線通常比資料線、位址線等線路的長度要長些或等長,是以
0ns <Tclk_delay - Tdata_delay<6.7ns
綜合的限制條件
0ns <Tclk_delay - Tdata_delay<3ns
1.5ns < Tdata_delay + Tclk_delay < 3ns (讀資料的限制條件,相對較困難實作)
按表面微帶線150ps/in的計算,則資料線(時鐘線)的長度不應超過10in 即250mm。
按内層帶狀線180ps/in的計算,則資料線(時鐘線)的長度不應超過8.3in 即210mm。
DDR的時序限制條件
說明(以DDR266為例)
Tclk=7.5ns,Tch = Tcl=0.45*Tclk=3.38ns
Tsetup_DDRin_min = 0.5ns
Thold_DDRin_min = 0.5ns
Tdv_SDRAMout= Tsetup_DDRout + Thold_DDRout
=tQH-tDQSQ=tHP – tQHS – tDQSQ=0.45*Tch-0.75ns-0.5ns=2.12ns
DDR的寫限制條件
上圖為某ARM11核心的MCU 的寫DDR時序和參數(133MHz)分析,典型的源同步時序系統,在時鐘的上下沿讀取資料。
時序限制公式
同SDRAM
Tsetup_margin_DDR_write= Tclk_delay + Tsetup_MCUout - Tdata_delay – Tsetup_SDRAMin
= Tclk_delay + 0.95ns- Tdata_delay –0.5ns
即Tclk_delay - Tdata_delay>-0.45ns
Thold_margin_DDR_write = Tdata_delay + Thold_MCUout –Tclk_delay– Thold_SDRAMin
= Tdata_delay +0.95ns –Tclk_delay–0.5ns
即Tclk_delay - Tdata_delay<0.45ns
DDR的讀限制條件
上圖為某ARM11核心的MCU 的讀DDR時序和參數(133MHz)
由于是在DQS的高(低)電平中間讀取資料,是以需要按資料視窗的概念來修改限制條件:
DDR 的理想資料視窗周期為0.45*Tclk=0.45*7.5ns=3.38ns(按最小值計算)
DDR輸出的實際資料視窗為Tdv_SDRAMout=2.12ns
DDR輸出資料和DQS的SKEW時間為0.5ns
則Tdata_delay-Tclk_delay<tDQSQ_MCU – tDQSQ_DDR=0.85ns-0.5ns=0.35ns
及 0.5ns+2.12ns +(Tdata_delay-Tclk_delay) >tQH_MCU=2.3ns
(Tdata_delay-Tclk_delay)>-0.32ns
-0.32ns<Tdata_delay-Tclk_delay<0.35ns
DDR限制條件總結
讀時序限制
-0.32ns<Tdata_delay -Tclk_delay<0.35ns
寫時序限制
-0.45ns<Tdata_delay -Tclk_delay<0.45ns
綜合限制條件
-0.32ns<Tdata_delay-Tclk_delay<0.35ns
即資料線和DQS線的傳輸延遲SKEW要嚴格控制在+/-0.3ns以内,此要求比SDRAM嚴格得多。
按表面微帶線150ps/in的計算,則資料線和DQS線的長度偏差不應超過2in 即50mm。
按内層帶狀線180ps/in的計算,則資料線(時鐘線)的長度不應超過1.6in 即40mm。
由于這個時間很短,信号的上升沿(下降沿)時間的影響不能忽略,也即度量延遲SKEW時,需要以信号的飛行時間(Flight)來取代delay時間,是以上述的長度偏差隻是做參考,實際走線時要盡可能做到等長。
DDR對資料線的長度未做要求。