03.08.2013 Views

Dynamic Dataflow Modeling in Ptolemy II - Ptolemy Project ...

Dynamic Dataflow Modeling in Ptolemy II - Ptolemy Project ...

Dynamic Dataflow Modeling in Ptolemy II - Ptolemy Project ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figure 3.5 Icons for DDFSelect and Switch actors<br />

Another extension of the SDF doma<strong>in</strong> <strong>in</strong>volves rate declaration for multiports, which<br />

allow multiple-channel connections. In SDF, all channels connected to the same<br />

multiport have the same rate. This won’t work for some dynamic actors. For example, the<br />

Select actor is very similar to BooleanSelect actor functionally. (See Figure 3.5 where we<br />

use the name DDFSelect to dist<strong>in</strong>guish from Select used <strong>in</strong> other doma<strong>in</strong>s such as DE.)<br />

Its <strong>in</strong>put port is a multiport (represented by hollow arrow) because the actor<br />

communicates via an <strong>in</strong>determ<strong>in</strong>ate number of channels depend<strong>in</strong>g on the connections<br />

made to the <strong>in</strong>put port. The control port consumes an <strong>in</strong>teger token, and its value<br />

specifies the <strong>in</strong>put channel that should be read <strong>in</strong> the next fir<strong>in</strong>g. In this case, we use an<br />

ArrayToken for each multiport to represent the rates of channels. The length of the array<br />

is equal to the width of the port which is the number of channels connected to the port.<br />

Each element of the array represents the rate of a channel <strong>in</strong> the order channels are<br />

created while build<strong>in</strong>g the model. The rest of functionality <strong>in</strong>clud<strong>in</strong>g two-phase fir<strong>in</strong>gs is<br />

the same as for the DDFBooleanSelect Actor.<br />

38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!