Simulink Blocks Supported with Native Floating-Point

HDL Coder™ native floating-point can generate target-independent HDL code from your floating-point design. You can synthesize your floating-point design on any generic FPGA or ASIC. Floating-point designs have better precision, higher dynamic range, and a shorter development cycle than fixed-point designs. If your design has complex math and trigonometric operations, use native floating-point technology.

HDL Coder supports several Simulink® blocks including math and trigonometric blocks with native floating-point technology.

HDL Floating Point Operations Library

In the HDL Floating Point Operations library, HDL Coder supports all blocks that have single and double data types in the Native Floating Point mode.

Note

Certain blocks such as Discrete-Time Integrator and Discrete PID Controller are supported in Native Floating Point mode only when they use zero latency strategy. These blocks contain inherent feedback loops and using a nonvalue for the latency strategy can result in the code generator being unable to allocate delays. For more information, see Allocate Sufficient Delays for Floating-Point Operations.

Supported Simulink Blocks in Math Operations Library

In the Math Operations library, these blocks are supported:

Block NameSupported with single data typesSupported with double data types
AbsYesYes
AddYesYes
AssignmentYesYes
BiasYesYes
Complex to Real-ImagYesYes
DivideYesYes
Dot ProductYesYes
GainYesYes
Math FunctionYesNo
MinMaxYesYes
ProductYesYes
Product of ElementsYesYes
Real-Imag to ComplexYesYes
Reciprocal SqrtYesYes
ReshapeYesYes
SqrtYesYes
SubtractYesYes
SumYesYes
Sum of ElementsYesYes
Trigonometric FunctionYesNo
Unary MinusYesYes
Vector ConcatenateYesYes

Supported Simulink Blocks in Other Libraries

The table shows the list of supported blocks in other HDL Coder block libraries.

Block LibrarySupported blocks with single and double data types

Discrete

The supported blocks include Zero Order Hold and the set of delay blocks including Integer Delay and Tapped Delay.

HDL Operations

All blocks are supported.

HDL RAMs

All blocks are supported.

HDL Subsystems

All blocks are supported.

Logic and Bit Operations

All blocks are supported.

Lookup Tables

Table data of Direct Lookup Table (n-D) and n-D Lookup Table blocks are supported with floating-point data types. The inputs must not use floating-point types.

Model Verification

All blocks are supported.

Model-Wide Utilities

All blocks are supported.

Ports & Subsystems

Enable, reset, input, and output ports, model references, and subsystem blocks are supported.

Signal Attributes

All blocks are supported.

Signal Routing

All blocks are supported.

Sources

The supported blocks include Inport, Constant, and Ground blocks.

Sinks

All blocks are supported.

User-Defined Functions

MATLAB Function blocks are supported.

Simulink Block Restrictions

In native floating-point mode, the code generator does not support these blocks or block architectures:

  • Biquad Filter.

  • Switch block with input to the control port as a floating-point type.

  • Sum of Elements with complex input types.

  • MATLAB System blocks.

  • Dot Product in complex mode with Architecture as Tree or Linear.

  • Discrete FIR Filter with Architecture other than Fully Parallel.

  • Dead Zone and Dead Zone Dynamic.

  • Polar to Cartesian.

  • For the Data Type Conversion block:

    • Stored Integer (SI) mode for Input and output to have equal setting is not supported.

    • The Saturate on integer overflow check box must be left cleared.

See Also

Modeling Guidelines

Functions

Properties

Related Examples

More About