FPGA 기반 실시간 경매 시스템
키패드 입찰가 입력과 8자리 비교, 제한 시간 갱신, 낙찰 판정을 논리회로로 구현한 FPGA 경매 시스템
프로젝트 개요
이 프로젝트는 FPGA 보드의 입력·출력 장치와 조합·순차 논리회로를 결합해 구현한 실시간 경매 시스템입니다. 사용자가 키패드로 입찰가를 입력하면 기존 최고가와 비교하고, 더 높은 금액만 현재가로 반영합니다. 유효한 새 입찰이 없으면 8초 후 낙찰되며, 최고 한도인 99,999,999원이 입력된 경우에는 즉시 경매를 종료하도록 설계했습니다.
2023년 부산대학교 논리회로설계및실험 수업에서 2인 팀으로 진행했습니다. 개별 논리 모듈을 Quartus Prime의 Block Diagram으로 설계하고, 이를 최상위 Auction_System 회로에 연결해 Cyclone V FPGA 보드에서 동작을 확인했습니다.
시연 영상
경매 진행 흐름
* 입력 → 입찰가 입력 → # 확정 → 현재가 비교 → 가격·타이머 갱신 또는 입력 거절 → 낙찰
-
*버튼으로 경매를 시작하거나 새로운 입찰값 입력을 준비합니다. 시작가는 0원이며, 8개의 LED가 모두 켜지면서 8초 카운트다운이 시작됩니다. - 숫자 키패드로 최대 8자리 입찰가를 입력하고
#버튼으로 확정합니다. - 새 입찰가가 현재가보다 클 때만 값을 저장하고 7-segment 출력을 갱신합니다. 이때 제한 시간도 다시 8초로 초기화됩니다.
- 작거나 같은 입찰가는 반영하지 않으며, 진행 중이던 제한 시간도 초기화하지 않습니다.
- 8초 동안 유효한 입찰이 없거나 99,999,999원이 입력되면 현재가를 최종 낙찰가로 유지하고 경매를 종료합니다.
진행 중에는 Full Color LED를 초록색으로, 종료 상태에서는 빨간색으로 표시합니다. 남은 시간은 8개의 LED가 1초마다 하나씩 꺼지는 방식으로 보여줍니다.
논리회로 설계
- 입력 변환과 중복 방지:
d2b가 키패드의 0–9 입력을 4-bit 값으로 변환하고,trigger가 하나의 키 입력이 여러 번 저장되는 것을 방지합니다. - 8자리 입찰가 저장: 8개의 4-bit 레지스터로 구성한
new_8_sram에 입력 숫자를 순차적으로 shift해 저장하고, 승인된 최고가는curr_8_sram에 유지합니다. - 가격 비교:
EightDigitComparator가 각 자릿수의 4-bit 비교 결과를 상위 자리부터 조합합니다.#입력 시에만 새 값이 현재가보다 큰지 판정해 갱신 신호Gt_B를 출력합니다. - 7-segment 표시:
counter8로 8개 자리를 순환 선택하고, 멀티플렉서와b2seg디코더를 이용해 현재가를 동적 구동 방식으로 표시합니다. - 8초 타이머: 1MHz 기준 클럭을 6개의
CNT10으로 분주해 1초 펄스를 만들고, 이를 8단계로 카운트해 남은 시간을 LED에 출력합니다. 유효한 입찰이 들어오면 타이머를 다시 시작합니다.
담당 역할
보고서에 기록된 역할 분담에 따라 경매의 입력·비교·표시·시간 제어에 해당하는 핵심 회로를 담당했습니다.
- 키패드를 이용한 경매가 입력 회로 설계
- 8자리 비교기와 레지스터를 이용한 현재가 갱신 로직 설계
- 멀티플렉싱 기반 8자리 7-segment 현재가 표시 회로 설계
- 1초 클럭 생성과 8초 카운트다운 타이머 설계
- 개별 모듈 연결 후 FPGA 보드에서 입력 및 출력 동작 검증
구현 결과
최종 회로는 Quartus Prime Fitter를 성공적으로 통과했으며, Cyclone V 디바이스에서 79 ALMs, 112개 레지스터, 46개 핀을 사용했습니다. 입찰가 입력과 대소 비교, 유효 입찰에 따른 현재가·타이머 갱신, 7-segment 출력, 시간 초과 및 최고가 기반 종료까지 핵심 경매 흐름을 구현했습니다.
초기 계획에 포함했던 남은 시간 및 잘못된 입찰에 대한 추가 피에조 알림은 출력 제약과 회로 복잡도를 고려해 최종 범위에서 제외하고, 경매 진행 상태와 남은 시간은 Full Color LED와 8개의 LED로 전달하도록 정리했습니다.
기술 스택
FPGA · Cyclone V · Quartus Prime 20.1 · Block Diagram/Schematic · Verilog HDL · Combinational & Sequential Logic · Keypad · 7-Segment Display · Full Color LED