목요일, 1월 15, 2026

필기 "연구노트"를 작성하자.

필기 "연구노트"를 작성하자.

메모 앱, 문서 작업 소프트웨어, 화면 캡춰 등 모든 일상이 디지털 화한 요즘 수기로 기록하는 일이 드믄것 같습니다. 쉽게 메모를 남길 수 있다는 장점은 오히려 생각을 덜하게 되고 보관을 해두는 것으로 마치 내것 인양 여길 때도 있습니다. 내 컴퓨터 하드디스크 어딘가에 고이 저장해 두고는 다시 꺼내보지도 않고 정작 필요할 때 또 인터넷 검색을 합니다. 남의 정보는 그렇다 쳐도 내가 겪은 일들은 기록해 두도록 합시다. 실험하면서 겪은 각종 사건들, 사소한 실수들, 갑자기 떠오른 생각들 지나다가 발견한 물건들 등등, 하찮아 보이더라도 모든 것들을 기록해 둡니다. 나의 "연구 노트"는 내 인생의 중요한 자산이 될 것입니다.

저의 "연구노트"에 대한 경험을 풀어봅니다. 재작년(2023년)에 반도체를 무료로 제작해주는 정부사업인 "내 칩 제작 서비스"를 접하고 너무나 반가웠습니다. 하지만 설계를 하려면 도구(소프트웨어)가 필요했는데 "반도체"가 들어가면 뭐든 큰 비용이 듭니다. 학생들에게 "무료"로 칩을 제작해 준다지만 반도체 설계 도구라는 장벽을 넘기는 쉽지 않았습니다. 다행히 "오픈-소스" 운동이 활발해 설계 소프트웨어 역시 높은 완성도를 갖추고 있어서 예전의 경험을 바탕으로 표준 셀 디자인 킷을 어렵지 않게 만들 수 있었습니다. 몇번의 시행 착오를 격은 끝에 "실리콘 검증"을 마치고 상당히 안정된 디자인 킷을 갖추게 되었습니다.


20여년 전에 만들었던 IP 검증용 FPGA 에뮬레이션 보드. USB가 흔치 않던 시절이라 PCI 슬롯에 꼽는 방식이었다.

반도체 설계와 검증 도구에 관심을 가졌던 때가 Magic 이라는 레이아웃 도구를 처음 접했던 30년전 쯤으로 기억됩니다. 서울대학교 반도체 공동연구소에서 MPW 칩 제작을 해준다기에 레이아웃 그리는 소프트웨어를 찾다가 인터넷(1990년대의 끝자락!)을 통해 알게 되었습니다. 정확하지는 않은데 버클리의 어느 FTP 사이트에서 소스를 받아 썬 워크스테이션에서 컴파일해서 썼던 것으로 기억됩니다. 내인생의 첫 "내 칩"을 받아들었을 때의 감동이 아직도 생생하군요.

 
샘플 칩 제작의 추억[링크]

그후 하드웨어 언어(베릴로그와 VHDL)를 접하고 반도체 설계 방법론 탐구에 빠져 지냈습니다. HDL 시뮬레이터가 어찌나 신기했는지 모릅니다. 코뿔소 그림이 새겨진 VHDL 시뮬레이터를 지도교수님을 졸라서 연구실 프로젝트 비용을 떼서 구입 했는데 그게 인생의 전환점이 됐군요. 한 카피에 학생 할인 가격이 500만원으로 기억됩니다. 수십년이 지난 이야기 이지만 그때 몇가지 소프트웨어의 라이센스(프린터 포트에 꼽는 락 드라이버)를 디스 어셈블 크랙해서 나눠 쓰곤 했습니다. 그 때 시뮬레이션과 에뮬레이션 검증에 미쳐서 세월이 가는 줄도 몰랐습니다. "모래시계"라는 드라마의 열풍도 IMF 라는 국가부도의 위기도 몰랐으니까요. 실험실 귀신으로 지내던 시절이었습니다. 그때 날밤 새며 궁리했던 FPGA 에뮬레이션 검증 기법이 오늘의 "내 책상 위에 내 칩(MyChip-on-MyDesk)" 설계 방법론으로 되살아 나게 될 줄은 몰랐군요.

