doc: split rst file
[litex.git] / doc / dataflow.rst
1 Dataflow synthesis
2 ##################
3
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.
5
6 Actors communicate by exchanging tokens, whose flow is controlled using handshake signals (strobe and acknowledgement).
7
8 Actors
9 ******
10
11 Overview
12 ========
13
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.
15
16 Common scheduling models
17 ========================
18
19 Combinatorial
20 -------------
21 The actor datapath is made entirely of combinatorial logic. The handshake signals pass through. A small integer adder would use this model.
22
23 N-sequential
24 ------------
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.
26
27 N-pipelined
28 -----------
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.
30
31 The Migen actor library
32 ***********************
33
34 Plumbing actors
35 ===============
36
37 Structuring actors
38 ==================
39
40 Simulation actors
41 =================
42
43 Arithmetic and logic actors
44 ===========================
45
46 Bus actors
47 ==========
48
49 Actor networks
50 **************
51
52 Actor networks are managed using the NetworkX [networkx]_ library.
53
54 .. [networkx] http://networkx.lanl.gov/
55
56 Performance tools
57 *****************
58
59
60 High-level actor description
61 ****************************
62 .. WARNING::
63 Not implemented yet, just an idea.
64
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]_
66
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/