ngspice에서 전압 전송 특성의 최대 기울기를 플로팅합니다.
다양한 Vdd 전압에서 전압 전달 곡선 (Vout 대 Vin)을 얻기 위해 입력 전압에 대해 DC 스위프 분석을 수행하여 ngspice에서 기본 CMOS 인버터를 구현했습니다.
. cmos g (gain) vs vdd
.include tsmc180.txt
vdd source_p 0 0v
vin gate_common 0 0v
m_p out gate_common source_p source_p cmosp w=2u l=0.18u
m_n out gate_common 0 0 cmosn w=2u l=0.18u
.dc vin 0 2.5 0.01 vdd 0.5 2.5 0.5
.control
run
plot v(out) vs v(gate_common)
plot deriv(v(out)) vs v(gate_common)
.endc
.end
위를 실행하면 예상대로 두 개의 플롯이 제공됩니다. 하나는 VTC이고 다른 하나는 인버터 이득을 나타내는 vtc의 기울기입니다.


최대 이득 포인트 (게인 곡선의 음의 피크)를 vdd에 대한 곡선으로 플로팅해야합니다. 이 .MEASURE
명령을 사용하는 것을 생각 했습니다.
.measure dc g deriv v(out)
.measure dc g_max min g
하지만 이것은 나에게 오류를 준다
No. of Data Rows : 1255
measure 'g' failed
Error: measure g :
function '' currently not supported
.measure dc g deriv v(out) failed!
ngspice pdf 매뉴얼이나 ngspice 시뮬레이션 예제에 대한 git 저장소에서 그러한 예제를 찾을 수 없습니다. 일부 지침은 대단히 감사합니다.
답변
사용 deriv
은 트레이스의 모든 길이에 걸쳐 미분을 의미하므로 .meas g deriv v(out)
반환 값이 점의 벡터이기 때문에 명령 이 의미가 없습니다. 매뉴얼 의 사용법에 대해 설명 deriv
각각의 추적에 대한, 또는 서로에 도달 조건 통해서 도움에 키워드를 한 지점에서 파생 상품을 평가하기로한다.
이 방법은 허용하지 않는 것 때문에 min
, max
, 공동, 난 당신이 같은 수행하는 것이 좋습니다 .dc
분석을하지만,에 .tran
:
- 입력을 램프로 설정하십시오 (예 :
PWL(0 0 1 2.5)
. {x}
귀하의 공급품에 할당 (또는 다른 가치).- 를 사용하여 공급 값을 단계별로 살펴보십시오
.step param x 0.5 2.5 0.5
.
V(out)
올바른 응답을 표시하는, 만 플로팅하는 V(in)
것으로 충분 하지만 반대 플로팅 은 .dc
분석을 모방합니다 . 이 방법의 장점은 출력의 미분을 수행 할 수있는 회로를 추가 .meas
하면 min
/ max
/ etc 를 찾는 데 사용할 수 있다는 것 입니다. 회로는 여기에 설명 된대로 G1
및 L1
에 의해 형성된 그룹 입니다. 그것의 배치도 비슷합니다. 비 반전 입력을 에 연결 하고 미분에 대한 전압을 사용하십시오 . 충분한 정확도를 위해 (스퓨리어스 스파이크를 피하기 위해 ) 총 시뮬레이션 시간 (예 :)보다 1000 배 더 작은 타임 스텝을 시그 스트합니다 .G1
V(out)
L1
1 ms
1 s
그것으로 V(d)
파생물이 있다면 다음을 사용하십시오.
.meas d min v(d) from 10m
from 10m
보장하지만 인해 유도체 처음에는 임의 스파이크가 없습니다.