Delay Tune(길이 맞추기)

원 포인트 레슨 2011. 12. 13. 21:40

고속 PCB 디자인에서 trace 길이를 같게 맞추는 작업을 할 때가 종종 있다. 이런 작업은 미앤더라이닝(meander-lining), 트럼보닝(tromboning)등 여러 가지 용어로 불리는데, 여기서는 딜레이 튠(delay tune)이라고 하자. 딜레이 튠은 언제 하며 어느 정도까지 정교하게 해야 하는 것일까?

 길이를 맞추는 이유는 trace에 실려 오는 신호를 에러 없이 정확하게 잡기 위함이다. 그 말은 딜레이 튠을 하지 않으면 신호를 잡을 때 에러가 발생할 수 있다는 것을 의미한다. 따라서 어떤 경우에 신호를 잡는 데 문제가 되는지를 알면 어떻게 길이를 맞추어야 되는지도 알 수 있다. 아래 그림은 일반적인 신호와 클럭의 타이밍을 나타낸다. 앞 파형은 클럭의 rising edge에서만 데이터를 잡는 경우이고 뒤 파형은 rising falling edge 모두에서 데이터를 잡는 경우이다

 클럭의 rsinge edge에서 데이터를 잡는 경우를 대표로 살펴보면, 클럭의 rising edge는 데이터의 중심에 오게 된다. 그렇게 해야 타이밍 마진을 제일 크게 가져갈 수 있다. 성공적으로 신호를 잡으려면 클럭 edge를 중심으로 전후에 미리 안정적인 신호가 있어야 한다

 클럭 edge 전에 미리 신호가 안정된 상태로 준비되어 있어야 하는데 그것을 setup time이라 부른다(위 파형에서 a). 또한 클럭 edge 후에도 어느 정도 안정된 신호를 유지하고 있어야 하는데 그것을 hold time이라 부른다(위 파형의 b). 신호가 클럭 edge를 중심으로 a + b 시간 이상만 지켜주면 신호를 잡는데 아무런 문제가 없다. 이 때, 신호는 타이밍 관점에서 +c ~ -d 만큼의 타이밍 마진을 갖게 된다. , 이때 클럭과 신호는 어느 정도 지터를 가지므로 실제 trace 길이를 맞출 때는+(c – jitter) ~ -(d-jitter) 범위 내에서 맞추면 된다. 일반적으로 지터가 수십 ps 이하라고 한다면, 수백MHz 이하에서는 지터는 무시할 수 있을 것이다. 그러나 GHz가 넘으면 지터를 무시할 수 없다.

 

몇 가지 예들 통해 어느 정도까지 길이를 맞추어야 하는지 살펴 보자.

1> 클럭 스피드가 33 MHz이고 setuphold time이 각각 5 ns인 경우:
클럭 스피드가 33MHz이므로 주기는 대략 30 ns (= 1/33MHz)이다. 따라서 peak-to-peak 타이밍 마진은 20 ns (= 30 – 5 – 5)이다. 1 ns를 대략 145 mm라고 하면, 대략 290 cm의 길이 마진이 된다. 대략 +/- 1.5 m이다. 일반적으로 PCB의 크기를 고려하면 길이를 맞추기 작업을 하지 않아도 타이밍 상에 아무런 문제가 발생하지 않는다.

 

