This block is listed in the following Xilinx Blockset libraries: Index, DSP.
The Xilinx DSPCPLX block is one of the advanced features provided by Versalâ„¢ architecture DSP, which is the optimized solution to deal with 18x18 complex multiplication followed by 58 + 58 accumulation operation.
Versal architecture DSP supports an 18-bit complex multiplier with two back-to-back DSP58s in the same tile pair together. The two DSP58s with their DSP_MODE attributes set to CINT18 form one complex arithmetic unit. The right DSP58 computes the real result P_RE and left computes the imaginary result P_IM. The following figure shows the unisim DSPCPLX primitive which is used to develop this feature.
Block Parameters
The block parameters dialog box can be invoked by double-clicking the icon in your Simulink model.
- Basic tab
- Parameters specific to the Basic tab are as follows:
- Input Configuration
-
- A or ACIN input
- Specifies if the A input should be
taken directly from the
a_re,a_imports or from the cascadedacin_re,acin_imports. Theacin_reandacin_imports can only be connected to another DSPCPLX block. - B or BCIN input
- Specifies if the B input should be taken directly from the b_re, b_im ports or from the cascaded bcin_re, bcin_im ports. The bcin_re and bcin_im ports can only be connected to another DSPCPLX block.
- Pattern Detection on Real Output
-
- Reset p_re register on pattern detection
- If selected and the
pattern_reis detected, reset thep_reregister on the next cycle - AUTO RESET PRIORITY RE
- When enabled by selecting the option above, select RESET (the default) or CEP (clock enabled for the P_RE (output) resister).
- Pattern Input RE
-
- Pattern Input from c_re port
- When selected, the
pattern_reused in pattern detection on Real Output is read from thec_report. - Using Pattern Attribute RE (58-bit hex value)
- Value is used in pattern detection logic which is best described as an equality check on the output of the adder/subtractor/logic unit.
- Using Pattern Attribute RE (58-bit hex value)
- Enter a 58-bit value that is used in the pattern detector.
- Mask Input RE
-
- Mask input from c_re port
- When selected, the
mask_reused in pattern detection is read from thec_report. - Using Mask Attribute RE (58-bit hex value)
- Enter a 58-bit value used to mask out certain bits during pattern detection on Real Output.
- MODE1
- Selects rounding_mode 1 (C_RE-bar left shifted by 1).
- MODE2
- Selects rounding_mode 2 (C_RE-bar left shifted by 2).
- Pattern Detection on Imaginary Output
-
- Reset p_im register on pattern detection
- If selected and the pattern_im is detected, reset the p_im register on the next cycle.
- AUTO RESET PRIORITY IM
- When enabled by selecting the option above, select RESET (the default) or CEP (clock enabled for the P_IM (output) resister).
- Mask Input IM
-
- Mask input from c_im port
- When selected, the
mask_imused in pattern detection on Imaginary Output is read from thec_import. - Using Mask Attribute RE (58-bit hex value)
- Enter a 58-bit value used to mask out certain bits during pattern detection on Imaginary Output.
- MODE1
- Selects rounding_mode 1 (C_IM-bar left shifted by 1).
- MODE2
- Selects rounding_mode 2 (C_IM-bar left shifted by 2).
- Optional Ports tab
- Parameters specific to the Optional Ports tab are as follows:
- Input Ports
-
- Consolidate control port
- When selected, combines the
opmode,alumode,carry_in,carry_in_sel,inmodeandconjugateports into one 18-bit port. Bits 0 to 8 are theopmode, bits 9 to 12 are thealumodeport, bit 13 is thecarry_inport, bits 14 to 16 are thecarry_in_selport, bit 17 is theConjugate_Ainput port and bit 18 is theConjugate_Bport. This option should be used when the Opmode block is used to generate a DSPCPLX instruction.Note: Enabling this option will drive both the left and right dsp58 tiles with the same configuration. - Provide c port
- When selected, the
c_reandc_imports are made available. Otherwise, thec_reandc_imports are tied to '0'. - Provide global reset port
- When selected, the port
rst_allis made available. This port is connected to all available reset ports based on the pipeline selections. - Provide global enable port
- When selected, the optional
en_allport is made available. This port is connected to all available enable ports based on the pipeline selections.
- Cascadable Ports
-
- Provide pcin port
- When selected, the
pcin_reandpcin_imports are exposed. Thepcin_reandpcin_imports must be connected to thepcout_reandpcout_imports of another DSPCPLX block respectively. - Provide carry cascade in port
- When selected, the
carrycascin_reandcarrycascin_imports are exposed. These ports can only be connected to a carry cascade out ports of another DSPCPLX block. - Provide multiplier sign cascade in port
- When selected, the
multsignin_reandmultsignin_imports are exposed. These ports can only be connected to a multiplier sign cascade out ports of another DSPCPLX block.
- Output Ports
-
- Provide carryout port
- When selected, the
carryout_reandcarryout_imoutput ports are made available. - Provide pattern detect port
- When selected, the
patterndetect_reandpatterndetect_outports are provided. When thepattern_re/pattern_im, either from themask_re/mask_imor thec_re/c_imregister is matched, the respectivepatterndetect_re/patterndetect_import is set to '1'. - Provide pattern bar detect port
- When selected, the
patternbdetect_reandpatternbdetect_imports are provided. When the inverse of thepattern_re/pattern_im, either from themask_re/mask_imor thec_re/c_imregister is matched, thepatternbdetect_re/patternbdetect_im portis set to '1'. - Provide overflow port
- When selected, the
overflow_reandoverflow_imports are provided. These ports indicate when the operation in the DSPCPLX has overflowed beyond the bit P_RE[N]/P_IM[N] where N is between 0 and 56. N is determined by the number of 1s in themask_re/mask_imwhether set by the GUI mask field or thec_re/c_import input. - Provide underflow port
- When selected, the
underflow_reandunderflow_imports are provided. These ports indicate when the operation in the DSPCPLX has underflowed. Underflow occurs when the number goes below -P_RE[N]/P_IM[N], where N is determined by the number of 1s in themask_re/mask_imwhether set by the GUI mask field or thec_re/c_import input.
- Cascadable Ports
-
- Provide acout port
- When selected, the
acout_reandacout_imoutput ports are made available. Theacout_re/acout_import must be connected to theacin_re/acin_import of another DSPCPLX block. - Provide bcout port
- When selected, the
bcout_reandbcout_imoutput ports are made available. Thebcout_re/bcout_import must be connected to thebcin_re/bcin_import of another DSPCPLX block. - Provide pcout port
- When selected, the
pcout_reandpcout_imoutput ports are made available. Thepcout_re/pcout_import must be connected to thepcin_re/pcin_import of another DSPCPLX block. - Provide multiplier sign cascade out port
- When selected, the
multsignout_reandmultsignout_imports are made available. These ports can only be connected to themultsignin_reandmultsignin_imports of another DSPCPLX block respectively and is used to support 116-bit accumulators/adders and subtracters which are built from two DSPCPLXs. - Provide carry cascade out port
- When selected, the
carrycascout_reandcarrycascout_imports are made available. These ports can only be connected to thecarrycascin_reandcarrycascin_imports of another DSPCPLX block respectively.
- Pipelining tab
- Parameters specific to the Pipelining tab are as follows:
- Length of a_re/acin_re pipeline
- Specifies the length of the pipeline on input register A_RE. The pipeline of length 0 removes the register on the input.
- Length of a_im/acin_im pipeline
- Specifies the length of the pipeline on input register A_IM. The pipeline of length 0 removes the register on the input.
- Length of b_re/bcin_re pipeline
- Specifies the length of the pipeline for the
b_reinput and whether it is read fromb_reorbcin_re. - Length of b_im/bcin_im pipeline
- Specifies the length of the pipeline for the
b_iminput and whether it is read fromb_imorbcin_im. - Length of acout_re pipeline
- Specifies the length of the pipeline between
the
a_re/acin_reinput and theacout_reoutput port. The pipeline of length 0 removes the register from theacout_repipeline length. Must be less than or equal to the length of thea_re/acin_repipeline. - Length of acout_im pipeline
- Specifies the length of the pipeline between
the
a_im/acin_iminput and theacout_imoutput port. The pipeline of length 0 removes the register from theacout_impipeline length. Must be less than or equal to the length of thea_im/acin_impipeline. - Length of bcout_re pipeline
- Specifies the length of the pipeline between
the
b_re/bcin_reinput and thebcout_reoutput port. The pipeline of length 0 removes the register from thebcout_repipeline length. Must be less than or equal to the length of theb_re/bcin_repipeline. - Length of bcout_im pipeline
- Specifies the length of the pipeline between
the
b_im/bcin_iminput and thebcout_imoutput port. The pipeline of length 0 removes the register from thebcout_impipeline length. Must be less than or equal to the length of theb_im/bcin_impipeline. - Pipeline c_re
- Indicates whether the input from the
c_report should be registered. - Pipeline c_im
- Indicates whether the input from the
c_import should be registered. - Pipeline p_re
- Indicates whether the outputs
p_reandpcout_reshould be registered. - Pipeline p_im
- Indicates whether the outputs
p_imandpcout_imshould be registered. - Pipeline multiplier_re
- Indicates whether the internal
multiplier_reshould register its output. - Pipeline multiplier_im
- Indicates whether the internal
multiplier_imshould register its output. - Pipeline opmode_re
- Indicates whether the
opmode_report should be registered. - Pipeline opmode_im
- Indicates whether the
opmode_import should be registered. - Pipeline alumode_re
- Indicates whether the
alumode_report should be registered. - Pipeline alumode_im
- Indicates whether the
alumode_import should be registered. - Pipeline carry in Re
- Indicates whether the
carryin_report should be registered. - Pipeline carry in Im
- Indicates whether the
carryin_import should be registered. - Pipeline carry in select Re
- Indicates whether the
carryinsel_report should be registered. - Pipeline carry in select Im
- Indicates whether the
carryinsel_import should be registered. - Pipeline preadder output register ad
- Indicates to add a pipeline register to the
adoutput. - Pipeline Conjugate register A
- Indicates to add a pipeline register to the
Conjugate_Ainput. - Pipeline Conjugate register B
- Indicates to add a pipeline register to the
Conjugate_Binput.
- Reset/Enable Ports tab
- Parameters specific to the Reset/Enable tab are as follows:
- Provide Reset Ports
-
- Reset port for a/acin
-
When selected,
rsta_reandrsta_imports are made available. This resets the pipeline registers for porta_re,a_imwhen set to '1'. - Reset port for b/bcin
- When selected,
rstb_reandrstb_imare made available. This resets the pipeline registers for portb_re,b_imwhen set to '1'. - Reset port for c
- When selected,
rstc_reandrstc_imare made available. This resets the pipeline registers for portc_re,c_imwhen set to '1'. - Reset port for multiplier
- When selected,
rstm_reandrstm_imare made available. This resets the pipeline registers for internal multiplier respectively when set to '1'. - Reset port for P
- When selected,
rstp_reandrstp_imare made available. This resets the outputp_reandp_imregisters when set to '1'. - Reset port for carry in
- When selected,
rstallcarryin_reandrstallcarryin_imare made available. This resets the pipeline registers forcarryin_reandcarryin_import when set to '1'. - Reset port for alumode
- When selected,
rstalumode_reandrstalumode_imare made available. This resets the pipeline register for thealumode_reandalumode_import when set to '1'. - Reset port for controls (opmode and carry_in_sel)
- When selected, a port
rstctrl_reandrstctrl_imare made available. This resets the pipeline register for theopmode_re/opmode_imregister (if available) and thecarryinsel_re/carryinsel_imregister (if available) when set to '1'. - Reset port for ad
- When selected, port
rstadis made available. This resets the pipeline ad register for ports when set to '1'. - Reset port for Conjugate_a
- When selected, port
rstconjugate_ais made available. This resets the pipeline register for theConjugate_aport when set to '1'. - Reset port for Conjugate_b
- When selected, port
rstconjugate_bis made available. This resets the pipeline register for theConjugate_bport when set to '1'.
- Provide Enable Ports
-
- Enable port for first a/acin register
- When selected, enable ports
cea1_reandcea1_imfor the firsta_reanda_impipeline register are made available. - Enable port for second a/acin register
- When selected, enable ports
cea2_reandcea2_imfor the seconda_reanda_impipeline registers are made available. - Enable port for first b/bcin register
- When selected, enable ports
ceb1_reandceb1_imfor the firstb_reandb_impipeline registers are made available. - Enable port for second b/bcin register
- When selected, enable ports
ceb2_reandceb2_imfor the secondb_reandb_impipeline registers are made available. - Enable port for c
- When selected, enable ports
cec_reandcec_imfor the portC_reandC_imregisters are made available. - Enable port for multiplier
- When selected, enable ports
cem_reandcem_imfor the Real and Imaginary multiplier registers are made available. - Enable port for p
- When selected, enable ports
cep_reandcep_imfor the portP_reandP_imoutput registers are made available. - Enable port for carry in
- When selected, enable ports
cecarryin_reandcecarryin_imfor the Real and Imaginary carry in registers are made available. - Enable port for alumode
- When selected, enable ports
cealumode_reandcealumode_imfor the Real and Imaginary alumode registers are made available. - Enable port for controls (opmode and carry_in_sel)
- When selected, enable ports
cectrl_reandcectrl_imare made available. The portscectrl_reandcectrl_imcontrols the Real and Imaginary opmode and carry in select registers. - Enable port for ad
- When selected, an
enableport is created for the preadder output register ad. - Enable port for Conjugate_a
- When selected, an enable port
conjugate_ais added for theConjugate_Aregister. - Enable port for Conjugate_b
- When selected, an enable port
conjugate_bis added for theConjugate_Bregister.
- Inversion Options tab
- When the checkbox is selected on this tab, the specified signal is inverted.
- Implementation tab
- Parameters specific to the Implementation tab are as follows.
Other parameters used by this block are explained in the topic Common Options in Block Parameter Dialog Boxes.