오늘은 맑음

xilinx / mutlipliers 합성 결과 본문

Digital logic

xilinx / mutlipliers 합성 결과

자전거 타는 구구 2020. 6. 26. 15:57
반응형

요즘 딥러닝 하드웨어 가속기(NPU)에서 곱셈기에 대해 공부하고 있습니다.

vivado에서 곱셈기를 합성해보면 다양한 결과가 나옵니다.

 

module mult(

     input [IN-1:0] a,

     input [IN-1:0] b,

     output [OUT-1:0] c

)

 

assign c = a * b;

 

endmodule

 

예를 들어 위의 곱셈을 수행하는 모듈을 만들고 합성을 해보면 어떨때는 DSP를 사용하고 어떨때는 LUT-based multiplier가 생성이 됬습니다.

 

xilinx document를 찾아보니 input width에 따라 합성 결과가 달라진다고 설명되어있습니다.

어떠한 케이스에서는 LUT-based multiplier가 생성이 되고, input width가 매우 큰 경우에는 dedicated multiplier block을 사용하여 합성이 된다고 합니다.

여기서 input width가 작아 dedicated multiplier block을 사용하기에 좋지 않은 경우 LUT-based multiplier가 합성되는 것 같습니다.

이 때 사용되는 multiplier block은 fpga에 따라 다르기 때문에 지원하는 라이브러리로 합성이 진행됩니다.

 

반응형
Comments