Skip to content
This repository has been archived by the owner on Jul 12, 2022. It is now read-only.

Structural Descriptions

Radhakrishna Sanka edited this page Apr 8, 2020 · 5 revisions

Structural Descriptions

Structural descriptions are the basis for describing microfluidic architectures using LFR. The structural primitives and operations described in this section can allow the user to describe any arbitrary netlist structure. All of the language features build upon this foundation and utilize the primitives and operators specified here.

Primitives

The structural primitives consist of finput, foutput , flow and control elements. You can find more information on these primitives in their respective sections.

Operations

The CONNECT operation is currently the only operator that is defined as a structural operator. This operation can be implemented using the assign statement. The assign statement allows the user to stitch together different fluidic elements and describe their connectivity. Almost every design will necessitate the use of an assign statement.

There are some basic rules as to how an assign statement stitches together different structural primitives and creates the connectivity. Because the assign statement has the following format:

assign <list-of-outputs> = <list-of-inputs>;

there are 4 cases for how the connectivity is defined:

When size(inputs) == size(outputs)

In the case where the number of input elements are equal to the number of outputs, the compiler creates a 1-1 link between all the elements. The base case is seen below:

One to One

The extended case where it applies for more than 1 element is seen below:

N to N

When size(inputs) < size(outputs)

When the size of inputs in not equal the size of outputs, each of the input elements creates a link to one of the outputs. The case with a single input and multiple outputs is shown below:

One to N

The extended case where the condition size(inputs) < size(outputs) holds:

N to M

When size(inputs) > size(outputs)

When the size of inputs in not equal the size of outputs, each of the input elements creates a link to one of the outputs. The case with multiple inputs and a single output is shown below:

N to One

The extended case where the condition size(inputs) > size(outputs) holds:

N to M