|
|
Floating Point Arithmetic CoprocessorThe DFPAU is a Floating Point Arithmetic Coprocessor, designed to assist CPU in performing the floating point arithmetic computations. The DFPAU directly replaces C software functions, by equivalent, very fast hardware operations, which significantly accelerate system performance. It does not require any programming, so it also does not require any modifications of the main software. Everything is done automatically during software compilation by the DFPAU C driver. The DFPAU was designed to operate with DCD’s DP8051, but can also operate with any other 8-, 16- and 32-bit processor. Drivers for all popular 8051 C compilers are delivered together with the DFPAU package. The DFPAU uses the specialized algorithms to compute arithmetic functions. It supports addition, subtraction, multiplication, division, square root, comparison, absolute value, and change sign of a number. The input numbers format is according to IEEE-754 standard single precision real numbers. DFPAU is prepared to use with 8-, 16- and 32-bit processors. Trigonometric functions are supported indirectly, because they are computed as set of add, multiply and divide operations by software subroutines. The DFPAU is a technology independent design that can be implemented in a variety of process technologies.
The tables and figures below illustrates the system with DFPAU performance improvements for two typical CPU. The DFPAU floating point instructions performance has been compared to standard C library functions delivered with every commercial C compiler. Each program was executed in the same system environments. Number of clock periods were measured between input data loading into work registers and output result storing after operation. The results are placed in tables below. Improvement has been computed as a number of clock cycles required by the CPU to compute FP operation, by the number of clocks required to compute the same operation by system of CPU with DFPAU:
datai1 (31:0)
![]() datao1 (31:0)
![]() addr2 (4:0)
![]() cs
![]() we
![]() irq
![]()
clk
![]() rst
![]() AlignIt performs the numbers analyze against IEEE-754 standard compliance. Information about the data classes are passed as result to appro-priate internal module.ExponentIt performs operations on exponent part of number. The addition, subtraction, shifting, comparison and conversion operations are executed in this module. It contains exponents and work registers.InterfaceIt is an interface between external device and DFPAU internal 32-bit modules. It contains data, control and status registers. It can be configured to work with 8-, 16- and 32-bit processors.1 - data bus can be configured as 8-, 16- or 32- bit depends on processor’s bus size 2 - address bus is aligned to work with 8- (3:0), 16- (3:1) or 32- (4:2) bit processors MantissaIt performs operations on mantissa part of number. The addition, subtraction, multiplication, division, square root, comparison and conversion operations are executed in this module. It contains mantissas and work registers.ShifterIt performs mantissa shifting during normalization, denormalization operations. Information about shifted-out bits are stored for rounding process.Control UnitIt manages execution of all instructions and internal operation required to execute particular function.
DFPAU implementation results for ALTERA devices. The all features have been included.
DFPAU implementation results for XILINX devices. The all features have been included.
DFPAU implementation results for LATTICE devices. The all features have been included.
The main features of each Arithmetic Coprocessors family member has been summarized in table above. It gives a briefly member characterization helping user to select the most suitable IP Core for its application. |
Home
Site map
Contact Us





clk
datai1 (31:0)
addr2 (4:0)


