Graphviz
Thanks to this amazing tutorial, I learnt this very impressive tool to help us visualize things.
Example
digraph G {
size ="4,4";
main [shape=box]; /* this is a comment */
main -> parse [weight=8];
parse -> execute;
main -> init [style=dotted];
main -> cleanup;
execute -> { make_string; printf}
init -> make_string;
edge [color=red]; // so is this
main -> printf [style=bold,label="100 times"];
make_string [label="make a\nstring"];
node [shape=box,style=filled,color=".7 .3 1.0"];
execute -> compare;
}
digraph G {
node [shape=plaintext]
file1 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR>
<TD> </TD><TD> </TD><TD> </TD><TD PORT="f1"> </TD>
<TD PORT="f2"> </TD>
</TR>
</TABLE>
>];
file2 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR>
<TD> </TD><TD> </TD><TD BGCOLOR = "BLUE"> </TD>
<TD PORT="f3" BGCOLOR = "YELLOW"> </TD><TD PORT="f4"> </TD>
</TR>
</TABLE>
>];
file1:f1 -> file2:f3 [arrowhead = "box" , arrowtail = "box" , dir = both];
}
digraph G {
graph [splines=ortho, nodesep = 1]
rankdir=LR
node [shape=box, color=white]
VRAM [style=filled, label = "VRAM (Reg Files)", fontcolor = white, fillcolor = black]
VGA [style=filled, label = "VGA control", fontcolor = white, fillcolor = green]
AVALON [style=filled, label = "AVALON BUS", fontcolor = white, fillcolor = blue]
font_rom [style=filled, label = "font rom", fontcolor = white, fillcolor = "#7d3aa3"]
font_data [style=filled, label = "font data", fontcolor = white, fillcolor = "#7d3aa3"]
char [style=filled, label = "char reg", fontcolor = white, fillcolor = "#7d3aa3"]
VRAM -> char -> font_rom -> font_data -> VRAM
VRAM -> AVALON [dir = both]
VGA -> VRAM
subgraph "cluster A"
{
VRAM_structure [label = "VRAM struct \n main reg files"]
subgraph "cluster B"
{
control_reg[shape=none];
}
}
}
About moomoohorse
Email : haor2@illinois.edu
Website : http://moomoohorse.com