inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[FPGA 21장] 프로젝트 Fully Connected Layer 설계 - 코드리뷰편

FPGA 연산 관련 질문

546

woockddus42

작성한 질문수 3

1

안녕하세요 맛비님. 질문 드릴것이 있습니다!

a-b <0과 같은 연산을 if문의 조건에 쓸 경우 FPGA에서는 어떻게 되는지 궁금합니다!

구체적으로는 예를 들어 4bit연산에서 a = 0011(3), b = 0101(5)인 경우 a - b = 1110(-2)로 연산 결과가 나올것이라고 생각이 됩니다. 그런데 -2는 설계자가 해석하는 것이고 FPGA위에서는 bit 그대로 1110이 나올 것인데 1110 < 0 이 성립이 되지 않을 것 같다?라는 궁금증이 생겼습니다.

(만약 1110그대로 해석하여 1110 < 0이 성립이 되지 않는다면 c = a - b으로 미리 assign을 해두고 c의 bit수를 5bit로 하여 msb가 변하는 조건으로 조건문을 완성시키면 되는 것일까요?)

임베디드 fpga

답변 2

2

설계독학맛비

예를 들면 제가 제공해드린 환경을 사용하셔서 다음처럼 Test 해보시면 됩니다.

(제공해드린 환경의 강력함? 을 느끼실 수 있을꺼에요)

Test 환경

bit extension (8b -> 9b) 을 통해서 overflow / underflow 이슈는 해결한 상태에서 Test

input vector 는

  • input_a : d'10

  • input_b : d'20

Case 1. signed result

wire signed [8:0] result;

assign result = {1'b0,i_value_a} - {1'b0, i_value_b};

wire is_minus = (result < 0) ? 1 : 0;

image

Case 2. unsigned result

wire [8:0] result;

assign result = {1'b0,i_value_a} - {1'b0, i_value_b};

wire is_minus = (result < 0) ? 1 : 0;

image

결론

  1. result 의 "minus 연산 결과값"은 signed / unsigned type 에 무관하게 동일함

  2. result 의 type 에 따라서 is_minus 의 결과가 달라짐.
    이는 비교기 (result < 0) 가 signed / unsigned type 에 영향이 있음을 알 수 있다.

0

설계독학맛비

안녕하세요 :)

해당 내용은 Verilog HDL 강의에서 이야기를 해서, 큰 맥락만 말씀드리면

  • Sigend / Unsigned

  • Overflow / Underflow

를 고려하시면 답이 되실 것 같습니다.

연산 결과는 직접 확인이 가능하실 것 같아요. (제공해드린 simulation 환경)

즐공하세요 :)

UART0, 1 중 선택

1

51

2

datamoverbram모듈질문

1

63

2

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

1

96

2

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

1

84

2

FPGA 공식문서 읽는법

1

95

2

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

1

70

2

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

1

81

2

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

1

106

1

Vitis 코드 작성

1

130

2

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

1

290

3

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

1

81

2

Platform Invalid 오류

1

145

3

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

1

96

2

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

1

150

2

9장 LED 점등 안됨

1

109

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

126

2

Create Project에 대해서 궁금해요

1

89

2

장치관리자 USB 포트

1

98

2

FPGA 7장 AXI_LITE I/F질문

1

89

1

bram mover에서 합성할때

1

77

2

타이밍 위반 질문

1

78

2

rvalid 초기화

1

66

2