이번 방학 때 딱히 할 게 없어서.. 무엇을 하면 좋을지 고민하다, 우연히 프로젝트를 하게 되었다.
문제의 MOSFET은 다음과 같다. (Vdd=1.8V, 가능한 Length L은 최솟값을 사용)
해당 회로에 따른 문제는 총 5개였다.
(1) Rd=2k ohm에 대한 voltage transfer curve (VTC : Vin을 0~Vdd 까지를 10mV step으로 변화시킬 때 Vout의 특성 graph) 를 Pspice를 사용해서 그리는데, M1의 W/L size를 잘 조정하여 small-signal voltage gain이 10보다 크게 설계하시오.
(2) 이 CS Amp가 최대의 출력 swing voltage를 가질 수 있는 Vin의 Common-mode DC값을 찾고, 그때의 slope값을 그림에서 계산하고, VTC 그림 위에 표시하시오.
(3) 위의 (1)와 (2)에서 찾은 maximum gain을 가질 수 있는 Vin의 Common-mode DC값을 기준으로 +/-1mV 폭의 1MHz sine wave를 Vin으로 인가할 때, 출력 Vout의 동작 파형을 Pspice를 이용하여 그리시오. (.tran 시뮬레이션으로 x축 time 0ns부터 500ns까지 Vin, Vout plot 그리기)
(4) 위의 (3) 에서 그린 transient simulation graph 상에서 Vin과 Vout의 swing voltage 크기를 직접적으로 비교하여 small-signal voltage gain 값을 구해보시오. 이 값이 B)에서 구한 slope과 유사한지 비교해보시오. 또한, 이 값이 이 CS Amp의 대략적인 gain 값 식은 -gm*Rd의 값과 유사한지 비교해 보시오.
(5) 위 (B)의 CS Amp에 대하여, (1)와 동일한 조건에서 (M1 size 동일)
Rs = 1k ohm이 추가된 경우의 VTC를 Pspice를 사용하여 그려보고, (1)의 경우와 비교해 보시오.
음.. 일단 내가 작년 실험 수업 때 PSPICE를 제대로 사용하지 않았어서 PSPICE에 대한 지식이 거의 없었다. (내 노트북에 프로그램 설치도 안 했었고 그냥 학교 컴퓨터에 설치된 프로그램 딱 한번 사용해봤다...ㅋㅋㅋ)
어차피 3학년부터 PSPICE 사용을 다들 하는 것 같았고, 프로그램 다루는 것이 추후 큰 무기가 된다고 많이 들었어서.. 이참에 제대로 입문해보자 생각이 들었다.
먼저 PSPICE 설치부터 했어야했는데 구글링 열심히 해서 (주)나인플러스 사이트에서 다운받았다.
나인플러스 IT ㈜
Cadence OrCAD 국내총판, Allegro, PSpice, Sigrity, IC Design, AWR, InspectAR, EMX. CFD
www.npit.co.kr
여기서 나는 Lite 버전을 다운로드 받았다.
---
이제 본격적으론 프로젝트 얘기를 시작해보자.
(1) Rd=2k ohm에 대한 voltage transfer curve (VTC : Vin을 0~Vdd 까지를 10mV step으로 변화시킬 때 Vout의 특성 graph) 를 Pspice를 사용해서 그리는데, M1의 W/L size를 잘 조정하여 small-signal voltage gain이 10보다 크게 설계하시오.
[고려사항1 - 프로그램을 사용하지 않으면 문제를 풀기가 매우 힘들다.]
먼저 내가 전자회로(1)에서 MOSFET 설계 문제를 풀 때에는 3개 이상의 변수를 고려하지 않았어도 되었어서 그냥 계산기와 함께라면 모든 문제를 풀 수 있었던 것 같았다. (문제에 이미 조건이 주어졌었기 때문..)
근데.. 이 프로젝트를 시작하기 전에 그냥 손으로 한번 풀어보려고 했는데.. 변수 3개가 계속 다르게 움직인다는 것을 알았다. (심지어 변수 2개는 비례하고 나머지 한 변수는 반비례하는..)
그래서 변수 3개를 고려하면서 gain을 10보다 설계해야 했는데 이게 계산하기가 너무 힘들어서, 바로 프로그램 사용법부터 공부해봐야겠다고 생각했다.
[고려사항2 - 파일명, 파일 저장 경로 모두 영어로 해야 에러가 뜨지 않는다.]
문제의 회로대로 PSPICE에 배치했고, 시뮬레이션을 돌렸는데.. 계속 에러창이 떴다.
구글링을 해서 찾아보니, 파일명을 한글로 하면 에러가 뜬다고 해서 파일명을 영어로 바꿨다.
근데도 계속 똑같은 에러창이 떠서... 계속 구글링을 했더니 파일 위치 경로에 한글이 단 하나라도 들어가면 안 된다 해서..
결국 모든 파일을 영어로 바꿨다..ㅋㅋㅋㅋㅋㅋ
(왜 개발자 분들이 영어를 많이 쓰시나, 가끔씩 의문점이 있었는데 이렇게 해결이 될줄이야,,)
그랬더니 결국 에러창이 없어졌다!
[고려사항3- 반드시 회로의 끝에는 GND를 연결해야한다.]
하.. 이렇게 겨우겨우 다시 시뮬레이션을 돌려봤는데.... 아무것도 뜨지 않았다.ㅋㅋㅋㅋㅋ
이거 해결하는 데에 정말.. 한 4시간? 걸렸는데..
아무리 구글링을 해도 문제를 해결할 수 없었고, 포기해야하나.. 라는 생각이 드던 찰나에
프로젝트 팀원분께서 본인이 만든 회로 단면을 나에게 보내주셨다.
나랑 다 똑같았는데, 다른 점이 한 가지 있다면.. 그 분은 접지를 하셨고, 나는 하지 않았다는 것이었다.
그래서 그냥 마지막으로 지푸라기 잡는 심정으로 접지를 했더니..ㅋㅋㅋ 시뮬이 되었다!!!
시뮬이 돌아가지 않았던, 접지되지 않은 회로 | 시뮬이 돌아간, 접지된 회로! |
![]() |
![]() |
[고려사항4- VTC 그래프를 그릴 때에는 DC Sweep를 사용하자!]
ㅎ.. 이 그래프 그리는 데에도 우여곡절이 많았는데..
사실 위의 오른쪽 회로를 시뮬레이션 돌리면 VTC 그래프가 나오는 것이 아니라, X축 변수가 시간인 그래프가 나온다.
근데 나는 GAIN = VOUT/VIN 을 구하고 싶었기 때문에 X축과 Y축 모두 전압이 변수여야 했다.
... 그래서 또 구글링을 열심히 했다.
[Pspice] DC 해석, DC Sweep 해석하기 (여러 DC 전압을 한번에 시뮬레이션) (tistory.com)
[Pspice] DC 해석, DC Sweep 해석하기 (여러 DC 전압을 한번에 시뮬레이션)
아래와 같이 회로를 그리고 시뮬레이션을 진행. 아주 간단하게 어느 지점에서 DC Volatage가 인가되었을 때 어느정도 DC가 출력되는지 확인하는 방법. 10V짜리 DC가 인가될 때 (DC 전원소스의 파트명 :
ansan-survivor.tistory.com
이 분 글을 보고 X, Y축 모두 전압으로 바꾸려면 DC Sweep 라는 것을 사용해야 된다는 것을 알았다.
그래서 이 분 글대로 설정을 바꾼 후 오른쪽 회로를 시뮬돌렸더니, VTC 그래프는 다음과 같았다.
VTC 그래프 |
![]() |
(2) 이 CS Amp가 최대의 출력 swing voltage를 가질 수 있는 Vin의 Common-mode DC값을 찾고, 그때의 slope값을 그림에서 계산하고, VTC 그림 위에 표시하시오.
VTC 그래프 |
![]() |
해당 그래프를 보면 Vin 값이 0.1V~0.15V 일 때가 제일 linear 함을 알 수 있다.
따라서 Vin의 common-mode DC 값은 (0.1 + 0.15) / 2 = 0.125V 임을 알 수 있다.
더불어 Vin의 Common-mode DC값에서의 Av 값(slope값)은 약 -21임을 알 수 있다.
(3) 위의 (1)와 (2)에서 찾은 maximum gain을 가질 수 있는 Vin의 Common-mode DC값을 기준으로 +/-1mV 폭의 1MHz sine wave를 Vin으로 인가할 때, 출력 Vout의 동작 파형을 Pspice를 이용하여 그리시오. (.tran 시뮬레이션으로 x축 time 0ns부터 500ns까지 Vin, Vout plot 그리기)
위의 회로를 PSPICE에 구현하면 다음과 같다.
(4) 위의 (3) 에서 그린 transient simulation graph 상에서 Vin과 Vout의 swing voltage 크기를 직접적으로 비교하여 small-signal voltage gain 값을 구해보시오. 이 값이 B)에서 구한 slope과 유사한지 비교해보시오. 또한, 이 값이 이 CS Amp의 대략적인 gain 값 식은 -gm*Rd의 값과 유사한지 비교해 보시오.
PSPICE simulation의 Vin 및 Vout swing voltage 그래프는 다음과 같다.
Vin swing voltage |
![]() |
Vout swing voltage |
![]() |
Vin 그래프와 Vout 그래프를 비교해보면 Vin의 증가량이 +1mv 일 때, Vout의 증가량은 -20mv 임을 알 수 있다. 이를 통해 small-signal voltage gain이 약 -20임을 알 수 있다.
한편 회로에 있는 M1 MOSFET의 gm 값을 구하기 위한 변수들 값은 다음과 같다.
Id | un*cox | w | L |
0.625mA | 25uA/v^2 | 400um | 0.1um |
해당 값을 common-Source (CS) Amplifier gm 공식에 대입하면, M1의 gm = 0.01118 임을 알 수 있다.
따라서 해당 CS Amp의 gain = -gm*Rd = -22.3607 임을 알 수 있다.
(5) 위 (B)의 CS Amp에 대하여, (1)와 동일한 조건에서 (M1 size 동일)
Rs = 1k ohm이 추가된 경우의 VTC를 Pspice를 사용하여 그려보고, (1)의 경우와 비교해 보시오.
해당 회로의 VTC를 Simulation 하였을 시의 결과는 다음과 같다.
따라서 (1)의 경우와 비교하면, (5)에서의 전압이득이 (1)의 전압이득보다 약 13.5배 만큼 줄어든 것을 확인할 수 있다!
플젝 끝!
'교내 및 교외활동' 카테고리의 다른 글
[NVIDIA DLI 환경] Synthetic Data Generation for Training Computer Vision Models (**코드 복붙 이슈 해결 방법, Sketchfab 사용 방법**) (2) | 2024.08.01 |
---|---|
[ADsP 제40회 분석 및 공부 방법_1과목] (2) | 2024.02.28 |
[ADsP 40회 시험 1.5주 공부 후기] (2) | 2024.02.25 |
실험2_PSPICE를 이용하여 전자회로/통신의 기초 배우기 (0) | 2023.12.28 |
실험1_납땜 프로젝트: 동전이 투입되면 전화가 가능한 전화기 만들기 (0) | 2023.12.28 |