← 글 목록

Basys3에서 gate-level FSM을 검증하며 배운 것

8-state binary-coded FSM을 primitive gate, D/JK flip-flop, debounce clocking으로 구현하고 50MHz timing을 확인한 기록.

Basys3FSMVerilogVivado

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이 아니기 때문에, 작은 실험일수록 물리적인 조건을 더 진지하게 봐야 합니다.