Last active
May 23, 2022 18:40
-
-
Save Raffy27/4ba46eaca7d5c0104027da35ae62520e to your computer and use it in GitHub Desktop.
MouseDecoder Dot Diagrams
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph { | |
node [shape=rectangle]; | |
splines=ortho; | |
inputs [width=5] | |
inputs -> {_reg0 _reg1 _regdot _regn} [xlabel="Num"]; | |
inputs -> {_wnode reg0} [xlabel="Clock"]; | |
inputs -> {_wnode reg0} [xlabel="Reset"]; | |
subgraph cluster_statecounter { | |
label="StateCounter" | |
node[shape=box] | |
{ | |
rank=same | |
reg0 [label="D₀"] | |
reg1 [label="D₁"] | |
regdot [label="..."] | |
regn [label="D₄"] | |
} | |
wnode [fixedsize=true height=1 shape=point style=invis width=0.01] | |
} | |
subgraph cluster_reg { | |
label="InternalReg" | |
node[shape=box] | |
{ | |
rank=same | |
_reg0 [label="D₀"] | |
_reg1 [label="D₁"] | |
_regdot [label="..."] | |
_regn [label="D₄"] | |
_reg0 -> _reg1 -> _regdot -> _regn | |
} | |
_wnode [fixedsize=true height=0.3 label="" width=0.3 shape=oval] | |
} | |
sel_logic [label="State Selection Logic" width=2 height=1.2] | |
{reg0 reg1 regdot regn} -> sel_logic | |
sel_logic -> _wnode [xlabel="1" headlabel="PL "] | |
sel_logic -> _wnode [xlabel="2" headlabel="MODE"] | |
mux [label="MUX [3]" shape=invtrapezium width=3] | |
{_reg0 _reg1 _regdot _regn} -> mux [minlen=3] | |
adder [label="Adder" width=2 height=1] | |
sel_logic -> adder [xlabel="3" headlabel="Enable"] | |
mux -> adder | |
3 -> adder | |
{rank=same adder 3} | |
adder -> _reg0 | |
sel_logic -> output [xlabel="4"] | |
{rank=same sel_logic output} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph { | |
node [shape=rectangle]; | |
splines=ortho; | |
inputs [width=5] | |
cu [width=3 height=3 label="CU"]; | |
ssg [label="7 Segment Display" height=2]; | |
subgraph mdec { | |
node [shape=box] | |
splines=ortho | |
counter [label="Counter mod 42" shape=box height=1.5] | |
inputs -> mcdiv [headlabel="MouseClock " arrowhead=none] | |
mcdiv [shape=point style=invis] | |
mcdiv -> { counter mreg0 } | |
subgraph cluster_reg1 { | |
label="MouseReg" | |
node[shape=box] | |
{ | |
rank=same | |
mreg0 [label="D₀"] | |
mreg1 [label="D₁"] | |
mreg0 -> mreg1 -> mregdot -> mregn | |
mregdot [label="..."] | |
mregn [label="D₄₁"] | |
} | |
} | |
inputs -> mreg0 [xlabel="MouseData"] | |
counter -> cu [taillabel="TC" headlabel="NewMessage " minlen=3] | |
mregn -> mtypes | |
mtypes -> cu [xlabel="MouseMessage"] | |
} | |
mtypes [label="Mouse Types Unit" shape=folder height=0.7] | |
subgraph b2b { | |
node [shape=rectangle]; | |
splines=ortho; | |
ssg -> {_reg0 _reg1 _regdot _regn} [xlabel="Num"]; | |
ssg -> {_wnode reg0} [xlabel="Clock"]; | |
ssg -> {_wnode reg0} [xlabel="Reset"]; | |
subgraph cluster_statecounter { | |
label="StateCounter" | |
node[shape=box] | |
{ | |
rank=same | |
reg0 [label="D₀"] | |
reg1 [label="D₁"] | |
regdot [label="..."] | |
regn [label="D₄"] | |
} | |
wnode [fixedsize=true height=1 shape=point style=invis width=0.01] | |
} | |
subgraph cluster_regx { | |
label="InternalReg" | |
node[shape=box] | |
{ | |
rank=same | |
_reg0 [label="D₀"] | |
_reg1 [label="D₁"] | |
_regdot [label="..."] | |
_regn [label="D₄"] | |
_reg0 -> _reg1 -> _regdot -> _regn | |
} | |
_wnode [fixedsize=true height=0.3 label="" width=0.3 shape=oval] | |
} | |
sel_logic [label="State Selection Logic" width=2 height=1.2] | |
{reg0 reg1 regdot regn} -> sel_logic | |
sel_logic -> _wnode [xlabel="1" headlabel="PL "] | |
sel_logic -> _wnode [xlabel="2" headlabel="MODE"] | |
mux [label="MUX [3]" shape=invtrapezium width=4] | |
{_reg0 _reg1 _regdot _regn} -> mux [minlen=3] | |
adder [label="Adder" width=2 height=1] | |
sel_logic -> adder [xlabel="3" headlabel="Enable "] | |
mux:s -> adder | |
sel_logic -> mux:e [xlabel="3"] | |
3 -> adder | |
{rank=same adder 3} | |
adder -> _reg0 | |
sel_logic -> ssg [xlabel="4 - BCD"] | |
} | |
{ rank = same; cu; ssg; } | |
inputs -> cu [xlabel="Clock"]; | |
inputs -> cu [xlabel="Reset"]; | |
inputs -> cu [xlabel="Sense"]; | |
cu -> ssg [xlabel="Clock" minlen=8]; | |
cu -> ssg [xlabel="Reset"]; | |
cu -> ssg [xlabel="Number"]; | |
ssg -> outputs [xlabel="Anodes"] | |
ssg -> outputs [xlabel="Cathodes"] | |
cu -> outputs [xlabel="InvLED " minlen=6] | |
outputs [width=3] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph { | |
node [shape=box] | |
splines=ortho | |
inputs [width=7] | |
counter [label="Counter mod 43" shape=box height=1.5] | |
inputs -> mcdiv [headlabel="MouseClock " arrowhead=none] | |
mcdiv [shape=point style=invis] | |
mcdiv -> { counter reg0 } | |
subgraph cluster_reg { | |
label="MouseReg" | |
node[shape=box] | |
{ | |
rank=same | |
reg0 [label="D₀"] | |
reg1 [label="D₁"] | |
reg0 -> reg1 -> regdot -> regn | |
regdot [label="..."] | |
regn [label="D₄₁"] | |
} | |
} | |
inputs -> reg0 [xlabel="MouseData"] | |
counter -> outputs [taillabel="TC" headlabel="NewMessage " minlen=3] | |
regn -> mtypes | |
mtypes -> outputs [xlabel="MouseMessage"] | |
mtypes [label="Mouse Types" shape=folder] | |
outputs [width=4.3] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph { | |
node [shape=rectangle]; | |
splines=ortho; | |
inputs [width=5] | |
cu [width=3 height=3 label="CU"]; | |
ssg [label="7 Segment Display" height=2]; | |
b2b [label="Bin to BCD" height=2]; | |
mdec [label="Mouse Decoder" height=2.5 width=2]; | |
mtypes [label="Mouse Types Unit" shape=folder height=0.7] | |
{ rank = same; cu; ssg; } | |
inputs -> cu [xlabel="Clock"]; | |
inputs -> cu [xlabel="Reset"]; | |
inputs -> cu [xlabel="Sense"]; | |
cu -> ssg [xlabel="Clock" minlen=8]; | |
cu -> ssg [xlabel="Reset"]; | |
cu -> ssg [xlabel="Number"]; | |
ssg -> b2b [xlabel="Number"]; | |
ssg -> b2b [xlabel="Clock"]; | |
b2b -> ssg [xlabel="BCD"]; | |
b2b -> ssg [xlabel="BCDReady"]; | |
inputs -> mdec [xlabel="MouseClock"]; | |
inputs -> mdec [xlabel="MouseData"]; | |
mdec -> cu [xlabel="MouseMessage"]; | |
mdec -> cu [xlabel="NewMessage"]; | |
mdec -> mtypes [xlabel="MouseReg"]; | |
mtypes -> mdec [xlabel="MouseMessage"]; | |
ssg -> outputs [xlabel="Anodes"] | |
ssg -> outputs [xlabel="Cathodes"] | |
cu -> outputs [xlabel="InvLED"] | |
outputs [width=3] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment