SlideShare uma empresa Scribd logo
1 de 104
www.ansoft.co.kr
DDR2/3 PCB
SOLUTION
SI Design Guide for
DDR2/3 PCB본 교재는 Ansoft의 SI/PI/EMI tool package인 APDS (Ansoft PCB Design
Suite)를 이용한 DDR2/3 PCB의 SI (Signal Integrity) 설계에 대해 소개하고
있습니다.
APDS는 PCB EM 해석을 위한 SIwave와 회로해석을 위한 Nexxim으로 구성
되어 있으며, PCB의 구조적 등가회로에 기반한 transient 해석을 통해 가장 진보
적인 High Speed Digital SI 설계를 구현하고 있습니다.
Nexxim
자동화된 Multi-Solver Transient 해석기술 및
Harmonic Balance/Linear 해석 등의 모든 종류의
회로해석 엔진을 탑재한 가장 진보적인 형태의 회로해석
툴입니다. 특히 SSN과 PCB full layout을 고려한 복합해석이
가능한 현존 유일한 툴로서, 고주파/고속신호의 SI 해석에 최
적화되어 있습니다.
HFSS
업계 표준의 3차원 고주파 구조해석 툴로서, DDR2/3 와 관련된 주변 선로 및
커넥터 등의 coupling/field 계산과 정밀한 고속 동작 모델링에 적용됩니다.
Q3D
패키지 / 커넥터/ 케이블 등의 임의의 3차원 구조에 대한 RLGC 등가회로를
만들어냄으로써, 물리적 구조가 전기적 신호에 미치는 영향을 정확하게 모델
링할 수 있습니다.
TPA
DDR2/3 BGA 패키지와 같은 고집적 패키지의 parasitic RLC를 추출함으로써
고속의 디지털 동작에 대한 영향을 평가할 수 있습니다.
2
SIwave
PCB의 layout data에 대한 전자장해석을 통해 공진/
노이즈 분석 및 Near field/far field를 계산하는 PCB
전용 EM tool입니다. PCB에 최적화된 알고리즘을 이용
하여 일반적인 EM tool에 비해 수십 배 이상 빠른 속도
를 자랑하며, 직관적이고 쉬운 UI를 통해 효율적인 PCB
PI/EMI 분석을 수행할 수 있습니다. 그와 더불어 PCB
의 물리적 구조에 대해 SPICE 등가회로를 추출함으로써
정확한 SI 분석을 가능하게 합니다.
고속의 DDR2/3 메모리,
어떻게 해야 잘 동작할까?
Fail??
Pass!!
Gbps를 넘나드는 DDR2/3 메모리는 전자엔지니어들에게 새로운 도전을 요구하고 있습니다.
기존의 PCB 설계방법으로는 속도를 올리는데 한계점이 존재하며, 무언가 한 차원 높은 설계
방법을 도입해야 한다는 것을 느끼기 시작합니다.
이러한 DDR2/3 메모리를 고속으로 동작시키려면 기존의 디지털 설계와는 다른 고주파 PCB
설계 기술이 필요하며, 그와 더불어 PCB pattern의 SI 분석을 통한 정교한 신호품질 개선과
정이 수반되어야 합니다.
3
SI Design Guide for
DDR2/3 PCB
Contents
Part 1: Introduction
기본적인 DDR2/3 메모리의 특징과 구조를 알아보고, DDR2/3를 활용한
PCB 설계 시 꼭 알아두어야 할 기본적인 정보와 성능 검증을 위한
Spec 및 용어들을 설명합니다.
Part 2: DDR2/3 Design Guide
실제로 DDR2/3를 활용한 PCB를 설계하는 과정을 설명하며, DIMM을
이용한 설계와 On-board 설계에 대해 주요한 선로들의 배치방법에
대해 설명합니다.
Part 3: DDR2/3 Simulation Guide
APDS를 이용하여 실제 DDR2/3 PCB data pattern을 검증하는 SI
분석에 필요한 각종 시뮬레이션 과정을 설명하고, 결과를 분석하는
방법을 알아봅니다.
Part 4: Automatic Verification
DDR2/3 전용 분석 Tool인 APDS Wizard를 이용하여 자동화된 DDR2/3
SI 분석과정에 대해 알아봅니다.
4
1. Introduction
1-1. DDR2/3 High Speed Memory
1-2. DDR2/3 설계의 어려운 점
1-3. DDR2/3 의 기본 선로 구성
1-4. 신호분석의 단위, Bytelane
1-5. DQS (Strobe) 신호의 이해
1-6. DDR2/3 동작성능 평가 방법
1-7. Key Spec: Setup time & Hold time
1-8. Module & On-Board case
1-9. 정확한 Termination의 중요성
1-10. ODT의 활용
5
SI Design Guide for
DDR2/3 PCB
1-1. DDR2 High Speed Memory
Dual Data Rate (DDR)라는 신기술로 메모리 시장을 주도했던 DDR 메모리는 최대 400Mbps 속도의
빠른 메모리 동작환경 시대를 열었습니다. 이러한 DDR 메모리는 보다 고속의 환경에 적합하도록 DDR2
로 업그레이드 되었으며, 속도에 따라 DDR2 (~800Mbps), DDR3 (~1.6Gbps), DDR4 (~4Gbps)와 같이
구분되고 있습니다.
동작속도 (bps)
DDR2
DDR3
DDR4
400M, 533M, 667M, 800M
800M, 1066M, 1333M, 1.6G
~ 4G
DDR2는 기본적으로 DDR3/4와 같은 구조를 갖고 있으며, 동작속도만 빠른 형태입니다. 고로 본 교재에
서 지칭하는 DDR2 설계법은 DDR3/DDR4에도 함께 적용되는 내용임을 참고하시기 바랍니다.
DDR2는 과거의 DDR에 비해 고속환경에 적합하도록 약간의 구조변화가 있는데 DDR에서 DDR2로
넘어오면서 생긴 가장 큰 변화라면 데이터 클럭의 0과 1을 판별하는 기준이 되는 Strobe 신호가 Single
line에서 Differential line으로 변경되었다는 점입니다.
(이 부분은 DQS 설명 부분에서 자세하게 다룹니다)
DDR2를 사용하기 시작하면서부터, 설계자는 동작 클럭을 선택하는데 있어서 애로사항이 늘어나기
시작하는데 높은 동작속도로 사용하려면 DDR2 메모리의 주변회로 및 데이터 선로의 정확한 설계가
뒷받침되어야 하기 때문입니다. 즉 사용자가 그냥 800MHz로 클럭을 올려서 동작시킨다고 데이터가
잘 전송되는 게 아니라, 설계된 구조에서 마진을 얼마나 가지느냐에 따라 사용할 수 있는 동작속도의
범위가 정해지게 됩니다.
이 때문에 기존의 디지털 전자회로 엔지니어들에겐 이렇게 고속동작 시에 발생하는 RF적인 문제들의
해결이 매우 어렵게 느껴지게 됩니다. 반대로, 고속동작/고주파에 익숙한 아날로그 혹은 RF 설계자들
에겐 이러한 문제점들이 상대적으로 익숙하지만, 디지털적인 기본 설계지식의 부족으로 부적절한 초기
설계가 이루어지는 경우가 발생하게 됩니다.
본 교재는 고속 동작하는 DDR2/3 메모리 설계에 있어서 필요한 기본적인 디지털/전자회로 지식과
고주파 아날로그적 지식을 동시에 설명함으로써, 종합적인 DDR2/3 PCB 설계 교재로서의 역할을 하게
될 것입니다.
6
1-2. DDR2 PCB 설계의 어려운 점
DDR2/3/4 메모리는 400M~4Gbps에 이르는 빠른 동작속도로 인해 고주파 특성이 강해지게 됩니다.
이는 소위 말하는 RF적인 현상들이 뚜렷해진다는 뜻이고, 통상의 RF에서 800MHz 정도를 기준으로
고주파현상의 정도가 급격히 심해진다는 점에서 봤을 때, DDR2부터는 고주파/고속동작의 개념을
명확히 갖고 설계에 임해야 한다는 뜻이 됩니다.
이렇게 RF현상이 뚜렷해진다는 것은, 아래와 같은 이슈들을 부각시키기 됩니다.
선로간의 간섭이 심해진다. (Coupling Issue)
전원 노이즈에 민감해진다. (Power Integration Issue)
신호 품질의 관리가 힘들어진다. (Signal Integration Issue)
EMI의 방사가 많아지고 복잡해진다. (Spurious Emission Issue)
이러한 DDR2 메모리의 동작 성능은 선로의 PCB pattern에 크게 의존하게 되며, PCB 설계 자체가
하나의 회로설계처럼 다루어져야 합니다. 즉 쉽게 말해서 PCB 패턴과 회로 소자들이 적절하게 설계/
배치되지 않으면 고속에서 데이터가 깨지는 문제들에 직면하게 된다는 뜻입니다. 이것은 특히 800Mbps
을 넘어서면서 더욱 심각한 문제로 나타나며 과거에 DDR 설계하듯이 DDR2를 설계하다 보면 점점 더
fail이 심해지는 현상에 직면하게 됩니다. 이는 고속동작을 위한 SI/PI 개념에 익숙치 않은 엔지니어들에
겐 매우 막연한 해결과제처럼 보이게 되어버리죠. "도대체 뭐가 문제야!?"
이를 해결하기 위해서는 PCB를 구조적으로 분석하고 debugging하는 것이 중요해지며, 단순히 Trace
의 형상이나 구조뿐만 아니라 Power/GND Plane 및 주변 선로와의 관계까지 복잡하게 고려해야 하는
상황이 됩니다. 한마디로 PCB artwork을 문자 그대로 "Art"처럼 잘 그려야 한다는 뜻이기도 합니다.
이 때문에 단순한 Routing 개념의 PCB Pattern 설계를 뛰어넘어, 고속의 디지털 신호 품질을 평가할 수
있는 PCB 설계 방법이 필요합니다. 즉 설계된 PCB Pattern에서 고속의 DDR2 신호가 정상적으로 동작
할 지를 검증할 수 있는 Simulation 기술이 필요해지게 되는 것이지요. 그와 더불어, DDR2 메모리의
동작원리와 구조를 정확히 이해함으로써, 기본에 충실한 설계를 통해 고속동작에 따른 문제를 최소화
시키는 엔지니어의 지혜가 필요합니다.
결론은?
- 고속 동작회로에서 PCB pattern은 하나의 회로처럼 정교하게 설계되어야 한다.
7
SI Design Guide for
DDR2/3 PCB
1-3. DDR2의 선로구성
DDR2 메모리의 기본적인 선로 구성은 아래와 같습니다.
선로명
Ctrl
CMD
Clock
Address
DM
DQS
DQ
command line. RAS, CAS
역할
Control Signal: ODT, Buffer 등의 각종 레지스터를 조절
동작속도의 기준이 되는 digital clock을 입력
데이터를 읽고 쓰는 주소 정보를 송수신.
Data Mask
Strobe signal. DQ 신호의 1과 0을 판별하는 기준시점을 잡아줌
실제로 data가 전송되는 데이터 전송로.
위의 그림은 DDR2 메모리 한 개에 대한 선로 구성으로서, 각 선로 종류별로 설계와 검증방법이 미묘
하게 차이가 있습니다. 본 교재에서는 각 선로별로 설계상의 주의사항과 몇 가지 유용한 tip을 소개하게
될 것이며, 후반부에서는 데이터 전송선로의 SI 분석법에 대해 집중적으로 알아보게 될 것입니다.
8
1-4. 신호분석의 단위, Bytelane
메모리에서 하나의 데이터 묶음 단위를 Bytelane라고 부르는데, 아래와 같이 크게 DM, DQS, DQ 라인
들로 구성됩니다.
DDR2가 정상 동작할 것인지를 판별하는 최종 결과는 DQ (data)에서 전달되어 수신된 신호파형이 spec
을 만족하는가에 달려있습니다. 어차피 메모리 버스의 목표는 1과 0을 판별할 수 있는 최소한의 신호
전달이기 때문이지요.
그래서 실제 신호분석에 필요한 최종파형은 DQ 파형이며 이 DQ 파형이 spec에 만족하는지를 판별해
주는 기준 신호인 DQS의 파형도 필요하게 됩니다. 결과적으로 DM을 제외한 DQ, DQS의 파형을 통해
DDR2의 신호가 제대로 전달되고 있는지를 판별할 수 있게 됩니다.
DQS는 2개의 선로 조합으로 구성되는 differential 구조이며 1 byte를 이루기 위해 DQ는 8개의
개별적인 single bit 선로로 구성됩니다. DQS 선로에 의해 생성된 기준신호는 같은 Bytelane에 묶여
있는 8개의 DQ 신호에 동시에 의 품질 평가 기준이 되므로 결과적으로 DDR2/3에서의 SI 분석은 하나의
Bytelane 단위로 해석하게 됩니다.
9
SI Design Guide for
DDR2/3 PCB
1-5. DQS (Strobe) 신호란?
DQ (data) 신호의 성공적인 전송여부를 판단하기 위해서는 DQS 신호가 필요하며, spec을 적용하기
위해서는 DQS에 대한 정확한 이해가 필요합니다.
위의 그림에서 가운데에 빨간색으로 일정한 아이 패턴을 그리는 파형이 DQ 데이터 파형인데 이 DQ를
가로지르는 보라색의 다른 파형, DQS가 있음을 보실 수 있습니다. DQS는 DQ신호와 동일한 주파수에
1/4 주기만큼 위상이 다른 신호로서 DQS 신호가 전압 스윙의 중앙점을 지나는 순간에 DQ 신호의 1과
0을 판별하게 됩니다.
즉 DDR2의 경우에선 파형의 중앙점이 Vref 지점이 되므로, DQS 신호파형이 Vref를 지나는 순간 DQ가
특정 threshold 전압보다 높으면 High, 낮으면 Low로 판정하게 되는 것이지요. 한마디로 모든 DQ bit
판별의 기준신호가 되기 때문에 매우 정확한 동작이 필요한 reference의 역할을 하게 됩니다.
이 때문에 DDR2부터는 고속에서의 기준신호로서의 DQS의 잡음을 최소화하기 위해 differential line
으로 DQS를 구성하고 있습니다. 기존의 DDR과의 패턴 호환성을 위해 일부 클럭 (400, 533)의 경우는
Single line 구성도 허용하고 있으나 기본적으로 DQS는 2가닥의 differential line 으로 설계되어져야
최대한의 설계 마진을 확보할 수 있습니다.
10
1-6. DDR2 동작성능 평가 방법
현재의 PCB 패턴과 소자구성에서 DDR2 메모리의 데이터가 정상적으로 전송될 것인지를 판별하는
기준은 여러 가지가 있지만, 모든 조건들을 만족시키는 최종 지표는 바로 Setup margin과 Hold margin
이라 할 수 있습니다.
위의 그림은 실제 DDR2 데이터 파형을 분석하는 Eye Diagram으로서, 우선 DQS가 Vref를 지나는
지점에서 앞쪽으로는 Setup time, 뒤쪽으로는 hold time 이라는 spec이 존재합니다. Setup time은
데이터 파형의 high/low를 판별하는데 필요한 최소시간을 의미하며, Hold time은 판별된 결과가 유지
되어야 하는 최소시간을 의미합니다. 이러한 Setup/Hold time spec은 동작속도와 선로구성 방법에
따라 JEDEC 규격 집에 각각 정의 되어져 있으며, 데이터가 오류 없이 전송됨을 보장할 수 있는 가장
중요한 spec입니다.
Eye diagram을 출력하면 먼저 Mask를 그려야 전송성능을 판별할 수 있는데 Setup 영역에서는
V IHAC와 V ILAC, Hold 영역에서는 V IHDC와 V ILDC라는 전압을 기준으로 하게 됩니다. 위 그림을 참조로
각 네 지점 위치 별로 기준 전압과 파형이 만나는 지점을 연결하여 사각형을 그리면 그것이 Mask가
되고, 여기서 Setup 영역의 두 꼭지점을 연결했을 때 Vref와 만나는 지점과 Setup time spec과의
차이가 바로 여유 있는 시간영역, 즉 Setup margin이 되며 Hold 영역도 같은 방식으로 남는 시간을 계산
하면 Hold margin이 계산됩니다.
결국 설계자가 판단해야 할 일은 데이터 선로의 Eye Diagram에 Mask를 그린 후, Setup/Hold margin이
얼마나 존재하는가를 판단하는 일입니다. 만약 margin이 전혀 없는 데이터 선로라면 gray zone 동작이
되어서 데이터의 오류가 발생할 가능성이 높다는 의미가 됩니다.
11
SI Design Guide for
DDR2/3 PCB
1-7. Key Spec: Setup time & Hold time
앞에서 설명하였듯이, DDR2 성능분석에 있어서 가장 중요한 spec은 Setup time과 Hold time입니다.
그와 더불어 Mask를 그릴 때 기준이 되는 AC와 DC Threshold Voltage 도 알아야 합니다. 이 값들은
JEDEC 표준문서에 정의되어 있으며, DDR2/3 메모리 종류와 전송속도, DQS 구성방식 등에 따라 다르게
적용됩니다.
우선 메모리 종류와 속도에 따른 AC와 DC Threshold Voltage는 아래와 같이 정의됩니다.
이 Threshold 값은 DQ의 데이터가 1인지 0인지를 판별하는 전압 기준점이 됩니다.
V IH(AC)
DDR2
DDR3
VREF+0.25 (400/533)
VREF+0.2 (677/800)
VREF+0.175
V IL(AC)
VREF - 0.25 (400/533)
VREF -0.2 (677/800)
VREF - 0.175
V IH(DC)
VREF + 0.125
VREF + 0.1
V IL(DC)
VREF - 0.125
VREF - 0.1
VDDQ
DDR2
DDR3
1.8
1.5
VREF
0.9
0.75
VTT
0.9
0.75
12
가장 중요한 Spec이라 할 수 있는 Setup time/Hold time spec은 아래와 같습니다.
DDR2 with Differential Strobe
● Setup / Hold time
Data rate (Mbps)
Setup Time (ns)
Hold Time (ns)
400
0.15
0.275
533
0.1
0.225
667
0.1
0.175
800
0.05
0.125
● Slew Rate table
※ Buffer Strength 등을 조절하여 Slew Rate가 변하는 경우는 변화된 slew rate에 따라 각기 다른
Setup/Hold time을 적용해야 할 수 있습니다. 이 경우 위 table을 활용하여 DQ와 DQS의 slew rate에
맞는 delta time 값을 각 setup time, hold time에 추가로 더하면 됩니다.
13
SI Design Guide for
DDR2/3 PCB
DDR2 with Single Strobe
● Setup / Hold time
Data rate (Mbps)
Setup Time (ns)
Hold Time (ns)
400
0.025
0.025
533
-0.025
-0.025
667
N/A
N/A
800
N/A
N/A
● Slew Rate table
DDR2의 경우는 위와 같이 Single Strobe를 활용한 spec까지도 제공되는데 자세히 보면 400과 533 클럭
에서만 사용되도록 권장 되어지고 있습니다. 왜냐하면, 고속동작을 위해 DDR2의 strobe를 differential
line으로 규정하고 있으나 DDR에서 DDR2로 넘어가는 과도기적 설계에서는 single strobe를 사용하는
종래의 DDR과도 호환되는 PCB 패턴을 만들어야 할 경우가 있기 때문입니다. 즉 DDR1과 DDR2를 혼용
할 수 있도록 하기 위해선 DDR2도 DDR1처럼 single strobe로 구현해야 하는 것이지요.
당연한 얘기지만, single strobe로 DDR2를 동작시키면 common noise의 영향에 더 민감해짐으로써
기존의 differential DDR2 spec을 만족시키기 어렵습니다. 그래서 별도의 single 전용 spec도 제공되
긴 하지만, 667이나 800과 같은 고속에서는 정상 동작시키기 어렵기 때문에 아예 spec 자체가 정의되어
있지 않습니다. DDR2에서의 Single Strobe는 어디까지나 종래의 DDR과의 호환 패턴을 위한 것일 뿐이
므로, 이러한 경우가 아니라면 strobe는 반드시 differential로 구성하여야 합니다.
14
DDR3
● Setup / Hold time
Data rate (Mbps)
Setup Time (ns)
Hold Time (ns)
800
0.075
0.15
1066
0.025
0.1
1333
TBD
TBD
1600
TBD
TBD
● Slew Rate table
DDR3의 높은 동작속도에서의 Setup/Hold time spec은 수시로 변동이 있는 상황입니다. TBD라고
되어 있는 부분은 To be decided의 준말로서, 곧 결정되어야 한다는 뜻입니다.
15
SI Design Guide for
DDR2/3 PCB
1-8. Module & On-Board case
앞의 설명에서, Eye Diagram의 Mask를 그리기 위해선 AC와 DC의 전압 threshold spec이 필요함을
언급하였습니다. 여기서 AC spec이란 출렁이는 AC 파형으로부터 DC적인 신호값을 읽기 위한 전압
기준값을 의미하며, DC spec이란 이미 0, 1이 판별 된 후의 파형변화를 감지하는 전압 기준값을 의미
하게 됩니다. 즉 파형이 중앙을 지나 위 혹은 아래로 움직이기 시작할 때 AC spec이 적용되고 정점을
지나 다시 중앙으로 돌아올 때 DC spec이 적용됩니다.
결국 AC/DC spec은 Data 파형이 일정 전압을 넘었느냐 아니냐를 통해 1과 0을 판단하기 위한 기준점
으로써, Setup 영역에서의 출렁이는 전압에 대비한 판단능력이 더욱 중요하기 때문에 AC spec이 좀더
까다로운 전압 값을 가지게 되는 것이지요.
그런데 여기서 한가지 기억해둘 사실은, 일반적인 on-board DDR2, 즉 PCB에 직접 DDR2 메모리를
실장한 경우엔 Setup/Hold 영역 모두에 그냥 DC spec만 적용해도 무방하다는 점입니다. AC spec은
보다 빡센 신뢰성이 요구되는 경우에 필요한 spec으로써, DIMM과 같은 DDR2 module 설계에서 적용
되어야 합니다. DIMM의 경우는 어떤 Motherboard에 꽂힐지 모르는 팔자이기 때문에 어떤 구린 PCB를
만나더라도 동작할 수 있도록 더욱 많은 설계마진이 필요하기 때문입니다.
실제로 DIMM 설계자보다는 on-board DDR2 설계자가 많기 때문에 AC spec은 통상 무시해도
좋다, 라고 말할 수도 있겠습니다. 다만 보다 마진을 많이 가져야 하는 경우에는 자체 spec으로 AC
spec까지 적용하는 것도 고려해 볼만한 사항입니다.
16
1-9. 정확한 Termination의 중요성
실제로 DDR2의 디버깅에 있어서 자주 발견되는 오류는 적절치 못한 termination에 기인한 경우가
많습니다. 특히 저항 termination에 익숙치 않은 고주파 설계자들에게 쉽게 발생하는 문제로서 기본적인
설계지식부터 다시 검토해봐야 할 부분이 됩니다.
Termination은 보통 직렬 저항 또는 병렬 저항을 이용하여 저항까지 전달되어온 신호의 전압 레벨을 tune
하는 역할을 하게 됩니다. 이 때 중요한 점은 저항의 값과 연결 방식에 따라 일장 일단이 존재한다는 사실
이며 설계자는 이러한 trade-off를 정확히 판단하여 적절한 termination 방법을 정해야만 합니다.
Termination이 없는 경우
적당한 Termination이 걸린 경우
위의 그림은 DDR2/3 신호 수신단에서 저항 termination의 유무에 따른 수신 신호 파형의 변화를 보여준
예입니다. 일반적으로 저항 termination을 추가하면 오른쪽 그림처럼 전압 파형의 크기는 작아지지만,
신호의 loading이 보다 명확해져서 ripple과 over/undershoot 현상이 저감되고 파형이 안정적인 형상
이 되는 경우가 많습니다.
마진이 충분하다면 왼쪽 그림처럼 termination이 없어도 Eye mask와 관련된 SI 성능에 문제가 없을 수
도 있습니다. 그러나 이처럼 뭔가 "조절되지 않은" 큰 파형이 출렁이고 있는 경우는, 불행히도 EMI 적으로
문제를 일으킬 가능성도 높다는 점을 꼭 기억해야 합니다.
그리고 중요한 점은, DDR2/3에서는 이렇게 외부에 별도의 병렬 termination 저항을 달아주지 않아도
내부에서 ODT 기능을 활용하여 보다 효과적이고도 경제적으로 termination을 적용할 수 있다는
점입니다.
17
SI Design Guide for
DDR2/3 PCB
1-10. ODT의 활용
DDR2부터는 기존의 DDR과 달리 내부에 자체적인 termination용 저항이 탑재되어 있는데, 그것을 ODT
(One-Die Termination) 혹은 DCI (Digitally Controlled Impedance)라고 부릅니다. 이러한 ODT는
외부의 Control 단자를 이용하여 조절하게 되는데, 외부 입력 신호에 따라 각 선로 종단의 병렬 저항들이
switch on/off되게 됩니다.
위의 오른쪽 그림처럼 DDR2/3 내부에 존재하는 ODT를 잘 활용하면, 메모리 IC 외부에 termination용
저항소자를 달 필요가 없기 때문에 원가절감은 물론 설계의 편의성도 증진시킬 수 있게 됩니다. 그런
데 실제로는 적지않은 설계자들이 익숙치 않다는 이유로 외부에 저항을 달고 있는 경우가 많으며 경우
에 따라선 외부소자로 사용하는 것이 납땜을 통한 간단 튜닝에 있어서는 더욱 편한 면도 있습니다. 특히
ODT로 내장된 저항은 50, 75, 150의 일정한 값만 지정할 수 있기 때문에 설계자가 미세하게 튜닝하고
싶은 경우라면 불편하게 느껴질 수도 있긴 합니다.
결정적으로 ODT 저항을 조절하는 방법이 익숙치 않아서 ODT의 활용률이 떨어지는 경우가 많은 게
현실입니다. 그러나 언제나 성능개선과 원가절감이 필요한 설계자 입장에서는 내장된 ODT를 적극적
으로 활용하여 대량 생산 시 보다 안정적인 수율 및 부품단가를 줄이고 신호품질을 개선하는 것이 좋을
것은 명약관화한 일입니다.
18
특히 앞의 그림과 같이 데이터 선로를 분기하여 여러 개의 DDR2/3 칩을 사용하는 경우, controller에서
특정한 하나의 칩으로만 데이터를 전송할 때 ODT가 필수적으로 사용되어야 합니다. 다른 DDR2/3 칩의
ODT는 disable하고 목표가 되는 DDR2/3 칩만 ODT를 on 시켜서 해당 DDR2/3 칩에만 load가 잘 걸려야
신호가 정상적으로 전송되기 때문이지요. 이는 S/W 적으로 control 되는 ODT의 가장 강력한 장점으로써,
PCB 상에 저항소자를 추가하여 만든 termination으로 할 수 없는 선택적 동작이 가능하게 됩니다.
DDR2/3의 ODT는 왼쪽 그림과 같이 각 DQ/DQS/DM pin에
300옴 3개를, ODT pin에 300옴 3개가 달려있고 각 저항끼리
병렬로 S/W가 달려있습니다. ODT를 disable 하면 아무런
병렬 저항이 보이지 않으며, 일단 S/W를 끈 상태에서 enable
을 하면 300옴이 동시에 2개가 걸려서 150옴이 됩니다.
A6 (SW1)
0
0
1
1
A2 (SW2)
0
1
0
1
Rtt (Normal)
Disabled
75 ohm
150 ohm
50 ohm
여기에 위의 표처럼 순차적으로 저항간의 S/W를 조절하면 150옴/75옴/50 옴과 같이 병렬로 3가지의 저항
값을 termination으로 잡아줄 수 있는데, 이는 A0 ~ A9 Address field의 A2 와 A6의 2 bit를 조절하여 결정
하게 됩니다.
이러한 ODT 조절기능은 batch file등을 이용하여 controller에 load 시키게 되며, Controller의 동작 방식
이나 종류에 따라 사용방법이 조금씩 다를 수 있으므로, 제품 제조사에서 배포하는 별도의 ODT 관련 매뉴
얼을 참조하시면 보다 상세한 활용 방법을 익힐 수 있습니다.
다시 한번 ODT의 중요성에 대해 강조한다면, DDR2/3에 이미 내장되어 있는 ODT를 적극적으로 활용
하여 DDR2/3 Memory의 신호품질을 개선하고 불필요한 외부소자도 줄일 수 있다는 점을 명심하시기
바랍니다.
19
SI Design Guide for
DDR2/3 PCB
2. DDR2/3 Design Guide
2-1. 선로길이 맞추기: Skew 관리
2-2. DIMM case/On-board case
2-3. DIMM: Clock Line 설계
2-4. DIMM: 2T mode - Address/CMD Line 설계
2-5. DIMM: 1T mode with Termination - Address/CMD Line 설계
2-6. DIMM: DM/DQS/DQ 설계
2-7. On-board: Clock Line 설계
2-8. On-board: 2T mode - Addre7s/CMD Line 설계
2-9. On-board: 1T mode with Termination - Address/CMD Line 설계
2-10. On-board: DM/DQS/DQ 설계
20
2-1. 선로길이 맞추기: Skew 관리
고속의 디지털 설계에 있어서 동일한 종류의 동기 데이터가 전송되는 병렬 선로들의 길이를 맞추는
것은 매우 중요한 작업이자, 기본적인 설계지식이기도 합니다. 현실적으로 PCB Layout 상에서 DDR2의
DQ 선로와 같은 병렬 선로들은, 아래와 같이 다양한 길이와 모양으로 그려질 수 밖에 없습니다.
이렇게 다양한 layer로 분산되어 다양한 형상으로 진행되는 병렬 선로들의 전기적 길이, 즉 위상을 동기
시키기 위해서는 여러 가지 방법이 동원됩니다. 가잔 먼저 각 PCB Layout CAD에 존재하는 여러 가지
부가 기능을 통하여 위상을 동기 시키는 것이 가능한데, 중요한 것은 "어떻게" 길이를 보정하느냐 라는
문제입니다. 400Mbps 급의 DDR2에서 선로길이가 아주 길지 않다면, 대체로 물리적으로 길이만 맞추
어도 어느 정도 정상적으로 동작할 수 있습니다. 그러나 datarate를 올려가기 시작하면 분명히 한계점을
느끼기 시작할 것입니다.
그렇기 때문에 단순히 길이만 계산하는 방법이 아니라, 위상 동기를 위해 선을 꼬아놓은 구조의 특성
까지 물리적으로 확인하는 것이 필요해지며, 결국 PCB에 대한 전자기적 구조해석이 필요해집니다.
본 교재에서 설명하는 모든 SI 분석용 PCB 데이터는 이러한 EM 해석에 근간하고 있으며, 제대로 된
high speed digital 분석을 위해서는 반드시 필요한 과정입니다.
그리고 중요한 점은, 아무리 EM 해석에 기반한 SI 분석을 통한 skew 보정이 가장 실제적이라고는 해도,
어쨌든 초기설계 단계에서 DQ 병렬선로의 길이를 최대한 맞추는 것은 DDR2/3 PCB layout에서 가장
기본적인 전제조건이라는 점을 기억해 두시기 바랍니다.
21
SI Design Guide for
DDR2/3 PCB
2-2. DIMM case/On-board case
실제로 DDR2 메모리를 활용하는 경우는 크게 2가지 케이스로 분류해야 하는데, 모듈 형태로서 마더보드
에 장착 해야 하는 DIMM 형태와 PCB에 직접 DDR2 메모리 IC를 SMT로 실장하여 사용하는 On-board
형태로 구분합니다. 이 두 케이스 별로 설계방법과 적용되는 spec도 미묘하게 차이 나기 때문에, 적용
하려는 시스템에 따라 최적화된 설계 방법이 필요해집니다.
DDR2/3 DIMM을 이용한 경우
On-Board DDR2/3
본 DDR2/3 Design Guide part에서는, DIMM case와 On board case로 나누어서 각각의 주요 trace
설계법과 분석, 튜닝 방법에 대해 설명할 것입니다. 그리고 DDR2/3의 PCB trace 설계는 크게 Clock
line 설계, CMD/Address line 설계, DM/DQ/DQS 설계의 3 part로 나뉘어지며, 각기 비슷하면서도
조금씩 다른 기준으로 설계가 이루어져야 합니다.
DIMM과 On-board case는 공히 termination과 ODT에 대해 꼼꼼하게 체크할 필요가 있으나, 선로
배치와 방법론에서 여러 가지로 차이점이 있습니다. DIMM은 module을 통해 DDR2/3 메모리에 접근
하기 때문에 Controller에서 DIMM까지 가는 경로에 대한 설계만이 필요하지만, On-board의 경우는
Controller에서 DDR2/3 칩까지 전달되는 모든 경로에 대해 고려하고 튜닝 해야 합니다.
반면 경로조건은 다르지만, ODT 설정이나 termination에 따른 파형변화는 DIMM이나 on-board에
공히 적용되는 조건입니다. 고로 이후로 Design guide에서 이어지는 설명은 DIMM case와 on-board
case로 나뉘어져 있지만, 실제 DDR2/3 PCB 설계자들에겐 모두 도움이 되는 공통적인 내용들이 많으
므로 전체적으로 읽어보시기를 권장 드립니다.
22
2-3. General Case "2 DIMM": Clock Line 설계
우선, Clock 선로들은 uni-directional differential signaling scheme을 사용하고 있으며, SSTL1.8V
logic의 경우, DDR2 SDRAM의 differential Input buffer에서의 logic threshold 값은 0V를 기준으로
±500mV를 초과하지 않습니다.
기본 사항
● 일반적인 2개의 DIMM을 사용하는 Hardware Interface에는 Main Board 상에서 DIMM 한 개 당
3개의 differential clock signal이 공급되며, 공급된 clock의 재분배는 DIMM 모듈 내 buffer의 구성
에 따라 달라질 수 있습니다. 일반적인 2개의 DIMM을 사용하는 Hardware Interface에는 총 6개의
differential pair가 사용됩니다.
● Clock Trace는 Single Impedance는 60옴, Zodd(<Zsingle)는 50Ohm으로 설계하여 100Ohm
Differential impedance은 확보합니다. (6층일 경우, Physical Width와 Height에 대한 Physical
Dimension은 29페이지의 그림을 참조하시기 바랍니다.)
● Memory Controller의 Application Note에서는 Main Board 상의 Option Cap에 대한 내용들이
기술되어 있는데, 이것은 Pulse Egde의 non-monotonic 현상을 개선할 수 있으므로, 가능하면
Schematic에 반영하도록 합니다. (추후 상세 기술)
23
SI Design Guide for
DDR2/3 PCB
선로 길이의 관리
• Memory Controller와 DIMM간의 trace 길이는 최대 5000mils (12.7cm)를 넘지 않도록 합니다.
이렇게 최대 길이에 제한을 두는 이유는 Crosstalk (periodic jitter)와 Dielectric Loss(ISI)에 의한
Deterministic(Bounded) Jitter를 저감하여, Timing/Voltage Margin을 최대로 확보하기 위합니다.
DDR2 interface 상의 Clock의 length는 source synchronous timing method에서 strobe signal과
같이 중요한 reference signal이므로 너무 짧게 배선할 경우, 부품 실장과 Skew 관리 시 사용되는
meander line (=serpentine trace)을 위한 공간을 확보하기 어렵습니다.
• Differential line의 두 선로(+/- trace)의 길이 차이는 최대 0.25mm 이내여야 합니다. 이는 +/-Signal
phase에 의한 common mode noise를 저감하기 위해서입니다. (그림 참조)
Parallel Termination (100Ohm Shunt)
Zdiff=100Ohm( Zodd=50Ohm)
위의 그림은 Differential Clock의 Positive Length가 0.5mm 더 긴 경우, Receiver에서 관찰된 differential
voltage와 common voltage의 결과입니다. 이 경우 두 선로간의 Differential voltage의 차이는 적지만,
common voltage는 매우 큰 차이를 보이고 있음을 알 수 있습니다.
24
• DIMM의 differential pin에서 tight coupled 구간까지의 최대 길이는 0.5mm로 제한합니다. 즉 아래와
같이 두 개의 벌어진 pin에서 선로가 나온 후에는 differential pair 구성을 위해 가까이 붙이게 되는데,
최대한 가까운 거리에서 얼른 붙여야 한다는 의미입니다.
아래 그림은 Differential Signal이 Via의 Uncoupled 구간에서 Reference Change로 인해 야기시키는
Noise source를 나타내고 있습니다. (SIwave Near-Field Simulation)
25
SI Design Guide for
DDR2/3 PCB
선로 간의 간격
• Clock 신호선과 다른 신호선간의 거리는 최소 0.5mm 이상 이격할 것을 권장합니다. 만약 이 거리가
가까워지면, 불필요한 crosstalk로 인해 periodic jitter가 발생할 수 있습니다. Clock 신호는 Address/
CMD/Ctrl/DQS의 기준이 되는 신호이므로, 이러한 점에서 보다 주의해야 합니다. 이것은 Data
Group (Byte Lane) 신호 중, reference signal인 strobe 신호에 대해서도 동일하게 적용됩니다.
• Reference Length를 확보하기 위해 Differential Signal을 Tuning (Meander Line)하는 경우, Zdiff의
Tolerance가 심해지지 않도록 아래와 같이 멀리 이격합니다.
• Differential 선로를 meander 형태로 꺾을 때는, 간격에 더욱 주의해야 합니다. 아래 그림처럼 꺾인
pair끼리 너무 가까이 붙어있으면 NG (No good, 말 그대로 NG!)라고 할 수 있습니다.
NG
NG
NG
Edge to edge spacing(S1) between
positive and negative signal
Edge to edge spacing(S2) between
meander lines: > 2S1
위에서 지적한 NG (S1=S2) 구간은 Zdiff의 Impedance가 100Ohm으로 형성되지 않으며, Skew로 인한
설계 delay가 다소 변화될 수 있습니다.
이렇게 부득이하게 differential line을 꺾어야 하는 경우는, 다른 signal pair와의 거리 S2가 differential
line 자체의 간격 S1보다 최소 2배 이상이 되도록 설계해야 합니다. 만약 그 이하의 거리로 pair끼리
맞닿으면, 인접 Signal이 Switching할 때 Switching조건에 따라 Zodd, Zeven의 임피던스에 Variation이
발생되고 Velocity 또한 변화되어 위상 차가 더욱 커지게 되어, 결과적으로 common mode noise가
더욱 증가되기 때문입니다.
26
이러한 NG구간 단면의 E-Field 분포를 관찰해보도록 하겠습니다.
(모든 선 폭이 0.1mm이고 유전체의 두께도 0.1mm인 경우의 예입니다)
아래 그림은 S1=S2 인 경우의 단면 field 분포로서, 두 pair간에 불필요한 field가 형성되고 있음을 알 수
있습니다. 이렇게 Signal들이 인접하여 Coupling이 강해지면 Diff. Signaling에 대한 유효유전 상수가
작아지고 (전송속도는 빨라짐), 결과적으로 Diff. Impedance가 감소되게 됩니다.
S2=S1
Posi
Nega
Nega
Posi
Ref. Plane
아래 그림은 S2 = 2*S1 인 경우의 단면 field 분포로서, 위와는 다르게 양 쪽이 똑같이 안정적인 field
분포를 갖고 있음을 알 수 있습니다.
S2=2S1
덧붙여서, Differential Clock 선로의 Self Net에 skew가 생성되는 상황일 때, +/- 길이 오차 (Phase)를
우선적으로 보정하되 Uncoupled 구간의 관리를 우선 순위로 합니다.
예제)
※ 우선순위
1. Pin 배열로 인해 Skew가 생길 경우, Phase
delay를 보정(Serpentine Trace).
2. Skew보정 시, 생성된 Uncoupled Region
을 최소화하며, 불연속이 적어지도록 두 라
인 사이의 영역을 관리
27
SI Design Guide for
DDR2/3 PCB
Termination 관련 @ Main Board
DIMM 내의 Clock input buffer의 근처에는 differential line의 +/- 선로간에 병렬 저항이 사용되므로,
Main Board에서는 별도의 Shunt Termination저항 (100Ohm)을 사용하지 않습니다. 또한 Reflection
으로 인한 Voltage/Timing Margin을 더 확보하기 위해 Buffer Strength와 Termination을 최적화할
필요가 있습니다. Main Board 상에 100Ohm shunt termination을 추가로 적용할 경우, DC IR drop이
발생하여 파형이 작아지므로 DC적인 noise margin이 줄어들게 됩니다.
선로의 배치
Clock 선로는 기준신호이기 때문에, 다른 신호보다 더 세심하게 배치되어야 합니다. Routing 우선순위
는 DDR2 Interface Signal들 중에 첫 번째이며, 불가피하게 Impedance 불연속 구간이 발생할 경우,
이것을 최소화하여 설계하려는 노력이 필요합니다. (전술한 Uncoupled Region참조)
상기 그림은 외층에 배선한 edge-to-edge coupled type의 Microstrip일 경우이며, FR4 system에서
Physical Dimension이 W=0.1mm, S=0.1mm, H(PCB Layer Stack 중, Prepreg Thickness)=0.1mm
일 경우, 약 Single Zo가 63Ohm 정도로 형성되며, Zodd가 약 50.5Ohm 정도로 형성이 됩니다.
(Zdiff=2*Zodd)
28
아래는 6층 기판의 예로써, 1층 혹은 6층에 Differential Signal을 상기와 같이 Coupled Microstrip으로
배선하고, 2층 5층은 Reference Plane (GND)으로 구성한 PCB Layer Stackup의 예입니다.
이러한 stackup 방법은 4번째 층에 Power Plane Layer가 들어가기 때문에 Power(4th)-Ground(5th)
Plane Pair에 의한 Power/Ground Impedance를 저감하는데 도움이 됩니다. 또한 선로를 배선하는
1,3,6층은 어느 Layer에 배선을 해도 Ground를 reference plane으로 가져갈 수 있고, 층별로 배선 폭
(W 약 0.1mm)을 바꾸지 않아도 약 60옴의 일정한 특성 임피던스를 갖게 된다는 장점도 있습니다.
물론 이보다 더 많은 stackup을 사용하면 당연히 더 좋은 배선 층과 안정적인 전원 특성을 가질 수도
있지만, 본 예에서는 BGA의 짧은 Ball Pitch에 대한 구현성과 원가절감을 고려한 6층 (1.6T Bulk PCB)
의 예를 들고 있습니다. 특히 위에서 제시한 방법은 DDR2 Interface에서 SI/PI/EMC에 유리한 Layer
Assign임을 참고하시기 바랍니다.
※ 참고문헌: "Printed Circuit Board Design Techniques for EMC Compliance"
Ch2. Section2.5 Layer Stackup Assignment
29
SI Design Guide for
DDR2/3 PCB1pF Shunt Termination
200Ohm Shunt Termination Resistor
위 그림은 DDR2 Memory Module 내의 Differential Clock 선로의 Interconnection Topology
(Multi-Drop)를 나타내고 있습니다.
아래 그림은
1. Interconnection Topology의 빨간색 부분에 Port들 (8 Multi port)을 인가하고,
2. Full PCB를 주파수 영역의 Filed Solver인 SIwave로 해석한 후,
3. SPICE model을 추출하여
4. Nexxim에서 Main Board의 clock interconnection topology 연결하여 SI적인 특성
(667Mbps - Clock: 333MHz)을 분석
하는 과정을 Schematic으로 나타낸 것입니다.
SIwave에서 분석된 DDR2 Memory Module의
Clock Interconnection에 대한 회로 Element
위와 같이 PCB의 SPICE 모델을 불러온 후, IBIS 설정 후에 differential 입력을 설정하여, Differential
input에서의 Clock 파형을 아래와 같이 해석해보았습니다.
30
Layout 상의 Clock trace 형상에서 확인했듯이, 분기 (Multi Drop) 구조로 발생되는 Reflection Noise
로 인하여 각 파형들의 edge가 깨끗하지가 않고, non-monotonic response가 발생하고 있습니다.
이러한 Non-monotonic response를 완화하기 위해, Main Board Topology를 아래 그림과 같이
변경해 보았습니다. 아래 회로는 DIMM Connector 부근에 5pF의 Shunt Capacitor를 추가한 것입니다.
31
SI Design Guide for
DDR2/3 PCB위 결과에서 굵은 파형이 5pF의 Capacitor를 추가한 그래프인데, Non-monotonic response가 줄어
들면서 파형이 약간 개선된 것을 확인할 수 있습니다. 다만 Capacitor의 추가로 인해 Reference Event
Time이 조금씩 느려질 수 있기에, 적당히 trade-off를 하면서 튜닝해야 합니다.
(Buffer Strength와 BOM의 결정)
위 그림은 Clock Buffer Strength를 변경해가면서 해석한 결과입니다.
이처럼 S/W 또는 H/W적으로 내부의 Output Buffer의 Strength를 변경할 수 있는데, 일반적으로
Output Buffer의 Strength를 강하게 할수록 Output Impedance는 작아집니다. 이런 식으로 신호의
세기를 변화시킴으로써 slew rate를 튜닝 할 수 있는데, Buffer Strength 조절은 Nexxim에 Import된
Output buffer의 IBIS model의 "Model Selection" UI를 통해 변경함으로써 손쉽게 확인해볼 수 있습
니다.
32
2-4. General Case "2 DIMM": Address/CMD
Line 설계 (분기구조, 2T모드)
Address/CMD 선로 설계에 있어서는 1T 모드와 2T 모드의 경우를 고려해야 하는데, 이것은 Memory
Controller의 DDR2 Interface Pin이 어떻게 구성이 되는 지와 관련이 있습니다. JEDEC에서 정의한
DDR2 DIMM Reference Design은 아래와 같이 다양한 종류가 있습니다.
General Case의 2 DIMM Interface 시, 메모리 모듈을 개발하는 회사에서는 아래의 모든 조합에 대해
호환성을 가지도록 설계하여야 합니다.
33
SI Design Guide for
DDR2/3 PCB
Source: RAMpedia by Virtium Technology
34
PCB상에서 Address/CMD 선로를 설계할 때는, "Memory Controller"에서의 Address/CMD pin이 Copy
유무 (Slot1, 2 전용 Pin)에 따라 큰 차이가 있습니다. 만약, Memory Controller의 Address/CMD pin이
각각 1개일 경우라면, 아래 그림처럼, 2개의 DIMM에 분기시켜야 합니다.
하나의 Address/CMD pin에서 나온 선로는 DIMM 2개에 연결되며, 이때 확장을 위한 Slot2로 인해
Slot1에는 불필요한 stub가 물리적으로 배선이 됩니다. 이러한 Stub1과 Stub2의 길이를 최소로 해야
지만 Memory pin에서의 non-monotonic response를 줄일 수 있습니다.
위와 같이 분기된 경우 하나의 DIMM에 9개의 DDR2 칩이 존재한다면, 하나의 선로에 총 18개의 load
(1DIMM당 9개의 Receiver)가 걸리는 셈이 됩니다. 이는 매우 heavy한 load (IBIS내의 Ccomp의
값이 약 1pF~3pF)로서, address/CMD 신호를 생성하는 driver 신호의 Power가 커야지만 신호전압이
full-swing할 수 있게 됩니다.
이 때문에 분기구조를 사용하는 경우는 2T 모드를 사용하는 것이 유리한데, 만약 1T 모드로 동작시키
면 ISI (Inter Symbol Interference)가 너무 심해져서 Valid Window가 작게 형성되어 Timing margin
을 확보하기가 힘들어집니다. 여기서 발생하는 ISI는 Multi-Giga bps의 Serial I/O에서처럼 형성되는
Conductive/Dielectric Loss 때문이 아니라, heavy load에 의한 fan-out 현상에서 기인하고 있습니다.
35
SI Design Guide for
DDR2/3 PCB만약, Memory Controller에서 2개의 Address/CMD pin을 제공한다면, 분기할 필요 없이 각각의 DIMM
에 하나씩 걸어주면 됩니다. 이 경우는 load가 상대적으로 가벼워지기 때문에, 간단하게 1T 모드로 동작
시킬 수 있게 됩니다.
여기서 말하는 1T 모드는, 1주기의 Clock 신호당 1번의 Rising에서 Address/CMD 신호가 Sampling
되는 방법을 의미하고, 2T 모드는 2주기의 Clock 신호당 당 1번의 Rising에서 Address/CMD 신호가
Sampling되는 방법을 의미합니다. (아래 그림 참조)
※ 상기 그림은 Logic Timing Diagram이 아닙니다. 동일한 Interconnect Topology를 가지는
Address/CMD 신호가 Pulse Width를 다르게 가져갈 경우에 대한 例입니다.
36
위 그림은 하나의 address/CMD 선로를 이용하여 2개의 DIMM을 Mount했을 때의 SI분석 사례
입니다. DIMM하나 당 9개의 DDR2 Address/CMD receiver들이 존재하는 경우이며, 이것을 667Mbps
Speed grade에 대해 1T 모드로 동작시키면, Address/CMD 신호는 167MHz로 동작하게 되며 주기는
약 6nsec가 되고, PW는 약 3nsec정도가 됩니다.
1T Mode @ Single ADD/CMD BUS Pulse Width = 3nsec @ 667Mbps
위의 Eye Diagram 해석 결과를 보면, 분기구조에 대해 1T 모드로 동작 시에는 Load가 너무 Heavy
해서 ISI가 심해진 것을 알 수 있습니다. 이 경우 연속적 Switching하는 Bit Sequence가 발생되면
제대로 Voltage Swing이 되지 않게 되고, 결과적으로 위와 같이 Eye Window가 작아지고 Timing/
Voltage Noise Margin을 확보할 수 없게 됩니다.
37
SI Design Guide for
DDR2/3 PCB2T MODE @ Single ADD/CMD BUS Pulse Width = 6nsec @ 667Mbps
위의 해석결과는, 같은 분기구조에서 2T 모드로 동작시킨 경우의 Eye Diagram 결과입니다. 2T 모드
가 되면서 PW가 2배인 6nsec로 늘어났기 때문에, 연속적인 Bit에서도 거의 Full Swing을 할 수 있게
되었습니다. 결과적으로 ISI에 의한 영향이 조금 둔감됨으로써, Eye Valid Window가 약 3nsec정도
확보되는 것을 볼 수 있습니다.
상기 Topology와 같이, Main Board의 DIMM 1근처에 10pF짜리 Capacitor(Option)를 추가할 경우,
38
Termination scheme이 개선됨에 따라 약 150psec정도 Eye Window가 더 커진 것을 알 수 있습니다.
이렇듯 Main Board 상의 Interconnect Topology 및 BOM 결정에 의해 Address/CMD 선로의 신호
품질을 개선할 수 있는데, 이러한 작업을 Pre Layout SI simulation이라고 합니다.
(회로도를 생성할 경우, 안정적인 품질의 BOM을 결정할 수 있습니다.)
마지막으로 Buffer Strength를 강화시켜본 해석결과를 살펴보도록 하겠습니다.
2T MODE + 10pF + Buffer Strength (1.8V sstl class1 12mA)
39
SI Design Guide for
DDR2/3 PCB기존의 Buffer Strength (8mA)보다 좀 더 센 12mA의 Buffer Strength를 가진 IBIS model로 교체한
결과를 보면 (Memory Controller가 SSTL Class2지원 시, Buffer Strength는 20mA까지 높일 수 있습
니다.), 이전 결과보다 Eye window가 750ps 정도 더 커진 것을 알 수 있습니다.
(Nexxim 내 IBIS Model Selector UI를 활용)
2T MODE + 10pF + Buffer Strength (1.8V sstl class1 12mA)
위 그림은 지금까지 적용된 분기구조의 Address/CMD 선로에 대해 각종 튜닝을 거친 후의 Timing
Diagram 분석입니다. Clock과 Address/CMD의 Waveform을 같이 Simulation함으로써, Propagation
Delay라던가, Reflection에 의한 Timing Margin같은 것들을 Post Layout (DIMM)+Pre Layout (Main
Board) Simulation을 통해 확인해볼 수 있습니다.
Timing 분석을 할 경우, Receiver인 DDR2 Memory의 Address/CMD Input Buffer에서의 Setup/Hold
Time을 확인해야 하며, 이것을 상기 Valid Before/After로부터 각각 빼서 남는 부분이 Setup/Hold
Margin이 됩니다. 상기 그림에서는 Pre Layout된 Main Board의 Clock 길이가 Memory보다 상당히
길게 배선되어 Hold Margin이 적게 형성되는 예를 나타내고 있습니다. 이 때 Clock Delay (DLL setup)
는 Address/CMD Pulse width의 1/2입니다.
40
2-5. General Case "2 DIMM": Ctrl Line
설계 (1T mode Address/CMD 설계)
Ctrl 선로는 Address/CMD와 달리 항상 2개의 pin이 각기 다른 DIMM을 load로 하기 때문에, 1T 모드만
사용해도 무방합니다. 이 경우는 분기구조 없이 2개의 pin이 각각의 DIMM에 연결되는 Address/CMD
선로의 1T 모드 동작의 경우와 설계방법이 동일합니다.
41
SI Design Guide for
DDR2/3 PCB앞을 그래프에서 보여지듯이, Valid Window는 약 1.39nsec 정도가 나오지만 Voltage Noise Margin이
별로 없는 상황입니다. 이런 경우 Pre Layout 해석을 통해 효과적으로 개선할 수 있으므로, SSN과
Crosstalk에 의한 영향이 중첩이 될 경우를 대비해서 더 큰 Voltage Noise Margin을 확보하도록 해보겠
습니다.
여기에 2T 모드 튜닝 때와 마찬가지로, 위와 같이 10pF짜리 Capacitor를 추가하였습니다.
위 그래프의 결과를 통해 Reflection Noise가 다소 완화되면서 Valid Window가 400ps 정도 더 커진
것을 알 수 있으며, 위 아래의 Noise Margin도 늘어났습니다. 이렇듯 Nexxim을 이용한 SI 시뮬레이션
을 통해 Option discrete component가 어떠한 부분을 개선할 수 있는지 미리 예측해볼 수 있게 됩니다.
42
1T Mode ADD/CMD and Control Signals (with 20pF capacitor)
위 그래프는 분기구조가 없는 1T 모드의 Ctrl/Address/CMD 선로의 Timing Diagram 분석 결과입니다.
적당한 선로 설계와 튜닝을 통하여 Valid Window를 확보하였고, 그에 따라 안정적인 동작이 가능하도록
충분한 Setup/Hold Margin이 확보되었음을 알 수 있습니다. 이 때 역시 2T 모드와 마찬가지로 Clock은
Ctrl/Address/CMD 신호의 Center Align을 위한 DLL 값을 사용한 결과입니다.
43
SI Design Guide for
DDR2/3 PCB
2-6. General Case "2 DIMM"
: DM/DQS/DQ 설계
DDR2 SDRAM부터는 칩 내부에 Termination 저항을 장착하고 조절하는 ODT(On-Die Termination)
Technology를 적용하고 있습니다. 그래서 DATA Group Signal의 Interface에 있어서 가장 먼저 확인
하셔야 될 작업은 사용할 Memory Controller가 ODT Technology를 채택하고 있는가 입니다.
아래의 Table들은 Controller와 DDR2 칩 모두 ODT가 있을 경우의 ODT설정법입니다. On-Board
에서도 Data가 분기되는 경우에는 Table분석이 반드시 필요합니다만, Data 신호가 Point-to-Point로
연결되는 경우에는 별도의 Table분석이 필요하지 않습니다.
44
Signal Write Mode Operation 1R/2R Slot1 Operation
각각의 DIMM에 SDRAM이 Single Side에만 존재하는 경우, 첫번째 DIMM으로 Memory Controller
에서 Write하는 경우에 대한 Simulation을 가정해보겠습니다. 이 Simulation 사례에 사용된 Memory
Controller는 ODT Technology를 적용하고 있지 않기 때문에, Read Mode Operation을 위한 물리적인
Parallel Termination (0.9V Pull-up Resistor)이 Memory Controller 근처에 있습니다.
45
SI Design Guide for
DDR2/3 PCB위 그래프는 DIMM2에서 ODT를 50옴으로 적용하고 있을 때의 DIMM1 DQ signal에 대한 Eye-Diagram
으로서, 1.26ns의 Eye window가 적당히 확보되고 있는 것을 알 수 있습니다.
그러나 만약 DIMM2의 ODT를 Disable하게 되면, termination되지 않은 DIMM2쪽 선로가 Open-Stub
이 되어버리면서 그 영향으로 DIMM1의 Data Input Buffer에서는 Non-monotonic response가 발생
하게 됩니다. 위와 같이 Eye window가 1.26ns에서 0.81ns로 무려 450psec나 손해를 보게 되면서
Timing Margin을 확보하기 어려워집니다. 이 간단한 사례를 통해, 사용하지 않는 DIMM의 ODT의
설정 여부가 신호품질에 얼마나 큰 영향을 주는지 알 수 있습니다. 또한 물리적인 확장 Slot이 있는
경우, 하나의 DIMM만 사용하여 DUAL Channel을 구성하지 않을 경우도 상기와 같은 현상이 나타납니다.
46
위 그래프는 Single-Ended DQS를 사용한 경우의 DQ의 Timing 분석 결과로서, Valid Before, Valid
After가 충분히 확보되어 Setup/Hold margin도 충분히 확보된 결과를 보여주고 있습니다.
위의 예에서는 Driver쪽에 Jitter를 추가한 Simulation 결과라서 Receiver에서도 많은 양의 Jitter가 발견되고
있는데, Valid Before/After를 계산할 때는 이러한 Jitter 부분을 빼야 한다는 것을 보여주고 있습니다.
47
SI Design Guide for
DDR2/3 PCB이번에는 DIMM에서 Memory Controller 쪽으로 데이터를 전송하는 경우, 즉 Controller가 read하는
경우를 분석해 보겠습니다.
DIMM2에서 ODT 50Ohm 설정했을 경우
DIMM1에서 Memory Controller로 Driving하는 경우에도, 사용하지 않는 DIMM2는 ODT 50Ohm으로
설정되어 있어야 위와 같이 약 1.38ns정도의 Valid Window를 확보를 할 수 있습니다. 만약 이 때
DIMM2에서 ODT를 사용하지 않는다면, 아래와 같이 Eye Diagram이 변화하게 됩니다.
48
DIMM2에서 ODT disable 설정했을 경우
DIMM2에서 ODT가 Disable되어 있을 경우에는 Open-Stub에 의한 Multiple Reflection으로 약 위와
같이 200ps정도의 Valid Window가 감소되었습니다. DIMM으로 write하는 경우보다는 ODT disable에
의한 손실이 적긴 하지만, 어쨌든 중요한 사실은 read 모드이건 write 모드이건 간에 controller와 DIMM
간의 통신 중에는 사용하지 않는 나머지 DIMM에 대해 ODT를 잘 적용해야 불필요한 반사와 손실을
최소화할 수 있다는 점입니다.
DIMM2에서 ODT 50Ohm일 경우, MC쪽 Parallel Termination Rt의 Sweep
49
SI Design Guide for
DDR2/3 PCB앞의 그림은 Memory Controller쪽의 Rt Parallel Termination의 값을 여러 가지로 적용해본 결과
입니다. 이러한 외부의 Rt는 Memory Controller가 ODT를 사용하지 않을 경우 적용되는데, 값이 너무
작을 경우에는 Voltage Noise Margin이 확보되지 않습니다.
보라색 파형은 Rt가 55옴일 경우인데, 겨우 75mV정도 밖에 Noise Margin이 확보되지 않고 있으며,
이렇게 SSN과 Crosstalk이 중첩이 되면 충분히 Margin을 가지는 설계를 할 수 없습니다. 반면 120옴인
경우 약 217mV 정도의 Noise Margin이 확보되는 것을 볼 수 있는데, 이처럼 항상 100Ohm 이상의 값을
채택하는 것을 권장합니다.
이와 같이 Designer/Nexxim에서는 DIMM과 연계한 Pre Layout SI simulation을 통해 적절한 Rt값을
용이하게 결정할 수 있습니다.
위 그래프는 Single-Ended DQS를 사용한 경우의 DQ의 Timing 분석 결과로서, Valid Before, Valid
After가 충분히 확보되어 Setup/Hold margin도 충분히 확보된 결과를 보여주고 있습니다.
위의 예에서는 Driver쪽에 Jitter를 추가한 Simulation 결과라서 Receiver에서도 많은 양의 Jitter가
발견되고 있는데, Valid Before/After를 계산할 때는 이러한 Jitter 부분을 빼야 한다는 것을 보여주고
있습니다.
50
SUMMARY: General Case의 2 DIMM Design
마지막으로 DDR2와 같은 Source Synchronous Timing Method를 사용하는 High Speed Parallel I/O
에서 고려해야 할 사항들은 아래와 같습니다.
1. Clock의 길이에 의거한 Address/CMD/Ctrl/DataStrobe 선로 Skew관리
2. Data Group (DM, DQ, DQS)에서 Strobe 길이에 의거한 Data/Data Mask 선로 Skew관리
3. Buffer Strength와 Termination을 최적화
4. SDN (Signal Delivery Network) 급전 지점에 공진이나 Return Current Path의 결함제거.
5. PDN (Power Delivery Network) Low Impedance Profile
6. SSN과 Crosstalk을 최소화
7. Register Setup (Buffer Strength, Delay, ODT 등)이 올바른가?
이러한 사항들을 잘 확인하면서 PCB를 설계함으로써, DDR2 Read/Write Test시 Logical Malfunction을
예방할 수 있을 것입니다.
51
SI Design Guide for
DDR2/3 PCB
2-7. On-board: Clock Line 설계
32M x 16bit DDR2 4 memory interface Example
본 파트에서는 상기와 같이 On-Board DDR2 Interface시에 가장 많이 사용되는 32M 16bit DDR2
4 Memory의 PCB설계 방법에 대한 예를 소개하고자 합니다.
우선 General Case 2 DIMM PCB 설계와 마찬가지로, PCB의 제조단가를 줄이기 위해서 6 Layer
Stackup을 권장합니다. 마찬가지로 가장 먼저 확인해야 할 부분은 Termination으로서, Memory
Controller에서 ODT를 활용할 수 있는지를 확인해야 합니다.
(DDR2 Interface 관련 부분이므로, Data Group Signal들에 대한 확인이 필요)
Clock Signal은 일반적으로 Memory Controller에 2쌍의 Clock Output Buffer가 존재하기 때문에
아래의 Topology가 흔히 쓰이게 되는데, 여기에는 여러 가지 Termination 방법이 존재합니다.
CLK0_Positive Input Buffer
CLK0_Positive Output Buffer
(non-inverting)
CLK0_Negative Output Buffer
(inverting)
(non-inverting)
CLK0_Negative Input Buffer
(inverting)
Branch Point
52
이와 같은 Topology에서 선로가 분기가 되는 분기점은 최대한 Memory IC 근처에 존재해야 합니다.
대부분의 DDR2/3 Application Note에서는 "Balanced T Branch"를 권장을 하고 있는데, 이처럼
아래와 같은 Design Rule을 확보할 필요가 있습니다.
Clock Line의 전체적인 물리적 길이는 50mm~75mm 정도로 설정합니다. (Bulk 6층 기판에서 3개의
배선 층을 활용하여 2개의 Memory에 Routing할 경우) DIMM의 경우와 마찬가지로 선로길이가 너무
짧으면, DFM에 의한 Decap 및 Source/End Termination을 적용하기 위한 공간이 부족해져서 Parallel
I/O 신호들 간의 Skew를 Tight하게 관리할 수 없습니다.
반대로 너무 길 경우, Channel Length의 증가로 발생한 ISI와 Parallel Length의 증가로 인한 Crosstalk
로 인해 SI 특성이 나빠질 수 있으며, 전하가 가/감속되는 Loop Size의 증가로 인해 EMI특성이 나쁘게
나타날 수 있습니다.
위 그림에서는 Stub1, 2의 길이를 약 15mm이내에서 관리하는 것을 권장하는데, 이 길이가 증가할
경우 Input Buffer에서 전압파형의 Rising/Falling시에 Non-monotonic response가 증가하기 때문
입니다. 또한 위의 예에서는 Driver-Receiver간 선로 길이가 (Digital 신호의 Knee Frequency에 대한
Wavelength기준으로) 파장의 1/20보다 길어졌기 때문에, 반드시 Series 혹은 parallel termination이
필요해집니다.
53
SI Design Guide for
DDR2/3 PCB우선, Termination이 없는 경우 Input Buffer에서의 Differential Voltage Waveform이 어떻게 되는지
관찰해 보도록 하겠습니다.
(Trace Width=0.12mm, Spacing Between Diff. pair = 0.1mm)
Output Buffer
= Diff. SSTL Class1 8mA (Altera FPGA)
(Output Impedance = 25.7 Ohm)
위의 결과처럼 termination이 없으면 과도한 Overshoot/Undershoot이 발생하고, 이로 인해 EOS
(Electrical Overstress)는 물론, 신호반사에 의한 전하의 가감속이 발생하여 EMI 특성이 나빠지게
됩니다. 이러한 특성을 개선하기 위해, Output Buffer와 그것을 배선할 Transmission Line의 특성을
고려하여 여러 가지 방법으로 Termination을 적용해볼 수 있는데, 크게 3가지의 termination topology
가 존재합니다.
54
1) Series Termination을 사용할 경우
(667Mbps, Clock Frequency = 333MHz)
Coupled Transmission Line의 Zodd가 약 49.1Ohm이고,
Output Buffer의 Output Impedance가 약 25.7Ohm이므로,
23.4Ohm의 Series Damping저항을 사용한 경우,
VIH=+250mV
VIL=-250mV
위와 같은 간단한 Series Termination의 장점은, Overshoot/Undershoot에 의한 RF Spectrum을
최소화할 수 있으면서도 DC 전력소모가 거의 없다는 점입니다. 또한, 선로를 Routing할 때 최대한
대칭을 유지할 수 있습니다. (이러한 Uncoupled Region의 최소화는 Memory Controller 업체에서
Logic 안정성을 위해서 추천하는 방법이기도 합니다)
단점으로는, Input Buffer의 Differential Logic Threshold 전압이 약 ±250mV 밖에 안됨에도 불구하고
과도하게 큰 Voltage Swing을 해버려서, EMI특성이 나빠질 수 있다는 점입니다.
55
SI Design Guide for
DDR2/3 PCB
2) Parallel(Shunt) Termination (Balanced)을 사용할 경우
(667Mbps, Clock Frequency = 333MHz)
위의 Topology는 양쪽 receiver에 shunt termination (Rt=100 Ohm)을 적용한 경우이며, 이에 따른
Receiver의 Differential Voltage Waveform은 아래 그림과 같습니다.
473mV
VIH=+250mV
VIL=-250mV
위 결과에서처럼, Overshoot/Undershoot가 제거되어 EMI 특성이 크게 개선될 것으로 예측됩니다.
다만 대략 473mV 정도의 Voltage Noise Margin이 확보되긴 하였으나 전압이 너무 작게 Swing한다
는 단점이 있습니다. 또한 병렬 저항으로 흐르는 전류로 인해 DC 전력소모가 크게 증가하기 때문에
휴대용 기기에 대한 Topology로는 권장하기 힘든 방법이라고 할 수 있습니다.
56
3) Parallel(Shunt) Termination (Unbalanced)을 사용할 경우
(667Mbps, Clock Frequency = 333MHz)
Name=required
+ -
VPOWER
IN
GND
OUT
1
R26
PULLUP
100
1
2
W=0.12mm
P=10mm
SP=0.1mm
1
2
W=0.12mm
P=10mm
SP=0.1mm
inv_in
2
OUT
0
logic_in
enable
1
2
W=0.12mm
P=45mm
SP=0.1mm
V2
inv_out
PULLDOWN
W=0.12mm
P=5mm
SP=0.1mm
1
2
W=0.12mm
P=5mm
SP=0.1mm
POWER
IN
GND
OUT
0
inv_in
0
위와 같이 한쪽에만 저항을 다는 Unbalanced Shunt Termination을 적용하면, DC적인 IR Drop을
줄일 수 있어서 아래 그림처럼 양쪽에 저항을 단 경우에 비해 Voltage Noise Margin을 더 많이 가져갈
수 있다는 장점이 있습니다.
+
Name=required1
V-
VIH=+250mV
VIL=-250mV
다만 이 Topology처럼 배선할 경우, 한쪽에만 Shunt Termination이 사용되므로 전체적인 비대칭성에
대해 다른 Topology들 보다 좀 더 주의해서 다루어야 할 필요가 있습니다.
57
SI Design Guide for
DDR2/3 PCB앞에서 설명한 것처럼, 각각의 termination 방법에 따라 나름의 일장일단이 있습니다. 이 방법
모두 Logic 안정성의 관점에서는 크게 문제가 없겠지만, 설계하고자 하는 application에 따라 적절한
Topology를 선택할 필요가 있습니다.
1) Series Termination
● 전력소모가 적기 때문에, 휴대기기에 권장
2) Parallel termination (balanced)
● EMI를 최대로 저감하고 싶을 때 권장
3) Parallel termination (unbalanced)
● 1)번과 2)번의 절충이 필요할 때 권장
마지막으로 병렬 저항을 사용할 경우에는, Voltage swing의 저하를 막기 위해 저항소자는 1개만 사용
하는 것이 좋습니다.
58
2-8. On-board: 1T mode - Address/
CMD Line & Ctrl 설계
On-board 4 memories 용 PCB를 설계할 때, Address/CMD Port가 Memory Controller에서 2개씩
존재하는 경우는 위와 같이 1 Driver - 2 Receiver로 회로가 구성이 되며, Control Signal들의 Topology
와 동일해 집니다.
(이 때 Speed Grade가 667Mbps일 경우, Add/CMD 1T, Control Signal의 Operating Frequency는
약 166MHz이며, 이 경우 Bit의 Pulse Width는 약 3nsec가 됩니다.)
아래의 회로도는 Clock Length에 기반하여 양쪽이 65mm의 길이가 되도록 배선한 사례입니다.
위와 같은 경우 Rising time을 기준으로 물리적 길이에 따라 Reflection의 영향을 받으므로 다음과 같이
Memory Input buffer의 over-driven으로 인해 Overshoot/Undershoot가 형성됩니다.
59
SI Design Guide for
DDR2/3 PCBVIH=1.15V
그런데 이렇게 출렁이는 파형이 검출되더라도 AC Overshoot/Undershoot Area를 계산해보면
IC Maker의 Spec을 만족하는 경우가 많아서, 결과적으로 logic에 문제가 없기 때문에 Series
Termination을 생략하는 경우가 많습니다.
하지만 공간이 허락하는 한, EMI 품질을 좀더 확보할 수 있도록 Array Resistor를 이용하여 모든 신호에
Source Termination하는 것을 권장합니다.
아래는 EMI 품질을 보다 확보하기 위해 Source Termination을 적용한 회로도 입니다.
가능한 짧게 배선하여 Source Termination
(물리적길이<lamda/10) 할 것을 권장하지만,
DFM Rule와 Array R 실장을 위해 설정한 값
60
이렇게 source termination을 적용하면, 위의 그림과 같이 Overshoot/Undershoot까지 깔끔하게 제거
할 수도 있습니다. 대신에 Input Buffer에서 Slew가 약간 감소하게 되어 Valid Window는 약간 손해를
볼 수 있지만, EMI 특성이 훨씬 안정적으로 됩니다.
Source termination에 의한 EMI 저감효과를 다각도로 관찰해보기 위해, 먼저 far-field 해석의 경우를
예로 들어보겠습니다.
SIwave 에는 Push Excitation 이라는 기능이 있어서, 실질적인 신호파형을 직접 PCB의 물리적 구조에
신호원으로 입력할 수 있습니다. 아래 그래프는 Nexxim에서 SSTL 1.8V Class1 8mA의 출력 전압파형
을 나타낸 것입니다.
61
SI Design Guide for
DDR2/3 PCB이러한 시간 축 전압파형의 주파수 스펙트럼은 아래와 같으며, 이러한 주파수별 신호 크기를 SIwave
상에서 Driver pin의 voltage source로 인가할 수 있습니다.
Voltage Spectrum (Maximum Switching)
Driver Pin
Voltage Source를 인가
(Frequency Depe ndent)
Push Excitation
(좌측의 Spectrum을 SIwave에 인가하여 EMI
해석을 진행)
아래 그래프는 far-field 해석결과로서, 3m 떨어진 거리에서 흡수되는 E field 크기를 주파수 별로
나타낸 것입니다. 왼쪽이 termination이 없는 경우이고, 오른쪽이 37.7 ohm의 source termination을
추가한 경우의 결과입니다.
40dB
34dB
498MHz(3rd Harmonic)
Source Termination이 없는 경우
source termination: 37.7 ohm
두 경우에 대해 radiation된 E field 크기를 보면, source termination이 추가되면서 불필요한 주파수
에서의 방사량이 6dB 정도 줄어든 것을 확인할 수 있습니다. 이처럼 source termination이 추가되며
파형이 스무스 해질수록, 불요파 전력의 level도 낮아져서 외부로 방사되는 EMI 양도 줄어든다는 점을
잘 관찰해야 합니다.
62
이번에는 Near Field 해석결과를 비교해보도록 하겠습니다. 아래 그림은 source termination이 없는
경우, PCB 표면에서 1mm 위에서 계산된 near field (H-field) 분포도입니다.
아래는 Source Termination이 있는 경우의 near field 분포도입니다.
radiation 된 near field의 대략적인 기준 값으로부터 알 수 있듯이, far-field의 경우와 마찬가지로
near field에 있어서도 source termination이 추가되면서 불필요한 radiation이 줄어들었다는 것을
알 수 있습니다.
63
SI Design Guide for
DDR2/3 PCB
2-9. On-board: DM/DQS/DQ 설계
본 자료에서는 32M 16bit DDR2 4 memories Interface를 예제로 서술하고 있는데, 이 경우는 대부분
Driver-Receiver간에 Point-to-point Interconnect를 구성하고 있어서 아래와 같은 Topology를 사용합
니다.
Memory Controller
I/O
DDR2 Memory
I/O
Zo는 약 60~63Ohm (W=0.1mm고정)
(6층 PCB Stackup 중, 1,3,6층을 배선 층으로 사용가능)
DQS는 기본적으로 양방향 Differential Signal 이지만, 경우에 따라 (DDR1과의 호환을 위해서라던지)
Single-Ended Line으로 구성하는 경우가 있습니다. 본 예에서는 Single-ended로 구성하고, Memory
Controller에서 ODT를 채택하고 있지 않은 경우에 대해 설명하고 있다는 점을 기억해두시기 바랍니다.
이 경우 Topology 자체는 DQ 신호와 동일해 집니다만, Strobe 신호는 Byte Lane을 구성하는 Reference
신호로서 기본 DLL (Delay)값은 DQ/DM 신호와 1/4 주기만큼의 위상차가 존재합니다.
DQ는 양방향 Single-ended Signal로서, DQS와 마찬가지로 667Mbps에서는 333MHz로 동작되며,
DQS Strobe 신호의 Rising/Falling Edge에서 Bit Sampling이 수행됩니다.
이러한 DQS와 DQ를 배선할 때의 주의 사항은, 같은 Byte Lane을 구성하는 신호는 같은 층에 배선
하는 것이 좋다는 점입니다. 왜냐하면 같은 길이로 Parallel 신호들을 관리하더라도, Microstrip
(외층)과 Stripline (내층)의 전송속도 차 (Delay)가 발생할 수 있기 때문입니다. 또한 위의 Topology
에서 선로는 knee frequency에서의 wavelength/20 보다 물리적으로 길게 배선이 되므로, 반드시
회로도에 Termination을 포함시켜야 합니다. (만약 Memory Controller가 ODT를 가지고 있을 경우에는
PCB 상에 별도의 저항이 필요하지 않습니다.)
64
앞의 회로도는 Write 시의 SI분석을 수행하기 위한 회로도로서, 회로도상에 termination이 없기 때문에
아래 그림처럼 Overshoot/Undershoot이 과도하게 발생이 됩니다. Slew가 빠르고 SI적인 Timing
Window가 크게 형성되어 신호품질은 양호할지 몰라도, 이런 경우는 과도한 Overshoot/Undershoot로
인해 EMI 특성이 나빠질 수 있습니다.
아래와 같이 Nexxim의 IBIS model 설정에서 DDR2 메모리의 ODT를 Enable 시킬 수 있는데, 여러
가지 ODT 값을 적용한 결과파형들을 비교해보도록 하겠습니다.
65
SI Design Guide for
DDR2/3 PCBODT_Disable
ODT_150Ohmn
ODT_75Ohm
ODT_50Ohm
위의 결과에서 알 수 있듯이 ODT가 커질수록, 즉 termination 저항 값이 커질수록 전압파형이 작아지고
그에 따라 overshoot/undershoot도 줄어들고 있음을 알 수 있고, 그에 따라 EMI 특성도 좋아지게
됩니다.
ODT는 기본적으로 Parallel Termination이므로 전송선로의 Zo에 근접한 값 (50Ohm ~ 60Ohm)을 선택
하는 것이 좋습니다만, Speed Grade가 높이질 경우(667Mbps 이상)에는 가급적 Valid Window를 크게
가져갈 수 있도록 한 단계 위의 값인 75Ohm을 권장합니다.
DM(Data Mask)은 Memory Controller에서 Memory로 신호를 보내는 단 방향 신호로서, DQ와 마찬
가지로 ODT를 적용할 수 있습니다. 기본적으로 DM은 DQ와 같은 Topology로 구성되므로 별도의 설명
은 생략하였습니다.
66
이번에는 Read Mode Operation에 대해 SI분석을 수행한 후, Read mode를 위해 추가된 부품이
역으로 Write Mode Operation에 어떠한 영향을 끼치는가에 대해 확인해보도록 하겠습니다. 아래는
Memory IC가 구동하는 Read Mode에 대한 SI 분석 결과입니다.
Memory의 Output Buffer의 Strength가 Full일 경우
Memory의 Output Buffer의 Strength가 Half일 경우
Termination이 없을 경우에는 역시 위의 그림과 같이 Reflection에 의한 Overshoot/Undershoot
가 크게 형성되는데, 이 경우 출력 버퍼에서의 Strength가 크면 클수록 output impedance가 작아
져서 Transmission Line의 Zo와 Impedance Mismatching이 심해지고는 Over-driven이 발생하기
때문입니다. 이 때문에 결국 EMI 품질이 나빠지므로, 위의 경우에는 Memory 쪽에 Series Termination
Resistor를 추가하는 것이 좋습니다.
67
SI Design Guide for
DDR2/3 PCB본 예제에 사용된 DDR2 Memory의 IBIS모델은 Micron Technology사의 모델로서, Output Buffer
가 Full Strength일 때의 Output Impedance가 약 17.8 옴 정도이고, Half Strength에서의 Output
Impedance가 약 27.6 옴 정도입니다. 여기서는 고속 동작의 Timing을 많이 확보하기 위해서 Full
Strength일 경우의 분석을 진행해보았습니다.
우선 정확한 Series Termination을 위해서는 저항 위치가 반드시 DDR2 Memory에 가능한 가깝게 (TL1
을 짧게) 배치되어야 좋습니다. 아래 그림에서는 DFM Rule을 고려하여 약 15mm이내에서 Source
Termination을 추가하였는데, 이 때 주의할 점은 Artwork시에 Skew관리를 위해서 TL2에서만 Meander
(Serpentine) Trace를 사용하여야 하며, TL1은 가능하면 직선으로 최소 거리가 되도록 배선해야 합니
다.
TL2
TL1
이 때 정확한 Termination 저항 값은 TL2의 Zo인 62옴에서 Output Impedance(@Full Strength) 17.8옴
을 뺀 44.2옴입니다만, 아래 그림과 같이 Valid Window가 작아질 수 있으므로 Overshoot/Undershoot
이 크게 증가하지 않는 범위에서 적당히 선택하는 것이 좋습니다. (본 예제의 경우에는 33옴을 채택하였
습니다.)
44.2Ohm을 채택할 경우
33Ohm을 채택할 경우
68
이렇게 Read Mode Operation을 위해 33옴의 저항을 물리적으로 PCB상에 추가하게 되면, ODT처럼
소프트웨어적으로 On/Off할 수는 없습니다. 문제는 이것이 Write mode 동작 시에도 영향을 주게 된다
는 점인데, 이로 인해 발생되는 Write mode에서의 IR Drop이 얼마나 증가되는지 ODT 75Ohm의 조건
에서 확인해본 결과는 아래와 같습니다.
Write Operation시, Memory쪽에 ODT 75옴을 적용했던 결과
Series로 33옴이 추가된 후의 결과
상기와 같이 Vref = 0.9V를 기준으로, 아래 위로 IR Drop이 발생되어 Voltage Swing이 작아지지만,
SSTL1.8V Logic의 VIH=1.15V, VIL=0.65V인 것을 감안하면 충분한 Noise Margin이 형성되는 것을 확인할
수 있습니다. 즉 이와 같이 Read mode의 특성을 개선하면서도 write mode에 영향을 최소화하는 적당한
series termination을 선정함으로써, 양 방향 특성 모두를 안정적으로 구현하는 설계가 중요해집니다.
69
SI Design Guide for
DDR2/3 PCB
3. DDR2 SI Simulation Guide
3-1. SI분석을 위한 PCB SPICE model 추출
3-2. DDR2의 IBIS model 활용
3-3. SI 해석용 Schematic 구성
3-4. Eye Diagram / Mask 적용
70
3-1. SI 분석을 위한 PCB SPICE model 추출
DDR2/3의 성능을 검증한다는 것은, 결국 PCB 패턴 중에서 DDR2/3 데이터 신호품질의 pass/fail을
판별한다는 것을 의미합니다. 쉽게 말해서 엔지니어 입장에선 고속의 DDR2/3 메모리가 해당 Speed
grade에서 에러 없이 잘 동작할 것인가?의 여부가 궁금한 것이지요.
그것을 위해서는 제일 먼저 설계자가 PCB Layout을 SI 해석이 가능한 SPICE model로 만들어야 합니다.
SPICE file은 모든 회로해석에서 가장 기본이 되는 회로 format으로서, PCB의 형상에 따른 전기적인 등가
회로의 역할을 하게 됩니다. 이렇게 SIwave를 이용하여 PCB 데이터를 등가회로로 구성하면서, Nexxim
과 같은 회로해석 엔진으로 PCB 선로상의 SI를 분석할 수 있게 됩니다.
우선, PCB Layout data를 SIwave로 import 합니다. SIwave에서는 Cadence, Mento, PADS, Zuken,
Power PCB 등의 다양한 CAD format을 불러올 수 있으며, 해당 CAD 툴마다 import 방법이 조금씩
차이가 있으므로 상세한 import 방법은 매뉴얼을 참고하도록 합니다.
위에서 import한 Layout은 On-board DDR2 PCB의 사례이며, 이해를 돕기 위한 주요 부위별 설명은
아래와 같습니다.
71
SI Design Guide for
DDR2/3 PCBMemory Controller
(BGA type)
DQ / DM / DQS / Clock
Address / CMD / Ctrl
trace
DDR2 Memory
SI 분석에서 주요 해석대상은 Memory와 Controller간의 trace 입니다. 이 trace들의 SI 성능을 분석
하기 위해서는 각 trace의 입력단과 출력단에 port를 인가해야 합니다.
port를 인가하기 전에, 우선 Controller와 Memory 칩별로 VDD/GND들을 하나의 pin으로 묶는
pin grouping이 필요합니다. 이 과정은 각 칩별로 복수개가 존재하는 VDD/GND pin의 전위를 일정하게
잡아주는 것으로서, 자동적인 port 생성을 위해 꼭 필요한 설정입니다.
72
Controller와 Memory의 VDD/GND Pin grouping이 끝나면, 위와 같이 SIwave의 Port Generate
기능을 이용하여 자동으로 port들을 일괄 생성할 수 있습니다. 모든 DDR2/3 trace 마다 설계자가 하나
하나 직접 입력과 출력 port를 그릴 수도 있지만, 매뉴얼 에러를 줄이고 효율을 높이기 위해 자동생성
기능을 사용하는 것이 좋습니다.
Port generate 메뉴에서 pin 설정을 하려면, 우선 해당 component 이름과 부품번호를 선택합니다.
DDR2 memory같은 경우는 통상 동일한 component가 여러 개 존재하기 때문에 부품번호별로 잘 선택
해야 합니다. 부품을 선택 후에는, port를 설정하고자 하는 pin name과 reference가 되는 GND pin을
선택하고 Create 버튼을 눌러서 Port들을 생성시킵니다.
73
SI Design Guide for
DDR2/3 PCBTrace 분석을 위한 Port 생성이 완료되면, 해당 port를 기준으로 한 주파수 응답특성을 계산하기 위해
Frequency Sweep을 수행합니다.
이때 Frequency Sweep을 위한 설정 값들이 중요한데, DDR2의 해석을 위해서는 위의 그림에
입력된 값을 기준으로 할 것을 권장합니다. 위의 그림에서처럼 DC/저주파/고주파별로 나누어서
주파수 point를 계산하는 것이 time domain에 기반한 SPICE 모델로 변환할 때 수렴성을 강화시킬 수
있기 때문에, 위의 조건을 권장합니다.
74
Frequency Sweep이 완료되면, Full wave SPICE file로 export 합니다. 이때 주로 맨 하단에 있는
Nexxim/HSPICE S element type을 추천하는데, port수가 100개 이하인 경우에는 이 type이 정확도
와 속도면에서 유리하기 때문입니다. 일반적으로는 맨 위의 HSPICE를 선택하는 것이 무난하긴 하지만,
S element type 역시 HSPICE format에 기반하고 있기 때문에 많은 경우 어느것을 선택해도 크게 차이
나지는 않습니다.
추출된 SPICE file은 회로해석툴인 Nexxim에 곧바로 import 할 수 있으며, port수에 맞게 자동으로
회로 symbol을 생성할 수 있습니다. Nexxim으로 import한 후 해당 trace에 각종 신호를 인가하고
결과를 확인하는 해석을 수행하는데 활용되며, SPICE는 time domain에 기반한 과도응답해석 모델이기
때문에 주로 transient simulation에 응용되게 됩니다.
75
SI Design Guide for
DDR2/3 PCB
3-2. DDR2의 IBIS model 활용
IBIS file은 시뮬레이션을 위해 반도체소자의 입출력 buffer model을 정의한 text 기반의 file입니다. IBIS
model을 이용하면, Controller 혹은 Memory에서 출력되는 디지털 신호의 실제 아날로그 파형을 만들어
낼 수 있으며, 반대로 입력되는 신호에 대해 실제적인 load 모델처럼 활용될 수 있습니다. IBIS를 driver
로 활용 시에는 buffer strength에 따른 다양한 출력파형을 각기 다른 model로 선택하여 입력할 수 있고,
receiver로 활용 시에는 ODT와 같은 내부 저항 값들을 model별로 구분하여 사용자가 load model를 선택
할 수도 있습니다.
IBIS file에 관한 보다 상세한 설명은 다른 문헌에도 많이 나와 있으니 자세한 설명은 생략하고, DDR2/3
분석을 위한 기본 회로 구성법에 대해 정리해보도록 하겠습니다. 우선 driving에 활용되는 IBIS 기본회로
는 아래와 같이 구성됩니다.
위 예제는 Memory Controller의 한 DQ pin에 대한 driving IBIS 회로도 입니다. IBIS model로는 driving
과 receiving에 모두 활용 가능한 I/O type으로 되어 있는데, 이러한 model의 정의는 IBIS file 내의
해당 model 설명부에 기술되어 있습니다. 참고로 대부분의 DDR2/3 관련 IBIS model은 I/O type으로
되어 있습니다.
Driving용 I/O type IBIS model에 필요한 주변회로는 대략 아래와 같습니다.
A. Signal Source (PRBS)
B. I/O 방향을 정해주는 Enable 전압
C. VDD 전원
D. RLC 기생성분
76
A. Signal Source (PRBS)
I/O model을 driving으로 활용 시, 입력신호로는 주로 PRBS (Pseudo Random Bit Signal) 혹은
PRBS with Jitter이라는 신호원을 사용하게 되는데, 랜덤한 비트 조합의 디지털 신호를 입력하는 신호원
입니다. PRBS에서 나온 딱딱한 디지털 파형이 IBIS model을 거치면서 실제 소자에서 출력되는 아날
로그 파형 형태로 변환되고, 그러한 실제적인 파형이 PCB SPICE model에 입력되어 통과되게 됩니다.
이렇게 실제적인 파형과 실제적인 PCB trace를 거친 파형의 형상이 결국 SI 과정의 주요 분석 대상이
됩니다.
위의 그림에서 보여지듯이, 이상적인 구형파 형태의 PRBS 신호가 IBIS model을 통과하면 실제 파형
처럼 변하게 됩니다. IBIS file 내에는 입력되는 디지털 bit에 따른 rising/falling 파형이 정의되어 있기
때문에, 입력되는 이상적인 신호를 실제 해당 controller/memory의 아날로그 신호파형처럼 바꾸어주게
되는 것입니다. 또한 IBIS file 내에는 VDD/GND의 clamp가 정의되어 있어서, 해당 소자가 실제로 출력
할 수 있는 전압만큼의 범위로 제한되어 출력됨으로써 정말 "리얼"한 파형을 모델링 할 수 있게 됩니다.
PRBS를 설정 시에는, 여러 가지 디지털 입력 값들이 들어가게 되는데, DDR2의 경우 기준으로 입력할만
한 설정 값은 아래와 같습니다. 한가지 주의할 점은 아무리 IBIS model을 거치면서 실제적인 파형이 생성
되더라도, PRBS 설정 값이 적절하지 않으면 IBIS 출력 파형도 영향을 받는다는 점입니다.
통상 PRBS의 rising/falling time은 IBIS 에 정의된 것보다 빠르게 (즉 기울기가 급하게) 설정되어야 IBIS
출력파형에 영향을 주지 않으므로, DDR2/3 급에서는 대략 50ps 정도 입력하면 무난하다고 할 수 있습
니다.
77
SI Design Guide for
DDR2/3 PCB또 하나 주의할 점은, PRBS의 종류에 따라 BW와 Bitwidth의 정의를 정확히 입력해야 한다는 점입니다.
PRBS는 크게 PRBS와 PRBS with Jitter의 2가지로 나뉘는데, 일반적인 PRBS에서는 Rising/Falling
time을 제외한 평평한 부분, 즉 통상의 PW (Pulse Width)를 입력하게 됩니다.
PW
Bitwidth
V2
V1
TR
TF
TR
TF
그러나 위의 입력 예제에 사용된 PRBS with Jitter의 경우는, 흔들리는 Jitter 값에 대해 명확한
기준을 정할 수 있도록 PW 대신 Bitwidth를 입력하도록 되어 있습니다. 이 Bitwidth는 위 그림에서
처럼, Rising/Falling time을 반씩 더한 값으로서, 통상의 펄스폭이 아니라 실제 디지털 bit가 반복되는
"주기"를 의미합니다. 참고로 위의 설정사례 그림에서는 800Mbps의 디지털 bit를 생성해내는 PRBS
신호의 Bitwidth 값으로서, risng/falling time이 포함된 1.25ns가 입력되어 있다는 점을 잘 관찰하시기
바랍니다. 설계자에게는 다소 헷갈릴 수 있는 부분이지만, 나름 명확한 이유가 있는 구분법이므로 조심
해서 잘 입력할 것을 권장합니다. (만약 잘못 입력하게 되더라도 Eye Diagram 등에서 이상하게 출력
되므로 쉽게 눈치챌 수는 있습니다)
78
B. I/O 방향을 정해주는 Enable 전압
I/O type은 Input/Output 모두 가능하다는 의미로서, 신호를 공급하는 Driver와 수신하는 Receiver 용
으로 모두 사용할 수 있습니다. 이러한 방향을 명확히 정의해주기 위해서, Enable에서 logic을 1 또는 0
으로 줌으로써 (즉 VDD전압 혹은 0V를 입력) 이것이 현재 Driving 용 Output Buffer인지 Receiving용
Input Buffer인지를 정해주게 됩니다. IBIS file 내의 해당 model 설명부분에는 Enable 설정에 대한 항목
이 있는데, 아래의 2가지 중 한가지로 정의되어 있습니다.
Enable Active-Low 또는 Enable Active-High
Active-Low로 되어 있는 경우는 0을 입력하면 Output Buffer로 동작하고, 1을 입력하면 input Buffer로
동작하게 됩니다. 반대로 Active-High로 지정된 model의 경우는 반대로 동작하게 됩니다. 만약 Enable
에 대한 정의가 되어 있지 않은 model이라면 default로 Active-High로 동작하게 됩니다.
앞에서 예로 들었던 I/O type 회로도는 IBIS file에서 Active-Low로 정의되어 있었기 때문에, Driving 용
으로 사용하기 위해 Enable 단자에 0V 를 걸어둔 상태입니다. 의외로 헷갈리는 부분이기 때문에 명확히
이해하고 넘어가기를 권장하며, 보통 I/O type을 쓸 때 이상하게 출력파형이 안 나오는 경우는 대부분
이것을 반대로 설정한 경우가 많습니다.
C. VDD 전원
IBIS model에는 자체적으로 Power를 on 시키는 기능이 있어서, 만약 model parameter에서
Power = on으로 설정하면 외부에서 전원을 걸지 않아도 파형을 생성해낼 수 있습니다. IBIS model 외
부에 VDD를 입력하는 경우는, SSN을 고려하기 위해서 입니다.
(외부에서 전원을 공급하려면 내부의 Power 는 off로 설정해야만 합니다.)
79
SI Design Guide for
DDR2/3 PCBVRM 전원에서 나온 깨끗한 전력이 실제 PCB의 VDD trace/plane을 따라 IBIS model에 해당하는
Controller/Memory의 pin에 도달할 때, PCB의 Layout과 전원설정에 따라 VDD에는 Noise가 더해질
수 있고, 이것이 바로 SSN (Simultaneous Switching Noise)이라 불리우는 요소입니다.
실제로 발생하는 파형왜곡을 충분히 고려하고 싶다면, 이러한 SSN을 고려하는 것이 중요한 요소가
됩니다. 이러한 SSN 포함 해석을 위해서는 PCB의 SPICE model을 추출할 때 VRM pin과 실제 VDD
입력 pin에도 port를 설정하고 추출해야 하며, Nexxim의 schematic 상에서 VRM에는 깨끗한 전원을,
그것이 trace를 거쳐 출력되는 VDD pin에는 IBIS의 VDD를 연결시켜야 합니다. (다음절에서 소개되는
최종적인 DDR2/3 SI 분석 회로도를 참고하세요.)
D. RLC Parasitic
IBIS model 입출력부에는 통상 직렬 L-직렬 R-병렬 C의 3개 소자가 붙게 되는데, 이것은 반도체
packaging에 존재하는 Bonding Wire의 기생 RLC 성분을 의미합니다. 즉 gold bonding wire의 길이
방향으로 존재하는 R과 L, 그리고 GND를 바라보면서 생기는 C 값을 모델링 한 값입니다.
이 값은 통상 IBIS file 내의 component 설명부에 기술되어 있는데, 기본적으로 IBIS model은 반도체
회로소자의 die (bare chip, packaging 하지 않은 상태의 반도체 회로기판) 기준으로 뽑아내기 때문
입니다. 같은 반도체 die라 하더라도, 목적과 용도에 따라 MLF, QFP, BGA 등등 다양한 packaging
기술이 적용될 수 있기 때문에 패키지별로, 즉 component라는 명칭으로 패키지별 bonding wire의
RLC 기생소자를 따로 정의하고 있습니다.
이러한 RLC package model 은 측정으로 알아내기 힘들기 때문에, EM 전자기 해석 tool들을 이용
하여 추출하게 되며, 이러한 RLC 추출에 대해서는 Ansoft의 Q3D Extractor나 TPA와 같은 전용 tool들
이 업계 표준으로 되어 있습니다.
일반적으로 이러한 RLC 기생 소자 값은 IBIS file내의 [Component] 별로 정리가 되어 있으며 각 pin
별로, 즉 bonding wire가 존재하는 입출력 pin 마다 각기 다른 길이와 조건을 가진 RLC 값을 가지게
됩니다. 그러나 언제나 이렇게 RLC 값을 추출하기 쉬운 것은 아니기 때문에, 통상 IBIS file 내에
package model로 정의된 평균값을 적용하기도 합니다.
80
위의 텍스트 열은 IBIS file 내의 Component 정의 부분의 예제로서, Component 이름 밑으로
[Package] 라고 되어 있는 부분의 RLC 값이 해당 package의 RLC 대표 값입니다. 그 아래에 정의된
[Pin] 부분이 바로 각 pin별 RLC 기생소자 값인데, Pin별 값이 존재하는 경우는 Pin별 값을 각각 적용
하고, 만약 없다면 그 위의 Package 대표 값을 입력해야 합니다.
엔지니어 입장에서 중요한 점은 이러한 RLC 기생 소자들의 영향인데, 통상 1Gbps 이하의 속도에서
는 신호품질에 막대한 영향을 주지는 않습니다. 문제는 Gpbs 급 이상이 되면 이러한 RLC 값들이 신호
특성에 영향을 미치는 속도가 급격히 증가하기 시작한다는 점이며, 고주파에서의 임피던스를 크게 틀면
서 신호가 열화 되는 속도가 빨라집니다.
그렇기 때문에 보다 정확한 해석을 위해서는, 반드시 IBIS file 내에 정의된 pin별 혹은 전체 평균값이
해당하는 RLC 값을 읽은 후에 schematic에서 각 pin의 IBIS model에 달아주는 것을 권장합니다. DDR2
만 하더라도, 800Mbps의 속도에서도 기생 RLC에 의한 파형 변화가 눈에 보이기 시작하기 때문에,
정확한 SI 분석을 위해서라면 IBIS file에 정의되어 있는 대로 정확히 입력해줄 필요가 있다는 점을 꼭
기억해 두시기 바랍니다.
81
SI Design Guide for
DDR2/3 PCB지금까지의 설명은 신호를 보내는 Driver 입장에서의 IBIS 회로 설명이었는데, 아래의 그림은 신호를
수신하여 SI 결과를 판독하는 Receiver 단에서의 IBIS 회로입니다.
기본적으로 IBIS 설정방법이나 RLC 기생소자를 구성하는 방법론은 Driver의 경우와 같습니다.
Receiver단에서는 통상 SSN을 포함하지 않는 경우가 많으나, On-board DDR2/3와 같이 Driver/
Receiver가 같은 전원체계를 공유할 경우는 Receiver에도 SSN power를 걸어주는 것이 유리한 경우가
있습니다. 이 때는 Driver 단의 경우와 마찬가지로 설정하면 되며, 수신단이기 때문에 Logic_In 단자는
open 상태로 두면 됩니다.
Receiver단에서 IBIS model로 I/O type을 사용할 때는 Enable 단자 설정에 주의해야 하는데, Driver의
경우와 반대로 해주어야 합니다. 즉 Active Low로 정의된 IBIS model이라면 logic 1 (VDD)로, Active
High로 정의된 경우는 0 (GND)으로 해주어야 Receiver로서 정상동작 하게 됩니다. 만약 Input type의
IBIS model을 활용한 Receiver라면, 아래 그림과 같이 더욱 단순하게 구성할 수 있게 됩니다.
82
3-3. SI 해석용 Schematic 구성
결과적으로 DDR2/3의 Bytelane SI 분석을 위한 전체적인 schematic은 아래와 같습니다.
가운데는 SIwave의 EM 해석을 통해 추출된 PCB의 SPICE model이며, 양쪽에 각 pin별 IBIS
회로도가 존재합니다. 하나의 Bytelane을 해석하기 위해서는 양쪽에 각기 2개의 DQS pin과 8개의 DQ
pin에 대한 IBIS 회로도가 있게 되며, 기타 Enable 설정이나 전체적인 VDD 단자를 위한 전원회로가
붙게 됩니다.
여기서 SSN을 고려하느냐 안하느냐에 따라 약간 회로도가 바뀔 수 있습니다. 앞 절에서 설명한 것처럼,
SSN을 고려하기 위해서는 PCB를 해석할 때 미리 VRM에서 Memory/Controller에 들어가는 전원단자
에 앞뒤에 port를 인가하여 해당 port에 대한 해석결과가 SPICE model 안에 포함되어 있어야 합니다.
83
SI Design Guide for
DDR2/3 PCB위 그림은 Driver 단에서 SSN을 고려하지 않은 DQ SI test를 위한 IBIS 회로도 입니다. 이 경우 위쪽에
달린 IBIS의 power 단자는 그냥 open으로 하고, IBIS 설정에서 Power를 On 시켜주면 됩니다.
SSN을 고려하려면, 기본적으로 SPICE와 IBIS 회로도는 아래와 같은 관계를 가져야 합니다
84
앞의 회로에서 나타낸 것처럼, LDO나 PMIC/Regulator에서 깨끗한 전원 "VRM"이 공급되는 단자를
거쳐 전압이 인가되고, PDN (Power Delivery Network)이 모델링된 SPICE model을 지나 Memory/
Controller로 전달되는 VDD 출력 pin을 통해 IBIS 회로도의 Power가 인가되어야 합니다. 이때 내부
IBIS 설정에서 Power 는 Off로 설정해야 합니다.
위와 같은 회로도의 경우는, 전원선을 거치면서 발생한 각종 전원노이즈, 즉 SSN이 포함된 상태로 IBIS
회로도에 전원이 인가되고, 결과적으로 SSN이 반영된 IBIS 출력 파형이 만들어지게 됩니다. 즉 Dirver
에서 IBIS를 통해 실제적인 파형이 만들어질 때, 전원의 노이즈가 반영된 보다 실제적인 출력 파형을
DDR 선로에 인가할 수 있게 되는 것입니다.
이러한 SSN 입력은 신호품질에 중요한 영향을 미칠 수 있으나, 시뮬레이션 적으로는 굉장히 어려운
기술이라 할 수 있습니다. 현재까지는 Ansoft Nexxim만이 이러한 SSN을 고려한 SI 해석이 가능한
유일한 tool이지만, SSN이 너무 큰 상태에서 입력되면 transient solver가 수렴되지 않을 수도 있습니다.
만약 SSN 입력 후에 transient의 수렴성이 나빠지면 우선 SSN 결과만 해석하여 그 정도를 가늠해보고,
PI 단계에서 전원 노이즈를 먼저 잡아야 할 경우도 있습니다.
이렇듯 차근차근 원리와 이유를 이해해가면서 적합한 회로구성을 하고, 전원 노이즈의 크기를 잘 관찰
하며 진행함으로써 보다 실제적이고도 정확한 시뮬레이션을 수행할 수 있게 됩니다.
SSN 추가여부 문제만 결정되면, 나머지 회로도는 앞 절에서 설명한 것처럼 pin별로 IBIS 회로도만
반복적으로 잘 구성해주면 됩니다. 이 작업은 어렵지는 않으나 다소 번거로울 수 있는 작업이며, 구성
과정 자체를 잘 이해할 필요가 있습니다.
마지막 4장에서는 DDR2/3 분석 자동화 프로그램에 대해 소개하고 있는데, 이러한 자동화 프로그램
이 매우 편리하고 효율적이긴 해도, 3장에서 설명하고 있는 SI 해석의 기본 개념이 있어야지만 정확한
DDR2/3 SI 분석과정을 수행할 수 있다는 점을 기억해두시기 바랍니다.
85
SI Design Guide for
DDR2/3 PCB
3-4. Eye Diagram / Mask 적용
SI 회로도를 완성하고 Transient 해석을 수행한 후에는, Eye Diagram을 plot하여 성능을 검증하게 됩니다.
Eye Diagram을 보려면, Create Eye Diagram 메뉴를 이용하여 생성 해야 하며 Unit Interval을 bitrate의
주기에 맞게 정확히 입력하는 것이 중요합니다.
이 때 offset 설정도 때로 중요한데, 초반부에 파형이 stable 해지는데 몇 주기의 시간이 소요될 수도
있으므로, 약간의 offset 시간을 입력하여 불안정한 앞부분 파형은 잘라내는 것이 유리한 경우도 많습
니다. Nexxim을 통해 생성된 Eye Diagram Plot은 아래와 같습니다.
86
이때 Eye Diagram을 더블 클릭해보면, Eye와 관련된 몇 가지 설정이 나옵니다. DDR2/3 해석에서는
Default 상태로 분석해도 무방하며, 통상 계측기처럼 한 주기의 완전한 Eye를 확인할 수 있도록 2주기의
파형을 화면에 보여주는 Front Panel Eye를 사용하고 있음을 알 수 있습니다. Rectangular Plot은 앞의
그림처럼 Eye Diagram 아래에 전체 주기파형을 모두 보여주는 기능이며, 전체적인 bit의 흐름을 관찰
하는데 유용한 기능입니다.
만약 오른쪽처럼 한 주기만 관찰하는 Eye Diagram이라면, 파형이 중앙에 있지 않기 때문에 Mask를
적용하기 힘든 모양이 됩니다. 이 경우 delay time을 적용하여 파형을 억지로 가운데로 움직일 수는
있으나, 왼쪽과 같이 2주기를 관찰하는 Front Panel Eye를 활용하면, 그대로 한 주기의 Eye 파형을
확인할 수 있어서 별도의 delay time 조절 없이도 성능검증이 가능해집니다. 이러한 Eye Diagram 결과
를 검증하기 위해서는 Mask를 그려야 하는데, 위의 메뉴 두 번째 tab에서 edit를 선택하여 Mask 형상
을 그립니다.
87
SI Design Guide for
DDR2/3 PCBMask는 도형의 각 꼭지점 좌표를 순서대로 입력함으로써 생성되며, 전체적으로 폐곡면이 되도록 만들
어주는 것이 중요합니다. 아래는 DDR2/3 의 Setup/Hold time 값을 이용하여 만들어낸 간단한 Mask의
예이며, 폐곡면이 이루어지면 자동적으로 Mask에 색상이 입혀지게 됩니다.
이렇게 그려진 Mask와 신호파형이 겹치지 않으면, 일단 Eye Diagram상에서 spec을 만족한다는 뜻이
됩니다. 실제로는 단순히 겹치지 않는 것 보다는 어느 정도 Timing Margin을 가지느냐가 중요해지는데,
Plot 상에서 Marker 기능을 이용하여 대략의 계산이 가능합니다. 보다 정확한 Margin 계산을 위해서는,
4장에서 소개하는 APDS Wizard의 자동화된 Eye 분석기능을 활용함으로써 Setup/Hold margin들을
쉽게 계산해낼 수 있습니다.
88
4. Automatic Verification
4-1. APDS Wizard란?
4-2. DDR2/3를 위한 Wizard Setting
4-3. 실행 및 결과보기
89
SI Design Guide for
DDR2/3 PCB
4-1. APDS Wizard란?
APDS는 SIwave와 Designer/Nexxim이 결합된 SI/PI/EMI 시뮬레이션 S/W 패키지입니다. APDS
Wizard는 SI 분석을 보다 간편하게 할 수 있도록, 각종 설정과정을 자동화한 설계자동화 S/W로서,
DDR2/3/4 분석에 최적화되어 있습니다.
APDS Wizard가 하는 역할은 아래와 같습니다.
● 사용자의 설정에 따라 자동으로 Full Schematic 생성
● DDR2/3/4의 JEDEC spec 선택 가능
● 자동적인 해석 및 DQ별 Eye Diagram plot
● DDR2/3 전용 Eye Mask 생성 및 Setup/Hold margin 보고서 작성
● SSN을 포함한 SI 분석기능 선택 가능
APDS Wizard를 사용하면 사용자의 기본적인 설정만으로도 DDR2/3 DQ 선로의 SI 분석을 자동화할 수
있고, 최종적으로 설계된 DDR2/3 PCB 선로들의 성능 pass/fail을 바로 검출할 수 있는 편리한 툴입니다.
사용자는 SIwave 상에서 분석을 원하는 DQ 선로와 DQS 선로 및 (SSN 포함 해석시) 전원관련 부에
port를 인가하고, SPICE 모델을 추출하면 그 이후의 모든 회로구성/해석/결과분석 과정은 Wizard를
이용하여 100% 자동화할 수 있습니다.
90
APDS Wizard의 기본적인 해석 흐름은 아래와 같습니다. 해석과정을 둘러보기 전에 차근차근 DDR2/3
분석과정의 핵심을 잘 이해해보시기 바랍니다.
1. PCB Layout에서 해석하고자 하는 Trace를 선택한다.
DDR2/3에서 핵심 분석대상은 결국 데이터 선로의 신호 품질
입니다. 이를 위해 SIwave에 해당 PCB Layout을 불러온 후,
분석에 필요한 DQ 선로와 DQS 선로들을 선택하고 각 선로의
입출력 단에 Port를 설정합니다.
2. Frequency Sweep&SPICE 생성
선택된 trace의 주파수 응답 특성을 확인하기 위해 Frequency
Sweep을 수행합니다. 주파수 응답해석이 끝나면, 이 결과를
기반으로 Full-wave SPICE model을 생성합니다. 이 SPICE file은
결국 PCB의 trace 형상에 따른 특성을 모델링한 등가회로가 되며,
이것을 이용하여 SI 분석을 수행하게 됩니다.
3. APDS Wizard로 가져오기
APDS Wizard를 구동시킨 후, 제작된 SPICE model file을 import
해옵니다. SPICE에 미리 설정되어 있던 DQ/DQS port들을
Controller와 Memory 별로 배치해준 후 각각의 IBIS 설정을 입력
합니다.
4. 자동 분석 실행
DDR2/3 분석에 적용할 spec을 선택하고, data rate 와 jitter
등의 핵심 사항을 입력 후에 분석을 실행하면, 그 이후의 모든
과정이 자동으로 진행됩니다. 자동으로 해석용 Schematic이 생성
되고 해석되면서, 각 Eye Diagram 별로 DDR2/3 mask와 Setup/
Hold margin을 그래픽적으로 표시해주며, 최종적으로 전체 DQ들
의 Pass/Fail을 보고하면서 종료됩니다.
91
SI Design Guide for
DDR2/3 PCB
4-2. DDR2/3를 위한 Wizard Setting
Step 1. SPICE 불러오기
3장에서 설명했던 것처럼, DDR2/3의 Bytelane (DQ+DQS)에 대해 입출력 port를 지정한 후 S/Y/Z 해석
결과에 기반하여 SPICE file을 추출합니다. Wizard에서는 제일 먼저 이렇게 추출한 SPICE file을 불러와
야 합니다.
SPICE file을 불러오면 위의 그림처럼 화면 오른쪽 위에 SPICE file에 설정되어 있던 port들이 listing됩
니다.
Step 2. Port 할당하기
listing된 port들을 driver/receiver의 DQ/DQS에 맞게 할당해주어야 하는데, Port를 해당 위치로 이동
하기 위해선 우선 옮기고자 하는 포트 왼쪽의 체크박스에 체크를 넣습니다.
92
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng

Mais conteúdo relacionado

Mais procurados

FINAL YEAR PROJECT
FINAL YEAR PROJECTFINAL YEAR PROJECT
FINAL YEAR PROJECT
Jamal Ali
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlab
hamdinho
 
Theme memoires des ordinateurs gpe 1
Theme memoires des ordinateurs gpe 1Theme memoires des ordinateurs gpe 1
Theme memoires des ordinateurs gpe 1
Penn Hardikhan
 
Abstract Of The Rfid Project I
Abstract Of The Rfid Project IAbstract Of The Rfid Project I
Abstract Of The Rfid Project I
Hari
 

Mais procurados (20)

FINAL YEAR PROJECT
FINAL YEAR PROJECTFINAL YEAR PROJECT
FINAL YEAR PROJECT
 
Wimax
WimaxWimax
Wimax
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlab
 
Les Technologies Sans Fil (expliquées aux néophytes)
Les Technologies Sans Fil (expliquées aux néophytes) Les Technologies Sans Fil (expliquées aux néophytes)
Les Technologies Sans Fil (expliquées aux néophytes)
 
Exposéréseau
ExposéréseauExposéréseau
Exposéréseau
 
Theme memoires des ordinateurs gpe 1
Theme memoires des ordinateurs gpe 1Theme memoires des ordinateurs gpe 1
Theme memoires des ordinateurs gpe 1
 
