Floating-Point IP Cores User Guide

ID 683750
Date 5/05/2023
Public
Document Table of Contents

13.4.1. ALTFP_ABS Design Example: Understanding the Simulation Results

The simulation waveform in this design example is not shown in its entirety. Run the design example files in the ModelSim* - Intel® FPGA Edition software to see the complete simulation waveforms.
Figure 35. ALTFP_ABS Simulation Waveform

This design example produces a floating-point absolute value function for the multiplication results of single-precision format numbers. All the optional input ports (clk_en and aclr) and optional output ports (overflow, underflow, zero, division_by_zero, and nan) are enabled.

In this example, the latency of the multiplier is set to five clock cycles, while none is being set for the absolute value function. Thus, the absolute value result only appears at the result[] port five cycles after the input values are captured on the input ports.

The dataa[] and datab[] values in the simulation waveform above portray the two input values that are being fed to the multiplier. The value in the result[] port depicts the multiplication result that has gone through the absolute value operation.

This table lists the inputs and corresponding outputs obtained from the simulation.

Table 74.  Summary of Input Values and Corresponding Outputs
Time Event
0 ns, start-up dataa[] value: C080 0000h

datab[] value: 4000 0000h

Output value: All values seen on the output port before the 5th clock cycle are merely due to the behavior of the system during start-up and should be disregarded.

22.5 ns Output value: 4100 0000h

The multiplication of a negative number with a positive number results in a negative number. The absolute value of the result is reflected on the result[] port.

20 ns dataa[] value: 579D F479h

datab[] value: 7F80 0000h

The value of dataa[] is normal while the value of datab[] is infinity.

42.5 ns Output value: 7F80 0000h

Exception handling ports: overflow asserts

The multiplication of a normal value with infinity results in infinity and sets the overflow port in the multiplier. The absolute value of the output is infinity and the overflow port is also set as this assertion of the port is being carried through from the corresponding overflow port in the multiplier.