아시다시피, GLISTER는 'analogLib' 라이브러리 셀들로 구성된 스키매틱으로부터 SystemVerilog netlist를 추출할 수 있습니다 (자세한 내용은 이 Q&A 포스팅을 참조하세요). 한 예로, 아래 그림과 같이 'analogLib' 라이브러리의 셀들인 'vcc', 'res', 'cap' 및 'gnd' 셀들로 구성된 스키매틱을 각 셀에 대응하는 등가의 XMODEL primitive로 구성된 SystemVerilog 모델로 넷리스트할 수 있습니다.
이 예제에서 'vcc'라는 이름의 글로벌 심볼이 '`global_vcc'라는 이름의 신호로 넷리스트되었음을 주목해주세요. 이것은 사실 '$root.XMODEL_global.vcc'라는 신호 이름으로 정의된 매크로 입니다. XMODEL에서는 이렇게 글로벌 신호를 'XMODEL_global'라는 이름의 최상위 모듈내에서 정의된 신호로 표현합니다. 한편, 또다른 글로벌 심볼인 'gnd'는 '`ground'로 넷리스트되는데, 이 또한 '$root.XMODEL_global.ground'라는 신호로 정의된 매크로입니다.

저의 경우에는 좀 다른 글로벌 신호의 리스트를 갖고 있어서 'my_global'라는 최상위 모듈을 따로 만들고, 그 안에 저만의 글로벌 신호들을 정의하였습니다. 이때, 스키매틱에 사용된 'vcc' 글로벌 심볼을 '`global_vcc' 대신 '$root.my_global.vcc'라는 이름의 신호로 넷리스트하고 싶습니다. GLISTER에 이렇게 각 글로벌 심볼에 해당하는 신호 이름을 재정의하는 기능이 있나요?
예, 있습니다. 답부터 먼저 드리면, 아래의 SKILL 코드를 Cadence Virtuoso의 커맨드 인터프리터 창(CIW 창)에서 실행시킨후 netlisting을 수행하시거나, 또는 매번 실행하는 수고를 덜기 위해 그 코드를 .cdsinit 초기화 파일에 포함하시면 됩니다.
xmodelRegisterGlobalNetMap( "vcc!" "$root.my_global.vcc" )
참고로 2025.07 이후의 XMODEL 릴리즈는 analogLib의 글로벌 심볼과 GLISTER로 넷리스트되는 신호 이름간의 매핑을 추가(변경), 삭제, 또는 리스트할 수 있는 아래의 SKILL API 함수들을 지원합니다.
xmodelRegisterGlobalNetMap( globalNetName mappedVarName ) : 글로벌 신호 이름(globalNetName)과 넷리스트되는 신호 이름(mappedVarName) 간의 새로운 매핑을 정의함.xmodelUnregisterGlobalNetMap( globalNetName ) : 글로벌 신호 이름(globalNetName)에 대한 기존의 매핑을 삭제.xmodelListGlobalNetMap() : 현재 등록된 글로벌 신호이름의 매핑들을 리스트업해서 표시.Please login or Register to submit your answer