Languages

CommunityCategory: MODELZEN트랜지스터들을 ‘switch’ primitive로 매핑하는 방법

MODELZEN

트랜지스터들을 ‘switch’ primitive로 매핑하는 방법

SA Support Team Staff 2018-01-09

내 회로에는 스위치 역할을 하는 트랜지스터들이 있습니다. 이 트랜지스터들을 MODELZEN이 switch primitive로 변환하도록 하는 방법이 있나요? switch primitive가 nmosfet 또는 pmosfet primitive보다 시뮬레이션이 빠릅니다.

1 Answers
Best Answer
SA Support Team Staff 2018-01-09

네, 있습니다. 특정 트랜지스터를 nmosfet이나 pmosfet primitive 대신 switch primitive로 매핑하는 방법에는 회로 스키매틱 상의 트랜지스터 instance에 MODELZEN 속성을 정의하는 방법과, technology configuration 파일 (tech_config.py 파일)에 소자 매핑을 정의하는 방법의 두 가지가 있습니다. 첫째 방법인, 회로 스키매틱에 MODELZEN 속성을 정의하려면, 원하는 트랜지스터 instance를 선택한 다음, 오른쪽 마우스 버튼을 클릭하고, 나타나는 pop-up 메뉴에서 Edit > MODELZEN Properties를 선택합니다. 이후 Edit > MODELZEN Properties라는 창이 뜨면, model type을 switch로 설정하시고 나머지 속성들도 알맞게 정의하시면 됩니다.대부분의 경우에는 DC level에 max_idsat을 선택하시고, AC level에 0을 선택하시는 것을 권장합니다. 이 경우 MODELZEN은 해당 트랜지스터 소자를 SPICE 시뮬레이션으로 결정된 유한한 on 저항값을 갖고, 무한대의 off 저항값을 가지면, 커패시턴스 성분은 없는 switch primitive로 모델링하게 됩니다. 만일, off 일때도 유한한 저항값을 가지게 하고 싶다면 DC level에 linear를 선택하시고, 커패시턴스 성분을 포함하고 싶다면 AC level에 1을 선택하세요.MODELZEN이 on/off 저항값을 결정하기 위해서는 on/off 상태일때 어떤 전압값을 gate에 인가해야 하는지를 알려주어야 합니다. 그러기 위해서 V(ctrl) for 1에 로직 1에 해당하는 전압값을 (보통 Vdd 전원값), V(ctrl) for 0에 로직 0에 해당하는 전압값을 (보통 0)을 정의해주세요. V(com) 파라메터는 substrate 전압값을 의미하는 것으로 스위치가 nmosfet 스위치인지, pmosfet 스위치를 판별하는데 쓰입니다. 다시 말해, V(com) 값이 V(ctrl) for 0값에 가까우면 nmosfet 스위치, V(ctrl) for 1 값에 가까우면 pmosfet 스위치로 모델링 됩니다.두번째 방법은, technology configuration 파일(tech_config.py 파일)에서 해당 매핑을 정의하는 것입니다. 예를 들어, 위에서 언급한 pmosfet 소자의 switch로의 매핑을 정의하려면, devo_devicemap를 정의할때,<pmos model> : dict(type='switch', level_dc='max_idsat', level_ac=0, vctrl1=1.1, vctrl0=0.0, vcom=1.1),정의를 해당 소자에 대해 사용하면 됩니다. 이 매핑을 특정한 subcircuit에만 적용하거나, 해당 instance에만 적용할 수도 있는데, 그 자세한 방법은 MODELZEN User Guide 매뉴얼을 참고하세요.