오늘은 맑음

Multiplication algorithm(1) 본문

Digital logic

Multiplication algorithm(1)

자전거 타는 구구 2020. 4. 17. 17:08
반응형

곱셈은 multiplicand(피승수/A) x multiplier(승수/X) = product(결과물/U)로 이루어진다.

 

디지털 회로에서 어떻게 곱셈이 이루어지는지 알아보겠습니다.


X=xn1xn2...x1x0

A=an1an2...a1a0

 

 이 때 xn1an1은 각 수의 부호 비트입니다.

 곱셈 알고리즘은 단계(step) j에서 승수(multiplier)비트 xj가 검출되고 결과물 xjAP(j+1)로 표기되는 부분 합(partial sum)에 더해지는 n-1단계(step)로 구성됩니다.

 

P(j+1)=(P(j)+xjA)21;j=0,1,2,...,n2

 

 이 때 첫 번째 단계 P(0)=0입니다.

(P(j)+xjA)21로 곱하게 되면 우측으로 1번 산술 시프트가 이루어지며 이는 P(j+1)에서 자리수를 맞춰주기 위함입니다.

이로 인해 x(j+1)x(j)에 비해 2배가 되며 n-1 단계의 수식을 전개하면 다음과 같습니다

 

P(n1)=(P(n2)+xn2·A)·21

=P(n3)+xn3·A)·21+xn2·A)·21+xn2·A)·21

=(xn221+xn322+...+x02(n1))·A

=(n2j=0xj2(n1j))·A

 

만약 X와 A가 모두 양수라면 최종 결과물 U는 다음과 같습니다.

 

U=2n1·P(n1)=(n2j=0xj2j)A=X·A


X와 A가 모두 양수일 때 곱셈 과정을 살펴보겠습니다.

A = 5, X = 3인 경우 두 수를 이진수로 나타내면 다음과 같습니다.

A = 0101, X = 0011

곱셈 과정을 전개해 보겠습니다.

 

첫 0번째 단계에서는 P(0)는 0이 됩니다.

X의 0번째 비트 x0이 1이므로 P(1)에 A를 더해줍니다.

더해준 이후 21을 곱해주게 되므로 우측으로 시프트가 이루어집니다.

다음 1번째 단계 역시 0번째 단계와 같이 동작을 수행합니다.

2번쨰 단계에서는 X의 2번째 비트가 0이므로 Add 과정 없이 shift만 수행이 됩니다.

 

따라서 결과값은 000_1111이 되어 15가 나왔습니다.

 

반응형

'Digital logic' 카테고리의 다른 글

Multiplication algorithm(3)  (0) 2020.04.17
Multiplication algorithm(2)  (0) 2020.04.17
CDC(Clock Domain Crossing)  (4) 2019.12.05
Metastability/Metastable state  (0) 2019.12.04
fpga와 asic설계시 유의사항  (0) 2019.12.01