JEDEC DRAM Initialization Sequence Diagram에 보면 아래와 같이 ZQ Calibration에 대한 동작이 나와있다.
ZQ Calibration이란 DRAM I/O driver, ODT termination 저항에 사용되는 Impedence를 외부 240ohm과 매칭하는 동작을 말한다. 이를 통해 SOC와 DRAM간에 I/O 신호를 주고 받을때 설정한 VOH Target에 맞는 I/O swing을 할 수 있게 되는 것이다.
참고로 LPDDR4의 VOH Target(Pull-up Calibration Point)는 VDDQ 1.1V 기준 VDDQ/2.5 or VDDQ/3을 선택할 수 있다.
LPDDR4X의 경우 VOH Target(Pull-up Calibration Point)는 VDDQ 0.6V 기준 VDDQ*0.5 or VDDQ*0.6을 선택할 수 있다.
LPDDR5의 경우 VOH Target은 VDDQ 0.5V 기준 VDDQ*0.5로만 동작한다.
* LPDDR4 Initialization
* LPDDR4 MPC(Multi Purpose Command)
LPDDR4 ZQ Calibration은 위와 같이 MPC(Multi Purpose Command)의 "ZQCal Start"와 "ZQCal Latch" CMD를 통해 수행한다. SOC에서 DRAM으로 "ZQCal Start" MPC를 보낼 경우, DRAM 내부에서 ZQ Calibration을 수행한다. 이때 수행되는 Min시간은 tZQCAL 1us(min)으로 JEDEC Spec에 규정되어 있다. ZQ Calibration완료 이후 해당 ZQ Calibration값을 사용하기 위해서는 반드시 "ZQCal Latch" MPC를 보내줘야한다. Latch CMD를 보내면 DRAM 내부 동작으로 ZQ Calibration값이 업데이트 된다. ZQ값은 PVT(Process, Voltage, Temperature)에 의해 변경되기때문에 PVT변경시 적절하게 ZQ Calibration을 수행하여 업데이트해야한다.
* LPDDR4 LVSTL(Low Voltage Swing Terminated Logic)
LPDDR4의 경우 I/O swing 방식이 LVSTL(Low Voltage Swing Terminated Logic) I/O system을 사용한다.
참고로 DDR3는 CTT(Center Tapped Termination), DDR4는 POD(Paeudo Open Drain) I/O system 사용.
ZQ Calibration Start CMD를 DRAM에 보내면 DRAM은 아래와 같은 순서로 동작한다.
1. Pull-Down Calibration
외부 보드에 연결된 240ohm저항를 이용하여 Pull-down 저항이 240ohm이 되도록 Calibration하는 것이다.
VDDQ/2를 판단하는 Comparator를 이용하여 Pull-down저항이 240ohm이 될때까지 가변하면서 Calibration하는 것이다.
Pull-down calibration이 완료되면 Pull-down 저항은 240ohm에 맞게 calibaration이 된다.
2. Pull-Up Calibration
Pull-Down Calibration이 완료되었으면 이후 Pull-Up Calibration을 수행한다. Pull-down calibration에서는 VDDQ/2가 되는 것을 Comparator로 판단하지만, Pull-up calibration은 설정된 VOH Target에 맞는 값을 찾도록 calibration한다. 만약 LPDDR4 MR3 Pull-up Calibation Point를 VDDQ/2.5로 설정하였다면, VDDQ(1.1V)/2.5 = 440mV로 swing할 수 있도록 pull-up calibration하는 것이다.