aboutsummaryrefslogtreecommitdiffstats
path: root/docs/images
diff options
context:
space:
mode:
authorKrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com>2022-11-16 00:55:22 +1300
committerGitHub <noreply@github.com>2022-11-15 12:55:22 +0100
commita14dec79ebc85fae807684fa027d8098a16a4d34 (patch)
treef05562ce671f452f6d29a90219cced0b37c1aae4 /docs/images
parent853f4bb3c695d9f5183ef5064ec4cf9cdd8b5300 (diff)
downloadyosys-a14dec79ebc85fae807684fa027d8098a16a4d34.tar.gz
yosys-a14dec79ebc85fae807684fa027d8098a16a4d34.tar.bz2
yosys-a14dec79ebc85fae807684fa027d8098a16a4d34.zip
Rst docs conversion (#3496)
Rst docs conversion
Diffstat (limited to 'docs/images')
-rw-r--r--docs/images/011/example_out.tex18
-rw-r--r--docs/images/011/select_prod.tex19
-rw-r--r--docs/images/011/splitnets_libfile.tex15
-rw-r--r--docs/images/011/submod_dots.tex27
-rw-r--r--docs/images/Makefile44
-rw-r--r--docs/images/approach_flow.pngbin0 -> 9709 bytes
-rw-r--r--docs/images/approach_flow.tex38
-rw-r--r--docs/images/basics_abstractions.pngbin0 -> 29158 bytes
-rw-r--r--docs/images/basics_abstractions.tex41
-rw-r--r--docs/images/basics_ast.pngbin0 -> 9478 bytes
-rw-r--r--docs/images/basics_ast.tex30
-rw-r--r--docs/images/basics_flow.pngbin0 -> 12540 bytes
-rw-r--r--docs/images/basics_flow.tex44
-rw-r--r--docs/images/basics_parsetree.pngbin0 -> 23196 bytes
-rw-r--r--docs/images/basics_parsetree.tex44
-rw-r--r--docs/images/overview_flow.pngbin0 -> 17668 bytes
-rw-r--r--docs/images/overview_flow.tex37
-rw-r--r--docs/images/overview_rtlil.pngbin0 -> 16034 bytes
-rw-r--r--docs/images/overview_rtlil.tex27
-rw-r--r--docs/images/verilog_flow.pngbin0 -> 15934 bytes
-rw-r--r--docs/images/verilog_flow.tex67
21 files changed, 451 insertions, 0 deletions
diff --git a/docs/images/011/example_out.tex b/docs/images/011/example_out.tex
new file mode 100644
index 000000000..831b036e9
--- /dev/null
+++ b/docs/images/011/example_out.tex
@@ -0,0 +1,18 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{tikz}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \node[inner sep=0pt] at (0,0)
+ {\includegraphics[width=\linewidth]{example_00.pdf}};
+ \node[inner sep=0pt] at (0,-3.8)
+ {\includegraphics[width=\linewidth]{example_01.pdf}};
+ \node[inner sep=0pt] at (0,-7)
+ {\includegraphics[width=\linewidth]{example_02.pdf}};
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/011/select_prod.tex b/docs/images/011/select_prod.tex
new file mode 100644
index 000000000..c4a3c6e37
--- /dev/null
+++ b/docs/images/011/select_prod.tex
@@ -0,0 +1,19 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \node[inner sep=0pt] at (0,0)
+ {\hfill \includegraphics[width=4cm,trim=0 1cm 0 1cm]{sumprod_02.pdf}};
+ \node[inner sep=0pt] at (0,-2.8)
+ {\includegraphics[width=\linewidth,trim=0 0cm 0 1cm]{sumprod_03.pdf}};
+ \node[inner sep=0pt] at (0,-6.2)
+ {\includegraphics[width=\linewidth,trim=0 0cm 0 1cm]{sumprod_04.pdf}};
+ \node[inner sep=0pt] at (0,-9.2)
+ {\includegraphics[width=\linewidth,trim=0 1cm 0 1cm]{sumprod_05.pdf}};
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/011/splitnets_libfile.tex b/docs/images/011/splitnets_libfile.tex
new file mode 100644
index 000000000..9669ef841
--- /dev/null
+++ b/docs/images/011/splitnets_libfile.tex
@@ -0,0 +1,15 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \node[inner sep=0pt] at (0,0)
+ {\includegraphics[height=\linewidth]{cmos_00.pdf}};
+ \node[inner sep=0pt] at (2,-8)
+ {\includegraphics[width=\linewidth]{cmos_01.pdf}};
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/011/submod_dots.tex b/docs/images/011/submod_dots.tex
new file mode 100644
index 000000000..3d48b46e5
--- /dev/null
+++ b/docs/images/011/submod_dots.tex
@@ -0,0 +1,27 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \node[inner sep=0pt] at (0,0)
+ {\includegraphics[width=\linewidth,trim=0 1.3cm 0 0cm]{submod_00.pdf}};
+ \node at (0, -2.5)
+ {\tt memdemo};
+ \node[inner sep=0pt] at (0,-5)
+ {\includegraphics[width=\linewidth,trim=0 1.3cm 0 0cm]{submod_01.pdf}};
+ \node at (0, -7.5)
+ {\tt scramble};
+ \node[inner sep=0pt] at (0, -11)
+ {\includegraphics[width=\linewidth,trim=0 1.3cm 0 0cm]{submod_02.pdf}};
+ \node at (0, -14.8)
+ {\tt outstage};
+ \node[inner sep=0pt] at (0,-16.6)
+ {\includegraphics[width=\linewidth,trim=0 1.3cm 0 0cm]{submod_03.pdf}};
+ \node at (0, -19)
+ {\tt selstage};
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/Makefile b/docs/images/Makefile
new file mode 100644
index 000000000..b62f6c7f6
--- /dev/null
+++ b/docs/images/Makefile
@@ -0,0 +1,44 @@
+all: dots tex svg tidy
+
+TEX_SOURCE:= $(wildcard *.tex)
+DOT_LOC:= ../../manual/APPNOTE_011_Design_Investigation
+DOT_SOURCE:= $(wildcard $(DOT_LOC)/*.dot)
+
+TEX_SOURCE+= 011/example_out.tex
+011/example_out.pdf: 011/example_00.pdf 011/example_01.pdf 011/example_02.pdf
+TEX_SOURCE+= 011/select_prod.tex
+011/select_prod.pdf: 011/sumprod_02.pdf 011/sumprod_03.pdf 011/sumprod_04.pdf 011/sumprod_05.pdf
+TEX_SOURCE+= 011/splitnets_libfile.tex
+011/splitnets_libfile.pdf: 011/cmos_00.pdf 011/cmos_01.pdf
+TEX_SOURCE+= 011/submod_dots.tex
+011/submod_dots.pdf: 011/submod_00.pdf 011/submod_01.pdf 011/submod_02.pdf 011/submod_03.pdf
+
+TEX_PDF:= $(patsubst %.tex,%.pdf,$(TEX_SOURCE))
+DOT_PDF:= $(addprefix 011/,$(notdir $(patsubst %.dot,%.pdf,$(DOT_SOURCE))))
+SVG_OUTPUT:= $(patsubst %.pdf,%.svg,$(TEX_PDF) $(DOT_PDF))
+
+dots: $(DOT_PDF)
+tex: $(TEX_PDF)
+svg: $(SVG_OUTPUT)
+
+011/%.pdf: $(DOT_LOC)/%.dot
+ dot -Tpdf -o $@ $<
+
+011/%.pdf: 011/%.tex
+ cd 011 && pdflatex $(<F) --interaction=nonstopmode
+
+%.pdf: %.tex
+ pdflatex $< --interaction=nonstopmode
+
+%.svg: %.pdf
+ pdf2svg $< $@
+
+.PHONY: clean tidy
+tidy:
+ rm -f *.log
+ rm -f *.aux
+ rm -f 011/*.log 011/*.aux
+clean: tidy
+ rm -f *.pdf
+ rm -f *.svg
+ rm -f 011/*.pdf 011/*.svg
diff --git a/docs/images/approach_flow.png b/docs/images/approach_flow.png
new file mode 100644
index 000000000..a5fc53b08
--- /dev/null
+++ b/docs/images/approach_flow.png
Binary files differ
diff --git a/docs/images/approach_flow.tex b/docs/images/approach_flow.tex
new file mode 100644
index 000000000..275baa3f5
--- /dev/null
+++ b/docs/images/approach_flow.tex
@@ -0,0 +1,38 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\usetikzlibrary{calc}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \path (-1.5,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+ \draw[fill=orange!10] ($ (cursor) + (1,-3) $) rectangle node[rotate=90] {Frontend} ++(1,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+ \draw[fill=green!10] ($ (cursor) + (1,-3) $) rectangle node[rotate=90] {Pass} ++(1,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+ \draw[fill=green!10] ($ (cursor) + (1,-3) $) rectangle node[rotate=90] {Pass} ++(1,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+ \draw[fill=green!10] ($ (cursor) + (1,-3) $) rectangle node[rotate=90] {Pass} ++(1,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+ \draw[fill=orange!10] ($ (cursor) + (1,-3) $) rectangle node[rotate=90] {Backend} ++(1,3) coordinate (cursor);
+ \draw[-latex] ($ (cursor) + (0,-1.5) $) -- ++(1,0);
+
+ \path (-3,-0.5) coordinate (cursor);
+ \draw (cursor) -- node[below] {HDL} ++(3,0) coordinate (cursor);
+ \draw[|-|] (cursor) -- node[below] {Internal Format(s)} ++(8,0) coordinate (cursor);
+ \draw (cursor) -- node[below] {Netlist} ++(3,0);
+
+ \path (-3,3.5) coordinate (cursor);
+ \draw[-] (cursor) -- node[above] {High-Level} ++(3,0) coordinate (cursor);
+ \draw[-] (cursor) -- ++(8,0) coordinate (cursor);
+ \draw[->] (cursor) -- node[above] {Low-Level} ++(3,0);
+
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/basics_abstractions.png b/docs/images/basics_abstractions.png
new file mode 100644
index 000000000..a735fbd3b
--- /dev/null
+++ b/docs/images/basics_abstractions.png
Binary files differ
diff --git a/docs/images/basics_abstractions.tex b/docs/images/basics_abstractions.tex
new file mode 100644
index 000000000..ece063623
--- /dev/null
+++ b/docs/images/basics_abstractions.tex
@@ -0,0 +1,41 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{lvl} = [draw, fill=green!10, rectangle, minimum height=2em, minimum width=15em]
+ \node[lvl] (sys) {System Level};
+ \node[lvl] (hl) [below of=sys] {High Level};
+ \node[lvl] (beh) [below of=hl] {Behavioral Level};
+ \node[lvl] (rtl) [below of=beh] {Register-Transfer Level (RTL)};
+ \node[lvl] (lg) [below of=rtl] {Logical Gate Level};
+ \node[lvl] (pg) [below of=lg] {Physical Gate Level};
+ \node[lvl] (sw) [below of=pg] {Switch Level};
+
+ \draw[dotted] (sys.east) -- ++(1,0) coordinate (sysx);
+ \draw[dotted] (hl.east) -- ++(1,0) coordinate (hlx);
+ \draw[dotted] (beh.east) -- ++(1,0) coordinate (behx);
+ \draw[dotted] (rtl.east) -- ++(1,0) coordinate (rtlx);
+ \draw[dotted] (lg.east) -- ++(1,0) coordinate (lgx);
+ \draw[dotted] (pg.east) -- ++(1,0) coordinate (pgx);
+ \draw[dotted] (sw.east) -- ++(1,0) coordinate (swx);
+
+ \draw[gray,|->] (sysx) -- node[right] {System Design} (hlx);
+ \draw[|->|] (hlx) -- node[right] {High Level Synthesis (HLS)} (behx);
+ \draw[->|] (behx) -- node[right] {Behavioral Synthesis} (rtlx);
+ \draw[->|] (rtlx) -- node[right] {RTL Synthesis} (lgx);
+ \draw[->|] (lgx) -- node[right] {Logic Synthesis} (pgx);
+ \draw[gray,->|] (pgx) -- node[right] {Cell Library} (swx);
+
+ \draw[dotted] (behx) -- ++(5,0) coordinate (a);
+ \draw[dotted] (pgx) -- ++(5,0) coordinate (b);
+ \draw[|->|] (a) -- node[right] {Yosys} (b);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/basics_ast.png b/docs/images/basics_ast.png
new file mode 100644
index 000000000..c2d95c844
--- /dev/null
+++ b/docs/images/basics_ast.png
Binary files differ
diff --git a/docs/images/basics_ast.tex b/docs/images/basics_ast.tex
new file mode 100644
index 000000000..dac6a8d47
--- /dev/null
+++ b/docs/images/basics_ast.tex
@@ -0,0 +1,30 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\usetikzlibrary{shapes.geometric}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{node} = [draw, fill=green!10, ellipse, minimum height=2em, minimum width=8em, node distance=10em]
+
+ \draw (+0,+0) node[node] (n1) {\tt ASSIGN};
+
+ \draw (-2,-2) node[node] (n11) {\tt ID: foo};
+ \draw (+2,-2) node[node] (n12) {\tt PLUS};
+
+ \draw (+0,-4) node[node] (n121) {\tt ID: bar};
+ \draw (+4,-4) node[node] (n122) {\tt CONST: 42};
+
+ \draw[-latex] (n1) -- (n11);
+ \draw[-latex] (n1) -- (n12);
+
+ \draw[-latex] (n12) -- (n121);
+ \draw[-latex] (n12) -- (n122);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/basics_flow.png b/docs/images/basics_flow.png
new file mode 100644
index 000000000..a027b5eac
--- /dev/null
+++ b/docs/images/basics_flow.png
Binary files differ
diff --git a/docs/images/basics_flow.tex b/docs/images/basics_flow.tex
new file mode 100644
index 000000000..53b555487
--- /dev/null
+++ b/docs/images/basics_flow.tex
@@ -0,0 +1,44 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{manual} = [draw, fill=green!10, rectangle, minimum height=2em, minimum width=8em, node distance=10em]
+ \tikzstyle{auto} = [draw, fill=orange!10, rectangle, minimum height=2em, minimum width=8em, node distance=10em]
+
+ \node[manual] (sys) {\begin{minipage}{8em}
+ \center
+ System Level \\
+ Model
+ \end{minipage}};
+ \node[manual] (beh) [right of=sys] {\begin{minipage}{8em}
+ \center
+ Behavioral \\
+ Model
+ \end{minipage}};
+ \node[auto] (rtl) [right of=beh] {\begin{minipage}{8em}
+ \center
+ RTL \\
+ Model
+ \end{minipage}};
+ \node[auto] (gates) [right of=rtl] {\begin{minipage}{8em}
+ \center
+ Gate-Level \\
+ Model
+ \end{minipage}};
+
+ \draw[-latex] (beh) edge[double, bend left] node[above] {synthesis} (rtl);
+ \draw[-latex] (rtl) edge[double, bend left] node[above] {synthesis} (gates);
+
+ \draw[latex-latex] (sys) edge[bend right] node[below] {verify} (beh);
+ \draw[latex-latex] (beh) edge[bend right] node[below] {verify} (rtl);
+ \draw[latex-latex] (rtl) edge[bend right] node[below] {verify} (gates);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/basics_parsetree.png b/docs/images/basics_parsetree.png
new file mode 100644
index 000000000..ff7a17e2b
--- /dev/null
+++ b/docs/images/basics_parsetree.png
Binary files differ
diff --git a/docs/images/basics_parsetree.tex b/docs/images/basics_parsetree.tex
new file mode 100644
index 000000000..1c8392b88
--- /dev/null
+++ b/docs/images/basics_parsetree.tex
@@ -0,0 +1,44 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\usetikzlibrary{shapes.geometric}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{node} = [draw, fill=green!10, ellipse, minimum height=2em, minimum width=8em, node distance=10em]
+
+ \draw (+0,+1) node[node] (n1) {\tt assign\_stmt};
+
+ \draw (-6,-1) node[node] (n11) {\tt TOK\_ASSIGN};
+ \draw (-3,-2) node[node] (n12) {\tt TOK\_IDENTIFIER};
+ \draw (+0,-1) node[node] (n13) {\tt TOK\_EQ};
+ \draw (+3,-2) node[node] (n14) {\tt expr};
+ \draw (+6,-1) node[node] (n15) {\tt TOK\_SEMICOLON};
+
+ \draw (-1,-4) node[node] (n141) {\tt expr};
+ \draw (+3,-4) node[node] (n142) {\tt TOK\_PLUS};
+ \draw (+7,-4) node[node] (n143) {\tt expr};
+
+ \draw (-1,-5.5) node[node] (n1411) {\tt TOK\_IDENTIFIER};
+ \draw (+7,-5.5) node[node] (n1431) {\tt TOK\_NUMBER};
+
+ \draw[-latex] (n1) -- (n11);
+ \draw[-latex] (n1) -- (n12);
+ \draw[-latex] (n1) -- (n13);
+ \draw[-latex] (n1) -- (n14);
+ \draw[-latex] (n1) -- (n15);
+
+ \draw[-latex] (n14) -- (n141);
+ \draw[-latex] (n14) -- (n142);
+ \draw[-latex] (n14) -- (n143);
+
+ \draw[-latex] (n141) -- (n1411);
+ \draw[-latex] (n143) -- (n1431);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/overview_flow.png b/docs/images/overview_flow.png
new file mode 100644
index 000000000..c1b13a000
--- /dev/null
+++ b/docs/images/overview_flow.png
Binary files differ
diff --git a/docs/images/overview_flow.tex b/docs/images/overview_flow.tex
new file mode 100644
index 000000000..ac0afde5f
--- /dev/null
+++ b/docs/images/overview_flow.tex
@@ -0,0 +1,37 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\usetikzlibrary{shapes.geometric}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{process} = [draw, fill=green!10, rectangle, minimum height=3em, minimum width=10em, node distance=15em]
+ \tikzstyle{data} = [draw, fill=blue!10, ellipse, minimum height=3em, minimum width=7em, node distance=15em]
+ \node[process] (vlog) {Verilog Frontend};
+ \node[process, dashed, fill=green!5] (vhdl) [right of=vlog] {VHDL Frontend};
+ \node[process] (ilang) [right of=vhdl] {RTLIL Frontend};
+ \node[data] (ast) [below of=vlog, node distance=5em, xshift=7.5em] {AST};
+ \node[process] (astfe) [below of=ast, node distance=5em] {AST Frontend};
+ \node[data] (rtlil) [below of=astfe, node distance=5em, xshift=7.5em] {RTLIL};
+ \node[process] (pass) [right of=rtlil, node distance=5em, xshift=7.5em] {Passes};
+ \node[process] (vlbe) [below of=rtlil, node distance=7em, xshift=-13em] {Verilog Backend};
+ \node[process] (ilangbe) [below of=rtlil, node distance=7em, xshift=0em] {RTLIL Backend};
+ \node[process, dashed, fill=green!5] (otherbe) [below of=rtlil, node distance=7em, xshift=+13em] {Other Backends};
+
+ \draw[-latex] (vlog) -- (ast);
+ \draw[-latex] (vhdl) -- (ast);
+ \draw[-latex] (ast) -- (astfe);
+ \draw[-latex] (astfe) -- (rtlil);
+ \draw[-latex] (ilang) -- (rtlil);
+ \draw[latex-latex] (rtlil) -- (pass);
+ \draw[-latex] (rtlil) -- (vlbe);
+ \draw[-latex] (rtlil) -- (ilangbe);
+ \draw[-latex] (rtlil) -- (otherbe);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/overview_rtlil.png b/docs/images/overview_rtlil.png
new file mode 100644
index 000000000..f79c667e8
--- /dev/null
+++ b/docs/images/overview_rtlil.png
Binary files differ
diff --git a/docs/images/overview_rtlil.tex b/docs/images/overview_rtlil.tex
new file mode 100644
index 000000000..ddacbff00
--- /dev/null
+++ b/docs/images/overview_rtlil.tex
@@ -0,0 +1,27 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{entity} = [draw, fill=gray!10, rectangle, minimum height=3em, minimum width=7em, node distance=5em, font={\ttfamily}]
+ \node[entity] (design) {RTLIL::Design};
+ \node[entity] (module) [right of=design, node distance=11em] {RTLIL::Module} edge [-latex] node[above] {\tiny 1 \hskip3em N} (design);
+
+ \node[entity] (process) [fill=green!10, right of=module, node distance=10em] {RTLIL::Process} (process.west) edge [-latex] (module);
+ \node[entity] (memory) [fill=red!10, below of=process] {RTLIL::Memory} edge [-latex] (module);
+ \node[entity] (wire) [fill=blue!10, above of=process] {RTLIL::Wire} (wire.west) edge [-latex] (module);
+ \node[entity] (cell) [fill=blue!10, above of=wire] {RTLIL::Cell} (cell.west) edge [-latex] (module);
+
+ \node[entity] (case) [fill=green!10, right of=process, node distance=10em] {RTLIL::CaseRule} edge [latex-latex] (process);
+ \node[entity] (sync) [fill=green!10, above of=case] {RTLIL::SyncRule} edge [-latex] (process);
+ \node[entity] (switch) [fill=green!10, below of=case] {RTLIL::SwitchRule} edge [-latex] (case);
+ \draw[latex-] (switch.east) -- ++(1em,0) |- (case.east);
+\end{tikzpicture}
+\end{document}
diff --git a/docs/images/verilog_flow.png b/docs/images/verilog_flow.png
new file mode 100644
index 000000000..1f3d82780
--- /dev/null
+++ b/docs/images/verilog_flow.png
Binary files differ
diff --git a/docs/images/verilog_flow.tex b/docs/images/verilog_flow.tex
new file mode 100644
index 000000000..d3e269d0d
--- /dev/null
+++ b/docs/images/verilog_flow.tex
@@ -0,0 +1,67 @@
+\documentclass[12pt,tikz]{standalone}
+\pdfinfoomitdate 1
+\pdfsuppressptexinfo 1
+\pdftrailerid{}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\usepackage{tikz}
+\usetikzlibrary{shapes.geometric}
+\pagestyle{empty}
+
+\begin{document}
+\begin{tikzpicture}
+ \tikzstyle{process} = [draw, fill=green!10, rectangle, minimum height=3em, minimum width=10em, node distance=5em, font={\ttfamily}]
+ \tikzstyle{data} = [draw, fill=blue!10, ellipse, minimum height=3em, minimum width=7em, node distance=5em, font={\ttfamily}]
+
+ \node[data] (n1) {Verilog Source};
+ \node[process] (n2) [below of=n1] {Verilog Frontend};
+ \node[data] (n3) [below of=n2] {AST};
+ \node[process] (n4) [below of=n3] {AST Frontend};
+ \node[data] (n5) [below of=n4] {RTLIL};
+
+ \draw[-latex] (n1) -- (n2);
+ \draw[-latex] (n2) -- (n3);
+ \draw[-latex] (n3) -- (n4);
+ \draw[-latex] (n4) -- (n5);
+
+ \tikzstyle{details} = [draw, fill=yellow!5, rectangle, node distance=6cm, font={\ttfamily}]
+
+ \node[details] (d1) [right of=n2] {\begin{minipage}{5cm}
+ \hfil
+ \begin{tikzpicture}
+ \tikzstyle{subproc} = [draw, fill=green!10, rectangle, minimum height=2em, minimum width=10em, node distance=3em, font={\ttfamily}]
+ \node (s0) {};
+ \node[subproc] (s1) [below of=s0] {Preprocessor};
+ \node[subproc] (s2) [below of=s1] {Lexer};
+ \node[subproc] (s3) [below of=s2] {Parser};
+ \node[node distance=3em] (s4) [below of=s3] {};
+ \draw[-latex] (s0) -- (s1);
+ \draw[-latex] (s1) -- (s2);
+ \draw[-latex] (s2) -- (s3);
+ \draw[-latex] (s3) -- (s4);
+ \end{tikzpicture}
+ \end{minipage}};
+
+ \draw[dashed] (n2.north east) -- (d1.north west);
+ \draw[dashed] (n2.south east) -- (d1.south west);
+
+ \node[details] (d2) [right of=n4] {\begin{minipage}{5cm}
+ \hfil
+ \begin{tikzpicture}
+ \tikzstyle{subproc} = [draw, fill=green!10, rectangle, minimum height=2em, minimum width=10em, node distance=3em, font={\ttfamily}]
+ \node (s0) {};
+ \node[subproc] (s1) [below of=s0] {Simplifier};
+ \node[subproc] (s2) [below of=s1] {RTLIL Generator};
+ \node[node distance=3em] (s3) [below of=s2] {};
+ \draw[-latex] (s0) -- (s1);
+ \draw[-latex] (s1) -- (s2);
+ \draw[-latex] (s2) -- (s3);
+ \end{tikzpicture}
+ \end{minipage}};
+
+ \draw[dashed] (n4.north east) -- (d2.north west);
+ \draw[dashed] (n4.south east) -- (d2.south west);
+
+\end{tikzpicture}
+\end{document}