An Efficient Integer Division Algorithm for High Speed FPGA

고속 FPGA 구현에 적합한 효율적인 정수 나눗셈 알고리즘

  • 홍승모 (숭실대학교 정보통신전자공학부) ;
  • 김종훈 (숭실대학교 정보통신전자공학부)
  • Published : 2007.02.25

Abstract

This paper proposes an efficient integer division algorithm for high speed FPGAs' which support built-in RAMs' and multipliers. The integer division algorithm is iterative with RAM-based LUT and multipliers, which minimizes the usage of logic fabric and connection resources. Compared with some popular division algorithms such as division by subtraction or division by multiply-subtraction, the number of iteration is much smaller, so that very low latency can be achieved with pipelined implementations. We have implemented our algorithm in the Xilinx virtex-4 FPGA with VHDL coding and have achieved 300MSPS data rate in 17bit integer division. The algorithm used less than 1/6 of logic slices, 1/4 of the built-in multiply-accumulation units, and 1/3 of the latencies compared with other popular algorithms.

본 논문에서는 메모리와 곱셈기가 내장된 고속 FPGA(Field Programmable Gate Array)에서 효율적으로 구현할 수 있는 정수 나눗셈 알고리즘을 제안하였다. 제안된 알고리즘은 메모리를 이용한 Look-up Table(LUT)과 곱셈기를 사용하여 반복 계산(Iteration)구조로 FPGA의 자원을 최소화할 수 있으며 반복연산 횟수가 일반적으로 알려진 뺄셈 또는 뺄셈-곱셈에 의한 나눗셈 알고리즘에 비해 매우 적어 Latency를 최소화 할 수 있다. Xilinx사의 Virtex-4 FPGA에 VHDL coding을 통해 Pipeline구조로 구현한 결과 17bit의 정수 나눗셈을 300MSPS( Mega Sample per Second)의 속도로 수행하였다. 또한 일반적으로 사용되고 있는 뺄셈 또는 뺄셈-곱셈 구조에 비해 FPGA의 소요자원인 Slices의 경우 1/6이하, 곱셈기-누산기 수는 1/4이하로 줄일 수 있었으며, 입출력 간의 지연 Latency를 1/3이하로 줄일 수 있어 다른 알고리즘에 비해 매우 효율적인 구조임을 확인하였다.

Keywords

References

  1. 권호경, 문상국, 문병인, 이용식, 'Talory 전개식을 이용한 나눗셈 연산기의 VLSI설계', 한국통신학회 논문지 제26권 C편 pp.6-9, 2000년 6월
  2. 권순열, 최종화, 김용대, 한선경, '고속 십진 나눗셈을 위한 혼합 알고리즘' 대한전자공학회논문지, 제41권 제5호 pp.82-84, 2004년9월
  3. 홍승모, 김종훈, 'NLMS 적응필터의 FPGA 구현에 적합한 효율적인 정수 나눗셈 알고리즘', 하계종합 학술발표회 제33권 pp.319-320, 2006년7월
  4. Ali H. Sayed, 'Fundamentals of Adaptive Filtering', John Wiley & Sons, pp.214-218, 2002
  5. S. F.Oberman and MJ.Flynn,'Design Issue Dvision and Other Floating-Point operation' IEEE Trans.Computer, vol.46. no2, pp.154-161, 1997 https://doi.org/10.1109/12.565590
  6. S. D. Conte C. de Boor, 'Elementary Numerical Analysis', 3rd Ed, McGRAW-HILL, pp.33
  7. Stuart F. Oberman and Michael J. Flynn, 'Division algorithms and implementation ', IEEE Transactionon Computers, vol.46. no8, August 1997 https://doi.org/10.1109/12.609274
  8. Xtreme DSP design consideration user guide 'divide' pp.62-65, 'Pipeline', pp.44-51