수십년이 지나 소위 "인생 2막"을 "반도체 설계"로 행복하게 맞이할 수 있던 토대는 바로 그 시절에 작성해 뒀던 "연구노트" 입니다. 그때 정성스레 작성한 전자문서(HWP)는 저 먼 우주로 날아갔지만 손으로 작성해 뒀던 공책은 내 책상 위에서 건재합니다. 2001년에 작성했던 노트를 2023년에 꺼내 "내 책상위의 반도체 설계실"을 구축했으니 그때 손으로 작성했던 "연구노트"가 여간 소중하지 않군요. "연구노트"는 이공계 인생의 일기이자 비망록 입니다. "연구노트" 작성으로 앞으로 펼쳐갈 인생 자산을 풍부히 하시기 바랍니다.


일요일, 1월 11, 2026

예전에는 "자율주행"을 뭐라고 했을까?

 자동차가 도로 주행을 허가 받은 것이 1894년이라고 합니다.

Germany’s Oldest Street-Legal Car | 1894 Benz Victoria | German Cars
https://www.youtube.com/watch?v=bQ4vB55z0RE

편리함을 맛본 인간은 백년이 안되서 게을러 졌죠. 운전마져 귀찮아지기 시작한 겁니다.

Early Driverless Car in 1971
https://www.youtube.com/watch?v=5ocvNxjN3dc

나혼자 도로를 온통 독차지 할 수 있다면 좋았겠지만, 도로로 나가면 별의별 미친놈들이 넘쳐나는 무법천지에 쌍욕이 저절로 튀어나옵니다. 그래도 도로에서 무사할 수 있는 것은 인간의 "지능" 덕분입니다. 별로 바빠보이지 않은 인간은 운전하기 싫음의 미련을 버리지 못했지요. 그렇다면 운전에 지능을 넣어볼까? 라는 생각을 진작부터 해왔습니다.

NavLab 1 (1986) : Carnegie Mellon : Robotics Institute History of Self-Driving Cars
https://www.youtube.com/watch?v=ntIczNQKfjQ

수십년이 지났지만 도로위의 자율주행의 희망은 지난할 뿐이었습니다.

Autonomous Vehicles at CMU Robotics Institute: 1984-2007
https://www.youtube.com/watch?v=N49_CmjbcQ8

History Channel 1998 : Driverless Car Technology Overview at Carnegie Mellon University
https://www.youtube.com/watch?v=2KMAAmkz9go

급기야 운전 로봇이 등장하긴 했는데 ....

Inside Zoox: The robot vehicle totally changing transportation | Hard Reset by Freethink
https://www.youtube.com/watch?v=tGgGdqr2aIc

운전이 별거 있나요. 상황을 인지하고 문제를 해결한 후 전진!

Sense, Solve, and Go: The Magic of the Waymo Driver
https://www.youtube.com/watch?v=hA_-MkU0Nfw

"자동차"는 원래 스스로 달리는 탈것 입니다. 여기에서 인간은 굳이 배제하고는 "자율주행"이라고 합니다. 이미 운전자 없는 "지하철"이 사고없이 지하철로를 누비고 있습니다. 정해진 선로위를 달리면서 말이지요. 그런데 이것은 그간 꿈꿔왔던 "자율 주행"은 아니잖아요?

-------------------------

아주 단순한 자율 주행(?) 로봇으로 "라인 트레이서" 또는 "Line Follower"는 해볼만 합니다. 알리상회에서 아날로그 키트를 팔고 있는데 CDS 센서, OpAmp 전압 비교기, 트랜지스터 모터 구동기로 구성된 간단한 회로를 가지고 있고 차대와 기어 모터 포함하여 단돈 3천원 입니다. 만들어 봤는데 꽤 쓸만 합니다.

https://www.youtube.com/watch?v=1R2xdOOmbDs

