Table Of Contents

Multirate Dataflow

Last Modified: August 31, 2017

Multirate Dataflow extends program development by enabling you to implement multirate, streaming digital signal processing (DSP) algorithms in an editor scoped for multirate development.

You can create and test algorithms on a computer or host using floating-point numeric data, easily convert those algorithms to fixed-point numeric representation, and set design constraints to use in implementation strategies on an FPGA. Multirate Dataflow enables you to quickly iterate on your algorithm design before moving your algorithm to the FPGA.

You use Multirate Dataflow by creating a Multirate diagram.

The Multirate diagram looks very similar to a VI diagram and shares many of the same features. However, the Multirate diagram behaves differently from a VI diagram. The following table describes some differences between G Dataflow and Multirate Dataflow.

Language Node Behavior per Execution Node Executions per Diagram Iteration
G Dataflow A node can consume and produce only a single data sample each time the node executes. Each node executes only once per iteration of the diagram unless you place the node in a loop to process sequential sets of data.
Multirate Dataflow A node can consume and produce multiple data samples each time the node executes. Each node automatically executes as many times as needed to process all the data samples streaming through the diagram without the need for loops.

Multirate diagram execution automatically handles sample rate changes from node to node. The following example illustrates the ability of the Multirate diagram to handle rate changes.


In the following example, the diagram displays the number of data samples that each input terminal requires and the number of data samples that each output terminal returns.

  1. The Stream In 1 and Stream In 2 inputs receive streams of data from a source exterior to the Multirate diagram and send data samples to the Interleave Stream node one at a time.
  2. When Interleave Stream receives five samples from both Stream In 1 and Stream In 2, Interleave Stream executes and returns 10 samples.
  3. Because Stream Subset requires 30 samples, Interleave Stream must execute three times before Stream Subset can execute.
  4. Stream Out sends the resulting 15 samples to the program that calls the Multirate diagram.

Recently Viewed Topics