Implement discrete transfer function
Simulink / Discrete
HDL Coder / Discrete
HDL Coder / HDL Floating Point Operations
The Discrete Transfer Fcn block implements the ztransform transfer function as follows:
$$H(z)=\frac{num(z)}{den(z)}=\frac{nu{m}_{0}{z}^{m}+nu{m}_{1}{z}^{m1}+\mathrm{...}+nu{m}_{m}}{de{n}_{0}{z}^{n}+de{n}_{1}{z}^{n1}+\mathrm{...}+de{n}_{n}}$$
where m+1 and n+1 are the number of numerator and denominator coefficients, respectively. num and den contain the coefficients of the numerator and denominator in descending powers of z. num can be a vector or matrix, while den must be a vector. The order of the denominator must be greater than or equal to the order of the numerator.
Specify the coefficients of the numerator and denominator polynomials in descending powers of z. This block lets you use polynomials in z to represent a discrete system, a method that control engineers typically use. Conversely, the Discrete Filter block lets you use polynomials in z^{1} (the delay operator) to represent a discrete system, a method that signal processing engineers typically use. The two methods are identical when the numerator and denominator polynomials have the same length.
The Discrete Transfer Fcn block applies the ztransform transfer function to each independent channel of the input. The Input processing parameter allows you to specify whether the block treats each column of the input as an individual channel (framebased processing) or each element of the input as an individual channel (samplebased processing). To perform framebased processing, you must have a DSP System Toolbox™ license.
Use the Initial states parameter to specify initial filter states. To determine the number of initial states you must specify and how to specify them, use the following tables.
FrameBased Processing
Input  Number of Channels  Valid Initial States (Dialog Box)  Valid Initial States (Input Port) 

 1 


 N 


SampleBased Processing
Input  Number of Channels  Valid Initial States (Dialog Box)  Valid Initial States (Input Port) 

 1 


 N 


 K × N 


When the Initial states is a scalar, the block initializes all filter
states to the same scalar value. To initialize all states to zero, enter
0
. When the Initial states is a vector
or a matrix, each vector or matrix element specifies a unique initial state for a
corresponding delay element in a corresponding channel:
The vector length must equal the number of delay elements in the
filter, M = max(number of zeros, number of
poles)
.
The matrix must have the same number of rows as the number of delay
elements in the filter, M = max(number of zeros, number of
poles)
. The matrix must also have one column for each
channel of the input signal.
The following example shows the relationship between the initial filter output and the initial input and state. Given an initial input u_{1}, the first output y_{1} is related to the initial state [x_{1}, x_{2}] and initial input by as follows:
$$\begin{array}{l}y1=4x1\\ x2=1/2(u13x1)\end{array}$$
u
— Input signalInput signal, specified as a scalar, vector, or matrix.
Data Types: single
 double
 int8
 int16
 int32
 fixed point
Num
— Numerator coefficientsCoefficients of the numerator polynomial specified as a vector or matrix in descending powers of z. Use a row vector to specify the coefficients for a single numerator polynomial. Use a matrix to specify coefficients for multiple filters to be applied to the same input. Each matrix row represents a set of filter taps. The order of the denominator must be greater than or equal to the order of the numerator.
To enable this port, set Numerator Source to
Input port
.
Numerator and denominator coefficients must have the same complexity. They can have different word lengths and fraction lengths.
Data Types: single
 double
 int8
 int16
 int32
 fixed point
Den
— Denominator coefficientsCoefficients of the denominator polynomial specified as a vector in descending powers of z. Use a row vector to specify the coefficients for a single denominator polynomial. Use a matrix to specify coefficients for multiple filters to be applied to the same input. Each matrix row represents a set of filter taps. The order of the denominator must be greater than or equal to the order of the numerator.
To enable this port, set Denominator Source
to Input port
.
Numerator and denominator coefficients must have the same complexity. They can have different word lengths and fraction lengths.
Data Types: single
 double
 int8
 int16
 int32
 fixed point
