FSM은 종이에 그린 뒤에도 끝나지 않는다
Air-conditioner controller FSM은 8-state binary-coded 구조로 설계했습니다. 처음에는 상태도와 진리표가 명확하면 구현도 자연스럽게 끝날 것이라고 생각했지만, 실제 hardware verification에서는 입력 debounce, clocking, timing constraint가 설계의 품질을 결정했습니다.
구현 노트
- Primitive gate 기반 조합 논리
- D/JK flip-flop 기반 상태 저장
- Ripple-counter debounce clocking
- Vivado timing check
- Basys3 board hardware verification
최종적으로 50MHz timing을 만족했고, LUT 사용량은 220개 미만으로 유지했습니다.
배운 점
FSM 프로젝트에서 가장 큰 수확은 “논리적으로 맞다”와 “하드웨어에서 안정적으로 동작한다” 사이의 차이를 몸으로 배운 것입니다. 입력 버튼 하나도 회로 입장에서는 이상적인 0/1이 아니기 때문에, 작은 실험일수록 물리적인 조건을 더 진지하게 봐야 합니다.