아이들 장난감 같지만 만들기에 그치지 않고 회로 분석을 해보면 많은 것들을 알 수 있습니다. 차대와 기계 부품은 그대로 사용하고 디지털 제어로 개조하면 재미 있을 겁니다. 재미있게 설명한 동영상이 있네요.

https://www.youtube.com/watch?v=QoNkpnpvEqc

https://www.youtube.com/watch?v=8Lj5ycrT9Fw

Line Follower 는 한때 우리나라에서도 마이크로 마우스와 함께 인기있는 종목중 하나 였었습니다. 해외에서는 여전히 인기가 있어 보입니다.

https://www.youtube.com/shorts/CGwT1-PukrA

제어 알고리즘, 자율주행 인공지능 등의 학습용으로 재미있을 듯 하네요.

---------------------------------------------------------------

Controlling Self Driving Cars
https://www.youtube.com/watch?v=4Y7zG48uHRo

PID vs. Other Control Methods: What's the Best Choice
https://www.youtube.com/watch?v=lRZ4NT5DRk8

---------------------------------------

"자율 주행"은 결국 장애물을 감지하고 이를 피해 구동계를 제어합니다. 여기에 얼마나 많은 자원이 필요할까요? 이 사람의 이야기를 들어봅시다. 단 두개의 신경세포 만으로 가능 하다고 설명 합니다. 

Building analogue BEAM robots. A complete introduction
https://youtu.be/ViUdwu6o3rc?si=8eIElbzpje2xPNmc

Biotechnology Ethology Analogy Morphology
https://en.wikipedia.org/wiki/BEAM_robotics

이런 모습을 염두에 뒀을까요?

Minority Report/Spider Robot
https://youtu.be/901lYbPmqu4?si=Ic-H2nWWkxeA3Kep

-------------------------------------

주행 알고리즘을 MCU에 구현하는 편이 효과적(실용적)이지만 제어 FSM과 간단한 학습을 전용 하드웨어로 만들어 "내 칩 MPW"로 제작해보는 과제도 흥미있을 것 같아서 궁리해 보는 중입니다. ^^

-----------------------------------

그러나 저러나... 꼭 전기 구동계 여야만 하는거야?

Electronics-Free Soft Legged Robot
https://youtu.be/bnT6BBkDYlc?si=-ZUPVTylKMOWKKKU

Combustion Powered Soft Walking Robot
https://youtu.be/KgFzI1hhMtw?si=g5jA-WjW9NAa71rI

---------------------------------------------------------------

공부하다가 심심할 때 남들은 뭐하는지 들여다 봅시다. 그러다 호기심이 돋아 따라하다 보면 재미있는 아이디어가 솟아날지도 몰라요.

"로봇 벌레" 그거 어따 쓸거야? (돈 되?) 분명 활용될 곳이 있어요. 지금은 호기심 충족으로도 충분해요.
https://youtu.be/H6q6pYZ9Fho?si=xuR9PwP_3DXQZ64m










수요일, 1월 07, 2026

"반도체 설계 도구들은 왜 '불편한' 명령줄(Command-Line Interface)에서 실행하나요?"

"왜 MyChip은 어색한 리눅스에서 실습하나요? win11이 익숙한데요."

심오한 질문을 질문을 주셨습니다. 이 질문은 아마 다음과 같은 뜻을 담았으리라 짐작되네요.

"반도체 설계 도구들은 왜 '불편한' 명령줄(Command-Line Interface)에서 실행하나요?"

