티스토리 뷰

연구/HSPICE

[HSPICE] Measure - 기본 문법 정리

태양의티아 2020. 2. 11. 15:12

HSPICE를 다시 Hard하게 다루고 있는 상태이다. 자꾸만 까먹어서 Measure 구문의 기본 문법을 정리해 놓는다.

1. 구문 종류

.meas 시뮬종류 식별이름 조건들

Measure는 다양한 종류의 값을 추출하기 위해서 여러가지 문법들을 사용하고 있다. 가장 기본적으로는 위의 코드와 같은 형태를 띄고 있다. 우선은 시뮬레이션 종류를 적는데, 각각 DC, AC, TRAN이 존재한다. 아래에서는 이제 해당 3가지 경우에 대해서 모두 예시를 들고자 한다.

 

식별 이름의 경우 우리가 .mt0 등의 파일에서 나온 값을 식별할 때 사용한다. 혹은 Wave Viewer 등에서 나오는 그래프의 이름이 되기도 한다.

 

조건의 경우 다양하게 존재한다. 큰 줄기로 When, Find-AT, Find-When 그리고 TRIG-TARG 구문이 존재한다. 세부 조건으로 TD, RISE, FALL, CROSS, FROM-TO 가 존재한다. 공용 조건으로 PRINT 가 존재한다.

 

큰 줄기는 아래에서 자세히 다루고 세부 조건에 대해서 조금 더 상세히 정리한다.

TD (Time Delay) == 얼마정도의 시간 뒤에 Measure를 시작할 것인가?
RISE  == 기준값 아래에서 위로 올라가는 지점 중 몇 번째를 쓸 것인가?
FALL == 기준값 위에서 아래로 올라가는 지점 중 몇 번째를 쓸 것인가?
CROSS == 기준값을 기준으로 몇번 지나간 지점을 쓸 것인가?
FROM TO == FROM 시기부터 TO 시기까지 사이에서만 보겠다.
PRINT == mt0 와 같은 파일에 출력을 할 것인지, 하지 않을 것인지를 결정 (기본은 1로 출력)

TRIG-TARG와 RISE, FALL, CROSS는 다음의 블로그 글을 참고하자

2019/08/17 - [연구/HSPICE] - [HSPICE] Measure - TRIG & TARG 기본

 

2. When 구문

$ DC분석 V(a)가 100m일 경우 DC값을 찾기
.meas DC var_name when v(a)=100m

$ AC분석 vdb(a)가 0db일 경우 Frequency값을 찾기
.meas AC var_name when vdb(a)=0

$ Tran분석 v(a)가 1.2V일 경우 Time값을 찾기
.meas TRAN var_name when v(a)=1.2

When 구문은 단독으로 쓰이면, 특정 변수가 ~~할 때의 x축 값을 찾는 경우에 사용한다. 주로 처음 AMP를 설계하여 Unit Gain BandWidth 등을 찾을 때, 사용하게 된다.

 

여기에 추가로 rise / fall / cross 구문과 td 구문, From-to 구문 등을 뒤에 붙일 수 있어 다양하게 활용이 가능하다.

 

$ DC분석에서 DC가 0.5 부터 1.0사이일 때, V(a)=100m인 DC값을 찾기
.meas DC var_name when v(a)=100m FROM=0.5 TO=1.0

$ TRAN분석에서 0.5ns부터 확인하기 시작해서 V(b)=500mV인 지점을 찾기 (0~0.5ns는 초기화 시간이라고 생각)
.meas TRAN var_name WHEN v(b)=500m TD=0.5n 

FROM-TO는 위의 구문을 보면 이해할 수 있다. 마찬 가지로 TD또한 넣어서 진행하면 이렇게 특정 부분들을 생략하는 것이 가능하다.

3. Find AT 구문

$ DC분석 V(a)가 100m일 경우 DC값을 찾기
.meas DC var_name find i(a) at=100m

$ AC분석 Frequency가 100Hz일 경우 vdb(a)값을 찾기
.meas AC var_name find vdb(a) at=100

$ Tran분석 100ns 일 경우 i(a)값을 찾기
.meas TRAN var_name find i(a) at=100n

Find AT 구문은 특정 x축 값에 대해서 다른 변수의 값을 찾을 때 사용한다. 우리가 그래프 보는 방법과 거의 동일하다.

 

이 구문도 마찬가지로 추가로 rise / fall / cross 구문과 td 구문, From-to 구문 등을 뒤에 붙일 수 있어 다양하게 활용이 가능하다.

4. Find-When 구문

$ DC분석 V(a)가 100m일 경우 v(b)값을 찾기
.meas DC var_name find v(b) when v(a)=100m

$ AC분석 vdb(a)가 0db일 경우 vp(a)값을 찾기
.meas AC var_name find vp(a) when vdb(a)=0

$ Tran분석 v(a)가 v(b)와 같은 경우 i(b)값을 찾기
.meas TRAN var_name find i(b) when v(a)=v(b)

Find-When 구문은 특정 변수가 ~~할 때의 Find 변수 값을 찾는 경우에 사용한다. AMP를 설계한 뒤에 Phase-Margin을 구하고 싶을 때, 특정 조건을 만족하는지 보고싶을 때 등에 많이 활용된다.

 

이 구문도 마찬가지로 추가로 rise / fall / cross 구문과 td 구문, From-to 구문 등을 뒤에 붙일 수 있어 다양하게 활용이 가능하다.

 

** 그 외 다른 Measure 구문 글 **

2021/01/13 - [연구/HSPICE] - [HSPICE] Measure - 고급 문법 정리

댓글