inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 19장] HW 가속기 설계 연습. 8b 곱셈 Core 설계 - 실습편

HW Run 부분 pipeline 질문

해결된 질문

435

satreci-sta

작성한 질문수 5

4

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
먼저 연휴 전에 질문을 드리게 되어 죄송합니다 TT
 
이번 실습 HW RUN 부분은 BRAM에 Write, Core Run, BRAM에 Read 이렇게 3가지 과정으로 나누어서 이루어졌는데, 여기서 Pipeline 개념 관련해서 질문이 있습니다.
 
1. HW RUN 과정에서 이미 Pipeline이 적용 되었다고 할 수 있나요?
 
2. 3가지 과정을 따로 나누지 않고 Pipeline을 적용할 수 있지만, run time 측정을 위해서 일부러 하지 않은 건가요?
 
Pipeline 개념이 아직 미숙하기도 하고, 이번 실습의 경우에 적용이 가능한지, 적용을 했을 때 오히려 더 느려지게 될 수도 있는건지 감이 안잡히네요 :(

항상 친절한 답변 감사드려요. 즐거운 연휴 되세요!

임베디드 fpga

답변 1

1

설계독학맛비

안녕하세요 :)

먼저 새해 복 많이 받으세요.

이번 실습 HW RUN 부분은 BRAM에 Write, Core Run, BRAM에 Read 이렇게 3가지 과정으로 나누어서 이루어졌는데, 여기서 Pipeline 개념 관련해서 질문이 있습니다.
 
1. HW RUN 과정에서 이미 Pipeline이 적용 되었다고 할 수 있나요?
 
답이 좀.. 어렵습니다. 3년차 이상의 설계지식이 필요하다 생각합니다.
이해가 안되셔도 너그럽게 넘어가주세요. 직접 해보셔야 알 수 있습니다.
최대한 성심성의껏 쉽게 적어보겠습니다.
BRAM에 Write, Core Run, BRAM에 Read 관점에서 보았을때, Pipeline 이 미적용되어 있습니다.
Verilog HDL 시간에서 배우셨겠지만, Pipeline 을 유지하려면, 저장공간 이 필요합니다.
현재 구조에서는 BRAM 의 Double 사용이 필요합니다. 즉, 쉬지 않고 동작하기 위한 Buffer 가 필요합니다.
 
다만 pipeline 을 유지한다고해도 Performance 향상이 되겠지만, 현재는 AXI4-Lite 로 Write / Read 를 하고 있기때문에, 이 부분을 개선하는것이 Performance 향상에 큰 도움이 되실 겁니다.
막대기의 길이가 running time 이다 했을때의 그림입니다.
 
 
 
AXI4 의 DMA 를 설계하실 줄 알면 되구요. 이 부분은 Verilog HDL season 2 에서 마지막 Project 로 계획중입니다. 올해 중순에 시작해서 올해 말 혹은 내년 초 완료로 강의를 계획중입니다.
 
맨 마지막 그림으로 설계가 되면 됩니다. (실제 가속기 제품의 이상적인 시나리오입니다.)
Pipeline 과 AXI 사용 :)
 
 
2. 3가지 과정을 따로 나누지 않고 Pipeline을 적용할 수 있지만, run time 측정을 위해서 일부러 하지 않은 건가요?
 
구현 난이도 때문에 이 과정에서는 뺏습니다.
현재 구조에서 Pipeline 을 적용하려면 다음 부분이 수정되어야합니다.
BRAM 의 double buffering (ping-pong buffer) 설계가 필요합니다 :)
 
 
Pipeline 개념이 아직 미숙하기도 하고, 이번 실습의 경우에 적용이 가능한지, 적용을 했을 때 오히려 더 느려지게 될 수도 있는건지 감이 안잡히네요 :(
 
Pipeline 은 최대한! 적용할 수 있으면 해야합니다.
HW 설계의 미덕입니다.
 
즐공하세요 :)
 

0

satreci-sta

답변을 이해하는데 그림이 큰 도움을 주네요 :D

덕분에 궁금한 점들 해결되었습니다!

항상 감사드립니다.

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

1

52

2

UART0, 1 중 선택

1

85

2

datamoverbram모듈질문

1

85

2

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

1

113

2

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

1

109

2

FPGA 공식문서 읽는법

1

111

2

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

1

82

2

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

1

95

2

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

1

115

1

Vitis 코드 작성

1

138

2

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

1

313

3

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

1

90

2

Platform Invalid 오류

1

161

3

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

1

113

2

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

1

176

2

9장 LED 점등 안됨

1

126

3

Edit in IP Packager 이후에

1

98

1

Fpga 로직

1

104

2

pmu-fw is not running

1

143

2

Create Project에 대해서 궁금해요

1

99

2

장치관리자 USB 포트

1

116

2

FPGA 7장 AXI_LITE I/F질문

1

93

1

bram mover에서 합성할때

1

85

2

타이밍 위반 질문

1

85

2