Merge pull request #1669 from thasti/pyosys-attrs
[yosys.git] / manual / APPNOTE_011_Design_Investigation / memdemo_00.dot
1 digraph "memdemo" {
2 rankdir="LR";
3 remincross=true;
4 n24 [ shape=octagon, label="clk", color="black", fontcolor="black" ];
5 n25 [ shape=octagon, label="d", color="black", fontcolor="black" ];
6 n26 [ shape=diamond, label="mem[0]", color="black", fontcolor="black" ];
7 n27 [ shape=diamond, label="mem[1]", color="black", fontcolor="black" ];
8 n28 [ shape=diamond, label="mem[2]", color="black", fontcolor="black" ];
9 n29 [ shape=diamond, label="mem[3]", color="black", fontcolor="black" ];
10 n30 [ shape=diamond, label="s1", color="black", fontcolor="black" ];
11 n31 [ shape=diamond, label="s2", color="black", fontcolor="black" ];
12 n32 [ shape=octagon, label="y", color="black", fontcolor="black" ];
13 c36 [ shape=record, label="{{<p33> A|<p34> B}|$28\n$add|{<p35> Y}}" ];
14 c37 [ shape=record, label="{{<p33> A|<p34> B}|$31\n$add|{<p35> Y}}" ];
15 c38 [ shape=record, label="{{<p33> A|<p34> B}|$34\n$add|{<p35> Y}}" ];
16 c39 [ shape=record, label="{{<p33> A|<p34> B}|$37\n$add|{<p35> Y}}" ];
17 c41 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$110\n$mux|{<p35> Y}}" ];
18 x0 [ shape=record, style=rounded, label="<s0> 1:1 - 0:0 " ];
19 x0:e -> c41:p40:w [arrowhead=odiamond, arrowtail=odiamond, dir=both, color="black", label=""];
20 c42 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$113\n$mux|{<p35> Y}}" ];
21 x1 [ shape=record, style=rounded, label="<s0> 0:0 - 0:0 " ];
22 x1:e -> c42:p40:w [arrowhead=odiamond, arrowtail=odiamond, dir=both, color="black", label=""];
23 c43 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$116\n$mux|{<p35> Y}}" ];
24 x2 [ shape=record, style=rounded, label="<s0> 0:0 - 0:0 " ];
25 x2:e -> c43:p40:w [arrowhead=odiamond, arrowtail=odiamond, dir=both, color="black", label=""];
26 v3 [ label="1'1" ];
27 c44 [ shape=record, label="{{<p33> A|<p34> B}|$145\n$and|{<p35> Y}}" ];
28 v4 [ label="1'1" ];
29 c45 [ shape=record, label="{{<p33> A|<p34> B}|$175\n$and|{<p35> Y}}" ];
30 v5 [ label="1'1" ];
31 c46 [ shape=record, label="{{<p33> A|<p34> B}|$205\n$and|{<p35> Y}}" ];
32 v6 [ label="1'1" ];
33 c47 [ shape=record, label="{{<p33> A|<p34> B}|$235\n$and|{<p35> Y}}" ];
34 v7 [ label="2'00" ];
35 c48 [ shape=record, label="{{<p33> A|<p34> B}|$143\n$eq|{<p35> Y}}" ];
36 v8 [ label="2'01" ];
37 c49 [ shape=record, label="{{<p33> A|<p34> B}|$173\n$eq|{<p35> Y}}" ];
38 v9 [ label="2'10" ];
39 c50 [ shape=record, label="{{<p33> A|<p34> B}|$203\n$eq|{<p35> Y}}" ];
40 v10 [ label="2'11" ];
41 c51 [ shape=record, label="{{<p33> A|<p34> B}|$233\n$eq|{<p35> Y}}" ];
42 c52 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$147\n$mux|{<p35> Y}}" ];
43 c53 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$177\n$mux|{<p35> Y}}" ];
44 c54 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$207\n$mux|{<p35> Y}}" ];
45 c55 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$237\n$mux|{<p35> Y}}" ];
46 c59 [ shape=record, label="{{<p56> CLK|<p57> D}|$66\n$dff|{<p58> Q}}" ];
47 c60 [ shape=record, label="{{<p56> CLK|<p57> D}|$68\n$dff|{<p58> Q}}" ];
48 c61 [ shape=record, label="{{<p56> CLK|<p57> D}|$70\n$dff|{<p58> Q}}" ];
49 c62 [ shape=record, label="{{<p56> CLK|<p57> D}|$72\n$dff|{<p58> Q}}" ];
50 c63 [ shape=record, label="{{<p56> CLK|<p57> D}|$59\n$dff|{<p58> Q}}" ];
51 c64 [ shape=record, label="{{<p56> CLK|<p57> D}|$63\n$dff|{<p58> Q}}" ];
52 c65 [ shape=record, label="{{<p56> CLK|<p57> D}|$64\n$dff|{<p58> Q}}" ];
53 c66 [ shape=record, label="{{<p33> A}|$39\n$reduce_bool|{<p35> Y}}" ];
54 v11 [ label="4'0000" ];
55 c67 [ shape=record, label="{{<p33> A|<p34> B|<p40> S}|$40\n$mux|{<p35> Y}}" ];
56 x12 [ shape=record, style=rounded, label="<s1> 3:2 - 1:0 |<s0> 1:0 - 1:0 " ];
57 c67:p35:e -> x12:w [arrowhead=odiamond, arrowtail=odiamond, dir=both, color="black", style="setlinewidth(3)", label=""];
58 c68 [ shape=record, label="{{<p33> A|<p34> B}|$38\n$xor|{<p35> Y}}" ];
59 x13 [ shape=record, style=rounded, label="<s1> 1:0 - 3:2 |<s0> 1:0 - 1:0 " ];
60 x13:e -> c68:p33:w [arrowhead=odiamond, arrowtail=odiamond, dir=both, color="black", style="setlinewidth(3)", label=""];
61 c36:p35:e -> c52:p33:w [color="black", style="setlinewidth(3)", label=""];
62 c44:p35:e -> c52:p40:w [color="black", label=""];
63 c45:p35:e -> c53:p40:w [color="black", label=""];
64 c46:p35:e -> c54:p40:w [color="black", label=""];
65 c47:p35:e -> c55:p40:w [color="black", label=""];
66 c48:p35:e -> c44:p33:w [color="black", label=""];
67 c49:p35:e -> c45:p33:w [color="black", label=""];
68 c50:p35:e -> c46:p33:w [color="black", label=""];
69 c51:p35:e -> c47:p33:w [color="black", label=""];
70 c52:p35:e -> c59:p57:w [color="black", style="setlinewidth(3)", label=""];
71 c53:p35:e -> c60:p57:w [color="black", style="setlinewidth(3)", label=""];
72 c37:p35:e -> c53:p33:w [color="black", style="setlinewidth(3)", label=""];
73 c54:p35:e -> c61:p57:w [color="black", style="setlinewidth(3)", label=""];
74 c55:p35:e -> c62:p57:w [color="black", style="setlinewidth(3)", label=""];
75 c66:p35:e -> c67:p40:w [color="black", label=""];
76 c68:p35:e -> c67:p34:w [color="black", style="setlinewidth(3)", label=""];
77 n24:e -> c59:p56:w [color="black", label=""];
78 n24:e -> c60:p56:w [color="black", label=""];
79 n24:e -> c61:p56:w [color="black", label=""];
80 n24:e -> c62:p56:w [color="black", label=""];
81 n24:e -> c63:p56:w [color="black", label=""];
82 n24:e -> c64:p56:w [color="black", label=""];
83 n24:e -> c65:p56:w [color="black", label=""];
84 n25:e -> c52:p34:w [color="black", style="setlinewidth(3)", label=""];
85 n25:e -> c53:p34:w [color="black", style="setlinewidth(3)", label=""];
86 n25:e -> c54:p34:w [color="black", style="setlinewidth(3)", label=""];
87 n25:e -> c55:p34:w [color="black", style="setlinewidth(3)", label=""];
88 n25:e -> c66:p33:w [color="black", style="setlinewidth(3)", label=""];
89 n25:e -> c68:p34:w [color="black", style="setlinewidth(3)", label=""];
90 c59:p58:e -> n26:w [color="black", style="setlinewidth(3)", label=""];
91 n26:e -> c38:p34:w [color="black", style="setlinewidth(3)", label=""];
92 n26:e -> c39:p33:w [color="black", style="setlinewidth(3)", label=""];
93 n26:e -> c42:p33:w [color="black", style="setlinewidth(3)", label=""];
94 c60:p58:e -> n27:w [color="black", style="setlinewidth(3)", label=""];
95 n27:e -> c36:p33:w [color="black", style="setlinewidth(3)", label=""];
96 n27:e -> c39:p34:w [color="black", style="setlinewidth(3)", label=""];
97 n27:e -> c42:p34:w [color="black", style="setlinewidth(3)", label=""];
98 c61:p58:e -> n28:w [color="black", style="setlinewidth(3)", label=""];
99 n28:e -> c36:p34:w [color="black", style="setlinewidth(3)", label=""];
100 n28:e -> c37:p33:w [color="black", style="setlinewidth(3)", label=""];
101 n28:e -> c43:p33:w [color="black", style="setlinewidth(3)", label=""];
102 c62:p58:e -> n29:w [color="black", style="setlinewidth(3)", label=""];
103 n29:e -> c37:p34:w [color="black", style="setlinewidth(3)", label=""];
104 n29:e -> c38:p33:w [color="black", style="setlinewidth(3)", label=""];
105 n29:e -> c43:p34:w [color="black", style="setlinewidth(3)", label=""];
106 c38:p35:e -> c54:p33:w [color="black", style="setlinewidth(3)", label=""];
107 c63:p58:e -> n30:w [color="black", style="setlinewidth(3)", label=""];
108 n30:e -> x13:s1:w [color="black", style="setlinewidth(3)", label=""];
109 c64:p58:e -> n31:w [color="black", style="setlinewidth(3)", label=""];
110 n31:e -> x13:s0:w [color="black", style="setlinewidth(3)", label=""];
111 c65:p58:e -> n32:w [color="black", style="setlinewidth(3)", label=""];
112 c39:p35:e -> c55:p33:w [color="black", style="setlinewidth(3)", label=""];
113 n5 [ shape=point ];
114 x12:s0:e -> n5:w [color="black", style="setlinewidth(3)", label=""];
115 n5:e -> c48:p34:w [color="black", style="setlinewidth(3)", label=""];
116 n5:e -> c49:p34:w [color="black", style="setlinewidth(3)", label=""];
117 n5:e -> c50:p34:w [color="black", style="setlinewidth(3)", label=""];
118 n5:e -> c51:p34:w [color="black", style="setlinewidth(3)", label=""];
119 n5:e -> c63:p57:w [color="black", style="setlinewidth(3)", label=""];
120 n6 [ shape=point ];
121 x12:s1:e -> n6:w [color="black", style="setlinewidth(3)", label=""];
122 n6:e -> c64:p57:w [color="black", style="setlinewidth(3)", label=""];
123 n6:e -> x0:s0:w [color="black", style="setlinewidth(3)", label=""];
124 n6:e -> x1:s0:w [color="black", style="setlinewidth(3)", label=""];
125 n6:e -> x2:s0:w [color="black", style="setlinewidth(3)", label=""];
126 c41:p35:e -> c65:p57:w [color="black", style="setlinewidth(3)", label=""];
127 c42:p35:e -> c41:p33:w [color="black", style="setlinewidth(3)", label=""];
128 c43:p35:e -> c41:p34:w [color="black", style="setlinewidth(3)", label=""];
129 v10:e -> c51:p33:w [color="black", style="setlinewidth(3)", label=""];
130 v11:e -> c67:p33:w [color="black", style="setlinewidth(3)", label=""];
131 v3:e -> c44:p34:w [color="black", label=""];
132 v4:e -> c45:p34:w [color="black", label=""];
133 v5:e -> c46:p34:w [color="black", label=""];
134 v6:e -> c47:p34:w [color="black", label=""];
135 v7:e -> c48:p33:w [color="black", style="setlinewidth(3)", label=""];
136 v8:e -> c49:p33:w [color="black", style="setlinewidth(3)", label=""];
137 v9:e -> c50:p33:w [color="black", style="setlinewidth(3)", label=""];
138 }