DDR4信號測試主要分為以下幾種情況: 1.以手機為代表的多階表貼內(nèi)存顆粒,由于主芯片與內(nèi)存顆粒幾乎是挨著擺放,信號不是通孔,沒有測試點,要測試必須使用interposer;
2.以電視為代表的單面表貼顆粒,這種有條件也可以上interposer,沒條件就直接刮開過孔、刮開走線綠油測試是一樣的。像下面一樣,TOP層4mil間距DQS差分焊線,不知道有多少人能做到
3.以PC為代表的UDIMM條,這是最簡單的。單面貼的內(nèi)存條背面都有信號過孔,在過孔處找點測試即可;
4.以Server為代表的服務(wù)器RDIMM,包括筆記本的SODIMM,通常都是雙面貼顆粒的,也需要用到interposer;
當(dāng)然還有一種辦法,吹掉RDIMM背面的一個顆粒,修改SPD信息,將雙面內(nèi)存修改為單面內(nèi)存,雖然內(nèi)存容量降低一半,對于信號測試而言沒有什么影響,最重要的是這樣就有測試點了,對于主板長走線而言,少一個顆粒的這點分叉影響是微乎其微的,就算上interposer一樣也有分叉。親測有效! 波形讀寫分離的方法:
通過單次觸發(fā)得到一個讀或者寫的波形,讀的波形是DQS和DQ的相位是基本相同的。寫的波形是DQS和DQ的相位基本上是90度。
觸發(fā)到單個波形之后,通過以下兩種方法來看疊加的波形:
1.通過觸發(fā)到的波形,利用圖形觸發(fā)(Visual Trigger)選定大體的邏輯區(qū)域(in或者out),Kesight示波器是InfiniiScan;
2.通過看讀和寫的單波形,會發(fā)現(xiàn),讀和寫DQS的前兩個高低電平的寬度是不一樣的,使用示波器的寬度(width)觸發(fā)功能,來觸發(fā)DQS。
注1:泰克Visual Trigger和是德InfiniiScan都是要單獨購買的,這個錢千萬不要省,真的非常好用,沒有分離不出來的。
注2:DDR3通過前導(dǎo)的正負(fù)方向觸發(fā)讀寫分離在DDR4無效了,因為DDR4讀寫前導(dǎo)方向不定,也有可能方向是一樣的。
1. DDR4芯片管腳定義描述
DDR4管腳功能描述見下表。
?
Symbol | Type | Function | |||
CK_t, CK_c | Input | Clock: CK_t and CK_c are differential clock inputs. All address and control input signals are sampled on the crossing of the positive edge of CK_t and negative edge of CK_c. | |||
CKE, (CKE1) | Input | Clock Enable: CKE HIGH activates, and CKE Low deactivates, internal clock signals and device input buffers and output drivers. Taking CKE Low provides Precharge Power Down and Self-Refresh operation (all banks idle), or Active Power-Down (row Active in any bank). CKE is synchronous for Self-Refresh exit. After VREFCA and Internal DQ Vref have become stable during the power on and initialization sequence, they must be maintained during all operations (including Self-Refresh). CKE must be maintained high throughout read and write accesses. Input buffers, excluding CK_t,CK_cS ODT and CKE are disabled during power-down. Input buffers, excluding CKE, are disabled during Self Refresh. | |||
CS_n, (CS1_n) | Input | Chip Select: All commands are masked when CS_n is registered HIGH. CS_n provides for external Rank selection on systems with multiple Ranks. CS_n is considered part of the command code. | |||
C0,C1,C2 | Input | Chip ID : Chip ID is only used for 3DS for 2,4,8high stack via TSV to select each slice of stacked component. Chip ID is considered part of the command code | |||
ODT, (ODT1) | Input | On Die Termination: ODT (registered HIGH) enables RTT_NOM termination resistance internal to the DDR4 SDRAM. When enabled, ODT is only applied to each DQ, DQS_t, DQS_c and DM_n/DBI_n/TDQS_t, NU/TDQS_c (When TDQS is enabled via Mode Register A11=1 in MR1) signal for x8 configurations. For x16 configuration ODT is applied to each DQ, DQSU_t, DQSU_c, DQSL_t, DQSL_c, DMU_n, and DML_n signal. The ODT pin will be ignored if MR1 is programmed to disable RTT_NOM. | |||
ACT_n | Input | Activation Command Input : ACT_n defines the Activation command being entered along with CS_n. The input into RAS_n/A16, CAS_n/A15 and WE_n/A14 will be considered as Row Address A16, A15 and A14 | |||
RAS_n/A16. CAS_n/ A15. WE_n/A14 |
Input | Command Inputs: RAS_n/A16, CAS_n/A15 and WE_n/A14 (along with CS_n) define the command being entered. Those pins have multi function. For example, for activation with ACT_n Low, those are Addressing like A16,A15 and A14 but for non-activation command with ACT_n High, those are Command pins for Read, Write and other command defined in command truth table | |||
DM_n/DBI_n/ TDQS_t, (DMU_n/ DBIU_n), (DML_n/ DBIL_n) |
Input/Output | Input Data Mask and Data Bus Inversion: DM_n is an input mask signal for write data.Input data is masked when DM_n is sampled LOW coincident with that input data during a Write access. DM_n is sampled on both edges of DQS. DM is muxed with DBI function by Mode Register A10,A11,A12 setting in MR5. For x8 device, the function of DM or TDQS is enabled by Mode Register A11 setting in MR1. DBI_n is an input/output identifying whether to store/output the true or inverted data. If DBI_n is LOW, the data will be stored/output after inversion inside the DDR4 SDRAM and not inverted if DBI_n is HIGH. TDQS is only supported in X8 | |||
BG0 - BG1 | Input | Bank Group Inputs: BG0 - BG1 define to which bank group an Active, Read, Write or Precharge command is being applied. BG0 also determines which mode register is to be accessed during a MRS cycle. X4/8 have BG0 and BG1 but X16 has only BG0 | |||
BA0 - BA1 | Input |
Bank Address Inputs: BA0 - BA1 define to which bank an Active, Read, Write or Precharge command is being applied. Bank address also determines which mode register is to be accessed during a MRS cycle. |
|||
A0 - A17 | Input | Address Inputs: Provide the row address for ACTIVATE Commands and the column address for Read/Write commands to select one location out of the memory array in the respective bank. (A10/AP, A12/BC_n, RAS_n/A16, CAS_n/A15 and WE_n/A14 have additional functions, see other rows.The address inputs also provide the op-code during Mode Register Set commands.A17 is only defined for the x4 configuration. | |||
A10 / AP | Input | Auto-precharge: A10 is sampled during Read/Write commands to determine whether Autoprecharge should be performed to the accessed bank after the Read/Write operation. (HIGH: Autoprecharge; LOW: no Autoprecharge).A10 is sampled during a Precharge command to determine whether the Precharge applies to one bank (A10 LOW) or all banks (A10 HIGH). If only one bank is to be precharged, the bank is selected by bank addresses. | |||
A12 / BC_n | Input | Burst Chop: A12 / BC_n is sampled during Read and Write commands to determine if burst chop (on-the-fly) will be performed. (HIGH, no burst chop; LOW: burst chopped). See command truth table for details. | |||
RESET_n | Input | Active Low Asynchronous Reset: Reset is active when RESET_n is LOW, and inactivewhen RESET_n is HIGH. RESET_n must be HIGH during normal operation. RESET_n is a CMOS rail to rail signal with DC high and low at 80% and 20% of VDD, | |||
DQ | Input / Output | Data Input/ Output: Bi-directional data bus. If CRC is enabled via Mode register then CRC code is added at the end of Data Burst. Any DQ from DQ0~DQ3 may indicate the internal Vref level during test via Mode Register Setting MR4 A4=High. Refer to vendor specific data sheets to determine which DQ is used. | ? | ||
DQS_t, DQS_c, DQSU_t, DQSU_c, DQSL_t, DQSL_c |
Input / Output | Data Strobe: output with read data, input with write data. Edge-aligned with read data, centered in write data. For the x16, DQSL corresponds to the data on DQL0-DQL7; DQSU corresponds to the data on DQU0-DQU7. The data strobe DQS_t, DQSL_t and DQSU_t are paired with differential signals DQS_c, DQSL_c, and DQSU_c, respectively, to provide differential pair signaling to the system during reads and writes. DDR4 SDRAM supports differential data strobe only and does not support single-ended. | ? | ||
TDQS_t, TDQS_c | Output |
Termination Data Strobe: TDQS_t/TDQS_c is applicable for x8 DRAMs only. When enabled via Mode Register A11 = 1 in MR1, the DRAM will enable the same termination resistance function on TDQS_t/TDQS_c that is applied to DQS_t/DQS_c. When disabledvia mode register A11 = 0 in MR1, DM/DBI/TDQS will provide the data mask function or Data Bus Inversion depending on MR5; A11,12,10and TDQS_c is not used. x4/x16 DRAMs must disable the TDQS function via mode register A11 = 0 in MR1. |
? | ||
PAR | Input | Command and Address Parity Input: DDR4 Supports Even Parity check in DRAMs with MR setting. Once it’s enabled via Register in MR5, then DRAM calculates Parity with ACT_n,RAS_n/A16,CAS_n/A15,WE_n/A14,BG0-BG1,BA0-BA1,A17-A0. Input parity should maintain at the rising edge of the clock and at the same time with command & address with CS_n LOW | ? | ||
ALERT_n | Input/Output | Alert: It has multi functions such as CRC error flag, Command and Address Parity error flag as Output signal. If there is error in CRC, then Alert_n goes LOW for the period time interval and goes back HIGH. If there is error in Command Address Parity Check, then Alert_n goes LOW for relatively long period until on going DRAM internal recovery transaction to complete. During Connectivity Test mode, this pin works as input. Using this signal or not is dependent on system. In case of not connected as Signal, ALERT_n Pin must be bounded to VDD on board. | ? | ||
TEN | Input | Connectivity Test Mode Enable: Required on X16 devices and optional input on x4/x8 with densities equal to or greater than 8Gb.HIGH in this pin will enable Connectivity Test Mode operation along with other pins. It is a CMOS rail to rail signal with AC high and low at 80% and 20% of VDD. Using this signal or not is dependent on System. This pin may be DRAM internally pulled low through a weak pull-down resistor to VSS. | ? | ||
NC | No Connect: No internal electrical connection is present. | ? | ? | ||
VDDQ | Supply | DQ Power Supply: 1.2 V +/- 0.06 V | ? | ||
VSSQ | Supply | DQ Ground | ? | ||
VDD | Supply | Power Supply: 1.2 V +/- 0.06 V | ? | ||
VSS | Supply | Ground | ? | ||
VPP | Supply | DRAM Activating Power Supply: 2.5V (2.375V min, 2.75V max) | ? | ||
VREFCA | Supply | Reference voltage for CA | ? | ||
ZQ | Supply | Reference Pin for ZQ calibration | ? | ||
? | ? | ? | ? | ? | ? |
?
2.測試準(zhǔn)備 焊臺,植球溫控板,DDR,鑷子,烙鐵,DDR轉(zhuǎn)接板,助焊劑,吸錫帶,錫球 測試儀器TEK DSA71254? 12.5G? 100GS/S 探頭:P7313 ?13G ?x4或者P7513
焊接完成如圖1-2:
圖1-2
3.測試項目分解:
DDR測試主要有以下幾個部分:時序的測量,紋波的測量,信號完整性的測量 信號完整性的測量又包括:CLK的測量,CMD&ADD的測量,寫操作和讀操作的測量。 ? 一般DDR廠家針對DDR的測試只是每個通道選取一顆,每一顆只是測試部分信號,不是全面的測試。如果有條件,想做一個全面的測試。按照下面的測試方法,完全可以做全面的測試,比如下面介紹的測試DQ時,只是測試了DQ0,如果有時間和條件,16根DQ可以全部測試,這樣驗證的會更加全面,耗費的時間也比較長,這樣做的必要性也不大。
3.1時序測量: 時序測量主要測試以下幾個項目:
圖1-3
VDD to RESET(Reset initialization sequence) 開機后VDD高-reset高??? 要求:min 200us
圖1-4
RESET to CKE 開機后reset高-CKE使能?? 要求:min:500us
圖1-5
tCKSRX?? CLK穩(wěn)定到CKE使能?? 要求 min:5nCK 10ns
圖1-6
Power down模式下才會去測試以下幾項:
圖1-7
tPD power down entry ?要求:min: tCKE(min)? max:9tREFI
圖1-8
tCKE ?要求:min:(max 3nCK,5ns)? CKE 高---地址有效 tXP ? 要求?? min:(max 3nCK,6ns)? CKE 高---CS有效 ? tREFI:自刷新間隔時間 不同的溫度有不同的要求: 0C
圖1-9
tRFC ?自刷新使能時間? 要求 min:260ns
圖1-10
測試自刷新這兩個項目的時候,需要使用的觸發(fā)方式為邏輯觸發(fā)。設(shè)置的邏輯狀態(tài)為:1 0 0 1. Reset和CKE運行狀態(tài)確認(rèn): 如果不使用PD模式的話,Reset和CKE在正常運行狀態(tài)下應(yīng)該都保持高電平 3.2紋波測試: 紋波測試主要測試三個電壓的紋波即可。 VDD??? <75mv?????? VrefCA? <=60mv VrefDQ? <=60mv 按照正常紋波測試方法測試即可:
圖1-11
3.3信號完整性的測量: 3.3.1CLOCK相關(guān)的測量: Jitter: 與jitter相關(guān)的主要有以下幾個參數(shù):
以2666速率CLK為例:
測量jitter時可以手動測量,也可以自動測量。 手動測量要求屏幕內(nèi)有200個clock,然后添加測量項:pos wid,neg wid,period,freq等。
自動測量需要選擇示波器的analysis里面的DDR分析功能,需要購買;
進入后需要選擇測試的項目: clock,然后選擇好clock使用的通道,DDR運行的速率。 設(shè)置好以上選項之后,可以一直運行,看看是否會出現(xiàn)有錯誤的提示。 最后可以導(dǎo)出完整的報告。
3.3.2命令信號和地址信號的測量: 命令信號和地址信號,一般主要測試CS#,RAS#,CAS#,WE#,ADD,BA,主要測量的是建立時間和保持時間。DDR4和DDR3不同的地方在于,DDR4測試建立時間和保持時間時,不需要再參考斜率了。 tIS>tIS(base) tIH>tIH(base) tIS(base)和tIH(base)都是有對應(yīng)的值,根據(jù)速率不同,定義的值不同。 卡建立時間和保持時間的時候的電平標(biāo)準(zhǔn)是AC100和DC75.
關(guān)于CLK-DIFF的計算主要見下圖:
Setup的:
Hold的:
Setup非單調(diào)的:
Hold非單調(diào)的:
測試示例:
TIP:可以將CS信號也放到測試波形中作為參考,因為所有CA信號的選取要參考CS低有效的。
3.3.3寫數(shù)據(jù)的測量: 讀數(shù)據(jù)和寫數(shù)據(jù)的測量都是數(shù)據(jù)DQ以DQS為參考來做的測量。而不是參照CLK。 DDR4和DDR3在寫數(shù)據(jù)的測量是不同的,DDR3是要測試建立時間和保持時間,而DDR4部分主要是測試眼圖。
眼寬和眼高的測試要求如下:
具體波形測量:
寫數(shù)據(jù)的波形
測試示意圖:
tDQSS為CLK和DQS的相位差,具體測試 波形如下:
3.3.4讀數(shù)據(jù)的測量: 讀數(shù)據(jù)的測量主要測試的參數(shù)有:tDQSQ,tQH,tDQSCK。 測試圖示:
tDQSQ要求的值根據(jù)DDR運行的速率不同有區(qū)別,具體要求見下表:
?
?
tQH的要求為:min :0.38tCK。 DPO71254測試波形: tDQSQ
tQH
測試中,為了保證測試的準(zhǔn)確性,應(yīng)該多累加測試的波形,這樣才能看到整體的波形趨勢。
下圖為海力士測試波形:
tDQSCK測試的是讀數(shù)據(jù)的CLOCK和讀DQS的關(guān)系。
測試圖示:
參數(shù)要求:根據(jù)DDR運行的速率不同而不同,具體見下表
?
?
DPO71254測試波形:
測試讀數(shù)據(jù)和寫數(shù)據(jù)時,高位與低位的DQ要分別選擇一個來測試。
不同速率下各指標(biāo)要求值范圍
?
?
不同顆粒廠家新測試項目大同小異,比如三星和海力士:
?
?
總結(jié):DDR4測試最好還是選手動測試,手動讀寫分離很有意思,這樣累積波形也看得比較清楚。不需要全測,每種類型抽測即可。自動化軟件測試CLK的抖動比較方便,不差錢的話也可以買上;
編輯:黃飛
?
項目
800
1066
1333
1600
1866
2133
tDQSQ(ps)
min
max
min
max
min
max
min
max
min
max
min
Max
?
200
?
150
?
125
?
100
?
85
?
75
項目
800
1066
1333
1600
1866
2133
tDQSCK(ps)
Min
Max
Min
Max
Min
Max
Min
Max
Min
Max
Min
Max
-400
400
-300
300
-255
255
-225
225
-195
195
-180
180
?
DDR3 1600
DDR3 1866
DDR3 2133
DDR4 2400
f
[303,800MHz]
[303,933MHz]
[303,1066MHz]
[1066,2400MHz]
tCK(avg)
[1.25,3.3ns]
[1.07,3.3ns]
[0.938,3.3ns]
[0.833,0.938ns]
Duty cycle
[47,53%]
[47,53%]
[47,53%]
[48,52%]
tCH(avg)
[47,53*tCK]
[47,53*tCK]
[47,53*tCK]
[48,52*tCK]
tCL(avg)
[47,53*tCK]
[47,53*tCK]
[47,53*tCK]
[48,52*tCK]
CC Jitter
±140
±120
±100
±83
VIX
[600,900mV]
[600,900mV]
[600,900mV]
[480,720mV]
tDQSS
±0.27tCK
±0.27tCK
±0.27tCK
±0.27tCK
mask
?
?
?
交叉點±70mV, min84ps
?
三星測試項目
海力士測試項目
類別
測量值
測試要求
測量值
測試要求
CLK(差分)
tCK(avg)
見上表
tCK(avg)
見上表
tCH(avg)
見上表
tCH(avg)
見上表
tCL(avg)
見上表
tCL(avg)
見上表
Duty cycle
見上表
Duty cycle
見上表
Rising Slew
0.4/ck-tR-max
?
?
?
?
tCK(abs)
?
?
?
tJIT(per)
?
?
?
tJIT(CC)
?
?
?
tCH(abs)
?
?
?
tCL(abs)
?
CLK(單端)
VIX
MIN:0.5*VDD-0.15/0.12
VIX
MIN:0.5*VDD-0.15/0.12
MAX: 0.5*VDD+0.15/0.12
MAX: 0.5*VDD+0.15/0.12
VSEH
MIN:0.5*VDD+0.175
?
?
VSEL
MIN:0.5*VDD-0.175
?
?
SLEW RATE
CLK
?
CLK
?
CMD&ADD
?
CMD&ADD
?
DQS
?
DQS
?
DQ
?
DQ
?
命令地址CS,RAS, CAS,WE, BA1, AD0,AP, CKE
tIS
?
tIS
?
tIH
?
tIH
?
Falling Slew
VREF(DC)-VIL(AC)max/ tF
?
?
Rising Slew
VREF(DC)-VIL(DC)max/ tR
?
?
VIH
AC135
?
?
VIL
AC135
?
?
Overshoot
Max:0.4
?
?
undershoot
Max:0.4
?
?
DQ寫
?
?
?
?
DQS rise
tDS DQ高
?
tDS DQ高
沒有單獨測上升沿和下降沿,直接選擇上升沿和下降沿觸發(fā),相當(dāng)于一次測倆
tDH DQ高
?
tDH DQ高
tDS DQ低
?
tDS DQ低
tDH DQ低
?
tDH DQ低
DQS fall
tDS DQ高
?
tDS DQ高
tDH DQ高
?
tDH DQ高
tDS DQ低
?
tDS DQ低
tDH DQ低
?
tDH DQ低
DQ
VIH
Vref+0.135
?
?
VIL
Vref-0.135
?
?
Overshoot
Max:0.4
?
?
Undershoot
Max:0.4
?
?
DQS
tDQSS
±0.27*tCK
tDQSS
±0.27*tCK
tDSS
MIN:0.18*tCK
?
?
tDSH
MIN:0.18*tCK
?
?
tDQSH
MIN:0.45*tCK
?
?
MAX:0.55*tCK
?
?
tDQSL
MIN:0.45*tCK
?
?
MAX:0.55*tCK
?
?
tWPRE
MIN:0.9*tCK
?
?
tWPST
MIN:0.3*tCK
?
?
DQ讀
?
?
?
?
DQS
tDQSCK
?
tDQSCK
?
tQH
MIN:0.38*tCK
?
?
tQSH
MIN:0.4*tCK
?
?
tQSL
MIN:0.4*tCK
?
?
tRPRE
MIN:0.9*tCK
?
?
tRPST
MIN:0.3*tCK
?
?
DQS RISE
tDQSQ(DQ rise)
?
?
?
tDQSQ(DQ fall)
?
?
?
DQS FALL
tDQSQ(DQ rise)
?
?
?
tDQSQ(DQ fall)
?
?
?
DQ
VOH(AC)
MIN:0.9
?
?
VOL(AC)
MAX:0.6
?
?
Overshoot
Max:0.4
?
?
Undershoot
Max:0.4
?
?
電源
(海力士只測一個顆粒的紋波)
VDD紋波
TBD
VDD紋波
TBD
VrefCA紋波
VDD±2%
VrefCA紋波
VDD±2%
VrefDQ紋波
VDD±2%
VrefDQ紋波
VDD±2%
VDD/Q
MIN:1.425
?
?
MAX:1.575
?
?
VREF
MIN:VDD(min)(測量值)*0.49
?
?
MAX:VDD(max)(測量值)*0.51
?
?
時序(海力士只測一個顆粒的時序)
Reset rise to CKE rise
Min:500us
Reset rise to CKE rise
Min:500us
VIH
MIN:0.8*VDD=1.2V
?
?
VIL
MAX:0.2*VDD=0.3V
?
?
Overshoot
Max:0.4V
?
?
Undershoot
Max:0.4V
?
?
?
?
Reset need to be maintained below 0.2*VDD with stable power
Min 200us
?
?
tCKSRX
MIN:MAX(5nCK,10ns)
?
?
tREFI
?
?
?
tRFC
?
評論