External reset
— External reset signalExternal reset signal, specified as a scalar. When the specified trigger event occurs, the block resets the states to their initial conditions.
The icon for this port changes based on the value of the External reset parameter.
To enable this port, set External reset to
Rising
,
Falling
,
Either
,
Level
, or Level
hold
.
The reset signal must be a scalar of type single, double, Boolean, or integer.
Fixedpoint data types, except for ufix1
, are not
supported.
Data Types: single
 double
 Boolean
 int8
 int16
 int32
 fixed point
x0
— Initial statesInitial states, specified as a scalar, vector, or matrix. For more information about specifying states, see Specifying Initial States. States are complex when either the input or the coefficients are complex.
To enable this port, set Initial states
Source to Input
port
.
Data Types: single
 double
 int8
 int16
 int32
 fixed point
Port_1
— Output signalOutput signal specified as a scalar, vector, or matrix.
Data Types: single
 double
 int8
 int16
 int32
 fixed point
Numerator Source
— Source of numerator coefficientsDialog
(default)  Input port
Specify the source of the numerator coefficients as
Dialog
or Input
port
.
Block Parameter:
NumeratorSource 
Type: character vector 
Values:
'Dialog'  'Input port' 
Default:
'Dialog'

Numerator Value
— Numerator coefficients[1]
(default)  scalar  vector  matrixNumerator coefficients of the discrete transfer function. To specify the coefficients,
set the Source to
Dialog
. Then, enter the coefficients in
Value as descending powers of
z. Use a row vector to specify the coefficients
for a single numerator polynomial. Use a matrix to specify coefficients
for multiple filters to be applied to the same input. Each matrix row
represents a set of filter taps.
To enable this parameter, set the Numerator
Source to Dialog
.
Block Parameter:
Numerator 
Type: character vector 
Values: scalar  vector  matrix 
Default:
'[1]'

Denominator Source
— Source of denominator coefficientsDialog
(default)  Input port
Specify the source of the denominator coefficients as
Dialog
or Input
port
.
Block Parameter:
DenominatorSource 
Type: character vector 
Values:
'Dialog'  'Input port' 
Default:
'Dialog'

Denominator Value
— Denominator coefficients[1 0.5]
(default)  scalar  vector  matrixDenominator coefficients of the discrete transfer function. To specify
the coefficients, set the Source to
Dialog
. Then, enter the coefficients in
Value as descending powers of
z. Use a row vector to specify the coefficients
for a single denominator polynomial. Use a matrix to specify
coefficients for multiple filters to be applied to the same input. Each
matrix row represents a set of filter taps.
To enable this parameter, set the Denominator
Source to Dialog
.
Block Parameter:
Denominator 
Type: character vector 
Values: scalar  vector  matrix 
Default:
'[1 0.5]'

Initial states Source
— Source of initial statesDialog
(default)  Input port
Specify the source of the initial states as
Dialog
or Input
port
.
Block Parameter:
InitialStatesSource 
Type: character vector 
Values:
'Dialog'  'Input port' 
Default:
'Dialog'

Initial states Value
— Initial filter states0
(default)  scalar  vector  matrixSpecify the initial filter states as a scalar, vector, or matrix. To learn how to specify initial states, see Specifying Initial States.
To enable this parameter, set Initial states
Source to Dialog
.
Block Parameter:
InitialStates 
Type: character vector 
Values: scalar  vector  matrix 
Default:
'0'

External reset
— External state resetNone
(default)  Rising
 Falling
 Either
 Level
 Level hold
Specify the trigger event to use to reset the states to the initial conditions.
Reset Mode  Behavior 

None  No reset 
Rising  Reset on a rising edge 
Falling  Reset on a falling edge 
Either  Reset on either a rising or falling edge 
Level  Reset in either of these cases:

