리눅스 실행법
----------------------------------------------------------------------------------------------------------------------------
내가 제일 많이 쓰는것
----------------------------------------------------------------------------------------------------------------------------
hspice -mt [num] -i [sp 파일 이름] -o [출력 파일이름]
SP File 작성법
Power
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
DC(vdd에 DC A(5v) voltage 추가
vdd vdd 0 dc A
.param A=5
vdd는 vdd와 0 사이에 있는 dc Voltage 이고 크기는 A이다.
A는 5이다.
----------------------------------------------------------------------------------------------------------------------------
Signal
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
pwl (ramp)
일반 vstart start 0 pwl A B C D E F
EX) vstart start 0 pwl 0 0 0.1n 4 0.2n 0
vstart 는 start와 0 사이에 있는 pwl 값이고 A초에는 B값 C초에는 D값 E초에는 F값.............계속
----------------------------------------------------------------------------------------------------------------------------
pulse
vrefclk refclk 0 pulse A B C D E F G
A=v1
B=v2
C=delay
D=rising time
E=falling time
F=pulse width
G=period
ex1)
vrefclk refclk 0 pulse 4 0 0 0.1n 0.1n 1n 2.2n
ex2)
vclk clk 0 pulse 0 supply 1p 20p 20p '1/freq/2-30p' '1/freq'
.param freq = 1giga
----------------------------------------------------------------------------------------------------------------------------
random pulse
ex)
vd d 0 LFSR (0 supply 0 10p 10p 400meg 2 [1, 4, 2, 8])
----------------------------------------------------------------------------------------------------------------------------
Sine wave
vsine sine 0 sin A B C D E
A = Offset voltage
B = Amplitude [ 차동신호 입력시 -V 랑 V 입력]
C = Frequency
D = Initial delay
E = Damping factor
ex)
vinp inp 0 sin 0.6 0.6 4.05G 0 0
vinm inm 0 sin 0.6 -0.6 4.05G 0 0
----------------------------------------------------------------------------------------------------------------------------
Analysis
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
.tran 1p 100n
1ps단위로 100ns 동안 transiant analysis 를 진행한다.
Parameter Sweep
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
Digital
.tran 10p 10n sweep data=TEMP
TEMP 의 data sweep을 하여 10ps time step 으로 10ns 시뮬레이션을 진행한다.
.data TEMP CTRL<4> CTRL<3> CTRL<2> CTRL<1> CTRL<0>
+ 0 0 0 0 0
+ 0 0 0 0 1
+ 0 0 0 1 0
+ 0 0 1 0 0
+ 0 1 0 0 0
+ 1 0 0 0 0
CTRL<4:0> = 00000
CTRL<4:0> = 00001
CTRL<4:0> = 00010
CTRL<4:0> = 00100
CTRL<4:0> = 01000
CTRL<4:0> = 10000
의 Data sweep 진행
Alter
여러조건에서 시뮬레이션을 돌리는 방법 ( PVT Variation이나 여러 조건, Parameter sweep과 유사하나 출력이 result.tr0, result.tr1, result.tr2과 같이 분리됨)
본 예시에서는 PVT Variation에 대한 시뮬레이션을 진행함
ex)
---example.sp---
.lib '라이브러리 경로' tt ## TT Conner
v_vdd vdd 0 dc supply
v_vss vss 0 dc 0
본문
.tran 1p 1u
.probe v(*)
.probe i(*)
.temp 'pTemp' $$ 온도 조건을 변수로 선언
.param pTemp = 27 $$ TT Corner에서의 온도
.param supply = 'pSupply'
.param pSupply = 1 $$ TT Corner에서의 전압
.alter
.del lib '라이브러리 경로' tt ## TT Corner 라이브러리 선언 제거
.lib '라이브러리 경로' ff ## FF Corner 재선언
.param pTemp = -50 $$ FF Corner에서의 온도
.param pSupply = 1.1 $$ FF Corner에서의 전압
.alter
.del lib '라이브러리 경로' FF ## FF Corner 라이브러리 선언 제거
.lib '라이브러리 경로' SS ## SS Corner 재선언
.param pTemp = 100 $$ SS Corner에서의 온도
.param pSupply = 0.9 $$ SS Corner에서의 전압
.end ## .end는 꼭 제일 마지막에 위치
위 sp파일을 hspice로 진행시
.tran으로 선언되어 있기때문에 tr0(TT) tr1(FF) tr2(SS) 로 3개로 출력됨
.ac 나 .dc 시뮬레이션을 진행한다면 ac0 ac1 ac2 혹은 dc0 dc1 dc2로 출력됨.
'아날로그 연구실' 카테고리의 다른 글
[Linux]리눅스 압축 명령어 (0) | 2022.07.07 |
---|---|
virtuoso lock file 한번에 제거하기 (0) | 2022.07.04 |
D-Flip Flop setup-holdtime with spice (0) | 2021.09.14 |
DRC 에러 (0) | 2021.08.10 |
[HSPICE] internal timestep too small in transient analysis ERROR (0) | 2021.04.21 |