Floating-Point IP Cores User Guide

ID 683750
Date 7/31/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4.5.1. ALTFP_DIV 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 18. ALTFP_DIV Simulation WaveformThis figure shows the expected simulation results in the ModelSim* - Intel® FPGA Edition software.

This design example implements a floating-point divider for the division of single-precision numbers with a low latency option. The output latency is 6, hence every division generates the output result 6 clock cycles later.

Table 22.  Summary of Input Values and Corresponding Outputs This table lists the inputs and corresponding outputs obtained from the simulation in the waveform.
Time Event
0 ns, start-up dataa[] value: 0000 0000h

datab[] value: 0000 0000h

Output value: The undefined value is seen on the result[] port, which is ignored. All values seen on the output port before the 6th clock cycle are merely due to the behavior of the system during start-up and should be disregarded.

17600 ns Output value: 7FC0 0000h

Exception handling ports: nan asserts

The division of zeros result in a NaN.

2000 ns dataa[] value: 2D0B 496Ah

datab[] value: 3A5A FC26h

Both inputs hold normal values.

20800 ns Output result: 321F 6EC6h

Exception output ports: nan deasserts

The division of two normal value results in a normal value.

11000 ns dataa[] value: 046E 78BCh

datab[] value: 6798 698Bh

Both inputs hold normal values.

27200 ns Output value: 0h

Exception handling ports: underflow and zero asserts

The division of the two normal values results in a denormal value. As denormal values are not supported, the result is zero and the underflow port asserts. The zero port is also asserted to indicate that the result is zero.

2600 ns dataa[] value: 0D72 54A8h

datab[] value: 0070 0000h

The input port dataa[] holds a normal value while the input port datab[] holds a denormal value.

36800 ns Output value: 7F80 0000h

Exception handling ports: division_by_zero asserts

Denormal numbers are forced-zero values, therefore, attempts to divide a normal value with a zero result in an infinity value.