解析高速PCB設計中的時序分析及仿真策略
TCLKA_DELAY=TCO_CLKA+Tflt_CLKA
本文引用地址:http://www.j9360.com/article/256058.htm而數據延時:
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA_SWITCH_DELAY
若要滿足數據的保持時間,則必須有:
TDATA_DELAY_MIN-TCLKA_DELAY_MAX-Thold-Tmargin>0
展開、整理并考慮時鐘抖動Tjitter等因素,可得如下關系:
(TCO_CLKB_MIN-TCO_CLKA_MAX)+(Tflt_CLKB_MIN-Tflt_CLKA_MAX)+TCO_DATA_MIN+Tflt_DATA_SWITCH_DELAY_MIN-Thold-Tmargin-Tjitter>02
式(2)中,第一個括號內仍然是時鐘芯片CLOCK BUFFER輸出時鐘之間的最大相位差;第二個括號內繼續可以理解為時鐘芯片輸出的兩個時鐘CLKA、CLKB分別到達RECEIVER和DRIVER的最大延時差;要滿足數據的保持時間,實際可調整的部分也只有兩項,即Tflt_CLKB_MIN-Tflt_CLKA_MAX和Tflt_DATA_SWITCH_DELAY_MIN。單從滿足保持時間的角度而言,Tflt_CLKB_MIN和Tflt_DATA_SWITCH_DELAY_MIN應盡可能大,而Tflt_CLKA_MAX則要盡可能小。也就是說,若欲滿足保持時間,就要使接收時鐘早點來,而數據則要晚點無效(invalid)。
為了正確無誤地接收數據,必須綜合考慮數據的建立時間和保持時間,即同時滿足(1)式和(2)式。分析這兩個不等式可以看出,調整的途徑只有三個:發送時鐘延時、接收時鐘延時和數據的延時。調整方案可這樣進行:首先假定發送時鐘延時嚴格等于接收時鐘延時,即Tflt_CLKA_MIN-Tflt_CLKB_MAX =0和Tflt_CLKB_MIN-Tflt_CLKA_MAX =0(后文將對這兩個等式的假設產生的時序偏差進行考慮),然后通過仿真可以得出數據的延時范圍,如果數據延時無解則返回上述兩個等式,調整發送時鐘延時或接收時鐘延時。下面是寬帶網交換機中GLINK總線公共時鐘同步數據收發的例子:首先假定發送時鐘延時嚴格等于接收時鐘延時,然后確定數據的延時范圍,代入各參數,(1)和(2)式分別變為:
1.5-Tflt_DATA_SETTLE_DELAY_MAX-Tmargin>0
0.5+Tflt_DATA_SWITCH_DELAY_MIN-Tmargin>0
在不等式提示下,結合PCB布局實際,確定Tflt_DATA_SETTLE_DELAY_MAX<1.1;Tflt_DATA_SWITCH_DELAY_MIN >-0.1,剩下0.4ns的余量分配給了兩個時鐘的時差和Tmargin。在SPECCTRAQUEST中提取拓撲并進行信號完整性仿真,進而確定各段線長及拓撲結構。對此結構(共12種組合)進行全掃描仿真,得到Tflt_DATA_SETTLE_DELAY_MAX=1.0825 Tflt_DATA_SWITCH_DELAY_MIN =-0.0835004,符合確定的1.1和
-0.1的范圍指標。由此可以得出GLINK總線數據線的約束規則:①匹配電阻到發送端的延時不應大于0.1ns;
?、跀祿€必須以0.1ns進行匹配,即每個數據線都必須在0.65ns~0.75ns之間。有了上述的約束規則就可以指導布線了。
下面再考慮硬性規定Tflt_CLKA_MIN-Tflt_CLKB_MAX=0和Tflt_CLKB_MIN-Tflt_CLKA_MAX=0帶來的影響。事先約束發送時鐘和接收時鐘完全等長(在實際操作中以0.02ns進行匹配)在CADENCE環境下,進行時鐘仿真,得到結果:|Tflt_CLKA_MIN-Tflt_CLKB_MAX|<0.2和|Tflt_CLKB_MIN-Tflt_CLKA_MAX|<0.2??梢娏艚oTmargin的余量為0.2ns。
最終的仿真結果是:① 匹配電阻到發送端的延時不應大于0.1ns;②數據線以0.1ns進行匹配,即每個數據線都必須在0.65ns~0.75ns之間;③發送時鐘和接收時鐘以0.02ns匹配等長;④Tmargin=0.2ns。有了上述拓撲結構樣板和約束規則就可以將SPECCTRAQUEST或ALLEGRO導入到CONSTRAINS MANAGER中。當這些設計約束規則設置好后,就可以利用自動布線器進行規則驅動自動布線或人工調線。
圖3 仿真波形
2 源同步時序關系及仿真實例
所謂源同步就是指時鐘選通信號CLK由驅動芯片伴隨發送數據一起發送,它并不象公共時鐘同步那樣采用獨立的時鐘源。在源同步數據收發中,數據首先發向接收端,經稍短時間選通時鐘再發向接收端用于采樣鎖存這批數據。其示意圖如圖2所示。源同步的時序分析較公共時鐘同步較為簡單,分析方法很類似,下面直接給出分析公式:
建立時間:Tvb_min+(Tflt_clk_min-Tflt_data_settle_delay_max)-Tsetup-Tmargin>0
保持時間:Tva_min+(Tflt_data_switch_delay min-Tflt_clk _max)-Thold-Tmargin>0
其中,Tvb為驅動端的建立時間,表示驅動端數據在時鐘有效前多少時間有效;Tva為發送端的保持時間,表示驅動端數據在時鐘有效后保持有效的時間;其他參量含義同前。下面以通信電路中很常見的TBI接口為例介紹源同步時序分析及仿真過程。TBI接口主要包括發送時鐘和10bit的發送數據、兩個接收時鐘和10bit接收數據。RBC0、RBC1為兩個接收時鐘,在千兆以太網中,這兩個時鐘頻率為62.5MHz,相差為180°,兩個時鐘的上升沿輪流用于鎖存數據。根據數據手冊的時序參數,代入上式可得:
2.5+Tflt_clk _min-Tflt_data__settle_delay_max -1-Tmargin>0
1.5+Tflt_data__switch_delay min-Tflt_clk _max -0.5-Tmargin>0
仿照前述分析方法:假設時鐘、數據信號線的飛行時間嚴格相等,即時鐘和數據完全匹配,然后分析它們不匹配帶來的影響。上式變為
1.5-Tmargin>0
1-Tmargin>0
可見,無論是建立時間還是保持時間都有很大的余量。經過仿真,發現數據和時鐘完全匹配等長(以0.02ns匹配為例),仍有0.3ns的差別,即,
Tflt_clk_min-Tflt_data_settle_delay_max <0.3
?。烼flt_data_switch_delay min-Tflt_clk_max <0.3
取Tmargin=0.5ns得到時鐘和數據的匹配為0.2ns,即數據和時鐘的長度匹配不應超過0.2ns。
在實際仿真中首先就時鐘和數據的信號完整性進行分析仿真,通過適當的端接匹配得到較好的接收波形。圖3是一組無源端匹配和有源端匹配時鐘線的不同仿真波形比較,從中可以看出首先進行信號完整性仿真的必要性。
在公共時鐘同步中,數據的發送和接收必須在一個時鐘周期內完成。同時器件的延時和PCB走線的延遲也限制了公共時鐘總線的最高理論工作頻率。故公共時鐘同步一般用于低于200MHz~300MHz的傳輸速率,高于這個速率的傳輸,一般應引入源同步技術。源同步技術工作在相對的時鐘系統下,采用數據和時鐘并行傳輸,傳輸速率主要由數據和時鐘信號間的時差決定,這樣可以使系統達到更高的傳輸速率。筆者通過對寬帶以太網交換機主機和子卡板進行信號完整性分析、時序分析及其仿真,大大縮短了產品的設計周期,通過分析仿真有效地解決了高速設計中出現的信號完整性、時序等方面的問題,充分保證了設計的質量和設計速度,真正做到了PCB板的一次通過。主板和子卡板目前已經通過調試,并順利轉產。
路由器相關文章:路由器工作原理
路由器相關文章:路由器工作原理
交換機相關文章:交換機工作原理
晶振相關文章:晶振原理
評論