응용 프로그램들이 그래픽 사용자 인터페이스(GUI, Graphic User Interface)체제를 갖추면 직관성이 높아 집니다. 한마디로 "척보면" 뭘할지 안다는 것입니다. 이는 사무 자동화 분야에 커다란 혁신이 되었고 컴퓨터 활용이 전문가에서 "누구나"로 옮겨가게 되었습니다. 화면에 보이는 "그림"이 컴퓨터 사용자가 원하는 최종 결과물이 됩니다. "화면에 보이는 것이 바로 당신이 갖게될 출력물"이라는 뜻으로 What You See is What You Get을 줄여서 WYSWYG(위지위그)라고 합니다. 이 GUI의 문제는 응용 프로그램의 수많은 기능들을 화면에 보이는 메뉴로 모두 나열하기 어렵다는 것입니다. 각종 기능들이 메뉴 항목의 어디에 숨어있는지 아는 것으로 "컴 퓨터 활용 능력자"의 평가 척도가 되어버립니다. 이는 문서의 작성 내용과는 무관한 '잔기술' 입니다. 정작 창작자는 없고 그저 베끼기 좋은 도구가 생겨버린 셈입니다. PCB 그리기나 레이아웃 도면 그리기도 위지위그 방식의 저작 도구입니다.

개발 도구로 IDE(Integrated Development Environment, 통합 환경)가 대세 입니다. 뭐가 통합되었다는 뜻일까요? 소프트웨어든 하드웨어를 막론하고 개발은 목적을 묘사하고 이를 물리적인 형태로 바꾸는 절차를 거칩니다. "묘사"는 컴퓨팅 언어로, "물리적"인 결과물은 묘사와 전혀 수준이 다른 2진 기계어 코드(소프트웨어) 또는 레이아웃 도면(반도체 하드웨어)입니다. 앞서 말한 "위지위그"와는 전혀 다른 결과물 얻기 입니다. 그 결과물을 얻는 과정은 여러 단계의 절차(이를 추상화 수준 낮추기라고 합니다)를 거치는데 이를 또다른 소프트웨어가 맞아서 해줍니다. 이들을 자동화 도구라고 부릅니다.

최종 목적물을 얻기까지 여러 자동화 도구들이 동원되고 각 도구마다 제각기 명령 체계를 가지고 있으며 옵션 또한 매우 광범위 합니다. 이들을 모두 통합된 환경에서 운영하려면 명령과 옵션들을 모두 메뉴로 만들고 단축키를 사용해야 하는 GUI로는 어렵습니다. GUI의 또다른 단점은 도구가 발전하면서 메뉴 항목이 사라지거나 새로운 항목이 생길 수 있습니다. 어느 메뉴를 눌러야 할지 어느 항목은 선택사항에서 디폴트로 바뀌었는지 일일이 메뉴들을 모두 찾아 들어가 확인하기는 어렵습니다. 제조기술이 급격히 발전하는 경우 이를 다루는 도구의 갱신 또한 빈번합니다. 소프트웨어 버젼이 바뀌었다고 사용법이 달라져서 곤란을 격은 경험이 있을 겁니다. 아마 반도체 분야처럼 도구 버젼을 많이 따지는 경우도 없을 것입니다.

(C, C++, Verilog 등) 컴퓨팅 언어로 묘사한 내용(행위, behavior)을 물리적 변환이 가능한 형식으로 바꾸고 이를 미리 준비된 라이브러리와 합쳐 최종 목적물을 만들어 냅니다. 전자는 컴파일러(Compiler) 또는 합성기(Synthesizer)라고 하고 후자를 링커(Linker) 또는 자동배치배선(Auto P&R)과 셀 병합(migration 또는 phanton cell merge)이라고 합니다. 반도체 설계에서 라이브러리는 '표준 셀(Standard Cell)'이 이에 해당 합니다. 통합 환경이라고 부르는 도구는 추상화 단계 낮추기에 사용되는 소프트웨어들을 체계적으로 관리해 줍니다. 통합 환경은 사용자의 편의를 도울 뿐이지 실제 목표물을 얻는데 직접적으로 기여하는 부분은 없습니다. 그래서 '환경'이라고 부르나 봅니다.

하드웨어 묘사 언어를 기반으로 하는 디지털 반도체 설계의 과정은 소프트웨어 개발에 근접할 만큼 상당부분 자동화 되어 있습니다. 다만 소프트웨어 개발 도구의 경우 기본 옵션으로도 결과를 얻을 수 있는 것과는 달리 하드웨어 설계에 동원되는 도구마다 명령이 많고 이에 따르는 옵션이 매우 중요합니다. 기본 옵션으로 결과를 내지 못하는 경우가 허다합니다. 이 다양한 처리 옵션들에 대하여 메뉴 누르는 절차를 일일이 기술하기도 어렵고 나중에 재현하려면 번잡하게 됩니다. 이는 설계 생산성을 매우 떨어뜨리는 요인입니다. 그래서 명령줄과 스크립트를 적극 활용 합니다. Makefile은 개발자들이 가장 널리 사용하는 스크립트로 이를 처리하는 유틸리티가 make 입니다. 아마 분야를 막론하고 개발자라면 필수적으로 사용합니다. MPW 로 "내 칩"를 만들어보기 위해 반도체 설계에 입문하려고 나선 지금, 이참에 한번 익혀두면 평생 잘한 일 중 하나로 꼽힐 것입니다. 기본 사용법은 어렵지 않습니다. 아래 링크의 문서를 참고하십시요.

"하드웨어 기술 언어의 코딩 스타일"[링크]




토요일, 12월 13, 2025

반도체 "양덕"이 부럽다.

"덕 중의 덕은 양덕"

그리 학구적인 표현은 아니지만 이 말이 부러운 이유가 있다. 자본주의가 팽배한 사회에 돈도 안되는 짓을 하는데 꺼리 낌이 없다는 것이 부럽다. 

자기집 지하실에 반도체 공정실을 꾸민이가 있다.

https://youtu.be/IS5ycm7VfXg?si=OlM9ETTbSOO_YQvR

어찌보면 이 미친짓을 보고 일면식도 없는 이들이 도와준다는 것이 부럽다. 지하실에 반도체 공정실을 꾸미도록 폐기된 장비를 보내주고 응원한단다. 화학물질, 웨이퍼 조각에서 고로, 와이어 본더, 전자 현미경까지...

이렇게 미칠 수 있는 그들의 "인프라"가 부럽다.

"반도체"가 흥하는 분위기를 타고 여기저기 대학에 수십억씩 들여 크린룸을 설치가 유행인가보다. 그 크린룸에서 행하는 교육이 어느 정도인지 짐작도 안간다. 저 반도체 "양덕"보다 실제적인 교육이 있길 바란다.




금요일, 10월 24, 2025

"반도체 설계 대전"의 수상작에서 미래가 보이지 않는다

"반도체 설계 대전"의 수상작에서 미래가 보이지 않는다

"대한민국 반도체 설계 대전"의 수상작품이 발표 되었다고 해서 찾아봤습니다.

https://www.ksia.or.kr/bbs/board.php?bo_table=notice&wr_id=3713&sfl=wr_subject&stx=%EC%84%A4%EA%B3%84%EB%8C%80%EC%A0%84&sop=and

대상이 무려 대통령상이고 이어서 국무총리상 등 격이 매우 높군요. 그런데 수상작품들을 보면 굉장히 긴 이름을 가지고 있습니다. 거창한 기술을, 일테면 "인공지능", "HBM" 등으로 시작해서 결국 그중 (극히) 일부분을 어찌 했다는 내용일 것으로 짐작되는 "긴 제목" 입니다(제가 과문해서 내용을 봐도 모르겠지만). 수탁과제 일부를 따서 작품으로 제출한 것 같습니다.  "교육"과 "연구"라고 하기 보다 과제에 따라 이리저리 몰린다는 인상을 가지게 됩니다. 기업의 애로기술 과제는 미시 영역을 다룰 텐데 학생들의 설계 대전에 어울리지 않다는 생각을 합니다.

설계 대전을 소개하는 문구를 보면, "시스템 반도체 분야 대학생.대학원생의 설계 능력 향상과 창의적 아이디어를 발굴"이라고 합니다.

수상작들이 이 취지에 맞지 않다는 인상은 그만 두더라도 대학에 들어와 공학을 처음 접하는 학생에게 이렇게 안목을 좁혀 놓으면 광활한 미래는 없을 겁니다. 공학교육이 이래서는 않될 것입니다.