Main Content

Basic HDL Algorithms

Create simple HDL designs using basic Simulink® blocks

The HDL Coder block library contains many basic blocks that you can add to your Simulink modeling environment and develop your HDL algorithm. These blocks include input sources, output sinks, and blocks that perform basic to complex math and trigonometric operations.

To filter the Simulink Library Browser to show only HDL-supported blocks, enter hdllib. The blocks listed in this section include those blocks that are only available in the HDL Coder library. Blocks such as Add and Product are available in the Simulink library in the Library Browser.

For a filtered list of Simulink blocks supported for HDL code generation, see Simulink Block List (HDL Code Generation).


hdllibDisplay blocks that are compatible with HDL code generation


expand all

Bit ConcatConcatenates up to 128 input words into single output
Bit ReduceAND, OR, or XOR bit reduction on all input signal bits to single bit
Bit RotateRotate input signal by bit positions
Bit ShiftLogical or arithmetic shift of input signal
Bit SliceReturn field of consecutive bits from input signal
Cosine HDL OptimizedImplement fixed-point cosine wave optimized for HDL code generation
Sine HDL OptimizedImplement fixed-point sine wave by using lookup table approach optimized for HDL code generation
HDL CounterFree-running or count-limited hardware counter


Basic Modeling

Model and Debug Test Point Signals with HDL Coder

An example that shows how to add test points to signals in your model and debug these signals in the generated HDL code.

Generate DUT Ports for Tunable Parameters

Generate DUT ports for tunable parameters.

Generate Code with Annotations or Comments

How to add annotations to generated HDL code using the DocBlock and model annotations

Scalarization of Vector Ports in Generated VHDL Code

Flatten vector signals on entire model or at DUT level into a structure of scalar signals in generated VHDL code.

Simulate and Generate HDL Code for the Float Typecast Block

Use Float Typecast block to cast input to floating-point or fixed-point.

Data Type Support

Supported Data Types and Scope

MATLAB® data type and scope support for HDL code generation.

Signal and Data Type Support

HDL code generation support for signal types and data types.

Featured Examples