Deciding Which Data Type to Use in FPGA Designs
- Updated2023-12-13
- 1 minute(s) read
Deciding Which Data Type to Use in FPGA Designs
The following table describes the implications of using the integer, fixed-point, and single-precision floating-point data types for specific use cases. Use this table to help you decide which data type best suits your FPGA application.
Use Case | Data Type | Data Precision | FPGA Resource Use | Latency |
---|---|---|---|---|
You need to choose between calibrated fixed-point or uncalibrated integer I/O node outputs. | Integer | Proportional to word length. Higher dynamic range requires longer word lengths. | Proportional to word length. | Proportional to clock rate. |
Your designs include data packing of multiple integers into a 32- or 64-bit word. | ||||
Your designs require bit manipulations, such as masking or inverting. | ||||
Your designs require resource-efficient arithmetic. | Fixed-point | |||
You need to acquire analog I/O from a cRIO chassis. | ||||
You need to use High Throughput Math functions. | ||||
You need to represent very large and very small numbers in the same data path, such as with accumulators. | Single-precision floating-point | 24-bit precision is maintained even for high dynamic range data paths. | Significantly higher than fixed-point, especially for functions like Add, Subtract, and Multiply. | Requires more clock cycles to compute than operations using the fixed-point or integer data types. |
You need to rapidly prototype. Use single-precision floating-point to get functional hardware designs quickly. Convert to fixed-point as necessary to optimize FPGA performance or resource usage. |