오늘은 변수 선언 순서에 대해 다뤄보겠습니다. 일반적으로 hspice 를 사용할 때 변수를 선언하고 해당 변수에 원하는 값을 배정하는데요. 여러가지 파일을 include 하거나 library 로 사용하는 경우 어느 변수값을 물리는지에 대해 헷갈릴 수 있습니다.
먼저 다른 sp 파일이나 option 파일을 물리는 방식으로는 일반적으로 include 와 lib 방식이 있습니다.
Lib 파일에는 보통 여러가지 상황을 가정하고 그 상황에 따른 변수를 설정합니다. 예를 들어 High voltage 와 Low voltage 가 가해지는 상황을 가정하면 아래와 같이 lib 파일을 선언할 수 있습니다.
** LIB name = VDD.lib
.LIB HIGH_VDD
.param VDD = 2.5
.param VSS = 0.2
.ENDL
.LIB LOW_VDD
.param VDD = 2.2
.param VSS = 0
.ENDL
이런식으로 library 를 선언해봅시다. 해당 lib 을 library 방식으로 물리고 어떤 library 를 사용할지 아래와 같이 선언할 수 있습니다.
.lib (파일 경로)/VDD.lib HIGH_VDD
위와 같이 선언하면 HIGH_VDD 일 때의 parameter 를 물리게 됩니다. 이 경우에는 VDD = 2.5 V , VSS = 0.2 V 가 배정되죠. 반대로 아래와 같이 선언하면
.lib (파일 경로)/VDD.lib LOW_VDD
VDD 에는 2.2 V , 그리고 VSS = 0V 가 배정되게 됩니다. 이런 식으로 어떤 VDD 인지 혹은 Corner 인지, Temperature 인지 등의 PVT 상황에 따라 library 를 선언해주고 parameter 를 그 안에 선언하면 쉽게 parameter set 을 바꿀 수 있습니다.
lib 에는 주의해야할 점이 있는데 여러 개의 lib 을 선언해준 경우, 그리고 그 lib 에서 중복된 parameter 를 선언한 경우에는 마지막 lib 에서 선언한 parameter 값을 물리게 됩니다. 아래와 같은 lib 이 있다고 해봅시다.
** LIB name = TEMP.lib
.LIB HT
.param temp = 100
.param VDD = 2.4
.param VSS = 0
.ENDL
.LIB CT
.param temp =-20
.param VDD = 2.1
.param VSS=0
.ENDL
그리고 이번엔 TEMP.lib 과 VDD.lib을 둘다 물리면
.lib (파일경로)/VDD.lib HIGH_VDD
.lib (파일경로)/TEMP.lib HT
이렇게 하면 HT 과 HIGH_VDD 에서 모두 VDD 와 VSS 라는 parameter 를 정의하게 됩니다. 중복된 parameter 가 선언되서 error 가 날 수도 있을거라 생각하지만 실제로는 더 마지막에 선언된 TEMP.lib 의 parameter 값을 따라갑니다. 결국 이 경우에 parameter 값들은 temp = 100, VDD=2.4, VSS=0 이 배정되죠. 이상입니다.
'시뮬레이션 > hspice' 카테고리의 다른 글
Hspice manual - Voltage source, Passive element 등 (0) | 2024.12.20 |
---|---|
Hspice 에서 transient simulation 하기 (0) | 2024.12.19 |
Hspice simulation : hspice 에서 ideal delay 만드는 방법 (0) | 2024.09.10 |
HSPICE & ADE simulation : Parameter 설정하는 법, parameter sweep simulation (0) | 2024.03.30 |
SPICE & ADE Simulation : hspice clk 선언하는 법 (0) | 2024.02.10 |