inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

Core 개수 늘리는 법

363

woockddus42

작성한 질문수 3

1

안녕하세요 맛비님 실습관련해서 몇 가지 질문을 드립니다!

  1. Core 개수를 늘려보고 싶은데 고민 중인 것이 있습니다. Memory I/F는 32bit의 data를 읽어오는데 만약 64bit의 data를 읽어서 4개의 연산을 하고 싶다면 어떻게 해야 할까요? I/F에서 core에 data를 전달해 주기 전에 F/F을 더 추가하고 예를 들면 cnt를 사용해서 clk을 2번을 cnt하면 반전되는 새로운 clk을 만들어서 마지막 F/F을 이 clk에 동기화 시켜 Core에 data를 넣어줘야 할까요?

2. 위의 경우 결과를 BRAM에 다시 write하려면 delay를 넣어줘야 할 것 같은데 이렇게 설계하는 것이 맞는 방식인 건가요?

3. 맛비님은 더 많은 bit를 연산할 때 어떻게 하시나요? (64bit 뿐만 아니라 96bit ... 등)

fpga 임베디드

답변 1

0

설계독학맛비

안녕하세요 :)

먼저 정답은 없습니다. (방법은 설계자가 판단해야한다는 이야기고, 저라면..? 이렇게 하겠다 로 적겠습니다.)

  1. Core 개수를 늘려보고 싶은데 고민 중인 것이 있습니다. Memory I/F는 32bit의 data를 읽어오는데 만약 64bit의 data를 읽어서 4개의 연산을 하고 싶다면 어떻게 해야 할까요? I/F에서 core에 data를 전달해 주기 전에 F/F을 더 추가하고 예를 들면 cnt를 사용해서 clk을 2번을 cnt하면 반전되는 새로운 clk을 만들어서 마지막 F/F을 이 clk에 동기화 시켜 Core에 data를 넣어줘야 할까요?

대략 내용을 bit 가 두배 늘었으니, 32bit * 2 cycle 로 64 bit 을 사용하겠다. 이렇게 이해를 했습니다.

위의 이야기는 다음과 같이 확장이 됩니다.

32bit의 width 를 가지는 memory 에서 2 cycle 처리를 해도되고, 아니면 64bit width 의 memory 에서 2 cycle 처리하셔도 됩니다.

64bit width 를 갖는 memory 를 사용하면서 performance 를 64 bit data 에 맞춰주려면, 64 bit data width 를 갖는 I/F 사용이 필요합니다.

현 강의에서는 AXI4-Lite 의 data bit width 가 32 bit 이기 때문에, bit width 가 늘어난 만큼의 performance 향상을 보실 수 없을꺼에요. AXI4 를 공부하셔야합니다.

결론은 위에서 제가 기술한 내용 중 하나를 상황에 맞게 선택하시면 됩니다.

 

2. 위의 경우 결과를 BRAM에 다시 write하려면 delay를 넣어줘야 할 것 같은데 이렇게 설계하는 것이 맞는 방식인 건가요?

"32bit의 width 를 가지는 memory 에서 2 cycle 처리를 해도되고, 아니면 64bit width 의 memory 에서 2 cycle 처리하셔도 됩니다."  이거라면 결국 delay 가 필요하겠죠?

3. 맛비님은 더 많은 bit를 연산할 때 어떻게 하시나요? (64bit 뿐만 아니라 96bit ... 등)

다음 방법을 선택할 것 같아요. bit width 가 늘어난 만큼의 performance 향상을 위해서,

"64bit width 를 갖는 memory 를 사용하면서 performance 를 64 bit data 에 맞춰주려면, 64 bit data width 를 갖는 I/F 사용이 필요합니다.

현 강의에서는 AXI4-Lite 의 data bit width 가 32 bit 이기 때문에, bit width 가 늘어난 만큼의 performance 향상을 보실 수 없을꺼에요. AXI4 를 공부하셔야합니다."

직접 만들어보시면서 경험을 쌓아보시는 것을 추천드립니다. 

즐공하세요 :)

 

 

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

1

57

2

UART0, 1 중 선택

1

90

2

datamoverbram모듈질문

1

85

2

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

1

119

2

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

1

112

2

FPGA 공식문서 읽는법

1

115

2

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

1

85

2

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

1

99

2

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

1

118

1

Vitis 코드 작성

1

139

2

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

1

319

3

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

1

93

2

Platform Invalid 오류

1

167

3

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

1

116

2

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

1

180

2

9장 LED 점등 안됨

1

129

3

Edit in IP Packager 이후에

1

98

1

Fpga 로직

1

105

2

pmu-fw is not running

1

148

2

Create Project에 대해서 궁금해요

1

102

2

장치관리자 USB 포트

1

117

2

FPGA 7장 AXI_LITE I/F질문

1

95

1

bram mover에서 합성할때

1

88

2

타이밍 위반 질문

1

88

2