2> 클럭 스피드가 50 0MHz이고 setuphold time이 각각 ns, 0.5 ns 인 경우:
럭 스피드가 500MHz이므로 주기는 2 ns (= 1/500 MHz)이다. 따라서 peak-to-peak 타이밍 마진은 0.5 ns (= 2 – 1 – 0.5)이다. 1 ns를 대략 14 5mm라고 하면, 7 5mm의 길이 마진이 된다. 클럭 edge가 데이터의 정 중앙에 있으면 +25mm ~ -50mm의 길이 마진을 갖는다. 클럭 에지의 위치를 뒤쪽으로 적절히 이동시키면 +/- 37.5mm의 마진이 있다.
 이 
 경우 3가지 정도 생각해 볼 것이 있다. 먼저 클럭의 에지를 이동 시켜 타이밍 마진을 확보 시킬 수 있냐는 문제다. 클럭 에지 이동의 경우, IC에서 신호 출력의 delay 지원여부에 따라서 될 수도 있고 되지 않을 수도 있는 문제가 있다. 정확히 모른다면 안전을 위해 지원되지 않는 쪽을 고려해야 할 것이다. 두 번째로 생각해 볼 것은 마진이 타이트하므로 지터를 고려항목에 포함해야 된다는 것이다. 만약 지터 성분이 100ps라고 한다면 14.5mm를 위 마진에서 빼야 한다. 그러면 마진은 +10.5mm ~ -35.5mm가 된다. 이 정도 범위 내에서 길이가 맞추어 져야 한다. 세 번째 생각해 볼 것은 데이터 싱크 문제이다. 드라이버와 리시버 거리가 멀면 글로벌 클럭으로 데이터 신호의 싱크를 맞출 수 없다. 타이밍 마진이 위에 보듯이 매우 적어 칩과 칩간에 신호 전달 시간이 절대적으로 부족한 상황에 직면한다. 따라서 글로벌 클럭을 사용하지 않고 드라이버에서 클럭과 신호를 같이 주는 source-sync방식을 사용해야만 한다.

 
GHz 이상의 signaling에서는 클럭과 데이터를 따로 하지 않고, 하나의 trace에 실어서 보내는 경우가 많이 있다. 이런 경우에는 래인 간에 따로 길이를 맞추는 작업을 할 필요가 없다.

:

SI, PI, EMI 상관 관계

원 포인트 레슨 2011. 12. 8. 16:49
 SI는 trace를 타고 전달되는 신호(1차원 wave)와 관련된 반사(reflection), 터미네이션, xtalk 등과 같은 효과을 다룬다. PI는 power-ground plane 상에서  흐르는 전류(2차원 wave)와 관련한 plane resonance, inductance에 기인한 SSN등의 효과를 다룬다. EMI는 전자파(3차원 wave)가 거리를 두고 EM 간섭을 일으키는 효과를 다룬다. 이 셋은 서로 밀접한 상관 관계를 가지고 있다.

SI     >   EMI  관리되지 못한 신호는 trace 내에서 공진을 만들 수 있고 이것은 EMI 문제를 유발한다. 
PI     >   EMI  power distribuiton에서 공명이 발생하면 radiation이 증가 한다. 
PI     >   SI  power distribution에서 노이즈가 발생하면 신호의 jitter와 BER이 증가한다. 
EMI  >   SI  전도되거나 방사되는 노이즈는 trace의 신호에 영향을 주어 BER을 감소 시킨다. 

 SI와 PI를 좋게 디자인하면 자연스럽게 EMI 문제는 발생하지 않는다. 다시 말하면, EMI 문제를 해결하는 근원적인 방법은 SI와 PI 문제를 잡는 것이다. 쉴드 케이스를 사용하는 것은 그 다음이다.
           
            
               
               
 
:

패키지와 커넥터로 보는 Return Path

