Languages
내 회로에는 스위치 역할을 하는 트랜지스터들이 있습니다. 이 트랜지스터들을 MODELZEN이 switch
primitive로 변환하도록 하는 방법이 있나요? switch
primitive가 nmosfet
또는 pmosfet
primitive보다 시뮬레이션이 빠릅니다.
네, 있습니다. 특정 트랜지스터를 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 매뉴얼을 참고하세요.
Please login or Register to submit your answer