The SystemDesigner Multiplier models a multiplication operation of two or three SystemDesigner buses with a 32-bit signed-integer or floating-point result. From the Output parameter box, you can limit the resulting output to either signed or unsigned numbers with fewer than 32 bits.
The propagation delay can be defined as a fixed time, as asynchronous to any clock, or as a synchronous delay where the delay is a number of SystemDesigner -clocks cycles. In this release of SystemDesigner , the synchronous delay is supported only for integer-sampled data simulations.
In this topic:
Model Name: | SystemDesigner Multiplier | |||||||
Simulator: | This device is compatible with the SIMPLIS simulator. | |||||||
Parts Selector Menu Location: | ||||||||
Symbol Library: | SIMPLIS_SystemDesigner.sxslb | |||||||
Model Library: | SIMPLIS_SystemDesigner.lb | |||||||
Subcircuit Names: |
|
|||||||
Symbols: |
|
|||||||
Multiple Selections: | Only one device at a time can be edited. |
To configure the SystemDesigner Multiplier, follow these steps:
Label | Parameter Description |
Use asynchronous delay | Implements a combinatorial model where the output voltage changes in response to the input voltage change after a propagation delay. |
Propagation delay | The propagation delay from an input change to an output change in seconds. This parameter is used only in models with Asynchronous delay. |
Use synchronous delay | In response to an input voltage change, the output voltage changes after a designated number of clock cycles. |
Delay | The propagation delay from an input change to an output change in number of clock cycles. The output will not change until the number of clock cycles has been reached. The output will then change state only on the selected Clock source edges specified by Trigger edge . This parameter is used only in models with Synchronous delay. |
Clock source | Specifies the global clock used for the Multiplier. The Clock can be set up using the SystemDesigner->Edit SystemDesigner Clocks... menu item or by placing a Start of Conversion Breakin. |
Trigger edge | Sets the Multiplier output to change on specific edges of the Clock:
|
Use 32 bit signed | The full 32-bit signed data is output. |
Limit output to: | The output is limited to a Signed or Unsigned number with a designated number of bits. |
Number type | The output will be limited to either a Signed or Unsigned number if Limit output to is selected.
This parameter is used only in models with Limit output to selected. |
Number of bits | The limit on the output depends on the Number type parameter:
This parameter is used only in models with Limit output to selected. |
Initial Condition | Initial condition of the output at time=0. Value is the output bus represented in decimal format. |
The multiplier circuit used to generate the following waveforms can be downloaded here: simplis_112_systemdesigner_multiplier_example.sxsch. In order to simulate this design, follow these steps:
In this example, the multiplier with reference MULT_1 multiplies an error signal by a constant value. The Input voltage to the ADC is a sine wave with the following parameters:
During integer-sampled data simulations, the sine wave voltage is sampled by the
ADC and quantized into BIN_SIZE amplitude values. The BIN_SIZE is set to 2mV with a
variable in the F11 window of the schematic. The quantized amplitude of both Error
signals has a maximum value of 3 LSB counts. The multiplier then multiplies the sampled
error by the constant value producing:
Product = K *
Error,
where K is set with the
SystemDesigner Constant Value device with schematic reference CONSTANT_1.
No model exists for a multiplier when simulating double-precision floating-point sampled data. As with this example, multipliers are most often used to gain signals. For this application, the SystemDesigner Gain device can be used. If your circuit requires scaling gain values, you can multiplex different gain values using the SystemDesigner Mux devices.
If you simulate a design using the multiplier in a floating-point simulation, the following error message is output:
*** ERROR *** (SIMPLIS_SystemDesigner.lb): Subckt def SIMPLIS_SD_MULTIPLIER_32x32 used by X$MULT_1: