회로설계 멘토 삼코치
@samcoach
수강생
5,137
수강평
489
강의 평점
5.0
이력 사항
現) 반도체 대기업 (CHIP 회로설계 4년차)
아날로그 IP / 디지털 시나리오 설계
A급 특허 출원
글로벌 외국 기업 엔지니어 기술 대응
前) 스타트업 인큐베이팅 업체 (MCU Firm-ware 설계)
前) 대기업 가전제품 업체 (All-in-one 정수기 생산 기술)
前) 중견기업 의료기기 업체 (CIS, DDI ASIC 설계)
CHIP 설계 취업/이직 충분히 도전할 수 있습니다.
저와 함께 CHIP 설계 취업/이직에 가까워지세요!
"반도체 아날로그/디지털 회로설계를 꿈꾸시나요?
대기업 S전자 현직자의 눈으로 기초부터 도와드립니다!"
반갑습니다! S전자에서 시스템반도체를 설계하고 있는 삼코치 입니다 :)
저는 스타트업에서부터 회로설계 직무에 도전하면서 많은 시행착오를 겪어왔습니다.
PCB 설계, F/W 설계, FPGA 설계, CHIP 설계를 구먹구구 식으로 경험했죠.
그런데 한 가지 아쉬움이 있었습니다.
'왜 회로설계 분야는 체계화된 실습 기회와 취업에 대한 정보가 적을까?'
반도체 공정, 프로그래밍 등의 분야는 콘텐츠가 많았지만, 회로설계는 정보가 적다보니 그저 '숨겨진 세상'이었습니다.
이 글을 읽는 회로설계 취준생분들 또한 저와 같은 답답한 심정을 느껴보셨을 겁니다.
그래서 현직자와 면담도 해보고, 교수님께 물어보고, IDEC 강의를 수강해보기도 하죠.
하지만 알들말듯 여전히 잘 모르는 경우가 대부분 입니다.
그.래.서! 제가 직접 취업까지 연결되는 체계화된 강의를 제작해 버렸습니다!
저는 [아날로그 회로-> 디지털 시스템 -> MCU 펌웨어 -> 드라이버 설계 -> 소프트웨어]를 모두 경험하면서,
'Top-down / Bottom-up'스킬을 통해 제품과 회로를 완벽히 설명해낼 수 있게 되었습니다.
그리고 인프런에서 실무적인 회로를 다루면서 '아날로그/디지털 회로'에 대해 저만의 직관적 해석 방법부터 Trade-off를 따지는 방법까지 모두 풀어드리려 합니다.
저와 함께 기초를 닦고, 실무 역량을 쌓아 자신만의 Chip 설계 Story를 만들어 가봅시다!
강의
클립
전체 3한 권으로 끝내는 SVA(System Verilog Assertion) 실무 핸드북
12개의 챕터 中 1챕터를 무료 공개합니다.→ 1챕터 다운받기(Click!)💻 취업 준비 + 현업에서 필요할 때마다 꺼내 쓰세요.왜 Assertion인가? RTL 검증의 현실반도체 회로설계를 공부하신 분들은 많습니다.SystemVerilog로 테스트벤치 작성, Ran
회로설계 멘토 삼코치
10월 15일