원 포인트 레슨 2011. 12. 2. 14:58
 아래 그림은 10년 전쯤에 컴퓨터 메인 메모리로 주로 사용되던 DDR1 SDRAM 패키지이다.

 66핀 중에서 VDD핀 3개, GND핀 3개, VDDQ핀 5개 VSSQ핀 5개가 사용되었다. VDD/VSS핀과 비교해서 VDDQ/VSSQ핀이 5/3배 더 많다. 이것으로 우리는 core보다 I/O 에서 더 큰 다이나믹 전류를 소모한다는 것을 알 수 있다. 아마도 5/3정도 더 소모한다고 생각해도 될 것이다. 눈여결 볼 것은 DQ 신호들 주변에 VDDQ/VSSQ가 중점적으로 배치되고 ADD/CMD 신호에는 VDDQ/VSSQ가 없다는 점이다. 이것으로 우리는 DQ신호는 VDDQ/VSSQ를 return path로 사용하는 것이 VDD/VSS를 return path로 사용하는 것보다 좋다는 것을 알 수 있다. 그렇게 한다면 ADD/CMD 신호는 VDD/VSS를 return path로 삼는 것이 좋을 것이다.  또 하나 알 수 있는 것은 DQ신호가 ADD/CMD 신호에 비해서 훨씬 고속이거나 다이나믹 전류를 많이 소모한다는 것을 알 수 있다(VDDQ/VSSQ가 VDD/VDDQ보다 더 많으니까).

 아래 그림은 요즘 컴퓨터 메인 메모리로 주로 사용되는 DDR3 SDRAM 패키지이다.

 96볼 중에서 VDD 9개, GND 12개, VDDQ 9개, VSSQ 9개가 사용되었다. 핀 수량으로 비교해 보면 VDD/GND와 VDDQ/VSSQ의 비율이 비슷하다. 즉 core와 IO의 전류 소모가 비슷하다는 것을 의미한다. 위의 DDR1과 비교하면 DDR3에서는 core 전류가 상대적으로 I/O 전류보다 더 많이 증가했다는 뜻이다. 이것은 아마도 셀 수가 예전에 비해서 대폭 증가하면서 core 전류가 증가했기 때문일 것이다.

 요즘 사용되는 DDR3가 예전에 사용되었던 DDR1보다 전류 소모량이 줄어든 점을 감안한다면 power/ground 핀 수가 줄어들어야 할 것인데, 왜 오히려 증가했을까? 그것은 신호의 고속화(rising/fall time 감소)로 인해 증가하는 ground bounce를 때문이다. 핀 수를 늘리면 return path의 inductance를 줄이는 효로 ground bounce를 줄일 수 있다. 줄어든 ground bounce는 낮아진 사용전압 조건에서 줄어든 마진을 다시 높여준다.

 DDR3에서 눈여겨 볼 부분 중에 하나는 power/gournd 핀들이 가장자리로 몰려있는 점이다. 일반적으로 DDR1에서 VDDQ/VSSQ처럼 신호선 사이에 핀들이 적당히 골고루 배치되는 것이 SI관점에서 유리할텐데 왜 바깥으로 몰아서 배치했을까? 아마도 그것은 DDR3가 대부분 모듈형태로 제작이 되며 모듈로 제작될 때 양면 배치로 인하여 디커플링 커패시터의 위치가 패키지의 바로 옆자리로 오기 때문에 양 옆 가장자리로 배치를 한 것으로 보인다(디커플링 커패시터 효과 극대화). 위 패키지만 본다면 DDR3에서는 DQ는 VDDQ/VSSQ를 return path로 하고 ADD/CMD는 VDD/VSS를 return path로 하는 것이 바람직해 보인다. 그런데 실제 모듈로 구현될 때는 VDD와 VDDQ가 보드레벨에서 merge되고 VSS와 VSSQ가 merge되기 때문에 앞에 말한 것처럼 return reference를 삼지 않고 DQ는 VSS(Q)를 return path로, ADD/CMD는 VDD(Q)를 return path로 삼는다. 아래 그림은 실제 DDR3 모듈의 한 예이다.

 
 6층으로 구성이 된다. 위에부터 1층으로 시작해서 제일 아래가 6층이다. DQ 신호는 위나 아래가 VSS(Q) plane으로 구성되어 return path를 형성시켜 준다. ADD/CMD의 경우 위나 아래가 VDD(Q) plane으로 구성되어 return path를 형성시켜준다. 
 모듈의 하단 커넥터 부위를 보자. return pin(VDD(Q) 혹은 VSS(Q)) 1개당 2개의 신호 핀이 할당 되었다. 이 비율은 패키지에서의 할당 비율과 비슷하다. 만약 return pin당 신호 수량을 늘린다면, return 핀으로 흐르는 return 전류는 좀 더 큰 inductance를 경험하게 될 것이고 노이즈는 좀 더 커질 것이다. DDR 모듈의 경우 규격화되어 있으므로 규격에 맞추어 디자인하면 되지만, custom 보드를 디자인할 경우엔 보드와 보드의 연결에서 connector 핀 할당에 신중을 해야 한다.

 모듈에서의 reference 규칙은 메인보드에서도 그대로 적용이 된다. 그래야 board-to-board간의 신호 전송이 문제없이 이루어질 수 있기 때문이다.
 

: