2013년 2월 1일 금요일

상승시간(Rise Time)과 주파수대역(Bandwidth) (3)

어떤 주어진 신호는 두가지의 서로 다른 영역(domain)에서 분석이 가능한데 하나는 시간영역(time domain)이고 또다른 하나는 주파수영역(frequency domain)이다. 지난번 1편과 2편에서 보았듯이 이 두영역은 서로 상호관계에 있다. 시간영역(time domain)에 있는 신호는 푸 에 변환(Fourier Transform)을 이용하여 주파수영역(frequency domain)에서 분석할 수 있는데 푸리에 분석(Fourier Analysis)의 핵심은 바로 모든 파형은 정현파(Sinusoidal waveform)들의 조합으로 되어있다라는 사실이다. 지난시간 Knee frequency를 설명할때 사다리꼴파형을 FFT(Fast Fourier Transform)한 그림을 보여주었는데 여기서는 푸리에 시리즈(Fourier Series)를 이용하여 상승시간(Rise Time)과 주파수대역(Bandwidth)의 관계를 알아보기로 한다.

구형파를 주파수영역에서 보면 우수성분(even component)의 주파수는 0이고 기수성분(odd component)의 유한한 주파수 성분을 볼 수있는데 가장 처음의 성분을 기본 주파수(fundamental frequency)라 하고 나머지 성분들을 n-차 하모닉(harmonic)성분이라고 한다. [그림 1]에 보인 예처럼 1GHz의 구형파 신호를 주파수 영역에서 보면 1GHz에서 기본 주파수를 볼 수 있고 3GHz, 5GHz, 7GHz... 등에서 그 3차, 5차, 7차하모닉을 볼 수 있다. 기본 주파수와 하모닉의 진폭은 푸리에 계수(Fourier Coefficient)에 의해 결정되며 시간영역에서 전압진폭이 1V일 경우 n 이 하모닉 수이면 하모닉 진폭 Ao = 4/(π n)가 된다. [그림 1]의 아래에 보인 그래프를 주파수 스펙트럼(frequency spectrum)이라고 하는데 이것이 의미하는 바는 스펙트럼에서 보여진 모든 주파수성분을 갖는 정현파(sinusoidal waveform)들을 합하면 1GHz의 구형파가 생성된다는 것이다.

[그림 1]

각각의 스펙트럼 성분들을 시간영역에서 다시 보이면 [그림 2]와 같다. 그림에서 보는 것처럼 먼저 기본 주파수(fundamental frequency)인 1GHz의 sine파형으로 시작해서 각각의 하모닉성분들을 합해갈 수록 1GHz 구형파에 가까워 짐을 알 수 있다. [그림 2]에서 보여진 예는 [그림 1]의 주파수 스펙트럼에서 보여진 것처럼 19번째 하모닉인 19GHz sine파형까지 합한 경우이다.  이 말을 달리 표현하면 [그림 2]의 신호는 19GHz의 주파수 대역(frequency bandwidth)을 갖는 구형파라고도 할 수 있다. 여기서 또 한가지 알 수 있는 것은 고주파수의 성분들이 합해질수록 신호의 상승시간(rise time)이 빨라진다는 것이다. 즉, 상승시간이 빠를수록 그 신호안에는 보다 더 많은 고주파성분을 가지고 있다는 것이다. 상승시간을 가지고 얼마나 높은 주파수 성분이 들어있나 알아 볼 수 있는 방법이 바로 지난 시간에 설명한 FBW = 0.35/Tr 또는 Tr = 0.35/FBW 이다.

[그림 2]


## 구형파의 Fourier Series(Python 2.7)
## Written by SimplyPHY

from numpy import *
from pylab import *
import matplotlib.pyplot as plt

L = 1000
N = 2*L

M = 10

d = 100

xn = hstack((-1+zeros(L), ones(N-L))) # 구형파

Xk = fft(xn,N) # 구형파의 FFT


for s in range(1,N):
    Hk[s]=2*real(Xk[s])/(s*pi)

xtick_intval=10.0

plt.subplot(211)
plot(xn)
ylim(-1.1, 1.1)
xticks(arange(0, N, N/xtick_intval), arange(0, N/N+1/xtick_intval, N/xtick_intval/N))
xlabel('Time(nsec)')


ylabel('Voltage(V)')

plt.subplot(212)
stem(arange(0,N/d),abs(Hk[0:len(Hk)/d]))
xlabel('Frequency(GHz)')
ylabel('Harmonic Amplitude')

t=arange(-pi,pi,1.0/N)

x = zeros((len(t)))
y = zeros((M+1, len(t)))  # 푸리에급수를 저장할 2차원 matrix

# 퓨리에급수
for i in range(1,2*M,2):
    x = x + 4/pi*sin(i*t)/i
    y[(i+1)/2,:] = x

yy = len(y.T)

plt.figure()
plot(y[1:M:1,:].T)
xlim(0, 1.1)
xticks(arange(0, yy+yy/xtick_intval, yy/xtick_intval), arange(0, yy/yy+1/xtick_intval, yy/xtick_intval/yy))
xlabel('Time(nsec)')

show()

2013년 1월 30일 수요일

10Gb/s SuperSpeed USB(USB3.0) 발표


HP, Intel, Microsoft, Renesas, ST와 Texas Instruments로 구성된 USB 3.0 Promoter Group이 지난 1월 6일 SuperSpeed USB (USB 3.0)표준이 기존에 지원하던 5Gb/s의 전송속도를 2배 향상시킨 10Gb/s까지 지원하는 표준작업을 시작하기로 발표했다. 올해 중반까지 10Gb/s표준을 완료하고 내년 2014년에는 제품이 나올 수 있을 것으로 기대하고 있는데 당연히 새 표준은 5Gb/s에서 사용하던 커넥터와 케이블을 역호환할 수 있음은 물론 USB2.0 제품과도 호환이 될 수 있도록 할 예정이다.

USB-IF는 이미 10Gb/s SuperSpeed USB spec 0.7을 만들어 놓은 상태이고 2월 7일 미국 Oregon의 Hillsboro에서 이 spec 0.7을 가지고 컨퍼런스를 가질 계획이다.

하지만 위에서 언급했듯이 5Gb/s의 데이타 전송속도를 가지는 링크에서 10Gb/s를 구현한다는 것은 그리 만만한 일이 아니다. 특히 10Gb/s신호를 위한 데이타 이퀄라이져(equalizer)와 에러정정(error correction)이 크게 향상된 PHY개발이 선행되야 한다.

여러가지 난관이 있겠으나 기존의 거대한 USB시장을 토대로 10Gb/s USB가 과연 Apple의 Thunderbolt를 누르고 Firewire와 같은 신세로 전락시킬지 지켜볼일이다.

USB-IF Press Release


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

2013년 1월 6일 일요일

상승시간(Rise Time)과 주파수대역(Bandwidth) (2)


이번에는 지난 시간에 이어 rise time을 가지고 어떻게 f-3dB를 알아내는지 살펴보기로 하겠다.

[그림 1]은 간단한 RC회로와 그 회로에서 얻을 수 있는 step response(계단응답)이다. 회로이론 교과서에 나와 있듯이 step function(계단함수)을 입력에 인가하면 케패시터 C에 걸리는 전압은 exponential함수에 따라서 나타나게 된다. 정확히 말하면 다음과 같다.




R*C는 time constant(시상수)라고 하는데 RC회로에서-3dB bandwidth는 angular frequency(각주파수)로 time constant의 역수로  표현한다. 다시말하면, ω-3dB = 1/(RC) radian/sec이며 ω-3dB= 2πf-3dB이므로 f-3dB는 다음과 같다.





상승시간(Rise time)은 signal level이 전환되는 edge의 10%시점에서 90%시점까지 걸리는 시간으로 정의되므로 Rise time(Tr) = t90  - t10이다. [그림 1]의 응답곡선을 보면 t90은 2.3RC이고 t10은 0.1RC 이므로 Tr = 2.3RC – 0.1RC = 2.2RC가 되며 이 결과를 위의 식에 대입하면 다음과 같다.





이것이 바로 rise time과 bandwidth의 관계가 된다. 그러나 f-3dB = 0.35/Tr는 정확한 값은 아니며 실제값과 가장 근사한 값이라고 할 수 있다.

[그림 1]에서 만약에 R이 50ohm이고 C가 2pF라면 Tr은 2.2*(50*2*10^-12) = 220psec이고 그에 대한 f-3dB는 0.35/220psec = 1.6GHz가 된다.