로드맵
전체 1수강평
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
- 회로설계 입문자를 위한 디지털, 아날로그 설계와 실무 Project
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
- 아날로그 회로설계 실무 : Analog IP 설계와 성능 개선하기
게시글
질문&답변
RJ45 library 누락
안녕하세요, 답변 남겨드립니다.확인해보면 RJ45 소자가 라이브러리에서 빠진 상태는 아닙니다. Mixed_signal.kicad_sym 내부에 해당 항목이 들어 있고, property "Value"가 "RJ45 LAN", footprint도 "CON10_P106_RJ45_TH_ST"로 정의되어 있어서 파일 자체 누락은 아닙니다.심볼 리스트에 안 뜨는 경우는 대체로 파일이 없는 문제가 아니라 KiCad가 그 파일을 현재 프로젝트에서 제대로 읽고 있지 못하는 경우가 많습니다. 실무에서도 이런 증상은 라이브러리 재다운로드보다 Symbol Library Table 쪽을 확인하면 5분 안에 정리되는 편이에요. Preferences -> Manage Symbol Libraries에서 Mixed_signal.kicad_sym가 Global 또는 Project 라이브러리에 실제 등록되어 있는지 먼저 보시고, 같은 nickname으로 예전 경로가 한 번 더 잡혀 있지는 않은지도 같이 확인해보시면 됩니다. 같은 이름 라이브러리가 2개 이상 걸려 있으면 새 파일을 받아도 계속 이전 파일을 바라보는 경우가 생각보다 자주 생깁니다.여기서 한 가지 더 보셔야 할 부분이 있습니다. KiCad 심볼 선택창에서 보이는 이름은 property "Value" 문자열이 아니라 symbol 정의 이름 기준으로 잡히는 경우가 많아서, 파일 안에 "RJ45 LAN"이 들어 있어도 검색어를 RJ45로 넣었을 때 바로 안 잡힐 수 있어요. 이럴 때는 Mixed_signal.kicad_sym 파일을 텍스트로 열어서 (symbol "심볼명") 부분의 실제 이름을 확인한 뒤 그 이름으로 검색해보시면 금방 찾습니다. 지금 보신 "RJ45 LAN"은 표시용 값일 가능성이 높고, 심볼명은 LAN_JACK, RJ45_xxx, Connector 계열처럼 다르게 들어가 있는 경우가 있습니다.그래도 목록에 반영이 안 되면 라이브러리를 삭제 후 다시 등록하고 KiCad를 한 번 재실행해보시는 게 좋습니다. mixed-signal 보드에서 RJ45 쪽은 단순 8핀 커넥터로 끝나는 경우보다 실드, LED, 탭 핀까지 포함돼서 10핀 이상으로 정의되는 경우가 많아서, 검색 범위를 RJ45 하나로만 보지 말고 LAN, Connector, Shielded Jack 쪽까지 넓혀서 보는 편이 안전하네요. 실제 PCB 단계에서는 심볼 유무보다 footprint 매칭 오류가 더 큰 리스크라서, 심볼을 찾은 뒤에는 pin count와 footprint "CON10_P106_RJ45_TH_ST"가 데이터시트의 실장홀 간격, 실드 탭 위치, LED 유무와 맞는지도 같이 보셔야 합니다. 여기서 1핀만 어긋나도 PHY TX/RX 페어가 뒤집혀서 디버깅 시간이 반나절 이상 날아가는 경우가 나옵니다.정리하면 이번 건은 RJ45 소자 누락이라기보다 라이브러리 등록 경로 또는 심볼명 검색 조건 문제로 보는 게 맞겠습니다.
- 0
- 2
- 13
질문&답변
Differential Amp의 4가지 종류
안녕하세요, 답변 남겨드립니다.지금 단계에서는 V_out의 일반화된 식을 끝까지 유도하려고 너무 붙잡고 계시지 않아도 됩니다. 오히려 그 부분을 지금 무리해서 파고들면 회로마다 붙는 가정이 달라서 더 헷갈리기 쉬워요. 차동증폭기는 겉으로는 비슷해 보여도 load가 저항인지, active load인지, single-ended로 뽑는지, differential로 뽑는지에 따라 식이 금방 달라집니다. 그래서 입문 단계에서는 “이 회로가 어떤 장단점을 갖는지”를 먼저 몸에 익히는 쪽이 훨씬 잘 남습니다.지금 시점에서 꼭 가져가셔야 하는 건 아주 단순합니다. 첫째, 입력이 조금 차이나면 출력이 어느 방향으로 움직이는지 볼 수 있어야 합니다. 둘째, gain이 왜 커지거나 작아지는지 감이 있어야 합니다. 셋째, 출력 스윙이 넓은 구조인지, headroom을 많이 먹는 구조인지 구분할 수 있어야 합니다. 넷째, 왜 어떤 구조는 저전압에 불리하고 어떤 구조는 고이득에 유리한지 설명할 수 있으면 충분합니다. 여기까지 되면 이미 입문 단계에서는 잘 따라오고 계신 겁니다.V_out 식은 처음부터 “완전한 정답 공식”으로 외우기보다, 작은 신호 관점에서 아주 거칠게 보는 정도면 충분해요. 예를 들면 “출력 = 입력차 x 이득”이라고 먼저 받아들이고, 그 이득이 대충 gm x R_out 형태로 결정된다고 생각하시면 됩니다. 즉 gm이 커지면 더 민감하게 증폭되고, 출력저항 R_out이 커지면 gain이 커진다, 이 정도 감각이 먼저예요. 실제 회로식이 복잡해지는 이유는 ro가 들어오고, active load가 들어오고, differential to single-ended 변환이 들어오기 때문이지, 본질이 완전히 다른 것은 아닙니다.실무에서도 신입분들이 처음부터 모든 구조의 V_out 폐형식을 손으로 다 유도하지는 않습니다. 먼저 보는 건 “이 구조를 왜 썼는가”입니다. 예를 들어 gain을 20 dB 더 끌어올리고 싶으면 active load나 cascode 계열을 생각하게 되고, 대신 출력 스윙은 줄어들 수 있겠네요. 반대로 저전압 1.2 V 근처에서 안정적으로 굴려야 하면 headroom이 부족해서 멋있는 구조가 오히려 못 쓰는 경우가 많아요. 이런 판단이 먼저 서야 나중에 식을 봐도 머리에 들어옵니다.공부 순서를 아주 쉽게 잡아보면, 지금은 각 차동증폭기마다 “입력은 어디로 들어가고, 출력은 어디서 나오고, 누가 전류를 나눠 가지며, load가 무엇인지” 이 네 가지만 바로 말할 수 있으면 됩니다. 그 다음 단계에서 differential output일 때는 v_od = A_d x v_id 정도로 보고, single-ended output이면 절반 계수나 mirror 효과가 붙을 수 있다는 정도만 익히시면 충분해요. 여기서부터는 강의 뒤쪽에서 current mirror, active load, output resistance를 배우면 식이 훨씬 자연스럽게 보이기 시작합니다.지금 억지로 복잡한 식을 다 외우는 것보다, 회로를 봤을 때 “아 이건 gain은 괜찮은데 swing이 아쉽겠네”, “이건 구조는 단순한데 저항 load라 면적이 좀 커지겠네”, “이건 offset이나 mismatch 영향을 더 조심해야겠네” 이런 말이 나오기 시작하면 훨씬 좋은 방향으로 공부하고 계신 거예요. 입문 단계에서는 그 정도가 맞고, 그 기반이 잡힌 뒤에 식으로 들어가야 덜 힘들고 오래 갑니다.지금은 각 회로의 V_out 정확한 유도식까지 붙잡기보다, 어떤 구조가 왜 gain이 크고 왜 출력 스윙이 줄고 왜 구현이 복잡해지는지를 이해하는 데 집중하시면 됩니다. V_out 식은 나중에 gm, ro, active load 개념이 익숙해진 뒤에 다시 보면 훨씬 덜 복잡하게 보입니다.
- 0
- 1
- 13
질문&답변
BGR설계, BJT CTAT 성분
안녕하세요, 답변 남겨드립니다.핵심은 CTAT 성분이 diode connection 자체에서 생기는 것이 아니라, BJT의 V_BE라는 물리량에서 생긴다는 점입니다. BJT가 정상적으로 켜져 있고 전류 밀도가 정해져 있으면 대체로 I_C = I_S exp(V_BE/V_T)로 볼 수 있어서, 정리하면 V_BE = V_T ln(I_C/I_S)가 됩니다. 온도가 올라가면 I_S가 빠르게 증가하므로 같은 전류 근처에서는 V_BE가 내려가고, 이 음의 기울기가 바로 CTAT입니다. 실무에서 25 C 부근 기준으로 dV_BE/dT는 대략 -1.5 mV/C에서 -2.2 mV/C 범위로 많이 봅니다. 그러니까 엄밀히 말하면 collector와 base를 꼭 묶어야만 CTAT가 되는 것은 아니고, 묶어두면 V_BE를 가장 단순하고 예측 가능하게 꺼내 쓰기 좋다는 쪽이 더 정확해요.diode connected를 먼저 배우는 이유는 구조가 아주 깔끔하기 때문입니다. base와 collector를 같은 노드로 묶으면 BJT가 사실상 2단자 소자처럼 동작해서, 외부에서 전류만 밀어 넣어도 그 노드 전압이 거의 바로 V_BE가 됩니다. 해석이 단순하고, 어떤 전압을 보고 있는지 헷갈릴 일이 적어요. 반대로 base에 다른 bias 전압을 걸면 그 회로가 실제로 쓰는 값은 base 전압 자체가 아니라 언제나 V_BE = V_B - V_E입니다. emitter가 GND에 고정되어 있으면 base 노드 전압이 곧 V_BE라서 CTAT처럼 보이지만, emitter가 다른 레벨에 걸려 있거나 중간에 source degeneration이나 level shifting이 끼면 base 노드 전압은 순수 CTAT가 아니라 여러 성분이 섞인 값이 됩니다. 여기서 실무자가 가장 많이 틀리는 부분이 바로 node voltage와 device voltage를 같은 것으로 생각하는 지점입니다.그래서 base에 별도 bias를 걸어도 CTAT 활용은 가능합니다. 다만 조건이 붙습니다. BJT가 꺼지지 않아야 하고, BC 접합 상태가 무너지지 않도록 동작영역을 잘 잡아야 하며, collector current나 current density가 온도와 공정에 대해 충분히 정의돼 있어야 합니다. op-amp 루프로 BJT 조건을 맞추는 bandgap들은 실제로 이런 방식도 많이 씁니다. 그런데 이 경우는 회로가 한 단계 더 예민해져요. 외부 bias 자체의 온도계수가 0.3 mV/C만 섞여도 원래 -1.8 mV/C 수준의 CTAT 기울기에서 거의 17%를 건드리는 셈이라 reference 오차가 금방 커집니다. TT에서는 멀쩡한데 SS/125 C에서 몇 mV씩 밀리거나, startup 조건에 따라 다른 operating point로 붙는 문제가 여기서 잘 나옵니다.diode-connected BJT의 강점은 단순하다는 말로는 조금 부족합니다. current-to-voltage 변환이 자연스럽고, operating point가 분명해서 시뮬레이션 수렴성이 좋고, PEX 이후에도 어느 노드가 CTAT 본체인지 추적하기 쉽습니다. matching 관점에서도 유리합니다. 같은 종류의 PNP 둘을 놓고 면적비를 N으로 두면 ΔV_BE = V_T * ln(N) 형태의 PTAT를 뽑기 쉬워서, CTAT인 V_BE와 PTAT인 ΔV_BE를 한 셀 안에서 같이 만들기 편합니다. 예를 들어 N = 8이면 300 K 부근에서 ΔV_BE가 대략 54 mV, N = 16이면 약 72 mV 정도라서 resistor 비율로 1.2 V 근처 reference를 잡는 출발점이 됩니다. 설계 리뷰 자리에서는 이런 구조가 설명도 빠르고, 문제가 생겼을 때 root cause를 찾는 시간도 짧아요. 일정이 빠듯한 프로젝트에서 이런 차이가 꽤 크게 작용합니다.다만 현실적으로는 diode-connected가 항상 정답은 아닙니다. CMOS 공정의 parasitic PNP는 beta가 5~20 수준으로 낮은 경우가 많아서 base current 오차를 무시하기 어렵고, V_BE 하나만으로도 0.65 V~0.8 V 정도 headroom을 쓰게 됩니다. 그래서 VDD가 1.2 V 이하로 내려가면 단순한 구조만으로는 margin이 빡빡해지고, 저전압 BGR이나 op-amp 보조 구조가 들어가는 이유가 생깁니다. 180 nm나 130 nm에서 VDD 1.8 V 이상, trim 1회 허용, TC 수십 ppm/C 수준 목표라면 diode-connected 기반이 일정과 안정성 면에서 꽤 좋은 선택입니다. 반대로 VDD 1.0 V, startup 수 us, line regulation 수 mV/V 이하, TC 20 ppm/C 이하까지 동시에 요구하면 구조가 훨씬 복잡해질 수밖에 없어요.정리해서 말씀드리면, CTAT는 diode-connected여서 생기는 것이 아니라 V_BE의 온도 특성에서 생깁니다. diode-connected는 그 V_BE를 가장 깨끗하고 재현성 있게 꺼내 쓰는 방법이라서 BGR 입문 회로에서 많이 쓰는 것이고요. base에 다른 bias를 연결해도 V_BE를 잘 정의할 수만 있으면 CTAT로 활용할 수는 있지만, 그때부터는 bias 자체의 온도계수, headroom, beta 오차, startup 경로까지 설계자가 같이 책임져야 해서 난도가 확 올라간다고 보시면 됩니다.
- 0
- 2
- 16
질문&답변
BGR 설계 질문
안녕하세요, 답변 남겨드립니다.지금 올려주신 구조는 전형적인 low-voltage BGR, 흔히 Banba 계열로 보는 게 맞고, 여기서는 VBG를 직접 VBE에 기대서 만드는 게 아니라 전류를 만든 뒤 R4에서 전압으로 바꾸는 방식이라서 설계 순서가 일반적인 1.2 V bandgap이랑 조금 다릅니다. 핵심은 X, Y 노드를 op-amp가 같게 만들고, 그 결과 R1에 걸리는 전압이 거의 ΔVBE가 되면서 PTAT current가 정해진다는 점입니다. 이상적으로 보면 I_PTAT ≈ ΔVBE/R1 이고, 출력은 대략 VBG ≈ R4*(VBE/R2 + ΔVBE/R1) 형태로 잡힙니다. 그래서 처음부터 VX를 “내가 원하는 값”으로 세게 정한다기보다, BJT가 자연스럽게 만드는 VBE 수준과 low-voltage headroom 안에서 허용되는 범위 안에 놓이게 보는 게 실무 감각에 더 가깝습니다.VX를 어디서 시작하느냐는 질문에는, 먼저 headroom으로 범위를 자르는 게 맞습니다. X 노드는 사실상 Q1의 VBE 또는 VEB 근처가 되니 room temperature 기준으로 0.6~0.75 V 근방에서 출발하는 경우가 많습니다. 예를 들어 VDD_min = 1.2 V이고 PMOS가 포화로 남으려면 VSD,p >= 0.15~0.25 V 정도는 남겨야 하고, op-amp 출력도 rail에 너무 붙으면 gm이 무너질 수 있어서 0.1~0.2 V 정도는 여유를 두는 편이 안전합니다. 그러면 내부 노드 VX를 0.6~0.7 V 근처로 보는 출발점이 꽤 자연스럽습니다. 전류도 같은 맥락으로 봐야 합니다. 너무 작게 잡아서 branch current가 1 uA 이하로 내려가면 leakage, op-amp offset, mirror mismatch, startup failure 영향이 급격히 커지고, 반대로 50~100 uA 이상으로 밀어 올리면 저전력 reference 치고는 소모가 커지고 R을 작게 써야 해서 TC trim과 noise trade-off가 더 빡빡해집니다. 실무에서는 저전력 BGR core라면 branch current를 대략 5~20 uA, precision 쪽이면 20~50 uA 정도에서 먼저 감을 잡고 시작하는 경우가 많아요. gm/id는 그다음 단계입니다. 전류를 먼저 정하고, 원하는 Vov와 inversion level에 맞춰 PMOS W/L을 뽑는 도구로 쓰는 게 맞습니다. 전류를 크게 잡으면 같은 gm/id에서 W가 커지는 건 맞는데, 그게 꼭 나쁜 건 아닙니다. 오히려 mismatch는 sqrt(WL)에 반비례해서 줄어드니까 면적과 기생용량, 안정도까지 같이 보고 판단해야 합니다.두 번째 질문에서 적어주신 KCL 방향은 맞습니다. X 노드에서는 base current를 무시하면 I3 = Ic1 + VX/R3 로 볼 수 있고, Y 쪽도 같은 식으로 KCL을 세울 수 있습니다. 다만 설계 순서를 “I3를 먼저 정하고 MOS를 잡는다” 또는 “R3를 먼저 정해서 남는 전류로 MOS를 잡는다”처럼 단선적으로 가져가면 중간에 많이 꼬입니다. 이 구조는 저항비와 branch current가 동시에 얽혀 있어서, 실무에서는 n을 먼저 잡고, 필요한 ΔVBE = Vt*ln(n)를 본 뒤, 원하는 PTAT current에 맞춰 R1 = ΔVBE/I_PTAT를 정하고, 그다음 VBG 식에 맞춰 R4/R1, R4/R2를 맞춰 나갑니다. 그 후에 X, Y 노드 KCL로 I3, I4를 계산하고, 마지막에 PMOS mirror를 sizing합니다. 예를 들어 n = 8이면 300 K 부근에서 ΔVBE가 약 54 mV 정도라서 I_PTAT를 10 uA로 놓으면 R1은 대략 5.4 kohm 근처에서 시작합니다. 그 상태에서 목표 VBG가 0.9 V 수준이면 R4, R2 비율을 맞춰 CTAT + PTAT 합이 0.9 V 근처로 오게 설계하고, 그때 계산된 I3, I4로 M3, M4, M5 크기를 정하는 쪽이 훨씬 덜 헤맵니다. 말씀하신 것처럼 R3 전류와 Q1 전류를 합쳐서 M3 전류를 보는 해석 자체는 맞지만, R3는 단순히 “남는 전류를 맞추는 보조 손잡이”가 아니라 branch balance와 온도계수에도 영향을 주는 변수라서 너무 뒤늦게 만지면 앞에서 맞춘 TC가 다시 틀어지는 경우가 많습니다.여기서 하나 더 보셔야 할 건 gm/id만으로 PMOS를 잡을 때 흔히 놓치는 부분입니다. reference core는 speed보다 정확도와 재현성이 더 중요해서, M3/M4는 단순히 전류만 복사하면 끝이 아니라 low VDD에서의 compliance, mirror mismatch, ro, 그리고 op-amp loop 안정도까지 같이 봐야 합니다. 예를 들어 Vov를 80~100 mV처럼 과하게 낮추면 저전압에서는 좋아 보여도 공정 corner에서 current mirror의 민감도가 커지고 기생 Cgs, Cgd가 늘어나서 A1과 엮인 루프 pole이 내려옵니다. 반대로 Vov를 200~250 mV 이상으로 키우면 VDD_min 근처에서 헤드룸이 부족해질 수 있어요. 그래서 low-voltage BGR에서는 PMOS mirror를 moderate inversion 쪽, 대략 gm/id 10~16 V^-1 근방에서 시작하고, Vov도 0.12~0.2 V 정도에서 스윕해 보면서 line regulation과 startup robustness를 같이 보는 편이 현실적입니다.startup 회로는 넣는 쪽으로 생각하시는 게 맞습니다. 이런 bandgap 계열은 거의 항상 “정상 동작점” 말고 “zero-current state”가 하나 더 존재합니다. 시뮬레이터에서는 initial condition이나 numerical noise 때문에 잘 켜지는 것처럼 보여도, 실제 실리콘에서는 느린 VDD ramp, cold corner, SS 공정, 누설 전류 편차 때문에 0 A 근처에 멈추는 경우가 나옵니다. 특히 low-voltage 구조는 headroom이 작아서 startup margin이 더 빡빡합니다. 그래서 startup transistor 하나로 mirror gate를 살짝 당기거나 X/Y 노드에 아주 작은 kick current를 넣고, 정상 bias가 형성된 뒤에는 그 경로가 완전히 꺼지게 만드는 게 보통입니다. startup 전류는 core branch의 1~10% 수준에서 시작해 보는 경우가 많고, 너무 세게 넣으면 오히려 overshoot나 정상상태 오차가 남습니다. 이건 transient 한 번만 보고 끝내면 안 되고, VDD ramp를 1 us, 100 us, 10 ms처럼 넓게 바꿔서 보고, TT/SS/FF와 -40~125 degC까지 같이 돌려봐야 안심할 수 있습니다. 양산 단계에서 이 부분 놓치면 “회로는 맞는데 특정 램프 조건에서 안 켜지는” 꽤 곤란한 불량으로 돌아옵니다.지금 단계에서 가장 깔끔한 출발은 VX를 0.65 V 안팎으로 보고, n을 8 또는 16 정도로 가정한 뒤, I_PTAT를 5~10 uA와 20 uA 두 케이스 정도로 나눠서 R1, R2, R4를 먼저 거칠게 계산해 보시는 겁니다. 그다음 X, Y KCL로 I3, I4를 산출하고 PMOS를 gm/id로 얹어 보시면, 어느 구간에서 면적이 커지고 어느 구간에서 headroom이 무너지는지 금방 감이 오실 거예요. 이 순서로 가면 “전류를 먼저 잡아야 하나, 저항을 먼저 잡아야 하나”가 훨씬 선명해집니다.
- 0
- 2
- 31
질문&답변
강의 만료 확인 요청
안녕하세요,문의주셔서 감사합니다.해당 강의는 무제한으로 바뀌었고, 공지를 한번 드리긴 했었는데기존 수강생 분들도 물론 무제한으로 바꿔드리고 있습니다!반영해드렸으니 확인해보시고 또 궁금한 점은 편히 문의주세요!
- 0
- 2
- 32
질문&답변
VINP,VINN 값
안녕하세요, 답변 남겨드립니다.실무에서 이런 single-stage amp나 OPAMP 테스트벤치를 잡을 때 VINP, VINN의 시작점은 보통 "둘 다 같은 공통모드 전압으로 먼저 맞춘 뒤, 그 위에 아주 작은 differential voltage를 얹는 방식"으로 갑니다. 예를 들어 VDD = 1.8 V 환경이면 입력 공통모드는 대개 중간 근처인 0.9 V 전후에서 시작하는 경우가 많고, 첫 확인은 VINP = 0.9 V, VINN = 0.9 V처럼 동일하게 둔 다음, AC gain이나 small-signal 응답을 볼 때는 AC magnitude를 한쪽만 1로 주거나, transient/DC sweep에서는 VINP = 0.9005 V, VINN = 0.8995 V처럼 1 mV 정도의 차동 입력을 줘서 Av = Vout / (VINP - VINN) 형태로 확인합니다. 이 접근을 쓰는 이유는 입력쌍이 saturation 영역에서 정상 바이어스되는지 먼저 확보해야 gm*ro 이득이 제대로 나오기 때문입니다.질문에 적어주신 "두개 초기"라는 표현을 보면 아마 VINP, VINN을 처음 둘 다 몇 V로 놓아야 하냐는 뜻으로 보이는데, 그 경우에는 무작정 0 V와 1.8 V처럼 벌려놓는 것보다 두 입력을 같은 값으로 시작하는 게 맞습니다. 특히 high-gain 개선 단계에서는 gain이 올라갈수록 출력 DC operating point가 한쪽 rail로 붙기 쉬워서, 입력 공통모드를 잘못 주면 회로 성능이 나빠진 게 아니라 그냥 바이어스가 틀어진 상태로 보일 수 있어요. 현업에서도 처음엔 differential input을 0 V로 두고, 즉 VINP = VINN으로 맞춘 뒤 OP를 확인하고, 그 다음 0.5 mV, 1 mV, 5 mV 정도로 차동 입력을 늘려가며 선형 구간을 확인합니다. 보통 Vdiff가 10 mV를 넘어가면 single-stage 작은 증폭기에서는 이미 large-signal 영향이 보이기 시작해서 "순수 gain"보다 왜곡이나 headroom 부족이 먼저 드러나는 경우가 많습니다.그래서 지금 바로 실습에 넣어보실 값으로는, 공급전압이 1.8 V라면 VINP = 0.9 V, VINN = 0.9 V로 먼저 두시고, gain 측정용으로는 VINP = 0.9005 V, VINN = 0.8995 V 정도부터 시작해보시면 됩니다. 공급전압이 3.3 V라면 같은 논리로 1.65 V 근처에서 시작하시면 되고요. 대신 이 값은 "정답"이라기보다 입력쌍의 공통모드 범위 ICMR 안에 들어가도록 잡는 출발점입니다. 만약 tail current source나 active load 구조 때문에 입력 NMOS/PMOS 쌍의 여유 전압이 부족하면, 중간전압이 아니라 0.7 V ~ 1.0 V 또는 1.1 V ~ 1.3 V처럼 살짝 이동해야 할 수도 있습니다.실무 관점에서 더 중요한 건 숫자 하나보다 검증 순서입니다. 먼저 VINP = VINN에서 모든 트랜지스터가 saturation인지 보고, 출력 노드가 VDD/2 근처에서 너무 멀지 않은지 확인한 뒤, 그 다음에 아주 작은 differential input을 넣어 gain을 재야 합니다. 이 순서를 건너뛰면 gain을 높이려고 W/L만 키웠는데 실제로는 ro가 아니라 output swing 문제, 미러 headroom 문제, 또는 꼬리전류 source compliance 문제로 실패하는 경우가 많아요. 특히 180 nm 같은 비교적 큰 공정에서는 gain 40 dB에서 55 dB 이상으로 올리려 할 때 cascode 추가나 L 증대가 흔한 선택인데, 그러면 입력 공통모드 허용 범위가 100 mV ~ 300 mV 정도 줄어드는 식으로 부작용이 바로 따라옵니다. 이런 부분 때문에 VINP, VINN 초기값은 단순 입력값이 아니라 바이어스 성립 여부를 가르는 조건이라고 보시면 됩니다.
- 0
- 2
- 31
질문&답변
JTAG 통신 질문
안녕하세요, 답변 남겨드립니다.질문 주신 부분은 회로도에서 붙인 Global Label의 의미와, MCU가 실제로 지원하는 JTAG/SWD 전용 핀을 분리해서 보시면 훨씬 깔끔하게 이해됩니다. 제가 강의에서 PB12, PB13, PB14, PB0에 Global Label을 붙인 것은 그 핀들이 원래 JTAG 전용 핀이라서 선택한 것이 아니라, F103과 F407 사이에서 특정 신호를 연결해 설명하기 위한 예시로 사용한 것입니다. 즉, Global Label은 같은 이름의 net을 서로 연결해 주는 회로도 표기이고, 그 이름을 TCLK나 TMS처럼 붙였다고 해서 해당 GPIO가 자동으로 JTAG 전용 기능을 가지는 것은 아닙니다.STM32F103에서 실제 디버그 포트로 사용하는 SWJ 계열 핀은 정해져 있습니다. 그래서 “정식 JTAG 또는 SWD 디버깅 포트”를 설계하는 상황이라면, 그 핀들은 임의로 PB12, PB13, PB14, PB0처럼 바꿔서 사용할 수 없습니다. 반대로 제가 강의에서 보여드린 부분처럼 MCU 간에 일반 신호를 주고받기 위한 용도라면, 반드시 특정 포트를 고집해야 하는 것은 아니고, 현재 설계에서 충돌이 없는 spare GPIO를 선택하시면 됩니다. 다만 여기서도 정말 아무 핀이나 고르면 되는 것은 아니고, 부트 설정에 걸린 핀이나 크리스털, 디버그 전용 핀, 이미 다른 주변장치와 강하게 엮인 핀은 피해서 잡는 것이 실무적으로 맞습니다.질문하신 “왜 하필 PB12, PB13, PB14, PB0인가”에 대해서는, 그 핀들만이 가능한 필연적인 이유가 있었다기보다 강의 흐름상 설명하기 편하고, 해당 예제 회로에서 사용 충돌이 적은 GPIO라서 선택한 것으로 이해하시면 됩니다. 실제 프로젝트에서는 보드 전체 pin assignment를 보고 남는 GPIO를 고르게 되고, 이때는 기능 충돌, 향후 펌웨어 확장 가능성, 라우팅 난이도, 주변 노이즈 영향까지 같이 봐야 합니다. mixed-signal 보드에서는 이런 선택이 생각보다 중요해서, 디지털 제어선 하나를 어디에 두느냐에 따라 ADC 근처로 불필요한 스위칭 노이즈가 들어오기도 합니다.그리고 JTAG 포트가 원래 TCK, TMS, TDI, TDO, TRST까지 5개 신호를 쓴다고 알고 계신 부분은 맞습니다. 다만 STM32 계열 보드 실무에서는 full JTAG 5선을 항상 다 쓰는 경우보다, SWD 방식으로 단순화해서 SWDIO, SWCLK, 그리고 필요하면 NRST 정도만 빼는 경우가 훨씬 많습니다. 그래서 강의에서 3개의 Global Label만 사용한 이유도, “표준 JTAG 5선 전체를 구현한다”는 의도라기보다, 필요한 신호만 연결하는 구조를 보여드리기 위한 맥락으로 보시면 됩니다. 즉, 그 장면을 full JTAG 표준 예제로 이해하시면 조금 헷갈릴 수 있고, 실제로는 두 MCU 사이 연결 또는 최소한의 디버그/제어 신호 연결 관점에서 받아들이시는 편이 맞습니다.여기서 중요한 판단 기준은 딱 하나입니다. 정말 외부 디버거를 붙여 MCU를 디버깅하려는 목적이면 MCU에 정해진 디버그 핀을 따라야 하고, 단순히 MCU와 MCU 사이에서 특정 제어 신호를 넘기려는 목적이면 일반 GPIO에 원하는 net label을 붙여 연결해도 됩니다. 강의에서 보신 PB12, PB13, PB14, PB0은 후자에 가까운 예시라고 이해하시면 자연스럽습니다. 이름이 TCLK, TMS, TRST처럼 보이더라도, 그것이 곧바로 “이 핀들이 JTAG 전용 핀이다”라는 의미는 아니라는 점만 정확히 잡아두시면 이후에 회로를 보실 때 훨씬 덜 헷갈리실 거예요.
- 0
- 1
- 44
질문&답변
LTSpice log값에서 gm 안나옴. (해결하였습니다)
안녕하세요, 해결하셨군요!해당 내용은 강의 FAQ에도 작성되어있으니 한번 더 확인해보셔도 좋을것 같습니다!문의 감사합니다!
- 0
- 2
- 40
질문&답변
bgr 설계시 opamp
안녕하세요, 답변 남겨드립니다.네, opamp를 먼저 standalone으로 설계한 뒤 symbol화해서 BGR top에 넣는 방식은 현업에서도 가장 일반적으로 씁니다. 오히려 그렇게 해야 opamp 단품 성능과 BGR loop 안에서의 시스템 성능을 분리해서 볼 수 있어서 디버깅이 훨씬 빨라져요. 커리큘럼 자체도 BGR 설계와 AMP 설계를 분리해서 다루고 있어서, opamp를 별도 블록으로 보고 계층적으로 조립해보는 접근은 자연스럽습니다.다만 여기서 많이 실수하는 지점이 하나 있어요. “동작하는 opamp”와 “BGR 안에서 제대로 쓰이는 opamp”는 다릅니다. BGR 내부 입력 common-mode는 보통 Vbe 근처라서 0.6 V ~ 0.9 V 근방에 걸리는 경우가 많고, 출력은 mirror gate나 bias node를 충분히 밀고 당겨야 해서 swing 여유가 생각보다 빡빡합니다. 그래서 standalone opamp가 AC gain 70 dB 이상, PM 60 deg 이상으로 예쁘게 나와도, BGR 안에 넣으면 입력 CM range 부족이나 출력 swing 부족 때문에 저온 SS corner에서 아예 수렴이 꼬이거나 startup 실패가 납니다. 설계 순서는 opamp 단품 검증 후 symbol화까지는 맞는데, 그 다음에는 반드시 BGR 내부 노드 기준으로 다시 DC operating point, loop stability, startup, line regulation, PSRR까지 재검증해야 합니다.offset은 보통 생각보다 훨씬 직접적으로 Vref 오차로 들어옵니다. 아주 단순하게 보면 opamp가 원래 강제로 맞춰야 할 두 노드를 0 V 차이가 아니라 Vos만큼 차이 나게 만드는 셈이어서, PTAT current가 Iptat = (DeltaVbe + Vos)/R처럼 바뀝니다. 그러면 Vref는 대략 Vref = Vbe + K*(DeltaVbe + Vos) 형태가 되고, 결국 DeltaVref ~= K*Vos로 보시면 감이 빨라요. 예를 들어 BGR의 PTAT scaling factor K가 8~12 수준이면 opamp input-referred offset이 1 mV만 있어도 Vref 오차가 8~12 mV까지 바로 들어올 수 있습니다. 1.2 V reference 기준으로 보면 약 0.67%~1.0%라서, trim 없는 구조에서는 절대 가볍게 볼 수준이 아니에요.그래서 BGR용 opamp는 “일반 purpose opamp”처럼 만들기보다 “low-offset error amplifier”에 가깝게 잡는 편이 맞습니다. 실무에서는 open-loop gain보다 먼저 offset, input pair matching, CM range, output swing, startup interaction을 봅니다. gain은 60 dB 이상이면 기본은 되지만, precision 쪽으로 가면 70~80 dB 이상을 선호하는 경우가 많고, offset은 pre-layout에서 0.5 mV 이하로 눌러놓고 Monte Carlo mismatch까지 봐서 3sigma 기준 몇 mV가 Vref에 반영되는지 확인합니다. 특히 Vos temp drift가 5 uV/degC만 되어도 K=10이면 Vref drift contribution이 50 uV/degC가 되니까, 1.2 V 기준 약 42 ppm/degC가 추가됩니다. 온도계수 20 ppm/degC대 목표를 잡는 구조라면 이게 치명적일 수 있어요.offset 보완은 보통 순서가 있습니다. 처음부터 chopper나 auto-zero를 떠올리기보다, 먼저 input pair와 active load의 mismatch를 줄이는 쪽이 훨씬 현실적입니다. 입력쌍 면적을 4배 키우면 랜덤 mismatch sigma는 대략 1/2 수준으로 줄어드는 방향이라서, 면적 몇 천 um^2 늘리는 대가로 수 mV 오차를 잡는 경우가 많아요. 여기에 L을 조금 늘려 1/f noise와 mismatch를 동시에 완화하고, 좌우 배선 저항과 contact 수를 맞춰 systematic offset까지 줄여야 합니다. BGR은 회로도만 대칭이라고 끝나는 게 아니라, 라우팅 기생과 IR drop이 한쪽에만 1~2 ohm 생겨도 미세한 전류 불균형이 offset처럼 보일 수 있어서 layout 영향이 꽤 큽니다.그 다음 카드가 trim입니다. 양산까지 생각하면 이게 제일 현실적이에요. resistor ratio trim이나 PTAT/CTAT current trim을 넣어서 초기 정확도를 보정하는 방식이 보편적입니다. 예를 들어 untrimmed 오차가 ±15 mV 정도 예상되면 trim range를 ±20 mV 정도 확보하고, 6 bit trim이면 step이 대략 40 mV/64 = 0.625 mV 수준이라서 꽤 쓸 만합니다. 반대로 trim 없이 회로만으로 0.1%급 정확도를 만들겠다고 하면, 공정 mismatch와 패키지 스트레스까지 고려했을 때 개발 일정이 급격히 늘어나는 경우가 많아요. 실무에서는 성능과 일정이 충돌하면, low-offset 설계 + modest trim으로 가는 판단을 자주 합니다.chopper나 auto-zero는 분명 offset 저감 효과가 좋지만, BGR에서는 늘 정답은 아닙니다. clock이 추가되면서 ripple, spur, charge injection, startup interaction이 생기고, always-on bias block에 디지털 클록을 넣는 순간 노이즈 경로가 하나 더 열립니다. 저전력 PMIC나 일반 SoC housekeeping BGR에서는 오히려 구조 단순화와 trim이 더 나은 선택인 경우가 많아요. 정말 초정밀 reference가 필요해서 initial accuracy와 low-frequency drift를 아주 강하게 눌러야 할 때만 검토하는 편이 안전합니다.개인적으로는 opamp를 BGR에 넣을 때 먼저 “offset 민감도”를 숫자로 뽑아보시는 걸 권합니다. 시뮬레이션에서 opamp 입력 한쪽에 작은 dc source를 직렬로 넣고 Vos = -2 mV, -1 mV, 0, +1 mV, +2 mV로 sweep해 보세요. 여기서 dVref/dVos가 몇 V/V인지 바로 나옵니다. 이 값이 9 V/V인지 15 V/V인지에 따라 설계 방향이 완전히 달라집니다. 10 V/V 이상이면 low-offset layout과 trim 없이 밀어붙이기 어렵고, 3~5 V/V 수준이면 구조적으로 offset에 덜 민감한 편이라 훨씬 편해집니다. 이걸 먼저 알아야 opamp offset spec을 200 uV로 잡을지 1 mV로 잡을지 감이 생겨요.그리고 BGR용 opamp는 안정도도 일반 증폭기와 보는 포인트가 조금 다릅니다. BGR loop 안에는 저항, BJT 또는 parasitic PNP, current mirror, startup branch가 다 얽혀 있어서, 단품 opamp PM이 70 deg여도 top-level loop PM이 40 deg 아래로 떨어지는 경우가 있습니다. 특히 post-layout에서 high-impedance bias node에 100 fF ~ 500 fF만 더 얹혀도 pole 위치가 크게 움직입니다. 그래서 symbol화 후에는 opamp를 믿지 말고, BGR top에서 loop break 걸어서 다시 gain/phase를 보는 게 맞아요.한 줄로 정리하면, opamp를 설계해서 symbol로 넣는 건 맞는 방향이고, offset 보완은 “저오프셋 구조 + matching 강화 + layout 대칭 + trim” 순서로 푸는 게 가장 실무적입니다. chopper는 마지막 카드에 가깝고, 먼저 해야 할 일은 BGR 구조에서 DeltaVref ~= K*Vos가 몇 배인지 뽑아보는 것입니다. 그 숫자 하나만 잡혀도 지금 opamp를 계속 써도 되는지, 입력쌍을 키워야 하는지, trim을 넣어야 하는지가 바로 보일 거예요.
- 0
- 2
- 34
질문&답변
AI 실무활용가이드 PDF 비밀번호
안녕하세요, 답변 남겨드립니다.해당 비밀번호는 해당 챕터를 클릭하시면 왼쪽 화면에 있습니다.이 답변에서 말씀을 드리게 되면 비밀번호가 노출되기 때문에위와 같이 직접 확인 부탁드리는 점 양해 부탁드립니다. 문의 감사합니다!
- 0
- 1
- 35






