Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
language:langs:dflow [2023/04/09 23:48] – [Clusters and Ordering] rajit | language:langs:dflow [2024/07/22 17:54] (current) – [Function] rajit | ||
---|---|---|---|
Line 26: | Line 26: | ||
===== Function ===== | ===== Function ===== | ||
- | The syntax shown above corresponds to the // | + | The syntax shown in the first example |
===== Split ===== | ===== Split ===== | ||
Line 57: | Line 57: | ||
<code act> | <code act> | ||
dataflow { | dataflow { | ||
- | {c = 0 ? 1 : 0} A -> X, Y | + | {c = 0 ? 0 : 1} A -> X, Y |
} | } | ||
</ | </ | ||
Line 64: | Line 64: | ||
< | < | ||
dataflow { | dataflow { | ||
- | c = 0 ? 1 : 0 -> ctrl; | + | c = 0 ? 0 : 1 -> ctrl; |
{ctrl} A -> X, Y | {ctrl} A -> X, Y | ||
} | } | ||
Line 92: | Line 92: | ||
} | } | ||
</ | </ | ||
- | The fact that '' | + | The fact that '' |
In pipelined circuits, it is important to be able to introduce slack to optimize performance. The syntax for this is the following: | In pipelined circuits, it is important to be able to introduce slack to optimize performance. The syntax for this is the following: | ||
Line 220: | Line 220: | ||
</ | </ | ||
In general, the order block contains a semi-colon separated list of directives. Each directive is a list of comma-separated channels followed by ''<'' | In general, the order block contains a semi-colon separated list of directives. Each directive is a list of comma-separated channels followed by ''<'' | ||
+ | |||
+ | ====== Syntactic replication ====== | ||
+ | |||
+ | The dataflow sub-language has support for syntactic replication for splits, merges, mixers, and arbiters. For a split, the output side can use syntactic replication; | ||
+ | For example, the following syntax is legal (assuming everything is of the right type): | ||
+ | <code act> | ||
+ | dataflow { | ||
+ | {ctrl} l -> (, i : 8 : out[i]) | ||
+ | } | ||
+ | </ |