All Posts
에 맞는 글이 없습니다.
조건 지우기신경망 기초: 퍼셉트론에서 다층 신경망까지
AI Note 1편. 뉴런 하나의 가중합과 활성화부터, 퍼셉트론이 XOR을 못 푸는 이유와 층을 쌓아 푸는 방법, softmax·교차 엔트로피 손실, 학습률에 따른 경사 하강까지 직접 계산한 숫자 예제로 따라간다.
역전파: 연쇄 법칙으로 그래디언트를 구하고 NumPy로 MNIST 학습하기
AI Note 2편. 연쇄 법칙과 계산 그래프로 역전파를 숫자 예제부터 따라가고, 2층 신경망의 그래디언트를 행렬로 유도한 뒤 NumPy로 직접 구현해 MNIST 97.7%를 얻는다. 미니배치가 빠른 이유도 측정해 본다.
분산 환경에서의 연합 학습: FedProx와 SCAFFOLD 알고리즘 비교
Non-IID 데이터 환경에서 FedProx와 SCAFFOLD 연합 학습 알고리즘의 성능을 비교 분석했다. AG News 텍스트 분류 데이터셋과 GRU 모델을 사용하여 실험을 수행하고, 각 알고리즘의 수렴 특성을 분석했다.
지식 그래프 기반 노드 분류: GCN을 활용한 NELL 데이터셋 분석
NELL 지식 그래프 데이터셋에서 GCN(Graph Convolutional Network)을 활용하여 노드 분류를 수행했다. PyTorch Geometric으로 모델을 구현하고, 65,755개 노드와 186개 클래스에 대해 97.86%의 테스트 정확도를 달성했다.
인간-로봇 상호작용 기반 Guessing Game 시스템 구현
YOLO 객체 탐지와 VLM(Vision-Language Model)을 결합한 인간-로봇 상호작용 기반 Guessing Game 시스템을 개발했다. 로봇 팔이 물체를 가리키고, 사용자가 추측하는 게임을 구현했다.
VLSI 배선 최적화를 위한 Rectilinear Steiner Tree 알고리즘 설계
VLSI 설계의 배선 최적화를 위한 Rectilinear Steiner Minimum Tree(RSMT) 알고리즘을 Dijkstra 기반으로 구현했다. Hanan Grid를 활용한 Steiner 후보점 선정과 반복적 최적화를 통해 배선 길이를 최소화했다.
연구실 홈페이지 개발: WordPress 기반 학술 웹사이트 구축
연세대학교 Intelligent Systems Lab 연구실 홈페이지를 WordPress 기반으로 개발했다. 연구 분야 소개, 구성원 관리, 출판물 아카이빙, 뉴스/갤러리 기능을 구현했다.
개인 기술 블로그 개발: Django 기반 풀스택 웹 애플리케이션
Django와 순수 JavaScript/CSS로 개인 기술 블로그를 개발했다. 마크다운 기반 글 작성, 계층적 카테고리, AI 기능 연동(Gemini), SEO 최적화 등의 기능을 직접 구현했다.
심층 강화학습 알고리즘 구현: DQN, Double DQN, PER 비교 분석
DQN, Double DQN, PER 세 가지 강화학습 알고리즘을 CartPole, Acrobot, MountainCar 환경에서 비교 실험하고 각 알고리즘의 특성과 한계를 분석한다.
ARM 임베디드 시스템 입문: ARM과 Thumb 명령어 집합 비교
ARM 임베디드 시스템 입문 노트. 임베디드 시스템의 정의와 ARM이 쓰이는 이유, ARMv4부터 도입된 16비트 Thumb 명령어와 32비트 ARM 명령어의 데이터 크기·특성 비교를 정리했다.
반도체 설계 방법론 비교: Full-Custom, Standard-Cell, PLD
반도체 회로 설계 공정과 SoC 설계 방법론을 정리한 노트. 사양부터 레이아웃, 검증, 제조까지의 단계와 Full-Custom·Standard-Cell·PLD 방식 비교, 내부·외부 IP와 Hard·Soft IP 통합을 다룬다.
SoC 설계 프레임워크와 Design Productivity Gap
SoC 설계 흐름을 정리한 노트. 공정 발전을 설계 생산성이 따라가지 못하는 Design Productivity Gap과 해법(추상화, EDA 자동화, IP 재사용), ARM 기반 SoC 예, SoC·MCU·CPU 비교, Apple SoC와 다이 크기를 다룬다.
프로세서와 코어의 차이: 명령어 처리 단계와 추상화 계층
프로세서의 개념과 설계를 정리한 노트. 명령어 처리 단계, 고급 언어에서 기계어까지의 추상화 계층, 코어와 프로세서의 차이, 프로세서 설계 흐름, ARM Cortex 계열, 설계 트레이드오프와 ADD 명령어 실행 예를 다룬다.
ARM Cortex-M0 구조: 레지스터 세트, 동작 모드, 메모리 맵
초저전력 MCU용 ARMv6-M 코어인 Cortex-M0를 정리한 노트. 특징과 구조, 레지스터 세트, 동작 모드, 메모리 맵, 예외와 인터럽트, Thumb 명령어, 3단 파이프라인, SysTick, Cortex-M3·M4와의 비교를 다룬다.
ARM Thumb 명령어 집합 분류: 데이터 처리 명령어 정리
Cortex-M0의 Thumb 명령어 집합을 종류별로 정리한 노트. 레지스터·즉시값·논리·시프트·곱셈 데이터 처리 명령어, 기본·오프셋·다중·PC 상대 로드와 스토어, 분기 명령어의 문법과 인코딩을 다룬다.
AMBA 3 AHB-Lite 버스 구조: 신호 설명과 트랜잭션 동작
Cortex-M0·M3의 표준 시스템 버스인 AMBA 3 AHB-Lite를 정리한 노트. 단일 마스터 구조, 마스터·슬레이브 신호, 파이프라인 트랜잭션과 대기 상태, 버스트 전송과 HTRANS, 주소 디코드, AHB-APB 브리지를 다룬다.
Cortex-M NVIC 인터럽트 처리: 벡터 테이블과 예외 우선순위
Cortex-M의 인터럽트 처리를 정리한 노트. 인터럽트와 예외의 차이, NVIC의 벡터·중첩 인터럽트, 벡터 테이블과 처리 순서, 예외 우선순위와 선점, Tail-Chaining·Late Arrival, PRIMASK·FAULTMASK·BASEPRI 마스킹을 다룬다.
C 언어 SoC 프로그래밍: 메모리 맵 I/O 레지스터 제어
C 언어로 SoC를 프로그래밍하는 방법을 정리한 노트. 메모리 맵 I/O와 volatile, 구조체 기반 레지스터 접근, 비트 설정·해제·토글·검사, 다중 비트 필드, 시작 시퀀스, 링커 스크립트, CMSIS와 인터럽트 핸들러를 다룬다.
CMOS 트랜지스터 동작 원리: PN 접합부터 nMOS/pMOS까지
CMOS 기초를 정리한 노트. IC와 VLSI, 실리콘과 PN 접합, nMOS·pMOS 트랜지스터 동작과 스위치 모델, CMOS 인버터와 NAND·NOR 같은 복합 게이트, CMOS가 전력을 아끼는 원리와 공정 단면을 다룬다.
디지털 가산기 설계: 반가산기·전가산기와 Ripple Carry Adder 지연
디지털 가산기 구조를 정리한 노트. 반가산기·전가산기와 Propagate·Generate, 트랜지스터 수준 설계, Ripple Carry Adder의 지연부터 Carry Lookahead, Carry Skip·Select, Brent-Kung·Kogge-Stone 가산기까지 다룬다.
데이터패스 연산 유닛: 배럴 시프터, 비교기, 곱셈기 설계
프로세서 데이터패스의 연산 유닛을 정리한 노트. 배럴 시프터, 동등·크기 비교기, 배열 곱셈기와 Booth 인코딩, Wallace·Dadda 트리, 복원·비복원 나눗셈기의 구조와 면적·지연 특성을 다룬다.
크로스바 버스 구조: 공유 버스에서 Full Matrix까지 버스 아키텍처 진화
여러 마스터와 슬레이브를 잇는 크로스바 버스를 정리한 노트. 공유 버스에서 계층 버스, Full Matrix로의 발전, PL301 구조와 중재 방식, 파이프라인·버스트 전송, QoS, NoC 확장과 클럭 도메인 교차를 다룬다.
AMBA APB 프로토콜 분석: 신호 구성과 Read/Write 전송 타이밍
AMBA 3 APB 프로토콜을 정리한 노트. 저속 주변장치용 버스의 특징과 신호, 대기 상태 유무에 따른 읽기·쓰기 전송 타이밍, APB 슬레이브 상태 기계, AHB-APB 브리지, APB와 AHB 비교를 다룬다.
컴퓨터 구조 기초: ISA와 추상화 계층, 성능 평가 방법론
컴퓨터 구조 수업 도입부를 정리한 노트. 추상 자료형(ADT)과 스택 예시, 명령어 집합 구조(ISA), Hennessy와 Patterson의 엔지니어링 방법론과 두 가지 황금 규칙, 성능 평가 방법과 설계 기법을 다룬다.
파이프라이닝 원리와 해저드: 5-stage MIPS 파이프라인 분석
파이프라이닝 원리를 5단 MIPS 파이프라인으로 정리한 노트. 순차 실행과의 성능 비교, 구조·데이터·제어 해저드와 스톨·버블, 로드-사용 해저드, CPI 계산 예, 슈퍼파이프라인과 슈퍼스칼라를 다룬다.
메모리 계층 구조와 캐시 동작 원리: Memory Wall과 캐시 설계 4대 질문
메모리 계층과 캐시를 정리한 노트. Memory Wall과 시간·공간 지역성, 계층 용어, 캐시 설계의 네 가지 질문(배치·식별·교체·쓰기), 직접 사상 캐시 예제, 블록 크기와 미스율 관계를 다룬다.
가상 메모리 동작 원리: 페이징과 가상주소-물리주소 변환
가상 메모리 동작 원리를 정리한 노트. 페이지 단위로 가상 주소 공간을 나누는 페이징, 가상 주소에서 물리 주소로의 변환, 페이지 테이블 구성과 PTBR, TLB, 요구 페이징의 장단점을 다룬다.
스토리지와 I/O 시스템 구조: I/O 버스와 신뢰성(MTTF)
컴퓨터 I/O 시스템을 정리한 노트. I/O 버스 연결과 장치별 데이터 속도, 신뢰성 지표 MTTF·MTTR과 개선 방법, I/O 레지스터 매핑, 폴링과 인터럽트, 예외와의 차이, DMA와 RAID 구성을 다룬다.
멀티프로세서와 공유 메모리 동기화: 임계 구역과 Producer-Consumer
멀티프로세서 구조를 정리한 노트. UMA·NUMA 공유 메모리, 합 축소 예제, 생산자-소비자와 임계 구역 문제, Test-and-Set 상호 배제와 최적화된 동기화, 메시지 패싱과 클러스터, 상호 연결 구조를 다룬다.
아두이노 자동소화장치 만들기: 불꽃·연기·온도 복합 감지와 IoT 알림
성균관대 2021 창의적 종합설계 경진대회 출품작인 아두이노 자동소화장치 쿠릉. 불꽃·연기·온도 센서를 함께 판단해 주방 화재를 일찍 감지하고 소화제를 분사하며 스마트폰으로 알리는 저비용 IoT 장치를 만들었다.
Radix-8 Booth 곱셈기 설계: 인코딩 테이블과 TDM 트레이드오프 (Verilog)
Radix-8 Booth 인코딩에 TDM을 결합한 곱셈기를 Verilog로 설계했다. Booth 알고리즘 원리, Radix에 따른 부분곱 수와 하드웨어 트레이드오프, Radix-8 인코딩 테이블, 구현과 검증, 배운 점을 정리했다.
Radix-4 Booth 곱셈기 설계: 부분곱 축소와 TDM 적용 (Verilog)
Booth 인코딩으로 부분곱을 줄이고 TDM으로 압축하는 Radix-4 곱셈기를 Verilog로 설계했다. Booth 인코더·셀렉터, 부분곱 생성, Carry Save Adder, Kogge-Stone 최종 가산기와 정확도 검증 파형을 다룬다.
Cortex-M0 SoC 설계: AHB-Lite 버스로 만든 다기능 로봇 제어 시스템 (Basys3)
Basys3 보드에 Cortex-M0와 AHB-Lite 주변장치를 묶은 SoC를 설계했다. UART로 작은 로봇을 제어하고 업 카운터, 스톱워치, 난수·곱셈기, 덧셈·뺄셈기를 실행하는 다기능 시스템의 HW·SW 구성과 결과를 담았다.
ARM 프로세서 내부 구조: 3단 파이프라인과 명령어 실행 과정
ARM 프로세서의 구성과 구현을 정리한 노트. 레지스터 파일, 배럴 시프터, ALU 등 주요 구성 요소와 3단 파이프라인, 메모리 병목, ARM9 5단 구조로의 발전, 데이터 포워딩과 다중 로드·스토어를 다룬다.
ARM 아키텍처와 레지스터 구조: 프로세서 모드별 뱅크드 레지스터
ARM 아키텍처의 프로그래머 모델을 정리한 노트. 버전별 계보, 보이는 레지스터, 프로세서 모드별 뱅크드 레지스터, PC와 CPSR, 슈퍼바이저 모드, 로드·스토어 구조와 데이터 처리·제어 흐름 명령어를 다룬다.
ARM 어셈블리 프로그래밍 기초: 명령어 형식과 산술·논리 연산
ARM 어셈블리 프로그래밍 기초 노트. 명령어 형식과 접미사, 산술·논리·시프트·비교 연산, 즉시값 규칙, 시프트된 레지스터 피연산자, 조건 코드 설정, 주소 지정 방식과 분기·서브루틴을 예제와 함께 정리했다.
ARM Cortex-M3 구조 분석: 하버드 아키텍처와 레지스터, xPSR
ARMv7-M 기반 Cortex-M3 구조를 정리한 노트. 사양, 수정 하버드 메모리 구조, 3단 파이프라인, 범용 레지스터 R0~R12, xPSR의 APSR·IPSR·EPSR 플래그, PRIMASK·FAULTMASK·BASEPRI 특수 레지스터를 다룬다.
라즈베리파이 하드웨어 구조: 캐시 계층과 ARM vs x86 비교
라즈베리파이 하드웨어를 정리한 노트. BCM2711 SoC 사양, L1·L2 캐시 구성과 연관도, ARM과 x86 비교, Windows와 Linux 차이, 셸 명령어·파일 명령어·파이프·리다이렉션 같은 리눅스 기초를 다룬다.
라즈베리파이 하드웨어 해킹 입문: GPIO, UART, I2C, SPI 통신
라즈베리파이로 외부 장치를 직접 다루는 하드웨어 해킹 입문 노트. GPIO, UART, I2C, SPI 버스의 동작과 한계, wiringPi로 LED 회로 제어, BCM2835 주변장치 레지스터를 직접 조작하는 실습을 정리했다.
차동 증폭기 설계: 전류 미러 바이어스와 2단 구성으로 60dB 얻기 (SIMetrix)
SIMetrix로 60dB 이상 이득의 차동 입력·단동 출력 증폭기를 설계했다. 전류 미러 바이어스로 첫 단 차동 증폭기를, 소스 결합 증폭기로 둘째 단을 구성하고 5V·100uA 조건에서 1mV 입력의 출력 파형을 확인했다.
Verilog 슬롯머신 설계: LFSR 난수 생성과 타이머 시드 (Basys3)
Basys3 보드용 슬롯머신을 Verilog로 설계했다. 타이머로 LFSR에 시드를 넣어 BCD 난수 3개를 만들고, 일치 개수에 따라 입력의 2·5·10배를 출력한다. 블록도, 서브 블록 정의, 시뮬레이션 파형과 고찰을 정리했다.
Wallace Tree 곱셈기 Verilog 설계: 반가산기·전가산기로 8비트 병렬 곱셈
반가산기와 전가산기로 부분합을 단계별로 줄이는 Wallace Tree 구조로 8비트 병렬 곱셈기를 Verilog 설계했다. 16비트 곱을 내는 계산 과정, 설계 흐름, 테스트벤치와 전체 코드를 정리했다.
RISC-V 5단 파이프라인 프로세서 Verilog 설계: 해저드 검출과 포워딩 유닛
RV32I 명령어 전체를 지원하는 RISC-V 5단 파이프라인 프로세서를 Verilog로 설계했다. 해저드 검출 유닛과 포워딩 유닛으로 데이터·제어 해저드를 해결하고 iverilog와 GTKWave 파형으로 검증한 과정을 담았다.
74LS 로직 칩으로 만든 8비트 브레드보드 컴퓨터: CPU 동작 원리 직접 구현
Ben Eater의 설계를 따라 74LS 시리즈 TTL 칩만으로 브레드보드 위에 8비트 컴퓨터를 만들었다. 클럭, 레지스터, ALU, RAM, 프로그램 카운터, 제어 유닛을 직접 배선하며 CPU의 명령어 실행 사이클을 익힌 기록이다.
안드로이드 랜덤 맛집 추천 앱 개발: 카카오맵·네이버 지역검색 API 연동 (Kotlin)
"오늘 뭐 먹지"를 해결하려고 만든 안드로이드 앱 Mechu. 내 위치 주변 음식점을 네이버 지역검색 API로 찾고 버튼 하나로 랜덤 선택해 카카오맵에 보여 준다. 위치 권한, 애니메이션, 카테고리 필터, 배포 과정을 담았다.
GitHub Pages + Jekyll 블로그 만들기: 저장소 생성부터 자동 배포까지
GitHub Pages + Jekyll로 첫 블로그를 만들었던 기록입니다. 개발자라면 한 번쯤 거쳐가는 관문인 GitHub Blog 구축 여정을 정리합니다. 왜 GitHub Blog인가 개발자 포트폴리오로서 블로그를 운영하려면 다음 조건이 중요합니다: - 버전 관리로...
DC 모터 위치 제어기 설계: PID와 근궤적으로 정착시간 맞추기 (MATLAB)
DC 서보 모터 위치 제어기를 MATLAB으로 설계했다. 감쇠비 0.4~0.7, 정착시간 1/30초 미만, 위상 여유 40도 이상 조건에서 근궤적으로 PID 이득을 구하고 조건 충족과 최적값을 확인한 과정과 고찰을 담았다.
전력 계통 발전·송전 계획 최적화: 목적 함수와 제약 조건 모델링
전력 시스템 공학 과목에서 수행한 발전·송전 계획 프로젝트. 장기 수요 증가에 맞춰 발전소 신설과 송전망 확장을 비용 최소화 문제로 모델링하고, 제약 조건, 전력 조류 계산, MILP 최적화와 시나리오 분석을 정리했다.
Zynq-7000 FPGA AI 가속기 설계: CNN·FC 코어와 AXI CDMA 데이터 이동
Zynq-7000 FPGA에 CNN·Fully Connected 연산 코어와 AXI CDMA 데이터 무버를 설계해 AI 가속기를 만들었다. 설계 흐름, 메모리 맵, 코어와 무버 검증, 5단계 AI 모델 구성까지 Vivado·Vitis 작업을 정리했다.
라즈베리파이 IoT 자판기 만들기: Firebase 재고 관리와 도난 감지
라즈베리파이로 만든 IoT 자판기 프로젝트. Firebase 데이터베이스로 재고와 수입을 원격 관리하고, 도난을 감지하면 사이렌과 함께 관리자에게 알린다. 부품 구성, 면별 하드웨어 배치, Python 제어 코드를 다룬다.
Kogge-Stone 가산기 Verilog 설계: higher-valency 셀로 로직 레벨 줄이기
로직 레벨이 가장 적은 트리 가산기인 Kogge-Stone Adder를 higher-valency 셀로 Verilog 설계했다. Bitwise·Group PG와 SUM 로직 코드, 테스트벤치 파형 검증, 성능 최적화 방법과 분석을 정리했다.
AI Note
AI Project
etc Project
Web & App Project
Embedded Note
SoC Note
Microprocessor Note
Computer Architecture Note
Hardware Project