Squid
SquidSquid
Squid
 
Securité des réseaux mobiles de nouvelle génération ngn
Securité des réseaux mobiles de nouvelle génération ngnSecurité des réseaux mobiles de nouvelle génération ngn
Securité des réseaux mobiles de nouvelle génération ngn
 
VMWare vs HYPER-V
VMWare vs HYPER-V VMWare vs HYPER-V
VMWare vs HYPER-V
 
Abstract Of The Rfid Project I
Abstract Of The Rfid Project IAbstract Of The Rfid Project I
Abstract Of The Rfid Project I
 
Rfid
RfidRfid
Rfid
 
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemplePrésentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
 
Les reseaux
Les reseauxLes reseaux
Les reseaux
 
Rfid Attadance System ( Project PPt )
Rfid Attadance System ( Project PPt )Rfid Attadance System ( Project PPt )
Rfid Attadance System ( Project PPt )
 
Rfid based attendance system using arduino (1)
Rfid based attendance system using arduino (1)Rfid based attendance system using arduino (1)
Rfid based attendance system using arduino (1)
 
Fonctionnement du réseau
Fonctionnement du réseauFonctionnement du réseau
Fonctionnement du réseau
 
RFID based Attendance System
RFID based Attendance SystemRFID based Attendance System
RFID based Attendance System
 
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
 
