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. For certain blocks such as Discrete-Time Integrator and Discrete PID Controller, use zero latency strategy. These blocks contain inherent feedback loops and using a non-value 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.

When you use half types, these blocks are supported in Native Floating Point mode.

Supported Simulink Blocks in Math Operations Library

In the Math Operations library, these blocks are supported for HDL code generation:

Block NameSupported with half data typesSupported with single data typesSupported with double data typesRemarks
AbsNoYesYes
AddYesYesYes
AssignmentNoYesYes
BiasNoYesYes
Complex to Real-ImagNoYesYes
DivideYesYesYes
Dot ProductNoYesYes
GainYesYesYes
Math FunctionNoYesNo
MinMaxNoYesYes
ProductYesYesYesIf you configure the block to perform matrix multiplication by setting the Multiplication block parameter to Matrix(*), the DotProductStrategy must be set to Fully Parallel.
Product of ElementsYesYesYes
Real-Imag to ComplexNoYesYes
Reciprocal SqrtNoYesYes
ReshapeYesYesYes
SqrtNoYesYes
SubtractYesYesYes
SumYesYesYes
Sum of ElementsYesYesYes
Trigonometric FunctionNoYesNo
Unary MinusYesYesYes
Vector ConcatenateYesYesYes

Supported Simulink Blocks in Other Libraries

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

Block LibrarySupported with half data typesSupported with single data typesSupported with double data types

Discrete

The supported blocks include the set of delay blocks including the synchronous blocks, and Integer Delay, and Tapped Delay.

The supported blocks include:

  • Zero Order Hold

  • Set of delay blocks including the synchronous blocks, and Integer Delay, and Tapped Delay.

The supported blocks include:

  • Zero Order Hold

  • Set of delay blocks including the synchronous blocks, and Integer Delay, and Tapped Delay.

HDL Operations

Blocks in this library are not supported.

All blocks are supported.

All blocks are supported.

HDL RAMs

Blocks in this library are not supported.

All blocks are supported.

All blocks are supported.

HDL Subsystems

All blocks are supported.

All blocks are supported.

All blocks are supported.

Logic and Bit Operations

Supported blocks include:

  • Compare to Constant

  • Relational Operator

  • Detect Change

  • Detect Increase

  • Detect Decrease

All blocks are supported.

All blocks are supported.

Lookup Tables

Blocks in this library are not supported.

All blocks are supported.

All blocks are supported.

Model Verification

Blocks in this library are not supported.

All blocks are supported.

All blocks are supported.

Model-Wide Utilities

Blocks in this library are not supported.

All blocks are supported.

All blocks are supported.

Ports & Subsystems

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

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

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

Signal Attributes

Supported blocks include:

  • Data Type Conversion

  • Data Type Duplicate

  • Rate Transition

  • Signal Specification

All blocks are supported.

All blocks are supported.

Signal Routing

All blocks are supported.

All blocks are supported.

All blocks are supported.

Sources

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

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

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

Sinks

All blocks are supported.

All blocks are supported.

All blocks are supported.

User-Defined Functions

MATLAB Function blocks are supported.

MATLAB Function blocks are supported.

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

Related Examples

More About