summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-09-11 20:58:25 +0100
committerYann Herklotz <git@yannherklotz.com>2021-09-11 20:58:25 +0100
commit6057feb2544abd86131adaf2ac4eeca2f1a926bb (patch)
treeb025543a6a1a14be56a922938610add2c69df164
parent28256833310c6fe14280c246a096f9dd45d20abd (diff)
downloadoopsla21_fvhls-6057feb2544abd86131adaf2ac4eeca2f1a926bb.tar.gz
oopsla21_fvhls-6057feb2544abd86131adaf2ac4eeca2f1a926bb.zip
Add city and description
-rw-r--r--Makefile2
-rw-r--r--algorithm.tex4
-rw-r--r--main.tex4
-rw-r--r--related.tex2
-rw-r--r--verilog.tex1
5 files changed, 11 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index c2174fa..096e62d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
all:
- latexmk -lualatex -pdf -shell-escape main.tex
+ latexmk -lualatex -shell-escape main.tex
.PHONY: all clean
diff --git a/algorithm.tex b/algorithm.tex
index 72a53aa..6282664 100644
--- a/algorithm.tex
+++ b/algorithm.tex
@@ -69,6 +69,7 @@ The .NET framework has been used as a basis for other HLS tools, such as Kiwi~\c
\draw[->,thick] (htl) -- (verilog);
\draw[->,thick] (htl.west) to [out=180,in=150] (4,-2.2) to [out=330,in=270] (htl.south);
\end{tikzpicture}%}
+ \Description{The compilation flow of \compcert{}, showing where \vericert{} branches off.}
\caption{\vericert{} as a Verilog back end to \compcert{}.}%
\label{fig:rtlbranch}
\end{figure}
@@ -135,6 +136,7 @@ endmodule
to [out=60,in=130] ($(s2.east) + (0.3,0.7)$) to [out=310,in=10] (s2);
\end{tikzpicture}
\end{subfigure}
+ \Description{Verilog code of a state machine, and its equivalent state machine diagram.}
\caption{A simple state machine implemented in Verilog, with its diagrammatic representation on the right. The x's stand for don't cares and each transition is labelled with the values of the inputs \texttt{rst} and \texttt{y} that trigger the transition. The output that will be produced is shown in each state.}%
\label{fig:tutorial:state_machine}
\end{figure}
@@ -358,6 +360,7 @@ Compared to plain Verilog, HTL is simpler to manipulate and analyse, thereby mak
\node[scale=0.4] at (3.5,3.6) {\texttt{reg\_4}};
\node[scale=0.4] at (3.5,3.4) {\texttt{reg\_5}};
\end{tikzpicture}}
+ \Description{Diagram displaying the data-path and its internal modules, as well as the control logic and its state machine.}
\caption{The FSMD for the example shown in Fig.~\ref{fig:accumulator_c_rtl}, split into a data-path and control logic for the next state calculation. The Update block takes the current state, current values of all registers and at most one value stored in the RAM, and calculates a new value that can either be stored back in the or in a register.}\label{fig:accumulator_diagram}
\end{figure*}
@@ -460,6 +463,7 @@ Secondly, the logic in the enable signal of the RAM (\texttt{en != u\_en}) is al
\end{tikztimingtable}
\caption{Timing diagram for stores. At time 1, the \texttt{u\_en} signal is toggled to enable the RAM, and the address \texttt{addr} and the data to store \texttt{d\_in} are set. On the negative edge at time 2, the data is stored into the RAM.}\label{fig:ram_store}
\end{subfigure}
+ \Description{Timing diagrams of loads and stores, showing which signals are modified at which time step.}
\caption{Timing diagrams showing the execution of loads and stores over multiple clock cycles.}\label{fig:ram_load_store}
\end{figure}
diff --git a/main.tex b/main.tex
index 2206e06..adff5ed 100644
--- a/main.tex
+++ b/main.tex
@@ -134,6 +134,7 @@
\orcid{0000-0002-2329-1029}
\affiliation{
\institution{Imperial College London}
+ \city{London}
\country{UK}
}
\email{yann.herklotz15@imperial.ac.uk}
@@ -142,6 +143,7 @@
\orcid{0000-0003-1404-1527}
\affiliation{
\institution{Imperial College London}
+ \city{London}
\country{UK}
}
\email{jamespollard@acm.org}
@@ -150,6 +152,7 @@
\orcid{0000-0001-9083-8349}
\affiliation{
\institution{Imperial College London}
+ \city{London}
\country{UK}
}
\email{n.ramanathan@ieee.org}
@@ -158,6 +161,7 @@
\orcid{0000-0001-6735-5533}
\affiliation{
\institution{Imperial College London}
+ \city{London}
\country{UK}
}
\email{j.wickerson@imperial.ac.uk}
diff --git a/related.tex b/related.tex
index 656bc1a..cfc8a6e 100644
--- a/related.tex
+++ b/related.tex
@@ -37,8 +37,8 @@
\node[align=right] at (2.6,-1.7) {\color{colormechanised}Mechanised \\ \color{colormechanised}correctness proof};
\node at (-2.8,4.1) {\color{colorusabletool}\strut Usable tool};
\node at (2.1,4.1) {\color{colorhighlevel}\strut High-level software input};
-
\end{tikzpicture}
+ \Description{A Venn diagram containing the related works.}
\caption{Summary of related work}\label{fig:related_euler}
\end{figure}
diff --git a/verilog.tex b/verilog.tex
index 50d7640..1e0b9ff 100644
--- a/verilog.tex
+++ b/verilog.tex
@@ -196,6 +196,7 @@ The Verilog semantics do not define a memory model for Verilog, as this is not n
\draw (7,-4.3) -- (12,-4.3);
\node at (9.5,-4.7) {\small \texttt{stack[0] <= 0xDEADBEEF;}};
\end{tikzpicture}
+ \Description{\compcert{}'s memory model is translated into a more concrete memory model based on Verilog arrays. Two association maps are therefore needed to keep track of the blocking and nonblocking assignments.}
\caption{Change in the memory model during the translation of 3AC into HTL. The state of the memories in each case is right after the execution of the store to memory.}\label{fig:memory_model_transl}
\end{figure}