上篇文章我們用仿真實例向大家展示了DDR中地址相對于時鐘的建立時間與保持時間。那么數據信號相對于DQS又是什么樣的關系呢?我們知道,DDR和普通的SDRAM相比起來,讀取速率為普通SDRAM的兩倍,這個要怎么理解?原來SDRAM在寫入或者讀取數據的時候是靠上升沿或者下降沿來觸發的,請注意,這里僅僅是上升沿或者下降沿,并不是上升沿和下降沿同時有效。如果時鐘頻率是800MHz,那么對應的數據率就為800Mbps。但是DDR的數據信號卻是雙倍速率的,如果DQS頻率為800MHz,那么數據信號的速率就應該為1600Mbps。 下面通過具體的仿真實例來看一下。 圖1 DQ 與 DQS仿真示意 仿真通道如上圖所示,驅動端和接收端為某芯片公司的IBIS模型,仿真波形如下: 圖2 DQ與DQS仿真波形 我們將DQS和DQ信號同時生成眼圖,在一個窗口觀測,結果如下: 圖3 DQ 與 DQS眼圖 這里,作者本來是想仿真DDR在寫操作的時候DQS和DQ之間的時序對應關系。在之前的文章中,我們知道,在寫操作的時候,是以高低電平的中點為觸發點的,上面眼圖中的波形對應關系顯然不能完成數據的寫入,因為DQS的邊沿和數據信號翻轉的邊沿基本是對齊的。 在仿真的時候只是簡單的將兩波形放在了一起,因為DQ和DQS的傳輸通道長度是一樣的,所以他們的邊沿是對齊的。實際工作的時候,主控芯片會有一個調節機制。一般數據信號會比DQS提前四分之一周期被釋放出來,實際上,在顆粒端接收到的波形對應關系應該是這樣的: 圖4 平移后的眼圖 通過主控芯片的調節之后,DQS的邊沿就和DQ信號位的中心對齊了,這樣就能保證數據在傳輸到接收端有足夠的建立時間與保持時間,就算DQS與DQ之間的線長匹配的不是那么嚴格,也會有一些時序裕量。 說了這么多,其實我們要解決的根本問題還是長度匹配的范圍問題。在理解了這些基礎問題之后,我們需要做的就是將這些時間參數轉化為延時。線長匹配范圍怎么計算?下面通過具體實例來看看時序裕量是怎么計算的。先簡單的來看一張圖 圖5 延時偏差對時序的影響 上圖中,T_vb與T_va表示的是主控芯片在輸出數據時時鐘與數據之間的時序參數。在理想情況下,時鐘邊沿和數據電平的中心是對齊的,由于時鐘和數據傳輸通道不等長,使得時鐘邊沿沒有和數據脈沖的中間位置對其,使得建立時間的裕量變小。 下面我們通過具體實例來看看時序的計算,下圖是Freescale MPC8572 DDR主控芯片手冊,這張圖片定義了從芯片出來的時候,DQS與DQ之間的相位關系。 圖6 MPC8572時序圖 圖7 MPC8572時序參數 顆粒端為美光DDR,該芯片的時序圖以及時序參數如下圖所示,這張圖片則定義了顆粒端芯片識別信號所需要的建立時間與保持時間。 圖8 DDR顆粒時序圖以及時序參數 我們用T_pcbskew來表示DQ與DQS之間的延時偏差,如果想要得到足夠的時序裕量,則延時偏差要滿足以下關系: T_pcbskew T_pcbskew>T_hold-T_va 代入數據,有: T_vb-T_setup=375-215=160ps T_hold-T_va=-160ps 這樣,如果傳輸線的速度按照6mil/ps來計算,T_pcbskew為+/-960mil。大家會發現裕量很大,當然這只是最理想情況,沒有考慮時鐘抖動以及數據信號的抖動,以及串擾、碼間干擾帶來的影響,如果把這些因素都考慮進來,留給我們布線偏差的裕量就比較小了。 |