Commit 7ef2c92d authored by Jules Saget's avatar Jules Saget
Browse files

Start slides

parent b058544f
......@@ -5,6 +5,8 @@
# https://stackoverflow.com/questions/12343428/latex-reference-and-makefile
#
TEX=pdflatex -shell-escape
.PHONY: all figs tables clean
.DELETE_ON_ERROR:
......@@ -13,8 +15,12 @@
all: report.pdf slides.pdf
slides.pdf: figs tables
$(TEX) slides.tex
if grep 'Rerun to get ' slides.log ; then $(MAKE) slides.pdf ; fi
%.pdf %.aux %.idx: %.tex figs tables %.bbl
pdflatex -shell-escape $<
$(TEX) $<
if grep 'Rerun to get ' $*.log ; then $(MAKE) $@ ; fi
if grep 'There were undefined references' $*.log ; then exit 1 ; fi
if grep 'Please (re)run Biber' $*.log ; then $(MAKE) $*.bbl ; $(MAKE) $@ ; fi
......@@ -23,7 +29,7 @@ all: report.pdf slides.pdf
biber $*
%.bcf: %.tex
pdflatex -shell-escape $<
$(TEX) $<
figs:
$(MAKE) -C figures
......
let increment x = x + 1 in increment 3
figs: comparator.pdf simple_graph_reductions.pdf ski_combinators.pdf 4ph.pdf andor.png add-sub.pdf mul.pdf clean.pdf
built_figs= comparator.pdf simple_graph_reductions.pdf ski_combinators.pdf 4ph.pdf add-sub.pdf mul.pdf clean.pdf tree.pdf add_fsm_ab_add.pdf add_fsm_ab_read_a.pdf add_fsm_ab_read_b.pdf add_fsm_done.pdf add_fsm_final_check.pdf add_fsm_final_link.pdf add_fsm_idle.pdf
other_figs= andor.png gr_ex_0.pdf gr_ex_1.pdf gr_ex_2.pdf gr_ex_3.pdf gr_ex_4.pdf
figs: $(built_figs) $(other_figs)
%.pdf: %.gv
dot -o$@ -Tpdf $<
clean:
rm -f *.pdf
rm -f $(built_figs)
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph addsub_FSM {
IDLE;
DONE;
subgraph cluster_AB {
style = filled;
color = white;
AB_ALLOC;
AB_WRITE;
AB_READ_A;
AB_READ_B;
AB_ADDSUB;
AB_ALLOC -> AB_WRITE -> AB_READ_A -> AB_READ_B -> AB_ADDSUB -> AB_ALLOC;
label = "A unfinished, B unfinished";
}
subgraph cluster_A {
style = filled;
color = white;
A_CHECK [style = filled, color = lightgrey];
A_ALLOC;
A_WRITE;
A_READ;
A_ADDSUB;
A_CHECK -> A_ALLOC -> A_WRITE -> A_READ -> A_ADDSUB -> A_CHECK;
A_CHECK -> A_LINK;
label = "A unfinished, B finished";
}
subgraph cluster_FINAL {
style = filled;
color = white;
FINAL_CHECK [style = filled, color = lightgrey];
FINAL_LINK;
FINAL_ALLOC;
FINAL_WRITE;
FINAL_LAST_WRITE;
FINAL_CHECK -> FINAL_LINK;
FINAL_CHECK -> FINAL_ALLOC -> FINAL_WRITE -> FINAL_LAST_WRITE;
label = "A finished, B finished"
}
subgraph cluster_B {
style = filled;
color = white;
B_CHECK [style = filled, color = lightgrey];
B_ALLOC;
B_WRITE;
B_READ;
B_ADDSUB;
B_CHECK -> B_LINK;
B_CHECK -> B_ALLOC -> B_WRITE -> B_READ -> B_ADDSUB -> B_CHECK;
label = "A finished, B unfinished";
}
IDLE -> AB_READ_A;
AB_ADDSUB -> A_CHECK;
AB_ADDSUB -> B_CHECK;
AB_ADDSUB -> FINAL_CHECK;
A_LINK -> DONE;
B_LINK -> DONE;
FINAL_LINK -> DONE;
FINAL_LAST_WRITE -> DONE;
A_CHECK -> FINAL_CHECK;
B_CHECK -> FINAL_CHECK;
}
digraph G {
node [shape=circle];
size = "8.5,11.0";
center = 1;
margin = 0.5;
ordering=out;
c_n11 [label = "@" ordering=out];
c_n9 [label = "=" ordering=out color="blue"];
c_n7 [label = "@" ordering=out];
c_n10 [label = "3"];
c_n8 [label = "I"];
c_n5 [label = "@" ordering=out];
c_n4 [label = "1"];
c_n3 [label = "+"];
c_n11 -> c_n9 [style=solid, color=black];
c_n11 -> c_n7 [style=solid, color=black];
c_n9 -> c_n5 [style=solid, color=black];
c_n7 -> c_n8 [style=solid, color=black];
c_n7 -> c_n10 [style=solid, color=black];
c_n5 -> c_n3 [style=solid, color=black];
c_n5 -> c_n4 [style=solid, color=black];
}
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
%\usepackage[hidelinks]{hyperref} % Already in beamer
\usepackage{graphicx}
\usepackage{minted}
\usetheme{CambridgeUS}
\usecolortheme{wolverine}
\title[CEPHALOPODE]{-- CEPHALOPODE --\\
\scriptsize
Certified Energy-Preserving Hardware using Absolute Laziness\\
to Optimize Power and Offer Defenses against Errors\\
\normalsize
Design of execution unit in\\
IoT functional language processor
}
\author[Jules Saget]{Jules Saget\\
\footnotesize
under the direction of\\
\normalsize
Carl-Johan H. Seger
}
\institute[Octopi @ Chalmers]{Octopi Team, Chalmers Tekniska Högskola}
\date{March -- July 2020}
\begin{document}
\titlepage