그림 1] RC회로와 Step response(계단응답)

밑의 코드는 [그림 1]의 계단응답을 구현한 파이선(Python)소스이다.


## RC 회로응답 by Python 2.7
## Written by SimpliPHY

from numpy import *
from pylab import *

R = 2000
C = 47e-6

tau = R*C

m = 500

t = []
v = []

for i in range(m):
    t.append(i/1000.0)
    v.append(1*(1-exp(-t[i]/tau)))

plot(t,v)
hold(True)
plot(t,sign(t), linestyle='--', color='red', linewidth='3')

xlim(-.1, .6)
ylim(-.1, 1.1)
xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5],['0', 'RC', '2RC', '3RC', '4RC', '5RC'])
grid(True)
hold(False)

show()



Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

2012년 12월 20일 목요일

차동신호(Differential Signal)란? (2)

지난번에 차동신호(differential-mode signal)에 대하여 잠깐 설명하면서 공통신호(common-mode signal)도 짧게 언급하였다. 앞서 교류공통모드신호(AC common-mode signal)는 두 단일입력신호(single-ended signal)에 skew가 있을때 발생한다는 예를 들었는데 교류공통모드신호가 생기는 원인으로 다른 몇가지를 더 예로 들고자 한다.

 다음 각각의 그림에 보이는 신호들은 500mVp-p인 진폭과 상승시간과 하강시간이 각각 50psec인 신호(파란색과 노란색)를 50-Ohm으로 소스종단(termination)한 차동입력단자에 인가하여 250psec의 신호지연시간을 갖는 전송선(transmission line)을 통과한 후 측정한 차동모드(differential-mode) 전압(보라색)과 공통모드(common-mode) 전압(연두색)이다.

[그림 1]은 전송선(transmission line)출력단에서 측정한 공통모드(common-mode) 신호가 0V고 차동모드(differential-mode) 신호가 +/-500mVp-p인 신호이다.



[그림 1]

[그림 2]는 파란색 신호에 20psec의 skew로 인한 공통모드(common-mode) 신호이다. 공통모드(common-mode) 신호의 폭과 전압이 무려 14psec와 +/-100mV로 나타나며 차동모드(differential-mode) 전압의 10%와 90%부분에서 감쇄현상이 나타났다.



[그림 2]


[그림 3]은 진폭차이(amplitude imbalance)로 인한 공통모드(common-mode) 신호이다. 단일입력신호 Vp(파란색)는 소스에서 +/-500mV를 유지하고 Vn(노란색)은 입력단에서 약 +/-100mV를 줄여 +/-400mV를 인가하였다. 그 결과 +/-25mV의 전압을 갖는 공통모드(common-mode) 전압이 발생함과 동시에 그만큼 차동모드(differential-mode) 전압도 감소하여 원래 +/-500mV였던것이 +/-450mV로 감소 하였다.


 [그림3]

 [그림 4]는 상승하강시간의 차이(rise and fall time imbalance)로 인한 공통모드(common-mode) 신호이다. 단일입력신호(single-ended signal) Vp(파란색)의 하강시간과 Vn(노란색)의 상승시간이 20psec정도 더 느린 경우이다. 이런 경우 +/-75mV의  톱니파 공통모드(common-mode) 전압이 발생함을 알 수 있고 skew가 발생했을 때와 마찬가지로 차동모드(differential-mode) 전압의 10%와 90%부분에서 감쇄현상이 나타났다.


[그림 4]


밑에 보이는 스크립트는 위에서 보여진 common-mode signal을 시뮬레이션한 HSpice deck이다.

*Common Mode Tline
*
*

.PARAM LV=-0.5 HV=0.5 TD=10p TR=50p TF=50p TPW=0.9n TPER=2n

*Normal
Vindiff1 vp_src 0 PULSE LV HV TD TR TF TPW TPER
Vindiff2 vn_src 0 PULSE HV LV TD TR TF TPW TPER

*Skew
*Vindiff1 vp_src 0 PULSE LV HV TD TR TF TPW TPER
*Vindiff2 vn_src 0 PULSE HV LV 'TD+20p' TR TF TPW TPER

*Amplitude Imbalance
*Vindiff1 vp_src 0 PULSE LV HV TD TR TF TPW TPER
*Vindiff2 vn_src 0 PULSE 'HV-0.1' 'LV+0.1' TD TR TF TPW TPER

*TrTf Imbalance
*Vindiff1 vp_src 0 PULSE LV HV TD TR 'TF+20p' TPW TPER
*Vindiff2 vn_src 0 PULSE HV LV TD 'TR+20p' TF TPW TPER

Rin1 vp_src vp_in 50
Rin2 vn_src vn_in 50

TP0 vp_in 0 VP 0 Z0=50 TD=250p
TN0 vn_in 0 VN 0 Z0=50 TD=250p

RTP VP 0 50
RTN VN 0 50

.OPTIONS accurate post=2 probe
.TRAN 1p 4n
.PROBE v(VP) v(VN)
.PROBE Vcm=par('(v(VP)+v(VN))/2') Vdiff=par('(v(VP)-v(VN))')

.END


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

2012년 12월 17일 월요일

상승시간(Rise Time)과 주파수대역(Bandwidth) (1)

밑에 보인 [그림 1]은 100KHz trapezoidal waveform(사다리꼴파)의 spectrum(어떤 신호가 가지고 있는 주파수 성분들)이다. 빨간색으로 나타낸 spectrum은 rise time이 0.2usec이고 파란색 spectrum은 rise time이 0.5usec이다. x축은 주파수를 나타내고 y축은 amplitude로서 dB로 나타낸다.

Spectrum을 살펴보면 amplitude가 검은색 점선을 따라서 감소하는데, 그 감소율이 -20dB/dec (-20dB per decade라고 읽는다)이다. -20dB/dec이란 의미는 x축, 즉 주파수가 10배 증가할때마다 y축 amplitude가 20dB의 감소가 생긴다는 뜻이다. 이 감소율은 주파수가 높아지게 되면 증가하게 되는데 대략 -40dB/dec으로 amplitude가 감소하는 것을 볼 수가 있다. [그림 1]에서 빨간색사선과 파란색사선이 -40dB/dec을 나타내는 선이다.  -20dB/dec line과 -40dB/dec line이 만나는 주파수를f-3dB(-3dB frequency)또는 fknee(knee frequency)라고 하는데 어떤 신호가 가지고 있는 대부분의 에너지는f-3dB 이하에 집중한다. 통신시스템이나 신호처리 시스템에서f-3dB이상의 모든 주파수 성분을 취급하기 위해서는 실질적으로 무한대의 bandwidth를 갖는 시스템이 필요하게 된다. 그렇기때문에 통상 system design관점에서f-3dB를 그 신호가 가지고 있는 최고 주파수성분으로 보며 실제 bandwidth를 결정하는 요소로 본다.

따라서 [그림 1]에서 보인 예를들면 0.2usec의 rise time을 갖는 신호의 경우 f-3dB가 1.8MHz이고 0.5usec의 rise time을 갖는 신호의 경우 700KHz이다. 그러므로 동일한 주파수를 갖는 신호일지라도 rise time에 따라서 필요로하는 bandwidth는 다르며 rise time이 짧을수록f-3dB가 더 높다는 것을 알 수 있다.


그림 1]


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

2012년 11월 30일 금요일

차동신호(Differential Signal)란? (1)

일반적으로 말하는 '단일 선로'를 통해 흐르는 전기신호는 엄밀히 말해서 두개의 선로를 통해서 전류루프(current loop)를 형성한다. 즉, 신호선의 전류는 접지선을 통해 다시 소스로 귀환한다.

차동신호(Differential signal)는 두개의 전송선위에 위상이 서로 반대로 흐르는 신호를 말한다. 그림 1]에서 보는것 같이 송신단은 주어진 신호를 두개의 선로에 위상만 180도 다른 동일한 신호를 내보내고 수신단에서는 차동증폭기(Differential amplifier)를 이용해 두 신호의 차이를 만들어 낸다. 그림 1]에서 송신단의 + 단자전압을 Vp, - 단자전압을 Vn 이라고 하면 수신단에서 받는 차동신호는 다음과 같이 된다.

Vdiff = Vp - Vn

Vp와 Vn을 단일입력전압(Single-ended voltage)라고 하는데 따라서 차동전압(Differential voltage)은 단일입력전압(Single-ended voltage)의 두배가 된다. 그림 2]를 보면 이를 쉽게알 수 있다.



그림 1]



그림 2]

그림 2]에서 상단에 보이는 파형들은 단일입력전압(Single-ended voltage)을 나타내며, Vp와 Vn은 각각 300mVp-p이다. 하단에 보이는 파형은 Vp와 Vn의 차동신호를 나타내는데 전압진폭이 300mVp-p - (-300mVp-p) = 600mVp-p가 되었다. 위에서 언급한 차동전압을 특별히 차동모드전압(Differential mode voltage)라고 하는데 이와 함께 고려해야 할 성질이 공통모드전압(Common mode voltage)이다. 공통모드전압은 차동신호의 평균값으로서 다음과 같다.

Vcm = (Vp + Vn)/2

차동신호에서 공통모드전압을 함께 고려해야 하는 이유는 수신단에서 공통모드전압이 차동전압으로 변환되어 원래의 차동전압을 왜곡 시킬 수 있기때문이다. 공통모드전압은 다시 다음과 같이 두가지 종류로 나눠진다.

o 직류공통모드전압(DC Common mode voltage)
각  단일입력전압(Single-ended voltage)인 Vp와 Vn에 DC offset전압이 있을 경우 직류공통모드전압이 발생하게 된다. 예를들어 그림 1]에서 보면 각각의 Vp와 Vn의 차동전압은 300mVp-p이지만 신호의 50%되는 지점은 150mV 전압레벨에 걸쳐있다. 따라서 그림 1]의 Vp와 Vn은 150mV의 공통모드 전압을 갖게된다. 그러나 이러한 DC offset전압은 차동전압에서는 소거가 된다. 그 이유는 offset전압은 같은 극성을 가지므로 Vdiff = Vp - Vn의 공식에 의해 차동전압레벨의 50%가 되는 지점은 0V가 된다.

o 교류공통모드전압(AC Common mode voltage)
교류공통모드전압은 Vp와 Vn의 skew(신호전달시간의 차이)가 발생할때 나타나는 성분이다. 그림 3]에 보여진것과 같이 두 종단신호에 skew가 발생하면 그에 따라 공통모드 전압의 진폭도 비례하여 커지게된다. 교류공통모드전압은 또한 차동전압의 진폭을 감소시키기도 한다. 그림 2]에 보여진것 처럼 skew가 없는 차동전압은 600mVp-p인 반면 40psec의 skew가 있는 그림 3]의 차동전압은 550mVp-p으로 감소되었다.




그림 3]


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

2012년 11월 15일 목요일

상승시간(Rise Time)과 분포회로(Distributed Circuit)



모든 step signal (level 0에서 level 1으로 signal level이 변하는 신호)은 rise time (상승시간), tr, 을 가지고 있다. Ideal signal일 경우에만 rise time이 0이된다.  Rise time은 밑에 보이는 [그림 3-1]처럼 보통 signal level이 전환되는 edge의 10%시점에서 90%시점까지 걸리는 시간으로 정의된다. (signal amplitude가 작을 경우에는 20% ~ 80%로 하기도 한다). 


어떤 신호의 traveling time(flight time또는 propagation delay)은 td = d / v (d = transmission line 길이, v = signal velocity)이며 tr과td의 관계를 가지고 다음과 같이 구분할 수 있다.

Lumped Circuit        : tr / td > 2.5
Distributed Circuit    : tr / td < 2.5

이 관계는 실제 circuit과 system에서 얻어진 ‘rule of thumb’이다.




 그림 3-1]

빛의 속도(C)는3 x 10-8 m/s이므로 예를들어서 PCB재료로 많이쓰이는 FR4의 경우 signal velocity가 대략 0.47 x C = 0.47 x 3 x 10-8 m/s가 된다. 따라서 6cm의 PCB trace의 경우 signal rise time이 대략 1nsec 이하이면 distributed circuit이 되는 것이다. CMOS회로의 경우 SiO2의 velocity는 대략 0.51 x C = 0.51 x 3 x 10-8 m/s가 된다. 따라서 CMOS chip내부의 interconnection이 1cm인 경우 propagation delay는 65psec이다. 그러므로 rise time이 대략 165psec 이하이면distributed circuit이 되는 것이다.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.