Level hold  Reset when the reset signal is nonzero at the current time step 
Block Parameter:
ExternalReset 
Type: character vector 
Values: 'None' 
'Rising'  'Falling' 
'Either'  'Level'  'Level
hold' 
Default: 'None' 
Input processing
— Sample or framebased processingElements as channels (sample
based)
(default)  Columns as channels (frame based)
Specify whether the block performs sample or framebased processing.
Elements as channels (sample based)
— Process each element of the input as an independent
channel.
Columns as channels (frame based)
— Process each column of the input as an independent
channel.
Framebased processing requires a DSP System Toolbox license.
For more information, see Sample and FrameBased Concepts (DSP System Toolbox).
Block Parameter:
InputProcessing 
Type: character vector 
Values:
'Elements as channels (sample based)'  'Columns as
channels (frame based)' 
Default:
'Elements as channels (sample
based)' 
Optimize by skipping divide by leading denominator coefficient (a0)
— Skip divide by a0off
(default)  on
Select when the leading denominator coefficient, a_{0}, equals 1. This parameter optimizes your code.
When you select this check box, the block does not perform a dividebya_{0} either in simulation or in the generated code. An error occurs if a_{0} is not equal to one.
When you clear this check box, the block is fully tunable during simulation, and performs a dividebya_{0} in both simulation and code generation.
Block Parameter:
a0EqualsOne

Type: character vector 
Values:
'off'  'on' 
Default:
'off'

Sample time (1 for inherited)
— Interval between samples1
(default)  scalar  vectorSpecify the time interval between samples. To inherit the sample time,
set this parameter to 1
. For more information, see
Specify Sample Time.
Block Parameter:
SampleTime 
Type: character vector 
Values: scalar  vector 
Default:
'1' 
State
— State data typeInherit: Same as input
(default)  int8
 int16
 int32
 int64
 fixdt(1,16,0)
 <data type expression>
Specify the state data type. You can set it to:
A rule that inherits a data type, for example,
Inherit: Same as input
A builtin integer, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Numerator coefficients
— Numerator coefficient data typeInherit: Inherit via internal
rule
(default)  int8
 int16
 int32
 int64
 fixdt(1,16)
 fixdt(1,16,0)
 <data type expression>
Specify the numerator coefficient data type. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin integer, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
NumCoeffDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'int8'  'int16'
 'int32'  'int64'  'fixdt(1,16)'  'fixdt(1,16,0)' 
'<data type expression>' 
Default:
'Inherit: Inherit via internal rule' 
Numerator coefficient minimum
— Minimum value of numerator coefficients[]
(default)  scalarSpecify the minimum value that a numerator coefficient can have. The
default value is []
(unspecified). Simulink^{®} software uses this value to perform:
Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Automatic scaling of fixedpoint data types
Block Parameter:
NumCoeffMin 
Type: character vector 
Values: scalar 
Default:
'[]' 
Numerator coefficient maximum
— Maximum value of numerator coefficients[]
(default)  scalarSpecify the maximum value that a numerator coefficient can have. The
default value is []
(unspecified). Simulink software uses this value to perform:
Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Automatic scaling of fixedpoint data types
Block Parameter:
NumCoeffMax 
Type: character vector 
Values: scalar 
Default:
'[]' 
Numerator product output
— Numerator product output data typeInherit: Inherit via internal
rule
(default)  Inherit: Same as input
 int8
 int16
 int32
 int64
 fixdt(1,16,0)
 <data type expression>
Specify the product output data type for the numerator coefficients. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin data type, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
NumProductDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'Inherit: Same
as input'  'int8'  'int16'  'int32'  'int64' 
'fixdt(1,16,0)'  '<data type
expression>' 
Default:
'Inherit: Inherit via interal rule' 
Numerator accumulator
— Numerator accumulator data typeInherit: Inherit via internal
rule
(default)  Inherit: Same as input
 Inherit: Same as product output
 int8
 int16
 int32
 int64
 fixdt(1,16,0)
 <data type expression>
