IBIS Package 모델은 언제까지 유효한가?

원 포인트 레슨 2014. 8. 18. 20:00

드라이버 혹은 리시버를 모델링한 ibis 파일은 순수 칩 특성 부분과 패키지 특성 부분으로 구성된다.


이 중 패키지 구성에 대한 묘사는 단순한 R, L, C lumped 모델로 묘사가 된다. 그런데, 1 개의 섹션으로 구성된 RLC 모델이 드라이버나 리시버의 패키지를 묘사하기에 충분한 대역폭을 가지고 있을까?

대역폭(BW)은 인터커넥션을 지나는 신호의 전이시간(Rise Time)과 관련이 되므로, 전이 시간이 정해져야(specified)
IBIS의 패키지 모델이 신호의 대역폭을 충분히 커버할 수 있는 대역폭을 가졌는지 아닌지 알 수 있을 것이다. 또한 인터커넥션의 길이도 알고 있어야 한다. 다이(die)에서 핀 혹은 볼까지의 패키지의 리드 길이는 아마도 수 mm 일 것이다.

예들 들어 신호의 전이 시간이 300 ps라고 하자.
리드 길이가 1 mm일 경우, 전파 시간(TD)은 대략 7 ps(= 1000 / 150)이다. 따라서 1개의 셕션으로 모델링해도 되는 대역폭은 14 GHz(= 1 * 0.1 * 1 / 0.007)이다.(여기 참조) 전이시간 300 ps를 주파수로 환산하면1.17 GHz(= 0.35 / 0.3)이므로, 1 개의 션셕 패키지를 모델링해도 충분한 대역폭을 갖는다.
만약, 리드 길이가 5 mm일 경우, 전파 시간은 대략 33 ps(= 1000 * 5 / 150)이다. 이 경우 1 개의 셕션으로 모델링해도 되는 대역폭은 3 GHz(= 1 * 0.1 * 1 / 0.033)이다. 여전히 1 개의 셕션으로 구성된 패키지 모델이 유효하다.

그런데, 신호의 전이 시간이 100 ps가 되면 어떨까?
전이 시간 100 ps는 주파수로 환산하면 3.5 GHz(= 0.35 / 0.1)가 된다. 이럴 경우, 패키지 리드 길이가 5 mm라면 패키지 모델링 대역폭은 신호 대역폭을 감당하기에 부족하게 된다. 즉 원래 신호에 왜곡이 발생하게 된다. 다시 말해 모델링 오류로 인하여 시뮬레이션 결과에 왜곡된 오류가 나타날 수 있다. 이 경우, 원래 신호를 충분히 반영하기위해 섹션 수는 2개(대역폭 대략 6 GHz) 이상 해주는 것이 좋을 것이다. 따라서 시뮬레이션을 위한 회로도를 그릴 때, IBIS의 패키지 모델을 비활성화 시키거나 제거하고, 외부에 n개(경우에 따라 계산한다. 아마 2~3개 정도면 될 듯)의 RLC 모델을 붙인다.
아래는 2개의 섹션으로 구성된 패키지 모델이다.



:

FPGA IBIS 추출

원 포인트 레슨 2014. 7. 1. 20:00

 FPGA는 재프로그래밍 가능한 로직 구성 능력 때문에 여러 개발 업무에 사용이 된다. 따라서 FPGA가 사용된 보드에서SI 시뮬레이션을 진행하기 위하여 FPGA IBIS 모델이 필요하다. 예전에는 FPGA IBIS 모델을 제조사 웹사이트에서 내려 받아 사용할 수 있었다. 지금도 예전 세대 제품들은 IBIS를 내려 받을 수 있다. 그런데, 최근에는 최신 FPGA 들에 대해서 IBIS 모델이 웹사이트에 등록되어 있지 않는 경우가 발생하고 있다. 이럴 때는 FPGA IDE 도구에서 IBIS를 추출해 사용하면 된다. FPGA 양대 산맥 중 하나인 Altera의 QuartusII와 Xilinx의 Vivaldo Studio는 IBIS 추출 기능을 제공하고 있다. 추출 방법은 매우 간단하고 쉽다. 다음은 Altera의 예이다.

 QuartusII GUI 화면 > Project Navigator에서 프로젝트 선택 후 오른쪽 마우스 클릭 > Setting 선택 > Setting 다이얼로그 > EDA Tool Settings 카테고리 선택 > Board-Level의 Signal Integrity에서 IBIS 선택

 프로젝트를 컴파일하면, 프로젝트 폴더 아래 board\ibis\*.ibs 생성


Vivado의 경우, File - Export - Export IBIS Model > Export IBIS Model 다이얼로그 > 설정 후 OK > 파일 생성

(이 때, Flow Navigator에서 RTL Analysis, Synthesis, Implementation 중 하나 택해야 함)


어렵지 않은 작업이므로, FPGA 엔지니에게 IBIS 추출을 요청하면 쉽게 ibs 파일을 받을 수 있다.


:

DDR 메모리 채널에 대한 decoupling capacitor 계산

원 포인트 레슨 2014. 4. 4. 21:00

전류 흐름
net를 흐르는 total 전류는 termination 저항을 통해 흐르는 steady 전류(Idc)와 드라이버를 통해  흐르는 switching 전류(Iac)의 합 이다. Idc는 드라이버의 상태(state)가 바뀌기 전까지는 일정하다. Iac는 상태가 변할는 동안에만 흐른다. Steady state 전류 변화는 Iac가 드라이버를 통해 흐르는 동안에 발생하기 때문에 이것도 고려가 되어야 한다.

