Languages

CommunityCategory: MODELZEN외부 파라메터의 값들을 SPICE 또는 Spectre 형식의 파일에서 읽어오는 방법

MODELZEN

외부 파라메터의 값들을 SPICE 또는 Spectre 형식의 파일에서 읽어오는 방법

SA Support Team Staff 2020-06-15

저는 외부 파라메터들을 일부 포함하고 있는 SPICE netlist로부터 MODELZEN을 사용해 모델을 생성하려고 합니다. 그 파라메터들은 예를 들면 기본 인버터의 트랜지스터 사이즈라던가, 단위 길이 wire의 기생 저항 또는 커패시턴스 값 등을 정의하고 있습니다. 저희 회사의 경우, 이런 파라메터들의 수가 많아서 이들을 별도의 파일로 관리하고 있고, 이 파일은 HSPICE의 .PARAM 문법을 사용해 각 파라메터들의 값을 정의하고 있습니다.

이 SPICE netlist로부터 모델을 생성하기 위해 MODELZEN을 실행하면, 아래와 같은 에러메시지가 납니다. 즉, netlist에 포함된 외부 파라메터들의 값을 찾을 수 없다고 나옵니다.

*** ERROR: error while evaluating the parameter expression 'R=2*A' of the instance '__TOP__.R1':
    name 'A' is not defined

MODELZEN User Guide 매뉴얼에 의하면, 이들 외부파라메터의 값을 technology configuration file의devo_option['ext_params'] 옵션을 사용해 정의할 수 있습니다. 예를 들면,

devo_option['ext_params'] = dict(A=1.0, B=2.0, C=3.0)

는 외부파라메터 A, B와 C의 값들을 정의합니다.

하지만, 제가 별도 관리하고 있는 파라메터 파일에는 100개 이상의 외부파라메터들이 나열되어 있고, 이들을 다시 Python 형식으로 옮겨적고 싶지 않습니다. SPICE 형식의 파일로부터 외부파라메터의 정의를 그대로 읽어오는 방법이 있을까요?

1 Answers
Best Answer
SA Support Team Staff 2020-06-15

예, 있습니다. 바로 technology configuration 파일 내에서 read_paramfile() 함수를 사용하시면 됩니다. 이 함수를 사용하면, 원하는 파일로부터 HSPICE의 .PARAM 구문이나 Spectre의 parameters 구문의 형식으로 정의된 외부파라메터 값들을 읽어올수 있습니다.
예를 들면, technology configuration 파일내에 아래 라인을 삽입하면, MODELZEN은 "/path/my_param.sp" 파일로부터 외부파라메터의 정의들을 읽어들이게 됩니다. HSPICE 형식을 기본으로 가정합니다.

read_paramfile("/path/my_param.sp")

만일, 이 파일이 Spectre 형식으로 기술되어 있으면, format 인자를 'spectre'로 정의하시면 됩니다.
만일, 이 파일이 라이브러리 또는 섹션의 형태로 외부파라메터 값들을 정의하고 있으면, section 인자를 사용해서 원하는 라이브러리 또는 섹션을 선택하실수도 있습니다.

read_paramfile("/path/my_param.sp", section='typ_lib')