Le modèle OSI
Le modèle OSILe modèle OSI
Le modèle OSI
 
Ctssb
CtssbCtssb
Ctssb
 

Semelhante a Si design guideforddr2-ddr3pcb_eng

Si design guideforddr2-ddr3pcb_eng1
Si design guideforddr2-ddr3pcb_eng1Si design guideforddr2-ddr3pcb_eng1
Si design guideforddr2-ddr3pcb_eng1
thiagukv
 
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_engSi design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
thiagukv
 
RF Power Divider Design by Lee and Yang
RF Power Divider Design by Lee and YangRF Power Divider Design by Lee and Yang
RF Power Divider Design by Lee and Yang
Yong Heui Cho
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
ozlael ozlael
 
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 32013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
진우 김
 
Client dispatcher server_pattern
Client dispatcher server_patternClient dispatcher server_pattern
Client dispatcher server_pattern
Heo Seungwook
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
Samsung Electronics
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
MinGeun Park
 

Semelhante a Si design guideforddr2-ddr3pcb_eng (20)

Si design guideforddr2-ddr3pcb_eng1
Si design guideforddr2-ddr3pcb_eng1Si design guideforddr2-ddr3pcb_eng1
Si design guideforddr2-ddr3pcb_eng1
 
Si design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_engSi design guideforddr2-ddr3pcb_eng
Si design guideforddr2-ddr3pcb_eng
 
