Multiplier (multiplier_s_l)

Multiplies together two input sample values.

Design

The mathematical representation of the implementation is given in (129).

(129)\[z[n] = x[n] * y[x]\]

In (129):

  • \(x[n]\) and \(y[n]\) are the input values.

  • \(z[n]\) is the output values.

A block diagram representation of the implementation is given in Figure 408:.

Block diagram outlining multiplier implementation.

Figure 408: Multiplier implementation.

Interface

<?xml version="1.0"?>
<componentspec>
  <port name="input_1" producer="false" protocol="short_timed_sample-prot"/>
  <port name="input_2" producer="false" protocol="short_timed_sample-prot"/>
  <port name="output" producer="true" protocol="long_timed_sample-prot"/>
</componentspec>

Ports

Inputs:

  • input_1: Input samples port.

    • Protocol: short_timed_sample-prot

    • Optional: False

  • input_2: Input samples port.

    • Protocol: short_timed_sample-prot

    • Optional: False

Outputs:

  • output: Primary output samples port.

    • Protocol: long_timed_sample-prot

    • Optional: False

Opcode Handling

Multiplication is only applied to data in sample opcode messages. All other opcode messages received on input_1 are passed through this component without any effect. All messages with a non-sample opcode received on input_2 are discarded.

Sample message lengths received on input_1 are persevered on the output. Sample message lengths received on input_2 are ignored.

Properties

None.

Implementations

Example Application

<?xml version="1.0"?>
<application done="file_write">
  <instance component="ocpi.core.file_read" connect="multiplier_s_l" to="input_1">
    <property name="filename" value="input_1.bin"/>
  </instance>
  <instance component="ocpi.core.file_read" connect="multiplier_s_l" to="input_2">
    <property name="filename" value="input_2.bin"/>
  </instance>
  <instance component="ocpi.comp.sdr.math.multiplier_s_l" connect="file_write"/>
  <instance component="ocpi.core.file_write">
    <property name="filename" value="output.bin"/>
  </instance>
</application>

Dependencies

The dependencies to other elements in OpenCPI are:

There is also a dependency on:

  • ieee.std_logic_1164

  • ieee.numeric_std

Limitations

Limitations of multiplier_s_l are:

  • None.

Testing

Tested platforms: None

Component testing not completed.