UART Serial 통신 프로토콜 FPGA Verilog HDL 설계 #3 FPGA 통신 결과

Yonghee·2023년 9월 16일
post-thumbnail

Ultra 96 FPGA

ultra 96 fpga이미지 클릭하면 URL로 연결됩니다.

Ultra 96 FPGA를 사용하여 UART 통신 설계를 진행하였습니다. Xilinx의 Zynq 칩이 들어간 보드로 ETRI에서 실무 교육받을 때 사용했던 FPGA입니다.

Pmod 96 인터페이스

또 여기서 사용되는 게 이 PMOD 인터페이스입니다. Ultra 96 FPGA 위에 합체 시켜서 사용하는 건데 이게 있어야 LED나 Segment, Switch의 모듈을 저 pmod에 연결하여 input, output을 설정할 수 있습니다. 그리고 vivado에서 xdc라는 파일로 pin map을 쉽게 할 수 있습니다.

PMOD 설명
PMOD는 Digilent사가 개발한 인터페이스 표준입니다. PMOD는 주로 디지털 I/O 및 통신 기능을 추가하기 위해 FPGA 개발 보드 및 다른 디지털 시스템과 연결하는 데 사용되는 작은 커넥터와 모듈의 조합을 나타냅니다. PMOD 모듈은 주로 디지털 핀, UART, SPI, I2C, GPIO 등과 같은 다양한 디지털 통신 프로토콜을 지원하는 데 사용됩니다. FPGA 보드로 PMOD 모듈을 연결하면 7-Segment, switch, LED 센서를 커스터마이즈 할 수 있습니다.

Pin Planner (xdc 파일)

보통 FPGA에서 input, output을 결정할 때 pin planner에 들어가서 설정하는 방법도 있는데 xdc 파일을 사용하면 간단하게 타이핑으로 입출력을 정할 수 있습니다.

Pmod 인터페이스는 USB UART가 정해져 있습니다. 저는 TXD와 RXD만 사용하니깐 2번과 3번 핀에 입출력을 적고 추가로 FPGA의 동작 주파수를 넣기 위한 clk를 활성화 하였습니다. 사용하지 않는 핀에 대해서는 주석으로 비활성화 처리하였습니다.

PinSignalDirection
1CTSIn
2TXDOut
3RXDIn
4RTSOut
5GND
6VCC

그리고 이렇게 pmod-a, b와 pmod-c에 대해서 전압이 1.8V, 1,2V로 다르기 때문에 사용하는 Pmod 전압을 각각 활성화 하였습니다.

여기까지 설정 했다면 이제 synthesis와 implementation하고 program device 하면 설계했던 UART 모델이 FPGA에 다운로드 됩니다.

Tera Term

FPGA에서 Pin map 후 synthesis와 implementation 과정까지 끝나고 program device 작업까지 끝났다면 이제 PC와 통신하면 됩니다. 여기 Tera Term 프로그램을 설치하고 시리얼 포트를 FPGA와 맞춰 준 다음에 설정에서 시리얼 포트(Serial port)로 들어가면

이런 창이 뜨는데 여기서 속도를 115200 bps로 맞추고 데이터 8bit, 패리티 비트 none, stop 비트 1 bit으로 설정하고 new setting을 누르면 PC와 FPGA 간의 통신할 수 있는 상태가 만들어집니다.

결과

키보드로 숫자나 문자를 입력하면 Tera Term 화면에서 정상 출력되는 것을 확인할 수 있습니다. PC에서 데이터를 송신하면 FPGA에서는 이걸 수신해서 다시 송신으로 보내주고 전달 과정은 모두 ASCII code로 변환되어 전달됩니다.

UART 모델은 어렵지 않으니 한번 설계 해보는 것도 좋은 경험인 거 같네요~😊😊

profile
SoC 설계 엔지니어 성장 기록

0개의 댓글