Itotal = Idc + Iac

여기서,
        Idc = Rs와 Rt, Rd를 통해서 흐르는 평균 steady state 전류
        Iac = logic state를 변화시키기 위한 switching 전류

Rs = 0 ohm, Rd = 13 ohm, Rt = 39 ohm 인 경우에 1V/ns edge rate를 가정하면,
        Idc = (Vdd-MVTT)/(Rs+Rd+Rt) = (2.5-1.25)/(0+13+39) = 24mA
        Iac = C * dv/dt = 30e-12 (1.875/1.5e-9) = 37.5mA

위에서,
        부하 30 pF = DQ핀당 5pF * 4 load + PCB trace 4 inch 10pF,  2.5pF/inch @ 60ohm trace.
        1.876 V = 10% - 90% switching range.
        1.5 ns = 최악 switching time

Inductance
디커플링 시스템을 설계하는 데서 치명적 제한 요소는 보통 커패시턴스의 양이 아니라 커패시터 leads와  커패시터를 power와 ground 판에 연결하는 via의 inductance 양이다. 0603 패키지의 0.1uF 커패시터면 아래 계산을 사용할 때 충분한 커패시턴스를 제공한다.

Via Inductance
via 인덕턴스에 관한 식은 다음과 같다.

Lvia = 5.08h[ln(4h/d)+1]

여기서,
    h = via length
    d = via diameter
    단위는 inch, nH

(case by case로 달라질 수 있으므로, 식을 맹신하지는 말고 참고만 하자)

h = 50 mil, d = 13 mil이라고 하면,
Lvia = 5.08 * 0.05 [ln(4*0.05/0.013) + 1] = 0.948 nH

최대 허용 Inductance
빠른 스위칭 전류는 커패시터의 기생 인덕턴스 때문에  전압 판에 연결되어 있는 via에 전압 강하를 유발한다. 표준식 V = L * di/dt 로부터 Lmax를 계산할 수 있다. 계산을 간단하게 하기 위해서 Iac는 V2.5로부터 흐르고 Idc는 MVTT로부터 흐른다고 가정한다. 실제로 MVTT는 전이 동안 Iac 전류에 기여를 하지만 그런 기여는 결과에 크게 영향을 주지는 않는다.
        Lmax = (V * dt / di)/N

여기서,
    dt = 10%-90% switching time
    di = net 당 전류
    N = 동시에 스위칭하는 net 수

MVTT의 허용 규격이 +/- 100 mV이고 2.5V의 허용 규격이 +/-200mV라고 하면,
MVTT 만족을 위한(Idc),
        Lmax = (0.1*1.5e-9 / (2 * 0.024))/109 = 0.029 nH,  nets 수 109개
V2.5 만족을 위한(Iac),
        Lmax = (0.2*1.5e-9 / 0.0375)/109 = 0.073 nH,        nets 수 109개
MVTT는 전이 동안 Iac에 영향을 주지만 영향이 크지 않으므로 계산을 간단하기 위해서 배제하였다.

커패시터당 등가 인덕턴스
같은 0603 커패시터라도 제조사 그리고 유전체 물질 등의 종류에 따라서 패키지 인덕턴스가 다르므로 부품에 대한 데이터시트를 확인할 필요가 있다. 그리고 만약 패키지 인덕턴스가 0.87nH라고 하면 등가 인덕턴스는 다음과 같다.

Leq = Lpkg + Lvia = 0.87 + 0.948 = 1.82nH

필요한 커패시터의 수량
    Ncap = Leq/Lmax = 1.82/0.029 = 63        for MVTT
    Ncap = 1.82/0.073 = 25                         for V2.5

어떤 디자인에서 MVTT는 표면 레이어에 구현이될 것이고 이 경우 커패시터의 단자는 via 없이 바로 판에 연결이 된다. 따라서 Leq = Lpkg가 되고 그럴 경우 수량은 63개에서 31개로 줄어들 수 있다.

예외와 변형
예기서 계산은 di/dt같은 differential 량을 선형적으로 근사했다. 정확도를 높이려면 더 복잡한 계산을 해야 한다. 그리고 각 net들은 같은 부하와 같은 타입으로 가정했다. 디바이스 파리미터가 달라지면 결과가 상당히 달라질 것이다. Rs가 작으면 신호 edge가 빨라져서 큰 di/dt를 만들 것이고 예측은 어려워 진다. 그리고 필요한 커패시터 양도 증가될 것이다. dt에 대한 예측 또한 매우 어렵니다. 그것은 드라이버의 세기에 의존한다. 여튼, 위와 같은 식과 방법을 이용해서 데이터시트를 활용해서 prototype 디자인을 할 수 있을 것이다. 그 다음 MVTT와 V2.5의 노이즈 레벨과 data의 edge rate를 측정해서 디커플링 양과 correlate할 수 있을 것이다.


- 마이크론 TN-46-02 에서 발췌 요약

'원 포인트 레슨' 카테고리의 다른 글

IBIS Package 모델은 언제까지 유효한가?  (0) 2014.08.18
FPGA IBIS 추출  (0) 2014.07.01
Sense 라인은 최대한 얇게  (0) 2014.03.26
시뮬레이션과 측정  (0) 2014.03.25
Nelco N4000-13 대역폭 검토 예  (0) 2014.03.17
: