인프런 커뮤니티 질문&답변

likepepsi님의 프로필 이미지

작성한 질문수

Verilog를 이용한 FPGA 활용 기초

signed, unsigned 덧셈, 뺄셈 - 16

10 bits * 10bits 연산 구현 질문

24.05.19 20:45 작성

·

124

·

수정됨

0

안녕하세요. 강사님

 

강의를 보던 중 10 bits * 10bits 연산 구현에서 bit position을 주석으로 두셔서 살펴 보던 중 곱셈에서 어떻게 bit position을 잡을 수 있는지 질문 드립니다.

 

어떻게 bit position 잡는지 공부 후 16bits * 16bits, 32bits * 32bits 두 곱셈도 스스로 학습해 보려 합니다.

답변 1

1

alex님의 프로필 이미지
alex
지식공유자

2024. 05. 19. 22:21

안녕하세요.

bits position 은 10진수와 같다고 생각하면 됩니다.

예를 들어 123 * 456 을 계산한다면,

1 x 4 x 100 x 100,

1 x 5 x 100 x 10,

1 x 6 x 100 x 1

2 x 4 x 10 x 100

2 x 4 x 10 x 10

2 x 6 x 10 x 1

3 x 4 x 1 x 100

3 x 5 x 1 x 10

3 x 6 x 1 x 1

위의 것을 모두 더하면 됩니다.

마찬가지로,

in1[9:6] x in2 [9:6] x 2^6 x 2^6 = in1[9:6] x in2[9:6] x 2^12 = (in1[9:6] x in2[9:6])<<12

이렇게 됩니다.

mul_1 = in1[9:6] * in2[9:6]; // 19:12, 12 : 6+6, 4bits x 4bits 는 8bits 이므로, 12 ~ 19 까지, 19:12

 

감사합니다 ~!!