本文始於2009年,筆者以Ansoft Designer v4.1來比較各家DDR2 IBIS的差動訊號眼圖特性,並探討cross
point偏移現象。2011年重新以Designer v6.0撰寫本文,
更新部份內容,並附上範例檔供學習參考。
-
方法一
-- Elpida(爾必達)、Hynix(海力士)、Micron(美光)、Nanya(南亞)、Samsung(三星)
-
方法二
-- Elpida、Hynix
-
方法三 (good)
--
Micron、Elpida、Hynix
-
問題與討論
4.1
方法三與方法一、二有差別嗎??
4.2 Cross
point偏離VDD/2,是什麼原因? 有何改善方法?
4.3 為何input singal的Tr, Tf也會影響output signal的cross point?
4.4
實測各家的IBIS model,為何方法一、二與三的模擬結果不完全相同?
本文將延續AN
003的內容,進一步以模擬DDRII_800的DQS differential
pair為例,列舉幾家大廠的模擬結果,並就其中的cross point
level問題討論。方法一、二是在AN 003介紹過的,本
文將再介紹一種新的方法三。
先在Design/Nexxim中建一組ideal
differential clk,其cross point is VDD=0.9V,and
duty=50%
下載DDR2 IBIS
model:Elpida(爾必達)、Hynix(海力士)、Micron(美光)、Nanya(南亞)、Samsung(三星)
常見DQ、DQS使用同一套IBIS model
-
方法一:DP/DM用同一種IO IBIS
model,在輸入端灌理想的差動波形(相位差180度),觀察輸出波形是否為理想
1.1 Micron
DDRII_800 simulation result
1.1.1 If input
signal Tr=300ps, cross
point level is 1.26V, and it is too high
1.1.2 If input
signal Tr=10ps, cross
point level is 1.0V, and it is a little high
1.2 Elpida
DDRII_800 simulation result
1.2.1 If input
signal Tr=300ps, cross
point level is 1.28V, and it is too high
1.2.2 If input
signal Tr=10ps, cross
point level is 0.85V, and it is near 0.9V
1.3 Hynix
DDRII_800 simulation result
If input
signal Tr=10ps, cross point level is 0.78V, and it is a little low
1.4 Samsung
DDRII_800 simulation result
If input
signal Tr=10ps, cross
point level is 1.0V, and it is a little high
方法一的模擬結果,負載C=1pF時,Hynix的cross point偏低一些,Micron與Samsung的cross point偏高
一些
方法二:DP/DM用同一種IO IBIS model,但其中一個的Polarity
Type改成"Inverting",觀察輸出波形是否為理想
2.1 Elpida
DDRII_800 simulation result
2.2 Hynix
DDRII_800 simulation result
方法一、二的模擬結果完全相同
-
方法三:DP/DM直接用Differential IBIS model,觀察輸出波形是否為理想
3.1 Micron
DDRII_800 simulation result
與step 1.1.2比較,模擬結果在眼圖中間段差一些。
做這個例子時要特別注意,原Micron
IBIS是以NU_DQS#來表示A8 pin的signal name,而這"#"會導致Designer
v4.0~6.0發生錯誤,做完模擬關機存檔後,檔案將無法再度開啟。為了解此問題,站長手動把signal
name改成NU_DQSB
3.2 Elpida
DDRII_800 simulation result
與step 1.2.2比較,模擬結果有差,ripple較大,why? 詳見問題與討論
3.3 Hynix
DDRII_800 simulation result
與step 1.3比較,模擬結果有差,ripple較大,why? 詳見問題與討論
-
問題與討論
4.1
方法三與方法一、二有差別嗎??
筆者覺得理應一樣,原因是:
並
非所有的IBIS model都可以抓出differential mode
IO,必須在IBIS中有看到如下的differential宣告,才可以抓出differential IBIS model。
又查閱IBIS spec.
v4.2對[Diff Pin]的定義,它其實就是兩個pin用同一個IBIS model,但一個用non-inverting
type,一個用inverting type,也就是我們的方法二。
4.2
Cross
point偏離VDD/2,是什麼原因? 有何改善方法?
是IO
pad的上升/下降時間(推力)沒有設計的100%完全對稱造成。對此,JESD79-2E有定義一個OCD (Off-Chip Driver) calibration
4.3 為何input signnal的Tr, Tf也會影響output signal的cross point?
輸入訊號的Tr、Tf不同,通過IO
buffer的傳遞延遲時間與輸出訊號的Ton時間(duty)會不同。以Micron
IBIS來說,Tr=Tf=300ps時,輸出訊號的Ton時間,比Tr=Tf=10ps時的輸出訊號的Ton時間長。也就是說,Tr=Tf=300ps時,輸出訊號從high拉low的發生時間較晚。
但cross point偏離中間的真正原因其實不是Tr,
Tf,而是Designer的模擬引擎(Nexxim),如同HSPICE,在處理Digital IO
simulation的behavior時,是以0與1V作為low/high的判斷,所以output
buffer的輸入訊號如果high level電壓設成1V(而不是1.5V或1.8V),這樣輸出訊號的cross
point的level就不會隨著Tr, Tf大小而變。
從Designer v8開始,新的IO symbol內已經不需要對output buffer的輸入訊號電壓準位設定。
4.4 實測各家的IBIS model,為何方法一、二與三的模擬結果不完全相同?
在方法三Import
IBIS時,是從Designer的Import IBIS\Pin
Import引入model的,此時模擬會考慮各pin不同的寄生RLC效應。而方法一、二Import IBIS時,是從Designer的Import IBIS\Bbuffer
Import引入model的,此時模擬不考慮寄生的RLC效應。
下圖是以Micron的DDR2
IBIS為例,讀者可以試著把R_pin、L_pin、C_pin的值都改成0,就會發現方法一、二、三跑出的眼圖結果是一模一樣
的。
|