RF Power Divider Design by Lee and Yang
RF Power Divider Design by Lee and YangRF Power Divider Design by Lee and Yang
RF Power Divider Design by Lee and Yang
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
Cloud datacenter network architecture (2014)
Cloud datacenter network architecture (2014)Cloud datacenter network architecture (2014)
Cloud datacenter network architecture (2014)
 
Chapter2 ap group11
Chapter2 ap group11Chapter2 ap group11
Chapter2 ap group11
 
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 32013 mcu( 마이크로컨트롤러 ) 수업자료 3
2013 mcu( 마이크로컨트롤러 ) 수업자료 3
 
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
Maze통신교육 i2c
Maze통신교육   i2cMaze통신교육   i2c
Maze통신교육 i2c
 
Arduino 특강 강태욱
Arduino 특강   강태욱Arduino 특강   강태욱
Arduino 특강 강태욱
 
Client dispatcher server_pattern
Client dispatcher server_patternClient dispatcher server_pattern
Client dispatcher server_pattern
 
Thread programming
Thread programmingThread programming
Thread programming
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 
Spark sql
Spark sqlSpark sql
Spark sql
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
 

Último

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Último (7)

도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 

Si design guideforddr2-ddr3pcb_eng

  • 2. SI Design Guide for DDR2/3 PCB본 교재는 Ansoft의 SI/PI/EMI tool package인 APDS (Ansoft PCB Design Suite)를 이용한 DDR2/3 PCB의 SI (Signal Integrity) 설계에 대해 소개하고 있습니다. APDS는 PCB EM 해석을 위한 SIwave와 회로해석을 위한 Nexxim으로 구성 되어 있으며, PCB의 구조적 등가회로에 기반한 transient 해석을 통해 가장 진보 적인 High Speed Digital SI 설계를 구현하고 있습니다. Nexxim 자동화된 Multi-Solver Transient 해석기술 및 Harmonic Balance/Linear 해석 등의 모든 종류의 회로해석 엔진을 탑재한 가장 진보적인 형태의 회로해석 툴입니다. 특히 SSN과 PCB full layout을 고려한 복합해석이 가능한 현존 유일한 툴로서, 고주파/고속신호의 SI 해석에 최 적화되어 있습니다. HFSS 업계 표준의 3차원 고주파 구조해석 툴로서, DDR2/3 와 관련된 주변 선로 및 커넥터 등의 coupling/field 계산과 정밀한 고속 동작 모델링에 적용됩니다. Q3D 패키지 / 커넥터/ 케이블 등의 임의의 3차원 구조에 대한 RLGC 등가회로를 만들어냄으로써, 물리적 구조가 전기적 신호에 미치는 영향을 정확하게 모델 링할 수 있습니다. TPA DDR2/3 BGA 패키지와 같은 고집적 패키지의 parasitic RLC를 추출함으로써 고속의 디지털 동작에 대한 영향을 평가할 수 있습니다. 2 SIwave PCB의 layout data에 대한 전자장해석을 통해 공진/ 노이즈 분석 및 Near field/far field를 계산하는 PCB 전용 EM tool입니다. PCB에 최적화된 알고리즘을 이용 하여 일반적인 EM tool에 비해 수십 배 이상 빠른 속도 를 자랑하며, 직관적이고 쉬운 UI를 통해 효율적인 PCB PI/EMI 분석을 수행할 수 있습니다. 그와 더불어 PCB 의 물리적 구조에 대해 SPICE 등가회로를 추출함으로써 정확한 SI 분석을 가능하게 합니다.
  • 3. 고속의 DDR2/3 메모리, 어떻게 해야 잘 동작할까? Fail?? Pass!! Gbps를 넘나드는 DDR2/3 메모리는 전자엔지니어들에게 새로운 도전을 요구하고 있습니다. 기존의 PCB 설계방법으로는 속도를 올리는데 한계점이 존재하며, 무언가 한 차원 높은 설계 방법을 도입해야 한다는 것을 느끼기 시작합니다. 이러한 DDR2/3 메모리를 고속으로 동작시키려면 기존의 디지털 설계와는 다른 고주파 PCB 설계 기술이 필요하며, 그와 더불어 PCB pattern의 SI 분석을 통한 정교한 신호품질 개선과 정이 수반되어야 합니다. 3
  • 4. SI Design Guide for DDR2/3 PCB Contents Part 1: Introduction 기본적인 DDR2/3 메모리의 특징과 구조를 알아보고, DDR2/3를 활용한 PCB 설계 시 꼭 알아두어야 할 기본적인 정보와 성능 검증을 위한 Spec 및 용어들을 설명합니다. Part 2: DDR2/3 Design Guide 실제로 DDR2/3를 활용한 PCB를 설계하는 과정을 설명하며, DIMM을 이용한 설계와 On-board 설계에 대해 주요한 선로들의 배치방법에 대해 설명합니다. Part 3: DDR2/3 Simulation Guide APDS를 이용하여 실제 DDR2/3 PCB data pattern을 검증하는 SI 분석에 필요한 각종 시뮬레이션 과정을 설명하고, 결과를 분석하는 방법을 알아봅니다. Part 4: Automatic Verification DDR2/3 전용 분석 Tool인 APDS Wizard를 이용하여 자동화된 DDR2/3 SI 분석과정에 대해 알아봅니다. 4
  • 5. 1. Introduction 1-1. DDR2/3 High Speed Memory 1-2. DDR2/3 설계의 어려운 점 1-3. DDR2/3 의 기본 선로 구성 1-4. 신호분석의 단위, Bytelane 1-5. DQS (Strobe) 신호의 이해 1-6. DDR2/3 동작성능 평가 방법 1-7. Key Spec: Setup time & Hold time 1-8. Module & On-Board case 1-9. 정확한 Termination의 중요성 1-10. ODT의 활용 5
  • 6. SI Design Guide for DDR2/3 PCB 1-1. DDR2 High Speed Memory Dual Data Rate (DDR)라는 신기술로 메모리 시장을 주도했던 DDR 메모리는 최대 400Mbps 속도의 빠른 메모리 동작환경 시대를 열었습니다. 이러한 DDR 메모리는 보다 고속의 환경에 적합하도록 DDR2 로 업그레이드 되었으며, 속도에 따라 DDR2 (~800Mbps), DDR3 (~1.6Gbps), DDR4 (~4Gbps)와 같이 구분되고 있습니다. 동작속도 (bps) DDR2 DDR3 DDR4 400M, 533M, 667M, 800M 800M, 1066M, 1333M, 1.6G ~ 4G DDR2는 기본적으로 DDR3/4와 같은 구조를 갖고 있으며, 동작속도만 빠른 형태입니다. 고로 본 교재에 서 지칭하는 DDR2 설계법은 DDR3/DDR4에도 함께 적용되는 내용임을 참고하시기 바랍니다. DDR2는 과거의 DDR에 비해 고속환경에 적합하도록 약간의 구조변화가 있는데 DDR에서 DDR2로 넘어오면서 생긴 가장 큰 변화라면 데이터 클럭의 0과 1을 판별하는 기준이 되는 Strobe 신호가 Single line에서 Differential line으로 변경되었다는 점입니다. (이 부분은 DQS 설명 부분에서 자세하게 다룹니다) DDR2를 사용하기 시작하면서부터, 설계자는 동작 클럭을 선택하는데 있어서 애로사항이 늘어나기 시작하는데 높은 동작속도로 사용하려면 DDR2 메모리의 주변회로 및 데이터 선로의 정확한 설계가 뒷받침되어야 하기 때문입니다. 즉 사용자가 그냥 800MHz로 클럭을 올려서 동작시킨다고 데이터가 잘 전송되는 게 아니라, 설계된 구조에서 마진을 얼마나 가지느냐에 따라 사용할 수 있는 동작속도의 범위가 정해지게 됩니다. 이 때문에 기존의 디지털 전자회로 엔지니어들에겐 이렇게 고속동작 시에 발생하는 RF적인 문제들의 해결이 매우 어렵게 느껴지게 됩니다. 반대로, 고속동작/고주파에 익숙한 아날로그 혹은 RF 설계자들 에겐 이러한 문제점들이 상대적으로 익숙하지만, 디지털적인 기본 설계지식의 부족으로 부적절한 초기 설계가 이루어지는 경우가 발생하게 됩니다. 본 교재는 고속 동작하는 DDR2/3 메모리 설계에 있어서 필요한 기본적인 디지털/전자회로 지식과 고주파 아날로그적 지식을 동시에 설명함으로써, 종합적인 DDR2/3 PCB 설계 교재로서의 역할을 하게 될 것입니다. 6
  • 7. 1-2. DDR2 PCB 설계의 어려운 점 DDR2/3/4 메모리는 400M~4Gbps에 이르는 빠른 동작속도로 인해 고주파 특성이 강해지게 됩니다. 이는 소위 말하는 RF적인 현상들이 뚜렷해진다는 뜻이고, 통상의 RF에서 800MHz 정도를 기준으로 고주파현상의 정도가 급격히 심해진다는 점에서 봤을 때, DDR2부터는 고주파/고속동작의 개념을 명확히 갖고 설계에 임해야 한다는 뜻이 됩니다. 이렇게 RF현상이 뚜렷해진다는 것은, 아래와 같은 이슈들을 부각시키기 됩니다. 선로간의 간섭이 심해진다. (Coupling Issue) 전원 노이즈에 민감해진다. (Power Integration Issue) 신호 품질의 관리가 힘들어진다. (Signal Integration Issue) EMI의 방사가 많아지고 복잡해진다. (Spurious Emission Issue) 이러한 DDR2 메모리의 동작 성능은 선로의 PCB pattern에 크게 의존하게 되며, PCB 설계 자체가 하나의 회로설계처럼 다루어져야 합니다. 즉 쉽게 말해서 PCB 패턴과 회로 소자들이 적절하게 설계/ 배치되지 않으면 고속에서 데이터가 깨지는 문제들에 직면하게 된다는 뜻입니다. 이것은 특히 800Mbps 을 넘어서면서 더욱 심각한 문제로 나타나며 과거에 DDR 설계하듯이 DDR2를 설계하다 보면 점점 더 fail이 심해지는 현상에 직면하게 됩니다. 이는 고속동작을 위한 SI/PI 개념에 익숙치 않은 엔지니어들에 겐 매우 막연한 해결과제처럼 보이게 되어버리죠. "도대체 뭐가 문제야!?" 이를 해결하기 위해서는 PCB를 구조적으로 분석하고 debugging하는 것이 중요해지며, 단순히 Trace 의 형상이나 구조뿐만 아니라 Power/GND Plane 및 주변 선로와의 관계까지 복잡하게 고려해야 하는 상황이 됩니다. 한마디로 PCB artwork을 문자 그대로 "Art"처럼 잘 그려야 한다는 뜻이기도 합니다. 이 때문에 단순한 Routing 개념의 PCB Pattern 설계를 뛰어넘어, 고속의 디지털 신호 품질을 평가할 수 있는 PCB 설계 방법이 필요합니다. 즉 설계된 PCB Pattern에서 고속의 DDR2 신호가 정상적으로 동작 할 지를 검증할 수 있는 Simulation 기술이 필요해지게 되는 것이지요. 그와 더불어, DDR2 메모리의 동작원리와 구조를 정확히 이해함으로써, 기본에 충실한 설계를 통해 고속동작에 따른 문제를 최소화 시키는 엔지니어의 지혜가 필요합니다. 결론은? - 고속 동작회로에서 PCB pattern은 하나의 회로처럼 정교하게 설계되어야 한다. 7
  • 8. SI Design Guide for DDR2/3 PCB 1-3. DDR2의 선로구성 DDR2 메모리의 기본적인 선로 구성은 아래와 같습니다. 선로명 Ctrl CMD Clock Address DM DQS DQ command line. RAS, CAS 역할 Control Signal: ODT, Buffer 등의 각종 레지스터를 조절 동작속도의 기준이 되는 digital clock을 입력 데이터를 읽고 쓰는 주소 정보를 송수신. Data Mask Strobe signal. DQ 신호의 1과 0을 판별하는 기준시점을 잡아줌 실제로 data가 전송되는 데이터 전송로. 위의 그림은 DDR2 메모리 한 개에 대한 선로 구성으로서, 각 선로 종류별로 설계와 검증방법이 미묘 하게 차이가 있습니다. 본 교재에서는 각 선로별로 설계상의 주의사항과 몇 가지 유용한 tip을 소개하게 될 것이며, 후반부에서는 데이터 전송선로의 SI 분석법에 대해 집중적으로 알아보게 될 것입니다. 8
  • 9. 1-4. 신호분석의 단위, Bytelane 메모리에서 하나의 데이터 묶음 단위를 Bytelane라고 부르는데, 아래와 같이 크게 DM, DQS, DQ 라인 들로 구성됩니다. DDR2가 정상 동작할 것인지를 판별하는 최종 결과는 DQ (data)에서 전달되어 수신된 신호파형이 spec 을 만족하는가에 달려있습니다. 어차피 메모리 버스의 목표는 1과 0을 판별할 수 있는 최소한의 신호 전달이기 때문이지요. 그래서 실제 신호분석에 필요한 최종파형은 DQ 파형이며 이 DQ 파형이 spec에 만족하는지를 판별해 주는 기준 신호인 DQS의 파형도 필요하게 됩니다. 결과적으로 DM을 제외한 DQ, DQS의 파형을 통해 DDR2의 신호가 제대로 전달되고 있는지를 판별할 수 있게 됩니다. DQS는 2개의 선로 조합으로 구성되는 differential 구조이며 1 byte를 이루기 위해 DQ는 8개의 개별적인 single bit 선로로 구성됩니다. DQS 선로에 의해 생성된 기준신호는 같은 Bytelane에 묶여 있는 8개의 DQ 신호에 동시에 의 품질 평가 기준이 되므로 결과적으로 DDR2/3에서의 SI 분석은 하나의 Bytelane 단위로 해석하게 됩니다. 9
  • 10. SI Design Guide for DDR2/3 PCB 1-5. DQS (Strobe) 신호란? DQ (data) 신호의 성공적인 전송여부를 판단하기 위해서는 DQS 신호가 필요하며, spec을 적용하기 위해서는 DQS에 대한 정확한 이해가 필요합니다. 위의 그림에서 가운데에 빨간색으로 일정한 아이 패턴을 그리는 파형이 DQ 데이터 파형인데 이 DQ를 가로지르는 보라색의 다른 파형, DQS가 있음을 보실 수 있습니다. DQS는 DQ신호와 동일한 주파수에 1/4 주기만큼 위상이 다른 신호로서 DQS 신호가 전압 스윙의 중앙점을 지나는 순간에 DQ 신호의 1과 0을 판별하게 됩니다. 즉 DDR2의 경우에선 파형의 중앙점이 Vref 지점이 되므로, DQS 신호파형이 Vref를 지나는 순간 DQ가 특정 threshold 전압보다 높으면 High, 낮으면 Low로 판정하게 되는 것이지요. 한마디로 모든 DQ bit 판별의 기준신호가 되기 때문에 매우 정확한 동작이 필요한 reference의 역할을 하게 됩니다. 이 때문에 DDR2부터는 고속에서의 기준신호로서의 DQS의 잡음을 최소화하기 위해 differential line 으로 DQS를 구성하고 있습니다. 기존의 DDR과의 패턴 호환성을 위해 일부 클럭 (400, 533)의 경우는 Single line 구성도 허용하고 있으나 기본적으로 DQS는 2가닥의 differential line 으로 설계되어져야 최대한의 설계 마진을 확보할 수 있습니다. 10
  • 11. 1-6. DDR2 동작성능 평가 방법 현재의 PCB 패턴과 소자구성에서 DDR2 메모리의 데이터가 정상적으로 전송될 것인지를 판별하는 기준은 여러 가지가 있지만, 모든 조건들을 만족시키는 최종 지표는 바로 Setup margin과 Hold margin 이라 할 수 있습니다. 위의 그림은 실제 DDR2 데이터 파형을 분석하는 Eye Diagram으로서, 우선 DQS가 Vref를 지나는 지점에서 앞쪽으로는 Setup time, 뒤쪽으로는 hold time 이라는 spec이 존재합니다. Setup time은 데이터 파형의 high/low를 판별하는데 필요한 최소시간을 의미하며, Hold time은 판별된 결과가 유지 되어야 하는 최소시간을 의미합니다. 이러한 Setup/Hold time spec은 동작속도와 선로구성 방법에 따라 JEDEC 규격 집에 각각 정의 되어져 있으며, 데이터가 오류 없이 전송됨을 보장할 수 있는 가장 중요한 spec입니다. Eye diagram을 출력하면 먼저 Mask를 그려야 전송성능을 판별할 수 있는데 Setup 영역에서는 V IHAC와 V ILAC, Hold 영역에서는 V IHDC와 V ILDC라는 전압을 기준으로 하게 됩니다. 위 그림을 참조로 각 네 지점 위치 별로 기준 전압과 파형이 만나는 지점을 연결하여 사각형을 그리면 그것이 Mask가 되고, 여기서 Setup 영역의 두 꼭지점을 연결했을 때 Vref와 만나는 지점과 Setup time spec과의 차이가 바로 여유 있는 시간영역, 즉 Setup margin이 되며 Hold 영역도 같은 방식으로 남는 시간을 계산 하면 Hold margin이 계산됩니다. 결국 설계자가 판단해야 할 일은 데이터 선로의 Eye Diagram에 Mask를 그린 후, Setup/Hold margin이 얼마나 존재하는가를 판단하는 일입니다. 만약 margin이 전혀 없는 데이터 선로라면 gray zone 동작이 되어서 데이터의 오류가 발생할 가능성이 높다는 의미가 됩니다. 11
  • 12. SI Design Guide for DDR2/3 PCB 1-7. Key Spec: Setup time & Hold time 앞에서 설명하였듯이, DDR2 성능분석에 있어서 가장 중요한 spec은 Setup time과 Hold time입니다. 그와 더불어 Mask를 그릴 때 기준이 되는 AC와 DC Threshold Voltage 도 알아야 합니다. 이 값들은 JEDEC 표준문서에 정의되어 있으며, DDR2/3 메모리 종류와 전송속도, DQS 구성방식 등에 따라 다르게 적용됩니다. 우선 메모리 종류와 속도에 따른 AC와 DC Threshold Voltage는 아래와 같이 정의됩니다. 이 Threshold 값은 DQ의 데이터가 1인지 0인지를 판별하는 전압 기준점이 됩니다. V IH(AC) DDR2 DDR3 VREF+0.25 (400/533) VREF+0.2 (677/800) VREF+0.175 V IL(AC) VREF - 0.25 (400/533) VREF -0.2 (677/800) VREF - 0.175 V IH(DC) VREF + 0.125 VREF + 0.1 V IL(DC) VREF - 0.125 VREF - 0.1 VDDQ DDR2 DDR3 1.8 1.5 VREF 0.9 0.75 VTT 0.9 0.75 12
  • 13. 가장 중요한 Spec이라 할 수 있는 Setup time/Hold time spec은 아래와 같습니다. DDR2 with Differential Strobe ● Setup / Hold time Data rate (Mbps) Setup Time (ns) Hold Time (ns) 400 0.15 0.275 533 0.1 0.225 667 0.1 0.175 800 0.05 0.125 ● Slew Rate table ※ Buffer Strength 등을 조절하여 Slew Rate가 변하는 경우는 변화된 slew rate에 따라 각기 다른 Setup/Hold time을 적용해야 할 수 있습니다. 이 경우 위 table을 활용하여 DQ와 DQS의 slew rate에 맞는 delta time 값을 각 setup time, hold time에 추가로 더하면 됩니다. 13
  • 14. SI Design Guide for DDR2/3 PCB DDR2 with Single Strobe ● Setup / Hold time Data rate (Mbps) Setup Time (ns) Hold Time (ns) 400 0.025 0.025 533 -0.025 -0.025 667 N/A N/A 800 N/A N/A ● Slew Rate table DDR2의 경우는 위와 같이 Single Strobe를 활용한 spec까지도 제공되는데 자세히 보면 400과 533 클럭 에서만 사용되도록 권장 되어지고 있습니다. 왜냐하면, 고속동작을 위해 DDR2의 strobe를 differential line으로 규정하고 있으나 DDR에서 DDR2로 넘어가는 과도기적 설계에서는 single strobe를 사용하는 종래의 DDR과도 호환되는 PCB 패턴을 만들어야 할 경우가 있기 때문입니다. 즉 DDR1과 DDR2를 혼용 할 수 있도록 하기 위해선 DDR2도 DDR1처럼 single strobe로 구현해야 하는 것이지요. 당연한 얘기지만, single strobe로 DDR2를 동작시키면 common noise의 영향에 더 민감해짐으로써 기존의 differential DDR2 spec을 만족시키기 어렵습니다. 그래서 별도의 single 전용 spec도 제공되 긴 하지만, 667이나 800과 같은 고속에서는 정상 동작시키기 어렵기 때문에 아예 spec 자체가 정의되어 있지 않습니다. DDR2에서의 Single Strobe는 어디까지나 종래의 DDR과의 호환 패턴을 위한 것일 뿐이 므로, 이러한 경우가 아니라면 strobe는 반드시 differential로 구성하여야 합니다. 14
  • 15. DDR3 ● Setup / Hold time Data rate (Mbps) Setup Time (ns) Hold Time (ns) 800 0.075 0.15 1066 0.025 0.1 1333 TBD TBD 1600 TBD TBD ● Slew Rate table DDR3의 높은 동작속도에서의 Setup/Hold time spec은 수시로 변동이 있는 상황입니다. TBD라고 되어 있는 부분은 To be decided의 준말로서, 곧 결정되어야 한다는 뜻입니다. 15
  • 16. SI Design Guide for DDR2/3 PCB 1-8. Module & On-Board case 앞의 설명에서, Eye Diagram의 Mask를 그리기 위해선 AC와 DC의 전압 threshold spec이 필요함을 언급하였습니다. 여기서 AC spec이란 출렁이는 AC 파형으로부터 DC적인 신호값을 읽기 위한 전압 기준값을 의미하며, DC spec이란 이미 0, 1이 판별 된 후의 파형변화를 감지하는 전압 기준값을 의미 하게 됩니다. 즉 파형이 중앙을 지나 위 혹은 아래로 움직이기 시작할 때 AC spec이 적용되고 정점을 지나 다시 중앙으로 돌아올 때 DC spec이 적용됩니다. 결국 AC/DC spec은 Data 파형이 일정 전압을 넘었느냐 아니냐를 통해 1과 0을 판단하기 위한 기준점 으로써, Setup 영역에서의 출렁이는 전압에 대비한 판단능력이 더욱 중요하기 때문에 AC spec이 좀더 까다로운 전압 값을 가지게 되는 것이지요. 그런데 여기서 한가지 기억해둘 사실은, 일반적인 on-board DDR2, 즉 PCB에 직접 DDR2 메모리를 실장한 경우엔 Setup/Hold 영역 모두에 그냥 DC spec만 적용해도 무방하다는 점입니다. AC spec은 보다 빡센 신뢰성이 요구되는 경우에 필요한 spec으로써, DIMM과 같은 DDR2 module 설계에서 적용 되어야 합니다. DIMM의 경우는 어떤 Motherboard에 꽂힐지 모르는 팔자이기 때문에 어떤 구린 PCB를 만나더라도 동작할 수 있도록 더욱 많은 설계마진이 필요하기 때문입니다. 실제로 DIMM 설계자보다는 on-board DDR2 설계자가 많기 때문에 AC spec은 통상 무시해도 좋다, 라고 말할 수도 있겠습니다. 다만 보다 마진을 많이 가져야 하는 경우에는 자체 spec으로 AC spec까지 적용하는 것도 고려해 볼만한 사항입니다. 16
  • 17. 1-9. 정확한 Termination의 중요성 실제로 DDR2의 디버깅에 있어서 자주 발견되는 오류는 적절치 못한 termination에 기인한 경우가 많습니다. 특히 저항 termination에 익숙치 않은 고주파 설계자들에게 쉽게 발생하는 문제로서 기본적인 설계지식부터 다시 검토해봐야 할 부분이 됩니다. Termination은 보통 직렬 저항 또는 병렬 저항을 이용하여 저항까지 전달되어온 신호의 전압 레벨을 tune 하는 역할을 하게 됩니다. 이 때 중요한 점은 저항의 값과 연결 방식에 따라 일장 일단이 존재한다는 사실 이며 설계자는 이러한 trade-off를 정확히 판단하여 적절한 termination 방법을 정해야만 합니다. Termination이 없는 경우 적당한 Termination이 걸린 경우 위의 그림은 DDR2/3 신호 수신단에서 저항 termination의 유무에 따른 수신 신호 파형의 변화를 보여준 예입니다. 일반적으로 저항 termination을 추가하면 오른쪽 그림처럼 전압 파형의 크기는 작아지지만, 신호의 loading이 보다 명확해져서 ripple과 over/undershoot 현상이 저감되고 파형이 안정적인 형상 이 되는 경우가 많습니다. 마진이 충분하다면 왼쪽 그림처럼 termination이 없어도 Eye mask와 관련된 SI 성능에 문제가 없을 수 도 있습니다. 그러나 이처럼 뭔가 "조절되지 않은" 큰 파형이 출렁이고 있는 경우는, 불행히도 EMI 적으로 문제를 일으킬 가능성도 높다는 점을 꼭 기억해야 합니다. 그리고 중요한 점은, DDR2/3에서는 이렇게 외부에 별도의 병렬 termination 저항을 달아주지 않아도 내부에서 ODT 기능을 활용하여 보다 효과적이고도 경제적으로 termination을 적용할 수 있다는 점입니다. 17
  • 18. SI Design Guide for DDR2/3 PCB 1-10. ODT의 활용 DDR2부터는 기존의 DDR과 달리 내부에 자체적인 termination용 저항이 탑재되어 있는데, 그것을 ODT (One-Die Termination) 혹은 DCI (Digitally Controlled Impedance)라고 부릅니다. 이러한 ODT는 외부의 Control 단자를 이용하여 조절하게 되는데, 외부 입력 신호에 따라 각 선로 종단의 병렬 저항들이 switch on/off되게 됩니다. 위의 오른쪽 그림처럼 DDR2/3 내부에 존재하는 ODT를 잘 활용하면, 메모리 IC 외부에 termination용 저항소자를 달 필요가 없기 때문에 원가절감은 물론 설계의 편의성도 증진시킬 수 있게 됩니다. 그런 데 실제로는 적지않은 설계자들이 익숙치 않다는 이유로 외부에 저항을 달고 있는 경우가 많으며 경우 에 따라선 외부소자로 사용하는 것이 납땜을 통한 간단 튜닝에 있어서는 더욱 편한 면도 있습니다. 특히 ODT로 내장된 저항은 50, 75, 150의 일정한 값만 지정할 수 있기 때문에 설계자가 미세하게 튜닝하고 싶은 경우라면 불편하게 느껴질 수도 있긴 합니다. 결정적으로 ODT 저항을 조절하는 방법이 익숙치 않아서 ODT의 활용률이 떨어지는 경우가 많은 게 현실입니다. 그러나 언제나 성능개선과 원가절감이 필요한 설계자 입장에서는 내장된 ODT를 적극적 으로 활용하여 대량 생산 시 보다 안정적인 수율 및 부품단가를 줄이고 신호품질을 개선하는 것이 좋을 것은 명약관화한 일입니다. 18
  • 19. 특히 앞의 그림과 같이 데이터 선로를 분기하여 여러 개의 DDR2/3 칩을 사용하는 경우, controller에서 특정한 하나의 칩으로만 데이터를 전송할 때 ODT가 필수적으로 사용되어야 합니다. 다른 DDR2/3 칩의 ODT는 disable하고 목표가 되는 DDR2/3 칩만 ODT를 on 시켜서 해당 DDR2/3 칩에만 load가 잘 걸려야 신호가 정상적으로 전송되기 때문이지요. 이는 S/W 적으로 control 되는 ODT의 가장 강력한 장점으로써, PCB 상에 저항소자를 추가하여 만든 termination으로 할 수 없는 선택적 동작이 가능하게 됩니다. DDR2/3의 ODT는 왼쪽 그림과 같이 각 DQ/DQS/DM pin에 300옴 3개를, ODT pin에 300옴 3개가 달려있고 각 저항끼리 병렬로 S/W가 달려있습니다. ODT를 disable 하면 아무런 병렬 저항이 보이지 않으며, 일단 S/W를 끈 상태에서 enable 을 하면 300옴이 동시에 2개가 걸려서 150옴이 됩니다. A6 (SW1) 0 0 1 1 A2 (SW2) 0 1 0 1 Rtt (Normal) Disabled 75 ohm 150 ohm 50 ohm 여기에 위의 표처럼 순차적으로 저항간의 S/W를 조절하면 150옴/75옴/50 옴과 같이 병렬로 3가지의 저항 값을 termination으로 잡아줄 수 있는데, 이는 A0 ~ A9 Address field의 A2 와 A6의 2 bit를 조절하여 결정 하게 됩니다. 이러한 ODT 조절기능은 batch file등을 이용하여 controller에 load 시키게 되며, Controller의 동작 방식 이나 종류에 따라 사용방법이 조금씩 다를 수 있으므로, 제품 제조사에서 배포하는 별도의 ODT 관련 매뉴 얼을 참조하시면 보다 상세한 활용 방법을 익힐 수 있습니다. 다시 한번 ODT의 중요성에 대해 강조한다면, DDR2/3에 이미 내장되어 있는 ODT를 적극적으로 활용 하여 DDR2/3 Memory의 신호품질을 개선하고 불필요한 외부소자도 줄일 수 있다는 점을 명심하시기 바랍니다. 19
  • 20. SI Design Guide for DDR2/3 PCB 2. DDR2/3 Design Guide 2-1. 선로길이 맞추기: Skew 관리 2-2. DIMM case/On-board case 2-3. DIMM: Clock Line 설계 2-4. DIMM: 2T mode - Address/CMD Line 설계 2-5. DIMM: 1T mode with Termination - Address/CMD Line 설계 2-6. DIMM: DM/DQS/DQ 설계 2-7. On-board: Clock Line 설계 2-8. On-board: 2T mode - Addre7s/CMD Line 설계 2-9. On-board: 1T mode with Termination - Address/CMD Line 설계 2-10. On-board: DM/DQS/DQ 설계 20
  • 21. 2-1. 선로길이 맞추기: Skew 관리 고속의 디지털 설계에 있어서 동일한 종류의 동기 데이터가 전송되는 병렬 선로들의 길이를 맞추는 것은 매우 중요한 작업이자, 기본적인 설계지식이기도 합니다. 현실적으로 PCB Layout 상에서 DDR2의 DQ 선로와 같은 병렬 선로들은, 아래와 같이 다양한 길이와 모양으로 그려질 수 밖에 없습니다. 이렇게 다양한 layer로 분산되어 다양한 형상으로 진행되는 병렬 선로들의 전기적 길이, 즉 위상을 동기 시키기 위해서는 여러 가지 방법이 동원됩니다. 가잔 먼저 각 PCB Layout CAD에 존재하는 여러 가지 부가 기능을 통하여 위상을 동기 시키는 것이 가능한데, 중요한 것은 "어떻게" 길이를 보정하느냐 라는 문제입니다. 400Mbps 급의 DDR2에서 선로길이가 아주 길지 않다면, 대체로 물리적으로 길이만 맞추 어도 어느 정도 정상적으로 동작할 수 있습니다. 그러나 datarate를 올려가기 시작하면 분명히 한계점을 느끼기 시작할 것입니다. 그렇기 때문에 단순히 길이만 계산하는 방법이 아니라, 위상 동기를 위해 선을 꼬아놓은 구조의 특성 까지 물리적으로 확인하는 것이 필요해지며, 결국 PCB에 대한 전자기적 구조해석이 필요해집니다. 본 교재에서 설명하는 모든 SI 분석용 PCB 데이터는 이러한 EM 해석에 근간하고 있으며, 제대로 된 high speed digital 분석을 위해서는 반드시 필요한 과정입니다. 그리고 중요한 점은, 아무리 EM 해석에 기반한 SI 분석을 통한 skew 보정이 가장 실제적이라고는 해도, 어쨌든 초기설계 단계에서 DQ 병렬선로의 길이를 최대한 맞추는 것은 DDR2/3 PCB layout에서 가장 기본적인 전제조건이라는 점을 기억해 두시기 바랍니다. 21
  • 22. SI Design Guide for DDR2/3 PCB 2-2. DIMM case/On-board case 실제로 DDR2 메모리를 활용하는 경우는 크게 2가지 케이스로 분류해야 하는데, 모듈 형태로서 마더보드 에 장착 해야 하는 DIMM 형태와 PCB에 직접 DDR2 메모리 IC를 SMT로 실장하여 사용하는 On-board 형태로 구분합니다. 이 두 케이스 별로 설계방법과 적용되는 spec도 미묘하게 차이 나기 때문에, 적용 하려는 시스템에 따라 최적화된 설계 방법이 필요해집니다. DDR2/3 DIMM을 이용한 경우 On-Board DDR2/3 본 DDR2/3 Design Guide part에서는, DIMM case와 On board case로 나누어서 각각의 주요 trace 설계법과 분석, 튜닝 방법에 대해 설명할 것입니다. 그리고 DDR2/3의 PCB trace 설계는 크게 Clock line 설계, CMD/Address line 설계, DM/DQ/DQS 설계의 3 part로 나뉘어지며, 각기 비슷하면서도 조금씩 다른 기준으로 설계가 이루어져야 합니다. DIMM과 On-board case는 공히 termination과 ODT에 대해 꼼꼼하게 체크할 필요가 있으나, 선로 배치와 방법론에서 여러 가지로 차이점이 있습니다. DIMM은 module을 통해 DDR2/3 메모리에 접근 하기 때문에 Controller에서 DIMM까지 가는 경로에 대한 설계만이 필요하지만, On-board의 경우는 Controller에서 DDR2/3 칩까지 전달되는 모든 경로에 대해 고려하고 튜닝 해야 합니다. 반면 경로조건은 다르지만, ODT 설정이나 termination에 따른 파형변화는 DIMM이나 on-board에 공히 적용되는 조건입니다. 고로 이후로 Design guide에서 이어지는 설명은 DIMM case와 on-board case로 나뉘어져 있지만, 실제 DDR2/3 PCB 설계자들에겐 모두 도움이 되는 공통적인 내용들이 많으 므로 전체적으로 읽어보시기를 권장 드립니다. 22
  • 23. 2-3. General Case "2 DIMM": Clock Line 설계 우선, Clock 선로들은 uni-directional differential signaling scheme을 사용하고 있으며, SSTL1.8V logic의 경우, DDR2 SDRAM의 differential Input buffer에서의 logic threshold 값은 0V를 기준으로 ±500mV를 초과하지 않습니다. 기본 사항 ● 일반적인 2개의 DIMM을 사용하는 Hardware Interface에는 Main Board 상에서 DIMM 한 개 당 3개의 differential clock signal이 공급되며, 공급된 clock의 재분배는 DIMM 모듈 내 buffer의 구성 에 따라 달라질 수 있습니다. 일반적인 2개의 DIMM을 사용하는 Hardware Interface에는 총 6개의 differential pair가 사용됩니다. ● Clock Trace는 Single Impedance는 60옴, Zodd(<Zsingle)는 50Ohm으로 설계하여 100Ohm Differential impedance은 확보합니다. (6층일 경우, Physical Width와 Height에 대한 Physical Dimension은 29페이지의 그림을 참조하시기 바랍니다.) ● Memory Controller의 Application Note에서는 Main Board 상의 Option Cap에 대한 내용들이 기술되어 있는데, 이것은 Pulse Egde의 non-monotonic 현상을 개선할 수 있으므로, 가능하면 Schematic에 반영하도록 합니다. (추후 상세 기술) 23
  • 24. SI Design Guide for DDR2/3 PCB 선로 길이의 관리 • Memory Controller와 DIMM간의 trace 길이는 최대 5000mils (12.7cm)를 넘지 않도록 합니다. 이렇게 최대 길이에 제한을 두는 이유는 Crosstalk (periodic jitter)와 Dielectric Loss(ISI)에 의한 Deterministic(Bounded) Jitter를 저감하여, Timing/Voltage Margin을 최대로 확보하기 위합니다. DDR2 interface 상의 Clock의 length는 source synchronous timing method에서 strobe signal과 같이 중요한 reference signal이므로 너무 짧게 배선할 경우, 부품 실장과 Skew 관리 시 사용되는 meander line (=serpentine trace)을 위한 공간을 확보하기 어렵습니다. • Differential line의 두 선로(+/- trace)의 길이 차이는 최대 0.25mm 이내여야 합니다. 이는 +/-Signal phase에 의한 common mode noise를 저감하기 위해서입니다. (그림 참조) Parallel Termination (100Ohm Shunt) Zdiff=100Ohm( Zodd=50Ohm) 위의 그림은 Differential Clock의 Positive Length가 0.5mm 더 긴 경우, Receiver에서 관찰된 differential voltage와 common voltage의 결과입니다. 이 경우 두 선로간의 Differential voltage의 차이는 적지만, common voltage는 매우 큰 차이를 보이고 있음을 알 수 있습니다. 24
  • 25. • DIMM의 differential pin에서 tight coupled 구간까지의 최대 길이는 0.5mm로 제한합니다. 즉 아래와 같이 두 개의 벌어진 pin에서 선로가 나온 후에는 differential pair 구성을 위해 가까이 붙이게 되는데, 최대한 가까운 거리에서 얼른 붙여야 한다는 의미입니다. 아래 그림은 Differential Signal이 Via의 Uncoupled 구간에서 Reference Change로 인해 야기시키는 Noise source를 나타내고 있습니다. (SIwave Near-Field Simulation) 25
  • 26. SI Design Guide for DDR2/3 PCB 선로 간의 간격 • Clock 신호선과 다른 신호선간의 거리는 최소 0.5mm 이상 이격할 것을 권장합니다. 만약 이 거리가 가까워지면, 불필요한 crosstalk로 인해 periodic jitter가 발생할 수 있습니다. Clock 신호는 Address/ CMD/Ctrl/DQS의 기준이 되는 신호이므로, 이러한 점에서 보다 주의해야 합니다. 이것은 Data Group (Byte Lane) 신호 중, reference signal인 strobe 신호에 대해서도 동일하게 적용됩니다. • Reference Length를 확보하기 위해 Differential Signal을 Tuning (Meander Line)하는 경우, Zdiff의 Tolerance가 심해지지 않도록 아래와 같이 멀리 이격합니다. • Differential 선로를 meander 형태로 꺾을 때는, 간격에 더욱 주의해야 합니다. 아래 그림처럼 꺾인 pair끼리 너무 가까이 붙어있으면 NG (No good, 말 그대로 NG!)라고 할 수 있습니다. NG NG NG Edge to edge spacing(S1) between positive and negative signal Edge to edge spacing(S2) between meander lines: > 2S1 위에서 지적한 NG (S1=S2) 구간은 Zdiff의 Impedance가 100Ohm으로 형성되지 않으며, Skew로 인한 설계 delay가 다소 변화될 수 있습니다. 이렇게 부득이하게 differential line을 꺾어야 하는 경우는, 다른 signal pair와의 거리 S2가 differential line 자체의 간격 S1보다 최소 2배 이상이 되도록 설계해야 합니다. 만약 그 이하의 거리로 pair끼리 맞닿으면, 인접 Signal이 Switching할 때 Switching조건에 따라 Zodd, Zeven의 임피던스에 Variation이 발생되고 Velocity 또한 변화되어 위상 차가 더욱 커지게 되어, 결과적으로 common mode noise가 더욱 증가되기 때문입니다. 26
  • 27. 이러한 NG구간 단면의 E-Field 분포를 관찰해보도록 하겠습니다. (모든 선 폭이 0.1mm이고 유전체의 두께도 0.1mm인 경우의 예입니다) 아래 그림은 S1=S2 인 경우의 단면 field 분포로서, 두 pair간에 불필요한 field가 형성되고 있음을 알 수 있습니다. 이렇게 Signal들이 인접하여 Coupling이 강해지면 Diff. Signaling에 대한 유효유전 상수가 작아지고 (전송속도는 빨라짐), 결과적으로 Diff. Impedance가 감소되게 됩니다. S2=S1 Posi Nega Nega Posi Ref. Plane 아래 그림은 S2 = 2*S1 인 경우의 단면 field 분포로서, 위와는 다르게 양 쪽이 똑같이 안정적인 field 분포를 갖고 있음을 알 수 있습니다. S2=2S1 덧붙여서, Differential Clock 선로의 Self Net에 skew가 생성되는 상황일 때, +/- 길이 오차 (Phase)를 우선적으로 보정하되 Uncoupled 구간의 관리를 우선 순위로 합니다. 예제) ※ 우선순위 1. Pin 배열로 인해 Skew가 생길 경우, Phase delay를 보정(Serpentine Trace). 2. Skew보정 시, 생성된 Uncoupled Region 을 최소화하며, 불연속이 적어지도록 두 라 인 사이의 영역을 관리 27
  • 28. SI Design Guide for DDR2/3 PCB Termination 관련 @ Main Board DIMM 내의 Clock input buffer의 근처에는 differential line의 +/- 선로간에 병렬 저항이 사용되므로, Main Board에서는 별도의 Shunt Termination저항 (100Ohm)을 사용하지 않습니다. 또한 Reflection 으로 인한 Voltage/Timing Margin을 더 확보하기 위해 Buffer Strength와 Termination을 최적화할 필요가 있습니다. Main Board 상에 100Ohm shunt termination을 추가로 적용할 경우, DC IR drop이 발생하여 파형이 작아지므로 DC적인 noise margin이 줄어들게 됩니다. 선로의 배치 Clock 선로는 기준신호이기 때문에, 다른 신호보다 더 세심하게 배치되어야 합니다. Routing 우선순위 는 DDR2 Interface Signal들 중에 첫 번째이며, 불가피하게 Impedance 불연속 구간이 발생할 경우, 이것을 최소화하여 설계하려는 노력이 필요합니다. (전술한 Uncoupled Region참조) 상기 그림은 외층에 배선한 edge-to-edge coupled type의 Microstrip일 경우이며, FR4 system에서 Physical Dimension이 W=0.1mm, S=0.1mm, H(PCB Layer Stack 중, Prepreg Thickness)=0.1mm 일 경우, 약 Single Zo가 63Ohm 정도로 형성되며, Zodd가 약 50.5Ohm 정도로 형성이 됩니다. (Zdiff=2*Zodd) 28
  • 29. 아래는 6층 기판의 예로써, 1층 혹은 6층에 Differential Signal을 상기와 같이 Coupled Microstrip으로 배선하고, 2층 5층은 Reference Plane (GND)으로 구성한 PCB Layer Stackup의 예입니다. 이러한 stackup 방법은 4번째 층에 Power Plane Layer가 들어가기 때문에 Power(4th)-Ground(5th) Plane Pair에 의한 Power/Ground Impedance를 저감하는데 도움이 됩니다. 또한 선로를 배선하는 1,3,6층은 어느 Layer에 배선을 해도 Ground를 reference plane으로 가져갈 수 있고, 층별로 배선 폭 (W 약 0.1mm)을 바꾸지 않아도 약 60옴의 일정한 특성 임피던스를 갖게 된다는 장점도 있습니다. 물론 이보다 더 많은 stackup을 사용하면 당연히 더 좋은 배선 층과 안정적인 전원 특성을 가질 수도 있지만, 본 예에서는 BGA의 짧은 Ball Pitch에 대한 구현성과 원가절감을 고려한 6층 (1.6T Bulk PCB) 의 예를 들고 있습니다. 특히 위에서 제시한 방법은 DDR2 Interface에서 SI/PI/EMC에 유리한 Layer Assign임을 참고하시기 바랍니다. ※ 참고문헌: "Printed Circuit Board Design Techniques for EMC Compliance" Ch2. Section2.5 Layer Stackup Assignment 29
  • 30. SI Design Guide for DDR2/3 PCB1pF Shunt Termination 200Ohm Shunt Termination Resistor 위 그림은 DDR2 Memory Module 내의 Differential Clock 선로의 Interconnection Topology (Multi-Drop)를 나타내고 있습니다. 아래 그림은 1. Interconnection Topology의 빨간색 부분에 Port들 (8 Multi port)을 인가하고, 2. Full PCB를 주파수 영역의 Filed Solver인 SIwave로 해석한 후, 3. SPICE model을 추출하여 4. Nexxim에서 Main Board의 clock interconnection topology 연결하여 SI적인 특성 (667Mbps - Clock: 333MHz)을 분석 하는 과정을 Schematic으로 나타낸 것입니다. SIwave에서 분석된 DDR2 Memory Module의 Clock Interconnection에 대한 회로 Element 위와 같이 PCB의 SPICE 모델을 불러온 후, IBIS 설정 후에 differential 입력을 설정하여, Differential input에서의 Clock 파형을 아래와 같이 해석해보았습니다. 30
  • 31. Layout 상의 Clock trace 형상에서 확인했듯이, 분기 (Multi Drop) 구조로 발생되는 Reflection Noise 로 인하여 각 파형들의 edge가 깨끗하지가 않고, non-monotonic response가 발생하고 있습니다. 이러한 Non-monotonic response를 완화하기 위해, Main Board Topology를 아래 그림과 같이 변경해 보았습니다. 아래 회로는 DIMM Connector 부근에 5pF의 Shunt Capacitor를 추가한 것입니다. 31
  • 32. SI Design Guide for DDR2/3 PCB위 결과에서 굵은 파형이 5pF의 Capacitor를 추가한 그래프인데, Non-monotonic response가 줄어 들면서 파형이 약간 개선된 것을 확인할 수 있습니다. 다만 Capacitor의 추가로 인해 Reference Event Time이 조금씩 느려질 수 있기에, 적당히 trade-off를 하면서 튜닝해야 합니다. (Buffer Strength와 BOM의 결정) 위 그림은 Clock Buffer Strength를 변경해가면서 해석한 결과입니다. 이처럼 S/W 또는 H/W적으로 내부의 Output Buffer의 Strength를 변경할 수 있는데, 일반적으로 Output Buffer의 Strength를 강하게 할수록 Output Impedance는 작아집니다. 이런 식으로 신호의 세기를 변화시킴으로써 slew rate를 튜닝 할 수 있는데, Buffer Strength 조절은 Nexxim에 Import된 Output buffer의 IBIS model의 "Model Selection" UI를 통해 변경함으로써 손쉽게 확인해볼 수 있습 니다. 32
  • 33. 2-4. General Case "2 DIMM": Address/CMD Line 설계 (분기구조, 2T모드) Address/CMD 선로 설계에 있어서는 1T 모드와 2T 모드의 경우를 고려해야 하는데, 이것은 Memory Controller의 DDR2 Interface Pin이 어떻게 구성이 되는 지와 관련이 있습니다. JEDEC에서 정의한 DDR2 DIMM Reference Design은 아래와 같이 다양한 종류가 있습니다. General Case의 2 DIMM Interface 시, 메모리 모듈을 개발하는 회사에서는 아래의 모든 조합에 대해 호환성을 가지도록 설계하여야 합니다. 33
  • 34. SI Design Guide for DDR2/3 PCB Source: RAMpedia by Virtium Technology 34
  • 35. PCB상에서 Address/CMD 선로를 설계할 때는, "Memory Controller"에서의 Address/CMD pin이 Copy 유무 (Slot1, 2 전용 Pin)에 따라 큰 차이가 있습니다. 만약, Memory Controller의 Address/CMD pin이 각각 1개일 경우라면, 아래 그림처럼, 2개의 DIMM에 분기시켜야 합니다. 하나의 Address/CMD pin에서 나온 선로는 DIMM 2개에 연결되며, 이때 확장을 위한 Slot2로 인해 Slot1에는 불필요한 stub가 물리적으로 배선이 됩니다. 이러한 Stub1과 Stub2의 길이를 최소로 해야 지만 Memory pin에서의 non-monotonic response를 줄일 수 있습니다. 위와 같이 분기된 경우 하나의 DIMM에 9개의 DDR2 칩이 존재한다면, 하나의 선로에 총 18개의 load (1DIMM당 9개의 Receiver)가 걸리는 셈이 됩니다. 이는 매우 heavy한 load (IBIS내의 Ccomp의 값이 약 1pF~3pF)로서, address/CMD 신호를 생성하는 driver 신호의 Power가 커야지만 신호전압이 full-swing할 수 있게 됩니다. 이 때문에 분기구조를 사용하는 경우는 2T 모드를 사용하는 것이 유리한데, 만약 1T 모드로 동작시키 면 ISI (Inter Symbol Interference)가 너무 심해져서 Valid Window가 작게 형성되어 Timing margin 을 확보하기가 힘들어집니다. 여기서 발생하는 ISI는 Multi-Giga bps의 Serial I/O에서처럼 형성되는 Conductive/Dielectric Loss 때문이 아니라, heavy load에 의한 fan-out 현상에서 기인하고 있습니다. 35
  • 36. SI Design Guide for DDR2/3 PCB만약, Memory Controller에서 2개의 Address/CMD pin을 제공한다면, 분기할 필요 없이 각각의 DIMM 에 하나씩 걸어주면 됩니다. 이 경우는 load가 상대적으로 가벼워지기 때문에, 간단하게 1T 모드로 동작 시킬 수 있게 됩니다. 여기서 말하는 1T 모드는, 1주기의 Clock 신호당 1번의 Rising에서 Address/CMD 신호가 Sampling 되는 방법을 의미하고, 2T 모드는 2주기의 Clock 신호당 당 1번의 Rising에서 Address/CMD 신호가 Sampling되는 방법을 의미합니다. (아래 그림 참조) ※ 상기 그림은 Logic Timing Diagram이 아닙니다. 동일한 Interconnect Topology를 가지는 Address/CMD 신호가 Pulse Width를 다르게 가져갈 경우에 대한 例입니다. 36
  • 37. 위 그림은 하나의 address/CMD 선로를 이용하여 2개의 DIMM을 Mount했을 때의 SI분석 사례 입니다. DIMM하나 당 9개의 DDR2 Address/CMD receiver들이 존재하는 경우이며, 이것을 667Mbps Speed grade에 대해 1T 모드로 동작시키면, Address/CMD 신호는 167MHz로 동작하게 되며 주기는 약 6nsec가 되고, PW는 약 3nsec정도가 됩니다. 1T Mode @ Single ADD/CMD BUS Pulse Width = 3nsec @ 667Mbps 위의 Eye Diagram 해석 결과를 보면, 분기구조에 대해 1T 모드로 동작 시에는 Load가 너무 Heavy 해서 ISI가 심해진 것을 알 수 있습니다. 이 경우 연속적 Switching하는 Bit Sequence가 발생되면 제대로 Voltage Swing이 되지 않게 되고, 결과적으로 위와 같이 Eye Window가 작아지고 Timing/ Voltage Noise Margin을 확보할 수 없게 됩니다. 37
  • 38. SI Design Guide for DDR2/3 PCB2T MODE @ Single ADD/CMD BUS Pulse Width = 6nsec @ 667Mbps 위의 해석결과는, 같은 분기구조에서 2T 모드로 동작시킨 경우의 Eye Diagram 결과입니다. 2T 모드 가 되면서 PW가 2배인 6nsec로 늘어났기 때문에, 연속적인 Bit에서도 거의 Full Swing을 할 수 있게 되었습니다. 결과적으로 ISI에 의한 영향이 조금 둔감됨으로써, Eye Valid Window가 약 3nsec정도 확보되는 것을 볼 수 있습니다. 상기 Topology와 같이, Main Board의 DIMM 1근처에 10pF짜리 Capacitor(Option)를 추가할 경우, 38
  • 39. Termination scheme이 개선됨에 따라 약 150psec정도 Eye Window가 더 커진 것을 알 수 있습니다. 이렇듯 Main Board 상의 Interconnect Topology 및 BOM 결정에 의해 Address/CMD 선로의 신호 품질을 개선할 수 있는데, 이러한 작업을 Pre Layout SI simulation이라고 합니다. (회로도를 생성할 경우, 안정적인 품질의 BOM을 결정할 수 있습니다.) 마지막으로 Buffer Strength를 강화시켜본 해석결과를 살펴보도록 하겠습니다. 2T MODE + 10pF + Buffer Strength (1.8V sstl class1 12mA) 39
  • 40. SI Design Guide for DDR2/3 PCB기존의 Buffer Strength (8mA)보다 좀 더 센 12mA의 Buffer Strength를 가진 IBIS model로 교체한 결과를 보면 (Memory Controller가 SSTL Class2지원 시, Buffer Strength는 20mA까지 높일 수 있습 니다.), 이전 결과보다 Eye window가 750ps 정도 더 커진 것을 알 수 있습니다. (Nexxim 내 IBIS Model Selector UI를 활용) 2T MODE + 10pF + Buffer Strength (1.8V sstl class1 12mA) 위 그림은 지금까지 적용된 분기구조의 Address/CMD 선로에 대해 각종 튜닝을 거친 후의 Timing Diagram 분석입니다. Clock과 Address/CMD의 Waveform을 같이 Simulation함으로써, Propagation Delay라던가, Reflection에 의한 Timing Margin같은 것들을 Post Layout (DIMM)+Pre Layout (Main Board) Simulation을 통해 확인해볼 수 있습니다. Timing 분석을 할 경우, Receiver인 DDR2 Memory의 Address/CMD Input Buffer에서의 Setup/Hold Time을 확인해야 하며, 이것을 상기 Valid Before/After로부터 각각 빼서 남는 부분이 Setup/Hold Margin이 됩니다. 상기 그림에서는 Pre Layout된 Main Board의 Clock 길이가 Memory보다 상당히 길게 배선되어 Hold Margin이 적게 형성되는 예를 나타내고 있습니다. 이 때 Clock Delay (DLL setup) 는 Address/CMD Pulse width의 1/2입니다. 40
  • 41. 2-5. General Case "2 DIMM": Ctrl Line 설계 (1T mode Address/CMD 설계) Ctrl 선로는 Address/CMD와 달리 항상 2개의 pin이 각기 다른 DIMM을 load로 하기 때문에, 1T 모드만 사용해도 무방합니다. 이 경우는 분기구조 없이 2개의 pin이 각각의 DIMM에 연결되는 Address/CMD 선로의 1T 모드 동작의 경우와 설계방법이 동일합니다. 41
  • 42. SI Design Guide for DDR2/3 PCB앞을 그래프에서 보여지듯이, Valid Window는 약 1.39nsec 정도가 나오지만 Voltage Noise Margin이 별로 없는 상황입니다. 이런 경우 Pre Layout 해석을 통해 효과적으로 개선할 수 있으므로, SSN과 Crosstalk에 의한 영향이 중첩이 될 경우를 대비해서 더 큰 Voltage Noise Margin을 확보하도록 해보겠 습니다. 여기에 2T 모드 튜닝 때와 마찬가지로, 위와 같이 10pF짜리 Capacitor를 추가하였습니다. 위 그래프의 결과를 통해 Reflection Noise가 다소 완화되면서 Valid Window가 400ps 정도 더 커진 것을 알 수 있으며, 위 아래의 Noise Margin도 늘어났습니다. 이렇듯 Nexxim을 이용한 SI 시뮬레이션 을 통해 Option discrete component가 어떠한 부분을 개선할 수 있는지 미리 예측해볼 수 있게 됩니다. 42
  • 43. 1T Mode ADD/CMD and Control Signals (with 20pF capacitor) 위 그래프는 분기구조가 없는 1T 모드의 Ctrl/Address/CMD 선로의 Timing Diagram 분석 결과입니다. 적당한 선로 설계와 튜닝을 통하여 Valid Window를 확보하였고, 그에 따라 안정적인 동작이 가능하도록 충분한 Setup/Hold Margin이 확보되었음을 알 수 있습니다. 이 때 역시 2T 모드와 마찬가지로 Clock은 Ctrl/Address/CMD 신호의 Center Align을 위한 DLL 값을 사용한 결과입니다. 43
  • 44. SI Design Guide for DDR2/3 PCB 2-6. General Case "2 DIMM" : DM/DQS/DQ 설계 DDR2 SDRAM부터는 칩 내부에 Termination 저항을 장착하고 조절하는 ODT(On-Die Termination) Technology를 적용하고 있습니다. 그래서 DATA Group Signal의 Interface에 있어서 가장 먼저 확인 하셔야 될 작업은 사용할 Memory Controller가 ODT Technology를 채택하고 있는가 입니다. 아래의 Table들은 Controller와 DDR2 칩 모두 ODT가 있을 경우의 ODT설정법입니다. On-Board 에서도 Data가 분기되는 경우에는 Table분석이 반드시 필요합니다만, Data 신호가 Point-to-Point로 연결되는 경우에는 별도의 Table분석이 필요하지 않습니다. 44
  • 45. Signal Write Mode Operation 1R/2R Slot1 Operation 각각의 DIMM에 SDRAM이 Single Side에만 존재하는 경우, 첫번째 DIMM으로 Memory Controller 에서 Write하는 경우에 대한 Simulation을 가정해보겠습니다. 이 Simulation 사례에 사용된 Memory Controller는 ODT Technology를 적용하고 있지 않기 때문에, Read Mode Operation을 위한 물리적인 Parallel Termination (0.9V Pull-up Resistor)이 Memory Controller 근처에 있습니다. 45
  • 46. SI Design Guide for DDR2/3 PCB위 그래프는 DIMM2에서 ODT를 50옴으로 적용하고 있을 때의 DIMM1 DQ signal에 대한 Eye-Diagram 으로서, 1.26ns의 Eye window가 적당히 확보되고 있는 것을 알 수 있습니다. 그러나 만약 DIMM2의 ODT를 Disable하게 되면, termination되지 않은 DIMM2쪽 선로가 Open-Stub 이 되어버리면서 그 영향으로 DIMM1의 Data Input Buffer에서는 Non-monotonic response가 발생 하게 됩니다. 위와 같이 Eye window가 1.26ns에서 0.81ns로 무려 450psec나 손해를 보게 되면서 Timing Margin을 확보하기 어려워집니다. 이 간단한 사례를 통해, 사용하지 않는 DIMM의 ODT의 설정 여부가 신호품질에 얼마나 큰 영향을 주는지 알 수 있습니다. 또한 물리적인 확장 Slot이 있는 경우, 하나의 DIMM만 사용하여 DUAL Channel을 구성하지 않을 경우도 상기와 같은 현상이 나타납니다. 46
  • 47. 위 그래프는 Single-Ended DQS를 사용한 경우의 DQ의 Timing 분석 결과로서, Valid Before, Valid After가 충분히 확보되어 Setup/Hold margin도 충분히 확보된 결과를 보여주고 있습니다. 위의 예에서는 Driver쪽에 Jitter를 추가한 Simulation 결과라서 Receiver에서도 많은 양의 Jitter가 발견되고 있는데, Valid Before/After를 계산할 때는 이러한 Jitter 부분을 빼야 한다는 것을 보여주고 있습니다. 47
  • 48. SI Design Guide for DDR2/3 PCB이번에는 DIMM에서 Memory Controller 쪽으로 데이터를 전송하는 경우, 즉 Controller가 read하는 경우를 분석해 보겠습니다. DIMM2에서 ODT 50Ohm 설정했을 경우 DIMM1에서 Memory Controller로 Driving하는 경우에도, 사용하지 않는 DIMM2는 ODT 50Ohm으로 설정되어 있어야 위와 같이 약 1.38ns정도의 Valid Window를 확보를 할 수 있습니다. 만약 이 때 DIMM2에서 ODT를 사용하지 않는다면, 아래와 같이 Eye Diagram이 변화하게 됩니다. 48
  • 49. DIMM2에서 ODT disable 설정했을 경우 DIMM2에서 ODT가 Disable되어 있을 경우에는 Open-Stub에 의한 Multiple Reflection으로 약 위와 같이 200ps정도의 Valid Window가 감소되었습니다. DIMM으로 write하는 경우보다는 ODT disable에 의한 손실이 적긴 하지만, 어쨌든 중요한 사실은 read 모드이건 write 모드이건 간에 controller와 DIMM 간의 통신 중에는 사용하지 않는 나머지 DIMM에 대해 ODT를 잘 적용해야 불필요한 반사와 손실을 최소화할 수 있다는 점입니다. DIMM2에서 ODT 50Ohm일 경우, MC쪽 Parallel Termination Rt의 Sweep 49
  • 50. SI Design Guide for DDR2/3 PCB앞의 그림은 Memory Controller쪽의 Rt Parallel Termination의 값을 여러 가지로 적용해본 결과 입니다. 이러한 외부의 Rt는 Memory Controller가 ODT를 사용하지 않을 경우 적용되는데, 값이 너무 작을 경우에는 Voltage Noise Margin이 확보되지 않습니다. 보라색 파형은 Rt가 55옴일 경우인데, 겨우 75mV정도 밖에 Noise Margin이 확보되지 않고 있으며, 이렇게 SSN과 Crosstalk이 중첩이 되면 충분히 Margin을 가지는 설계를 할 수 없습니다. 반면 120옴인 경우 약 217mV 정도의 Noise Margin이 확보되는 것을 볼 수 있는데, 이처럼 항상 100Ohm 이상의 값을 채택하는 것을 권장합니다. 이와 같이 Designer/Nexxim에서는 DIMM과 연계한 Pre Layout SI simulation을 통해 적절한 Rt값을 용이하게 결정할 수 있습니다. 위 그래프는 Single-Ended DQS를 사용한 경우의 DQ의 Timing 분석 결과로서, Valid Before, Valid After가 충분히 확보되어 Setup/Hold margin도 충분히 확보된 결과를 보여주고 있습니다. 위의 예에서는 Driver쪽에 Jitter를 추가한 Simulation 결과라서 Receiver에서도 많은 양의 Jitter가 발견되고 있는데, Valid Before/After를 계산할 때는 이러한 Jitter 부분을 빼야 한다는 것을 보여주고 있습니다. 50
  • 51. SUMMARY: General Case의 2 DIMM Design 마지막으로 DDR2와 같은 Source Synchronous Timing Method를 사용하는 High Speed Parallel I/O 에서 고려해야 할 사항들은 아래와 같습니다. 1. Clock의 길이에 의거한 Address/CMD/Ctrl/DataStrobe 선로 Skew관리 2. Data Group (DM, DQ, DQS)에서 Strobe 길이에 의거한 Data/Data Mask 선로 Skew관리 3. Buffer Strength와 Termination을 최적화 4. SDN (Signal Delivery Network) 급전 지점에 공진이나 Return Current Path의 결함제거. 5. PDN (Power Delivery Network) Low Impedance Profile 6. SSN과 Crosstalk을 최소화 7. Register Setup (Buffer Strength, Delay, ODT 등)이 올바른가? 이러한 사항들을 잘 확인하면서 PCB를 설계함으로써, DDR2 Read/Write Test시 Logical Malfunction을 예방할 수 있을 것입니다. 51
  • 52. SI Design Guide for DDR2/3 PCB 2-7. On-board: Clock Line 설계 32M x 16bit DDR2 4 memory interface Example 본 파트에서는 상기와 같이 On-Board DDR2 Interface시에 가장 많이 사용되는 32M 16bit DDR2 4 Memory의 PCB설계 방법에 대한 예를 소개하고자 합니다. 우선 General Case 2 DIMM PCB 설계와 마찬가지로, PCB의 제조단가를 줄이기 위해서 6 Layer Stackup을 권장합니다. 마찬가지로 가장 먼저 확인해야 할 부분은 Termination으로서, Memory Controller에서 ODT를 활용할 수 있는지를 확인해야 합니다. (DDR2 Interface 관련 부분이므로, Data Group Signal들에 대한 확인이 필요) Clock Signal은 일반적으로 Memory Controller에 2쌍의 Clock Output Buffer가 존재하기 때문에 아래의 Topology가 흔히 쓰이게 되는데, 여기에는 여러 가지 Termination 방법이 존재합니다. CLK0_Positive Input Buffer CLK0_Positive Output Buffer (non-inverting) CLK0_Negative Output Buffer (inverting) (non-inverting) CLK0_Negative Input Buffer (inverting) Branch Point 52
  • 53. 이와 같은 Topology에서 선로가 분기가 되는 분기점은 최대한 Memory IC 근처에 존재해야 합니다. 대부분의 DDR2/3 Application Note에서는 "Balanced T Branch"를 권장을 하고 있는데, 이처럼 아래와 같은 Design Rule을 확보할 필요가 있습니다. Clock Line의 전체적인 물리적 길이는 50mm~75mm 정도로 설정합니다. (Bulk 6층 기판에서 3개의 배선 층을 활용하여 2개의 Memory에 Routing할 경우) DIMM의 경우와 마찬가지로 선로길이가 너무 짧으면, DFM에 의한 Decap 및 Source/End Termination을 적용하기 위한 공간이 부족해져서 Parallel I/O 신호들 간의 Skew를 Tight하게 관리할 수 없습니다. 반대로 너무 길 경우, Channel Length의 증가로 발생한 ISI와 Parallel Length의 증가로 인한 Crosstalk 로 인해 SI 특성이 나빠질 수 있으며, 전하가 가/감속되는 Loop Size의 증가로 인해 EMI특성이 나쁘게 나타날 수 있습니다. 위 그림에서는 Stub1, 2의 길이를 약 15mm이내에서 관리하는 것을 권장하는데, 이 길이가 증가할 경우 Input Buffer에서 전압파형의 Rising/Falling시에 Non-monotonic response가 증가하기 때문 입니다. 또한 위의 예에서는 Driver-Receiver간 선로 길이가 (Digital 신호의 Knee Frequency에 대한 Wavelength기준으로) 파장의 1/20보다 길어졌기 때문에, 반드시 Series 혹은 parallel termination이 필요해집니다. 53
  • 54. SI Design Guide for DDR2/3 PCB우선, Termination이 없는 경우 Input Buffer에서의 Differential Voltage Waveform이 어떻게 되는지 관찰해 보도록 하겠습니다. (Trace Width=0.12mm, Spacing Between Diff. pair = 0.1mm) Output Buffer = Diff. SSTL Class1 8mA (Altera FPGA) (Output Impedance = 25.7 Ohm) 위의 결과처럼 termination이 없으면 과도한 Overshoot/Undershoot이 발생하고, 이로 인해 EOS (Electrical Overstress)는 물론, 신호반사에 의한 전하의 가감속이 발생하여 EMI 특성이 나빠지게 됩니다. 이러한 특성을 개선하기 위해, Output Buffer와 그것을 배선할 Transmission Line의 특성을 고려하여 여러 가지 방법으로 Termination을 적용해볼 수 있는데, 크게 3가지의 termination topology 가 존재합니다. 54
  • 55. 1) Series Termination을 사용할 경우 (667Mbps, Clock Frequency = 333MHz) Coupled Transmission Line의 Zodd가 약 49.1Ohm이고, Output Buffer의 Output Impedance가 약 25.7Ohm이므로, 23.4Ohm의 Series Damping저항을 사용한 경우, VIH=+250mV VIL=-250mV 위와 같은 간단한 Series Termination의 장점은, Overshoot/Undershoot에 의한 RF Spectrum을 최소화할 수 있으면서도 DC 전력소모가 거의 없다는 점입니다. 또한, 선로를 Routing할 때 최대한 대칭을 유지할 수 있습니다. (이러한 Uncoupled Region의 최소화는 Memory Controller 업체에서 Logic 안정성을 위해서 추천하는 방법이기도 합니다) 단점으로는, Input Buffer의 Differential Logic Threshold 전압이 약 ±250mV 밖에 안됨에도 불구하고 과도하게 큰 Voltage Swing을 해버려서, EMI특성이 나빠질 수 있다는 점입니다. 55
  • 56. SI Design Guide for DDR2/3 PCB 2) Parallel(Shunt) Termination (Balanced)을 사용할 경우 (667Mbps, Clock Frequency = 333MHz) 위의 Topology는 양쪽 receiver에 shunt termination (Rt=100 Ohm)을 적용한 경우이며, 이에 따른 Receiver의 Differential Voltage Waveform은 아래 그림과 같습니다. 473mV VIH=+250mV VIL=-250mV 위 결과에서처럼, Overshoot/Undershoot가 제거되어 EMI 특성이 크게 개선될 것으로 예측됩니다. 다만 대략 473mV 정도의 Voltage Noise Margin이 확보되긴 하였으나 전압이 너무 작게 Swing한다 는 단점이 있습니다. 또한 병렬 저항으로 흐르는 전류로 인해 DC 전력소모가 크게 증가하기 때문에 휴대용 기기에 대한 Topology로는 권장하기 힘든 방법이라고 할 수 있습니다. 56
  • 57. 3) Parallel(Shunt) Termination (Unbalanced)을 사용할 경우 (667Mbps, Clock Frequency = 333MHz) Name=required + - VPOWER IN GND OUT 1 R26 PULLUP 100 1 2 W=0.12mm P=10mm SP=0.1mm 1 2 W=0.12mm P=10mm SP=0.1mm inv_in 2 OUT 0 logic_in enable 1 2 W=0.12mm P=45mm SP=0.1mm V2 inv_out PULLDOWN W=0.12mm P=5mm SP=0.1mm 1 2 W=0.12mm P=5mm SP=0.1mm POWER IN GND OUT 0 inv_in 0 위와 같이 한쪽에만 저항을 다는 Unbalanced Shunt Termination을 적용하면, DC적인 IR Drop을 줄일 수 있어서 아래 그림처럼 양쪽에 저항을 단 경우에 비해 Voltage Noise Margin을 더 많이 가져갈 수 있다는 장점이 있습니다. + Name=required1 V- VIH=+250mV VIL=-250mV 다만 이 Topology처럼 배선할 경우, 한쪽에만 Shunt Termination이 사용되므로 전체적인 비대칭성에 대해 다른 Topology들 보다 좀 더 주의해서 다루어야 할 필요가 있습니다. 57
  • 58. SI Design Guide for DDR2/3 PCB앞에서 설명한 것처럼, 각각의 termination 방법에 따라 나름의 일장일단이 있습니다. 이 방법 모두 Logic 안정성의 관점에서는 크게 문제가 없겠지만, 설계하고자 하는 application에 따라 적절한 Topology를 선택할 필요가 있습니다. 1) Series Termination ● 전력소모가 적기 때문에, 휴대기기에 권장 2) Parallel termination (balanced) ● EMI를 최대로 저감하고 싶을 때 권장 3) Parallel termination (unbalanced) ● 1)번과 2)번의 절충이 필요할 때 권장 마지막으로 병렬 저항을 사용할 경우에는, Voltage swing의 저하를 막기 위해 저항소자는 1개만 사용 하는 것이 좋습니다. 58
  • 59. 2-8. On-board: 1T mode - Address/ CMD Line & Ctrl 설계 On-board 4 memories 용 PCB를 설계할 때, Address/CMD Port가 Memory Controller에서 2개씩 존재하는 경우는 위와 같이 1 Driver - 2 Receiver로 회로가 구성이 되며, Control Signal들의 Topology 와 동일해 집니다. (이 때 Speed Grade가 667Mbps일 경우, Add/CMD 1T, Control Signal의 Operating Frequency는 약 166MHz이며, 이 경우 Bit의 Pulse Width는 약 3nsec가 됩니다.) 아래의 회로도는 Clock Length에 기반하여 양쪽이 65mm의 길이가 되도록 배선한 사례입니다. 위와 같은 경우 Rising time을 기준으로 물리적 길이에 따라 Reflection의 영향을 받으므로 다음과 같이 Memory Input buffer의 over-driven으로 인해 Overshoot/Undershoot가 형성됩니다. 59
  • 60. SI Design Guide for DDR2/3 PCBVIH=1.15V 그런데 이렇게 출렁이는 파형이 검출되더라도 AC Overshoot/Undershoot Area를 계산해보면 IC Maker의 Spec을 만족하는 경우가 많아서, 결과적으로 logic에 문제가 없기 때문에 Series Termination을 생략하는 경우가 많습니다. 하지만 공간이 허락하는 한, EMI 품질을 좀더 확보할 수 있도록 Array Resistor를 이용하여 모든 신호에 Source Termination하는 것을 권장합니다. 아래는 EMI 품질을 보다 확보하기 위해 Source Termination을 적용한 회로도 입니다. 가능한 짧게 배선하여 Source Termination (물리적길이<lamda/10) 할 것을 권장하지만, DFM Rule와 Array R 실장을 위해 설정한 값 60
  • 61. 이렇게 source termination을 적용하면, 위의 그림과 같이 Overshoot/Undershoot까지 깔끔하게 제거 할 수도 있습니다. 대신에 Input Buffer에서 Slew가 약간 감소하게 되어 Valid Window는 약간 손해를 볼 수 있지만, EMI 특성이 훨씬 안정적으로 됩니다. Source termination에 의한 EMI 저감효과를 다각도로 관찰해보기 위해, 먼저 far-field 해석의 경우를 예로 들어보겠습니다. SIwave 에는 Push Excitation 이라는 기능이 있어서, 실질적인 신호파형을 직접 PCB의 물리적 구조에 신호원으로 입력할 수 있습니다. 아래 그래프는 Nexxim에서 SSTL 1.8V Class1 8mA의 출력 전압파형 을 나타낸 것입니다. 61
  • 62. SI Design Guide for DDR2/3 PCB이러한 시간 축 전압파형의 주파수 스펙트럼은 아래와 같으며, 이러한 주파수별 신호 크기를 SIwave 상에서 Driver pin의 voltage source로 인가할 수 있습니다. Voltage Spectrum (Maximum Switching) Driver Pin Voltage Source를 인가 (Frequency Depe ndent) Push Excitation (좌측의 Spectrum을 SIwave에 인가하여 EMI 해석을 진행) 아래 그래프는 far-field 해석결과로서, 3m 떨어진 거리에서 흡수되는 E field 크기를 주파수 별로 나타낸 것입니다. 왼쪽이 termination이 없는 경우이고, 오른쪽이 37.7 ohm의 source termination을 추가한 경우의 결과입니다. 40dB 34dB 498MHz(3rd Harmonic) Source Termination이 없는 경우 source termination: 37.7 ohm 두 경우에 대해 radiation된 E field 크기를 보면, source termination이 추가되면서 불필요한 주파수 에서의 방사량이 6dB 정도 줄어든 것을 확인할 수 있습니다. 이처럼 source termination이 추가되며 파형이 스무스 해질수록, 불요파 전력의 level도 낮아져서 외부로 방사되는 EMI 양도 줄어든다는 점을 잘 관찰해야 합니다. 62
  • 63. 이번에는 Near Field 해석결과를 비교해보도록 하겠습니다. 아래 그림은 source termination이 없는 경우, PCB 표면에서 1mm 위에서 계산된 near field (H-field) 분포도입니다. 아래는 Source Termination이 있는 경우의 near field 분포도입니다. radiation 된 near field의 대략적인 기준 값으로부터 알 수 있듯이, far-field의 경우와 마찬가지로 near field에 있어서도 source termination이 추가되면서 불필요한 radiation이 줄어들었다는 것을 알 수 있습니다. 63
  • 64. SI Design Guide for DDR2/3 PCB 2-9. On-board: DM/DQS/DQ 설계 본 자료에서는 32M 16bit DDR2 4 memories Interface를 예제로 서술하고 있는데, 이 경우는 대부분 Driver-Receiver간에 Point-to-point Interconnect를 구성하고 있어서 아래와 같은 Topology를 사용합 니다. Memory Controller I/O DDR2 Memory I/O Zo는 약 60~63Ohm (W=0.1mm고정) (6층 PCB Stackup 중, 1,3,6층을 배선 층으로 사용가능) DQS는 기본적으로 양방향 Differential Signal 이지만, 경우에 따라 (DDR1과의 호환을 위해서라던지) Single-Ended Line으로 구성하는 경우가 있습니다. 본 예에서는 Single-ended로 구성하고, Memory Controller에서 ODT를 채택하고 있지 않은 경우에 대해 설명하고 있다는 점을 기억해두시기 바랍니다. 이 경우 Topology 자체는 DQ 신호와 동일해 집니다만, Strobe 신호는 Byte Lane을 구성하는 Reference 신호로서 기본 DLL (Delay)값은 DQ/DM 신호와 1/4 주기만큼의 위상차가 존재합니다. DQ는 양방향 Single-ended Signal로서, DQS와 마찬가지로 667Mbps에서는 333MHz로 동작되며, DQS Strobe 신호의 Rising/Falling Edge에서 Bit Sampling이 수행됩니다. 이러한 DQS와 DQ를 배선할 때의 주의 사항은, 같은 Byte Lane을 구성하는 신호는 같은 층에 배선 하는 것이 좋다는 점입니다. 왜냐하면 같은 길이로 Parallel 신호들을 관리하더라도, Microstrip (외층)과 Stripline (내층)의 전송속도 차 (Delay)가 발생할 수 있기 때문입니다. 또한 위의 Topology 에서 선로는 knee frequency에서의 wavelength/20 보다 물리적으로 길게 배선이 되므로, 반드시 회로도에 Termination을 포함시켜야 합니다. (만약 Memory Controller가 ODT를 가지고 있을 경우에는 PCB 상에 별도의 저항이 필요하지 않습니다.) 64
  • 65. 앞의 회로도는 Write 시의 SI분석을 수행하기 위한 회로도로서, 회로도상에 termination이 없기 때문에 아래 그림처럼 Overshoot/Undershoot이 과도하게 발생이 됩니다. Slew가 빠르고 SI적인 Timing Window가 크게 형성되어 신호품질은 양호할지 몰라도, 이런 경우는 과도한 Overshoot/Undershoot로 인해 EMI 특성이 나빠질 수 있습니다. 아래와 같이 Nexxim의 IBIS model 설정에서 DDR2 메모리의 ODT를 Enable 시킬 수 있는데, 여러 가지 ODT 값을 적용한 결과파형들을 비교해보도록 하겠습니다. 65
  • 66. SI Design Guide for DDR2/3 PCBODT_Disable ODT_150Ohmn ODT_75Ohm ODT_50Ohm 위의 결과에서 알 수 있듯이 ODT가 커질수록, 즉 termination 저항 값이 커질수록 전압파형이 작아지고 그에 따라 overshoot/undershoot도 줄어들고 있음을 알 수 있고, 그에 따라 EMI 특성도 좋아지게 됩니다. ODT는 기본적으로 Parallel Termination이므로 전송선로의 Zo에 근접한 값 (50Ohm ~ 60Ohm)을 선택 하는 것이 좋습니다만, Speed Grade가 높이질 경우(667Mbps 이상)에는 가급적 Valid Window를 크게 가져갈 수 있도록 한 단계 위의 값인 75Ohm을 권장합니다. DM(Data Mask)은 Memory Controller에서 Memory로 신호를 보내는 단 방향 신호로서, DQ와 마찬 가지로 ODT를 적용할 수 있습니다. 기본적으로 DM은 DQ와 같은 Topology로 구성되므로 별도의 설명 은 생략하였습니다. 66
  • 67. 이번에는 Read Mode Operation에 대해 SI분석을 수행한 후, Read mode를 위해 추가된 부품이 역으로 Write Mode Operation에 어떠한 영향을 끼치는가에 대해 확인해보도록 하겠습니다. 아래는 Memory IC가 구동하는 Read Mode에 대한 SI 분석 결과입니다. Memory의 Output Buffer의 Strength가 Full일 경우 Memory의 Output Buffer의 Strength가 Half일 경우 Termination이 없을 경우에는 역시 위의 그림과 같이 Reflection에 의한 Overshoot/Undershoot 가 크게 형성되는데, 이 경우 출력 버퍼에서의 Strength가 크면 클수록 output impedance가 작아 져서 Transmission Line의 Zo와 Impedance Mismatching이 심해지고는 Over-driven이 발생하기 때문입니다. 이 때문에 결국 EMI 품질이 나빠지므로, 위의 경우에는 Memory 쪽에 Series Termination Resistor를 추가하는 것이 좋습니다. 67
  • 68. SI Design Guide for DDR2/3 PCB본 예제에 사용된 DDR2 Memory의 IBIS모델은 Micron Technology사의 모델로서, Output Buffer 가 Full Strength일 때의 Output Impedance가 약 17.8 옴 정도이고, Half Strength에서의 Output Impedance가 약 27.6 옴 정도입니다. 여기서는 고속 동작의 Timing을 많이 확보하기 위해서 Full Strength일 경우의 분석을 진행해보았습니다. 우선 정확한 Series Termination을 위해서는 저항 위치가 반드시 DDR2 Memory에 가능한 가깝게 (TL1 을 짧게) 배치되어야 좋습니다. 아래 그림에서는 DFM Rule을 고려하여 약 15mm이내에서 Source Termination을 추가하였는데, 이 때 주의할 점은 Artwork시에 Skew관리를 위해서 TL2에서만 Meander (Serpentine) Trace를 사용하여야 하며, TL1은 가능하면 직선으로 최소 거리가 되도록 배선해야 합니 다. TL2 TL1 이 때 정확한 Termination 저항 값은 TL2의 Zo인 62옴에서 Output Impedance(@Full Strength) 17.8옴 을 뺀 44.2옴입니다만, 아래 그림과 같이 Valid Window가 작아질 수 있으므로 Overshoot/Undershoot 이 크게 증가하지 않는 범위에서 적당히 선택하는 것이 좋습니다. (본 예제의 경우에는 33옴을 채택하였 습니다.) 44.2Ohm을 채택할 경우 33Ohm을 채택할 경우 68
  • 69. 이렇게 Read Mode Operation을 위해 33옴의 저항을 물리적으로 PCB상에 추가하게 되면, ODT처럼 소프트웨어적으로 On/Off할 수는 없습니다. 문제는 이것이 Write mode 동작 시에도 영향을 주게 된다 는 점인데, 이로 인해 발생되는 Write mode에서의 IR Drop이 얼마나 증가되는지 ODT 75Ohm의 조건 에서 확인해본 결과는 아래와 같습니다. Write Operation시, Memory쪽에 ODT 75옴을 적용했던 결과 Series로 33옴이 추가된 후의 결과 상기와 같이 Vref = 0.9V를 기준으로, 아래 위로 IR Drop이 발생되어 Voltage Swing이 작아지지만, SSTL1.8V Logic의 VIH=1.15V, VIL=0.65V인 것을 감안하면 충분한 Noise Margin이 형성되는 것을 확인할 수 있습니다. 즉 이와 같이 Read mode의 특성을 개선하면서도 write mode에 영향을 최소화하는 적당한 series termination을 선정함으로써, 양 방향 특성 모두를 안정적으로 구현하는 설계가 중요해집니다. 69
  • 70. SI Design Guide for DDR2/3 PCB 3. DDR2 SI Simulation Guide 3-1. SI분석을 위한 PCB SPICE model 추출 3-2. DDR2의 IBIS model 활용 3-3. SI 해석용 Schematic 구성 3-4. Eye Diagram / Mask 적용 70
  • 71. 3-1. SI 분석을 위한 PCB SPICE model 추출 DDR2/3의 성능을 검증한다는 것은, 결국 PCB 패턴 중에서 DDR2/3 데이터 신호품질의 pass/fail을 판별한다는 것을 의미합니다. 쉽게 말해서 엔지니어 입장에선 고속의 DDR2/3 메모리가 해당 Speed grade에서 에러 없이 잘 동작할 것인가?의 여부가 궁금한 것이지요. 그것을 위해서는 제일 먼저 설계자가 PCB Layout을 SI 해석이 가능한 SPICE model로 만들어야 합니다. SPICE file은 모든 회로해석에서 가장 기본이 되는 회로 format으로서, PCB의 형상에 따른 전기적인 등가 회로의 역할을 하게 됩니다. 이렇게 SIwave를 이용하여 PCB 데이터를 등가회로로 구성하면서, Nexxim 과 같은 회로해석 엔진으로 PCB 선로상의 SI를 분석할 수 있게 됩니다. 우선, PCB Layout data를 SIwave로 import 합니다. SIwave에서는 Cadence, Mento, PADS, Zuken, Power PCB 등의 다양한 CAD format을 불러올 수 있으며, 해당 CAD 툴마다 import 방법이 조금씩 차이가 있으므로 상세한 import 방법은 매뉴얼을 참고하도록 합니다. 위에서 import한 Layout은 On-board DDR2 PCB의 사례이며, 이해를 돕기 위한 주요 부위별 설명은 아래와 같습니다. 71
  • 72. SI Design Guide for DDR2/3 PCBMemory Controller (BGA type) DQ / DM / DQS / Clock Address / CMD / Ctrl trace DDR2 Memory SI 분석에서 주요 해석대상은 Memory와 Controller간의 trace 입니다. 이 trace들의 SI 성능을 분석 하기 위해서는 각 trace의 입력단과 출력단에 port를 인가해야 합니다. port를 인가하기 전에, 우선 Controller와 Memory 칩별로 VDD/GND들을 하나의 pin으로 묶는 pin grouping이 필요합니다. 이 과정은 각 칩별로 복수개가 존재하는 VDD/GND pin의 전위를 일정하게 잡아주는 것으로서, 자동적인 port 생성을 위해 꼭 필요한 설정입니다. 72
  • 73. Controller와 Memory의 VDD/GND Pin grouping이 끝나면, 위와 같이 SIwave의 Port Generate 기능을 이용하여 자동으로 port들을 일괄 생성할 수 있습니다. 모든 DDR2/3 trace 마다 설계자가 하나 하나 직접 입력과 출력 port를 그릴 수도 있지만, 매뉴얼 에러를 줄이고 효율을 높이기 위해 자동생성 기능을 사용하는 것이 좋습니다. Port generate 메뉴에서 pin 설정을 하려면, 우선 해당 component 이름과 부품번호를 선택합니다. DDR2 memory같은 경우는 통상 동일한 component가 여러 개 존재하기 때문에 부품번호별로 잘 선택 해야 합니다. 부품을 선택 후에는, port를 설정하고자 하는 pin name과 reference가 되는 GND pin을 선택하고 Create 버튼을 눌러서 Port들을 생성시킵니다. 73
  • 74. SI Design Guide for DDR2/3 PCBTrace 분석을 위한 Port 생성이 완료되면, 해당 port를 기준으로 한 주파수 응답특성을 계산하기 위해 Frequency Sweep을 수행합니다. 이때 Frequency Sweep을 위한 설정 값들이 중요한데, DDR2의 해석을 위해서는 위의 그림에 입력된 값을 기준으로 할 것을 권장합니다. 위의 그림에서처럼 DC/저주파/고주파별로 나누어서 주파수 point를 계산하는 것이 time domain에 기반한 SPICE 모델로 변환할 때 수렴성을 강화시킬 수 있기 때문에, 위의 조건을 권장합니다. 74
  • 75. Frequency Sweep이 완료되면, Full wave SPICE file로 export 합니다. 이때 주로 맨 하단에 있는 Nexxim/HSPICE S element type을 추천하는데, port수가 100개 이하인 경우에는 이 type이 정확도 와 속도면에서 유리하기 때문입니다. 일반적으로는 맨 위의 HSPICE를 선택하는 것이 무난하긴 하지만, S element type 역시 HSPICE format에 기반하고 있기 때문에 많은 경우 어느것을 선택해도 크게 차이 나지는 않습니다. 추출된 SPICE file은 회로해석툴인 Nexxim에 곧바로 import 할 수 있으며, port수에 맞게 자동으로 회로 symbol을 생성할 수 있습니다. Nexxim으로 import한 후 해당 trace에 각종 신호를 인가하고 결과를 확인하는 해석을 수행하는데 활용되며, SPICE는 time domain에 기반한 과도응답해석 모델이기 때문에 주로 transient simulation에 응용되게 됩니다. 75
  • 76. SI Design Guide for DDR2/3 PCB 3-2. DDR2의 IBIS model 활용 IBIS file은 시뮬레이션을 위해 반도체소자의 입출력 buffer model을 정의한 text 기반의 file입니다. IBIS model을 이용하면, Controller 혹은 Memory에서 출력되는 디지털 신호의 실제 아날로그 파형을 만들어 낼 수 있으며, 반대로 입력되는 신호에 대해 실제적인 load 모델처럼 활용될 수 있습니다. IBIS를 driver 로 활용 시에는 buffer strength에 따른 다양한 출력파형을 각기 다른 model로 선택하여 입력할 수 있고, receiver로 활용 시에는 ODT와 같은 내부 저항 값들을 model별로 구분하여 사용자가 load model를 선택 할 수도 있습니다. IBIS file에 관한 보다 상세한 설명은 다른 문헌에도 많이 나와 있으니 자세한 설명은 생략하고, DDR2/3 분석을 위한 기본 회로 구성법에 대해 정리해보도록 하겠습니다. 우선 driving에 활용되는 IBIS 기본회로 는 아래와 같이 구성됩니다. 위 예제는 Memory Controller의 한 DQ pin에 대한 driving IBIS 회로도 입니다. IBIS model로는 driving 과 receiving에 모두 활용 가능한 I/O type으로 되어 있는데, 이러한 model의 정의는 IBIS file 내의 해당 model 설명부에 기술되어 있습니다. 참고로 대부분의 DDR2/3 관련 IBIS model은 I/O type으로 되어 있습니다. Driving용 I/O type IBIS model에 필요한 주변회로는 대략 아래와 같습니다. A. Signal Source (PRBS) B. I/O 방향을 정해주는 Enable 전압 C. VDD 전원 D. RLC 기생성분 76
  • 77. A. Signal Source (PRBS) I/O model을 driving으로 활용 시, 입력신호로는 주로 PRBS (Pseudo Random Bit Signal) 혹은 PRBS with Jitter이라는 신호원을 사용하게 되는데, 랜덤한 비트 조합의 디지털 신호를 입력하는 신호원 입니다. PRBS에서 나온 딱딱한 디지털 파형이 IBIS model을 거치면서 실제 소자에서 출력되는 아날 로그 파형 형태로 변환되고, 그러한 실제적인 파형이 PCB SPICE model에 입력되어 통과되게 됩니다. 이렇게 실제적인 파형과 실제적인 PCB trace를 거친 파형의 형상이 결국 SI 과정의 주요 분석 대상이 됩니다. 위의 그림에서 보여지듯이, 이상적인 구형파 형태의 PRBS 신호가 IBIS model을 통과하면 실제 파형 처럼 변하게 됩니다. IBIS file 내에는 입력되는 디지털 bit에 따른 rising/falling 파형이 정의되어 있기 때문에, 입력되는 이상적인 신호를 실제 해당 controller/memory의 아날로그 신호파형처럼 바꾸어주게 되는 것입니다. 또한 IBIS file 내에는 VDD/GND의 clamp가 정의되어 있어서, 해당 소자가 실제로 출력 할 수 있는 전압만큼의 범위로 제한되어 출력됨으로써 정말 "리얼"한 파형을 모델링 할 수 있게 됩니다. PRBS를 설정 시에는, 여러 가지 디지털 입력 값들이 들어가게 되는데, DDR2의 경우 기준으로 입력할만 한 설정 값은 아래와 같습니다. 한가지 주의할 점은 아무리 IBIS model을 거치면서 실제적인 파형이 생성 되더라도, PRBS 설정 값이 적절하지 않으면 IBIS 출력 파형도 영향을 받는다는 점입니다. 통상 PRBS의 rising/falling time은 IBIS 에 정의된 것보다 빠르게 (즉 기울기가 급하게) 설정되어야 IBIS 출력파형에 영향을 주지 않으므로, DDR2/3 급에서는 대략 50ps 정도 입력하면 무난하다고 할 수 있습 니다. 77
  • 78. SI Design Guide for DDR2/3 PCB또 하나 주의할 점은, PRBS의 종류에 따라 BW와 Bitwidth의 정의를 정확히 입력해야 한다는 점입니다. PRBS는 크게 PRBS와 PRBS with Jitter의 2가지로 나뉘는데, 일반적인 PRBS에서는 Rising/Falling time을 제외한 평평한 부분, 즉 통상의 PW (Pulse Width)를 입력하게 됩니다. PW Bitwidth V2 V1 TR TF TR TF 그러나 위의 입력 예제에 사용된 PRBS with Jitter의 경우는, 흔들리는 Jitter 값에 대해 명확한 기준을 정할 수 있도록 PW 대신 Bitwidth를 입력하도록 되어 있습니다. 이 Bitwidth는 위 그림에서 처럼, Rising/Falling time을 반씩 더한 값으로서, 통상의 펄스폭이 아니라 실제 디지털 bit가 반복되는 "주기"를 의미합니다. 참고로 위의 설정사례 그림에서는 800Mbps의 디지털 bit를 생성해내는 PRBS 신호의 Bitwidth 값으로서, risng/falling time이 포함된 1.25ns가 입력되어 있다는 점을 잘 관찰하시기 바랍니다. 설계자에게는 다소 헷갈릴 수 있는 부분이지만, 나름 명확한 이유가 있는 구분법이므로 조심 해서 잘 입력할 것을 권장합니다. (만약 잘못 입력하게 되더라도 Eye Diagram 등에서 이상하게 출력 되므로 쉽게 눈치챌 수는 있습니다) 78
  • 79. B. I/O 방향을 정해주는 Enable 전압 I/O type은 Input/Output 모두 가능하다는 의미로서, 신호를 공급하는 Driver와 수신하는 Receiver 용 으로 모두 사용할 수 있습니다. 이러한 방향을 명확히 정의해주기 위해서, Enable에서 logic을 1 또는 0 으로 줌으로써 (즉 VDD전압 혹은 0V를 입력) 이것이 현재 Driving 용 Output Buffer인지 Receiving용 Input Buffer인지를 정해주게 됩니다. IBIS file 내의 해당 model 설명부분에는 Enable 설정에 대한 항목 이 있는데, 아래의 2가지 중 한가지로 정의되어 있습니다. Enable Active-Low 또는 Enable Active-High Active-Low로 되어 있는 경우는 0을 입력하면 Output Buffer로 동작하고, 1을 입력하면 input Buffer로 동작하게 됩니다. 반대로 Active-High로 지정된 model의 경우는 반대로 동작하게 됩니다. 만약 Enable 에 대한 정의가 되어 있지 않은 model이라면 default로 Active-High로 동작하게 됩니다. 앞에서 예로 들었던 I/O type 회로도는 IBIS file에서 Active-Low로 정의되어 있었기 때문에, Driving 용 으로 사용하기 위해 Enable 단자에 0V 를 걸어둔 상태입니다. 의외로 헷갈리는 부분이기 때문에 명확히 이해하고 넘어가기를 권장하며, 보통 I/O type을 쓸 때 이상하게 출력파형이 안 나오는 경우는 대부분 이것을 반대로 설정한 경우가 많습니다. C. VDD 전원 IBIS model에는 자체적으로 Power를 on 시키는 기능이 있어서, 만약 model parameter에서 Power = on으로 설정하면 외부에서 전원을 걸지 않아도 파형을 생성해낼 수 있습니다. IBIS model 외 부에 VDD를 입력하는 경우는, SSN을 고려하기 위해서 입니다. (외부에서 전원을 공급하려면 내부의 Power 는 off로 설정해야만 합니다.) 79
  • 80. SI Design Guide for DDR2/3 PCBVRM 전원에서 나온 깨끗한 전력이 실제 PCB의 VDD trace/plane을 따라 IBIS model에 해당하는 Controller/Memory의 pin에 도달할 때, PCB의 Layout과 전원설정에 따라 VDD에는 Noise가 더해질 수 있고, 이것이 바로 SSN (Simultaneous Switching Noise)이라 불리우는 요소입니다. 실제로 발생하는 파형왜곡을 충분히 고려하고 싶다면, 이러한 SSN을 고려하는 것이 중요한 요소가 됩니다. 이러한 SSN 포함 해석을 위해서는 PCB의 SPICE model을 추출할 때 VRM pin과 실제 VDD 입력 pin에도 port를 설정하고 추출해야 하며, Nexxim의 schematic 상에서 VRM에는 깨끗한 전원을, 그것이 trace를 거쳐 출력되는 VDD pin에는 IBIS의 VDD를 연결시켜야 합니다. (다음절에서 소개되는 최종적인 DDR2/3 SI 분석 회로도를 참고하세요.) D. RLC Parasitic IBIS model 입출력부에는 통상 직렬 L-직렬 R-병렬 C의 3개 소자가 붙게 되는데, 이것은 반도체 packaging에 존재하는 Bonding Wire의 기생 RLC 성분을 의미합니다. 즉 gold bonding wire의 길이 방향으로 존재하는 R과 L, 그리고 GND를 바라보면서 생기는 C 값을 모델링 한 값입니다. 이 값은 통상 IBIS file 내의 component 설명부에 기술되어 있는데, 기본적으로 IBIS model은 반도체 회로소자의 die (bare chip, packaging 하지 않은 상태의 반도체 회로기판) 기준으로 뽑아내기 때문 입니다. 같은 반도체 die라 하더라도, 목적과 용도에 따라 MLF, QFP, BGA 등등 다양한 packaging 기술이 적용될 수 있기 때문에 패키지별로, 즉 component라는 명칭으로 패키지별 bonding wire의 RLC 기생소자를 따로 정의하고 있습니다. 이러한 RLC package model 은 측정으로 알아내기 힘들기 때문에, EM 전자기 해석 tool들을 이용 하여 추출하게 되며, 이러한 RLC 추출에 대해서는 Ansoft의 Q3D Extractor나 TPA와 같은 전용 tool들 이 업계 표준으로 되어 있습니다. 일반적으로 이러한 RLC 기생 소자 값은 IBIS file내의 [Component] 별로 정리가 되어 있으며 각 pin 별로, 즉 bonding wire가 존재하는 입출력 pin 마다 각기 다른 길이와 조건을 가진 RLC 값을 가지게 됩니다. 그러나 언제나 이렇게 RLC 값을 추출하기 쉬운 것은 아니기 때문에, 통상 IBIS file 내에 package model로 정의된 평균값을 적용하기도 합니다. 80
  • 81. 위의 텍스트 열은 IBIS file 내의 Component 정의 부분의 예제로서, Component 이름 밑으로 [Package] 라고 되어 있는 부분의 RLC 값이 해당 package의 RLC 대표 값입니다. 그 아래에 정의된 [Pin] 부분이 바로 각 pin별 RLC 기생소자 값인데, Pin별 값이 존재하는 경우는 Pin별 값을 각각 적용 하고, 만약 없다면 그 위의 Package 대표 값을 입력해야 합니다. 엔지니어 입장에서 중요한 점은 이러한 RLC 기생 소자들의 영향인데, 통상 1Gbps 이하의 속도에서 는 신호품질에 막대한 영향을 주지는 않습니다. 문제는 Gpbs 급 이상이 되면 이러한 RLC 값들이 신호 특성에 영향을 미치는 속도가 급격히 증가하기 시작한다는 점이며, 고주파에서의 임피던스를 크게 틀면 서 신호가 열화 되는 속도가 빨라집니다. 그렇기 때문에 보다 정확한 해석을 위해서는, 반드시 IBIS file 내에 정의된 pin별 혹은 전체 평균값이 해당하는 RLC 값을 읽은 후에 schematic에서 각 pin의 IBIS model에 달아주는 것을 권장합니다. DDR2 만 하더라도, 800Mbps의 속도에서도 기생 RLC에 의한 파형 변화가 눈에 보이기 시작하기 때문에, 정확한 SI 분석을 위해서라면 IBIS file에 정의되어 있는 대로 정확히 입력해줄 필요가 있다는 점을 꼭 기억해 두시기 바랍니다. 81
  • 82. SI Design Guide for DDR2/3 PCB지금까지의 설명은 신호를 보내는 Driver 입장에서의 IBIS 회로 설명이었는데, 아래의 그림은 신호를 수신하여 SI 결과를 판독하는 Receiver 단에서의 IBIS 회로입니다. 기본적으로 IBIS 설정방법이나 RLC 기생소자를 구성하는 방법론은 Driver의 경우와 같습니다. Receiver단에서는 통상 SSN을 포함하지 않는 경우가 많으나, On-board DDR2/3와 같이 Driver/ Receiver가 같은 전원체계를 공유할 경우는 Receiver에도 SSN power를 걸어주는 것이 유리한 경우가 있습니다. 이 때는 Driver 단의 경우와 마찬가지로 설정하면 되며, 수신단이기 때문에 Logic_In 단자는 open 상태로 두면 됩니다. Receiver단에서 IBIS model로 I/O type을 사용할 때는 Enable 단자 설정에 주의해야 하는데, Driver의 경우와 반대로 해주어야 합니다. 즉 Active Low로 정의된 IBIS model이라면 logic 1 (VDD)로, Active High로 정의된 경우는 0 (GND)으로 해주어야 Receiver로서 정상동작 하게 됩니다. 만약 Input type의 IBIS model을 활용한 Receiver라면, 아래 그림과 같이 더욱 단순하게 구성할 수 있게 됩니다. 82
  • 83. 3-3. SI 해석용 Schematic 구성 결과적으로 DDR2/3의 Bytelane SI 분석을 위한 전체적인 schematic은 아래와 같습니다. 가운데는 SIwave의 EM 해석을 통해 추출된 PCB의 SPICE model이며, 양쪽에 각 pin별 IBIS 회로도가 존재합니다. 하나의 Bytelane을 해석하기 위해서는 양쪽에 각기 2개의 DQS pin과 8개의 DQ pin에 대한 IBIS 회로도가 있게 되며, 기타 Enable 설정이나 전체적인 VDD 단자를 위한 전원회로가 붙게 됩니다. 여기서 SSN을 고려하느냐 안하느냐에 따라 약간 회로도가 바뀔 수 있습니다. 앞 절에서 설명한 것처럼, SSN을 고려하기 위해서는 PCB를 해석할 때 미리 VRM에서 Memory/Controller에 들어가는 전원단자 에 앞뒤에 port를 인가하여 해당 port에 대한 해석결과가 SPICE model 안에 포함되어 있어야 합니다. 83
  • 84. SI Design Guide for DDR2/3 PCB위 그림은 Driver 단에서 SSN을 고려하지 않은 DQ SI test를 위한 IBIS 회로도 입니다. 이 경우 위쪽에 달린 IBIS의 power 단자는 그냥 open으로 하고, IBIS 설정에서 Power를 On 시켜주면 됩니다. SSN을 고려하려면, 기본적으로 SPICE와 IBIS 회로도는 아래와 같은 관계를 가져야 합니다 84
  • 85. 앞의 회로에서 나타낸 것처럼, LDO나 PMIC/Regulator에서 깨끗한 전원 "VRM"이 공급되는 단자를 거쳐 전압이 인가되고, PDN (Power Delivery Network)이 모델링된 SPICE model을 지나 Memory/ Controller로 전달되는 VDD 출력 pin을 통해 IBIS 회로도의 Power가 인가되어야 합니다. 이때 내부 IBIS 설정에서 Power 는 Off로 설정해야 합니다. 위와 같은 회로도의 경우는, 전원선을 거치면서 발생한 각종 전원노이즈, 즉 SSN이 포함된 상태로 IBIS 회로도에 전원이 인가되고, 결과적으로 SSN이 반영된 IBIS 출력 파형이 만들어지게 됩니다. 즉 Dirver 에서 IBIS를 통해 실제적인 파형이 만들어질 때, 전원의 노이즈가 반영된 보다 실제적인 출력 파형을 DDR 선로에 인가할 수 있게 되는 것입니다. 이러한 SSN 입력은 신호품질에 중요한 영향을 미칠 수 있으나, 시뮬레이션 적으로는 굉장히 어려운 기술이라 할 수 있습니다. 현재까지는 Ansoft Nexxim만이 이러한 SSN을 고려한 SI 해석이 가능한 유일한 tool이지만, SSN이 너무 큰 상태에서 입력되면 transient solver가 수렴되지 않을 수도 있습니다. 만약 SSN 입력 후에 transient의 수렴성이 나빠지면 우선 SSN 결과만 해석하여 그 정도를 가늠해보고, PI 단계에서 전원 노이즈를 먼저 잡아야 할 경우도 있습니다. 이렇듯 차근차근 원리와 이유를 이해해가면서 적합한 회로구성을 하고, 전원 노이즈의 크기를 잘 관찰 하며 진행함으로써 보다 실제적이고도 정확한 시뮬레이션을 수행할 수 있게 됩니다. SSN 추가여부 문제만 결정되면, 나머지 회로도는 앞 절에서 설명한 것처럼 pin별로 IBIS 회로도만 반복적으로 잘 구성해주면 됩니다. 이 작업은 어렵지는 않으나 다소 번거로울 수 있는 작업이며, 구성 과정 자체를 잘 이해할 필요가 있습니다. 마지막 4장에서는 DDR2/3 분석 자동화 프로그램에 대해 소개하고 있는데, 이러한 자동화 프로그램 이 매우 편리하고 효율적이긴 해도, 3장에서 설명하고 있는 SI 해석의 기본 개념이 있어야지만 정확한 DDR2/3 SI 분석과정을 수행할 수 있다는 점을 기억해두시기 바랍니다. 85
  • 86. SI Design Guide for DDR2/3 PCB 3-4. Eye Diagram / Mask 적용 SI 회로도를 완성하고 Transient 해석을 수행한 후에는, Eye Diagram을 plot하여 성능을 검증하게 됩니다. Eye Diagram을 보려면, Create Eye Diagram 메뉴를 이용하여 생성 해야 하며 Unit Interval을 bitrate의 주기에 맞게 정확히 입력하는 것이 중요합니다. 이 때 offset 설정도 때로 중요한데, 초반부에 파형이 stable 해지는데 몇 주기의 시간이 소요될 수도 있으므로, 약간의 offset 시간을 입력하여 불안정한 앞부분 파형은 잘라내는 것이 유리한 경우도 많습 니다. Nexxim을 통해 생성된 Eye Diagram Plot은 아래와 같습니다. 86
  • 87. 이때 Eye Diagram을 더블 클릭해보면, Eye와 관련된 몇 가지 설정이 나옵니다. DDR2/3 해석에서는 Default 상태로 분석해도 무방하며, 통상 계측기처럼 한 주기의 완전한 Eye를 확인할 수 있도록 2주기의 파형을 화면에 보여주는 Front Panel Eye를 사용하고 있음을 알 수 있습니다. Rectangular Plot은 앞의 그림처럼 Eye Diagram 아래에 전체 주기파형을 모두 보여주는 기능이며, 전체적인 bit의 흐름을 관찰 하는데 유용한 기능입니다. 만약 오른쪽처럼 한 주기만 관찰하는 Eye Diagram이라면, 파형이 중앙에 있지 않기 때문에 Mask를 적용하기 힘든 모양이 됩니다. 이 경우 delay time을 적용하여 파형을 억지로 가운데로 움직일 수는 있으나, 왼쪽과 같이 2주기를 관찰하는 Front Panel Eye를 활용하면, 그대로 한 주기의 Eye 파형을 확인할 수 있어서 별도의 delay time 조절 없이도 성능검증이 가능해집니다. 이러한 Eye Diagram 결과 를 검증하기 위해서는 Mask를 그려야 하는데, 위의 메뉴 두 번째 tab에서 edit를 선택하여 Mask 형상 을 그립니다. 87
  • 88. SI Design Guide for DDR2/3 PCBMask는 도형의 각 꼭지점 좌표를 순서대로 입력함으로써 생성되며, 전체적으로 폐곡면이 되도록 만들 어주는 것이 중요합니다. 아래는 DDR2/3 의 Setup/Hold time 값을 이용하여 만들어낸 간단한 Mask의 예이며, 폐곡면이 이루어지면 자동적으로 Mask에 색상이 입혀지게 됩니다. 이렇게 그려진 Mask와 신호파형이 겹치지 않으면, 일단 Eye Diagram상에서 spec을 만족한다는 뜻이 됩니다. 실제로는 단순히 겹치지 않는 것 보다는 어느 정도 Timing Margin을 가지느냐가 중요해지는데, Plot 상에서 Marker 기능을 이용하여 대략의 계산이 가능합니다. 보다 정확한 Margin 계산을 위해서는, 4장에서 소개하는 APDS Wizard의 자동화된 Eye 분석기능을 활용함으로써 Setup/Hold margin들을 쉽게 계산해낼 수 있습니다. 88
  • 89. 4. Automatic Verification 4-1. APDS Wizard란? 4-2. DDR2/3를 위한 Wizard Setting 4-3. 실행 및 결과보기 89
  • 90. SI Design Guide for DDR2/3 PCB 4-1. APDS Wizard란? APDS는 SIwave와 Designer/Nexxim이 결합된 SI/PI/EMI 시뮬레이션 S/W 패키지입니다. APDS Wizard는 SI 분석을 보다 간편하게 할 수 있도록, 각종 설정과정을 자동화한 설계자동화 S/W로서, DDR2/3/4 분석에 최적화되어 있습니다. APDS Wizard가 하는 역할은 아래와 같습니다. ● 사용자의 설정에 따라 자동으로 Full Schematic 생성 ● DDR2/3/4의 JEDEC spec 선택 가능 ● 자동적인 해석 및 DQ별 Eye Diagram plot ● DDR2/3 전용 Eye Mask 생성 및 Setup/Hold margin 보고서 작성 ● SSN을 포함한 SI 분석기능 선택 가능 APDS Wizard를 사용하면 사용자의 기본적인 설정만으로도 DDR2/3 DQ 선로의 SI 분석을 자동화할 수 있고, 최종적으로 설계된 DDR2/3 PCB 선로들의 성능 pass/fail을 바로 검출할 수 있는 편리한 툴입니다. 사용자는 SIwave 상에서 분석을 원하는 DQ 선로와 DQS 선로 및 (SSN 포함 해석시) 전원관련 부에 port를 인가하고, SPICE 모델을 추출하면 그 이후의 모든 회로구성/해석/결과분석 과정은 Wizard를 이용하여 100% 자동화할 수 있습니다. 90
  • 91. APDS Wizard의 기본적인 해석 흐름은 아래와 같습니다. 해석과정을 둘러보기 전에 차근차근 DDR2/3 분석과정의 핵심을 잘 이해해보시기 바랍니다. 1. PCB Layout에서 해석하고자 하는 Trace를 선택한다. DDR2/3에서 핵심 분석대상은 결국 데이터 선로의 신호 품질 입니다. 이를 위해 SIwave에 해당 PCB Layout을 불러온 후, 분석에 필요한 DQ 선로와 DQS 선로들을 선택하고 각 선로의 입출력 단에 Port를 설정합니다. 2. Frequency Sweep&SPICE 생성 선택된 trace의 주파수 응답 특성을 확인하기 위해 Frequency Sweep을 수행합니다. 주파수 응답해석이 끝나면, 이 결과를 기반으로 Full-wave SPICE model을 생성합니다. 이 SPICE file은 결국 PCB의 trace 형상에 따른 특성을 모델링한 등가회로가 되며, 이것을 이용하여 SI 분석을 수행하게 됩니다. 3. APDS Wizard로 가져오기 APDS Wizard를 구동시킨 후, 제작된 SPICE model file을 import 해옵니다. SPICE에 미리 설정되어 있던 DQ/DQS port들을 Controller와 Memory 별로 배치해준 후 각각의 IBIS 설정을 입력 합니다. 4. 자동 분석 실행 DDR2/3 분석에 적용할 spec을 선택하고, data rate 와 jitter 등의 핵심 사항을 입력 후에 분석을 실행하면, 그 이후의 모든 과정이 자동으로 진행됩니다. 자동으로 해석용 Schematic이 생성 되고 해석되면서, 각 Eye Diagram 별로 DDR2/3 mask와 Setup/ Hold margin을 그래픽적으로 표시해주며, 최종적으로 전체 DQ들 의 Pass/Fail을 보고하면서 종료됩니다. 91
  • 92. SI Design Guide for DDR2/3 PCB 4-2. DDR2/3를 위한 Wizard Setting Step 1. SPICE 불러오기 3장에서 설명했던 것처럼, DDR2/3의 Bytelane (DQ+DQS)에 대해 입출력 port를 지정한 후 S/Y/Z 해석 결과에 기반하여 SPICE file을 추출합니다. Wizard에서는 제일 먼저 이렇게 추출한 SPICE file을 불러와 야 합니다. SPICE file을 불러오면 위의 그림처럼 화면 오른쪽 위에 SPICE file에 설정되어 있던 port들이 listing됩 니다. Step 2. Port 할당하기 listing된 port들을 driver/receiver의 DQ/DQS에 맞게 할당해주어야 하는데, Port를 해당 위치로 이동 하기 위해선 우선 옮기고자 하는 포트 왼쪽의 체크박스에 체크를 넣습니다. 92