| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Simulink HDL Coder |
| Contents | Index |
The following table summarizes all blocks that are supported for HDL code generation and their available implementations in the current release. The columns signify
Simulink Block: Library path and block name.
Blockscope: Block path and name to be passed as a blockscope string argument to forEach or forAll.
Implementations and Parameters: Names of available implementations, and parameters supported for the implementation (if any). For blocks that have more than one implementation listed, see Blocks with Multiple Implementations for information on the trade-offs involved in choosing different implementations.
When specifying an implementation argument to forEach or forAll, use the format package.class, for example, hdldefaults.AssignmentHDLEmission or hdlstateflow.StateflowHDLInstantiation. Almost all implementation classes currently belong to the package hdldefaults. In the following table, the package name is given explicitly only for classes that belong to some other package.
See Block Implementation Parameters for information on implementation parameters and how to specify them.
Some blocks have specific requirements and restrictions on how they are configured for HDL code generation. The table provides links to relevant documentation for blocks that have such requirements.
Note Support for complex signals is limited to a subset of the blocks listed in this section. See Blocks That Support Complex Data. |
| Simulink Block | Blockscope | Implementations and Parameters |
|---|---|---|
commseqgen2/PN Sequence Generator (See PN Sequence Generator Block Requirements and Restrictions.) | commseqgen2/PN Sequence Generator | PNgenHDLEmission Parameters: OutputPipeline, InputPipeline |
discoverylib/HDL Cosimulation | lfilinklib/HDL Cosimulation | hdldiscovery.DiscoveryHDLInstantiation Parameters: See Interface Generation Parameters. |
dspadpt3/LMS Filter (See LMS Filter Usage and Restrictions.) | dspadpt3/LMS Filter | LMSFilterHDLEmission Parameters: OutputPipeline, InputPipeline |
dsparch4/Biquad Filter (See Biquad Filter Block Requirements and Restrictions, CoeffMultipliers.) | dsparch4/Biquad Filter | BiquadFilterHDLInstantiation Parameters: OutputPipeline, InputPipeline, CoeffMultipliers |
dsparch4/Digital Filter (See Digital Filter Block Requirements and Restrictions, CoeffMultipliers,Distributed Arithmetic Implementation Parameters for Digital Filter Blocks.) | dsparch4/Digital Filter | DigitalFilterHDLInstantiation Parameters: OutputPipeline, InputPipeline, CoeffMultipliers, DALUTPartition, DARadix |
dspindex/Multiport Selector | dspindex/Multiport Selector | MultiportSelectorHDLEmission Parameters: OutputPipeline, InputPipeline |
dspindex/Variable Selector | dspindex/Variable Selector | VariableSelectorHDLEmission Parameters: OutputPipeline, InputPipeline |
dspmlti4/CIC Decimation (See Multirate CIC Decimation and Multirate FIR Decimation Blocks Requirements and Restrictions.) | dspmlti4/CIC Decimation | CICDecimationHDLInstantiation Parameters: OutputPipeline, InputPipeline |
dspmlti4/CIC Interpolation (See Multirate CIC Interpolation and Multirate FIR Interpolation Blocks Requirements and Restrictions.) | dspmlti4/CIC Interpolation | CICInterpolationHDLInstantiation Parameters: OutputPipeline, InputPipeline |
dspmlti4/FIR Decimation (See Multirate CIC Decimation and Multirate FIR Decimation Blocks Requirements and Restrictions, CoeffMultipliers.) | dspmlti4/FIR Decimation | FIRDecimationHDLInstantiation Parameters: OutputPipeline, InputPipeline, CoeffMultipliers |
dspmlti4/FIR Interpolation (See Multirate CIC Interpolation and Multirate FIR Interpolation Blocks Requirements and Restrictions, CoeffMultipliers.) | dspmlti4/FIR Interpolation | FIRInterpolationHDLInstantiation Parameters: OutputPipeline, InputPipeline, CoeffMultipliers |
dspsigattribs/Convert 1-D to 2-D | dspsigattribs/Convert 1-D to 2-D | PassThroughHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsigattribs/Data Type Conversion | built-in/ DataTypeConversion | DataTypeConversion DataTypeConversionRTW DataTypeConversionHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsigattribs/Frame Conversion | built-in/FrameConversion | FrameConversionHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsigops/Delay | dspsigops/Delay | DSPDelayHDLEmission Parameters: OutputPipeline, InputPipeline, ResetType |
dspsigops/Downsample | dspsigops/Downsample | DownsampleHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsigops/Upsample | dspsigops/Upsample | UpsampleHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsigops/NCO (See NCO Block Requirements and Restrictions.) | dspsigops/NCO | NCOHDLEmission Parameters: OutputPipeline, InputPipeline |
dspsnks4/Matrix Viewer | dspsnks4/Matrix Viewer | NoHDLEmission |
dspsnks4/Signal To Workspace | dspsnks4/Signal To Workspace | NoHDLEmission |
dspsnks4/Spectrum Scope | dspsnks4/Spectrum Scope | NoHDLEmission |
dspsnks4/Time Scope | built-in/Scope | NoHDLEmission |
dspsnks4/Vector Scope | dspsnks4/Vector Scope | NoHDLEmission |
dspsnks4/Waterfall | dspsnks4/Waterfall | NoHDLEmission |
dspsrcs4/DSP Constant | dspsrcs4/DSP Constant | Constant (default) ConstantHDLEmission Parameters: OutputPipeline |
dspsrcs4/Sine Wave (See Sine Wave Block Requirements and Restrictions.) | dspsrcs4/Sine Wave | SineWaveHDLEmission Parameters: OutputPipeline, InputPipeline |
dspstat3/Maximum | dspstat3/Maximum | MinMaxTree MinMaxCascade MinMaxTreeHDLEmission MinMaxCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
dspstat3/Minimum | dspstat3/Minimum | MinMaxTree MinMaxCascade MinMaxTreeHDLEmission MinMaxCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
hdldemolib/Bit Concat (See Bitwise Operators.) | hdldemolib/Bit Concat | BitConcat Parameters: OutputPipeline, InputPipeline. |
hdldemolib/Bit Reduce (See Bitwise Operators.) | hdldemolib/Bit Reduce | BitReduce Parameters: OutputPipeline, InputPipeline |
hdldemolib/Bit Rotate (See Bitwise Operators.) | hdldemolib/Bit Rotate | BitRotate Parameters: OutputPipeline, InputPipeline |
hdldemolib/Bit Shift (See Bitwise Operators.) | hdldemolib/Bit Shift | BitShift Parameters: OutputPipeline, InputPipeline |
hdldemolib/Bit Slice (See Bitwise Operators.) | hdldemolib/Bit Slice | BitSlice Parameters: OutputPipeline, InputPipeline |
hdldemolib/Dual Port RAM (See Dual Port RAM Block.) | hdldemolib/Dual Port RAM | RamBlockDualHDLInstantiation Parameters: OutputPipeline, InputPipeline, RAMStyle |
hdldemolib/HDL Counter (See HDL Counter.) | hdldemolib/HDL Counter | HDLCounterHDLEmission Parameters: OutputPipeline, InputPipeline |
hdldemolib/HDL FFT (See HDL FFT.) | hdldemolib/HDL FFT | FFTDITMRHDLEmission Parameters: OutputPipeline, InputPipeline |
hdldemolib/HDL Streaming FFT (See HDL Streaming FFT | hdldemolib/HDLStreaming FFT | FFT Parameters: OutputPipeline, InputPipeline |
hdldemolib/Simple Dual Port RAM (See Simple Dual Port RAM Block. ) | hdldemolib/Simple Dual Port RAM | RamBlockSimpDualHDLInstantiation Parameters: OutputPipeline, InputPipeline, RAMStyle |
hdldemolib/Single Port RAM (See Single Port RAM Block.) | hdldemolib/Single Port RAM | RamBlockSingleHDLInstantiation Parameters: OutputPipeline, InputPipeline, RAMStyle |
lfilinklib/HDL Cosimulation | lfilinklib/HDL Cosimulation | hdlincisive.IncisiveHDLInstantiation Parameters: See Interface Generation Parameters. |
modelsimlib/HDL Cosimulation | modelsimlib/HDL Cosimulation | ModelSimHDLInstantiation Parameters: See Interface Generation Parameters. |
modelsimlib/To VCD File | modelsimlib/To VCD File | NoHDLEmission |
sflib/Chart (See Stateflow HDL Code Generation Support.) | sflib/Chart | hdlstateflow Parameters: OutputPipeline, InputPipeline, DistributedPipelining, ResetType |
sflib/Truth Table | sflib/Truth Table | hdlstateflow Parameters: OutputPipeline, InputPipeline, DistributedPipelining, ResetType |
Signal Routing/From | built-in/From | FromBlock Parameters: OutputPipeline, InputPipeline |
Signal Routing/Go To | built-in/Goto | GotoBlock Parameters: OutputPipeline, InputPipeline |
simulink/Additional Math & Discrete/Additional Discrete/Unit Delay Enabled | simulink/Additional Math & Discrete/Additional Discrete/Unit Delay Enabled | UnitDelayEnabledHDLEmission Parameters: OutputPipeline, InputPipeline, ResetType |
simulink/Additional Math & Discrete/ | simulink/Additional Math & Discrete/ | IncrementOrDecrementRWV Parameters: OutputPipeline, InputPipeline |
simulink/Additional Math & Discrete/ | simulink/Additional Math & Discrete/ | IncrementOrDecrementRWV Parameters: OutputPipeline, InputPipeline |
simulink/Additional Math & Discrete/ | simulink/Additional Math & Discrete/ | IncrementOrDecrementSI Parameters: OutputPipeline, InputPipeline |
simulink/Additional Math & Discrete/ | simulink/Additional Math & Discrete/ | IncrementOrDecrementSI Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Constant | built-in/Constant | Constant (default) ConstantHDLEmission ConstantSpecialHDLEmission Parameters: Both implementations support OutputPipeline. ConstantSpecialHDLEmission also supports Value parameter (see Built-In/Constant). |
simulink/Commonly Used Blocks/Data Type Conversion | built-in/ DataTypeConversion | DataTypeConversionRTW DataTypeConversionHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks /Discrete-Time Integrator (See Discrete-Time Integrator Requirements and Restrictions.) | built-in/ | DiscreteTimeIntegratorRTW Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Demux | built-in/Demux | Demux (default) DemuxHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Gain | built-in/Gain | GainMultHDLEmission GainFCSDHDLEmission GainCSDHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Commonly Used Blocks/Ground | built-in/Ground | Constant (default) ConstantHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/In1 | built-in/Inport | NoHDLEmission (Input ports are generated automatically.) |
simulink/Commonly Used Blocks/Logical Operator | built-in/Logic | LogicHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Mux | built-in/Mux | Mux (default) MuxHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Out1 | built-in/Outport | NoHDLEmission (Output ports are generated automatically.) |
simulink/Commonly Used Blocks/Product | built-in/Product | ProductRTW ProductLinearHDLEmission ProductTree ProductTreeHDLEmission ProductCascade ProductCascadeHDLEmission RecipNewtonHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. Note: ProductTree and ProductCascade are supported for Product blocks having a single vector input that has two or more elements. |
simulink/Commonly Used Blocks/Relational Operator | built-in/ | RelationalOperatorHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Scope | built-in/Scope | NoHDLEmission |
simulink/Commonly Used Blocks/Sum | built-in/Sum | SumRTW SumLinearHDLEmission SumTreeHDLEmission SumCascade SumCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. Note: SumTreeHDLEmission and SumCascade are supported for Sum blocks having a single vector input that has two or more elements. |
simulink/Commonly Used Blocks/Switch | built-in/Switch | SwitchRTW (default) SwitchHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Commonly Used Blocks/Terminator | built-in/Terminator | NoHDLEmission |
simulink/Commonly Used Blocks/Unit Delay | built-in/UnitDelay | UnitDelayRTW UnitDelayHDLEmission Parameters: OutputPipeline, InputPipeline, ResetType |
simulink/Discontinuties | simulink/Discontinuties | SaturationDynamic Parameters: OutputPipeline, InputPipeline |
simulink/Discrete /Discrete FIR Filter (See CoeffMultipliers,Distributed Arithmetic Implementation Parameters for Digital Filter Blocks.) | built-in/ | DiscreteFIRFilterHDLInstantiation Parameters: CoeffMultipliers, DALUTPartition, DARadix, OutputPipeline, InputPipeline |
simulink/Discontinuities /Saturation | built-in//Saturation | SaturationHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Discrete/Integer Delay | simulink/ | IntegerDelayHDLEmission Parameters: OutputPipeline, InputPipeline, ResetType |
simulink/Discrete/Memory | built-in/Memory | MemoryHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Discrete/Tapped Delay | simulink/Discrete/ | TappedDelayHDLEmission Parameters: OutputPipeline, InputPipeline, ResetType |
simulink/Discrete/ Zero-Order Hold | built-in/ZeroOrderHold | ZeroOrderHoldHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Bit Clear | simulink/Logic and Bit Operations/Bit Clear | BitOpsHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Bit Set | simulink/Logic and Bit Operations/Bit Set | BitOpsHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Bitwise Operator | simulink/Logic and Bit Operations/Bitwise Operator | BitOpsHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Compare To Constant | simulink/Logic and Bit Operations/Compare To Constant | CompareToConstHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Extract Bits | simulink/Logic and Bit Operations/Extract Bits | ExtractBits Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Compare To Zero | simulink/Logic and Bit Operations/Compare To Zero | CompareToZeroHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Logic and Bit Operations/Shift Arithmetic | simulink/Logic and Bit Operations/Shift Arithmetic | BitOpsHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Lookup Tables/Direct Lookup Table (n-D) (See Using Lookup Table Blocks) | built-in/Direct Lookup Table (n-D) | DirectLookupTable |
simulink/Lookup Tables/Lookup Table (See Using Lookup Table Blocks.) | built-in/Lookup | LookupHDLInstantiation LookupHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Lookup Tables/Lookup Table (n-D) (See Using Lookup Table Blocks) | built-in/Lookup_n-D | LookupTableND |
simulink/Lookup Tables/Prelookup (See Using Lookup Table Blocks) | built-in/Prelookup | Prelookup |
simulink/Math Operations/Abs | built-in/Abs | AbsHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Add | built-in/Sum | SumRTW SumTreeHDLEmission SumLinearHDLEmission SumCascade SumCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. Note: SumTreeHDLEmission and SumCascade are supported for Add blocks having a single vector input with multiple elements. |
simulink/Math Operations/Assignment | built-in/Assignment | AssignmentHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Complex to Real-Imag | built-in /ComplexToRealImag | ComplexToRealImag (default) ComplexToRealImagHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Divide (See Divide Block Implementations for information on computation of reciprocal.) | built-in/Product | ProductRTW ProductLinearHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Math Operations/Divide/reciprocal (The reciprocal operation is a special case, supporting two implementations, as described in Divide Block Implementations.) | built-in/Product | ProductLinearHDLEmission RecipNewtonHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Math Operations/Math Function (sqrt, reciprocal, conj, hermitian, transpose) | built-in/Math | |
simulink/Math Operations/Matrix Concatenate | built-in/Concatenate | MuxHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/MinMax | built-in/MinMax | MinMaxTree MinMaxCascade MinMaxCascadeHDLEmission MinMaxTreeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Math Operations/Product of Elements | built-in/Product | ProductRTW ProductTree ProductTreeHDLEmission ProductLinearHDLEmission ProductCascade ProductCascadeHDLEmission RecipNewtonHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. |
simulink/Math Operations/Real-Imag to Complex | built-in /RealImagtoComplex | RealImagtoComplex (default) RealImagtoComplexHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Reshape | simulink/Math Operations/Reshape | PassThroughHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Sign | built-in/Signum | SignumHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Subtract | built-in/Sum | SumRTW SumTree SumTreeHDLEmission SumLinearHDLEmission SumCascade SumCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. Note: SumTree and SumCascade are supported for Subtract blocks having a single vector input with multiple elements. |
simulink/Math Operations/Sum of Elements | built-in/Sum | SumRTW SumTree SumTreeHDLEmission SumLinearHDLEmission SumCascade SumCascadeHDLEmission Parameters: All implementations support OutputPipeline, InputPipeline. Note: SumTree and SumCascade are supported for Sum of Elements blocks having a single vector input with multiple elements. |
simulink/Math Operations/Unary Minus | built-in/UnaryMinus | UnaryMinusHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Math Operations/Vector Concatenate | built-in/Concatenate | MuxHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Model Verification/Assertion | built-in/Assertion | NoHDLEmission |
simulink/Model Verification/Check Discrete Gradient | simulink/Model Verification/Check Discrete Gradient | NoHDLEmission |
simulink/Model Verification/Check Dynamic Gap | simulink/Model Verification/Check Dynamic Gap | NoHDLEmission |
simulink/Model Verification/Check Dynamic Lower Bound | simulink/Model Verification/Check Dynamic Lower Bound | NoHDLEmission |
simulink/Model Verification/Check Dynamic Range | simulink/Model Verification/Check Dynamic Range | NoHDLEmission |
simulink/Model Verification/Check Dynamic Upper Bound | simulink/Model Verification/Check Dynamic Upper Bound | NoHDLEmission |
simulink/Model Verification/Check Input Resolution | simulink/Model Verification/Check Input Resolution | NoHDLEmission |
simulink/Model Verification/Check Static Gap | simulink/Model Verification/Check Static Gap | NoHDLEmission |
simulink/Model Verification/Check Static Lower Bound | simulink/Model Verification/Check Static Lower Bound | NoHDLEmission |
simulink/Model Verification/Check Static Range | simulink/Model Verification/Check Static Range | NoHDLEmission |
simulink/Model Verification/Check Static Upper Bound | simulink/Model Verification/Check Static Upper Bound | NoHDLEmission |
simulink/Model-Wide Utilities/DocBlock | simulink/Model-Wide Utilities/DocBlock | DocBlockHDLEmission NoHDLEmission |
simulink/Ports & Subsystems/Enable | built-in/Enable | EnablePort |
simulink/Ports & Subsystems/Trigger | built-in/Trigger | TriggerPort |
simulink/Ports & Subsystems/Model | built-in/ModelReference | ModelReferenceHDLInstantiation Parameters: See Interface Generation Parameters. |
simulink/Signal Attributes/Data Type Duplicate | simulink/Signal Attributes/Data Type Duplicate | NoHDLEmission |
simulink/Signal Attributes/Data Type Propagation | simulink/Signal Attributes/Data Type Propagation | NoHDLEmission |
simulink/Signal Attributes/Rate Transition | built-in/RateTransition | RateTransitionHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Signal Attributes/Signal Conversion | built-in/SignalConversion | PassThroughHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Signal Attributes/Signal Specification | built-in/ SignalSpecification | SignalSpecificationHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Signal Routing/Index Vector | built-in/MultiPortSwitch | MultiPortSwitchHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Signal Routing/Multiport Switch | built-in/MultiPortSwitch | MultiPortSwitchHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Signal Routing/Selector | built-in/Selector | SelectorHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Sinks/Display | built-in/Display | NoHDLEmission |
simulink/Sinks/Floating Scope | built-in/Scope | NoHDLEmission |
simulink/Sinks/Stop Simulation | built-in/Stop | NoHDLEmission |
simulink/Sinks/To File | built-in/ToFile | NoHDLEmission |
simulink/Sinks/To Workspace | built-in/ToWorkspace | NoHDLEmission |
simulink/Sinks/XY Graph | simulink/Sinks/XY Graph | NoHDLEmission |
simulink/Sources/Counter Free-Running | simulink/Sources/Counter Free-Running | CounterFreeRunningHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/Sources/Counter Limited | simulink/Sources/Counter Limited | CounterLimitedHDLEmission Parameters: OutputPipeline, InputPipeline |
simulink/User-Defined Functions/Embedded MATLAB Function (See Generating HDL Code with the Embedded MATLAB Function Block.) | simulink/User-Defined Functions/Embedded MATLAB Function | hdlstateflow Parameters: OutputPipeline, InputPipeline, DistributedPipelining |
![]() | Specifying Block Implementations and Parameters for HDL Code Generation | Blocks with Multiple Implementations | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |