inflearn logo
강의

Course

Instructor

Design Self-Study Matbi's Practical HW Accelerator Design Using FPGA (From LED Control to Fully Connected Layer Accelerator Design)

UART의 역할이 PC와 PS를 연결해 주는 역할로 알고 있습니다.

Resolved

31

dlrwo0904

2 asked

1

안녕하세요 🙂

[1. 질문 챕터] : FPGA 4장, 5장

[2. 질문 내용] : FPGA 4장에서는 PS IP 블록의 UART1을 활성화 시키셨고, FPGA 5장에서는 PS IP 블록에서 UART1을 비활성화 시키셨습니다. 아마 4장에서는 printf와 scanf를 이용하여 Vitis Serial Terminal에 결과값을 띄워야 하기 때문에 UART가 필요했고, 5장에서는 Vitis Serial Terminal로 결과값을 볼 필요 없이 FPGA 보드로 LED 점등 속도만 확인하면 되기 때문에 UART를 쓰지 않으신 것으로 이해했습니다. 그럼 혹시 UART는 Vitis Serial Terminal이 필요할 때만 활성화 시켜서 사용하는 것인가요? UART의 역할이 정확히 무엇인지 확실한 개념이 잡히지 않아 질문 남깁니다!

[3. 시도했던 내용, 그렇게 생각하는 이유] :

 

fpga 임베디드

Answer 2

0

semisgdh

안녕하세요. 🙂

결론부터 말씀드리면, 작성해주신 내용이 정확히 맞습니다. 완벽하게 이해하고 계십니다.

UART(Universal Asynchronous Receiver-Transmitter)의 역할 UART는 두 하드웨어 장치 간에 데이터를 직렬(Serial)로 주고받기 위한 표준 통신 방식입니다.

우리가 사용하는 Zynq 보드 환경에서는 주로 보드의 PS(Processing System)와 호스트 PC 간에 텍스트나 데이터를 주고받는 통로 역할을 합니다.

  • 4장의 경우: C 코드로 작성한 printf 문자열을 PC 화면(Vitis Serial Terminal)에 출력하거나, PC에서 입력한 값(scanf)을 보드로 전달해야 했기 때문에 UART 통신이 필수적이었습니다.

  • 5장의 경우: 보드 내부의 HW/SW 동작만으로 LED를 제어하고 눈으로 점멸 상태만 확인하는 실습이었으므로, PC 쪽으로 데이터를 보낼 필요가 없었습니다. 따라서 UART를 비활성화해도 실습에 전혀 문제가 없었던 것입니다.

UART는 터미널이 필요할 때만 사용하는가?

현재 진행하시는 강의와 같은 기초 개발/디버깅 환경에서는 "동작 상태 확인을 위한 로그(printf) 출력 및 명령어 입력" 목적이 가장 크기 때문에, 말씀하신 대로 시리얼 터미널을 사용할 때 주로 활성화합니다.

하지만 그 외에도 실무에서는 PC뿐만 아니라 블루투스 모듈, GPS 센서, 또는 다른 외부 마이크로컨트롤러(MCU) 등 UART 통신 인터페이스를 지원하는 다양한 외부 장치와 데이터를 주고받을 때범용적으로 아주 많이 사용됩니다.

RX/TX 두 선만 가지고 통신할 수 있는 저속의 통신 방법이고요.

저희가 사용해본 UART 는 하나의 예라고 생각하시면 될 것 같아요.

즐공하세요.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. dlrwo0904님.

UART(Universal Asynchronous Receiver/Transmitter)의 역할과 사용 조건에 대해 명확하게 설명드리겠습니다.

UART의 역할

  1. 데이터 통신:

    • UART는 두 장치 간의 시리얼 통신을 통해 데이터를 송수신합니다. FPGA와 PC 간의 데이터 전송에 주로 사용되며, 하드웨어 간의 통신뿐만 아니라, 소프트웨어와 하드웨어 사이의 상호작용을 돕는 역할을 수행합니다.
  2. Vitis Serial Terminal 연결:

    • Vitis 환경에서 Serial Terminal을 통해 직접적인 입출력 통신, 디버깅이 필요할 때 UART를 사용하여 데이터를 송수신합니다. 예를 들어, printf와 scanf를 활용한 데이터 전송 및 수신에 사용됩니다.
  3. 연결 환경:

    • 특정 작업이나 출력이 직접 PC나 다른 시스템과의 통신이 필요할 경우 UART가 유용합니다. 그러나, 단순히 FPGA 상의 동작 테스트나 내부 연산 결과를 외부로 출력할 필요가 없는 경우 UART를 비활성화할 수 있습니다.

UART 사용 여부

  • UART는 데이터 통신이 필요한 경우에 활성화합니다. 예를 들어, Serial Terminal을 통한 입출력 작업이 없거나, 내부적인 FPGA의 동작을 확인하기 위한 출력만 필요할 경우에는 비활성화해도 됩니다.

참고 URL

dlrwo0904님의 학습에 도움이 되었기를 바랍니다. UART 모듈의 역할과 활용 사례를 이해하는 데 이 응답이 도움되길 바랍니다. 추가적인 질문이 있으시다면 언제든지 해주시면 감사하겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

HW가속기 설계에서 더 보완할 수 있는 방법이 있을까요?

1

70

2

UART0, 1 중 선택

1

98

2

datamoverbram모듈질문

1

89

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

125

2

vitis 설치 관련 질문 있습니다!

1

127

2

FPGA 공식문서 읽는법

1

124

2

보드 추가의 클릭창이 없습니다.

1

93

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

104

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

119

1

Vitis 코드 작성

1

148

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

340

3

[9장 led 점등 시간 제어 불가]

1

100

2

Platform Invalid 오류

1

174

3

WSL 설치 관련 문의드립니다!!

1

122

2

Vivado 툴, 파일 질문드립니다!

1

201

2

9장 LED 점등 안됨

1

138

3

Edit in IP Packager 이후에

1

104

1

Fpga 로직

1

117

2

pmu-fw is not running

1

164

2

Create Project에 대해서 궁금해요

1

103

2

장치관리자 USB 포트

1

127

2

FPGA 7장 AXI_LITE I/F질문

1

103

1

bram mover에서 합성할때

1

98

2

타이밍 위반 질문

1

96

2