Skip to content

Instantly share code, notes, and snippets.

@Raffy27
Last active May 23, 2022 18:40
Show Gist options
  • Save Raffy27/4ba46eaca7d5c0104027da35ae62520e to your computer and use it in GitHub Desktop.
Save Raffy27/4ba46eaca7d5c0104027da35ae62520e to your computer and use it in GitHub Desktop.
MouseDecoder Dot Diagrams
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}
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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]
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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]
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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]
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment