4 Many hardware acceleration problems can be expressed in the dataflow paradigm, that is, using a directed graph representing the flow of data between actors.
6 Actors communicate by exchanging tokens, whose flow is controlled using handshake signals (strobe and acknowledgement).
14 Actors in Migen are written directly in FHDL. This maximizes the flexibility: for example, an actor can implement a DMA master to read data from system memory.
16 Common scheduling models
17 ========================
21 The actor datapath is made entirely of combinatorial logic. The handshake signals pass through. A small integer adder would use this model.
25 The actor consumes one token at its input, and it produces one output token after N cycles. It cannot accept new input tokens until it has produced its output. A multicycle integer divider would use this model.
29 This is similar to the sequential model, but the actor can always accept new input tokens. It produces an output token N cycles of latency after accepting an input token. A pipelined multiplier would use this model.
31 The Migen actor library
32 ***********************
43 Arithmetic and logic actors
44 ===========================
52 Actor networks are managed using the NetworkX [networkx]_ library.
54 .. [networkx] http://networkx.lanl.gov/
60 High-level actor description
61 ****************************
63 Not implemented yet, just an idea.
65 It is conceivable that a CAL [cal]_ to FHDL compiler be implemented at some point, to support higher level descriptions of some actors and reuse of third-party RVC-CAL applications. [orcc]_ [orcapps]_ [opendf]_
67 .. [cal] http://opendf.svn.sourceforge.net/viewvc/opendf/trunk/doc/GentleIntro/GentleIntro.pdf
68 .. [orcc] http://orcc.sourceforge.net/
69 .. [orcapps] http://orc-apps.sourceforge.net/
70 .. [opendf] http://opendf.sourceforge.net/