Specify the accumulator data type for the numerator coefficients. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin data type, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
NumAccumDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'Inherit: Same
as input'  'Inherit: Same as product output'  'int8' 
'int16'  'int32'  'int64'  'fixdt(1,16,0)'  '<data
type expression>' 
Default:
'Inherit: Inherit via interal rule' 
Denominator coefficients
— Denominator coefficient data typeInherit: Inherit via internal
rule
(default)  int8
 int16
 int32
 int64
 fixdt(1,16)
 fixdt(1,16,0)
 <data type expression>
Specify the denominator coefficient data type. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin integer, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
DenCoeffDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'int8'  'int16'
 'int32'  'int64'  'fixdt(1,16)'  'fixdt(1,16,0)' 
'<data type expression>' 
Default:
'Inherit: Same wordlength as input' 
Denominator coefficient minimum
— Minimum value of denominator coefficients[]
(default)  scalarSpecify the minimum value that a denominator coefficient can have. The
default value is []
(unspecified). Simulink software uses this value to perform:
Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Automatic scaling of fixedpoint data types
Block Parameter:
DenCoeffMin 
Type: character vector 
Values: scalar 
Default:
'[]' 
Denominator coefficient maximum
— Maximum value of denominator coefficients[]
(default)  scalarSpecify the maximum value that a denominator coefficient can have. The
default value is []
(unspecified). Simulink software uses this value to perform:
Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Automatic scaling of fixedpoint data types
Block Parameter:
DenCoeffMax 
Type: character vector 
Values: scalar 
Default:
'[]' 
Denominator product output
— Denominator product output data typeInherit: Inherit via internal
rule
(default)  Inherit: Same as input
 int8
 int16
 int32
 int64
 fixdt(1,16,0)
 <data type expression>
Specify the product output data type for the denominator coefficients. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin data type, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
DenProductDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'Inherit: Same
as input'  'int8'  'int16'  'int32'  'int64' 
'fixdt(1,16,0)'  '<data type
expression>' 
Default:
'Inherit: Inherit via interal rule' 
Denominator accumulator
— Denominator accumulator data typeInherit: Inherit via internal
rule
(default)  Inherit: Same as input
 Inherit: Same as product output
 int8
 int16
 int32
 int64
 fixdt(1,16,0)
 <data type expression>
Specify the accumulator data type for the denominator coefficients. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin data type, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
DenAccumDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'Inherit: Same
as input'  'Inherit: Same as product output'  'int8' 
'int16'  'int32'  'int64'  'fixdt(1,16,0)'  '<data
type expression>' 
Default:
'Inherit: Inherit via interal rule' 
Output
— Output data typeInherit: Inherit via internal
rule
(default)  Inherit: Same as input
 int8
 int16
 int32
 int64
 fixdt(1,16)
 fixdt(1,16,0)
 <data type expression>
Specify the output data type. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via internal
rule
A builtin data type, for example,
int8
A data type object, for example, a
Simulink.NumericType
object
An expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant.
Block Parameter:
OutDataTypeStr 
Type: character vector 
Values:
'Inherit: Inherit via internal rule'  'Inherit: Same
as input'  'int8'  'int16'  'int32'  'int64' 
'fixdt(1,16)'  'fixdt(1,16,0)'  '<data type
expression>' 
Default:
'Inherit: Inherit via interal rule' 
Output minimum
— Minimum value of output[]
(default)  scalarSpecify the minimum value that the block can output. The default value
is []
(unspecified). Simulink uses this value to perform:
Simulation range checking (see Specify Signal Ranges)
Automatic scaling of fixedpoint data types
Block Parameter:
OutMin 
Type: character vector 
Values: scalar 
Default:
'[]' 
Output maximum
— Maximum value of output[]
(default)  scalarSpecify the maximum value that the block can output. The default value
is []
(unspecified). Simulink uses this value to perform:
Simulation range checking (see Specify Signal Ranges)
Automatic scaling of fixedpoint data types
Block Parameter:
OutMax 
Type: character vector 
Values: scalar 
Default:
'[]' 
Lock data type settings against changes by the fixedpoint tools
— Prevent fixedpoint tools from overriding data typesoff
(default)  on
Select this parameter to prevent the fixedpoint tools from overriding the data types you specify on this block. For more information, see Lock the Output Data Type Setting (FixedPoint Designer).
Block Parameter: LockScale 
Type: character vector 
Values: 'off'  'on' 
Default: 'off' 
Integer rounding mode
— Rounding mode for fixedpoint operationsFloor
(default)  Ceiling
 Convergent
 Nearest
 Round
 Simplest
 Zero
