Floating Point Converter Design Supporting Double/Single Precision of IEEE754

IEEE754 단정도 배정도를 지원하는 부동 소수점 변환기 설계

  • Park, Sang-Su (Department of Electric &Electronics Engineering, Yonsei University) ;
  • Kim, Hyun-Pil (Department of Electric &Electronics Engineering, Yonsei University) ;
  • Lee, Yong-Surk (Department of Electric &Electronics Engineering, Yonsei University)
  • 박상수 (연세대학교 전기전자공학과) ;
  • 김현필 (연세대학교 전기전자공학과) ;
  • 이용석 (연세대학교 전기전자공학과)
  • Received : 2011.04.25
  • Accepted : 2011.10.18
  • Published : 2011.10.25

Abstract

In this paper, we proposed and designed a novel floating point converter which supports single and double precisions of IEEE754 standard. The proposed convertor supports conversions between floating point number single/double precision and signed fixed point number(32bits/64bits) as well as conversions between signed integer(32bits/64bits) and floating point number single/double precision and conversions between floating point number single and double precisions. We defined a new internal format to convert various input types into one type so that overflow checking could be conducted easily according to range of output types. The internal format is similar to the extended format of floating point double precision defined in IEEE754 2008 standard. This standard specifies that minimum exponent bit-width of the extended format of floating point double precision is 15bits, but 11bits are enough to implement the proposed converting unit. Also, we optimized rounding stage of the convertor unit so that we could make it possible to operate rounding and represent correct negative numbers using an incrementer instead an adder. We designed single cycle data path and 5 cycles data path. After describing the HDL model for two data paths of the convertor, we synthesized them with TSMC 180nm technology library using Synopsys design compiler. Cell area of synthesis result occupies 12,886 gates(2 input NAND gate), and maximum operating frequency is 411MHz.

본 논문에서는 IEEE754 표준의 단정도 및 배정도를 지원하는 새로운 부동소수점 변환기를 제안하고 설계하였다. 제안된 변환기는 부호 있는 정수(32비트/64비트)와 부동소수점(단정도/배정도) 간 변환, 부호 없는 정수(32비트/64비트)를 부동소수점(단정도/배정도)으로의 변환, 부동소수점 단정도와 배정도 간 변환뿐만 아니라 부호 있는 고정소수점(32비트 64비트)과 부동소수점(단정도 배정도) 간 변환을 지원한다. 모든 입력 형태를 하나의 형태로 만드는 새로운 내부 형태를 정의함으로써 출력 형태의 표현 범위에 따른 오버플로우 검사를 쉽게 하도록 하였다. 내부 형태는 IEEE754 2008 표준에서 정의된 부동소수점 배정도의 확장된 형태(extended format)와 유사하다. 이 표준에서는 부동소수점 배정도의 확장된 형태(extended format)의 최소 지수부 비트폭은 15비트라고 명시하지만 제안된 컨버터를 구현하는데 11비트만으로도 충분하다. 또한 덧셈기가 대신 +1 증가기를 사용하면서 라운딩 연산과 음수의 정확한 표현이 가능하도록 변환기의 라운딩 스테이지를 최적화하였다. 단일 클럭 사이클 데이터패스와 5단 파이프라인 데이터패스를 설계하였다. 변환기의 두 데이터패스에 대한 HDL 모델을 기술한 후에 Synopsys design compiler를 사용하여 TSMC 180nm 공정 라이브러리로 합성하였다. 합성 결과의 셀 면적은 12,886 게이트(2입력 NAND 게이트 기준)이고 최대 동작 주파수는 411MHz이다.

Keywords

References

  1. K. Hyun-pil, et al., "The Design of a Structure of Network Co-processor for SDR(Software Defined Radio)," The Journal of The Korean Institute of Communication Sciences, vol. 32, pp. 188-194, 2007.
  2. Z. Linsheng, et al., "Floating-point to Fixed-point Transformation Using Extreme Value Theory," in Computer and Information Science, 2009. ICIS 2009. Eighth IEEE/ACIS International Conference on, 2009, pp. 271-276.
  3. "IEEE Standard for Binary Floating-Point Arithmetic," ANSI/IEEE Std 754-1985, p. 0_1, 1985.
  4. "IEEE Standard for Floating-Point Arithmetic," IEEE Std 754-2008, pp. 1-58, 2008.
  5. K. Ki-Il, et al., "A floating-point to integer C converter with shift reduction for fixed-point digital signal processors," in Acoustics, Speech, and Signal Processing, 1999. ICASSP '99. Proceedings., 1999 IEEE International Conference on, 1999, pp. 2163-2166 vol.4.
  6. K. Ki-Il, et al., "AUTOSCALER for C: an optimizing floating-point to integer C program converter for fixed-point digital signal processors," Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on, vol. 47, pp. 840-848, 2000. https://doi.org/10.1109/82.868453
  7. L. Saldanha and R. Lysecky, "Float-to-fixed and fixed-to-float hardware converters for rapid hardware/software partitioning of floating point software applications to static and dynamic fixed point coprocessors," Design Automation for Embedded Systems, vol. 13, pp. 139-157, 2009. https://doi.org/10.1007/s10617-009-9044-4
  8. H. Zheng-wei, et al., "Pipeline Design of Transformation between Floating Point Numbers Based on IEEE754 Standard and 32-bit Integer Numbers," in Intelligent Information Technology and Security Informatics, 2009. IITSI '09. Second International Symposium on, 2009, pp. 92-96.
  9. H. Hu, et al., "Multiply-add fused float point unit with on-fly denormalized number processing," in Circuits and Systems, 2005. 48th Midwest Symposium on, 2005, pp. 1466-1468 Vol. 2.
  10. V. G. Oklobdzija, "An algorithmic and novel design of a leading zero detector circuit: comparison with logic synthesis," Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, vol. 2, pp. 124-128, 1994. https://doi.org/10.1109/92.273153
  11. John Hauser, SoftFloat, http://www.jhauser.us/arithmetic/SoftFloat.html
  12. DesignWare Building Block IP Documentation Overview, Synopsys, Inc., Mountain View, CA, Feb. 2009.