Specify the rounding mode for fixedpoint operations. For more information, see Rounding (FixedPoint Designer).
Block parameters always round to the nearest representable value. To control the rounding of a block parameter, enter an expression using a MATLAB^{®} rounding function into the mask field.
Block Parameter:
RndMeth 
Type: character vector 
Values:
'Ceiling'  'Convergent'  'Floor'  'Nearest'  'Round'  'Simplest' 
'Zero' 
Default:
'Floor' 
Saturate on integer overflow
— Method of overflow actionoff
(default)  on
Specify whether overflows saturate or wrap.
Action  Rationale  Impact on Overflows  Example 

Select this check box ( 
Your model has possible overflow, and you want explicit saturation protection in the generated code. 
Overflows saturate to either the minimum or maximum value that the data type can represent. 
The maximum value that the 
Do not select this check box ( 
You want to optimize efficiency of your generated code. You want to avoid overspecifying how a block handles outofrange signals. For more information, see Troubleshoot Signal Range Errors. 
Overflows wrap to the appropriate value that is representable by the data type. 
The maximum value that the 
When you select this check box, saturation applies to every internal operation on the block, not just the output, or result. Usually, the code generation process can detect when overflow is not possible. In this case, the code generator does not produce saturation code.
Block Parameter: SaturateOnIntegerOverflow 
Type: character vector 
Values:
'off'  'on' 
Default: 'off' 
State name
— Unique name for block state''
(default)  alphanumeric stringUse this parameter to assign a unique name to the block state. The default is ' '
. When this field is blank, no name is assigned. When using this parameter, remember these considerations:
A valid identifier starts with an alphabetic or underscore character, followed by alphanumeric or underscore characters.
The state name applies only to the selected block.
This parameter enables State name must resolve to Simulink signal object when you click Apply.
For more information, see Apply Storage Classes to Individual Signal, State, and Parameter Data Elements (Simulink Coder).
Block Parameter: StateName 
Type: character vector 
Values: unique name 
Default: '' 
State name must resolve to Simulink signal object
— Require state name resolve to a signal objectoff
(default)  on
Select this check box to require that the state name resolves to a Simulink signal object.
To enable this parameter, specify a value for State name. This parameter appears only if you set the model configuration parameter Signal resolution to a value other than None
.
Selecting this check box disables Code generation storage class.
Block Parameter: StateMustResolveToSignalObject 
Type: character vector 
Values:
'off'  'on' 
Default: 'off' 
Signal object class
— Custom storage class package nameSimulink.Signal
(default)  <StorageClass.PackageName>
Choose a custom storage class package by selecting a signal object class that the target package defines. For example, to apply custom storage classes from the builtin package mpt
, select mpt.Signal
. Unless you use an ERTbased code generation target with Embedded
Coder^{®}, custom storage classes do not affect the generated code.
If the class that you want does not appear in the list, select Customize class lists
. For instructions, see Target Class Does Not Appear in List of Signal Object Classes (Embedded Coder).
For information about storage classes, see Apply Storage Classes to Individual Signal, State, and Parameter Data Elements (Simulink Coder). For information about custom storage classes, see Apply BuiltIn and Customized Storage Classes to Data Elements (Embedded Coder).
Block Parameter: StateSignalObject 
Type: character vector 
Values:
'Simulink.Signal' 
'<StorageClass.PackageName>' 
Default: 'Simulink.Signal' 
Code generation storage class
— State storage class for code generationAuto
(default)  Model default
 ExportedGlobal
 ImportedExtern
 ImportedExternPointer
 BitField (Custom)
 Model default
 ExportToFile (Custom)
 ImportFromFile (Custom)
 FileScope (Custom)
 AutoScope (Custom)
 Struct (Custom)
 GetSet (Custom)
 Reusable (Custom)
Select state storage class for code generation.
Auto
is the appropriate storage class for states that you do not need to interface to external code.
applies the storage class or custom storage class that you select from the list. For information about storage classes, see Apply Storage Classes to Individual Signal, State, and Parameter Data Elements (Simulink Coder). For information about custom storage classes, see Apply BuiltIn and Customized Storage Classes to Data Elements (Embedded Coder).StorageClass
Use Signal object class to select custom storage classes from a package other than Simulink
.
To enable this parameter, specify a value for State name.
Block Parameter:
StateStorageClass 
Type: character vector 
Values:
'Auto'  'Model default'  'ExportedGlobal'  'ImportedExtern' 
'ImportedExternPointer'  'Custom'  ... 
Default: 'Auto' 
TypeQualifier
— Storage type qualifier''
(default)  const
 volatile
 ...Specify a storage type qualifier such as const
or volatile
.
TypeQualifier will be removed in a future release. To apply storage type qualifiers to data, use custom storage classes and memory sections. Unless you use an ERTbased code generation target with Embedded Coder, custom storage classes and memory sections do not affect the generated code.
During simulation, the block uses the following values:
The initial value of the signal object to which the state name is resolved
Minimum and Maximum values of the signal object
For more information, see Data Objects.
To enable this parameter, set Code generation storage class to ExportedGlobal
, ImportedExtern
, ImportedExternPointer
, or Model default
. This parameter is hidden unless you previously set its value.
Block Parameter: RTWStateStorageTypeQualifier 
Type: character vector 
Values:
''  'const' 
'volatile'  ... 
Default: '' 
Data Types 

Direct Feedthrough 

Multidimensional Signals 

VariableSize Signals 

ZeroCrossing Detection 

^{[a]} This block only supports signed fixedpoint data types. 
HDL Coder™ provides additional configuration options that affect HDL implementation and synthesized logic.
This block has a single, default HDL architecture.
General  

ConstMultiplierOptimization  Canonical signed digit (CSD) or factored CSD optimization. The
default is 
ConstrainedOutputPipeline  Number of registers to place at
the outputs by moving existing delays within your design. Distributed
pipelining does not redistribute these registers. The default is

InputPipeline  Number of input pipeline stages
to insert in the generated code. Distributed pipelining and constrained
output pipelining can move these registers. The default is

OutputPipeline  Number of output pipeline stages
to insert in the generated code. Distributed pipelining and constrained
output pipelining can move these registers. The default is

Native Floating Point  

HandleDenormals  Specify whether you want HDL Coder to insert additional logic to handle denormal numbers in your design.
Denormal numbers are numbers that have magnitudes less than the smallest floatingpoint
number that can be represented without leading zeros in the mantissa. The default is

LatencyStrategy  Specify whether to map the blocks in your design to

MantissaMultiplyStrategy  Specify how to implement the mantissa multiplication operation during code generation.
By using different settings, you can control the DSP usage on the target FPGA device.
The default is 
You must use the Inherit: Inherit via internal rule option for data type propagation only if the input data type is double.
Frame, matrix, and vector input data types are not supported.
The leading denominator coefficient (a0) must be 1 or 1.
The Discrete Transfer Fcn block is excluded from the following optimizations:
Resource sharing
Distributed pipelining
This block only supports signed fixedpoint data types.
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.